From 42149ad0b439826adbe43784803ccbf9aeca5d94 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 16 Sep 2025 16:38:28 +0200 Subject: [PATCH 001/158] Add init file --- src/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/__init__.py diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..5452f2d --- /dev/null +++ b/src/__init__.py @@ -0,0 +1,9 @@ +""" +CADET-GUI +======== +""" + +# Version information +name = "CADET-GUI" +__version__ = "0.0.1" + From 3d7db8e50a8a598662674450c3ac8f095fea4719 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 16 Sep 2025 17:15:54 +0200 Subject: [PATCH 002/158] [WIP] Add Adapter to CADET-Process --- src/cadetProcessAdapter.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/cadetProcessAdapter.py diff --git a/src/cadetProcessAdapter.py b/src/cadetProcessAdapter.py new file mode 100644 index 0000000..e69de29 From 6e68e96b5cfbb5cb5f7e09d745435b5145852c5c Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 16 Sep 2025 17:15:59 +0200 Subject: [PATCH 003/158] Add widget class --- src/widget.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/widget.py diff --git a/src/widget.py b/src/widget.py new file mode 100644 index 0000000..f825a5e --- /dev/null +++ b/src/widget.py @@ -0,0 +1,41 @@ +import ipywidgets as W +from abc import ABC, abstractmethod +from typing import Optional + +__all__ = ["BaseWidget"] + + +class BaseWidget(ABC): + """Base widget providing a header, status, and a container layout.""" + + def __init__(self, *, title: Optional[str] = None) -> None: + """ + Initialize the widget container. + + Parameters + ---------- + title : str, optional + Title shown in the header, defaults to the class name. + """ + self.title = title or self.__class__.__name__ + self._status = W.HTML("Ready.") + self._header = W.HTML(f"

{self.title}

") + self._body = self._build_body() + self.root = W.VBox([self._header, self._body, self._status]) + self._wire_events() + + @abstractmethod + def _build_body(self) -> W.Widget: + """Create and return the main widget body.""" + + def _wire_events(self) -> None: + """Connect event handlers (optional, override in subclasses).""" + + def set_status(self, text: str) -> None: + """Update the status display with a text message.""" + self._status.value = text + + def display(self) -> None: + """Render the widget in a Jupyter notebook.""" + from IPython.display import display as _display + _display(self.root) From 476076200740d9ba3380af32d1cdb06d6b2bea18 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 22 Sep 2025 12:48:34 +0200 Subject: [PATCH 004/158] Add gitignore --- .gitignore | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7468306 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +__pycache__/ +*.py[cod] +.pytest_cache/ +.ipynb_checkpoints +debug* +log/ +diskcache_* +results_* +*.egg-info +.vscode From 6bd9c2af68be52ea593d33f596801f5e8c759cf5 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 22 Sep 2025 12:50:36 +0200 Subject: [PATCH 005/158] Update pyproject.toml --- pyproject.toml | 50 +++----------------------------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1c66033..1c6fae5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,11 +11,9 @@ name = "CADET-GUI" dynamic = ["version"] authors = [ { name = "Hannah Lanzrath", email = "h.lanzrath@fz-juelich.de" }, - { name = "Johannes Schmölder", email = "j.schmoelder@fz-juelich.de" }, - { name = "", email = "" }, - { name = "", email = "" } + { name = "Johannes Schmölder", email = "j.schmoelder@fz-juelich.de" } ] -description = "A Framework for Modelling and Optimizing Advanced Chromatographic Processes" +description = "" readme = "README.md" requires-python = ">=3.10" keywords = ["process modeling", "process optimization", "chromatography"] @@ -27,19 +25,6 @@ classifiers = [ "Intended Audience :: Science/Research", ] dependencies = [ - "addict==2.3", - "cadet-python>=1.0.4", - "corner>=2.2.1", - "diskcache>=5.4.0", - "hopsy>=1.5.3", - "joblib>=1.3.0", - "numpy>=1.21", - "matplotlib>=3.4", - "numba>=0.55.1", - "pathos>=0.2.8", - "psutil>=5.9.8", - "pymoo>=0.6", - "scipy>=1.14", ] [dependency-groups] @@ -62,38 +47,9 @@ dev = [ {include-group = "testing"}, "certifi", # tries to prevent certificate problems on windows "pre-commit", -<<<<<<< HEAD - "ruff", -======= - "ruff<=0.13.0", ->>>>>>> 591e72cbaf1d976d69729f076fdf0ff4d6beb0a6 + "ruff" ] -[project.optional-dependencies] -ax = [ -<<<<<<< HEAD - "ax-platform >=0.3.5,<1.0.0" -======= - "ax-platform >=0.3.5,<0.5.0" ->>>>>>> 591e72cbaf1d976d69729f076fdf0ff4d6beb0a6 -] -all = [ - "", -] - -[project.urls] -homepage = "" -documentation = "" -"Bug Tracker" = "" - -[tool.setuptools.packages.find] -include = [ - -] - -[tool.setuptools.dynamic] -version = {} - [tool.ruff] src = ["CADET-GUI", "tests"] exclude = [] From 4f26341084acfeab4dc16011a9932a747f29bd7f Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 22 Sep 2025 18:02:17 +0200 Subject: [PATCH 006/158] [WIP] Create Widget Prototype --- {src => cadetgui}/__init__.py | 0 cadetgui/cadetprocessadapter.py | 213 ++++++++++ cadetgui/simulation.py | 17 + cadetgui/widget.py | 685 ++++++++++++++++++++++++++++++++ src/cadetProcessAdapter.py | 0 src/widget.py | 41 -- tests/display_widgets.ipynb | 198 +++++++++ tests/test_widgets.py | 104 +++++ 8 files changed, 1217 insertions(+), 41 deletions(-) rename {src => cadetgui}/__init__.py (100%) create mode 100644 cadetgui/cadetprocessadapter.py create mode 100644 cadetgui/simulation.py create mode 100644 cadetgui/widget.py delete mode 100644 src/cadetProcessAdapter.py delete mode 100644 src/widget.py create mode 100644 tests/display_widgets.ipynb create mode 100644 tests/test_widgets.py diff --git a/src/__init__.py b/cadetgui/__init__.py similarity index 100% rename from src/__init__.py rename to cadetgui/__init__.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py new file mode 100644 index 0000000..97399ec --- /dev/null +++ b/cadetgui/cadetprocessadapter.py @@ -0,0 +1,213 @@ +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Callable, Mapping, Sequence, Optional, Dict + +from CADETProcess.processModel import ( + ChromatographicColumnBase, + ComponentSystem, + GeneralRateModel, + LumpedRateModelWithPores, + Cstr +) + +FieldKind = str +Validator = Callable[[Any], None] +Transform = Callable[[Any], Any] + + +@dataclass(frozen=True) +class FieldSpec: + name: str + kind: FieldKind + label: Optional[str] = None + default: Any = None + help: Optional[str] = None + validate: Optional[Validator] = None + transform: Optional[Transform] = None + + +def require_positive(x: Any) -> None: + if float(x) <= 0: + raise ValueError("Must be > 0.") + + +def parse_float_list(v: Any) -> list[float]: + if isinstance(v, (list, tuple)): + return [float(x) for x in v] + s = str(v) + vals: list[float] = [] + for chunk in s.replace(";", ",").replace("\n", " ").split(","): + for tok in chunk.split(): + if tok: + vals.append(float(tok)) + return vals + +PARAMS: dict[str, FieldSpec] = { + "c_feed": FieldSpec("c_feed", "float_list", "Feed concentration", [1.0], transform=parse_float_list), + "c_load": FieldSpec("c_load", "float_list", "Load concentration", [1.0], transform=parse_float_list), + "c_salt_low": FieldSpec("c_salt_low", "float_list", "Low-salt buffer", [0.0], transform=parse_float_list), + "c_salt_high": FieldSpec("c_salt_high", "float_list", "High-salt buffer", [1.0], transform=parse_float_list), + "flow_rate": FieldSpec("flow_rate", "float", "Flow rate", 1.0, validate=require_positive), + "feed_duration": FieldSpec("feed_duration", "float", "Feed duration", 10.0, validate=require_positive), + "load_duration": FieldSpec("load_duration", "float", "Load duration", 10.0, validate=require_positive), + "cycle_time": FieldSpec("cycle_time", "float", "Cycle time", 100.0, validate=require_positive), + "wash_duration": FieldSpec("wash_duration", "float", "Wash duration", 10.0, validate=require_positive), + "gradient_duration": FieldSpec("gradient_duration", "float", "Gradient duration", 30.0, validate=require_positive), + "final_wash_duration": FieldSpec("final_wash_duration", "float", "Final wash duration", 0.0), + "c_eluent": FieldSpec("c_eluent", "float", "Eluent (scalar)", 0.0), +} + + +@dataclass +class ModelSpec: + title: str + fields: list[FieldSpec] = field(default_factory=list) + build: Callable[[Mapping[str, Any]], Any] | None = None + + +def _pick(keys: Sequence[str]) -> list[FieldSpec]: + return [PARAMS[k] for k in keys] + + +def batch_elution_spec(column: ChromatographicColumnBase) -> ModelSpec: + def _build(v: Mapping[str, Any]) -> Any: + # Import here to keep module import cheap + from CADETProcess.modelBuilder import BatchElution + return BatchElution( + column=column, + c_feed=v["c_feed"], + flow_rate=float(v["flow_rate"]), + feed_duration=float(v["feed_duration"]), + cycle_time=float(v["cycle_time"]), + c_eluent=float(v["c_eluent"]), + ) + + return ModelSpec( + title="Batch Elution", + fields=_pick(["c_feed", "flow_rate", "feed_duration", "cycle_time", "c_eluent"]), + build=_build, + ) + + +def lwe_spec(column: ChromatographicColumnBase) -> ModelSpec: + def _build(v: Mapping[str, Any]) -> Any: + from CADETProcess.modelBuilder import LWE + return LWE( + column=column, + c_load=v["c_load"], + c_salt_low=v["c_salt_low"], + c_salt_high=v["c_salt_high"], + flow_rate=float(v["flow_rate"]), + load_duration=float(v["load_duration"]), + wash_duration=float(v["wash_duration"]), + gradient_duration=float(v["gradient_duration"]), + final_wash_duration=float(v["final_wash_duration"]), + ) + + return ModelSpec( + title="Load–Wash–Elute (LWE)", + fields=_pick([ + "c_load", "c_salt_low", "c_salt_high", + "flow_rate", "load_duration", "wash_duration", + "gradient_duration", "final_wash_duration", + ]), + build=_build, + ) + + +# A simple registry the UI can use to populate the model picker. +# Keys are user-facing names; values are callables: (column) -> ModelSpec +MODEL_REGISTRY: dict[str, Callable[[ChromatographicColumnBase], ModelSpec]] = { + "Batch Elution": batch_elution_spec, + "Load–Wash–Elute (LWE)": lwe_spec, + # Add more later, e.g. "SMB": smb_spec, ... +} + + +# ---- Column factories (receive a ComponentSystem and return a column) ---- +ColumnFactory = Callable[[ComponentSystem], ChromatographicColumnBase] + + +def make_grm(cs: ComponentSystem) -> ChromatographicColumnBase: + col = GeneralRateModel(cs, name="GRM") + # Set minimal required parameters as needed, e.g.: + # col.length = 0.10 + return col + + +def make_lrmp(cs: ComponentSystem) -> ChromatographicColumnBase: + col = LumpedRateModelWithPores(cs, name="LRMP") + # col.length = 0.05 + return col + + +def make_cstr(cs: ComponentSystem) -> ChromatographicColumnBase: + col = Cstr(cs, name="CSTR") + return col + + +# Register default factories here +DEFAULT_COLUMN_FACTORIES: Dict[str, ColumnFactory] = { + "GRM": make_grm, + "LRMP": make_lrmp, + "CSTR": make_cstr, + # "TubularReactor": make_tubular(...), + # "MCT": make_mct(...), +} + +# --- Dynamic column configuration from required_parameters --- + +# Optional overrides: parameter name -> FieldKind (e.g., "float", "float_list", "bool", "text") +# For now we default everything to "float", but you can override per name here. +PARAM_TYPE_OVERRIDES: Dict[str, FieldKind] = { + # "length": "float", + # "diameter": "float", + # "porosity_bed": "float", + # "porosity_pore": "float", + # "volume": "float", +} + +def column_spec_from_required(column: ChromatographicColumnBase) -> ModelSpec: + """ + Build a ModelSpec for a column by reflecting over column.required_parameters. + Defaults each field to kind='float' unless overridden in PARAM_TYPE_OVERRIDES. + Uses the current attribute value as the default if present. + """ + req = getattr(column, "required_parameters", None) + if not req: + # Fallback: nothing to configure + return ModelSpec( + title=f"Configure {column.__class__.__name__}", + fields=[], + build=lambda _v: column, + ) + + fields: list[FieldSpec] = [] + for name in req: + kind = PARAM_TYPE_OVERRIDES.get(name, "float") # default everything to float for now + default = getattr(column, name, None) + label = name.replace("_", " ").capitalize() + # You can extend with validation/transform per kind if you like. + fields.append(FieldSpec(name=name, kind=kind, label=label, default=default)) + + def _apply(v: Mapping[str, Any]) -> Any: + # Assign back to the column + for name in req: + if name in v: + try: + if PARAM_TYPE_OVERRIDES.get(name, "float") == "float": + setattr(column, name, float(v[name])) + else: + # room for future kinds + setattr(column, name, v[name]) + except Exception: + # keep going even if a parameter fails to set + pass + return column + + return ModelSpec( + title=f"Configure {column.__class__.__name__}", + fields=fields, + build=_apply, + ) diff --git a/cadetgui/simulation.py b/cadetgui/simulation.py new file mode 100644 index 0000000..e5e1b0b --- /dev/null +++ b/cadetgui/simulation.py @@ -0,0 +1,17 @@ +from __future__ import annotations +from typing import Any + +try: + from CADETProcess.simulator import Cadet +except Exception: + Cadet = None # type: ignore + +def run_process(process: Any, **kwargs) -> Any: + """ + Run a CADET-Process Process with the CADETProcess simulator. + The simulator does not need the component system explicitly. + """ + if Cadet is None: + raise RuntimeError("CADETProcess.simulator is not available") + sim = Cadet() # <-- no component system passed + return sim.simulate(process, **kwargs) diff --git a/cadetgui/widget.py b/cadetgui/widget.py new file mode 100644 index 0000000..5b35c82 --- /dev/null +++ b/cadetgui/widget.py @@ -0,0 +1,685 @@ +from __future__ import annotations + +import io +import traceback +import ipywidgets as W +from abc import ABC, abstractmethod +from contextlib import redirect_stdout, redirect_stderr +from typing import Optional, Mapping, Callable, Any, Union, Dict, List +from .simulation import run_process as _default_runner + +from .cadetprocessadapter import ( + ModelSpec, + MODEL_REGISTRY, + DEFAULT_COLUMN_FACTORIES, + column_spec_from_required, +) +from CADETProcess.processModel import ComponentSystem + +__all__ = [ + "BaseWidget", + "Element", + "TextField", + "FloatField", + "BoolField", + "Display", + "Popup", + "ChoiceField", + "ObjectChoiceField", + "ProcessBuilderForm", + "ConfigurationWidget", + "SolutionWidget", +] + +# ========================= +# Base + small UI elements +# ========================= +class BaseWidget(ABC): + """Base widget container with a header, body, and status bar.""" + + def __init__(self, *, title: Optional[str] = None) -> None: + self.title = title or self.__class__.__name__ + self._status = W.HTML("Ready.") + self._header = W.HTML(f"

{self.title}

") + self._body = self._build_body() + self.root = W.VBox([self._header, self._body, self._status]) + self._wire_events() + + @abstractmethod + def _build_body(self) -> W.Widget: + """Create and return the main widget body.""" + + def _wire_events(self) -> None: + """Connect event handlers (optional override).""" + + def set_status(self, text: str) -> None: + self._status.value = text + + def display(self) -> None: + from IPython.display import display as _display + _display(self.root) + + +class Element(ABC): + """Base class for small reusable form elements.""" + + widget: W.Widget + + def get_value(self) -> object: + raise NotImplementedError + + def set_value(self, value: object) -> None: + raise NotImplementedError + + +class TextField(Element): + def __init__(self, *, label: str = "", value: str = "") -> None: + self.widget = W.Text(description=label, value=value) + + def get_value(self) -> str: + return self.widget.value # type: ignore[return-value] + + def set_value(self, value: object) -> None: + self.widget.value = str(value) + + +class FloatField(Element): + def __init__(self, *, label: str = "", value: float = 0.0) -> None: + self.widget = W.FloatText(description=label, value=float(value)) + + def get_value(self) -> float: + return float(self.widget.value) # type: ignore[return-value] + + def set_value(self, value: object) -> None: + self.widget.value = float(value) # type: ignore[assignment] + + +class BoolField(Element): + def __init__(self, *, label: str = "", value: bool = False) -> None: + self.widget = W.Checkbox(description=label, value=bool(value)) + + def get_value(self) -> bool: + return bool(self.widget.value) # type: ignore[return-value] + + def set_value(self, value: object) -> None: + self.widget.value = bool(value) # type: ignore[assignment] + + +class Display(Element): + def __init__(self, *, html: str = "") -> None: + self.widget = W.HTML(value=html) + + +class Popup(Element): + def __init__(self, *, title: str = "Info", content: W.Widget | None = None) -> None: + body = content or W.HTML("Empty") + acc = W.Accordion(children=[body]) + acc.set_title(0, title) + acc.selected_index = None + self.widget = acc + + def open(self) -> None: + self.widget.selected_index = 0 # type: ignore[attr-defined] + + def close(self) -> None: + self.widget.selected_index = None # type: ignore[attr-defined] + + +class ChoiceField(Element): + """Dropdown for selecting one option from a list of (label, value) pairs.""" + + def __init__(self, *, label: str = "", options: list[tuple[str, object]] | None = None) -> None: + self.widget = W.Dropdown(description=label, options=options or []) + + def get_value(self) -> object: + return self.widget.value # type: ignore[attr-defined, return-value] + + def set_value(self, value: object) -> None: + self.widget.value = value # type: ignore[attr-defined] + + +class ObjectChoiceField(ChoiceField): + """Dropdown for arbitrary objects with a label function (or attribute).""" + + def __init__( + self, + *, + label: str = "Select:", + items: list[object] | dict[str, object], + label_fn: Optional[Callable[[object], str]] = None, + fallback_attr: str = "name", + ) -> None: + pairs: list[tuple[str, object]] = [] + if isinstance(items, dict): + pairs = [(k, v) for k, v in items.items()] + else: + for obj in items: + if label_fn is not None: + pairs.append((str(label_fn(obj)), obj)) + else: + disp = getattr(obj, fallback_attr, obj.__class__.__name__) + pairs.append((str(disp), obj)) + super().__init__(label=label, options=pairs) + + +# =========================== +# ProcessBuilderForm (was SpecDrivenConfig) +# =========================== +class ProcessBuilderForm(BaseWidget): + """ + Render a ModelSpec into a form. On Apply, call spec.build(values) and + store the result (e.g., a Process or a mutated Column) in `self.built`. + """ + + def __init__(self, spec: ModelSpec, *, title: Optional[str] = None) -> None: + self._spec = spec + self._widgets: Dict[str, W.Widget] = {} + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + self.built: Any = None + super().__init__(title=title or spec.title) + + def _field_widget(self, f) -> W.Widget: + kind = f.kind + default = f.default + desc = f.label or f.name + + if kind == "float": + return W.FloatText(description=desc, value=float(default) if default is not None else 0.0) + if kind == "float_list": + init = ", ".join(map(str, default)) if isinstance(default, (list, tuple)) else (str(default) if default is not None else "") + return W.Textarea(description=desc, value=init, layout=W.Layout(width="100%")) + if kind == "bool": + return W.Checkbox(description=desc, value=bool(default)) + return W.Text(description=desc, value=str(default) if default is not None else "") + + def _build_body(self) -> W.Widget: + rows: list[W.Widget] = [] + for f in self._spec.fields: + w = self._field_widget(f) + self._widgets[f.name] = w + rows.append(w) + actions = W.HBox([self._btn_apply, self._btn_reset]) + return W.VBox(rows + [actions]) + + def _wire_events(self) -> None: + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + + def _collect_values(self) -> Dict[str, Any]: + vals: Dict[str, Any] = {} + for f in self._spec.fields: + raw = getattr(self._widgets[f.name], "value", None) + v = raw + if f.transform is not None: + v = f.transform(v) + if f.validate is not None: + f.validate(v) + vals[f.name] = v + return vals + + def _on_apply(self, _btn) -> None: + try: + v = self._collect_values() + if self._spec.build is None: + raise RuntimeError("Spec has no 'build' function.") + self.built = self._spec.build(v) + self.set_status("Built successfully.") + except Exception as e: + self.built = None + self.set_status(f"Error: {e}") + + def _on_reset(self, _btn) -> None: + for f in self._spec.fields: + w = self._widgets[f.name] + default = f.default + try: + if f.kind == "float": + w.value = float(default) if default is not None else 0.0 + elif f.kind == "bool": + w.value = bool(default) + elif f.kind == "float_list": + init = ", ".join(map(str, default)) if isinstance(default, (list, tuple)) else (str(default) if default is not None else "") + w.value = init + else: + w.value = str(default) if default is not None else "" + except Exception: + pass + self.set_status("Reset to defaults.") + + +# ====================== +# Configuration widget +# ====================== +class ConfigurationWidget(BaseWidget): + """ + Unified configuration widget with defaults: + - ComponentSystem(1) + - columns via DEFAULT_COLUMN_FACTORIES + - models via MODEL_REGISTRY + - ProcessBuilderForm as the inner form + + Adds: + - "Components" IntText to rebuild columns on-the-fly + - "Configure column…" popup to edit column.required_parameters + """ + + def __init__( + self, + *, + title: Optional[str] = None, + registry: Optional[dict[str, Callable[[Any], Any]]] = None, # name -> (column) -> ModelSpec + columns: Optional[Union[List[Any], Dict[str, Any]]] = None, + on_built: Optional[Callable[[Any], None]] = None, + spec_builder_cls: Optional[type] = None, # defaults to ProcessBuilderForm + ) -> None: + # default wiring if pieces are missing + use_defaults = (registry is None or columns is None or spec_builder_cls is None) + if use_defaults: + self._DEFAULT_COLUMN_FACTORIES = DEFAULT_COLUMN_FACTORIES + self._can_rebuild_columns = True + self._components_value = 1 + cs = ComponentSystem(self._components_value) + columns = {name: factory(cs) for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} + registry = MODEL_REGISTRY + spec_builder_cls = ProcessBuilderForm + else: + self._DEFAULT_COLUMN_FACTORIES = None + self._can_rebuild_columns = False + self._components_value = None + + # manual-mode state + self._elements: dict[str, Element] = {} + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + + # spec-driven state + self._registry = registry + self._columns = columns + self._on_built = on_built + self._SpecDriven = spec_builder_cls + self.built: Any = None + + # listeners + self._built_listeners: list[Callable[[Any], None]] = [] + + # components field if we can rebuild + self._components_field: Optional[W.IntText] = ( + W.IntText(description="Components:", value=self._components_value, min=1) + if self._can_rebuild_columns else None + ) + + super().__init__(title=title or "Configuration") + + @property + def process(self) -> Any: + return self.built + + def add_built_listener(self, callback: Callable[[Any], None]) -> None: + self._built_listeners.append(callback) + + # ---------- layout ---------- + def _build_body(self) -> W.Widget: + self._manual_mode = not (self._registry and self._columns) + + if self._manual_mode: + self._form_box = W.VBox([]) + self._actions = W.HBox([self._btn_apply, self._btn_reset]) + return W.VBox([self._form_box, self._actions]) + + # keep a label->column list for popup title + if isinstance(self._columns, dict): + self._column_pairs: list[tuple[str, Any]] = list(self._columns.items()) + else: + self._column_pairs = [(getattr(c, "name", c.__class__.__name__), c) for c in self._columns] + + self._model_picker = ObjectChoiceField(label="Model:", items=self._registry) + self._column_picker = ChoiceField(label="Column:", options=self._column_pairs) + + # NEW: column config + self._btn_config_col = W.Button(description="Configure column…", icon="wrench") + self._col_popup = Popup(title="Column configuration") + + self._config_area = W.Box([]) + + rows: list[W.Widget] = [] + if self._components_field is not None: + rows.append(self._components_field) + rows.append(W.HBox([self._model_picker.widget, self._column_picker.widget, self._btn_config_col])) + rows.append(self._col_popup.widget) + rows.append(self._config_area) + return W.VBox(rows) + + def _wire_events(self) -> None: + if getattr(self, "_manual_mode", False): + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + return + + self._model_picker.widget.observe(self._on_spec_change, names="value") + self._column_picker.widget.observe(self._on_spec_change, names="value") + self._btn_config_col.on_click(self._on_open_column_config) + + # init selections + try: + mopts = list(self._model_picker.widget.options) + if mopts: + self._model_picker.set_value(mopts[0][1]) + copts = list(self._column_picker.widget.options) + if copts: + self._column_picker.set_value(copts[0][1]) + except Exception: + pass + + # initial render + model_fn = self._model_picker.get_value() + column = self._column_picker.get_value() + if model_fn and column: + self._rebuild_spec_config(model_fn, column) + + if self._components_field is not None: + self._components_field.observe(self._on_components_change, names="value") + + # ---------- manual-mode API ---------- + def add_field(self, name: str, element: Element) -> None: + if not hasattr(self, "_form_box"): + return + self._elements[name] = element + self._refresh_form() + + def set_values(self, values: Mapping[str, object]) -> None: + if not hasattr(self, "_form_box"): + return + for k, v in values.items(): + el = self._elements.get(k) + if el is not None: + try: + el.set_value(v) + except Exception: + pass + self.set_status("Values updated.") + + def get_values(self) -> dict[str, object]: + if not hasattr(self, "_form_box"): + return {} + out: dict[str, object] = {} + for k, el in self._elements.items(): + try: + out[k] = el.get_value() + except Exception: + out[k] = None + return out + + def _on_apply(self, _btn: W.Button) -> None: # noqa: ARG002 + if not hasattr(self, "_form_box"): + return + cfg = self.get_values() + self.set_status(f"Applied: {cfg}") + + def _on_reset(self, _btn: W.Button) -> None: # noqa: ARG002 + if not hasattr(self, "_form_box"): + return + for el in self._elements.values(): + try: + el.set_value(el.get_value()) + except Exception: + pass + self.set_status("Reset done.") + + def _refresh_form(self) -> None: + if hasattr(self, "_form_box"): + self._form_box.children = [el.widget for el in self._elements.values()] + + # ---------- spec-driven internals ---------- + def _on_spec_change(self, _change) -> None: + model_fn = self._model_picker.get_value() + column = self._column_picker.get_value() + if model_fn and column: + self._rebuild_spec_config(model_fn, column) + + def _on_components_change(self, change) -> None: + if not self._can_rebuild_columns or change["name"] != "value": + return + try: + n = int(change["new"]) + if n < 1: + return + except Exception: + return + + cs = ComponentSystem(n) + new_columns = {name: factory(cs) for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} # type: ignore[index] + self._columns = new_columns + pairs = [(label, col) for label, col in new_columns.items()] + self._column_pairs = pairs + self._column_picker.widget.options = pairs # type: ignore[attr-defined] + if pairs: + self._column_picker.set_value(pairs[0][1]) + model_fn = self._model_picker.get_value() + column = self._column_picker.get_value() + if model_fn and column: + self._rebuild_spec_config(model_fn, column) + self.set_status(f"Rebuilt columns for {n} component(s).") + + def _notify_built(self) -> None: + if self.built is None: + return + for cb in list(self._built_listeners): + try: + cb(self.built) + except Exception: + pass + + def _rebuild_spec_config(self, model_fn: Callable[[Any], Any], column: Any) -> None: + SpecDriven = self._SpecDriven + if SpecDriven is None: + raise RuntimeError("ProcessBuilderForm class not provided.") + spec = model_fn(column) + form = SpecDriven(spec) + + # Copy the built process out after the inner Apply (button already bound in form) + def _after_apply(_b): + if getattr(form, "built", None) is not None: + self.built = form.built + if self._on_built is not None: + self._on_built(form.built) + self._notify_built() + + form._btn_apply.on_click(_after_apply) # type: ignore[attr-defined] + self._config_area.children = [form.root] + self.set_status("Select model & column, configure, then click Apply.") + + def _on_open_column_config(self, _btn) -> None: + """Build and show a popup form for the currently selected column.""" + try: + column = self._column_picker.get_value() + spec = column_spec_from_required(column) + form = ProcessBuilderForm(spec) + + def _after_apply(_b): + name = getattr(column, "name", column.__class__.__name__) + self.set_status(f"Updated column parameters for: {name}") + + form._btn_apply.on_click(_after_apply) # type: ignore[attr-defined] + self._col_popup.widget.children = [form.root] + self._col_popup.open() + except Exception as e: + self._col_popup.widget.children = [W.HTML(f"Error: {e}")] + self._col_popup.open() + + +# ====================== +# Solution widget +# ====================== + +def _try_plot_result(res: Any, out_widget: W.Output) -> None: + import numpy as np + import pprint + try: + import matplotlib.pyplot as plt # noqa: F401 + except Exception: + plt = None + + with out_widget: + # pandas-like + if hasattr(res, "to_pandas") and callable(res.to_pandas): + try: + df = res.to_pandas() # type: ignore[attr-defined] + from IPython.display import display + print("Result (first rows):") + display(df.head()) + if plt is not None: + cols: List[str] = list(df.columns) + tcol = "time" if "time" in cols else ("t" if "t" in cols else None) + ycols = [c for c in cols if c not in ("time", "t")] + if tcol and ycols: + plt.figure() + plt.plot(df[tcol], df[ycols[0]]) + plt.xlabel(tcol) + plt.ylabel(ycols[0]) + plt.title("Simulation (first series)") + plt.show() + return + except Exception as e: + print(f"(Could not render DataFrame view: {e})") + + # simple dict plot + if isinstance(res, dict): + t = res.get("time", res.get("t")) + if t is not None and plt is not None: + for k, v in res.items(): + if k in ("time", "t"): + continue + try: + tt = np.asarray(t) + yy = np.asarray(v) + if tt.ndim == 1 and yy.ndim >= 1 and yy.shape[0] == tt.shape[0]: + plt.figure() + plt.plot(tt, yy) + plt.xlabel("time") + plt.ylabel(k) + plt.title("Simulation") + plt.show() + return + except Exception: + pass + print("Result dictionary:") + pprint.pprint(res) + return + + # fallback print + print("Simulation result:") + pprint.pprint(res) + + +class SolutionWidget(BaseWidget): + """ + Takes a Process and runs it (using CADETProcess.simulator by default). + Can also bind to a ConfigurationWidget to receive the built process on Apply. + """ + + def __init__( + self, + *, + title: Optional[str] = None, + process: Any = None, + config: ConfigurationWidget | None = None, + runner: Callable[[Any], Any] | None = None, + runner_kwargs: Dict[str, Any] | None = None, + ) -> None: + self._process: Any = None + self._btn_run = W.Button(description="Run simulation", icon="play") + self._btn_clear = W.Button(description="Clear", icon="trash") + self._proc_label = W.HTML("No process set.") + self._out = W.Output() + self._show_tb = W.Checkbox(description="Show traceback", value=True) + + self._runner = runner or _default_runner + self._runner_kwargs = runner_kwargs or {} + + super().__init__(title=title or "Solution") + + if process is not None: + self.set_process(process) + if config is not None: + self.bind_to_config(config) + + def set_process(self, process: Any) -> None: + self._process = process + name = getattr(process, "name", process.__class__.__name__) + self._proc_label.value = f"Process: {name}" + self.set_status("Ready to run.") + + def bind_to_config(self, config_widget: ConfigurationWidget) -> None: + config_widget.add_built_listener(self.set_process) + try: + if config_widget.process is not None: + self.set_process(config_widget.process) + except Exception: + pass + + def _build_body(self) -> W.Widget: + controls = W.HBox([self._btn_run, self._btn_clear, self._show_tb]) + header = W.HBox([self._proc_label, controls]) + return W.VBox([header, self._out]) + + def _wire_events(self) -> None: + self._btn_run.on_click(self._on_run) + self._btn_clear.on_click(self._on_clear) + + def _on_run(self, _btn) -> None: + self._out.clear_output() + if self._process is None: + self.set_status("No process to run. Build one first.") + return + + capture = bool(self._show_tb.value) + buf_out = io.StringIO() if capture else None + buf_err = io.StringIO() if capture else None + + try: + if capture: + with redirect_stdout(buf_out), redirect_stderr(buf_err): + res = self._runner(self._process, **self._runner_kwargs) + else: + res = self._runner(self._process, **self._runner_kwargs) + + with self._out: + if capture: + out_txt = buf_out.getvalue() + err_txt = buf_err.getvalue() + if out_txt.strip(): + print("=== stdout ===") + print(out_txt, end="") + if err_txt.strip(): + print("=== stderr ===") + print(err_txt, end="") + print("Simulation finished.") + + _try_plot_result(res, self._out) + self.set_status("Simulation complete.") + + except Exception as e: + with self._out: + if capture: + tb = traceback.TracebackException.from_exception(e, capture_locals=True) + text = "".join(tb.format(chain=True)) + if buf_out: + out_txt = buf_out.getvalue() + if out_txt.strip(): + print("=== stdout (captured) ===") + print(out_txt, end="") + if buf_err: + err_txt = buf_err.getvalue() + if err_txt.strip(): + print("=== stderr (captured) ===") + print(err_txt, end="") + print("=== full traceback (with chained causes) ===") + print(text, end="") + else: + print(f"{e.__class__.__name__}: {e}") + self.set_status(f"Simulation error: {e}") + + def _on_clear(self, _btn) -> None: + self._out.clear_output() + self.set_status("Cleared.") diff --git a/src/cadetProcessAdapter.py b/src/cadetProcessAdapter.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/widget.py b/src/widget.py deleted file mode 100644 index f825a5e..0000000 --- a/src/widget.py +++ /dev/null @@ -1,41 +0,0 @@ -import ipywidgets as W -from abc import ABC, abstractmethod -from typing import Optional - -__all__ = ["BaseWidget"] - - -class BaseWidget(ABC): - """Base widget providing a header, status, and a container layout.""" - - def __init__(self, *, title: Optional[str] = None) -> None: - """ - Initialize the widget container. - - Parameters - ---------- - title : str, optional - Title shown in the header, defaults to the class name. - """ - self.title = title or self.__class__.__name__ - self._status = W.HTML("Ready.") - self._header = W.HTML(f"

{self.title}

") - self._body = self._build_body() - self.root = W.VBox([self._header, self._body, self._status]) - self._wire_events() - - @abstractmethod - def _build_body(self) -> W.Widget: - """Create and return the main widget body.""" - - def _wire_events(self) -> None: - """Connect event handlers (optional, override in subclasses).""" - - def set_status(self, text: str) -> None: - """Update the status display with a text message.""" - self._status.value = text - - def display(self) -> None: - """Render the widget in a Jupyter notebook.""" - from IPython.display import display as _display - _display(self.root) diff --git a/tests/display_widgets.ipynb b/tests/display_widgets.ipynb new file mode 100644 index 0000000..cdb5321 --- /dev/null +++ b/tests/display_widgets.ipynb @@ -0,0 +1,198 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "id": "2d5d3b56", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], + "source": [ + "from cadetgui.widget import ConfigurationWidget, SolutionWidget\n", + "\n", + "\n", + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a9c1028e", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "359a4da7b06c402e9b42215e40d022b1", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HTML(value=\"

Configuration

\"), VBox(children=(IntText(value=1, descript…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ff8d204a6060460dbc1f8f10f00f7cea", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HTML(value=\"

Solution

\"), VBox(children=(HBox(children=(HTML(value='Configuration\"), VBox(children=(HBox(children=(Dropdown(d…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cfg_single = ConfigurationWidget() \n", + "\n", + "cfg_single.display()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "47cef686", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3c62e2016645419995ea78b9878669fe", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HTML(value=\"

Solution

\"), VBox(children=(HBox(children=(HTML(value=' W.Widget: + return W.Label("body") + + +def test_basewidget_concrete_builds_container(): + w = Demo(title="DemoTitle") + assert isinstance(w.root, W.VBox) + assert len(w.root.children) == 3 + header, body, status = w.root.children + assert isinstance(header, W.HTML) + assert "DemoTitle" in header.value + assert isinstance(body, W.Label) + assert isinstance(status, W.HTML) + assert "Ready." in status.value + + +def test_display_no_raise_if_ipython_available(): + ip = pytest.importorskip("IPython") + w = Demo() + w.display() + + +def test_textfield_get_set(): + tf = TextField(label="Name", value="Alice") + assert tf.get_value() == "Alice" + tf.set_value(123) # coerces to str + assert tf.get_value() == "123" + + +def test_floatfield_get_set(): + ff = FloatField(label="K", value=1.5) + assert ff.get_value() == pytest.approx(1.5) + ff.set_value("2.75") + assert ff.get_value() == pytest.approx(2.75) + + +def test_boolfield_get_set(): + bf = BoolField(label="Flag", value=False) + assert bf.get_value() is False + bf.set_value(1) + assert bf.get_value() is True + + +def test_display_constructs_html(): + d = Display(html="Hi") + assert isinstance(d.widget, W.HTML) + assert "Hi" in d.widget.value + + +def test_popup_open_close(): + p = Popup(title="Info") + assert isinstance(p.widget, W.Accordion) + # closed by default + assert p.widget.selected_index is None + p.open() + assert p.widget.selected_index == 0 + p.close() + assert p.widget.selected_index is None + + +def test_configuration_widget_add_fields_and_values(): + cfg = ConfigurationWidget(title="Cfg") + # add fields + cfg.add_field("name", TextField(label="Name")) + cfg.add_field("alpha", FloatField(label="Alpha", value=0.1)) + cfg.add_field("active", BoolField(label="Active")) + # layout should contain form + actions + assert len(cfg.root.children) == 3 # header, body, status + body = cfg.root.children[1] + assert isinstance(body, W.VBox) + # inner VBox children: form_box and actions + form_box, actions = body.children + assert isinstance(form_box, W.VBox) + assert isinstance(actions, W.HBox) + # fields show up in form + assert len(form_box.children) == 3 + + # set/get values + cfg.set_values({"name": "col1", "alpha": 0.42, "active": True}) + values = cfg.get_values() + assert values["name"] == "col1" + assert values["alpha"] == pytest.approx(0.42) + assert values["active"] is True From 8f5c5724d18887e1d591e1568035bfba0b6fdb2c Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 23 Sep 2025 16:52:40 +0200 Subject: [PATCH 007/158] [WIP] Working on Package --- cadetgui/cadetprocessadapter.py | 275 +++++++--- cadetgui/widget.py | 685 ------------------------- cadetgui/widgets/__init__.py | 48 ++ cadetgui/widgets/base.py | 149 ++++++ cadetgui/widgets/config.py | 562 ++++++++++++++++++++ cadetgui/widgets/elements.py | 446 ++++++++++++++++ cadetgui/widgets/form.py | 65 +++ cadetgui/widgets/solution.py | 876 ++++++++++++++++++++++++++++++++ pyproject.toml | 34 +- tests/display_widgets.ipynb | 522 ++++++++++++++++--- tests/test_widgets.py | 2 +- 11 files changed, 2828 insertions(+), 836 deletions(-) delete mode 100644 cadetgui/widget.py create mode 100644 cadetgui/widgets/__init__.py create mode 100644 cadetgui/widgets/base.py create mode 100644 cadetgui/widgets/config.py create mode 100644 cadetgui/widgets/elements.py create mode 100644 cadetgui/widgets/form.py create mode 100644 cadetgui/widgets/solution.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 97399ec..5f2b237 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -1,16 +1,19 @@ from __future__ import annotations from dataclasses import dataclass, field -from typing import Any, Callable, Mapping, Sequence, Optional, Dict +from typing import Any, Callable, Mapping, Sequence, Optional, Dict, Literal from CADETProcess.processModel import ( ChromatographicColumnBase, ComponentSystem, GeneralRateModel, LumpedRateModelWithPores, + LumpedRateModelWithoutPores, Cstr ) +from CADETProcess.modelBuilder import LWE, BatchElution, CLR, FlipFlop, MRSSR + FieldKind = str Validator = Callable[[Any], None] Transform = Callable[[Any], Any] @@ -19,13 +22,14 @@ @dataclass(frozen=True) class FieldSpec: name: str - kind: FieldKind - label: Optional[str] = None + kind: Literal["float", "float_list", "bool", "text"] + label: str | None = None default: Any = None - help: Optional[str] = None + transform: Callable | None = None validate: Optional[Validator] = None - transform: Optional[Transform] = None - + min: float | None = None + max: float | None = None + units: str | None = None def require_positive(x: Any) -> None: if float(x) <= 0: @@ -44,18 +48,27 @@ def parse_float_list(v: Any) -> list[float]: return vals PARAMS: dict[str, FieldSpec] = { - "c_feed": FieldSpec("c_feed", "float_list", "Feed concentration", [1.0], transform=parse_float_list), - "c_load": FieldSpec("c_load", "float_list", "Load concentration", [1.0], transform=parse_float_list), - "c_salt_low": FieldSpec("c_salt_low", "float_list", "Low-salt buffer", [0.0], transform=parse_float_list), - "c_salt_high": FieldSpec("c_salt_high", "float_list", "High-salt buffer", [1.0], transform=parse_float_list), - "flow_rate": FieldSpec("flow_rate", "float", "Flow rate", 1.0, validate=require_positive), - "feed_duration": FieldSpec("feed_duration", "float", "Feed duration", 10.0, validate=require_positive), + "c_feed": FieldSpec("c_feed", "float_list", "Feed concentration", [10.0], transform=parse_float_list), + "c_load": FieldSpec("c_load", "float_list", "Load concentration", [50.0], transform=parse_float_list), + "c_salt_low": FieldSpec("c_salt_low", "float_list", "Low-salt buffer", [50.0], transform=parse_float_list), + "c_salt_high": FieldSpec("c_salt_high", "float_list", "High-salt buffer", [500.0], transform=parse_float_list), + "flow_rate": FieldSpec("flow_rate", "float", "Flow rate", 1.0e-6, validate=require_positive), + "feed_duration": FieldSpec("feed_duration", "float", "Feed duration", 60.0, validate=require_positive), "load_duration": FieldSpec("load_duration", "float", "Load duration", 10.0, validate=require_positive), - "cycle_time": FieldSpec("cycle_time", "float", "Cycle time", 100.0, validate=require_positive), + "cycle_time": FieldSpec("cycle_time", "float", "Cycle time", 6000.0, validate=require_positive), "wash_duration": FieldSpec("wash_duration", "float", "Wash duration", 10.0, validate=require_positive), - "gradient_duration": FieldSpec("gradient_duration", "float", "Gradient duration", 30.0, validate=require_positive), - "final_wash_duration": FieldSpec("final_wash_duration", "float", "Final wash duration", 0.0), + "gradient_duration": FieldSpec("gradient_duration", "float", "Gradient duration", 10.0, validate=require_positive), + "final_wash_duration": FieldSpec("final_wash_duration", "float", "Final wash duration", 10.0), "c_eluent": FieldSpec("c_eluent", "float", "Eluent (scalar)", 0.0), + "recycle_on": FieldSpec("recycle_on", "float", "Recycle on (t)", 250.0, validate=require_positive), + "recycle_off": FieldSpec("recycle_off", "float", "Recycle off (t)", 300.0, validate=require_positive), + "pump_volume": FieldSpec("pump_volume", "float", "Pump volume", 1e-9, validate=require_positive), + "V_tank": FieldSpec("V_tank", "float", "Tank volume", 1e-6, validate=require_positive), + "delay_flip": FieldSpec("delay_flip", "float", "Delay flip (t)", 325.0, validate=require_positive), + "delay_injection": FieldSpec("delay_injection", "float", "Delay injection (t)", 190.0, validate=require_positive), + "c_tank_init": FieldSpec("c_tank_init", "float_list", "Initial tank c",transform=parse_float_list) + + } @@ -72,8 +85,6 @@ def _pick(keys: Sequence[str]) -> list[FieldSpec]: def batch_elution_spec(column: ChromatographicColumnBase) -> ModelSpec: def _build(v: Mapping[str, Any]) -> Any: - # Import here to keep module import cheap - from CADETProcess.modelBuilder import BatchElution return BatchElution( column=column, c_feed=v["c_feed"], @@ -92,7 +103,6 @@ def _build(v: Mapping[str, Any]) -> Any: def lwe_spec(column: ChromatographicColumnBase) -> ModelSpec: def _build(v: Mapping[str, Any]) -> Any: - from CADETProcess.modelBuilder import LWE return LWE( column=column, c_load=v["c_load"], @@ -114,31 +124,122 @@ def _build(v: Mapping[str, Any]) -> Any: ]), build=_build, ) + +def clr_spec(column: ChromatographicColumnBase) -> ModelSpec: + """Closed Loop Recycling (CLR) spec.""" + def _build(v: Mapping[str, Any]) -> Any: + from CADETProcess.modelBuilder import CLR + return CLR( + column=column, + c_feed=v["c_feed"], + flow_rate=float(v["flow_rate"]), + feed_duration=float(v["feed_duration"]), + recycle_off=float(v["recycle_off"]), + cycle_time=float(v["cycle_time"]), + c_eluent=float(v["c_eluent"]), + pump_volume=float(v["pump_volume"]), + ) + + return ModelSpec( + title="Closed Loop Recycling (CLR)", + fields=_pick([ + "c_feed", + "flow_rate", + "feed_duration", + "recycle_off", + "cycle_time", + "c_eluent", + "pump_volume", + ]), + build=_build, + ) + +def flipflop_spec(column: ChromatographicColumnBase) -> ModelSpec: + """Flip-Flop spec.""" + def _build(v: Mapping[str, Any]) -> Any: + from CADETProcess.modelBuilder import FlipFlop + return FlipFlop( + column=column, + c_feed=v["c_feed"], + flow_rate=float(v["flow_rate"]), + feed_duration=float(v["feed_duration"]), + delay_flip=float(v["delay_flip"]), + delay_injection=float(v["delay_injection"]), + c_eluent=float(v["c_eluent"]), # keep scalar eluent for now + ) + + return ModelSpec( + title="Flip-Flop", + fields=_pick([ + "c_feed", + "flow_rate", + "feed_duration", + "delay_flip", + "delay_injection", + "c_eluent", + ]), + build=_build, + ) + +def mrssr_spec(column: ChromatographicColumnBase) -> ModelSpec: + """Mixed-Recycle Steady-State Recycling (MRSSR) spec.""" + def _build(v: Mapping[str, Any]) -> Any: + from CADETProcess.modelBuilder import MRSSR + # c_tank_init may be None (means: use feed concentration) + return MRSSR( + column=column, + c_feed=v["c_feed"], + flow_rate=float(v["flow_rate"]), + feed_duration=float(v["feed_duration"]), + recycle_on=float(v["recycle_on"]), + recycle_off=float(v["recycle_off"]), + cycle_time=float(v["cycle_time"]), + V_tank=float(v["V_tank"]), + c_eluent=float(v["c_eluent"]), + c_tank_init=v["c_tank_init"], + ) + + return ModelSpec( + title="MRSSR", + fields=_pick([ + "c_feed", + "flow_rate", + "feed_duration", + "recycle_on", + "recycle_off", + "cycle_time", + "V_tank", + "c_eluent", + "c_tank_init", + ]), + build=_build, + ) + + -# A simple registry the UI can use to populate the model picker. -# Keys are user-facing names; values are callables: (column) -> ModelSpec MODEL_REGISTRY: dict[str, Callable[[ChromatographicColumnBase], ModelSpec]] = { "Batch Elution": batch_elution_spec, "Load–Wash–Elute (LWE)": lwe_spec, - # Add more later, e.g. "SMB": smb_spec, ... + "CLR": clr_spec, + "Flip-Flop": flipflop_spec, + "MRSSR": mrssr_spec, } - -# ---- Column factories (receive a ComponentSystem and return a column) ---- ColumnFactory = Callable[[ComponentSystem], ChromatographicColumnBase] def make_grm(cs: ComponentSystem) -> ChromatographicColumnBase: col = GeneralRateModel(cs, name="GRM") - # Set minimal required parameters as needed, e.g.: - # col.length = 0.10 return col def make_lrmp(cs: ComponentSystem) -> ChromatographicColumnBase: col = LumpedRateModelWithPores(cs, name="LRMP") - # col.length = 0.05 + return col + +def make_lrm(cs: ComponentSystem) -> ChromatographicColumnBase: + col = LumpedRateModelWithoutPores(cs, name="LRM") return col @@ -151,63 +252,91 @@ def make_cstr(cs: ComponentSystem) -> ChromatographicColumnBase: DEFAULT_COLUMN_FACTORIES: Dict[str, ColumnFactory] = { "GRM": make_grm, "LRMP": make_lrmp, + "LRM": make_lrm, "CSTR": make_cstr, - # "TubularReactor": make_tubular(...), - # "MCT": make_mct(...), -} - -# --- Dynamic column configuration from required_parameters --- -# Optional overrides: parameter name -> FieldKind (e.g., "float", "float_list", "bool", "text") -# For now we default everything to "float", but you can override per name here. -PARAM_TYPE_OVERRIDES: Dict[str, FieldKind] = { - # "length": "float", - # "diameter": "float", - # "porosity_bed": "float", - # "porosity_pore": "float", - # "volume": "float", } -def column_spec_from_required(column: ChromatographicColumnBase) -> ModelSpec: - """ - Build a ModelSpec for a column by reflecting over column.required_parameters. - Defaults each field to kind='float' unless overridden in PARAM_TYPE_OVERRIDES. - Uses the current attribute value as the default if present. - """ - req = getattr(column, "required_parameters", None) - if not req: - # Fallback: nothing to configure - return ModelSpec( - title=f"Configure {column.__class__.__name__}", - fields=[], - build=lambda _v: column, - ) +PARAM_TYPE_OVERRIDES: Dict[str, FieldKind] = {} + +def _unique_preserve_order(names: Sequence[str]) -> list[str]: + """Return names in original order, dropping duplicates (first occurrence wins).""" + seen: set[str] = set() + out: list[str] = [] + for n in names: + if n not in seen: + seen.add(n) + out.append(n) + return out + +PARAM_SCHEMA: dict[str, dict] = { + "diameter": {"kind": "float", "default": 0.024, "min": 0.0, "units": "m"}, + "bed_porosity": {"kind": "float", "default": 0.72, "min": 0.0, "max": 1.0}, + "length": {"kind": "float", "default": 0.5, "min": 0.0, "units": "m"}, + "pore_diffusion": {"kind": "float", "default": 1e-10, "min": 0.0, "units": "m^2/s"}, + "film_diffusion": {"kind": "float", "default": 1e-3, "min": 0.0, "units": "m/s"}, + "particle_porosity": {"kind": "float", "default": 0.6, "min": 0.0, "max": 1.0}, + "particle_radius": {"kind": "float", "default": 5.0e-6, "min": 0.0, "units": "m"}, + "axial_dispersion": {"kind": "float", "default": 1e-8, "min": 0.0, "units": "m^2/s"}, +} +def _infer_kind(x) -> str: + if isinstance(x, (list, tuple)): return "float_list" + if isinstance(x, bool): return "bool" + return "float" + +def _resolve_param(name: str, column_value): + meta = PARAM_SCHEMA.get(name, {}) + default = meta.get("default", column_value) + kind = meta.get("kind", _infer_kind(default)) + transform = parse_float_list if kind == "float_list" else None + bounds = {k: meta[k] for k in ("min", "max") if k in meta} + units = meta.get("units") + return default, kind, transform, bounds, units + +def _coerce_to_kind(kind: str, val): + if kind == "float_list": + return parse_float_list(val) + if kind == "bool": + return bool(val) + # default: float + return float(val) + +def build_column_config_spec(column: ChromatographicColumnBase) -> ModelSpec: + req = getattr(column, "required_parameters", None) or [] + names = _unique_preserve_order(list(req)) fields: list[FieldSpec] = [] - for name in req: - kind = PARAM_TYPE_OVERRIDES.get(name, "float") # default everything to float for now - default = getattr(column, name, None) + + for name in names: + col_val = getattr(column, name, None) + default, kind, transform, bounds, units = _resolve_param(name, col_val) label = name.replace("_", " ").capitalize() - # You can extend with validation/transform per kind if you like. - fields.append(FieldSpec(name=name, kind=kind, label=label, default=default)) - - def _apply(v: Mapping[str, Any]) -> Any: - # Assign back to the column - for name in req: - if name in v: - try: - if PARAM_TYPE_OVERRIDES.get(name, "float") == "float": - setattr(column, name, float(v[name])) - else: - # room for future kinds - setattr(column, name, v[name]) - except Exception: - # keep going even if a parameter fails to set - pass + fs_kwargs = dict(name=name, kind=kind, label=label, default=default, transform=transform, **bounds) + if units is not None: + fs_kwargs["units"] = units + fields.append(FieldSpec(**fs_kwargs)) + + def _apply(values: Mapping[str, Any]) -> Any: + for name in names: + if name not in values: + continue + try: + # prefer schema kind; fall back to explicit overrides; else infer + schema_kind = PARAM_SCHEMA.get(name, {}).get("kind") + kind = schema_kind or PARAM_TYPE_OVERRIDES.get(name) # keep if you still have it + if kind is None: + # last-resort inference from current column value + cur = getattr(column, name, None) + kind = _infer_kind(cur) + coerced = _coerce_to_kind(kind, values[name]) + setattr(column, name, coerced) + except Exception: + # swallow and continue so one bad value doesn't block the rest + continue return column return ModelSpec( title=f"Configure {column.__class__.__name__}", fields=fields, - build=_apply, + build=_apply, # <- pass the function directly; it takes (values) ) diff --git a/cadetgui/widget.py b/cadetgui/widget.py deleted file mode 100644 index 5b35c82..0000000 --- a/cadetgui/widget.py +++ /dev/null @@ -1,685 +0,0 @@ -from __future__ import annotations - -import io -import traceback -import ipywidgets as W -from abc import ABC, abstractmethod -from contextlib import redirect_stdout, redirect_stderr -from typing import Optional, Mapping, Callable, Any, Union, Dict, List -from .simulation import run_process as _default_runner - -from .cadetprocessadapter import ( - ModelSpec, - MODEL_REGISTRY, - DEFAULT_COLUMN_FACTORIES, - column_spec_from_required, -) -from CADETProcess.processModel import ComponentSystem - -__all__ = [ - "BaseWidget", - "Element", - "TextField", - "FloatField", - "BoolField", - "Display", - "Popup", - "ChoiceField", - "ObjectChoiceField", - "ProcessBuilderForm", - "ConfigurationWidget", - "SolutionWidget", -] - -# ========================= -# Base + small UI elements -# ========================= -class BaseWidget(ABC): - """Base widget container with a header, body, and status bar.""" - - def __init__(self, *, title: Optional[str] = None) -> None: - self.title = title or self.__class__.__name__ - self._status = W.HTML("Ready.") - self._header = W.HTML(f"

{self.title}

") - self._body = self._build_body() - self.root = W.VBox([self._header, self._body, self._status]) - self._wire_events() - - @abstractmethod - def _build_body(self) -> W.Widget: - """Create and return the main widget body.""" - - def _wire_events(self) -> None: - """Connect event handlers (optional override).""" - - def set_status(self, text: str) -> None: - self._status.value = text - - def display(self) -> None: - from IPython.display import display as _display - _display(self.root) - - -class Element(ABC): - """Base class for small reusable form elements.""" - - widget: W.Widget - - def get_value(self) -> object: - raise NotImplementedError - - def set_value(self, value: object) -> None: - raise NotImplementedError - - -class TextField(Element): - def __init__(self, *, label: str = "", value: str = "") -> None: - self.widget = W.Text(description=label, value=value) - - def get_value(self) -> str: - return self.widget.value # type: ignore[return-value] - - def set_value(self, value: object) -> None: - self.widget.value = str(value) - - -class FloatField(Element): - def __init__(self, *, label: str = "", value: float = 0.0) -> None: - self.widget = W.FloatText(description=label, value=float(value)) - - def get_value(self) -> float: - return float(self.widget.value) # type: ignore[return-value] - - def set_value(self, value: object) -> None: - self.widget.value = float(value) # type: ignore[assignment] - - -class BoolField(Element): - def __init__(self, *, label: str = "", value: bool = False) -> None: - self.widget = W.Checkbox(description=label, value=bool(value)) - - def get_value(self) -> bool: - return bool(self.widget.value) # type: ignore[return-value] - - def set_value(self, value: object) -> None: - self.widget.value = bool(value) # type: ignore[assignment] - - -class Display(Element): - def __init__(self, *, html: str = "") -> None: - self.widget = W.HTML(value=html) - - -class Popup(Element): - def __init__(self, *, title: str = "Info", content: W.Widget | None = None) -> None: - body = content or W.HTML("Empty") - acc = W.Accordion(children=[body]) - acc.set_title(0, title) - acc.selected_index = None - self.widget = acc - - def open(self) -> None: - self.widget.selected_index = 0 # type: ignore[attr-defined] - - def close(self) -> None: - self.widget.selected_index = None # type: ignore[attr-defined] - - -class ChoiceField(Element): - """Dropdown for selecting one option from a list of (label, value) pairs.""" - - def __init__(self, *, label: str = "", options: list[tuple[str, object]] | None = None) -> None: - self.widget = W.Dropdown(description=label, options=options or []) - - def get_value(self) -> object: - return self.widget.value # type: ignore[attr-defined, return-value] - - def set_value(self, value: object) -> None: - self.widget.value = value # type: ignore[attr-defined] - - -class ObjectChoiceField(ChoiceField): - """Dropdown for arbitrary objects with a label function (or attribute).""" - - def __init__( - self, - *, - label: str = "Select:", - items: list[object] | dict[str, object], - label_fn: Optional[Callable[[object], str]] = None, - fallback_attr: str = "name", - ) -> None: - pairs: list[tuple[str, object]] = [] - if isinstance(items, dict): - pairs = [(k, v) for k, v in items.items()] - else: - for obj in items: - if label_fn is not None: - pairs.append((str(label_fn(obj)), obj)) - else: - disp = getattr(obj, fallback_attr, obj.__class__.__name__) - pairs.append((str(disp), obj)) - super().__init__(label=label, options=pairs) - - -# =========================== -# ProcessBuilderForm (was SpecDrivenConfig) -# =========================== -class ProcessBuilderForm(BaseWidget): - """ - Render a ModelSpec into a form. On Apply, call spec.build(values) and - store the result (e.g., a Process or a mutated Column) in `self.built`. - """ - - def __init__(self, spec: ModelSpec, *, title: Optional[str] = None) -> None: - self._spec = spec - self._widgets: Dict[str, W.Widget] = {} - self._btn_apply = W.Button(description="Apply", button_style="success") - self._btn_reset = W.Button(description="Reset") - self.built: Any = None - super().__init__(title=title or spec.title) - - def _field_widget(self, f) -> W.Widget: - kind = f.kind - default = f.default - desc = f.label or f.name - - if kind == "float": - return W.FloatText(description=desc, value=float(default) if default is not None else 0.0) - if kind == "float_list": - init = ", ".join(map(str, default)) if isinstance(default, (list, tuple)) else (str(default) if default is not None else "") - return W.Textarea(description=desc, value=init, layout=W.Layout(width="100%")) - if kind == "bool": - return W.Checkbox(description=desc, value=bool(default)) - return W.Text(description=desc, value=str(default) if default is not None else "") - - def _build_body(self) -> W.Widget: - rows: list[W.Widget] = [] - for f in self._spec.fields: - w = self._field_widget(f) - self._widgets[f.name] = w - rows.append(w) - actions = W.HBox([self._btn_apply, self._btn_reset]) - return W.VBox(rows + [actions]) - - def _wire_events(self) -> None: - self._btn_apply.on_click(self._on_apply) - self._btn_reset.on_click(self._on_reset) - - def _collect_values(self) -> Dict[str, Any]: - vals: Dict[str, Any] = {} - for f in self._spec.fields: - raw = getattr(self._widgets[f.name], "value", None) - v = raw - if f.transform is not None: - v = f.transform(v) - if f.validate is not None: - f.validate(v) - vals[f.name] = v - return vals - - def _on_apply(self, _btn) -> None: - try: - v = self._collect_values() - if self._spec.build is None: - raise RuntimeError("Spec has no 'build' function.") - self.built = self._spec.build(v) - self.set_status("Built successfully.") - except Exception as e: - self.built = None - self.set_status(f"Error: {e}") - - def _on_reset(self, _btn) -> None: - for f in self._spec.fields: - w = self._widgets[f.name] - default = f.default - try: - if f.kind == "float": - w.value = float(default) if default is not None else 0.0 - elif f.kind == "bool": - w.value = bool(default) - elif f.kind == "float_list": - init = ", ".join(map(str, default)) if isinstance(default, (list, tuple)) else (str(default) if default is not None else "") - w.value = init - else: - w.value = str(default) if default is not None else "" - except Exception: - pass - self.set_status("Reset to defaults.") - - -# ====================== -# Configuration widget -# ====================== -class ConfigurationWidget(BaseWidget): - """ - Unified configuration widget with defaults: - - ComponentSystem(1) - - columns via DEFAULT_COLUMN_FACTORIES - - models via MODEL_REGISTRY - - ProcessBuilderForm as the inner form - - Adds: - - "Components" IntText to rebuild columns on-the-fly - - "Configure column…" popup to edit column.required_parameters - """ - - def __init__( - self, - *, - title: Optional[str] = None, - registry: Optional[dict[str, Callable[[Any], Any]]] = None, # name -> (column) -> ModelSpec - columns: Optional[Union[List[Any], Dict[str, Any]]] = None, - on_built: Optional[Callable[[Any], None]] = None, - spec_builder_cls: Optional[type] = None, # defaults to ProcessBuilderForm - ) -> None: - # default wiring if pieces are missing - use_defaults = (registry is None or columns is None or spec_builder_cls is None) - if use_defaults: - self._DEFAULT_COLUMN_FACTORIES = DEFAULT_COLUMN_FACTORIES - self._can_rebuild_columns = True - self._components_value = 1 - cs = ComponentSystem(self._components_value) - columns = {name: factory(cs) for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} - registry = MODEL_REGISTRY - spec_builder_cls = ProcessBuilderForm - else: - self._DEFAULT_COLUMN_FACTORIES = None - self._can_rebuild_columns = False - self._components_value = None - - # manual-mode state - self._elements: dict[str, Element] = {} - self._btn_apply = W.Button(description="Apply", button_style="success") - self._btn_reset = W.Button(description="Reset") - - # spec-driven state - self._registry = registry - self._columns = columns - self._on_built = on_built - self._SpecDriven = spec_builder_cls - self.built: Any = None - - # listeners - self._built_listeners: list[Callable[[Any], None]] = [] - - # components field if we can rebuild - self._components_field: Optional[W.IntText] = ( - W.IntText(description="Components:", value=self._components_value, min=1) - if self._can_rebuild_columns else None - ) - - super().__init__(title=title or "Configuration") - - @property - def process(self) -> Any: - return self.built - - def add_built_listener(self, callback: Callable[[Any], None]) -> None: - self._built_listeners.append(callback) - - # ---------- layout ---------- - def _build_body(self) -> W.Widget: - self._manual_mode = not (self._registry and self._columns) - - if self._manual_mode: - self._form_box = W.VBox([]) - self._actions = W.HBox([self._btn_apply, self._btn_reset]) - return W.VBox([self._form_box, self._actions]) - - # keep a label->column list for popup title - if isinstance(self._columns, dict): - self._column_pairs: list[tuple[str, Any]] = list(self._columns.items()) - else: - self._column_pairs = [(getattr(c, "name", c.__class__.__name__), c) for c in self._columns] - - self._model_picker = ObjectChoiceField(label="Model:", items=self._registry) - self._column_picker = ChoiceField(label="Column:", options=self._column_pairs) - - # NEW: column config - self._btn_config_col = W.Button(description="Configure column…", icon="wrench") - self._col_popup = Popup(title="Column configuration") - - self._config_area = W.Box([]) - - rows: list[W.Widget] = [] - if self._components_field is not None: - rows.append(self._components_field) - rows.append(W.HBox([self._model_picker.widget, self._column_picker.widget, self._btn_config_col])) - rows.append(self._col_popup.widget) - rows.append(self._config_area) - return W.VBox(rows) - - def _wire_events(self) -> None: - if getattr(self, "_manual_mode", False): - self._btn_apply.on_click(self._on_apply) - self._btn_reset.on_click(self._on_reset) - return - - self._model_picker.widget.observe(self._on_spec_change, names="value") - self._column_picker.widget.observe(self._on_spec_change, names="value") - self._btn_config_col.on_click(self._on_open_column_config) - - # init selections - try: - mopts = list(self._model_picker.widget.options) - if mopts: - self._model_picker.set_value(mopts[0][1]) - copts = list(self._column_picker.widget.options) - if copts: - self._column_picker.set_value(copts[0][1]) - except Exception: - pass - - # initial render - model_fn = self._model_picker.get_value() - column = self._column_picker.get_value() - if model_fn and column: - self._rebuild_spec_config(model_fn, column) - - if self._components_field is not None: - self._components_field.observe(self._on_components_change, names="value") - - # ---------- manual-mode API ---------- - def add_field(self, name: str, element: Element) -> None: - if not hasattr(self, "_form_box"): - return - self._elements[name] = element - self._refresh_form() - - def set_values(self, values: Mapping[str, object]) -> None: - if not hasattr(self, "_form_box"): - return - for k, v in values.items(): - el = self._elements.get(k) - if el is not None: - try: - el.set_value(v) - except Exception: - pass - self.set_status("Values updated.") - - def get_values(self) -> dict[str, object]: - if not hasattr(self, "_form_box"): - return {} - out: dict[str, object] = {} - for k, el in self._elements.items(): - try: - out[k] = el.get_value() - except Exception: - out[k] = None - return out - - def _on_apply(self, _btn: W.Button) -> None: # noqa: ARG002 - if not hasattr(self, "_form_box"): - return - cfg = self.get_values() - self.set_status(f"Applied: {cfg}") - - def _on_reset(self, _btn: W.Button) -> None: # noqa: ARG002 - if not hasattr(self, "_form_box"): - return - for el in self._elements.values(): - try: - el.set_value(el.get_value()) - except Exception: - pass - self.set_status("Reset done.") - - def _refresh_form(self) -> None: - if hasattr(self, "_form_box"): - self._form_box.children = [el.widget for el in self._elements.values()] - - # ---------- spec-driven internals ---------- - def _on_spec_change(self, _change) -> None: - model_fn = self._model_picker.get_value() - column = self._column_picker.get_value() - if model_fn and column: - self._rebuild_spec_config(model_fn, column) - - def _on_components_change(self, change) -> None: - if not self._can_rebuild_columns or change["name"] != "value": - return - try: - n = int(change["new"]) - if n < 1: - return - except Exception: - return - - cs = ComponentSystem(n) - new_columns = {name: factory(cs) for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} # type: ignore[index] - self._columns = new_columns - pairs = [(label, col) for label, col in new_columns.items()] - self._column_pairs = pairs - self._column_picker.widget.options = pairs # type: ignore[attr-defined] - if pairs: - self._column_picker.set_value(pairs[0][1]) - model_fn = self._model_picker.get_value() - column = self._column_picker.get_value() - if model_fn and column: - self._rebuild_spec_config(model_fn, column) - self.set_status(f"Rebuilt columns for {n} component(s).") - - def _notify_built(self) -> None: - if self.built is None: - return - for cb in list(self._built_listeners): - try: - cb(self.built) - except Exception: - pass - - def _rebuild_spec_config(self, model_fn: Callable[[Any], Any], column: Any) -> None: - SpecDriven = self._SpecDriven - if SpecDriven is None: - raise RuntimeError("ProcessBuilderForm class not provided.") - spec = model_fn(column) - form = SpecDriven(spec) - - # Copy the built process out after the inner Apply (button already bound in form) - def _after_apply(_b): - if getattr(form, "built", None) is not None: - self.built = form.built - if self._on_built is not None: - self._on_built(form.built) - self._notify_built() - - form._btn_apply.on_click(_after_apply) # type: ignore[attr-defined] - self._config_area.children = [form.root] - self.set_status("Select model & column, configure, then click Apply.") - - def _on_open_column_config(self, _btn) -> None: - """Build and show a popup form for the currently selected column.""" - try: - column = self._column_picker.get_value() - spec = column_spec_from_required(column) - form = ProcessBuilderForm(spec) - - def _after_apply(_b): - name = getattr(column, "name", column.__class__.__name__) - self.set_status(f"Updated column parameters for: {name}") - - form._btn_apply.on_click(_after_apply) # type: ignore[attr-defined] - self._col_popup.widget.children = [form.root] - self._col_popup.open() - except Exception as e: - self._col_popup.widget.children = [W.HTML(f"Error: {e}")] - self._col_popup.open() - - -# ====================== -# Solution widget -# ====================== - -def _try_plot_result(res: Any, out_widget: W.Output) -> None: - import numpy as np - import pprint - try: - import matplotlib.pyplot as plt # noqa: F401 - except Exception: - plt = None - - with out_widget: - # pandas-like - if hasattr(res, "to_pandas") and callable(res.to_pandas): - try: - df = res.to_pandas() # type: ignore[attr-defined] - from IPython.display import display - print("Result (first rows):") - display(df.head()) - if plt is not None: - cols: List[str] = list(df.columns) - tcol = "time" if "time" in cols else ("t" if "t" in cols else None) - ycols = [c for c in cols if c not in ("time", "t")] - if tcol and ycols: - plt.figure() - plt.plot(df[tcol], df[ycols[0]]) - plt.xlabel(tcol) - plt.ylabel(ycols[0]) - plt.title("Simulation (first series)") - plt.show() - return - except Exception as e: - print(f"(Could not render DataFrame view: {e})") - - # simple dict plot - if isinstance(res, dict): - t = res.get("time", res.get("t")) - if t is not None and plt is not None: - for k, v in res.items(): - if k in ("time", "t"): - continue - try: - tt = np.asarray(t) - yy = np.asarray(v) - if tt.ndim == 1 and yy.ndim >= 1 and yy.shape[0] == tt.shape[0]: - plt.figure() - plt.plot(tt, yy) - plt.xlabel("time") - plt.ylabel(k) - plt.title("Simulation") - plt.show() - return - except Exception: - pass - print("Result dictionary:") - pprint.pprint(res) - return - - # fallback print - print("Simulation result:") - pprint.pprint(res) - - -class SolutionWidget(BaseWidget): - """ - Takes a Process and runs it (using CADETProcess.simulator by default). - Can also bind to a ConfigurationWidget to receive the built process on Apply. - """ - - def __init__( - self, - *, - title: Optional[str] = None, - process: Any = None, - config: ConfigurationWidget | None = None, - runner: Callable[[Any], Any] | None = None, - runner_kwargs: Dict[str, Any] | None = None, - ) -> None: - self._process: Any = None - self._btn_run = W.Button(description="Run simulation", icon="play") - self._btn_clear = W.Button(description="Clear", icon="trash") - self._proc_label = W.HTML("No process set.") - self._out = W.Output() - self._show_tb = W.Checkbox(description="Show traceback", value=True) - - self._runner = runner or _default_runner - self._runner_kwargs = runner_kwargs or {} - - super().__init__(title=title or "Solution") - - if process is not None: - self.set_process(process) - if config is not None: - self.bind_to_config(config) - - def set_process(self, process: Any) -> None: - self._process = process - name = getattr(process, "name", process.__class__.__name__) - self._proc_label.value = f"Process: {name}" - self.set_status("Ready to run.") - - def bind_to_config(self, config_widget: ConfigurationWidget) -> None: - config_widget.add_built_listener(self.set_process) - try: - if config_widget.process is not None: - self.set_process(config_widget.process) - except Exception: - pass - - def _build_body(self) -> W.Widget: - controls = W.HBox([self._btn_run, self._btn_clear, self._show_tb]) - header = W.HBox([self._proc_label, controls]) - return W.VBox([header, self._out]) - - def _wire_events(self) -> None: - self._btn_run.on_click(self._on_run) - self._btn_clear.on_click(self._on_clear) - - def _on_run(self, _btn) -> None: - self._out.clear_output() - if self._process is None: - self.set_status("No process to run. Build one first.") - return - - capture = bool(self._show_tb.value) - buf_out = io.StringIO() if capture else None - buf_err = io.StringIO() if capture else None - - try: - if capture: - with redirect_stdout(buf_out), redirect_stderr(buf_err): - res = self._runner(self._process, **self._runner_kwargs) - else: - res = self._runner(self._process, **self._runner_kwargs) - - with self._out: - if capture: - out_txt = buf_out.getvalue() - err_txt = buf_err.getvalue() - if out_txt.strip(): - print("=== stdout ===") - print(out_txt, end="") - if err_txt.strip(): - print("=== stderr ===") - print(err_txt, end="") - print("Simulation finished.") - - _try_plot_result(res, self._out) - self.set_status("Simulation complete.") - - except Exception as e: - with self._out: - if capture: - tb = traceback.TracebackException.from_exception(e, capture_locals=True) - text = "".join(tb.format(chain=True)) - if buf_out: - out_txt = buf_out.getvalue() - if out_txt.strip(): - print("=== stdout (captured) ===") - print(out_txt, end="") - if buf_err: - err_txt = buf_err.getvalue() - if err_txt.strip(): - print("=== stderr (captured) ===") - print(err_txt, end="") - print("=== full traceback (with chained causes) ===") - print(text, end="") - else: - print(f"{e.__class__.__name__}: {e}") - self.set_status(f"Simulation error: {e}") - - def _on_clear(self, _btn) -> None: - self._out.clear_output() - self.set_status("Cleared.") diff --git a/cadetgui/widgets/__init__.py b/cadetgui/widgets/__init__.py new file mode 100644 index 0000000..cee1d28 --- /dev/null +++ b/cadetgui/widgets/__init__.py @@ -0,0 +1,48 @@ +# ========================================= +# File: cadetgui/widgets/__init__.py +# ========================================= +"""Composable ipywidgets for CADET-GUI. + +This subpackage provides: +- elements: small form controls and simple display helpers +- base: BaseWidget and ListenerMixin +- form: FormRenderer to render a ModelSpec to a form +- config: ConfigurationWidget for model+column selection & config +- solution: SolutionWidget to run and visualize simulations + +Public API is re-exported for convenience. +""" +from .elements import ( + Element, + TextField, + FloatField, + BoolField, + Display, + Popup, + ChoiceField, + ObjectChoiceField +) +from .base import BaseWidget, ListenerMixin +from .form import FormRenderer +from .config import ConfigurationWidget +from .solution import SolutionWidget + +__all__ = [ + "BaseWidget", + "ListenerMixin", + "Element", + "TextField", + "FloatField", + "BoolField", + "Display", + "Popup", + "ChoiceField", + "ObjectChoiceField", + "OverlayModal", + "FormRenderer", + "ConfigurationWidget", + "SolutionWidget", +] + + + diff --git a/cadetgui/widgets/base.py b/cadetgui/widgets/base.py new file mode 100644 index 0000000..1bda74a --- /dev/null +++ b/cadetgui/widgets/base.py @@ -0,0 +1,149 @@ +# ========================================= +# File: cadetgui/widgets/base.py +# ========================================= +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any, Callable, Dict, Optional +from .elements import FloatListInput, FloatListField + +import ipywidgets as W + +__all__ = ["ListenerMixin", "BaseWidget"] + +LABEL_W = "140px" + +def _style_field(w: W.Widget, *, width: str = "300px", label_width: str = LABEL_W, grow: bool = False) -> W.Widget: + if hasattr(w, "layout"): + w.layout.width = "100%" if grow else width + w.layout.min_width = "0" + if not grow: + w.layout.flex = "0 0 auto" + if hasattr(w, "style"): + try: + w.style.description_width = label_width # <<< fixed label column + except Exception: + pass + return w + +class ListenerMixin: + """Reusable mixin that provides listener registration and notification.""" + + def __init__(self) -> None: + self._listeners: list[Callable[[Any], None]] = [] + + def add_listener(self, fn: Callable[[Any], None]) -> None: + """Register a listener callback.""" + self._listeners.append(fn) + + def notify(self, value: Any) -> None: + """Notify all registered listeners with a new value.""" + for fn in list(self._listeners): + try: + fn(value) + except Exception: + pass + + +class BaseWidget(ABC): + """Base widget container with a header, body, and status bar.""" + + def __init__(self, *, title: Optional[str] = None) -> None: + self.title = title or self.__class__.__name__ + self._status = W.HTML("Ready.") + self._header = W.HTML(f"

{self.title}

") + self._body = self._build_body() + self.root = W.VBox([self._header, self._body, self._status]) + self._wire_events() + + @abstractmethod + def _build_body(self) -> W.Widget: + ... + + def _wire_events(self) -> None: + """Connect event handlers (optional override).""" + + def set_status(self, text: str) -> None: + self._status.value = text + + def set_error(self, exc: Exception | str) -> None: + msg = str(exc) if isinstance(exc, Exception) else exc + self._status.value = f"{msg}" + + def run_safe(self, func: Callable[..., Any], *args: Any, **kwargs: Any) -> Any | None: + try: + return func(*args, **kwargs) + except Exception as exc: # noqa: BLE001 + self.set_error(exc) + return None + + @staticmethod + def make_apply_reset(on_apply: Callable[..., Any], on_reset: Callable[..., Any]) -> W.HBox: + btn_apply = W.Button(description="Apply", button_style="success") + btn_reset = W.Button(description="Reset") + btn_apply.on_click(on_apply) + btn_reset.on_click(on_reset) + return W.HBox([btn_apply, btn_reset]) + + @staticmethod + def reset_fields(widgets: Dict[str, W.Widget], specs: list[Any]) -> None: + for f in specs: + w = widgets[f.name] + default = f.default + try: + if f.kind == "float": + w.value = float(default) if default is not None else 0.0 + elif f.kind == "bool": + w.value = bool(default) + elif f.kind == "float_list": + init = ", ".join(map(str, default)) if isinstance(default, (list, tuple)) else str(default or "") + w.value = init + else: + w.value = str(default or "") + except Exception: + pass + + @staticmethod + def widget_for_field(f: Any) -> W.Widget: + label = getattr(f, "label", None) or getattr(f, "name", "") + kind = getattr(f, "kind", "text") + default = getattr(f, "default", None) + + if kind == "float": + w = W.BoundedFloatText( + description=label, + value=float(default) if default is not None else 0, + min=0.0, step=1e-6, readout_format=".6g", + ) + return _style_field(w) + + if kind == "bool": + w = W.Checkbox(description=label, value=bool(default)) + return _style_field(w, width="auto") + + if kind == "float_list": + # see aligned list component below + vals = list(default) if isinstance(default, (list, tuple)) else ( + [float(default)] if default is not None else [] + ) + return FloatListField(description=label, values=vals, label_width=LABEL_W) + + w = W.Text(description=label, value=str(default) if default is not None else "") + return _style_field(w) + + + @staticmethod + def observe_and_rebuild(widget: W.Widget, names: str, rebuild_fn: Callable[[Any], None]) -> None: + def _on_change(change: dict) -> None: + if change.get("name") != names: + return + rebuild_fn(change.get("new")) + + widget.observe(_on_change, names=names) + + def display(self) -> None: + from IPython.display import display as _display + + _display(self.root) + + diff --git a/cadetgui/widgets/config.py b/cadetgui/widgets/config.py new file mode 100644 index 0000000..b7fbc77 --- /dev/null +++ b/cadetgui/widgets/config.py @@ -0,0 +1,562 @@ +from __future__ import annotations + +from typing import Any, Callable, Optional, Union, Dict +from threading import Timer +import warnings +import ipywidgets as W +from CADETProcess.processModel import ComponentSystem + +from .base import BaseWidget, ListenerMixin +from .elements import ChoiceField, ObjectChoiceField, Modal +from .form import FormRenderer +from ..cadetprocessadapter import ( + DEFAULT_COLUMN_FACTORIES, + MODEL_REGISTRY, + build_column_config_spec, +) + +__all__ = ["ConfigurationWidget"] + +# ---------------------- +# CSS-like layout tokens +# ---------------------- + +CSS_ROOT = W.Layout( + position="relative", + width="100%", + overflow="visible", + display="block", + z_index="0", +) + +CSS_TOOLBAR_WRAP = W.Layout( + position="relative", + width="100%", + overflow="visible", + z_index="0", +) + +# Model & Column pickers row +CSS_TOOLBAR_ROW = W.Layout( + align_items="center", + position="relative", + flex_wrap="wrap", + min_width="0", +) + +# Toolbar popover panel +CSS_TOOLBAR_POPOVER = W.Layout( + display="none", + position="absolute", + top="calc(100% + 8px)", + right="0", + width="420px", + max_height="60vh", + overflow_y="auto", + padding="16px", + border="1px solid #ccc", + border_radius="12px", + background_color="#fff", + box_shadow="0 8px 24px rgba(0,0,0,0.25)", + z_index="10020", +) + +# Main model configuration panel (no horizontal scroll) +CSS_MODEL_PANEL = W.Layout( + min_height="500px", + max_width="400px", + display="block", + overflow_x="hidden", +) + +# Grey overlay dimmer for popovers & modal +CSS_OVERLAY_DIMMER = W.Layout( + display="none", + position="absolute", + top="0", left="0", right="0", bottom="0", + background_color="rgba(0,0,0,0.25)", + z_index="10010", + pointer_events="auto", +) + +# Raise a control above overlays if needed +CSS_RAISE_ABOVE_OVERLAY = dict(position="relative", z_index="10040", pointer_events="auto") + + +# ---------------------- +# Utilities +# ---------------------- + +def _set_attr_path(obj: Any, path: str, value: Any) -> None: + """Set attribute or mapping by dotted path. Supports 'param:Family.key'.""" + if path.startswith("param:"): + _, rest = path.split("param:", 1) + family, key = rest.split(".", 1) + try: + obj.parameter[family][key] = value + return + except Exception: + pass + target = obj + parts = path.split(".") + for part in parts[:-1]: + target = getattr(target, part) + setattr(target, parts[-1], value) + + +# ---------------------- +# Widget +# ---------------------- + +class ConfigurationWidget(BaseWidget, ListenerMixin): + """Unified configuration widget for model/column-based process building. + + - Model Configuration: main panel under the toolbar (builds the process) + - Column Configuration: modal dialog for editing column parameters + """ + + # ----- init & state ----- + def __init__( + self, + *, + title: Optional[str] = None, + registry: Optional[dict[str, Callable[[Any], Any]]] = None, + columns: Optional[Union[list[Any], dict[str, Any]]] = None, + on_built: Optional[Callable[[Any], None]] = None, + spec_builder: Optional[type[FormRenderer]] = None, + ) -> None: + ListenerMixin.__init__(self) + + use_defaults = registry is None or columns is None or spec_builder is None + if use_defaults: + self._DEFAULT_COLUMN_FACTORIES = DEFAULT_COLUMN_FACTORIES + self._can_rebuild_columns = True + self._components_value = 1 + columns = DEFAULT_COLUMN_FACTORIES + registry = MODEL_REGISTRY + spec_builder = FormRenderer + else: + self._DEFAULT_COLUMN_FACTORIES = None + self._can_rebuild_columns = False + self._components_value = None + + # External deps / factories + self._registry = registry + self._columns = columns + self._SpecDriven = spec_builder + self._on_built = on_built + + # Column Config modal + self._column_modal = Modal("Column configuration") + + # State + self._built: Any | None = None + self._column_cache: dict[object, Any] = {} + + # Anti-flicker / concurrency guards + self._suspend_main_rebuild: bool = False + self._toolbar_popover_timer: Optional[Timer] = None + self._toolbar_popover_last_factory: Any = None + + # Detachable observers + self._obs_model_spec = None + self._obs_column_spec = None + + # Controls + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + self._btn_open_column_modal = W.Button(description="Configure column…", icon="wrench") + + self._components_field: Optional[W.IntText] = ( + W.IntText(description="Components:", value=self._components_value, min=1) + if self._can_rebuild_columns + else None + ) + + super().__init__(title=title or "Configuration") + + # Public API + @property + def process(self) -> Any | None: + return self._built + + # ----- UI builders ----- + def _build_toolbar_row(self) -> W.Widget: + self._model_picker = ObjectChoiceField(label="Model:", items=self._registry) # type: ignore[arg-type] + self._column_picker = ChoiceField(label="Column:", options=self._column_pairs) + for k, v in CSS_RAISE_ABOVE_OVERLAY.items(): + setattr(self._column_picker.widget.layout, k, v) + + row = W.HBox( + [self._components_field, self._model_picker.widget, self._column_picker.widget, self._btn_open_column_modal], + layout=CSS_TOOLBAR_ROW, + ) + return row + + def _build_toolbar_popover(self) -> W.Widget: + self._toolbar_popover = W.VBox([], layout=CSS_TOOLBAR_POPOVER) + return self._toolbar_popover + + def _build_model_panel(self) -> W.Widget: + self._model_panel = W.Box([], layout=CSS_MODEL_PANEL) + return self._model_panel + + def _build_overlay_dimmer(self) -> W.Widget: + self._overlay_dimmer = W.Box([], layout=CSS_OVERLAY_DIMMER) + return self._overlay_dimmer + + # ----- BaseWidget hooks ----- + def _build_body(self) -> W.Widget: + self._manual_mode = not (self._registry and self._columns) + if self._manual_mode: + self._form_box = W.VBox([]) + self._actions = W.HBox([self._btn_apply, self._btn_reset]) + return W.VBox([self._form_box, self._actions]) + + # Normalize columns + if isinstance(self._columns, dict): + self._column_pairs = list(self._columns.items()) + else: + self._column_pairs = [ + (getattr(c, "name", c.__class__.__name__), c) for c in self._columns + ] + + # Toolbar (row + popover anchored to it) + toolbar_row = self._build_toolbar_row() + self._toolbar_wrap = W.Box([toolbar_row], layout=CSS_TOOLBAR_WRAP) + self._toolbar_popover = self._build_toolbar_popover() + self._toolbar_wrap.children = [toolbar_row, self._toolbar_popover] + + # Model Config panel + self._model_panel = self._build_model_panel() + + # Content + self._content = W.VBox([self._toolbar_wrap, self._model_panel], layout=W.Layout(width="100%")) + + # Overlays: dimmer then column modal, all inside the root + self._overlay_dimmer = self._build_overlay_dimmer() + self._root = W.Box([self._content, self._overlay_dimmer, self._column_modal.widget], layout=CSS_ROOT) + + return W.VBox([self._root]) + + def _wire_events(self) -> None: + if getattr(self, "_manual_mode", False): + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + return + + self._attach_main_observers() + self._btn_open_column_modal.on_click(self._open_column_modal) + + # Initialize picks + try: + mopts = list(self._model_picker.widget.options) + if mopts: + self._model_picker.set_value(mopts[0][1]) + copts = list(self._column_picker.widget.options) + if copts: + self._column_picker.set_value(copts[0][1]) + except Exception: + pass + + # Initial form + model_fn, column = self._get_selection() + if model_fn and column: + self._rebuild_model_panel(model_fn, column) + + # Components watcher + if self._components_field: + self._components_field.observe(self._on_components_change, names="value") + + # ----- Toolbar popover helpers ----- + def _show_toolbar_popover(self, content: W.Widget, *, title: str | None = None) -> None: + if getattr(self._column_modal, "is_open", False): + try: + self._column_modal.close() + except Exception: + pass + if title: + title_html = W.HTML(f"

{title}

") + self._toolbar_popover.children = [title_html, content] + else: + self._toolbar_popover.children = [content] + self._toolbar_popover.layout.display = "flex" + self._overlay_dimmer.layout.display = "flex" + + def _hide_toolbar_popover(self) -> None: + self._toolbar_popover.layout.display = "none" + self._toolbar_popover.children = [] + self._overlay_dimmer.layout.display = "none" + + def _open_toolbar_popover_with_live_update( + self, + *, + initial_factory: Any, + rebuild_fn: Callable[[Any], FormRenderer], + title_fn: Callable[[Any], str], + observe_widget: W.Widget, + names: str = "value", + ) -> None: + if getattr(self._column_modal, "is_open", False): + try: + self._column_modal.close() + except Exception: + pass + + self._detach_main_observers() + self._suspend_main_rebuild = True + + def _restore(): + self._suspend_main_rebuild = False + try: + observe_widget.unobserve(_on_change, names=names) + except Exception: + pass + if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): + try: + self._toolbar_popover_timer.cancel() + except Exception: + pass + self._attach_main_observers() + self._hide_toolbar_popover() + + form = rebuild_fn(initial_factory) + self._toolbar_popover_last_factory = initial_factory + self._show_toolbar_popover(form.root, title=title_fn(initial_factory)) + + self._toolbar_popover_timer = None + + def _do_rebuild(factory: Any) -> None: + try: + new_form = rebuild_fn(factory) + self._toolbar_popover_last_factory = factory + self._show_toolbar_popover(new_form.root, title=title_fn(factory)) + except Exception as exc: + self._show_toolbar_popover(W.HTML(f"Error: {exc}")) + + def _on_change(change: dict) -> None: + if change.get("name") != names: + return + factory = change.get("new") + if factory is self._toolbar_popover_last_factory: + return + if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): + try: + self._toolbar_popover_timer.cancel() + except Exception: + pass + self._toolbar_popover_timer = Timer(0.12, _do_rebuild, args=(factory,)) + self._toolbar_popover_timer.start() + + observe_widget.observe(_on_change, names=names) + self._popover_close = _restore # retained attribute name for backward-compat + + # ----- Build helpers (Model/Column) ----- + def _build_model_form(self, model_fn: Callable[[Any], Any], column: Any) -> FormRenderer: + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=UserWarning) + spec = model_fn(column) + + form = (self._SpecDriven or FormRenderer)(spec) # type: ignore[call-arg] + + def _after_apply(_b: W.Button) -> None: + if getattr(form, "built", None) is not None: + self._built = form.built + if self._on_built: + self._on_built(form.built) + self.notify(self._built) + + form._btn_apply.on_click(_after_apply) # noqa: SLF001 + return form + + def _build_column_form(self, column: Any) -> FormRenderer: + spec = build_column_config_spec(column) + form = FormRenderer(spec) + + spec_apply = getattr(spec, "apply", None) + + def _apply_into_column(_b: W.Button) -> None: + vals: Dict[str, Any] = {} + for f in spec.fields: + raw = getattr(form._widgets[f.name], "value", None) # noqa: SLF001 + val = f.transform(raw) if f.transform else raw + if f.validate: + f.validate(val) + vals[f.name] = val + + if callable(spec_apply): + spec_apply(column, vals) + else: + targets = getattr(spec, "targets", None) or {} + wrote_any = False + for fname, v in vals.items(): + target_path = targets.get(fname) + try: + if target_path: + _set_attr_path(column, target_path, v) + wrote_any = True + elif hasattr(column, fname): + setattr(column, fname, v) + wrote_any = True + except Exception: + pass + if not wrote_any: + for k, v in vals.items(): + try: + column.parameter["LRMP"][k] = v + wrote_any = True + except Exception: + pass + + name = getattr(column, "name", column.__class__.__name__) + self.set_status(f"Updated column parameters for: {name}") + self._hide_toolbar_popover() + + form._btn_apply.on_click(_apply_into_column) # noqa: SLF001 + return form + + # ----- Selection helpers ----- + def _make_column(self, factory: Callable[[ComponentSystem], Any]) -> Any: + if factory in self._column_cache: + return self._column_cache[factory] + cs = ComponentSystem(self._components_field.value if self._components_field else 1) + return factory(cs) + + def _get_selection(self) -> tuple[Callable[[Any], Any] | None, Any | None]: + model_fn = self._model_picker.get_value() if hasattr(self, "_model_picker") else None + col_factory = self._column_picker.get_value() if hasattr(self, "_column_picker") else None + column = self._column_cache.get(col_factory) if callable(col_factory) else col_factory + if column is None and callable(col_factory): + column = self._make_column(col_factory) + return model_fn, column + + # ----- Observers attach/detach ----- + def _attach_main_observers(self) -> None: + if self._obs_model_spec is None: + self._obs_model_spec = lambda ch: self._on_spec_change(ch) + self._model_picker.widget.observe(self._obs_model_spec, names="value") + if self._obs_column_spec is None: + self._obs_column_spec = lambda ch: self._on_spec_change(ch) + self._column_picker.widget.observe(self._obs_column_spec, names="value") + + def _detach_main_observers(self) -> None: + if self._obs_model_spec is not None: + try: + self._model_picker.widget.unobserve(self._obs_model_spec, names="value") + except Exception: + pass + self._obs_model_spec = None + if self._obs_column_spec is not None: + try: + self._column_picker.widget.unobserve(self._obs_column_spec, names="value") + except Exception: + pass + self._obs_column_spec = None + + # ----- Event handlers ----- + def _rebuild_model_panel(self, model_fn: Callable[[Any], Any], column: Any) -> None: + form = self._build_model_form(model_fn, column) + with self._model_panel.hold_trait_notifications(): + self._model_panel.children = [form.root] + self.set_status("Select model & column, configure, then click Apply.") + + def _on_spec_change(self, _change: dict) -> None: + if self._suspend_main_rebuild: + return + model_fn, column = self._get_selection() + if model_fn and column: + self._rebuild_model_panel(model_fn, column) + + def _on_components_change(self, change: dict) -> None: + if not self._can_rebuild_columns or change.get("name") != "value": + return + try: + n = int(change["new"]) # type: ignore[index] + if n < 1: + return + except Exception: + return + + self._column_cache.clear() + self._columns = {name: factory for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} # type: ignore[union-attr] + pairs = list(self._columns.items()) + self._column_pairs = pairs + self._column_picker.widget.options = pairs + if pairs: + self._column_picker.set_value(pairs[0][1]) + + model_fn, column = self._get_selection() + if model_fn and column: + self._rebuild_model_panel(model_fn, column) + self.set_status(f"Rebuilt columns for {n} component(s).") + + def _open_column_modal(self, _btn): + # Close any live popover sessions + if hasattr(self, "_popover_close"): + try: + self._popover_close() + except Exception: + pass + try: + del self._popover_close + except Exception: + pass + if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): + try: + self._toolbar_popover_timer.cancel() + except Exception: + pass + + col_factory = self._column_picker.get_value() + if col_factory is None: + self.set_status("Pick a column first.") + return + + self._overlay_dimmer.layout.display = "flex" + self._suspend_main_rebuild = True + self._detach_main_observers() + + def build_form_for(factory): + column = self._column_cache.get(factory) or self._make_column(factory) + form = self._build_column_form(column) + def _cache_after_apply(_b): + self._column_cache[factory] = column + model_fn, _ = self._get_selection() + if model_fn is not None: + self._rebuild_model_panel(model_fn, column) + self._column_modal.close() + form._btn_apply.on_click(_cache_after_apply) # noqa: SLF001 + return column, form + + column, form = build_form_for(col_factory) + self._column_modal.open(form.root, title=f"Configure: {getattr(column, 'name', column.__class__.__name__)}") + + def _on_dropdown_change(change: dict): + if change.get("name") != "value" or not self._column_modal.is_open: + return + try: + column2, form2 = build_form_for(change.get("new")) + self._column_modal.set_body(form2.root) + self._column_modal.set_title(f"Configure: {getattr(column2, 'name', column2.__class__.__name__)}") + except Exception as exc: + self._column_modal.set_body(W.HTML(f"Error: {exc}")) + + self._column_picker.widget.observe(_on_dropdown_change, names="value") + + def _on_modal_close(): + try: + self._column_picker.widget.unobserve(_on_dropdown_change, names="value") + except Exception: + pass + self._overlay_dimmer.layout.display = "none" + self._suspend_main_rebuild = False + self._attach_main_observers() + + self._column_modal.add_close_listener(_on_modal_close) + + # ----- Manual mode ----- + def _on_apply(self, _btn: W.Button) -> None: + self.set_status("Manual mode not implemented.") + + def _on_reset(self, _btn: W.Button) -> None: + self.set_status("Reset.") \ No newline at end of file diff --git a/cadetgui/widgets/elements.py b/cadetgui/widgets/elements.py new file mode 100644 index 0000000..eac5203 --- /dev/null +++ b/cadetgui/widgets/elements.py @@ -0,0 +1,446 @@ +# ========================================= +# File: cadetgui/widgets/elements.py +# ========================================= +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any, Callable, Iterable, Optional, Sequence, Tuple, TypeVar + +import ipywidgets as W + +__all__ = [ + "Element", + "TextField", + "FloatField", + "BoolField", + "Display", + "ChoiceField", + "ObjectChoiceField", + "Modal", +] + +T = TypeVar("T") + + +class Element(ABC): + """Base class for small reusable form elements.""" + + widget: W.Widget + + @abstractmethod + def get_value(self) -> Any: + """Return the current value.""" + + @abstractmethod + def set_value(self, value: Any) -> None: + """Set the current value.""" + + +class TextField(Element): + """Single-line text input with label.""" + + def __init__(self, *, label: str = "", value: str = "") -> None: + self.widget = W.Text(description=label, value=value) + + def get_value(self) -> str: # type: ignore[override] + return str(self.widget.value) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = str(value) + + +class FloatField(Element): + """Float input with label.""" + + def __init__(self, *, label: str = "", value: float = 0.0) -> None: + self.widget = W.FloatText(description=label, value=float(value)) + + def get_value(self) -> float: # type: ignore[override] + return float(self.widget.value) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = float(value) + + +class BoolField(Element): + """Boolean checkbox with label.""" + + def __init__(self, *, label: str = "", value: bool = False) -> None: + self.widget = W.Checkbox(description=label, value=bool(value)) + + def get_value(self) -> bool: # type: ignore[override] + return bool(self.widget.value) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = bool(value) + + +class Display(Element): + """Read-only HTML display block.""" + + def __init__(self, *, html: str = "") -> None: + self.widget = W.HTML(value=html) + + def get_value(self) -> str: # type: ignore[override] + return str(getattr(self.widget, "value", "")) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = str(value) + +class FloatListInput(W.VBox): + """Editable list of positive floats with +/− controls (no textarea).""" + + def __init__(self, *, label: str = "", values: list[float] | None = None, + min_val: float = 1e-300, step: float = 1e-6) -> None: + self._min = min_val + self._step = step + self._rows = W.VBox([]) + self._add = W.Button(icon="plus", tooltip="Add value") + self._label = W.Label(label) if label else W.Label() + super().__init__([self._label, self._rows, self._add], + layout=W.Layout(width="100%", min_width="0")) + + for v in (values if values else [0.0]): + self._add_row(float(v) if v is not None else 0.0) + + self._add.on_click(lambda _: self._add_row()) + + def _add_row(self, value: float = 0.0) -> None: + num = W.BoundedFloatText( + value=max(value, self._min), + min=self._min, + step=self._step, + readout_format=".6g", + layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), + ) + rm = W.Button(icon="trash", tooltip="Remove") + row = W.HBox([num, rm], layout=W.Layout(align_items="center")) + rm.on_click(lambda _b: self._remove_row(row)) + self._rows.children = tuple(list(self._rows.children) + [row]) + + def _remove_row(self, row: W.HBox) -> None: + items = list(self._rows.children) + try: + items.remove(row) + self._rows.children = tuple(items if items else []) + except ValueError: + pass + + @property + def value(self) -> list[float]: + return [float(ch.children[0].value) for ch in self._rows.children] + +import ipywidgets as W + +class FloatListField(W.HBox): + """List of positive floats aligned with other fields' description column.""" + def __init__(self, *, description: str, values: list[float] | None = None, + label_width: str = "140px", min_val: float = 1e-300, step: float = 1e-6): + self._min = min_val + self._step = step + self._rows = W.VBox([]) + self._add = W.Button(icon="plus", tooltip="Add value") + label = W.Label(description, layout=W.Layout(width=label_width, flex="0 0 auto")) + + box = W.VBox([self._rows, self._add], layout=W.Layout(width="100%", min_width="0")) + super().__init__([label, box], + layout=W.Layout(align_items="flex-start", width="100%", min_width="0")) + + for v in (values if values else [min_val]): + self._add_row(float(v)) + + self._add.on_click(lambda _: self._add_row()) + + def _add_row(self, value: float) -> None: + num = W.BoundedFloatText( + value=max(value, self._min), + min=self._min, step=self._step, readout_format=".6g", + layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), + ) + rm = W.Button(icon="trash", tooltip="Remove") + row = W.HBox([num, rm], layout=W.Layout(align_items="center")) + rm.on_click(lambda _b: self._remove_row(row)) + self._rows.children = tuple(list(self._rows.children) + [row]) + + def _remove_row(self, row: W.HBox) -> None: + items = list(self._rows.children) + if row in items: + items.remove(row) + self._rows.children = tuple(items) + + @property + def value(self) -> list[float]: + return [float(ch.children[0].value) for ch in self._rows.children] + + +class Popup(Element): + """Light-weight pseudo-modal popup using an Accordion.""" + + def __init__(self, *, title: str = "Info", content: Optional[W.Widget] = None) -> None: + body = content or W.HTML("Empty") + acc = W.Accordion(children=[body]) + acc.set_title(0, title) + acc.selected_index = None + self.widget = acc + + def get_value(self) -> None: # type: ignore[override] + return None + + def set_value(self, value: Any) -> None: # type: ignore[override] + pass + + def open(self) -> None: + self.widget.selected_index = 0 # type: ignore[attr-defined] + + def close(self) -> None: + self.widget.selected_index = None # type: ignore[attr-defined] + +class ChoiceField(Element): + """Dropdown for selecting one option from (label, value) pairs. + + Parameters + ---------- + label : str + Text shown left of the dropdown (ipywidgets 'description'). + options : Sequence[Tuple[str, Any]] + Iterable of (label, value) pairs. + value : Any | None + Initially selected value. If None, uses the first option (if any). + layout : W.Layout | None + Optional ipywidgets layout (width, margin, etc.). + style : dict | None + Optional widget.style overrides, e.g. {"description_width": "90px"}. + disabled : bool + Disable user interaction. + placeholder : str | None + If given and value is None, inserts a non-selectable placeholder label. + class_name : str | None + CSS class to add to the widget (ipywidgets v8: .add_class; v7: ._dom_classes). + """ + + def __init__( + self, + *, + label: str = "", + options: Sequence[Tuple[str, Any]] = (), + value: Any | None = None, + layout: Optional[W.Layout] = None, + style: Optional[dict] = None, + disabled: bool = False, + placeholder: str | None = None, + class_name: str | None = None, + ) -> None: + # Build options (optionally add a placeholder) + self._placeholder = None + if placeholder is not None and (value is None) and len(options) > 0: + # ipywidgets Dropdown doesn't support a true non-selectable option, + # so we insert a unique sentinel value and treat it specially. + self._placeholder = object() + options = [(placeholder, self._placeholder)] + list(options) + + self.widget = W.Dropdown(description=label, options=list(options), disabled=disabled) + + if layout is not None: + self.widget.layout = layout + if style and hasattr(self.widget, "style"): + for k, v in style.items(): + setattr(self.widget.style, k, v) + + if class_name: + # v8 + if hasattr(self.widget, "add_class"): + self.widget.add_class(class_name) + # v7 fallback + elif hasattr(self.widget, "_dom_classes"): + self.widget._dom_classes.add(class_name) + + # Set initial value + try: + if value is not None: + self.widget.value = value + else: + # If placeholder present, select it; else leave default (first option) + if self._placeholder is not None: + self.widget.value = self._placeholder + except Exception: + pass + + # ---- Element API ---- + def get_value(self) -> Any: # type: ignore[override] + v = getattr(self.widget, "value", None) + # If placeholder is selected, behave as though no value is chosen + if self._placeholder is not None and v is self._placeholder: + return None + return v + + def set_value(self, value: Any) -> None: # type: ignore[override] + # Allow setting to None -> move to placeholder (if configured) + if value is None and self._placeholder is not None: + self.widget.value = self._placeholder + else: + self.widget.value = value + + # ---- Convenience helpers ---- + def set_options(self, options: Sequence[Tuple[str, Any]], *, keep_value: bool = True) -> None: + """Replace the options. If keep_value=True, try to keep current value if still present.""" + current = self.widget.value + self.widget.options = list(options) + if keep_value and any(v == current for _, v in self.widget.options): + try: + self.widget.value = current + except Exception: + pass + elif self.widget.options: + # default to first option + try: + self.widget.value = self.widget.options[0][1] + except Exception: + pass + + def add_class(self, name: str) -> None: + if hasattr(self.widget, "add_class"): + self.widget.add_class(name) # v8 + elif hasattr(self.widget, "_dom_classes"): + self.widget._dom_classes.add(name) # v7 + + def disable(self) -> None: + self.widget.disabled = True + + def enable(self) -> None: + self.widget.disabled = False + +class ObjectChoiceField(ChoiceField): + """Dropdown for arbitrary objects with a label function (or attribute). + + Parameters + ---------- + label : str + Text shown left of the dropdown. + items : list[object] | dict[str, object] + Either a list of objects or a mapping of display label -> object. + label_fn : Callable[[object], str] | None + Function to produce a label for each object (used when items is a list). + fallback_attr : str + Attribute name to read for labels if label_fn is not provided (default: 'name'). + value, layout, style, disabled, placeholder, class_name + Passed through to ChoiceField. + """ + + def __init__( + self, + *, + label: str = "Select:", + items: list[object] | dict[str, object], + label_fn: Optional[Callable[[object], str]] = None, + fallback_attr: str = "name", + value: Any | None = None, + layout: Optional[W.Layout] = None, + style: Optional[dict] = None, + disabled: bool = False, + placeholder: str | None = None, + class_name: str | None = None, + ) -> None: + if isinstance(items, dict): + pairs = [(str(k), v) for k, v in items.items()] + else: + pairs = [] + for obj in items: + if label_fn is not None: + lbl = label_fn(obj) + else: + lbl = getattr(obj, fallback_attr, obj.__class__.__name__) + pairs.append((str(lbl), obj)) + + super().__init__( + label=label, + options=pairs, + value=value, + layout=layout, + style=style, + disabled=disabled, + placeholder=placeholder, + class_name=class_name, + ) + +class Modal: + def __init__(self, title: str = "Dialog") -> None: + self._title = title + self._on_close: list[Callable[[], None]] = [] + self.is_open = False + + self._overlay = W.Box( + [], + layout=W.Layout( + display="none", + position="absolute", # ⬅ anchor to root stack + top="0", left="0", right="0", bottom="0", + width="100%", height="100%", + justify_content="center", + align_items="flex-start", + background_color="rgba(0,0,0,0.35)", + z_index="10030", # ⬅ top of our stack + pointer_events="auto", + ), + ) + + + # The card/panel (above the backdrop) + self._title_html = W.HTML() + self._close_btn = W.Button(description="Close", icon="x") + self._close_btn.on_click(lambda _: self.close()) + + header = W.HBox( + [self._title_html, self._close_btn], + layout=W.Layout(justify_content="space-between", align_items="center", width="100%"), + ) + + self.body = W.Box([], layout=W.Layout(flex="1 1 auto", overflow_y="auto", width="100%")) + + self._panel = W.VBox( + [header, self.body], + layout=W.Layout( + width="min(720px, 90vw)", + max_height="80vh", + overflow="hidden", + padding="16px", + border="1px solid #ccc", + border_radius="12px", + background_color="#fff", + box_shadow="0 8px 24px rgba(0,0,0,0.25)", + # Critical bits: + position="relative", # panel has its own stacking context + z_index="2147483647", # above the backdrop (and everything else) + margin="12px 0 0 0", # near the top (adjust to taste) + pointer_events="auto", # panel captures clicks + ), + ) + + self._overlay.children = [self._panel] + self.widget = self._overlay + self.set_title(title) + + def set_title(self, title: str) -> None: + self._title = title + self._title_html.value = f"

{title}

" + + def set_body(self, content: W.Widget) -> None: + self.body.children = [content] + + def open(self, content: W.Widget, *, title: Optional[str] = None) -> None: + if title: + self.set_title(title) + self.set_body(content) + self._overlay.layout.display = "flex" # ipywidgets Boxes render with 'flex' + self.is_open = True + + def close(self) -> None: + self._overlay.layout.display = "none" + self.body.children = [] + self.is_open = False + for fn in list(self._on_close): + try: fn() + except Exception: pass + self._on_close.clear() + + def add_close_listener(self, fn: Callable[[], None]) -> None: + self._on_close.append(fn) \ No newline at end of file diff --git a/cadetgui/widgets/form.py b/cadetgui/widgets/form.py new file mode 100644 index 0000000..6ea502b --- /dev/null +++ b/cadetgui/widgets/form.py @@ -0,0 +1,65 @@ +# ========================================= +# File: cadetgui/widgets/form.py +# ========================================= +from __future__ import annotations + +from typing import Any, Dict, Optional + +import ipywidgets as W + +from .base import BaseWidget +from ..cadetprocessadapter import ModelSpec + +__all__ = ["FormRenderer"] + + +class FormRenderer(BaseWidget): + """Render a ModelSpec into a form and build an object on Apply.""" + + def __init__(self, spec: ModelSpec, *, title: Optional[str] = None) -> None: + self._spec = spec + self._widgets: Dict[str, W.Widget] = {} + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + self.built: Any = None + super().__init__(title=title or spec.title) + + def _build_body(self) -> W.Widget: + rows: list[W.Widget] = [] + for f in self._spec.fields: + w = BaseWidget.widget_for_field(f) + self._widgets[f.name] = w + rows.append(w) + actions = W.HBox([self._btn_apply, self._btn_reset]) + return W.VBox(rows + [actions]) + + def _wire_events(self) -> None: + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + + def _collect_values(self) -> Dict[str, Any]: + vals: Dict[str, Any] = {} + for f in self._spec.fields: + raw = getattr(self._widgets[f.name], "value", None) + value = f.transform(raw) if f.transform else raw + if f.validate: + f.validate(value) + vals[f.name] = value + return vals + + def _on_apply(self, _btn: W.Button) -> None: + try: + vals = self._collect_values() + if self._spec.build is None: + raise RuntimeError("Spec has no 'build' function.") + self.built = self._spec.build(vals) + self.set_status("Built successfully.") + except Exception as exc: # noqa: BLE001 + self.built = None + self.set_error(exc) + + def _on_reset(self, _btn: W.Button) -> None: + BaseWidget.reset_fields(self._widgets, self._spec.fields) + self.set_status("Reset to defaults.") + + diff --git a/cadetgui/widgets/solution.py b/cadetgui/widgets/solution.py new file mode 100644 index 0000000..92b87ab --- /dev/null +++ b/cadetgui/widgets/solution.py @@ -0,0 +1,876 @@ +# ========================================= +# File: cadetgui/widgets/solution.py +# ========================================= +from __future__ import annotations + +from typing import Any, Callable, Dict, Optional, Mapping, Sequence, Tuple +from contextlib import redirect_stderr, redirect_stdout + +import ipywidgets as W + +from .base import BaseWidget +from ..simulation import run_process as _default_runner + +try: + from collections.abc import Mapping as _MappingABC +except Exception: # pragma: no cover + _MappingABC = dict # type: ignore + +__all__ = ["SolutionWidget", "solution_to_fields_lenmatch"] + +# ---- Optional import for nicer isinstance checks (kept soft) +try: # pragma: no cover - optional convenience + from CADETProcess.fields import Field as _FieldType # type: ignore +except Exception: # pragma: no cover - fallback to duck typing + _FieldType = Any # type: ignore + + +# ---------------------------- +# Generic helpers +# ---------------------------- +def _is_field(obj: Any) -> bool: + """Duck-type check for CADETProcess Field-like objects.""" + if _FieldType is not Any: + try: + return isinstance(obj, _FieldType) + except Exception: + pass + req = ["plot", "sel", "interp", "differentiate", "integrate", "coordinates"] + return all(hasattr(obj, name) for name in req) + + +def _try_plot_result_generic(result: Any, out: W.Output) -> None: + """Best-effort, generic plotting hook (safer checks).""" + try: + import matplotlib.pyplot as plt # type: ignore + with out: + plot_attr = getattr(result, "plot", None) + if callable(plot_attr): + plot_attr() + return + if isinstance(result, dict) and "t" in result and "y" in result: + t, y = result["t"], result["y"] + plt.figure() + plt.plot(t, y) + plt.xlabel("t") + plt.ylabel("y") + plt.show() + else: + print(repr(result)) + except Exception: + pass + + +def _get_attr_or_key(obj: Any, *names: str, default: Any = None) -> Any: + """Return first found attribute or mapping key from names, else default.""" + for n in names: + try: + if hasattr(obj, n): + return getattr(obj, n) + if isinstance(obj, _MappingABC) and n in obj: # type: ignore[arg-type] + return obj[n] + except Exception: + pass + return default + + +def _is_monotonic_increasing(arr: Any) -> bool: + try: + import numpy as _np + a = _np.asarray(arr) + if a.ndim != 1 or a.size < 2: + return False + return _np.all(_np.diff(a) >= 0) + except Exception: + return False + + +# ---------------------------- +# Field builders / coercion +# ---------------------------- +def _best_time_array(obj: Any) -> Any: + """Try to find a plausible time array on an object.""" + cand = _get_attr_or_key(obj, "time", "t") + if cand is not None: + return cand + try: + import numpy as _np + best = None + for name in dir(obj): + if name.startswith("_"): + continue + try: + v = getattr(obj, name) + except Exception: + continue + try: + a = _np.asarray(v) + except Exception: + continue + if a.ndim == 1 and a.size >= 2 and _is_monotonic_increasing(a): + lname = name.lower() + score = 1 + if "time" in lname or lname == "t": + score = 0 + if best is None or score < best[0]: + best = (score, v) + return best[1] if best else None + except Exception: + return None + + +def _pick_data_array(obj: Any, t_len: int) -> Any: + """Pick a plausible data array on an object given a time length.""" + data = _get_attr_or_key(obj, "c", "y", "data", "values", "signal") + if data is not None: + return data + try: + import numpy as _np + best = None + for name in dir(obj): + if name.startswith("_"): + continue + try: + v = getattr(obj, name) + except Exception: + continue + try: + a = _np.asarray(v) + except Exception: + continue + if a.ndim >= 1 and a.shape[0] == t_len: + score = -a.ndim + if best is None or score < best[0]: + best = (score, v) + return best[1] if best else None + except Exception: + return None + + +def _build_field_from_solution(solution: Any, *, name: Optional[str] = None) -> Any: + """Best-effort: turn a SolutionIO.solution-like object into a Field.""" + try: + from CADETProcess.fields import Field as FieldCls # type: ignore + except Exception: + FieldCls = None # type: ignore + + if FieldCls is None: + return solution # Can't build Field without Field class + + t = _get_attr_or_key(solution, "time", "t") + axial = _get_attr_or_key(solution, "axial", "z", "x") + radial = _get_attr_or_key(solution, "radial", "r") + + data = _get_attr_or_key(solution, "c", "y", "data", "values") + comps = _get_attr_or_key(solution, "components", "comp_names", "species") + unit = _get_attr_or_key(solution, "unit", "units") + + if data is None or t is None: + return solution + + coords: Dict[str, Any] = {"time": (t, "s")} + if axial is not None: + coords["axial"] = (axial, "m") + if radial is not None: + coords["radial"] = (radial, "m") + + try: + fld = FieldCls( + coordinates=coords, + data=data, + components=list(comps) if comps is not None else None, + name=name, + unit=unit, + ) + return fld + except Exception: + return solution + + +def _coerce_to_fieldish(result: Any) -> Any: + """Try to coerce common simulation result containers into Field or dict-of-Field.""" + if _is_field(result): + return result + + if isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): + return result + + # `.fields` mapping + try: + fields_map = getattr(result, "fields") + if isinstance(fields_map, Mapping) and fields_map and all(_is_field(v) for v in fields_map.values()): + return fields_map + except Exception: + pass + + # `to_fields` / `as_fields` / `to_field` + for meth in ("to_fields", "as_fields", "to_field"): + fn = getattr(result, meth, None) + if callable(fn): + try: + val = fn() + if _is_field(val): + return val + if isinstance(val, Mapping) and val and all(_is_field(v) for v in val.values()): + return val + except Exception: + pass + + # `.solution` mapping with nested SolutionIO → try to build Field + solmap = _get_attr_or_key(result, "solution") + if isinstance(solmap, Mapping) and solmap: + converted: Dict[str, Any] = {} + for unit_name, io_map in solmap.items(): + if isinstance(io_map, Mapping): + for port_name, io in io_map.items(): + sol = _get_attr_or_key(io, "solution") + key = f"{unit_name}:{port_name}" + fld = _build_field_from_solution(sol, name=key) + if _is_field(fld): + converted[key] = fld + elif sol is None: + fld2 = _build_field_from_solution(io, name=key) + if _is_field(fld2): + converted[key] = fld2 + if converted: + return converted + + # Generic mapping: keep Field entries found recursively + if isinstance(result, Mapping) and result: + sub: Dict[str, Any] = {} + for k, v in result.items(): + cv = _coerce_to_fieldish(v) + if _is_field(cv): + sub[k] = cv + if sub: + return sub + + return result + + +# ---------------------------- +# Coordinate normalizer +# ---------------------------- +def _coords_with_units(field: Any) -> Dict[str, Tuple["np.ndarray", Optional[str]]]: + """ + Normalize coordinates to: {dim: (grid_ndarray, unit_or_None)}. + + Prefers xarray attrs when available (field.data[dim].attrs["units"]). + Falls back to field.coordinates and accepts either bare arrays or (values, unit) tuples. + """ + import numpy as np + + # Preferred: via xarray DataArray + try: + da = getattr(field, "data", None) + if da is not None: + out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} + for dim in da.dims: + vals = np.asarray(da.coords[dim].values) + unit = da.coords[dim].attrs.get("units") + out[dim] = (vals, unit) + return out + except Exception: + pass + + # Fallback: whatever field.coordinates exposes + out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} + raw = getattr(field, "coordinates", {}) or {} + if isinstance(raw, dict): + for dim, val in raw.items(): + unit = None + arr = val + # Support legacy tuples: (values, unit) + if isinstance(val, tuple) and len(val) == 2: + arr, unit = val + try: + arr = np.asarray(arr) + except Exception: + pass + out[dim] = (arr, unit) + return out + + +# ---------------------------- +# Result transform that really uses solution arrays + real time +# ---------------------------- +def solution_to_fields_lenmatch(res): + """ + Flatten res.solution (unit -> {port -> SolutionIO}) into + { "unit:port": Field } by: + - getting data from io.solution (numpy array) + - inferring T from the data + - locating a unit/global 1D 'time' vector (handles {'values': ...} holders) + - falling back to arange(T) only if necessary + """ + from CADETProcess.fields import Field # type: ignore + import numpy as np + + solmap = getattr(res, "solution", None) + if not isinstance(solmap, Mapping): + return res + + def _safe_arr(x): + try: + return np.asarray(x) + except Exception: + try: + return np.asarray(list(x)) + except Exception: + return None + + def _as_vector(x): + """Extract a vector from common wrappers (dict with 'values', obj.values).""" + if x is None: + return None + # mapping with 'values' + if isinstance(x, Mapping) and "values" in x: + return _safe_arr(x["values"]) + # objects with non-callable .values + vals = getattr(x, "values", None) + if vals is not None and not callable(vals): + return _safe_arr(vals) + # plain array-like + return _safe_arr(x) + + def _scan_time(scope: Mapping, T: int): + """Find a 1D vector of length T in mapping scope, prefer monotonic & 'time' names.""" + best = None + # 1) direct names that may be wrappers + for key in ("time", "t"): + cand = None + if isinstance(scope, Mapping): + if key in scope: + cand = _as_vector(scope[key]) + if cand is not None and cand.ndim == 1 and cand.size == T: + return cand + # 2) nested holders like scope['time'] == {'values': ...} + for k, v in scope.items(): + if isinstance(v, Mapping) and "values" in v: + cand = _safe_arr(v["values"]) + if cand is not None and cand.ndim == 1 and cand.size == T: + return cand + # 3) generic scan of 1D arrays + for k, v in scope.items(): + cand = _as_vector(v) + if cand is None or cand.ndim != 1 or cand.size != T: + continue + return cand + return None + + out: Dict[str, Any] = {} + + for unit, ports in solmap.items(): + if not isinstance(ports, Mapping): + continue + + # Deduce T from any port's data + T = None + for _p, io in ports.items(): + data0 = _as_vector(getattr(io, "solution", None)) + if data0 is None: + continue + if data0.ndim >= 1: + T = int(data0.shape[0]) + break + if T is None: + continue + + # Find a unit-level time first; else global; else synthetic + t = _scan_time(ports, T) + if t is None and isinstance(solmap, Mapping): + gt = _scan_time(solmap, T) + if gt is not None: + t = gt + if t is None: + t = np.arange(T) + + for port, io in ports.items(): + data = _as_vector(getattr(io, "solution", None)) + if data is None or data.ndim < 1: + continue + + # Align time dimension + if data.shape[0] != T and data.shape[-1] == T: + data = np.swapaxes(data, 0, -1) + if data.shape[0] != T: + continue + + coords = {"time": (t, "s")} + comp_names = None + if data.ndim >= 2 and 1 < data.shape[-1] <= 64: + comp_names = [f"C{i}" for i in range(data.shape[-1])] + + try: + out[f"{unit}:{port}"] = Field( + coordinates=coords, + data=data, + components=comp_names, + name=f"{unit}:{port}", + ) + except Exception: + pass + + return out if out else solmap + + +# ---------------------------- +# Widget +# ---------------------------- +class SolutionWidget(BaseWidget): + """Runner/visualizer for CADET-Process processes with Field-aware tooling.""" + + def __init__( + self, + *, + title: Optional[str] = None, + process: Any = None, + config: Optional["ConfigurationWidget"] = None, + runner: Optional[Callable[[Any], Any]] = None, + runner_kwargs: Optional[Dict[str, Any]] = None, + result_transform: Optional[Callable[[Any], Any]] = None, + ) -> None: + self._process: Any | None = None + self._btn_run = W.Button(description="Run simulation", icon="play") + self._btn_clear = W.Button(description="Clear", icon="trash") + self._proc_label = W.HTML("No process set.") + self._out = W.Output() + self._show_tb = W.Checkbox(description="Show traceback", value=True) + + self._runner = runner or _default_runner + self._runner_kwargs = runner_kwargs or {} + self._result_transform = result_transform + + # Field-aware UI (created lazily when needed) + self._field_container = W.VBox(layout=W.Layout(display="none")) + self._field_controls: Dict[str, W.Widget] = {} + self._current_result: Any = None # last result object (possibly transformed/coerced) + + # Result inspector UI (always visible after a run) + self._result_info = W.HTML(value="") + self._result_key_dd = W.Dropdown(description="Result key", options=(), layout=W.Layout(width="auto")) + self._result_bar = W.HBox([self._result_info, self._result_key_dd], layout=W.Layout(display="none", gap="12px")) + self._result_key_dd.observe(lambda _ch: self._on_result_key_changed(), names="value") + + # Track the last figure we drew so we can close it + self._last_fig = None # type: ignore + + super().__init__(title=title or "Solution") + + if process is not None: + self.set_process(process) + if config is not None: + self.bind_to_config(config) + + # ----- public API ----- + def set_process(self, process: Any) -> None: + self._process = process + self._proc_label.value = ( + f"Process: {getattr(process, 'name', process.__class__.__name__)}" + ) + self.set_status("Ready to run.") + + def bind_to_config(self, config_widget: "ConfigurationWidget") -> None: + # Late import to avoid circular typing issues + from .config import ConfigurationWidget # noqa: WPS433 + + if not isinstance(config_widget, ConfigurationWidget): + raise TypeError("config_widget must be a ConfigurationWidget") + + config_widget.add_listener(self.set_process) + if config_widget.process is not None: + self.set_process(config_widget.process) + + # ----- UI ----- + def _build_body(self) -> W.Widget: + controls = W.HBox([self._btn_run, self._btn_clear, self._show_tb]) + return W.VBox( + [ + W.HBox([self._proc_label, controls]), + self._result_bar, + self._field_container, + self._out, + ] + ) + + def _wire_events(self) -> None: + self._btn_run.on_click(self._on_run) + self._btn_clear.on_click(self._on_clear) + + # ----- events ----- + def _on_run(self, _btn: W.Button) -> None: + self._out.clear_output() + self._hide_field_ui() + self._hide_result_bar() + if self._process is None: + self.set_error("No process to run. Build one first.") + return + + import io + import traceback as _tb + + capture = bool(self._show_tb.value) + buf_out, buf_err = (io.StringIO(), io.StringIO()) if capture else (None, None) + + try: + if capture: + with redirect_stdout(buf_out), redirect_stderr(buf_err): + raw = self._runner(self._process, **self._runner_kwargs) + else: + raw = self._runner(self._process, **self._runner_kwargs) + + # Optional transform, then coercion to Field-ish structures + result = self._result_transform(raw) if callable(self._result_transform) else raw + result = _coerce_to_fieldish(result) + self._current_result = result + + # Show result meta / selector if needed + self._show_result_bar(result) + + with self._out: + if capture: + if buf_out and buf_out.getvalue().strip(): + print("=== stdout ===") + print(buf_out.getvalue(), end="") + if buf_err and buf_err.getvalue().strip(): + print("=== stderr ===") + print(buf_err.getvalue(), end="") + print("Simulation finished.") + + # If it's Field-like, expose Field controls; if mapping try to plot one entry; else fallback + if self._render_field_ui_if_applicable(result): + self.set_status("Field detected — use controls to slice/plot.") + self._plot_field_from_controls() + elif isinstance(result, Mapping): + self._attempt_plot_from_mapping(result) + else: + with self._out: + print(repr(result)) + _try_plot_result_generic(result, self._out) + self.set_status("Simulation complete.") + + except Exception as exc: # noqa: BLE001 + with self._out: + if capture: + tb = _tb.TracebackException.from_exception(exc, capture_locals=True) + if buf_out and buf_out.getvalue().strip(): + print("=== stdout (captured) ===") + print(buf_out.getvalue(), end="") + if buf_err and buf_err.getvalue().strip(): + print("=== stderr (captured) ===") + print(buf_err.getvalue(), end="") + print("=== full traceback (with chained causes) ===") + print("".join(tb.format(chain=True)), end="") + else: + print(f"{exc.__class__.__name__}: {exc}") + self.set_error(f"Simulation error: {exc}") + + def _on_clear(self, _btn: W.Button) -> None: + self._out.clear_output() + self._hide_field_ui() + self._hide_result_bar() + self.set_status("Cleared.") + + # ----- Result bar ----- + def _hide_result_bar(self) -> None: + self._result_bar.layout.display = "none" + self._result_info.value = "" + self._result_key_dd.options = () + + def _show_result_bar(self, result: Any) -> None: + typ = type(result).__name__ + if isinstance(result, Mapping): + keys = list(result.keys()) + self._result_info.value = f"Result: Mapping[{len(keys)}], type={typ}" + self._result_key_dd.options = [(str(k), k) for k in keys] + self._result_key_dd.value = keys[0] if keys else None + self._result_bar.layout.display = "flex" + else: + self._result_info.value = f"Result: {typ}" + self._result_key_dd.options = () + self._result_bar.layout.display = "flex" + + def _on_result_key_changed(self) -> None: + if not isinstance(self._current_result, Mapping) or not self._current_result: + return + key = self._result_key_dd.value + val = self._current_result.get(key) + self._out.clear_output() + self._hide_field_ui() + if self._render_field_ui_if_applicable(val): + self._plot_field_from_controls() + self.set_status(f"Viewing: {key}") + else: + with self._out: + print(repr(val)) + _try_plot_result_generic(val, self._out) + self.set_status(f"Viewing: {key}") + + def _attempt_plot_from_mapping(self, mapping: Mapping[str, Any]) -> None: + # Prefer the first Field in the mapping, if any + for k, v in mapping.items(): + if _is_field(v): + self._result_key_dd.value = k + self._on_result_key_changed() # route through the normal path + return + + # Fallback: generic repr/plot of the first entry + first_key = next(iter(mapping.keys())) if mapping else None + val = mapping.get(first_key) if first_key is not None else None + with self._out: + print(repr(mapping)) + if first_key is not None: + print("--- First entry ---") + print(repr(val)) + _try_plot_result_generic(val, self._out) + self.set_status("No Field found in mapping.") + + # ----- Field-aware UI ----- + def _hide_field_ui(self) -> None: + self._field_container.layout.display = "none" + self._field_container.children = () + self._field_controls.clear() + + def _render_field_ui_if_applicable(self, result: Any) -> bool: + # Determine the single Field to render controls for + if _is_field(result): + field = result + elif isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): + # Use currently selected key from the result bar + key = self._result_key_dd.value + if key is None or key not in result: + key = next(iter(result.keys())) + field = result[key] + else: + return False + + rows: list[W.Widget] = [] + + # Components UI (if any) + components: Sequence[str] | None = getattr(field, "components", None) + if components is not None and len(components) > 0: + comp_sel = W.SelectMultiple( + description="Components", + options=list(components), + value=tuple(components), + layout=W.Layout(width="420px", height="120px"), + ) + self._field_controls["components"] = comp_sel + comp_sel.observe(lambda _ch: self._plot_field_from_controls(), names="value") + rows.append(comp_sel) + + # Slicing controls + coords = _coords_with_units(field) + slicer_boxes: list[W.Widget] = [] + for name, (grid, unit) in coords.items(): + ulabel = f"[{unit}]" if unit else "" + cb_fix = W.Checkbox(description=f"Fix {name} {ulabel}".strip(), value=False) + val = W.FloatText( + description=f"{name}=", + value=float(grid[0]) if hasattr(grid, "__len__") and len(grid) > 0 else 0.0, + layout=W.Layout(width="220px"), + ) + method = W.Dropdown( + description="method", + options=["exact", "nearest"], + value="exact", + layout=W.Layout(width="150px"), + ) + hb = W.HBox([cb_fix, val, method]) + self._field_controls[f"fix_{name}"] = cb_fix + self._field_controls[f"val_{name}"] = val + self._field_controls[f"method_{name}"] = method + for w in (cb_fix, val, method): + w.observe(lambda _ch: self._plot_field_from_controls(), names="value") + slicer_boxes.append(hb) + if slicer_boxes: + rows.append(W.VBox([W.HTML("Slicing"), *slicer_boxes])) + + coord_names = list(coords.keys()) + + # Interpolation controls + interp_enable = W.Checkbox(description="Interpolate", value=False) + interp_axis = W.Dropdown( + description="along", + options=coord_names, + value=coord_names[0] if coord_names else None, + ) + interp_points = W.IntText(description="points", value=100) + hb_interp = W.HBox([interp_enable, interp_axis, interp_points]) + self._field_controls["interp_enable"] = interp_enable + self._field_controls["interp_axis"] = interp_axis + self._field_controls["interp_points"] = interp_points + for w in (interp_enable, interp_axis, interp_points): + w.observe(lambda _ch: self._plot_field_from_controls(), names="value") + rows.append(W.VBox([W.HTML("Interpolation"), hb_interp])) + + # Calculus controls + calc_mode = W.Dropdown( + description="Operation", + options=["None", "Differentiate", "Integrate"], + value="None", + ) + calc_axis = W.Dropdown( + description="w.r.t.", + options=coord_names, + value=coord_names[0] if coord_names else None, + ) + hb_calc = W.HBox([calc_mode, calc_axis]) + self._field_controls["calc_mode"] = calc_mode + self._field_controls["calc_axis"] = calc_axis + for w in (calc_mode, calc_axis): + w.observe(lambda _ch: self._plot_field_from_controls(), names="value") + rows.append(W.VBox([W.HTML("Analysis"), hb_calc])) + + # Plot button + btn_plot = W.Button(description="Plot", icon="line-chart") + btn_plot.on_click(lambda _b: self._plot_field_from_controls()) + rows.append(btn_plot) + + self._field_container.children = tuple(rows) + self._field_container.layout.display = "block" + return True + + def _gather_slice_kwargs(self) -> Dict[str, Tuple[float, str]]: + kwargs: Dict[str, Tuple[float, str]] = {} + for key, widget in self._field_controls.items(): + if key.startswith("fix_") and isinstance(widget, W.Checkbox) and widget.value: + coord = key[len("fix_") :] + valw = self._field_controls.get(f"val_{coord}") + methw = self._field_controls.get(f"method_{coord}") + if isinstance(valw, W.FloatText) and isinstance(methw, W.Dropdown): + kwargs[coord] = (float(valw.value), str(methw.value)) + return kwargs + + def _get_active_field(self) -> Any: + # If we have a mapping, prefer the currently selected Result key + if isinstance(self._current_result, Mapping): + key = self._result_key_dd.value + if key is not None and key in self._current_result: + return self._current_result[key] + # Otherwise, the result itself is a Field (or something else) + return self._current_result + + def _apply_interpolation(self, fld: Any) -> Any: + enable = self._field_controls.get("interp_enable") + axis = self._field_controls.get("interp_axis") + points = self._field_controls.get("interp_points") + if isinstance(enable, W.Checkbox) and enable.value and isinstance(axis, W.Dropdown) and isinstance(points, W.IntText): + coords = _coords_with_units(fld) + if axis.value in coords: + grid, _unit = coords[axis.value] + if len(grid) >= 2 and points.value > 1: + import numpy as np # local import + new_grid = np.linspace(float(grid[0]), float(grid[-1]), int(points.value)) + try: + return fld.interp(**{axis.value: new_grid}) + except Exception: + return fld + return fld + + def _apply_calculus(self, fld: Any) -> Any: + mode = self._field_controls.get("calc_mode") + axis = self._field_controls.get("calc_axis") + if isinstance(mode, W.Dropdown) and isinstance(axis, W.Dropdown): + try: + if mode.value == "Differentiate" and axis.value: + return fld.differentiate(axis.value) + if mode.value == "Integrate" and axis.value: + return fld.integrate(axis.value) + except Exception: + return fld + return fld + + def _plot_field_from_controls(self) -> None: + import matplotlib.pyplot as plt # local import + + # Clear UI output (avoid accumulating figures) + self._out.clear_output(wait=True) + + # Close previous figure if we created one + if getattr(self, "_last_fig", None) is not None: + try: + plt.close(self._last_fig) + except Exception: + pass + self._last_fig = None + + fld = self._get_active_field() + if not _is_field(fld): + with self._out: + print("No Field to plot.") + return + + fld2 = self._apply_interpolation(fld) + fld3 = self._apply_calculus(fld2) + + # Slicing + slice_kwargs = self._gather_slice_kwargs() + if slice_kwargs: + try: + for coord, (value, method) in slice_kwargs.items(): + if method == "nearest": + fld3 = fld3.sel(**{coord: value}, method="nearest") + else: + fld3 = fld3.sel(**{coord: value}) + except Exception: + pass + + # Component selection (optional) + comp_sel = self._field_controls.get("components") + if isinstance(comp_sel, W.SelectMultiple) and comp_sel.value: + try: + if len(comp_sel.value) == 1: + fld3 = fld3[comp_sel.value[0]] + except Exception: + pass + + # Try plotting; capture the created figure so we can close it next time + try: + with self._out: + ax_or_axes = fld3.plot({}) + # Try to detect the figure object + try: + fig = None + if hasattr(ax_or_axes, "get_figure"): + fig = ax_or_axes.get_figure() + else: + if hasattr(ax_or_axes, "ravel"): + flat = ax_or_axes.ravel() + if flat and hasattr(flat[0], "get_figure"): + fig = flat[0].get_figure() + if fig is None: + fig = plt.gcf() + self._last_fig = fig + except Exception: + self._last_fig = None + except Exception: + try: + with self._out: + # Fallback: fix all dims at first entry + coords = _coords_with_units(fld3) + fixed = { + dim: grid[0] + for dim, (grid, _unit) in coords.items() + if hasattr(grid, "__len__") and len(grid) > 0 + } + ax_or_axes = fld3.plot(fixed) + try: + fig = None + if hasattr(ax_or_axes, "get_figure"): + fig = ax_or_axes.get_figure() + else: + if hasattr(ax_or_axes, "ravel"): + flat = ax_or_axes.ravel() + if flat and hasattr(flat[0], "get_figure"): + fig = flat[0].get_figure() + if fig is None: + fig = plt.gcf() + self._last_fig = fig + except Exception: + self._last_fig = None + except Exception: + _try_plot_result_generic(fld3, self._out) + self._last_fig = None + + self.set_status("Plotted.") diff --git a/pyproject.toml b/pyproject.toml index 1c6fae5..7781c33 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,10 +22,9 @@ classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Intended Audience :: Science/Research", -] -dependencies = [ + "Intended Audience :: Science/Research" ] +dependencies = [] [dependency-groups] testing = [ @@ -40,11 +39,19 @@ docs = [ "sphinxcontrib-bibtex>=2.5.0", "sphinx_book_theme>=1.0.0", "sphinx_copybutton>=0.5.1", - "sphinx-sitemap>=2.5.0", + "sphinx-sitemap>=2.5.0" ] dev = [ - {include-group = "docs"}, - {include-group = "testing"}, + "coverage", + "pytest", + "pytest-cov", + "myst-nb>=0.17.1", + "numpydoc>=1.5.0", + "sphinx>=5.3.0", + "sphinxcontrib-bibtex>=2.5.0", + "sphinx_book_theme>=1.0.0", + "sphinx_copybutton>=0.5.1", + "sphinx-sitemap>=2.5.0", "certifi", # tries to prevent certificate problems on windows "pre-commit", "ruff" @@ -64,11 +71,11 @@ select = [ "E", # pycodestyle errors "F", # pyflakes "W", # pycodestyle warnings - "I", # isort + "I" # isort ] ignore = [ "ANN401", # Allow dynamically typed expressions like `Any` - "D100", # Allow missing docstring in public module + "D100" # Allow missing docstring in public module ] [tool.ruff.format] @@ -85,18 +92,17 @@ convention = "numpy" "ANN", # type annotations "D", # docstrings "E402", # imports on top of module - "E731", # lamba assignments - "F841", # unused variables + "E731", # lambda assignments + "F841" # unused variables ] - [tool.pytest.ini_options] testpaths = [ - "tests", + "tests" ] pythonpath = [ - "tests", + "tests" ] markers = [ - "slow: marks tests as slow (deselect with '-m \"not slow\"')", + "slow: marks tests as slow (deselect with '-m \"not slow\"')" ] diff --git a/tests/display_widgets.ipynb b/tests/display_widgets.ipynb index cdb5321..33eaa93 100644 --- a/tests/display_widgets.ipynb +++ b/tests/display_widgets.ipynb @@ -2,21 +2,13 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, + "execution_count": 1, "id": "2d5d3b56", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], + "outputs": [], "source": [ - "from cadetgui.widget import ConfigurationWidget, SolutionWidget\n", + "from cadetgui.widgets import ConfigurationWidget, SolutionWidget\n", + "from CADETProcess.simulator import Cadet\n", "\n", "\n", "%load_ext autoreload\n", @@ -25,19 +17,131 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, + "id": "75d29533", + "metadata": {}, + "outputs": [], + "source": [ + "from collections.abc import Mapping\n", + "from CADETProcess.fields import Field\n", + "import numpy as np\n", + "\n", + "def solution_to_fields_lenmatch_v3(res):\n", + " \"\"\"\n", + " Flatten res.solution (unit -> {port -> SolutionIO}) into\n", + " { \"unit:port\": Field }, using:\n", + " data := io.solution (numpy array, with (T,1) -> (T,))\n", + " time := try unit-level 'time'/'t' (incl. {'values': ...}) of length T,\n", + " else try global (res.solution) same way, else np.arange(T).\n", + " \"\"\"\n", + " solmap = getattr(res, \"solution\", None)\n", + " if not isinstance(solmap, Mapping):\n", + " return res\n", + "\n", + " def _safe_arr(x):\n", + " try:\n", + " return np.asarray(x)\n", + " except Exception:\n", + " try:\n", + " return np.asarray(list(x))\n", + " except Exception:\n", + " return None\n", + "\n", + " def _as_vector(x):\n", + " \"\"\"Extract 1D vector from common wrappers (dict with 'values', obj.values, or array-like).\"\"\"\n", + " if x is None:\n", + " return None\n", + " if isinstance(x, Mapping) and \"values\" in x:\n", + " return _safe_arr(x[\"values\"])\n", + " vals = getattr(x, \"values\", None)\n", + " if vals is not None and not callable(vals):\n", + " return _safe_arr(vals)\n", + " return _safe_arr(x)\n", + "\n", + " def _find_time(scope: Mapping, T: int):\n", + " # 1) direct 'time'/'t'\n", + " for key in (\"time\", \"t\"):\n", + " if key in scope:\n", + " cand = _as_vector(scope[key])\n", + " if cand is not None and cand.ndim == 1 and cand.size == T:\n", + " return cand\n", + " # 2) nested holders like {'time': {'values': ...}}\n", + " for k, v in scope.items():\n", + " if isinstance(v, Mapping) and \"values\" in v:\n", + " cand = _safe_arr(v[\"values\"])\n", + " if cand is not None and cand.ndim == 1 and cand.size == T:\n", + " return cand\n", + " # 3) any 1D array of length T\n", + " for k, v in scope.items():\n", + " cand = _as_vector(v)\n", + " if cand is not None and cand.ndim == 1 and cand.size == T:\n", + " return cand\n", + " return None\n", + "\n", + " out = {}\n", + "\n", + " for unit, ports in solmap.items():\n", + " if not isinstance(ports, Mapping):\n", + " continue\n", + " for port, io in ports.items():\n", + " data = getattr(io, \"solution\", None)\n", + " data = _safe_arr(data)\n", + " if data is None or data.ndim < 1:\n", + " continue\n", + "\n", + " # squeeze trailing singleton (T,1) -> (T,)\n", + " if data.ndim >= 2 and data.shape[-1] == 1:\n", + " data = data[..., 0]\n", + "\n", + " T = int(data.shape[0])\n", + " if T <= 1:\n", + " continue\n", + "\n", + " # time (per port): unit → global → arange\n", + " t = _find_time(ports, T)\n", + " if t is None:\n", + " t = _find_time(solmap, T)\n", + " if t is None:\n", + " t = np.arange(T)\n", + "\n", + " coords = {\"time\": (t, \"s\")}\n", + "\n", + " # treat last dim as components if >1 and small-ish\n", + " comp_names = None\n", + " if data.ndim >= 2 and 1 < data.shape[-1] <= 64:\n", + " comp_names = [f\"C{i}\" for i in range(data.shape[-1])]\n", + "\n", + " try:\n", + " out[f\"{unit}:{port}\"] = Field(\n", + " coordinates=coords,\n", + " data=data,\n", + " components=comp_names,\n", + " name=f\"{unit}:{port}\",\n", + " )\n", + " except Exception:\n", + " # Skip malformed, keep others\n", + " pass\n", + "\n", + " return out if out else solmap\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "id": "a9c1028e", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "359a4da7b06c402e9b42215e40d022b1", + "model_id": "601b228532044f659b1af38ac1ed86bf", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "VBox(children=(HTML(value=\"

Configuration

\"), VBox(children=(IntText(value=1, descript…" + "VBox(children=(HTML(value=\"

Configuration

\"), VBox(children=(Box(children=(VBox(childr…" ] }, "metadata": {}, @@ -46,7 +150,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ff8d204a6060460dbc1f8f10f00f7cea", + "model_id": "3ccf579e3b6348b489b07efed2841ca0", "version_major": 2, "version_minor": 0 }, @@ -56,98 +160,307 @@ }, "metadata": {}, "output_type": "display_data" + }, + { + "data": { + "image/png": "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nGsjv/POqKlbx8WLF/XXv/5VkjRp0iTVqFGjSNdRL2VPzvbiwcHBatq0qf7973+rVatWqlatmho1aqTq1aurXr16Gjt2rC5dupRvH9RN2dO3b18FBQVJuv5/TFZWVp42O3bs0IoVKyRJTz31lN1eomaQW0nVQ1H78fX1tVdrb0RNEcRKqbS0NJ09e1aSFBoa6rJt1apV7TR/5MiRGz433Hyys7M1ceJE++snnngiTxvn2iispsLCwvK9DqXP8OHDdfLkSd1///3q169fka+jXsqe3bt3S5Lq1q2rwYMH6+mnn9YPP/yQq82hQ4c0ZswYtW3bVsePH8/TB3VT9tSoUUPx8fGqWLGiNmzYoNatW2vevHnavHmzvvrqK40dO1YdO3ZURkaG7rrrLr399tu5rqdm4Kyk6iHn64CAAFWpUqVI/Zw5cybXbbMlgSBWSqWmptrHgYGBhbbPCWIF/ZUSt7apU6dq69atkqTHHntMkZGRedq4U1M59SRRU6XZ+vXrNWvWLPn6+mrGjBlyOBxFvpZ6KXvOnz8v6fp7xd577z1VqVJFM2bM0OnTp5WWlqZt27apW7dukqRdu3apT58+ys7OztUHdVM2PfbYY0pMTFS/fv30/fffKyYmRm3btlXnzp01ZswYVapUSW+//bbWr1+vWrVq5bqWmoGzkqqHnH7c+R06v36KiyBWSqWlpdnHfn5+hbb39/eXJF29evWGzQk3p7Vr1+rll1+WJN1+++2aPn16vu3cqamcepKoqdIqIyNDAwYMkGVZGjp0qFq2bOnW9dRL2XP58mVJ1zdSKFeunL744gs9//zzqlGjhvz9/RUZGanly5fbYWzjxo153txO3ZRN165d04cffqhly5blu4nGqVOnlJCQkO+GYtQMnJVUPeT0487v0Pn1U1wEsVKqQoUK9rHzJgwFyVlKrVix4g2bE24+P/74ox577DFlZmbK399fixYtUs2aNfNt605NOS/NU1Ol0/jx47Vnzx7dcccdiouLc/t66qXscX7N+/Tpk+9uZT4+Prk2fElISCiwD+qmbLh8+bIeeughjRs3TufOndPw4cO1Z88epaenKzk5WatWrVL79u21bds29ezZU++++26u66kZOCupesjpx53fofPrp7gIYqVU5cqV7eOiLJPm/CWzKEuwuDUcOnRIXbp00YULF1SuXDklJCS43BnI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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAJICAYAAAAUzce/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXFhJREFUeJzt3Xl8VNXh///3JCE7SYCwhUQBlUVBQBYBQQIIbpVdrVXBBcW1FstHRX9AsBVBW5daq3wLiqiAuwi4IpCiBtkFCygoayJLICSQkEyW+/sjzZg4d5JMMsudyev5eMzDm3vPPfdMcx6FN+fcc2yGYRgCAAAAAPhdiL8bAAAAAAAoR0ADAAAAAIsgoAEAAACARRDQAAAAAMAiCGgAAAAAYBEENAAAAACwCAIaAAAAAFgEAQ0AAAAALIKABgAAAAAWQUADAAAAAIsgoPnI0aNHtXz5ck2fPl1XXnmlEhMTZbPZZLPZdMstt/i7eR7jye+5f/9+PfLII+rZs6cSEhLUqFEjNW3aVP3799df/vIXHTt2zDtfAgAAAPCTMH83oKFo2bKlv5vgE576nosWLdIdd9yhgoKCKudzcnKUkZGhjIwMPf/883r77bc1ZMgQjzwTAAAA8DdG0PwgJSVFw4cP93czvK6u3zMjI0Pjx49XQUGBQkJCdOutt+rDDz/U+vXr9e677+qaa66RJB0/flwjRozQvn37PNxyAAAAwD8YQfOR6dOnq3fv3urdu7datmypffv2qV27dv5ulsd54nvOmjVLpaWlkqQXXnhB99xzj+Na7969NXbsWP35z3/WM888o/z8fD3zzDP6xz/+4dHvAQAAAPiDzTAMw9+NaIgqB5cJEyZowYIF/m2Ql9TlezZt2lQ5OTlq1qyZsrOzTcvk5uYqISFBktSzZ09t3LjRU00GAAAA/IYpjgGopKRE8+fP11VXXaWkpCRFREQoMTFRl156qZ577jkVFhb6u4n1YrfbJanakbf4+HglJiZKkoqKinzSLgAAAMDbCGgB5qefflK3bt00ceJEffLJJ/rll19kt9t1/PhxrV27VpMnT9aFF16o3bt3+7upddahQwdJ0t69e12WycvLc4yuVZQHAAAAAh0BLYD88ssvuuSSS7Rjxw41btxYf/7zn/XJJ59o8+bNWr16taZOnaro6Gjt3r1bV1xxhXJzc/3d5DqZNGmSpPJFQF5++WXTMn/5y1+cygMAAACBjkVCAsidd96pI0eOKCUlRWvWrFH79u2rXE9NTdW1116rgQMH6ueff9bf/va3KkEmUEycOFFr167Vm2++qXvvvVebNm3SiBEj1Lp1ax04cEBvvPGGPvjgA0nSww8/3CBWxAQAAEDDwAhagPj++++1fPlySdI///lPp3BWoUePHrr33nslSa+88orP2udJoaGheuONN/TWW2+pW7dumjdvnkaMGOFYwfGDDz7Q4MGD9dlnn2n27Nn+bi4AAADgMQS0ALF06VJJUnR0tK6++upqy1566aWSpKysLB08eNDrbfOGXbt2adGiRdq+fbvp9YyMDC1cuFC//PKLj1sGAAAAeA8BLUBULCNfUFCgsLAw2Ww2l5/f/e53jvsOHz5cpZ6VK1dWe29tP97cHHrt2rXq16+fli5dqjZt2uj111/X4cOHZbfbdfDgQb344ouKiorSm2++qT59+mjnzp1eawsAAADgSwS0AHH06NE63VdQUODhlnhXUVGRbrjhBp08eVKtWrXSunXrdNNNN6lly5Zq1KiRkpOTdc8992jt2rWKjIzUoUOHNH78eH83GwAAAPAIFgkJEKWlpZLK9wb76KOPan3fb/cS69+/v0dGnNq0aVPvOsx8+umnyszMlCTdf//9atWqlWm5Cy64QDfddJPmzZunjRs36rvvvlO3bt280iYAAADAVwhoAaJZs2aSpCNHjqhTp04KC6vbry46OlqdOnXyZNM8qnJ4vOiii6ot27NnT82bN09S+TtrBDQAAAAEOqY4BogePXpIKp+y+PXXX/u5Nd5TOXiWlJRUW7a4uNj0PgAAACBQEdACxMiRIx3HTz31lB9b4l2Vp2SuXbu22rLp6emm9wEAAACBioAWIHr37u3YkPnjjz/WjBkzqi2/b98+LV682BdN86ihQ4cqOjpakvTSSy+5XGb/k08+cWxW3aZNG3Xv3t1XTQQAAAC8hnlhPvLVV19pz549jp+zs7Mdx3v27NGCBQuqlL/llluc6nj11VfVq1cv/fLLL3r88cf12Wef6bbbblPXrl0VGRmp48ePa9u2bfr000+1atUqjRo1SjfccIO3vpKp+n7PhIQEPfLII5o+fbpOnTql/v376/7779ewYcPUpEkTHTlyREuXLtW///1vlZWVSZJmz56tkBD+rQEAAACBz2YY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rgJasI2gBVxAKykp0SuvvOL4+dJLL61TPaNGjZJUvhy+q5UgDx06pJUrV0qShg4dWuXdNQAAAAD153qz6qqB7PBh8xXVg+0dNEsFtNWrV+vkyZMurxcXF2vixImOaYfXXHON6Xth+/btc6wUmZqaalrXxIkTFR8fL0l65JFHdPz48SrXS0tLdc8996i0tHye65QpU+rwjQAAAABUx3VAq7pQyC+/NIwRNEvtg/baa69pxIgRGjFihFJTU9WxY0fFxcXp9OnT2rRpk2Ojaklq0aKFnn/++To/q2nTppozZ47uuusu7d+/XxdffLEee+wxde3aVVlZWXruuee0evVqSdINN9ygwYMHe+Q7AgAAAPhVUpJ5wPptQGso76BZKqBJ5cveL1q0SIsWLXJZpmvXrlqyZInatWtXr2dNmjRJWVlZ+stf/qKffvpJt912m1OZq666qsqUSgAAAACeExkZpmbNInT8eFGV884BzXmKY0xMmGJjG3m1fb5mqYD28MMPq3v37srIyNCOHTt07NgxnThxQhEREWrZsqV69eqlcePGafTo0QoNDfXIM2fOnKnLL79cL774otauXasjR44oISFB3bp106233qobbrjBI88BAAAAYK5NmxiTgFZ1xMxsimOwTW+ULBbQOnfurM6dO+tPf/pTvepp27atW0vx9+/fX/3796/XMwEAAADUTZs2Mdq27USVc7WZ4hhs0xsliy0SAgAAAKDhMVtqPysrX2Vlvw66mE1xDLYVHCUCGgAAAAA/M1vJsaTE0NGjZ/53XKZjx8wCGiNoAAAAAOBRNS21f/ToGZm9wcQIGgAAAAB4WJs21S+172qTat5BAwAAAAAPcz2CVr4wSEPZpFoioAEAAADws5qmOLrapJqABgAAAAAe1rRphCIjnfc5PnSo+oDGFEcAAAAA8DCbzWY6ilbdO2g2m9S8eaTX2+ZrBDQAAAAAflddQDN7B6158yiFhQVfnAm+bwQAAAAg4Jit5FjdO2jBOL1RIqABAAAAsACzEbS8vGKdPl1sOsUxGPdAkwhoAAAAACygupUczaY4BuMKjhIBDQAAAIAFuApou3adVEFBidN5RtAAAAAAwEuSk80D2saNx0zP8w4aAAAAAHiJqxG0TZuyTc8zxREAAAAAvKR162jZbM7nXY2gMcURAAAAALykUaMQtWjhHLqOHSs0Lc8U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hw665ZZbtHbtWrfq+/TTTzVmzBglJycrIiJCycnJGjNmjD799FMvfQNYxUMPPSSbzeb4rFmzpsZ76C8NS3Z2tp566ildcsklatWqlSIiIpSUlKSLL75Y//d//6eMjIwa66DPNBx2u13z58/XFVdcodatWzv+fOrYsaNuu+02rVu3rlb10GcC29GjR7V8+XJNnz5dV155pRITEx1/ztxyyy1u1+eJ/lBQUKCnn35affr0UdOmTRUbG6vOnTtrypQpOnDggNttcpuBoLR8+XIjPj7ekGT66dixo/HTTz/5u5nwsksvvdRlH6j8ufnmm42ioqJq6yorKzPuvPPOauu58847jbKyMh99O/jS1q1bjbCwsCq/79WrV7ssT39peN5++22jWbNm1f7OR44c6fJ++kzDcuDAAaNr1641/vk0efJkl79z+kxwqO73N2HChFrX46n+sGfPHqNjx44u64iPjzdWrFhRz29dPQJaENq6dasRHR1tSDJiY2ONJ554wvjmm2+ML7/80rjjjjscHaxTp07GqVOn/N1ceNE555xjSDKSkpKMBx54wHj33XeN9evXGxkZGcYzzzxjtGnTxtEfbrjhhmrrevTRRx1le/ToYSxevNhYv369sXjxYqNHjx6Oa4899piPvh18pbS01Ojdu7chyWjRokWtAhr9pWF57bXXjJCQEEcfmTFjhvHFF18YmzZtMlasWGH84x//MIYNG2aMGzfOZR30mYajuLi4Sji78MILjQULFhgZGRnG559/bkyfPt2IiYlxXH/qqadM66HPBIfK4SclJcUYPnx4nQKaJ/rDqVOnjE6dOjnK3nHHHcaXX35pfPPNN8YTTzxhxMbGGpKM6Oho47vvvvPAtzdHQAtCqamphiQjLCzM+Oabb5yuP/XUU46ON3PmTD+0EL5y9dVXG2+99ZZRUlJiev3YsWNGhw4dHP3hP//5j2m53bt3O0ZPevXqZRQUFFS5np+fb/Tq1cvR7/bs2ePx7wL/efbZZx3/qDN16tQaAxr9pWHZsWOHERERYUgyBg4caJw8edJlWVcj9fSZhuXdd991/P9Iv379TP+M2rhxo9GoUSNDktGkSROjuLi4ynX6TPCYPn26sWzZMuPw4cOGYRjG3r173Q5onuoPM2bMqPYfBr755hvHcwYPHuzeF3UDAS3IrF+/3tGxJk2aZFqmtLTU6Ny5s+P/9Ox2u49bCStZtmyZo8/88Y9/NC1zzz33OMpkZGSYlsnIyHCUue+++7zZZPjQgQMHHP9iuHr16ip/eLkKaPSXhmXo0KGGJCMxMdE4duxYneqgzzQskydPdvwuP/roI5flRo8e7Si3ffv2KtfoM8GrLgHNE/3BbrcbCQkJhiSjc+fORmlpqWk9kyZNctSzcePGWn8vd7BISJD58MMPHce33nqraZmQkBCNHz9ekpSTk1OrF/0RvFJTUx3HP/30k9N1wzC0dOlSSVKnTp3Ut29f03r69u2rjh07Sirvh4ZheL6x8Ll77rlHp0+f1oQJE6r0FVfoLw3Lrl279OWXX0qS7rvvPiUmJrpdB32m4bHb7Y7j9u3buyx3zjnnOI6Lioocx/QZVOap/rBmzRqdPHlSkjRhwgSFhJjHpMoLl7z//vv1bL05AlqQqViRLyYmRj179nRZbtCgQY7jr776yuvtgnVV/oPS7P+M9u7dq8zMTElV+42ZiuuHDh3Svn37PNdI+MXbb7+t5cuXq2nTpnr66adrdQ/9pWF55513HMfXXnut4zgnJ0e7d+/W8ePHa6yDPtPwdOjQwXH8888/uyxX8Y+GNptN5513nuM8fQaVeao/VF7Vurp6evXqpZiYGEne+zs0AS3I7Ny5U5J07rnnKiwszGW5Tp06Od2Dhik9Pd1xXLlfVKjcP8yuV0a/Ch4nT57UAw88IEmaM2eOmjdvXqv76C8NS8Uy6PHx8ercubPefPNNdevWTU2bNlWHDh2UmJio9u3ba+bMmTp9+rRpHfSZhueGG25QXFycpPL/fyktLXUqs2XLFq1YsUKS9Pvf/95RXqLPoCpP9Yfa1hMWFuYY3fVWnyKgBZHCwkJlZ2dLkpKTk6st26RJE0f6P3jwoNfbBmsqKyvT7NmzHT9fd911TmUq94+a+lVKSorpfQg8Dz30kA4fPqz+/fvr9ttvr/V99JeGZceOHZKktm3b6v7779dNN92kbdu2VSmzd+9epaWlqV+/fsrKynKqgz7T8DRv3lwLFixQVFSUvv76a/Xu3VsLFy7UunXrtHLlSs2cOVODBg2S3W5X9+7d9cwzz1S5nz6DyjzVHyp+jomJUUJCQq3qOXbsWJXpt55CQAsip06dchzHxsbWWL4ioLn6V00Ev2effVbr16+XJI0ePVq9evVyKuNOv6roUxL9KpB99dVXmjdvnsLCwvTyyy/LZrPV+l76S8Ny4sQJSeXvor344otKSEjQyy+/rKNHj6qwsFAbNmzQlVdeKUn6/vvvde2116qsrKxKHfSZhmn06NHauHGjbr/9dm3dulUTJkxQv379NGzYMKWlpSk6OlrPPPOMvvrqK7Vq1arKvfQZVOap/lBRjzt/hzarxxMIaEGksLDQcRweHl5j+YiICEnSmTNnvNYmWFd6eroeeeQRSVKLFi300ksvmZZzp19V9CmJfhWo7Ha77rzzThmGocmTJ6tr165u3U9/aVjy8/MllS/gEBoaqk8++USTJk1S8+bNFRERoV69emn58uWOkPbNN984vVRPn2mYiouLtWjRIi1btsx08Y4jR45o8eLFpguZ0WdQmaf6Q0U97vwd2qweTyCgBZHIyEjHceWFH1ypGJKNioryWptgTf/97381evRolZSUKCIiQm+//bZatmxpWtadflV5mJ9+FZhmzZqlnTt36qyzztKMGTPcvp/+0rBU/n1fe+21pqunhYSEVFlkZvHixS7roM80DPn5+brsssv0xBNP6Pjx43rooYe0c+dOFRUVKTc3V59//rkGDBigDRs26JprrtHzzz9f5X76DCrzVH+oqMedv0Ob1eMJBLQg0rhxY8dxbYZbK/7lszZDuQgee/fu1fDhw5WTk6PQ0FAtXry42tWK3OlXFX1Kol8Fol27dunJJ5+UJL3wwgtVpnDUFv2lYan8+64YJTNzwQUXqE2bNpKkDRs2uKyDPtMwzJgxQ//5z38kSfPnz9ecOXPUqVMnhYeHKy4uTsOGDdPq1as1ePBgGYahBx98sMq7jfQZVOap/lBRjzt/hzarxxNcL/OHgBMZGanExERlZ2fr0KFD1ZbNyclxdK7KL0wiuGVlZemyyy5TVlaWbDabXnnlFY0ePbraeyq/cFtTv6r8wi39KvA8++yzstvtat++vQoKCrRkyRKnMt9//73jeNWqVTp8+LAk6ZprrlFMTAz9pYFJSUlx9IHavJyfmZmpo0ePVjlPn2lYDMPQq6++Kql8uf0JEyaYlgsLC9Nf/vIXDRgwQGVlZXr11Vf17LPPSqLPoCpP9Yfk5GR9++23ys/P18mTJ6tdKKSinorp3J5GQAsynTt31tq1a7Vnzx6VlJS4XGp/165dVe5B8MvOztawYcMce8688MILjg3Lq3P++ec7jiv3GzP0q8BWMWXj559/1g033FBj+b/85S+O47179yomJob+0sBccMEFjhExs6XSK6u4/ts/l+gzDcuRI0cci8v06NGj2rKV93Ot/Lunz6AyT/WH888/X++9956jnKsNr0tKShx79HmrTzHFMcgMGDBAUvnQ66ZNm1yWq7z31SWXXOL1dsG/cnNzdfnllzuWxJ49e7buvffeWt3brl07JSUlSarab8xUTFlp06aN2rZtW/cGI2DRXxqWSy+91HFc8RcWVyr+cahiqmMF+kzDUjmgl5SUVFu2uLjY9D76DCrzVH+o+Dt0TfVs3LjRMQvNW3+HJqAFmVGjRjmOK6YQ/FZZWZkWLlwoSUpISNDgwYN90TT4SUFBga6++mpt3rxZkvTYY4/p4YcfrvX9NptNI0eOlFT+L0oVG9P+1rp16xz/MjVy5Ei3lmaHNSxYsECGYVT7qbxwyOrVqx3nK/6go780LCNGjFCjRo0kyWl1xsrS09N1/PhxSdLAgQOrXKPPNCxNmzZ1bDqdkZFRbUir/Jfkdu3aOY7pM6jMU/0hNTVV8fHxkqTXXnvNdHVRqfzPygo1vSZSZwaCzsCBAw1JRlhYmPHNN984XX/qqacMSYYkY8aMGb5vIHymqKjIGD58uOP3/cADD9Spnh9++MEICwszJBm9evUyCgoKqlwvKCgwevXq5eh3P/74owdaDyuaMWOGoz+tXr3atAz9pWG5++67HX1i8eLFTtfz8vKM7t27O8qsX7/eqQx9pmG54YYbHP0hLS3NtMyJEyeM888/31Hus88+q3KdPhO89u7d6/i9T5gwoVb3eKo/TJs2zfHsp556yun6N99843jOoEGD3P1qtUZAC0KbN282oqKiDElGbGysMWvWLCMjI8NYtWqVceeddzo6XocOHYy8vDx/NxdeNGbMGMfve8iQIca2bduM7du3u/z88MMPLut65JFHHHX16NHDWLJkibFhwwZjyZIlRo8ePRzXpk6d6sNvCF+rTUAzDPpLQ3L06FHjrLPOcvzF57777jNWrVplbNy40Xj11VeNTp06OX7fd999t8t66DMNx86dO43o6GjH7/Saa64x3n33XWPz5s3GN998YzzzzDOOPiXJGDp0qGk99JngsHbtWuPVV191fJ5++mnH7+6SSy6pcu3VV191WY8n+kNeXp7RoUMHR9k777zTWLVqlZGRkWHMmjXLiI2NNSQZUVFRxpYtWzz/P8b/ENCC1EcffWTExcU5OthvPx06dDB2797t72bCy1z9/l19zj77bJd1lZaWGrfddlu1999+++1GaWmp774gfK62AY3+0rDs2LHDOPfcc6v9fd92222G3W53WQd9pmH54osvjMTExBr/XBoyZIhx4sQJ0zroM8FhwoQJbv1dxRVP9Yfdu3cb5513nss64uLijGXLlnn6f4YqCGhBbN++fcbkyZONDh06GNHR0UZCQoLRq1cvY86cOUZ+fr6/mwcf8GRAq7BixQpj5MiRRlJSkhEeHm4kJSUZI0eOND7++GPvfyH4XW0DWgX6S8Nx+vRp4+mnnzYuvvhio2nTpkZ4eLiRnJxsXH/99caqVatqXQ99puHIzs425syZY6SmphrNmzc3GjVqZERFRRnt2rUzrrvuOuPDDz80ysrKaqyHPhPYPBXQKniiP5w+fdqYM2eO0atXLyMhIcGIjo42OnbsaEyePNnYt29ffb5urdgMw8UbcAAAAAAAn2IVRwAAAACwCAIaAAAAAFgEAQ0AAAAALIKABgAAAAAWQUADAAAAAIsgoAEAAACARRDQAAAAAMAiCGgAAAAAYBEENAAAAACwCAIaAAAAAFgEAQ0AgP9p27atbDabbDab9u3b5+/mAAAaIAIaAAAAAFgEAQ0AELQYEQMABBoCGgAAAABYRJi/GwAAgFUwygYA8DdG0AAAAADAIghoAAAAAGARBDQAQFDZt2+fY2GQ/fv3O863a9fOcb7yZ82aNY4ytVlUJDU11enezMxMTZs2Td26dVOTJk0UGRmpLl266PHHH1d+fr5THTt37tTdd9+tCy64QLGxsWrSpIkuvfRSLViwQIZhuPV9N2zYoMmTJ6t79+5q3ry5wsPD1apVKw0aNEhz5sxRTk6OW/UBAPzLZrj7JwEAABa2b98+tWvXrtblV69erdTUVEnlAa0i1O3du1dt27Z1Kp+amqr09HTHvWfOnNGNN97oMgh169ZNq1evVpMmTSRJM2fO1OOPP66ysjLT8mPHjtVbb72l0NDQatudk5OjO+64Q++991615RISEvTvf/9b48aNq7YcAMAaWCQEABBU4uLidO+990qSFi5cqFOnTkmSxo8fr8aNGzuVb9OmTZ2ftWXLFj366KMqLCxU27Zt1a9fP0VHR+u///2v1q1bJ0n67rvvdP311+vzzz/XE088obS0NEnSRRddpK5du8pms+mrr77Snj17JEnvvfeeZs+erccee8zlcw8fPqwhQ4Zo586djnOdO3dW9+7d1bhxYx09elRfffWVsrOzdfLkSV133XV6/fXXdeONN9b5uwIAfIMRNABA0KrNiJi75SuPoIWHh0uSXnzxRd1+++2y2WyOcu+//76uv/56lZSUSJKeeeYZTZkyRW3atNGSJUvUv39/R9mysjI98sgjevrppyVJsbGxOnz4sGJiYpyeX1ZWpssuu0yrV6+WVB705s6dq169elUpV1hYqDlz5mjmzJkyDEMxMTHavn27W6OLAADf4x00AADqyG636//9v/+niRMnVglnkjRmzBjdfvvtjp8ffPBBRUZG6osvvqgSziQpJCREs2fPVufOnSVJp0+f1vLly02f+eabbzrCWffu3ZWenu4UziQpMjJSM2bM0LRp0yRJ+fn5euqpp+r+ZQEAPkFAAwCgjnr06KEJEya4vH799ddX+fmuu+5Sx44dTcuGhITo2muvdfy8YcMG03LPPPOM4/iFF15QbGxstW2cOnWqEhISJEmLFy92+e4bAMAaCGgAANTR2LFjq73epUuXOpffu3ev0/VffvlFW7dulVT+7tyAAQNqbGNkZKT69esnScrNzdX3339f4z0AAP9hkRAAAOroggsuqPZ6xcqNFc4///xal8/Ly3O6npGR4Tg2DEP33XdfbZqpn376yXF88OBBXXjhhbW6DwDgewQ0AADqKD4+vtrrYWFV/5h1p3xxcbHT9aysrCrHL774Ym2aWQX7ogGAtTHFEQCAOvrtwiCeLv9bubm59bpfkmNVSQCANTGCBgBAgKi87P6oUaP0wQcf+LE1AABvYAQNAIAA0bJlS8fx7t27/dgSAIC3ENAAAEGrvlMKraZv376O4//+9786dOiQH1sDAPAGAhoAIGhFRkY6js0W3Qg07dq1c2xmLUnPPfec/xoDAPAKAhoAIGg1a9bMcZyZmenHlnjOww8/7Dh+/vnntXLlylrfe/jwYW80CQDgQQQ0AEDQ6tq1q+P47bff9mNLPOemm27SkCFDJJWvyHj11Vdrzpw5ys/PNy1/+vRpLV68WEOGDNH999/vy6YCAOqAVRwBAEFr7NixevnllyVJL730kjZv3qyLLrpI0dHRjjJ33323zjnnHH810W2hoaF6++23NWzYMG3ZskV2u12PPPKIHn/8cfXt21dnnXWWwsPDlZOTox9//FE7duxwTO8cO3asn1sPAKgJAQ0AELQuu+wy3XTTTXrjjTckSd9++62+/fbbKmV+97vfBVRAk8qnbn799dd68MEHNW/ePJWUlKigoECrVq1yeU9UVJR69uzpw1YCAOqCgAYACGoLFy7U1VdfrTfffFNbt25Vdna2CgsL/d2seouKitJLL72khx9+WG+88YZWrVqlH3/8UcePH1dZWZni4+PVvn17devWTUOHDtUVV1yhuLg4fzcbAFADm2EYhr8bAQAAAABgkRAAAAAAsAwCGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGARBDQAAAAAsAgCGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGAR/z/p+qgW0ksOwQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ "cfg = ConfigurationWidget() \n", - "sol = SolutionWidget(config=cfg) \n", + "\n", "\n", "cfg.display()\n", - "sol.display()" + "\n", + "sol = SolutionWidget(config=cfg, result_transform=solution_to_fields_lenmatch_v3)\n", + "sol.display()\n", + "\n" ] }, { "cell_type": "code", - "execution_count": 5, - "id": "28d4ee10", + "execution_count": 4, + "id": "ee3a618f", "metadata": {}, "outputs": [ { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "ca7f18811437443497984acc840d7c60", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HTML(value=\"

Configuration

\"), VBox(children=(HBox(children=(Dropdown(d…" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "TypeError", + "evalue": "Expected Process", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mTypeError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[4]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 2\u001b[39m sim = Cadet()\n\u001b[32m 3\u001b[39m sim.evaluate_stationarity=\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m res = \u001b[43msim\u001b[49m\u001b[43m.\u001b[49m\u001b[43msimulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mguiprocess\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/CADET/CADET-Process/CADETProcess/simulator/simulator.py:261\u001b[39m, in \u001b[36mSimulatorBase.simulate\u001b[39m\u001b[34m(self, process, previous_results, **kwargs)\u001b[39m\n\u001b[32m 227\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 228\u001b[39m \u001b[33;03mSimulate the process.\u001b[39;00m\n\u001b[32m 229\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 258\u001b[39m \u001b[33;03mrun\u001b[39;00m\n\u001b[32m 259\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 260\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(process, Process):\n\u001b[32m--> \u001b[39m\u001b[32m261\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[33m\"\u001b[39m\u001b[33mExpected Process\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 263\u001b[39m process.lock = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m 264\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m process.check_config():\n", + "\u001b[31mTypeError\u001b[39m: Expected Process" + ] + } + ], + "source": [ + "guiprocess = cfg.process\n", + "sim = Cadet()\n", + "sim.evaluate_stationarity=False\n", + "res = sim.simulate(guiprocess)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5e5c1df5", + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'SolutionWidget' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[8]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m sol = \u001b[43mSolutionWidget\u001b[49m(config=cfg, result_transform=solution_to_fields_lenmatch_v3)\n\u001b[32m 2\u001b[39m sol.display()\n", + "\u001b[31mNameError\u001b[39m: name 'SolutionWidget' is not defined" + ] + } + ], + "source": [ + "sol = SolutionWidget(config=cfg, result_transform=solution_to_fields_lenmatch_v3)\n", + "sol.display()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ea9dddca", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/IBT/lanzrath/CADET/CADET-Process/CADETProcess/dynamicEvents/event.py:788: UserWarning: Got multiple events at the same time: [Event(name=eluent_off, parameter_path=flow_sheet.eluent.flow_rate, state=0.0, time=0.0, indices=[(slice(None, None, None),)]), Event(name=eluent_on, parameter_path=flow_sheet.eluent.flow_rate, state=1e-06, time=0.0, indices=[(slice(None, None, None),)])]\n", + " warnings.warn(\n" + ] + }, + { + "ename": "CADETProcessError", + "evalue": "Process is not configured correctly.", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mCADETProcessError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[8]\u001b[39m\u001b[32m, line 23\u001b[39m\n\u001b[32m 21\u001b[39m sim = Cadet()\n\u001b[32m 22\u001b[39m sim.evaluate_stationarity=\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[32m---> \u001b[39m\u001b[32m23\u001b[39m res = \u001b[43msim\u001b[49m\u001b[43m.\u001b[49m\u001b[43msimulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mguiprocess\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/CADET/CADET-Process/CADETProcess/simulator/simulator.py:265\u001b[39m, in \u001b[36mSimulatorBase.simulate\u001b[39m\u001b[34m(self, process, previous_results, **kwargs)\u001b[39m\n\u001b[32m 263\u001b[39m process.lock = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m 264\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m process.check_config():\n\u001b[32m--> \u001b[39m\u001b[32m265\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m CADETProcessError(\u001b[33m\"\u001b[39m\u001b[33mProcess is not configured correctly.\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 267\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.n_cycles_max < \u001b[38;5;28mself\u001b[39m.n_cycles_min:\n\u001b[32m 268\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 269\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mn_cycles_max is set lower than n_cycles_min \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 270\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m.n_cycles_max\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m vs \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m.n_cycles_min\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m). \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 271\u001b[39m )\n", + "\u001b[31mCADETProcessError\u001b[39m: Process is not configured correctly." + ] } ], "source": [ - "cfg_single = ConfigurationWidget() \n", + "from CADETProcess.modelBuilder import CLR\n", + "from CADETProcess.processModel import LumpedRateModelWithoutPores, ComponentSystem\n", + "from CADETProcess.simulator import Cadet\n", + "\n", + "cs = ComponentSystem(1)\n", "\n", - "cfg_single.display()\n", + "column = LumpedRateModelWithoutPores(cs, \"col\")\n", + "column.length = 0.1\n", + "column.diameter = 0.01\n", + "column.axial_dispersion = 1e-8\n", + "column.total_porosity = 0.5\n", + "\n", + "feed_c = 1\n", + "flow_rate = 1e-6\n", + "feed_duration = 10\n", + "recycle_off = 30\n", + "cycle_time = 100\n", + "\n", + "#process = CLR(column, feed_c, flow_rate, feed_duration, recycle_off, cycle_time)\n", + "\n", + "sim = Cadet()\n", + "sim.evaluate_stationarity=False\n", + "res = sim.simulate(guiprocess)\n", "\n" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "47cef686", + "execution_count": 8, + "id": "e686ffc1", "metadata": {}, "outputs": [ { "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "3c62e2016645419995ea78b9878669fe", - "version_major": 2, - "version_minor": 0 - }, "text/plain": [ - "VBox(children=(HTML(value=\"

Solution

\"), VBox(children=(HBox(children=(HTML(value=',\n", + " )" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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C3y2t2wZr3vuGWDBiGrHFDMAAAAAcDYCIiDEDhwo1u9//x/T5x5+eLBSU90hHtHJud00qQYAAAAAJyMgAkLs7rtzVFRU7rM9M7O5Jk7MsGBEJ+dyuRQb6/t2QQURAAAAADgDAREQQmvXHtI//7nV9Lk//3mYoqPD96+kWaNqKogAAAAAwBnC924UcBjDMDRlyioZvqva6+c/P1XDh58S+kHVg9k0MyqIAAAAAMAZCIiAEPn88wNasWK/z/aEhGg99tgQC0ZUP+YVRAREAAAAAOAEBERAiPz1r5tMt995Z3916JAU4tHUn3kFEVPMAAAAAMAJCIiAENi795jeemuHz/bmzeP029/2s2BE9UcFEQAAAAA4FwEREAJ///tmVVT4Nh+aNKmnmjSJsWBE9WcWEFFBBAAAAADOQEAEBJnHU6m//32zz/aoKJd+/eueFoyoYWhSDQAAAADORUAEBNlbb+3QgQMlPtsvvrijOnZMtmBEDcMUMwAAAABwLgIiIMj+8pevTLfffPNpIR5J49CkGgAAAACci4AICKK1aw9p1aoDPtt79kzTqFHpFoyo4aggAgAAAADnIiACguhvf/NfPeRyuUI8msahBxEAAAAAOBcBERAkeXmlevXV73y2JyfH6pprulkwosYxryBiihkAAAAAOAEBERAks2dvMa2wmTixu5KT3RaMqHHcbrNl7qkgAgAAAAAnICACgqCyskpPP/216XM33tgrxKMJjLg437cLKogAAAAAwBkIiIAgeO+9XOXmHvXZft557dS9e1roBxQAZlPMqCACAAAAAGcgIAKC4K9/dcbS9ifyN8XMMAwLRgMAAAAACCQCIiDANm/O18cf7/HZ3rlzsi68sL0FIwoMsylmhiFVVhIQAQAAAIDdERABAeaveujGG3spOtq+f+XMKogkppkBAAAAgBPY924VCEMFBR69+OI3Ptvj46P1y192t2BEgWPWg0iiUTUAAAAAOAEBERBAc+d+o2PHKny2jx/fVc2axVswosBxu83fLqggAgAAAAD7IyACAqSqynBkc+pqVBABAAAAgHMREAEBsmTJHn3zTYHP9uHDT1H//i0sGFFgUUEEAAAAAM5FQAQEyF//usl0uxOqhyT/FUQERAAAAABgfwREQADs2FGohQtzfba3adNEl1/e2YIRBR5TzAAAAADAuQiIgAB4/fXtMgzf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AADAjgiI4Gj+AiKmmDWeWQWRRB8iAAAAALAjAiI42t69viuYSUwxCwS32zwgYiUzAAAAALAfAiI4GhVEwRMXxxQzAAAAAHCKmLruOGLECPXv31+ZmZnq37+/TjvtNMXGxgZzbECjmQVEUVEutWqVYMFonMVfBRFTzAAAAADAfuocEC1fvlwrVqzw/jk2NlY9e/b0BkbV/01OTg7KQOsrNzdXf/7zn5Wdna3c3FzFxcWpa9euuuKKK3TjjTeqSZPATTFasmSJXn75Za1YsUL79u1TTEyMWrdurb59++qcc87RNddco6SkpICdD3VnNsXslFMSFBND8Vxj+etBxBQzAAAAALAfl2EYRl12jIqKksvl0om7u1wun/06d+5cIzDKzMxUenp64EZcB9nZ2Ro/frwKCgpMn+/evbsWLVqkLl26NOo8+fn5mjhxot59991a91u3bp369+9f5+MWFhYqNTVVBQUFSklJadQYI92gQW9r7dq8GttOP72lVq++zKIROcfcud/ouuuW+mz/z38uV2Zmi9APCAAAAADQYHWuIKrmcrnkcrlUVVUls2xpx44d2rFjh9555x3vtubNm/tUGnXv3t00YGqsDRs26IorrlBxcbGSkpI0ffp0ZWVlqaSkRPPmzdM//vEPbd26VWPHjlVOTk6DK3sKCgo0evRorV27VpI0duxY/fznP1fXrl1VWVmpnTt3KicnR//6178C+e2hnsymmNF/KDCoIAIAAAAA56h3QCRJXbt21cSJE9W6dWutW7dO69ev14YNG1RYWGgaGuXl5WnJkiVasmSJd1tCQoL69OnjDYz69++vwYMHN/w7+a8pU6aouLhYMTExWrx4sYYOHep9btSoUerWrZumTZumLVu2aNasWbr33nsbdJ5bbrlFa9euVUxMjF5++WVdeeWVNZ4fNmyYfvGLX2jWrFmqrOSG2Qrl5VU6cKDEZ3t6OiuYBYL/Ze5pUg0AAAAAdlPnKWYPPvig/vjHP6qoqMhb+TN69GjNnDlTvXv3liRt375d69ev94ZG69ev1549e/yf/IQKIpfLpYqKisZ8L8rJyfGGTJMnT9azzz7rs09VVZV69+6tzZs3q2nTpjpw4EC9m22vWLFCZ511liTp/vvv13333deocf8YU8wCY/fuo2rf/lWf7Q89dLpmzMi0YETOsmhRrsaO/cBn++LFF2r0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3/9e06ZN09q1azV48GBNmzZNvXv3VkFBgd5++209++yzkqSUlBQ9+eSTAfv+UDdUEIVGXFy0iosramyjgggAAAAA7KdBnZO//PJLff/99+rbt6/69+/v/erdu7fcbnegx1gvmZmZev3113X11VersLBQM2bM8NknIyND2dnZNZasr6/f/va3+uGHH/TYY4/p66+/1oQJE3z2adWqlebPn69u3bo1+DxoGH99cPz1zUHDmDWqpoIIAAAAAOynwUtrFRUV6fPPP9fnn3/+v4PFxKh79+41QqP+/furWbNmARlsXY0bN04bN27UU089pezsbO3evVtut1tdu3bVz372M918881q0qTxq1k98sgjuvjii/XMM89o+fLl2rdvn+Lj45WRkaGLL75Yt9xyi1JTUwPwHaG+/K2k5W/lLTSMWeBGBREAAAAA2I/LqOO684888og2bNig9evXa9u2baqqMr8Bd7lcPtvatm3rExp16dKlcSN3sMLCQqWmpqqgoEApKSlWD8eWXnnlW1199ac+23NyLtOgQS0tGJEzZWS8rm+/LaixbezYDlq48HyLRgQAAAAAaIg6VxBNnz7d+7i4uFgbNmzQunXrtH79eq1bt05fffWVSktLTVcz2717t/bs2aPs7GzvtuTkZJ8pagMGDGjktwMcRw+i0DBr+k0FEQAAAADYT4OmmDVp0kRDhw7V0KFDvdsqKyu1efNmb2C0fv16rV+/Xvn5+ZLkExwVFhbWmKLmcrlUUVGz2S3QUKxiFhpmgRsBEQAAAADYT4N7EP1YdHS0evfurd69e+vqq6/2bs/Nza1RabR+/Xrl5uZK8g2NgEChgig0zAI3mlQDAAAAgP0ELCDyp0OHDurQoYMuueQS77YjR45o3bp1NYKjrVu3BnsoiCBUEIUGFUQAAAAA4AxBD4jMpKWlKSsrS1lZWd5tZWVlVgwFDkUFUWhQQQQAAAAAzhA25RRxcXFWDwEOQgVRaFBBBAAAAADOENAKoqqqKuXm5qqkpESpqalKT08P5OGBOqOCKDTMfp4eDwERAAAAANhNQAKiQ4cO6a677tKbb76pY8eOebfHxcXptNNOU2Zmpverb9++atKkSSBOC/jlL6SIjaWCKJDMl7lnihkAAAAA2E2jA6JDhw5pyJAh2rlzp8+qZKWlpfrPf/6j//znP95tUVFR6tatW43QqH//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k2oAAAAAsLs63zG3adNGw4cP16OPPqqvv/46mGMCGsUsnKB6KHji4syaVBMQAQAAAICd1PmuubKyUqtWrdLdd9+tPn36qGvXrrrtttv0ySefqLKSm0GED7MpZmZVLggM8woippgBAAAAgJ3UOSC65JJL1KRJExmGIcMwtH37dv35z3/W6NGj1aJFC1111VV69dVXdeTIkSAOFzg5s+oVGlQHj9nPtrLSUGUlIREAAAAA2EWdA6J33nlHhw8fVnZ2tn7961+rXbt23rCooKBAb7zxhq655hq1atVKWVlZevLJJ7Vt27Zgjh0wZV5BxBSzYDGbYiZRRQQAAAAAdlKvu2a3260LLrhATz/9tHJzc7V27Vrdd999GjBggDcsqqio0GeffaY77rhD3bt3V69evXTnnXdqxYoVMgwjWN8H4EUFUWj5m75HHyIAAAAAsI9GlVVkZmbqvvvu05o1a7R7924988wzuvDCCxUXF+cNjLZu3aqZM2dqxIgRatWqla677jq99dZbOnr0aKC+B6AGKohCy1/4RkAEAAAAAPYRsLvm9PR0TZ48WQsXLlReXp7eeecdTZw4US1btvSGRYcPH9bLL7+sK664Qi1atND555+vv/3tb8rNzQ3UMAAqiELMX/jGFDMAAAAAsI+glFU0adJEl1xyiWbPnq19+/Zp1apVmj59unr37u0Nizwejz766CP95je/UefOndW/f3/dc889ysnJCcaQEEGoIAotKogAAAAAwP6Cftfscrk0ZMgQPfTQQ9q4caO2b9+up556Suecc45iYmK8gdGXX36phx9+WGeccYbatm0b7GHBwaggCi0qiAAAAADA/kJeVtGpUyfdcsst+uijj5SXl6fXX39d48ePV9OmTb1h0f79+0M9LDiIx+MbEPlrpIzGo4IIAAAAAOwvxsqTJycn62c/+5l+9rOfqaqqSitWrNCCBQu0cOFCK4cFmysr861c8bcUOxrPX0BEBREAAAAA2EfY3DVHRUXp7LPP1syZM7VlyxarhwMbo4IotPxNMaOCCAAAAADsI2wCIiBQzHsQcakHC1PMAAAAAMD+uGuG45ivYkYFUbDQpBoAAAAA7I+ACI7DKmahRQURAAAAANgfAREcx7yCiEs9WPxVZ5n1ggIAAAAAhCfumuEoVVWGysvNVjGjgihY/PV3MltNDgAAAAAQngiI4Chm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NB4BEWyJVcxghUGDWurzzy9Wx45Jps8fPlymUaMWavHi3SEeGQAAAAA0DnfUsCUqiGCVjIw0rVx5iXr3bmr6/LFjFRo79n299tq2EI8MAAAAABqOgAi25PH4BkRUECFU0tMT9dlnF2v48FNMn6+oMPSLX3yixx5br6oqI8SjAwAAAID6444atmQ2xYwKIoRS06ZxWrz4Qo0b18HvPnfdtVqjRi3U998XhXBkAAAAAFB/BESwJbMpZlQQIdQSEmL09tvnaeLEDL/7LFu2T337/ksvvLBVhkE1EQAAAIDwxB01bIkKIoSLmJgozZ49Qnfe2c/vPkVF5frlL5fp0ksX68CB4hCODgAAAADqhoAItkQFEcKJy+XSo48O0axZZ8jl8r/fggU71afPv/TOOztCNzgAAAAAqAPuqGFL5svcU0EEa912W1998slF6tgxye8+hw6V6vLLP9KECUtVUOAJ4egAAAAAwD8CItiOYRgsc4+wNXJkujZu/Kl++cvute734ovfqE+fN/XBB7voTQQAAADAcgREsJ2KCvObaaaYIVykpLg1e/YIvfvueWrVKsHvfrt2HdMFF7yvUaMWauXK/SEcIQAAAADUxB01bMesekiiggjh5+KLO2nTpp/qsss61brf0qX7NGzYAo0d+77WrcsLzeAAAAAA4AQERLAdj8c8IKKCCOGoZcsEvfXWaM2dO1IpKbG17rto0S4NGPC2rrhiibZsORKaAQIAAACACIhgQ2Vlvg2qJSqIEL5cLpeuuSZDX375M40alX7S/d98c7tOO+1NTZiwVDt2FIZghAAAAAAiHQERbIcKIthVhw5J+uijsXr66eG19iaSpKoqQy+++I26d39DN9ywTDk5B2lmDQAAACBouKOG7dCDCHYWFeXS//1fL3333c/10EOnKy3NXev+5eVVmj17qwYPnq/MzLf1t799pSNHykI0WgAAAACRgoAItuPxmE8xc7sJiGAfSUmxmjEjUzt2XKW7785UYmLMSV+zYcNh3Xzz52rT5mVde+2nWr58H1VFAAAAAAKCgAi247+CiMsZ9pOWFqcHHzxd27dfpSlTetepEq60tFIvvfStzj77PfXq9aaeeGKjDh4sCcFoAQAAADgVd9SwHSqI4EStWiXoySfP1LffXqlJk3ooOtpVp9dt2XJEd9zxhU455SUNG/auHnlknb788gcqiwAAAADUCwERbIceRHCy9u2T9NxzZ2vLliv0f//XSykpsXV6nWFIK1ce0IwZOerb91/q3Pk13XzzCn3wwS6VllYEedQAAAAA7M5l8M/MYaewsFCpqakqKChQSkqK1cMJO4sX79aYMYt8tmdnn68LL+xgwYiA4Dl2rFxvvrldzz+/RZ9/fqBBx2jSJEajR7fVBRe017Bhp6hXr6aKiqpbhRIAAACAyHDyrqhAmKGCCJEkMTFWEyZ014QJ3fX11/l6/vktmjv3Gx0+XPeVzIqLK/Tuuzv17rs7JUmpqW6dcUYrnXlmaw0d2lpDhrRSSkrtq6kBAAAAcDbHTjHLzc3VHXfcoZ49eyoxMVHNmjXT4MGDNXPmTBUXFwfsPPPmzdOYMWPUpk0bxcfHq1OnTrrmmmv0xRdfBOwcqMnjMQ+I3G7HXs6AJKlXr6aaNWuo9uy5Wq+9NkqjRqU36DgFBR59+OFu3XffWp133iKlpc1Rv37/0q9/vVxz5mzV2rWHVFzMtDQAAAAgkjhyill2drbGjx+vgoIC0+e7d++uRYsWqUuXLg0+R2lpqX72s59p4cKFps9HRUXp/vvv1z333FPvYzPFrHavvrpN48d/4rP93/++VIMHt7JgRIB1duwo1IIFO7VwYa6WLdun8nLzJu715XJJXbqkqHfvpjrttKbq3buZevdupoyMVKr1AAAAAAdyXEC0YcMGnXnmmSouLlZSUpKmT5+urKwslZSUaN68efrHP/4hSerRo4dycnKUlJTUoPOMHz9er776qiQpKytLt956q9LT0/Xll1/q4Ycf1nfffSdJ+sc//qEbbrihXscmIKrdnDlbNXHiMp/t69Zdrv79W1gwIiA8FBZ6tHjxbi1cmKvs7Fzl5ZUG/BzR0S5165aqLl2S1blzsjp3TlHnzsnq1On4n5s2jQv4OQEAAAAEn+MCoqysLC1dulQxMTH67LPPNHTo0BrP//GPf9S0adMkSQ888IDuvffeep9j2bJlGjlypCRp3LhxeueddxQd/b9/Uc/Ly9PAgQOVm5urpk2bavv27UpLS6vz8QmI/Fu5cr9uu22VVq8+5PPc11//TD17NrVgVED4qaysUk7OIS1cmKv33tupjRt/CMl5U1Pd/w2OkpWe3kRt2hz/OuWU/z1u2TJe0dFMCQUAAADCiaMCopycHA0ePFiSNHnyZD377LM++1RVVal3797avHmzmjZtqgMHDig2tm7LSFcbO3asFi1apOjoaH3//fdq166dzz7z5s3TVVddJUmaOXOmpk6dWufjExD5WrcuT7/7XY4WLdrld59t236uU0/l5wWYOXSoRF98cVArVx7QqlUHtHr1QZWUmPfzCraoKJdat07QKackqGXLBDVvHqfmzePVvHmcmjWL9/lz06ZupaS4FRNDqAQAAAAEi6MCorvvvlsPP/ywJOmLL77QkCFDTPd79NFHNX36dEnS4sWLNXr06Dqf4+jRo2rRooXKysp0/vnn6/333zfdz+PxqGXLliosLNSZZ56pzz//vM7nICD6ny1bjujee9fozTe317pfcnKs8vKuldtNbxSgLsrLq7Rhw2FvYLRy5QHl5h61eli1SkiIVkqK+79fsUpN/d/jpKRYJSbGKDExVk2axJg8jlGTJjGKj49RfHz0j75iFBPjksvlsvpbBAAAACzjqGXuly9fLklKTEzUwIED/e43YsQI7+MVK1bUKyBavXq1ysrKfI7zY263W2eccYYWL16s1atXq7y8vN6VSnZRWVmlY8cCu+LRgQMlevjhdZo791tVVZ08w/zNb3oTDgH1EBsbpUGDWmrQoJb6zW96S5L27SvWpk0/6Kuv8rVp0w/atClfX32Vr6NHyy0e7XElJZUqKSnRgQMlAT92VJTLGxi53VFyu3/835rbYmNdiomJUmxslPe/xx+7vNtiYo7vEx3tUnS0/8fR0VGKitJJ/xsV5frRV81tLpe8/3W5zLeZ/bnmY99tUs3tJ/65+vHx/8r7X99tvvuYbT9xm+/2mr8zs0DPLOP78X51zQHrsl9dQsVA5o52DTFtOmwAQJiLiYlSkyaOijQs56if5ubNmyVJXbt2VUyM/2+tR48ePq+p7zl+fBx/51m8eLEqKir07bffqlevXvU6l118802BevV605Jzt2wZrwceGKRf/7qnJecHnKS6R9Do0f+bNmsYhnJzj3pDo6++yte2bYXasaNI+/YVWzjawKqqMlRcXKHi4sCG3QAAAAiOSy7pqPnzx1g9DEdxTEBUWlqqvLw8STLtCXSipk2bKjExUceOHdOuXf572pg5cf+Tnad9+/Y1XufUgMgKqaluTZvWT7/5TW8lJTmzMgsIBy6XSx07Jqtjx2RdeGGHGs+VlFQoN/eoduwo0o4dRfr++yLv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "#from CADETProcess.modelBuilder import BatchElution\n", - "from CADETProcess.processModel import GeneralRateModel, ComponentSystem, LumpedRateModelWithoutPores\n", - "cs = ComponentSystem(1)\n", - "column = GeneralRateModel(cs, \"abc\")\n", - "\n" + "res = sim.simulate(guiprocess)\n", + "res.solution.GRM.outlet.plot()" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "6144074c", + "execution_count": null, + "id": "4535001e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "['bed_porosity',\n", - " 'particle_porosity',\n", - " 'particle_radius',\n", - " 'film_diffusion',\n", - " 'pore_diffusion',\n", + "['total_porosity',\n", " 'length',\n", " 'diameter',\n", " 'axial_dispersion',\n", @@ -156,19 +469,102 @@ " 'axial_dispersion']" ] }, - "execution_count": 3, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "column.required_parameters" + "column." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "3be6d53a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'feed': {'inlet': ,\n", + " 'outlet': },\n", + " 'eluent': {'inlet': ,\n", + " 'outlet': },\n", + " 'GRM': {'inlet': ,\n", + " 'outlet': },\n", + " 'outlet': {'inlet': ,\n", + " 'outlet': }}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res = sim.simulate(guiprocess)\n", + "res.solution" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "4223037f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "solmap type: \n", + "unit keys: ['feed', 'eluent', 'GRM', 'outlet']\n", + "unit time type: \n", + "global time type: \n", + "t.shape: ()\n", + "data.shape: (101, 1)\n" + ] + } + ], + "source": [ + "u, p = \"GRM\", \"outlet\" # pick any unit/port you like\n", + "\n", + "res = sim.simulate(guiprocess)\n", + "solmap = res.solution\n", + "\n", + "print(\"solmap type:\", type(solmap))\n", + "print(\"unit keys:\", list(solmap.keys())[:10])\n", + "\n", + "# --- TIME: try unit, then global\n", + "unit_time_obj = getattr(solmap[u], \"time\", None)\n", + "global_time_obj = getattr(solmap, \"time\", None)\n", + "\n", + "def extract_values(x):\n", + " if x is None: return None\n", + " if isinstance(x, dict) and \"values\" in x: return x[\"values\"]\n", + " return getattr(x, \"values\", None) if hasattr(x, \"values\") else x\n", + "\n", + "t_unit = extract_values(unit_time_obj)\n", + "t_global = extract_values(global_time_obj)\n", + "\n", + "print(\"unit time type:\", type(t_unit))\n", + "print(\"global time type:\", type(t_global))\n", + "\n", + "import numpy as np\n", + "t = np.asarray(t_unit if t_unit is not None else t_global)\n", + "print(\"t.shape:\", getattr(t, \"shape\", None))\n", + "\n", + "# --- DATA\n", + "io = solmap[u][p]\n", + "data_obj = getattr(io, \"solution\", None)\n", + "data = np.asarray(getattr(data_obj, \"values\", data_obj))\n", + "print(\"data.shape:\", getattr(data, \"shape\", None))\n" ] }, { "cell_type": "code", "execution_count": null, - "id": "ee3a618f", + "id": "4814cfd2", "metadata": {}, "outputs": [], "source": [] diff --git a/tests/test_widgets.py b/tests/test_widgets.py index 63b811f..1a6b2a0 100644 --- a/tests/test_widgets.py +++ b/tests/test_widgets.py @@ -2,7 +2,7 @@ import pytest import ipywidgets as W -from cadetgui.widget import ( +from cadetgui.widgets.elements import ( BaseWidget, TextField, FloatField, From a5d935cc5ba90262ce604ce5c5ae5aa61016af13 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:28:18 +0200 Subject: [PATCH 008/158] Chore: update meta files --- .gitignore | 3 + cadetgui/widgets/legacy/base.py | 184 ++++++ cadetgui/widgets/legacy/config.py | 564 ++++++++++++++++ cadetgui/widgets/legacy/elements.py | 452 +++++++++++++ cadetgui/widgets/legacy/form.py | 63 ++ cadetgui/widgets/legacy/solution.py | 971 ++++++++++++++++++++++++++++ pyproject.toml | 5 +- 7 files changed, 2241 insertions(+), 1 deletion(-) create mode 100644 cadetgui/widgets/legacy/base.py create mode 100644 cadetgui/widgets/legacy/config.py create mode 100644 cadetgui/widgets/legacy/elements.py create mode 100644 cadetgui/widgets/legacy/form.py create mode 100644 cadetgui/widgets/legacy/solution.py diff --git a/.gitignore b/.gitignore index 7468306..6897669 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,6 @@ diskcache_* results_* *.egg-info .vscode + +# AI-assisted development notes (local working docs, not for the repo yet) +ai-docs/ diff --git a/cadetgui/widgets/legacy/base.py b/cadetgui/widgets/legacy/base.py new file mode 100644 index 0000000..2c95717 --- /dev/null +++ b/cadetgui/widgets/legacy/base.py @@ -0,0 +1,184 @@ +# ========================================= +# File: cadetgui/widgets/base.py +# ========================================= +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any, Callable, Dict, Optional + +import ipywidgets as W + +from .elements import FloatListField # aligned list control + +__all__ = ["ListenerMixin", "BaseWidget"] + +LABEL_W = "140px" + + +def _style_field( + w: W.Widget, *, width: str = "300px", label_width: str = LABEL_W, grow: bool = False +) -> W.Widget: + if hasattr(w, "layout"): + w.layout.width = "100%" if grow else width + w.layout.min_width = "0" + if not grow: + w.layout.flex = "0 0 auto" + if hasattr(w, "style"): + try: + w.style.description_width = label_width # fixed label column + except Exception: + pass + return w + + +class ListenerMixin: + """Reusable mixin that provides listener registration and notification.""" + + def __init__(self) -> None: + self._listeners: list[Callable[[Any], None]] = [] + + def add_listener(self, fn: Callable[[Any], None]) -> None: + """Register a listener callback.""" + self._listeners.append(fn) + + def notify(self, value: Any) -> None: + """Notify all registered listeners with a new value.""" + for fn in list(self._listeners): + try: + fn(value) + except Exception: + pass + + +class BaseWidget(ABC): + """Base widget container with a header, body, and status bar.""" + + def __init__(self, *, title: Optional[str] = None) -> None: + self.title = title or self.__class__.__name__ + self._status = W.HTML("Ready.") + self._header = W.HTML(f"

{self.title}

") + self._body = self._build_body() + self.root = W.VBox([self._header, self._body, self._status]) + self._wire_events() + + @abstractmethod + def _build_body(self) -> W.Widget: + ... + + def _wire_events(self) -> None: + """Connect event handlers (optional override).""" + + def set_status(self, text: str) -> None: + self._status.value = text + + def set_error(self, exc: Exception | str) -> None: + msg = str(exc) if isinstance(exc, Exception) else exc + self._status.value = f"{msg}" + + def run_safe(self, func: Callable[..., Any], *args: Any, **kwargs: Any) -> Any | None: + try: + return func(*args, **kwargs) + except Exception as exc: # noqa: BLE001 + self.set_error(exc) + return None + + @staticmethod + def make_apply_reset(on_apply: Callable[..., Any], on_reset: Callable[..., Any]) -> W.HBox: + btn_apply = W.Button(description="Apply", button_style="success") + btn_reset = W.Button(description="Reset") + btn_apply.on_click(on_apply) + btn_reset.on_click(on_reset) + return W.HBox([btn_apply, btn_reset]) + + @staticmethod + def reset_fields(widgets: Dict[str, W.Widget], specs: list[Any]) -> None: + """Reset widgets to their FieldSpec defaults.""" + for f in specs: + w = widgets.get(f.name) + if w is None: + continue + default = getattr(f, "default", None) + kind = getattr(f, "kind", "text") + try: + if kind == "float": + w.value = float(default) if default is not None else 0.0 + elif kind == "bool": + w.value = bool(default) + elif kind == "float_list": + # Rebuild the aligned FloatListField to match defaults + vals = ( + list(default) + if isinstance(default, (list, tuple)) + else ([float(default)] if default is not None else [0.0]) + ) + desc = getattr(f, "label", None) or getattr(f, "name", "") + new = FloatListField(description=desc, values=vals, label_width=LABEL_W) + widgets[f.name] = new # caller should re-render the form if needed + else: + w.value = "" if default is None else str(default) + except Exception: + # be robust to partial failures + pass + + @staticmethod + def widget_for_field(f: Any) -> W.Widget: + """ + Map a FieldSpec (name, kind, default, min, max, units, etc.) to a widget. + + IMPORTANT: Do NOT invent a max for floats. If min/max are not provided, + use FloatText (unbounded). If bounds exist, use BoundedFloatText with + exactly those bounds. + """ + label = getattr(f, "label", None) or getattr(f, "name", "") + kind = getattr(f, "kind", "text") + default = getattr(f, "default", None) + min_v = getattr(f, "min", None) + max_v = getattr(f, "max", None) + + # FLOAT + if kind == "float": + common = dict( + description=label, + value=float(default) if default is not None else 0.0, + ) + if min_v is None and max_v is None: + w = W.FloatText(**common) + else: + if min_v is not None: + common["min"] = float(min_v) + if max_v is not None: + common["max"] = float(max_v) + w = W.BoundedFloatText(**common, step=1e-6, readout_format=".6g") + return _style_field(w) + + # BOOL + if kind == "bool": + w = W.Checkbox(description=label, value=bool(default)) + return _style_field(w, width="auto") + + # FLOAT LIST (aligned, button-based editor) + if kind == "float_list": + vals = ( + list(default) + if isinstance(default, (list, tuple)) + else ([float(default)] if default is not None else [0.0]) + ) + return FloatListField(description=label, values=vals, label_width=LABEL_W) + + # TEXT (fallback) + w = W.Text(description=label, value=str(default) if default is not None else "") + return _style_field(w) + + @staticmethod + def observe_and_rebuild(widget: W.Widget, names: str, rebuild_fn: Callable[[Any], None]) -> None: + def _on_change(change: dict) -> None: + if change.get("name") != names: + return + rebuild_fn(change.get("new")) + + widget.observe(_on_change, names=names) + + def display(self) -> None: + from IPython.display import display as _display + + _display(self.root) diff --git a/cadetgui/widgets/legacy/config.py b/cadetgui/widgets/legacy/config.py new file mode 100644 index 0000000..68278e8 --- /dev/null +++ b/cadetgui/widgets/legacy/config.py @@ -0,0 +1,564 @@ +from __future__ import annotations + +import warnings +from threading import Timer +from typing import Any, Callable, Dict, Optional, Union + +import ipywidgets as W +from CADETProcess.processModel import ComponentSystem + +from ...cadetprocessadapter import ( + DEFAULT_COLUMN_FACTORIES, + MODEL_REGISTRY, + build_column_config_spec, +) +from .base import BaseWidget, ListenerMixin +from .elements import ChoiceField, Modal, ObjectChoiceField +from .form import FormRenderer + +__all__ = ["ConfigurationWidget"] + +# ---------------------- +# CSS-like layout tokens +# ---------------------- + +CSS_ROOT = W.Layout( + position="relative", + width="100%", + overflow="visible", + display="block", + z_index="0", +) + +CSS_TOOLBAR_WRAP = W.Layout( + position="relative", + width="100%", + overflow="visible", + z_index="0", +) + +# Model & Column pickers row +CSS_TOOLBAR_ROW = W.Layout( + align_items="center", + position="relative", + flex_wrap="wrap", + min_width="0", +) + +# Toolbar popover panel +CSS_TOOLBAR_POPOVER = W.Layout( + display="none", + position="absolute", + top="calc(100% + 8px)", + right="0", + width="420px", + max_height="60vh", + overflow_y="auto", + padding="16px", + border="1px solid #ccc", + border_radius="12px", + background_color="#fff", + box_shadow="0 8px 24px rgba(0,0,0,0.25)", + z_index="10020", +) + +# Main model configuration panel (no horizontal scroll) +CSS_MODEL_PANEL = W.Layout( + min_height="500px", + max_width="400px", + display="block", + overflow_x="hidden", +) + +# Grey overlay dimmer for popovers & modal +CSS_OVERLAY_DIMMER = W.Layout( + display="none", + position="absolute", + top="0", left="0", right="0", bottom="0", + background_color="rgba(0,0,0,0.25)", + z_index="10010", + pointer_events="auto", +) + +# Raise a control above overlays if needed +CSS_RAISE_ABOVE_OVERLAY = dict(position="relative", z_index="10040", pointer_events="auto") + + +# ---------------------- +# Utilities +# ---------------------- + +def _set_attr_path(obj: Any, path: str, value: Any) -> None: + """Set attribute or mapping by dotted path. Supports 'param:Family.key'.""" + if path.startswith("param:"): + _, rest = path.split("param:", 1) + family, key = rest.split(".", 1) + try: + obj.parameter[family][key] = value + return + except Exception: + pass + target = obj + parts = path.split(".") + for part in parts[:-1]: + target = getattr(target, part) + setattr(target, parts[-1], value) + + +# ---------------------- +# Widget +# ---------------------- + +class ConfigurationWidget(BaseWidget, ListenerMixin): + """Unified configuration widget for model/column-based process building. + + - Model Configuration: main panel under the toolbar (builds the process) + - Column Configuration: modal dialog for editing column parameters + """ + + # ----- init & state ----- + def __init__( + self, + *, + title: Optional[str] = None, + registry: Optional[dict[str, Callable[[Any], Any]]] = None, + columns: Optional[Union[list[Any], dict[str, Any]]] = None, + on_built: Optional[Callable[[Any], None]] = None, + spec_builder: Optional[type[FormRenderer]] = None, + ) -> None: + ListenerMixin.__init__(self) + + use_defaults = registry is None or columns is None or spec_builder is None + if use_defaults: + self._DEFAULT_COLUMN_FACTORIES = DEFAULT_COLUMN_FACTORIES + self._can_rebuild_columns = True + self._components_value = 1 + columns = DEFAULT_COLUMN_FACTORIES + registry = MODEL_REGISTRY + spec_builder = FormRenderer + else: + self._DEFAULT_COLUMN_FACTORIES = None + self._can_rebuild_columns = False + self._components_value = None + + # External deps / factories + self._registry = registry + self._columns = columns + self._SpecDriven = spec_builder + self._on_built = on_built + + # Column Config modal + self._column_modal = Modal("Column configuration") + + # State + self._built: Any | None = None + self._column_cache: dict[object, Any] = {} + + # Anti-flicker / concurrency guards + self._suspend_main_rebuild: bool = False + self._toolbar_popover_timer: Optional[Timer] = None + self._toolbar_popover_last_factory: Any = None + + # Detachable observers + self._obs_model_spec = None + self._obs_column_spec = None + + # Controls + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + self._btn_open_column_modal = W.Button(description="Configure column…", icon="wrench") + + self._components_field: Optional[W.IntText] = ( + W.IntText(description="Components:", value=self._components_value, min=1) + if self._can_rebuild_columns + else None + ) + + super().__init__(title=title or "Configuration") + + # Public API + @property + def process(self) -> Any | None: + return self._built + + # ----- UI builders ----- + def _build_toolbar_row(self) -> W.Widget: + self._model_picker = ObjectChoiceField(label="Model:", items=self._registry) # type: ignore[arg-type] + self._column_picker = ChoiceField(label="Column:", options=self._column_pairs) + for k, v in CSS_RAISE_ABOVE_OVERLAY.items(): + setattr(self._column_picker.widget.layout, k, v) + + row = W.HBox( + [self._components_field, self._model_picker.widget, self._column_picker.widget, self._btn_open_column_modal], + layout=CSS_TOOLBAR_ROW, + ) + return row + + def _build_toolbar_popover(self) -> W.Widget: + self._toolbar_popover = W.VBox([], layout=CSS_TOOLBAR_POPOVER) + return self._toolbar_popover + + def _build_model_panel(self) -> W.Widget: + self._model_panel = W.Box([], layout=CSS_MODEL_PANEL) + return self._model_panel + + def _build_overlay_dimmer(self) -> W.Widget: + self._overlay_dimmer = W.Box([], layout=CSS_OVERLAY_DIMMER) + return self._overlay_dimmer + + # ----- BaseWidget hooks ----- + def _build_body(self) -> W.Widget: + self._manual_mode = not (self._registry and self._columns) + if self._manual_mode: + self._form_box = W.VBox([]) + self._actions = W.HBox([self._btn_apply, self._btn_reset]) + return W.VBox([self._form_box, self._actions]) + + # Normalize columns + if isinstance(self._columns, dict): + self._column_pairs = list(self._columns.items()) + else: + self._column_pairs = [ + (getattr(c, "name", c.__class__.__name__), c) for c in self._columns + ] + + # Toolbar (row + popover anchored to it) + toolbar_row = self._build_toolbar_row() + self._toolbar_wrap = W.Box([toolbar_row], layout=CSS_TOOLBAR_WRAP) + self._toolbar_popover = self._build_toolbar_popover() + self._toolbar_wrap.children = [toolbar_row, self._toolbar_popover] + + # Model Config panel + self._model_panel = self._build_model_panel() + + # Content + self._content = W.VBox([self._toolbar_wrap, self._model_panel], layout=W.Layout(width="100%")) + + # Overlays: dimmer then column modal, all inside the root + self._overlay_dimmer = self._build_overlay_dimmer() + self._root = W.Box([self._content, self._overlay_dimmer, self._column_modal.widget], layout=CSS_ROOT) + + return W.VBox([self._root]) + + def _wire_events(self) -> None: + if getattr(self, "_manual_mode", False): + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + return + + self._attach_main_observers() + self._btn_open_column_modal.on_click(self._open_column_modal) + + # Initialize picks + try: + mopts = list(self._model_picker.widget.options) + if mopts: + self._model_picker.set_value(mopts[0][1]) + copts = list(self._column_picker.widget.options) + if copts: + self._column_picker.set_value(copts[0][1]) + except Exception: + pass + + # Initial form + model_fn, column = self._get_selection() + if model_fn and column: + self._rebuild_model_panel(model_fn, column) + + # Components watcher + if self._components_field: + self._components_field.observe(self._on_components_change, names="value") + + # ----- Toolbar popover helpers ----- + def _show_toolbar_popover(self, content: W.Widget, *, title: str | None = None) -> None: + if getattr(self._column_modal, "is_open", False): + try: + self._column_modal.close() + except Exception: + pass + if title: + title_html = W.HTML(f"

{title}

") + self._toolbar_popover.children = [title_html, content] + else: + self._toolbar_popover.children = [content] + self._toolbar_popover.layout.display = "flex" + self._overlay_dimmer.layout.display = "flex" + + def _hide_toolbar_popover(self) -> None: + self._toolbar_popover.layout.display = "none" + self._toolbar_popover.children = [] + self._overlay_dimmer.layout.display = "none" + + def _open_toolbar_popover_with_live_update( + self, + *, + initial_factory: Any, + rebuild_fn: Callable[[Any], FormRenderer], + title_fn: Callable[[Any], str], + observe_widget: W.Widget, + names: str = "value", + ) -> None: + if getattr(self._column_modal, "is_open", False): + try: + self._column_modal.close() + except Exception: + pass + + self._detach_main_observers() + self._suspend_main_rebuild = True + + def _restore(): + self._suspend_main_rebuild = False + try: + observe_widget.unobserve(_on_change, names=names) + except Exception: + pass + if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): + try: + self._toolbar_popover_timer.cancel() + except Exception: + pass + self._attach_main_observers() + self._hide_toolbar_popover() + + form = rebuild_fn(initial_factory) + self._toolbar_popover_last_factory = initial_factory + self._show_toolbar_popover(form.root, title=title_fn(initial_factory)) + + self._toolbar_popover_timer = None + + def _do_rebuild(factory: Any) -> None: + try: + new_form = rebuild_fn(factory) + self._toolbar_popover_last_factory = factory + self._show_toolbar_popover(new_form.root, title=title_fn(factory)) + except Exception as exc: + self._show_toolbar_popover(W.HTML(f"Error: {exc}")) + + def _on_change(change: dict) -> None: + if change.get("name") != names: + return + factory = change.get("new") + if factory is self._toolbar_popover_last_factory: + return + if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): + try: + self._toolbar_popover_timer.cancel() + except Exception: + pass + self._toolbar_popover_timer = Timer(0.12, _do_rebuild, args=(factory,)) + self._toolbar_popover_timer.start() + + observe_widget.observe(_on_change, names=names) + self._popover_close = _restore # retained attribute name for backward-compat + + # ----- Build helpers (Model/Column) ----- + def _build_model_form(self, model_fn: Callable[[Any], Any], column: Any) -> FormRenderer: + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=UserWarning) + spec = model_fn(column) + + form = (self._SpecDriven or FormRenderer)(spec) # type: ignore[call-arg] + + def _after_apply(_b: W.Button) -> None: + if getattr(form, "built", None) is not None: + self._built = form.built + if self._on_built: + self._on_built(form.built) + self.notify(self._built) + + form._btn_apply.on_click(_after_apply) # noqa: SLF001 + return form + + def _build_column_form(self, column: Any) -> FormRenderer: + spec = build_column_config_spec(column) + form = FormRenderer(spec) + + spec_apply = getattr(spec, "apply", None) + + def _apply_into_column(_b: W.Button) -> None: + vals: Dict[str, Any] = {} + for f in spec.fields: + raw = getattr(form._widgets[f.name], "value", None) # noqa: SLF001 + val = f.transform(raw) if f.transform else raw + if f.validate: + f.validate(val) + vals[f.name] = val + + if callable(spec_apply): + spec_apply(column, vals) + else: + targets = getattr(spec, "targets", None) or {} + wrote_any = False + for fname, v in vals.items(): + target_path = targets.get(fname) + try: + if target_path: + _set_attr_path(column, target_path, v) + wrote_any = True + elif hasattr(column, fname): + setattr(column, fname, v) + wrote_any = True + except Exception: + pass + if not wrote_any: + for k, v in vals.items(): + try: + column.parameter["LRMP"][k] = v + wrote_any = True + except Exception: + pass + + name = getattr(column, "name", column.__class__.__name__) + self.set_status(f"Updated column parameters for: {name}") + self._hide_toolbar_popover() + + form._btn_apply.on_click(_apply_into_column) # noqa: SLF001 + return form + + # ----- Selection helpers ----- + def _make_column(self, factory: Callable[[ComponentSystem], Any]) -> Any: + if factory in self._column_cache: + return self._column_cache[factory] + cs = ComponentSystem(self._components_field.value if self._components_field else 1) + return factory(cs) + + def _get_selection(self) -> tuple[Callable[[Any], Any] | None, Any | None]: + model_fn = self._model_picker.get_value() if hasattr(self, "_model_picker") else None + col_factory = self._column_picker.get_value() if hasattr(self, "_column_picker") else None + column = self._column_cache.get(col_factory) if callable(col_factory) else col_factory + if column is None and callable(col_factory): + column = self._make_column(col_factory) + return model_fn, column + + # ----- Observers attach/detach ----- + def _attach_main_observers(self) -> None: + if self._obs_model_spec is None: + self._obs_model_spec = lambda ch: self._on_spec_change(ch) + self._model_picker.widget.observe(self._obs_model_spec, names="value") + if self._obs_column_spec is None: + self._obs_column_spec = lambda ch: self._on_spec_change(ch) + self._column_picker.widget.observe(self._obs_column_spec, names="value") + + def _detach_main_observers(self) -> None: + if self._obs_model_spec is not None: + try: + self._model_picker.widget.unobserve(self._obs_model_spec, names="value") + except Exception: + pass + self._obs_model_spec = None + if self._obs_column_spec is not None: + try: + self._column_picker.widget.unobserve(self._obs_column_spec, names="value") + except Exception: + pass + self._obs_column_spec = None + + # ----- Event handlers ----- + def _rebuild_model_panel(self, model_fn: Callable[[Any], Any], column: Any) -> None: + form = self._build_model_form(model_fn, column) + with self._model_panel.hold_trait_notifications(): + self._model_panel.children = [form.root] + self.set_status("Select model & column, configure, then click Apply.") + + def _on_spec_change(self, _change: dict) -> None: + if self._suspend_main_rebuild: + return + model_fn, column = self._get_selection() + if model_fn and column: + self._rebuild_model_panel(model_fn, column) + + def _on_components_change(self, change: dict) -> None: + if not self._can_rebuild_columns or change.get("name") != "value": + return + try: + n = int(change["new"]) # type: ignore[index] + if n < 1: + return + except Exception: + return + + self._column_cache.clear() + self._columns = {name: factory for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} # type: ignore[union-attr] + pairs = list(self._columns.items()) + self._column_pairs = pairs + self._column_picker.widget.options = pairs + if pairs: + self._column_picker.set_value(pairs[0][1]) + + model_fn, column = self._get_selection() + if model_fn and column: + self._rebuild_model_panel(model_fn, column) + self.set_status(f"Rebuilt columns for {n} component(s).") + + def _open_column_modal(self, _btn): + # Close any live popover sessions + if hasattr(self, "_popover_close"): + try: + self._popover_close() + except Exception: + pass + try: + del self._popover_close + except Exception: + pass + if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): + try: + self._toolbar_popover_timer.cancel() + except Exception: + pass + + col_factory = self._column_picker.get_value() + if col_factory is None: + self.set_status("Pick a column first.") + return + + self._overlay_dimmer.layout.display = "flex" + self._suspend_main_rebuild = True + self._detach_main_observers() + + def build_form_for(factory): + column = self._column_cache.get(factory) or self._make_column(factory) + form = self._build_column_form(column) + + def _cache_after_apply(_b): + self._column_cache[factory] = column + model_fn, _ = self._get_selection() + if model_fn is not None: + self._rebuild_model_panel(model_fn, column) + self._column_modal.close() + form._btn_apply.on_click(_cache_after_apply) # noqa: SLF001 + return column, form + + column, form = build_form_for(col_factory) + self._column_modal.open(form.root, title=f"Configure: {getattr(column, 'name', column.__class__.__name__)}") + + def _on_dropdown_change(change: dict): + if change.get("name") != "value" or not self._column_modal.is_open: + return + try: + column2, form2 = build_form_for(change.get("new")) + self._column_modal.set_body(form2.root) + self._column_modal.set_title(f"Configure: {getattr(column2, 'name', column2.__class__.__name__)}") + except Exception as exc: + self._column_modal.set_body(W.HTML(f"Error: {exc}")) + + self._column_picker.widget.observe(_on_dropdown_change, names="value") + + def _on_modal_close(): + try: + self._column_picker.widget.unobserve(_on_dropdown_change, names="value") + except Exception: + pass + self._overlay_dimmer.layout.display = "none" + self._suspend_main_rebuild = False + self._attach_main_observers() + + self._column_modal.add_close_listener(_on_modal_close) + + # ----- Manual mode ----- + def _on_apply(self, _btn: W.Button) -> None: + self.set_status("Manual mode not implemented.") + + def _on_reset(self, _btn: W.Button) -> None: + self.set_status("Reset.") diff --git a/cadetgui/widgets/legacy/elements.py b/cadetgui/widgets/legacy/elements.py new file mode 100644 index 0000000..39c36d7 --- /dev/null +++ b/cadetgui/widgets/legacy/elements.py @@ -0,0 +1,452 @@ +# ========================================= +# File: cadetgui/widgets/elements.py +# ========================================= +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any, Callable, Optional, Sequence, Tuple, TypeVar + +import ipywidgets as W + +__all__ = [ + "Element", + "TextField", + "FloatField", + "BoolField", + "Display", + "ChoiceField", + "ObjectChoiceField", + "Modal", +] + +T = TypeVar("T") + + +class Element(ABC): + """Base class for small reusable form elements.""" + + widget: W.Widget + + @abstractmethod + def get_value(self) -> Any: + """Return the current value.""" + + @abstractmethod + def set_value(self, value: Any) -> None: + """Set the current value.""" + + +class TextField(Element): + """Single-line text input with label.""" + + def __init__(self, *, label: str = "", value: str = "") -> None: + self.widget = W.Text(description=label, value=value) + + def get_value(self) -> str: # type: ignore[override] + return str(self.widget.value) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = str(value) + + +class FloatField(Element): + """Float input with label.""" + + def __init__(self, *, label: str = "", value: float = 0.0) -> None: + self.widget = W.FloatText(description=label, value=float(value)) + + def get_value(self) -> float: # type: ignore[override] + return float(self.widget.value) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = float(value) + + +class BoolField(Element): + """Boolean checkbox with label.""" + + def __init__(self, *, label: str = "", value: bool = False) -> None: + self.widget = W.Checkbox(description=label, value=bool(value)) + + def get_value(self) -> bool: # type: ignore[override] + return bool(self.widget.value) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = bool(value) + + +class Display(Element): + """Read-only HTML display block.""" + + def __init__(self, *, html: str = "") -> None: + self.widget = W.HTML(value=html) + + def get_value(self) -> str: # type: ignore[override] + return str(getattr(self.widget, "value", "")) + + def set_value(self, value: Any) -> None: # type: ignore[override] + self.widget.value = str(value) + + +class FloatListInput(W.VBox): + """Editable list of positive floats with +/− controls (no textarea).""" + + def __init__(self, *, label: str = "", values: list[float] | None = None, + min_val: float = 1e-300, step: float = 1e-6) -> None: + self._min = min_val + self._step = step + self._rows = W.VBox([]) + self._add = W.Button(icon="plus", tooltip="Add value") + self._label = W.Label(label) if label else W.Label() + super().__init__([self._label, self._rows, self._add], + layout=W.Layout(width="100%", min_width="0")) + + for v in (values if values else [0.0]): + self._add_row(float(v) if v is not None else 0.0) + + self._add.on_click(lambda _: self._add_row()) + + def _add_row(self, value: float = 0.0) -> None: + num = W.BoundedFloatText( + value=max(value, self._min), + min=self._min, + step=self._step, + readout_format=".6g", + layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), + ) + rm = W.Button(icon="trash", tooltip="Remove") + row = W.HBox([num, rm], layout=W.Layout(align_items="center")) + rm.on_click(lambda _b: self._remove_row(row)) + self._rows.children = tuple(list(self._rows.children) + [row]) + + def _remove_row(self, row: W.HBox) -> None: + items = list(self._rows.children) + try: + items.remove(row) + self._rows.children = tuple(items if items else []) + except ValueError: + pass + + @property + def value(self) -> list[float]: + return [float(ch.children[0].value) for ch in self._rows.children] + + +import ipywidgets as W + + +class FloatListField(W.HBox): + """List of positive floats aligned with other fields' description column.""" + + def __init__(self, *, description: str, values: list[float] | None = None, + label_width: str = "140px", min_val: float = 0.0, step: float = 1e-6): + self._min = min_val + self._step = step + self._rows = W.VBox([]) + self._add = W.Button(icon="plus", tooltip="Add value") + label = W.Label(description, layout=W.Layout(width=label_width, flex="0 0 auto")) + + box = W.VBox([self._rows, self._add], layout=W.Layout(width="100%", min_width="0")) + super().__init__([label, box], + layout=W.Layout(align_items="flex-start", width="100%", min_width="0")) + + for v in (values if values else [min_val]): + self._add_row(float(v)) + + self._add.on_click(lambda _: self._add_row(0.0)) + + def _add_row(self, value: float) -> None: + num = W.BoundedFloatText( + value=max(value, self._min), + min=self._min, step=self._step, readout_format=".6g", + layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), + ) + rm = W.Button(icon="trash", tooltip="Remove") + row = W.HBox([num, rm], layout=W.Layout(align_items="center")) + rm.on_click(lambda _b: self._remove_row(row)) + self._rows.children = tuple(list(self._rows.children) + [row]) + + def _remove_row(self, row: W.HBox) -> None: + items = list(self._rows.children) + if row in items: + items.remove(row) + self._rows.children = tuple(items) + + @property + def value(self) -> list[float]: + return [float(ch.children[0].value) for ch in self._rows.children] + + +class Popup(Element): + """Light-weight pseudo-modal popup using an Accordion.""" + + def __init__(self, *, title: str = "Info", content: Optional[W.Widget] = None) -> None: + body = content or W.HTML("Empty") + acc = W.Accordion(children=[body]) + acc.set_title(0, title) + acc.selected_index = None + self.widget = acc + + def get_value(self) -> None: # type: ignore[override] + return None + + def set_value(self, value: Any) -> None: # type: ignore[override] + pass + + def open(self) -> None: + self.widget.selected_index = 0 # type: ignore[attr-defined] + + def close(self) -> None: + self.widget.selected_index = None # type: ignore[attr-defined] + + +class ChoiceField(Element): + """Dropdown for selecting one option from (label, value) pairs. + + Parameters + ---------- + label : str + Text shown left of the dropdown (ipywidgets 'description'). + options : Sequence[Tuple[str, Any]] + Iterable of (label, value) pairs. + value : Any | None + Initially selected value. If None, uses the first option (if any). + layout : W.Layout | None + Optional ipywidgets layout (width, margin, etc.). + style : dict | None + Optional widget.style overrides, e.g. {"description_width": "90px"}. + disabled : bool + Disable user interaction. + placeholder : str | None + If given and value is None, inserts a non-selectable placeholder label. + class_name : str | None + CSS class to add to the widget (ipywidgets v8: .add_class; v7: ._dom_classes). + """ + + def __init__( + self, + *, + label: str = "", + options: Sequence[Tuple[str, Any]] = (), + value: Any | None = None, + layout: Optional[W.Layout] = None, + style: Optional[dict] = None, + disabled: bool = False, + placeholder: str | None = None, + class_name: str | None = None, + ) -> None: + # Build options (optionally add a placeholder) + self._placeholder = None + if placeholder is not None and (value is None) and len(options) > 0: + # ipywidgets Dropdown doesn't support a true non-selectable option, + # so we insert a unique sentinel value and treat it specially. + self._placeholder = object() + options = [(placeholder, self._placeholder)] + list(options) + + self.widget = W.Dropdown(description=label, options=list(options), disabled=disabled) + + if layout is not None: + self.widget.layout = layout + if style and hasattr(self.widget, "style"): + for k, v in style.items(): + setattr(self.widget.style, k, v) + + if class_name: + # v8 + if hasattr(self.widget, "add_class"): + self.widget.add_class(class_name) + # v7 fallback + elif hasattr(self.widget, "_dom_classes"): + self.widget._dom_classes.add(class_name) + + # Set initial value + try: + if value is not None: + self.widget.value = value + else: + # If placeholder present, select it; else leave default (first option) + if self._placeholder is not None: + self.widget.value = self._placeholder + except Exception: + pass + + # ---- Element API ---- + def get_value(self) -> Any: # type: ignore[override] + v = getattr(self.widget, "value", None) + # If placeholder is selected, behave as though no value is chosen + if self._placeholder is not None and v is self._placeholder: + return None + return v + + def set_value(self, value: Any) -> None: # type: ignore[override] + # Allow setting to None -> move to placeholder (if configured) + if value is None and self._placeholder is not None: + self.widget.value = self._placeholder + else: + self.widget.value = value + + # ---- Convenience helpers ---- + def set_options(self, options: Sequence[Tuple[str, Any]], *, keep_value: bool = True) -> None: + """Replace the options. If keep_value=True, try to keep current value if still present.""" + current = self.widget.value + self.widget.options = list(options) + if keep_value and any(v == current for _, v in self.widget.options): + try: + self.widget.value = current + except Exception: + pass + elif self.widget.options: + # default to first option + try: + self.widget.value = self.widget.options[0][1] + except Exception: + pass + + def add_class(self, name: str) -> None: + if hasattr(self.widget, "add_class"): + self.widget.add_class(name) # v8 + elif hasattr(self.widget, "_dom_classes"): + self.widget._dom_classes.add(name) # v7 + + def disable(self) -> None: + self.widget.disabled = True + + def enable(self) -> None: + self.widget.disabled = False + + +class ObjectChoiceField(ChoiceField): + """Dropdown for arbitrary objects with a label function (or attribute). + + Parameters + ---------- + label : str + Text shown left of the dropdown. + items : list[object] | dict[str, object] + Either a list of objects or a mapping of display label -> object. + label_fn : Callable[[object], str] | None + Function to produce a label for each object (used when items is a list). + fallback_attr : str + Attribute name to read for labels if label_fn is not provided (default: 'name'). + value, layout, style, disabled, placeholder, class_name + Passed through to ChoiceField. + """ + + def __init__( + self, + *, + label: str = "Select:", + items: list[object] | dict[str, object], + label_fn: Optional[Callable[[object], str]] = None, + fallback_attr: str = "name", + value: Any | None = None, + layout: Optional[W.Layout] = None, + style: Optional[dict] = None, + disabled: bool = False, + placeholder: str | None = None, + class_name: str | None = None, + ) -> None: + if isinstance(items, dict): + pairs = [(str(k), v) for k, v in items.items()] + else: + pairs = [] + for obj in items: + if label_fn is not None: + lbl = label_fn(obj) + else: + lbl = getattr(obj, fallback_attr, obj.__class__.__name__) + pairs.append((str(lbl), obj)) + + super().__init__( + label=label, + options=pairs, + value=value, + layout=layout, + style=style, + disabled=disabled, + placeholder=placeholder, + class_name=class_name, + ) + + +class Modal: + def __init__(self, title: str = "Dialog") -> None: + self._title = title + self._on_close: list[Callable[[], None]] = [] + self.is_open = False + + self._overlay = W.Box( + [], + layout=W.Layout( + display="none", + position="absolute", # ⬅ anchor to root stack + top="0", left="0", right="0", bottom="0", + width="100%", height="100%", + justify_content="center", + align_items="flex-start", + background_color="rgba(0,0,0,0.35)", + z_index="10030", # ⬅ top of our stack + pointer_events="auto", + ), + ) + + # The card/panel (above the backdrop) + self._title_html = W.HTML() + self._close_btn = W.Button(description="Close", icon="x") + self._close_btn.on_click(lambda _: self.close()) + + header = W.HBox( + [self._title_html, self._close_btn], + layout=W.Layout(justify_content="space-between", align_items="center", width="100%"), + ) + + self.body = W.Box([], layout=W.Layout(flex="1 1 auto", overflow_y="auto", width="100%")) + + self._panel = W.VBox( + [header, self.body], + layout=W.Layout( + width="min(720px, 90vw)", + max_height="80vh", + overflow="hidden", + padding="16px", + border="1px solid #ccc", + border_radius="12px", + background_color="#fff", + box_shadow="0 8px 24px rgba(0,0,0,0.25)", + # Critical bits: + position="relative", # panel has its own stacking context + z_index="2147483647", # above the backdrop (and everything else) + margin="12px 0 0 0", # near the top (adjust to taste) + pointer_events="auto", # panel captures clicks + ), + ) + + self._overlay.children = [self._panel] + self.widget = self._overlay + self.set_title(title) + + def set_title(self, title: str) -> None: + self._title = title + self._title_html.value = f"

{title}

" + + def set_body(self, content: W.Widget) -> None: + self.body.children = [content] + + def open(self, content: W.Widget, *, title: Optional[str] = None) -> None: + if title: + self.set_title(title) + self.set_body(content) + self._overlay.layout.display = "flex" # ipywidgets Boxes render with 'flex' + self.is_open = True + + def close(self) -> None: + self._overlay.layout.display = "none" + self.body.children = [] + self.is_open = False + for fn in list(self._on_close): + try: fn() + except Exception: pass + self._on_close.clear() + + def add_close_listener(self, fn: Callable[[], None]) -> None: + self._on_close.append(fn) diff --git a/cadetgui/widgets/legacy/form.py b/cadetgui/widgets/legacy/form.py new file mode 100644 index 0000000..c55701e --- /dev/null +++ b/cadetgui/widgets/legacy/form.py @@ -0,0 +1,63 @@ +# ========================================= +# File: cadetgui/widgets/form.py +# ========================================= +from __future__ import annotations + +from typing import Any, Dict, Optional + +import ipywidgets as W + +from ...cadetprocessadapter import ModelSpec +from .base import BaseWidget + +__all__ = ["FormRenderer"] + + +class FormRenderer(BaseWidget): + """Render a ModelSpec into a form and build an object on Apply.""" + + def __init__(self, spec: ModelSpec, *, title: Optional[str] = None) -> None: + self._spec = spec + self._widgets: Dict[str, W.Widget] = {} + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + self.built: Any = None + super().__init__(title=title or spec.title) + + def _build_body(self) -> W.Widget: + rows: list[W.Widget] = [] + for f in self._spec.fields: + w = BaseWidget.widget_for_field(f) + self._widgets[f.name] = w + rows.append(w) + actions = W.HBox([self._btn_apply, self._btn_reset]) + return W.VBox(rows + [actions]) + + def _wire_events(self) -> None: + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + + def _collect_values(self) -> Dict[str, Any]: + vals: Dict[str, Any] = {} + for f in self._spec.fields: + raw = getattr(self._widgets[f.name], "value", None) + value = f.transform(raw) if f.transform else raw + if f.validate: + f.validate(value) + vals[f.name] = value + return vals + + def _on_apply(self, _btn: W.Button) -> None: + try: + vals = self._collect_values() + if self._spec.build is None: + raise RuntimeError("Spec has no 'build' function.") + self.built = self._spec.build(vals) + self.set_status("Built successfully.") + except Exception as exc: # noqa: BLE001 + self.built = None + self.set_error(exc) + + def _on_reset(self, _btn: W.Button) -> None: + BaseWidget.reset_fields(self._widgets, self._spec.fields) + self.set_status("Reset to defaults.") diff --git a/cadetgui/widgets/legacy/solution.py b/cadetgui/widgets/legacy/solution.py new file mode 100644 index 0000000..58a31c4 --- /dev/null +++ b/cadetgui/widgets/legacy/solution.py @@ -0,0 +1,971 @@ +# ========================================= +# File: cadetgui/widgets/solution.py +# ========================================= +from __future__ import annotations + +from contextlib import redirect_stderr, redirect_stdout +from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple + +import ipywidgets as W +import numpy as np + +from ...simulation import run_process as _default_runner +from .base import BaseWidget + +try: + from collections.abc import Mapping as _MappingABC +except Exception: # pragma: no cover + _MappingABC = dict # type: ignore + +__all__ = ["SolutionWidget", "solution_to_fields_lenmatch"] + +# ---- Optional import for nicer isinstance checks (kept soft) +try: # pragma: no cover - optional convenience + from CADETProcess.fields import Field as _FieldType # type: ignore +except Exception: # pragma: no cover - fallback to duck typing + _FieldType = Any # type: ignore + + +# ---------------------------- +# Generic helpers +# ---------------------------- +def _is_field(obj: Any) -> bool: + """Duck-type check for CADETProcess Field-like objects.""" + if _FieldType is not Any: + try: + return isinstance(obj, _FieldType) + except Exception: + pass + req = ["plot", "sel", "interp", "differentiate", "integrate", "coordinates"] + return all(hasattr(obj, name) for name in req) + + +def _try_plot_result_generic(result: Any, out: W.Output) -> None: + """Best-effort, generic plotting hook (safer checks).""" + try: + import matplotlib.pyplot as plt # type: ignore + from IPython.display import display + with out: + plot_attr = getattr(result, "plot", None) + if callable(plot_attr): + obj = plot_attr() + # Try to display the current figure if one was created + try: + display(plt.gcf()) + except Exception: + pass + return + if isinstance(result, dict) and "t" in result and "y" in result: + t, y = result["t"], result["y"] + plt.figure() + plt.plot(t, y) + plt.xlabel("t") + plt.ylabel("y") + display(plt.gcf()) + else: + print(repr(result)) + except Exception: + pass + + +def _get_attr_or_key(obj: Any, *names: str, default: Any = None) -> Any: + """Return first found attribute or mapping key from names, else default.""" + for n in names: + try: + if hasattr(obj, n): + return getattr(obj, n) + if isinstance(obj, _MappingABC) and n in obj: # type: ignore[arg-type] + return obj[n] + except Exception: + pass + return default + + +def _is_monotonic_increasing(arr: Any) -> bool: + try: + import numpy as _np + a = _np.asarray(arr) + if a.ndim != 1 or a.size < 2: + return False + return _np.all(_np.diff(a) >= 0) + except Exception: + return False + + +# ---------------------------- +# Field builders / coercion +# ---------------------------- +def _best_time_array(obj: Any) -> Any: + """Try to find a plausible time array on an object.""" + cand = _get_attr_or_key(obj, "time", "t") + if cand is not None: + return cand + try: + import numpy as _np + best = None + for name in dir(obj): + if name.startswith("_"): + continue + try: + v = getattr(obj, name) + except Exception: + continue + try: + a = _np.asarray(v) + except Exception: + continue + if a.ndim == 1 and a.size >= 2 and _is_monotonic_increasing(a): + lname = name.lower() + score = 1 + if "time" in lname or lname == "t": + score = 0 + if best is None or score < best[0]: + best = (score, v) + return best[1] if best else None + except Exception: + return None + + +def _pick_data_array(obj: Any, t_len: int) -> Any: + """Pick a plausible data array on an object given a time length.""" + data = _get_attr_or_key(obj, "c", "y", "data", "values", "signal") + if data is not None: + return data + try: + import numpy as _np + best = None + for name in dir(obj): + if name.startswith("_"): + continue + try: + v = getattr(obj, name) + except Exception: + continue + try: + a = _np.asarray(v) + except Exception: + continue + if a.ndim >= 1 and a.shape[0] == t_len: + score = -a.ndim + if best is None or score < best[0]: + best = (score, v) + return best[1] if best else None + except Exception: + return None + + +def _build_field_from_solution(solution: Any, *, name: Optional[str] = None) -> Any: + """Best-effort: turn a SolutionIO.solution-like object into a Field.""" + try: + from CADETProcess.fields import Field as FieldCls # type: ignore + except Exception: + FieldCls = None # type: ignore + + if FieldCls is None: + return solution # Can't build Field without Field class + + t = _get_attr_or_key(solution, "time", "t") + axial = _get_attr_or_key(solution, "axial", "z", "x") + radial = _get_attr_or_key(solution, "radial", "r") + + data = _get_attr_or_key(solution, "c", "y", "data", "values") + comps = _get_attr_or_key(solution, "components", "comp_names", "species") + unit = _get_attr_or_key(solution, "unit", "units") + + if data is None or t is None: + return solution + + coords: Dict[str, Any] = {"time": (t, "s")} + if axial is not None: + coords["axial"] = (axial, "m") + if radial is not None: + coords["radial"] = (radial, "m") + + try: + fld = FieldCls( + coordinates=coords, + data=data, + components=list(comps) if comps is not None else None, + name=name, + unit=unit, + ) + return fld + except Exception: + return solution + + +def _coerce_to_fieldish(result: Any) -> Any: + """Try to coerce common simulation result containers into Field or dict-of-Field.""" + if _is_field(result): + return result + + if isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): + return result + + # `.fields` mapping + try: + fields_map = getattr(result, "fields") + if isinstance(fields_map, Mapping) and fields_map and all(_is_field(v) for v in fields_map.values()): + return fields_map + except Exception: + pass + + # `to_fields` / `as_fields` / `to_field` + for meth in ("to_fields", "as_fields", "to_field"): + fn = getattr(result, meth, None) + if callable(fn): + try: + val = fn() + if _is_field(val): + return val + if isinstance(val, Mapping) and val and all(_is_field(v) for v in val.values()): + return val + except Exception: + pass + + # `.solution` mapping with nested SolutionIO → try to build Field + solmap = _get_attr_or_key(result, "solution") + if isinstance(solmap, Mapping) and solmap: + converted: Dict[str, Any] = {} + for unit_name, io_map in solmap.items(): + if isinstance(io_map, Mapping): + for port_name, io in io_map.items(): + sol = _get_attr_or_key(io, "solution") + key = f"{unit_name}:{port_name}" + fld = _build_field_from_solution(sol, name=key) + if _is_field(fld): + converted[key] = fld + elif sol is None: + fld2 = _build_field_from_solution(io, name=key) + if _is_field(fld2): + converted[key] = fld2 + if converted: + return converted + + # Generic mapping: keep Field entries found recursively + if isinstance(result, Mapping) and result: + sub: Dict[str, Any] = {} + for k, v in result.items(): + cv = _coerce_to_fieldish(v) + if _is_field(cv): + sub[k] = cv + if sub: + return sub + + return result + + +# ---------------------------- +# Coordinate normalizer +# ---------------------------- +def _coords_with_units(field: Any) -> Dict[str, Tuple["np.ndarray", Optional[str]]]: + """ + Normalize coordinates to: {dim: (grid_ndarray, unit_or_None)}. + + Prefers xarray attrs when available (field.data[dim].attrs["units"]). + Falls back to field.coordinates and accepts either bare arrays or (values, unit) tuples. + """ + import numpy as np + + # Preferred: via xarray DataArray + try: + da = getattr(field, "data", None) + if da is not None: + out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} + for dim in da.dims: + vals = np.asarray(da.coords[dim].values) + unit = da.coords[dim].attrs.get("units") + out[dim] = (vals, unit) + return out + except Exception: + pass + + # Fallback: whatever field.coordinates exposes + out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} + raw = getattr(field, "coordinates", {}) or {} + if isinstance(raw, dict): + for dim, val in raw.items(): + unit = None + arr = val + # Support legacy tuples: (values, unit) + if isinstance(val, tuple) and len(val) == 2: + arr, unit = val + try: + arr = np.asarray(arr) + except Exception: + pass + out[dim] = (arr, unit) + return out + + +# ---------------------------- +# Result transform that really uses solution arrays + real time +# ---------------------------- +def solution_to_fields_lenmatch(res): + """ + Flatten res.solution (unit -> {port -> SolutionIO}) into + { "unit:port": Field } by: + - getting data from io.solution (numpy array) + - inferring T from the data + - locating a unit/global 1D 'time' vector (handles {'values': ...} holders) + - falling back to arange(T) only if necessary + """ + import numpy as np + from CADETProcess.fields import Field # type: ignore + + solmap = getattr(res, "solution", None) + if not isinstance(solmap, Mapping): + return res + + def _safe_arr(x): + try: + return np.asarray(x) + except Exception: + try: + return np.asarray(list(x)) + except Exception: + return None + + def _as_vector(x): + """Extract a vector from common wrappers (dict with 'values', obj.values).""" + if x is None: + return None + # mapping with 'values' + if isinstance(x, Mapping) and "values" in x: + return _safe_arr(x["values"]) + # objects with non-callable .values + vals = getattr(x, "values", None) + if vals is not None and not callable(vals): + return _safe_arr(vals) + # plain array-like + return _safe_arr(x) + + def _scan_time(scope: Mapping, T: int): + """Find a 1D vector of length T in mapping scope, prefer monotonic & 'time' names.""" + best = None + # 1) direct names that may be wrappers + for key in ("time", "t"): + cand = None + if isinstance(scope, Mapping): + if key in scope: + cand = _as_vector(scope[key]) + if cand is not None and cand.ndim == 1 and cand.size == T: + return cand + # 2) nested holders like scope['time'] == {'values': ...} + for k, v in scope.items(): + if isinstance(v, Mapping) and "values" in v: + cand = _safe_arr(v["values"]) + if cand is not None and cand.ndim == 1 and cand.size == T: + return cand + # 3) generic scan of 1D arrays + for k, v in scope.items(): + cand = _as_vector(v) + if cand is None or cand.ndim != 1 or cand.size != T: + continue + return cand + return None + + out: Dict[str, Any] = {} + + for unit, ports in solmap.items(): + if not isinstance(ports, Mapping): + continue + + # Deduce T from any port's data + T = None + for _p, io in ports.items(): + data0 = _as_vector(getattr(io, "solution", None)) + if data0 is None: + continue + if data0.ndim >= 1: + T = int(data0.shape[0]) + break + if T is None: + continue + + # Find a unit-level time first; else global; else synthetic + t = _scan_time(ports, T) + if t is None and isinstance(solmap, Mapping): + gt = _scan_time(solmap, T) + if gt is not None: + t = gt + if t is None: + t = np.arange(T) + + for port, io in ports.items(): + data = _as_vector(getattr(io, "solution", None)) + if data is None or data.ndim < 1: + continue + + # Align time dimension + if data.shape[0] != T and data.shape[-1] == T: + data = np.swapaxes(data, 0, -1) + if data.shape[0] != T: + continue + + coords = {"time": (t, "s")} + comp_names = None + if data.ndim >= 2 and 1 < data.shape[-1] <= 64: + comp_names = [f"C{i}" for i in range(data.shape[-1])] + + try: + out[f"{unit}:{port}"] = Field( + coordinates=coords, + data=data, + components=comp_names, + name=f"{unit}:{port}", + ) + except Exception: + pass + + return out if out else solmap + + +# ---------------------------- +# Widget +# ---------------------------- +class SolutionWidget(BaseWidget): + """Runner/visualizer for CADET-Process processes with Field-aware tooling.""" + + def __init__( + self, + *, + title: Optional[str] = None, + process: Any = None, + config: Optional["ConfigurationWidget"] = None, + runner: Optional[Callable[[Any], Any]] = None, + runner_kwargs: Optional[Dict[str, Any]] = None, + result_transform: Optional[Callable[[Any], Any]] = None, + ) -> None: + self._process: Any | None = None + self._btn_run = W.Button(description="Run simulation", icon="play") + self._btn_clear = W.Button(description="Clear", icon="trash") + self._proc_label = W.HTML("No process set.") + + # Separate outputs: one for the plot, one for logs/stdout/stderr + self._plot_out = W.Output() + self._log_out = W.Output() + + self._show_tb = W.Checkbox(description="Show traceback", value=True) + + self._runner = runner or _default_runner + self._runner_kwargs = runner_kwargs or {} + self._result_transform = result_transform + + # Field-aware UI (created lazily when needed) + self._field_container = W.VBox(layout=W.Layout(display="none")) + self._field_controls: Dict[str, W.Widget] = {} + self._current_result: Any = None # last result object (possibly transformed/coerced) + + # Result inspector UI (always visible after a run) + self._result_info = W.HTML(value="") + self._result_key_dd = W.Dropdown(description="Result key", options=(), layout=W.Layout(width="auto")) + self._result_bar = W.HBox([self._result_info, self._result_key_dd], layout=W.Layout(display="none", gap="12px")) + self._result_key_dd.observe(lambda _ch: self._on_result_key_changed(), names="value") + + # Track a single live figure/axes for reuse when possible + self._fig = None + self._ax = None + + super().__init__(title=title or "Solution") + + if process is not None: + self.set_process(process) + if config is not None: + self.bind_to_config(config) + + # ----- backend helper ----- + def _enable_widget_backend(self) -> None: + """Try to enable ipympl widget backend for interactive plots.""" + try: + import ipympl # noqa: F401 # registers the widget backend if installed + import matplotlib.pyplot as plt + try: + plt.switch_backend("module://ipympl.backend_nbagg") + except Exception: + # May already be using a compatible interactive backend (or switch unsupported here). + pass + except Exception: + # ipympl not installed; fall back to whatever backend is configured. + pass + + # ----- public API ----- + def set_process(self, process: Any) -> None: + self._process = process + self._proc_label.value = ( + f"Process: {getattr(process, 'name', process.__class__.__name__)}" + ) + self.set_status("Ready to run.") + + def bind_to_config(self, config_widget: "ConfigurationWidget") -> None: + # Late import to avoid circular typing issues + from .config import ConfigurationWidget # noqa: WPS433 + + if not isinstance(config_widget, ConfigurationWidget): + raise TypeError("config_widget must be a ConfigurationWidget") + + config_widget.add_listener(self.set_process) + if config_widget.process is not None: + self.set_process(config_widget.process) + + # ----- UI ----- + def _build_body(self) -> W.Widget: + controls = W.HBox([self._btn_run, self._btn_clear, self._show_tb]) + return W.VBox( + [ + W.HBox([self._proc_label, controls]), + self._result_bar, + self._field_container, + self._plot_out, # plot area (single live figure) + self._log_out, # logs/stdout/stderr + ] + ) + + def _wire_events(self) -> None: + self._btn_run.on_click(self._on_run) + self._btn_clear.on_click(self._on_clear) + + # ----- events ----- + def _on_run(self, _btn: W.Button) -> None: + # Fresh run: clear previous outputs + self._plot_out.clear_output() + self._log_out.clear_output() + self._hide_field_ui() + self._hide_result_bar() + self._fig = None + self._ax = None + + if self._process is None: + self.set_error("No process to run. Build one first.") + return + + import io + import traceback as _tb + + capture = bool(self._show_tb.value) + buf_out, buf_err = (io.StringIO(), io.StringIO()) if capture else (None, None) + + try: + if capture: + with redirect_stdout(buf_out), redirect_stderr(buf_err): + raw = self._runner(self._process, **self._runner_kwargs) + else: + raw = self._runner(self._process, **self._runner_kwargs) + + # Optional transform, then coercion to Field-ish structures + result = self._result_transform(raw) if callable(self._result_transform) else raw + result = _coerce_to_fieldish(result) + self._current_result = result + + # Show result meta / selector if needed + self._show_result_bar(result) + + with self._log_out: + if capture: + if buf_out and buf_out.getvalue().strip(): + print("=== stdout ===") + print(buf_out.getvalue(), end="") + if buf_err and buf_err.getvalue().strip(): + print("=== stderr ===") + print(buf_err.getvalue(), end="") + print("Simulation finished.") + + # If it's Field-like, expose Field controls; if mapping try to plot one entry; else fallback + if self._render_field_ui_if_applicable(result): + self.set_status("Field detected — use controls to slice/plot.") + self._plot_field_from_controls() + elif isinstance(result, Mapping): + self._attempt_plot_from_mapping(result) + else: + with self._log_out: + print(repr(result)) + _try_plot_result_generic(result, self._log_out) + self.set_status("Simulation complete.") + + except Exception as exc: # noqa: BLE001 + with self._log_out: + if capture: + tb = _tb.TracebackException.from_exception(exc, capture_locals=True) + if buf_out and buf_out.getvalue().strip(): + print("=== stdout (captured) ===") + print(buf_out.getvalue(), end="") + if buf_err and buf_err.getvalue().strip(): + print("=== stderr (captured) ===") + print(buf_err.getvalue(), end="") + print("=== full traceback (with chained causes) ===") + print("".join(tb.format(chain=True)), end="") + else: + print(f"{exc.__class__.__name__}: {exc}") + self.set_error(f"Simulation error: {exc}") + + def _on_clear(self, _btn: W.Button) -> None: + self._plot_out.clear_output() + self._log_out.clear_output() + self._hide_field_ui() + self._hide_result_bar() + self._fig = None + self._ax = None + self.set_status("Cleared.") + + # ----- Result bar ----- + def _hide_result_bar(self) -> None: + self._result_bar.layout.display = "none" + self._result_info.value = "" + self._result_key_dd.options = () + + def _show_result_bar(self, result: Any) -> None: + typ = type(result).__name__ + if isinstance(result, Mapping): + keys = list(result.keys()) + self._result_info.value = f"Result: Mapping[{len(keys)}], type={typ}" + self._result_key_dd.options = [(str(k), k) for k in keys] + self._result_key_dd.value = keys[0] if keys else None + self._result_bar.layout.display = "flex" + else: + self._result_info.value = f"Result: {typ}" + self._result_key_dd.options = () + self._result_bar.layout.display = "flex" + + def _on_result_key_changed(self) -> None: + if not isinstance(self._current_result, Mapping) or not self._current_result: + return + key = self._result_key_dd.value + val = self._current_result.get(key) + self._log_out.clear_output() + self._hide_field_ui() + if self._render_field_ui_if_applicable(val): + self._plot_field_from_controls() + self.set_status(f"Viewing: {key}") + else: + with self._log_out: + print(repr(val)) + _try_plot_result_generic(val, self._log_out) + self.set_status(f"Viewing: {key}") + + def _attempt_plot_from_mapping(self, mapping: Mapping[str, Any]) -> None: + # Prefer the first Field in the mapping, if any + for k, v in mapping.items(): + if _is_field(v): + self._result_key_dd.value = k + self._on_result_key_changed() # route through the normal path + return + + # Fallback: generic repr/plot of the first entry + first_key = next(iter(mapping.keys())) if mapping else None + val = mapping.get(first_key) if first_key is not None else None + with self._log_out: + print(repr(mapping)) + if first_key is not None: + print("--- First entry ---") + print(repr(val)) + _try_plot_result_generic(val, self._log_out) + self.set_status("No Field found in mapping.") + + # ----- Field-aware UI ----- + def _hide_field_ui(self) -> None: + self._field_container.layout.display = "none" + self._field_container.children = () + self._field_controls.clear() + + def _render_field_ui_if_applicable(self, result: Any) -> bool: + + # Determine the single Field to render controls for + if _is_field(result): + field = result + elif isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): + # Use currently selected key from the result bar + key = self._result_key_dd.value + if key is None or key not in result: + key = next(iter(result.keys())) + field = result[key] + else: + return False + + # reset control registry for fresh UI + self._field_controls = {} + + rows: list[W.Widget] = [] + + # Components UI (if any) + components: Sequence[str] | None = getattr(field, "components", None) + showed_component_selector = False + if components is not None and len(components) > 0: + comp_sel = W.SelectMultiple( + description="Components", + options=list(components), + value=tuple(components), + layout=W.Layout(width="420px", height="120px"), + ) + self._field_controls["components"] = comp_sel + comp_sel.observe(lambda _ch: self._plot_field_from_controls(), names="value") + rows.append(comp_sel) + showed_component_selector = True + + # Slicing controls + coords = _coords_with_units(field) + slicer_boxes: list[W.Widget] = [] + numeric_axis_names: list[str] = [] + + for name, (grid, unit) in coords.items(): + # If we've already provided a dedicated components selector, skip duplicating + if name == "component" and showed_component_selector: + continue + + # ensure numpy array for dtype inspection + arr = np.asarray(grid) + is_numeric = np.issubdtype(arr.dtype, np.number) + + ulabel = f"[{unit}]" if unit else "" + if is_numeric: + # numeric axis → checkbox + FloatText + method dropdown + try: + v0 = float(arr[0]) if arr.size else 0.0 + except (TypeError, ValueError): + v0 = 0.0 + + cb_fix = W.Checkbox(description=f"Fix {name} {ulabel}".strip(), value=False) + val = W.FloatText( + description=f"{name}=", + value=v0, + layout=W.Layout(width="220px"), + ) + method = W.Dropdown( + description="method", + options=["exact", "nearest"], + value="exact", + layout=W.Layout(width="150px"), + ) + hb = W.HBox([cb_fix, val, method]) + + self._field_controls[f"fix_{name}"] = cb_fix + self._field_controls[f"val_{name}"] = val + self._field_controls[f"method_{name}"] = method + for w in (cb_fix, val, method): + w.observe(lambda _ch: self._plot_field_from_controls(), names="value") + + slicer_boxes.append(hb) + numeric_axis_names.append(name) + + else: + # categorical axis → multi-select + options = [str(x) for x in arr.tolist()] + sel = W.SelectMultiple( + description=name.capitalize(), + options=options, + value=tuple(options), + layout=W.Layout(width="420px", height="120px"), + ) + self._field_controls[f"sel_{name}"] = sel + sel.observe(lambda _ch: self._plot_field_from_controls(), names="value") + slicer_boxes.append(sel) + + if slicer_boxes: + rows.append(W.VBox([W.HTML("Slicing"), *slicer_boxes])) + + # Interpolation controls (numeric axes only) + if numeric_axis_names: + interp_enable = W.Checkbox(description="Interpolate", value=False) + interp_axis = W.Dropdown( + description="along", + options=numeric_axis_names, + value=numeric_axis_names[0], + ) + interp_points = W.IntText(description="points", value=100) + hb_interp = W.HBox([interp_enable, interp_axis, interp_points]) + self._field_controls["interp_enable"] = interp_enable + self._field_controls["interp_axis"] = interp_axis + self._field_controls["interp_points"] = interp_points + for w in (interp_enable, interp_axis, interp_points): + w.observe(lambda _ch: self._plot_field_from_controls(), names="value") + rows.append(W.VBox([W.HTML("Interpolation"), hb_interp])) + else: + # No numeric axes → disable interpolation UI entirely + interp_note = W.HTML("No numeric axes available for interpolation.") + rows.append(W.VBox([W.HTML("Interpolation"), interp_note])) + + # Calculus controls (numeric axes only) + if numeric_axis_names: + calc_mode = W.Dropdown( + description="Operation", + options=["None", "Differentiate", "Integrate"], + value="None", + ) + calc_axis = W.Dropdown( + description="w.r.t.", + options=numeric_axis_names, + value=numeric_axis_names[0], + ) + hb_calc = W.HBox([calc_mode, calc_axis]) + self._field_controls["calc_mode"] = calc_mode + self._field_controls["calc_axis"] = calc_axis + for w in (calc_mode, calc_axis): + w.observe(lambda _ch: self._plot_field_from_controls(), names="value") + rows.append(W.VBox([W.HTML("Analysis"), hb_calc])) + else: + calc_note = W.HTML("No numeric axes available for analysis.") + rows.append(W.VBox([W.HTML("Analysis"), calc_note])) + + # Plot button (manual trigger in addition to reactive updates) + btn_plot = W.Button(description="Plot", icon="line-chart") + btn_plot.on_click(lambda _b: self._plot_field_from_controls()) + rows.append(btn_plot) + + self._field_container.children = tuple(rows) + self._field_container.layout.display = "block" + return True + + def _gather_slice_kwargs(self) -> Dict[str, Tuple[float, str]]: + kwargs: Dict[str, Tuple[float, str]] = {} + for key, widget in self._field_controls.items(): + if key.startswith("fix_") and isinstance(widget, W.Checkbox) and widget.value: + coord = key[len("fix_") :] + valw = self._field_controls.get(f"val_{coord}") + methw = self._field_controls.get(f"method_{coord}") + if isinstance(valw, W.FloatText) and isinstance(methw, W.Dropdown): + kwargs[coord] = (float(valw.value), str(methw.value)) + return kwargs + + def _get_active_field(self) -> Any: + # If we have a mapping, prefer the currently selected Result key + if isinstance(self._current_result, Mapping): + key = self._result_key_dd.value + if key is not None and key in self._current_result: + return self._current_result[key] + # Otherwise, the result itself is a Field (or something else) + return self._current_result + + def _apply_interpolation(self, fld: Any) -> Any: + enable = self._field_controls.get("interp_enable") + axis = self._field_controls.get("interp_axis") + points = self._field_controls.get("interp_points") + if isinstance(enable, W.Checkbox) and enable.value and isinstance(axis, W.Dropdown) and isinstance(points, W.IntText): + coords = _coords_with_units(fld) + if axis.value in coords: + grid, _unit = coords[axis.value] + if len(grid) >= 2 and points.value > 1: + import numpy as np # local import + new_grid = np.linspace(float(grid[0]), float(grid[-1]), int(points.value)) + try: + return fld.interp(**{axis.value: new_grid}) + except Exception: + return fld + return fld + + def _apply_calculus(self, fld: Any) -> Any: + mode = self._field_controls.get("calc_mode") + axis = self._field_controls.get("calc_axis") + if isinstance(mode, W.Dropdown) and isinstance(axis, W.Dropdown): + try: + if mode.value == "Differentiate" and axis.value: + return fld.differentiate(axis.value) + if mode.value == "Integrate" and axis.value: + return fld.integrate(axis.value) + except Exception: + return fld + return fld + + def _plot_field_from_controls(self) -> None: + # Make the figure area behave like a single live canvas + self._plot_out.clear_output(wait=True) + + # Enable interactive backend if possible (ipympl) + self._enable_widget_backend() + + import matplotlib.pyplot as plt # local import + from IPython.display import display + + fld = self._get_active_field() + if not _is_field(fld): + with self._log_out: + print("No Field to plot.") + return + + fld2 = self._apply_interpolation(fld) + fld3 = self._apply_calculus(fld2) + + # Slicing + slice_kwargs = self._gather_slice_kwargs() + if slice_kwargs: + try: + for coord, (value, method) in slice_kwargs.items(): + if method == "nearest": + fld3 = fld3.sel(**{coord: value}, method="nearest") + else: + fld3 = fld3.sel(**{coord: value}) + except Exception: + pass + + # Component selection (optional) + comp_sel = self._field_controls.get("components") + if isinstance(comp_sel, W.SelectMultiple) and comp_sel.value: + try: + if len(comp_sel.value) == 1: + fld3 = fld3[comp_sel.value[0]] + except Exception: + pass + + # Draw a single figure and show it once in the plot output + try: + with self._plot_out: + ax = None + # Try to reuse an existing axes if Field.plot supports it + if self._ax is not None: + try: + self._ax.clear() + ax = self._ax + except Exception: + ax = None + + if ax is not None: + # Many APIs accept 'ax=...'; try first + try: + ret = fld3.plot({}, ax=ax) + except TypeError: + # fallback: set current axes and let plot create artists + plt.sca(ax) + ret = fld3.plot({}) + else: + # first time (or reuse failed): make a fresh figure + fig, ax = plt.subplots() + ret = fld3.plot({}) + self._fig, self._ax = fig, ax + + # Capture figure reference if plot returned axes + try: + if hasattr(ret, "get_figure"): + self._fig = ret.get_figure() + try: + # if we didn’t create ax above, pull one from ret + self._ax = ret if hasattr(ret, "plot") else getattr(ret, "axes", [None])[0] + except Exception: + pass + else: + # last-resort: current fig/ax + self._fig = plt.gcf() + self._ax = plt.gca() + except Exception: + pass + + # Display exactly once (plot_out was cleared above) + display(self._fig) + + except Exception: + # very defensive fallback (generic plot/print) + with self._plot_out: + try: + coords = _coords_with_units(fld3) + fixed = { + dim: grid[0] + for dim, (grid, _unit) in coords.items() + if hasattr(grid, "__len__") and len(grid) > 0 + } + ret = fld3.plot(fixed) + try: + self._fig = ret.get_figure() if hasattr(ret, "get_figure") else plt.gcf() + display(self._fig) + except Exception: + pass + except Exception: + _try_plot_result_generic(fld3, self._log_out) + + self.set_status("Plotted.") diff --git a/pyproject.toml b/pyproject.toml index 7781c33..94b9bf0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,10 @@ classifiers = [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Intended Audience :: Science/Research" ] -dependencies = [] +dependencies = [ + "anywidget", + "traitlets" +] [dependency-groups] testing = [ From cdbdb856ad006022af0b50743e06f092d1477b56 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:28:42 +0200 Subject: [PATCH 009/158] Move old widgets to legacy folder --- cadetgui/cadetprocessadapter.py | 2 +- cadetgui/widgets/__init__.py | 38 +- cadetgui/widgets/base.py | 149 ----- cadetgui/widgets/config.py | 562 ------------------ cadetgui/widgets/elements.py | 446 -------------- cadetgui/widgets/form.py | 65 --- cadetgui/widgets/legacy/__init__.py | 38 ++ cadetgui/widgets/solution.py | 876 ---------------------------- 8 files changed, 56 insertions(+), 2120 deletions(-) delete mode 100644 cadetgui/widgets/base.py delete mode 100644 cadetgui/widgets/config.py delete mode 100644 cadetgui/widgets/elements.py delete mode 100644 cadetgui/widgets/form.py create mode 100644 cadetgui/widgets/legacy/__init__.py delete mode 100644 cadetgui/widgets/solution.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 5f2b237..cd60bf1 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -54,7 +54,7 @@ def parse_float_list(v: Any) -> list[float]: "c_salt_high": FieldSpec("c_salt_high", "float_list", "High-salt buffer", [500.0], transform=parse_float_list), "flow_rate": FieldSpec("flow_rate", "float", "Flow rate", 1.0e-6, validate=require_positive), "feed_duration": FieldSpec("feed_duration", "float", "Feed duration", 60.0, validate=require_positive), - "load_duration": FieldSpec("load_duration", "float", "Load duration", 10.0, validate=require_positive), + "load_duration": FieldSpec("load_duration", "float", "Load duration", 60.0, validate=require_positive), "cycle_time": FieldSpec("cycle_time", "float", "Cycle time", 6000.0, validate=require_positive), "wash_duration": FieldSpec("wash_duration", "float", "Wash duration", 10.0, validate=require_positive), "gradient_duration": FieldSpec("gradient_duration", "float", "Gradient duration", 10.0, validate=require_positive), diff --git a/cadetgui/widgets/__init__.py b/cadetgui/widgets/__init__.py index cee1d28..59d1543 100644 --- a/cadetgui/widgets/__init__.py +++ b/cadetgui/widgets/__init__.py @@ -1,31 +1,31 @@ # ========================================= # File: cadetgui/widgets/__init__.py # ========================================= -"""Composable ipywidgets for CADET-GUI. +"""Composable widgets for CADET-GUI. This subpackage provides: -- elements: small form controls and simple display helpers -- base: BaseWidget and ListenerMixin -- form: FormRenderer to render a ModelSpec to a form -- config: ConfigurationWidget for model+column selection & config -- solution: SolutionWidget to run and visualize simulations +- elements: atomic anywidget input controls (the target implementation) +- legacy: the earlier ipywidgets-based prototype, kept working as reference + material during the anywidget port (see ai-docs/ARCHITECTURE.md) -Public API is re-exported for convenience. +Public API re-exports the legacy prototype for now, since it's what's usable +end-to-end. Update this as anywidget equivalents land. """ -from .elements import ( - Element, - TextField, - FloatField, +from .legacy import ( + BaseWidget, BoolField, + ChoiceField, + ConfigurationWidget, Display, + Element, + FloatField, + FormRenderer, + ListenerMixin, + ObjectChoiceField, Popup, - ChoiceField, - ObjectChoiceField + SolutionWidget, + TextField, ) -from .base import BaseWidget, ListenerMixin -from .form import FormRenderer -from .config import ConfigurationWidget -from .solution import SolutionWidget __all__ = [ "BaseWidget", @@ -38,11 +38,7 @@ "Popup", "ChoiceField", "ObjectChoiceField", - "OverlayModal", "FormRenderer", "ConfigurationWidget", "SolutionWidget", ] - - - diff --git a/cadetgui/widgets/base.py b/cadetgui/widgets/base.py deleted file mode 100644 index 1bda74a..0000000 --- a/cadetgui/widgets/base.py +++ /dev/null @@ -1,149 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/base.py -# ========================================= -from __future__ import annotations - -from abc import ABC, abstractmethod -from typing import Any, Callable, Dict, Optional -from .elements import FloatListInput, FloatListField - -import ipywidgets as W - -__all__ = ["ListenerMixin", "BaseWidget"] - -LABEL_W = "140px" - -def _style_field(w: W.Widget, *, width: str = "300px", label_width: str = LABEL_W, grow: bool = False) -> W.Widget: - if hasattr(w, "layout"): - w.layout.width = "100%" if grow else width - w.layout.min_width = "0" - if not grow: - w.layout.flex = "0 0 auto" - if hasattr(w, "style"): - try: - w.style.description_width = label_width # <<< fixed label column - except Exception: - pass - return w - -class ListenerMixin: - """Reusable mixin that provides listener registration and notification.""" - - def __init__(self) -> None: - self._listeners: list[Callable[[Any], None]] = [] - - def add_listener(self, fn: Callable[[Any], None]) -> None: - """Register a listener callback.""" - self._listeners.append(fn) - - def notify(self, value: Any) -> None: - """Notify all registered listeners with a new value.""" - for fn in list(self._listeners): - try: - fn(value) - except Exception: - pass - - -class BaseWidget(ABC): - """Base widget container with a header, body, and status bar.""" - - def __init__(self, *, title: Optional[str] = None) -> None: - self.title = title or self.__class__.__name__ - self._status = W.HTML("Ready.") - self._header = W.HTML(f"

{self.title}

") - self._body = self._build_body() - self.root = W.VBox([self._header, self._body, self._status]) - self._wire_events() - - @abstractmethod - def _build_body(self) -> W.Widget: - ... - - def _wire_events(self) -> None: - """Connect event handlers (optional override).""" - - def set_status(self, text: str) -> None: - self._status.value = text - - def set_error(self, exc: Exception | str) -> None: - msg = str(exc) if isinstance(exc, Exception) else exc - self._status.value = f"{msg}" - - def run_safe(self, func: Callable[..., Any], *args: Any, **kwargs: Any) -> Any | None: - try: - return func(*args, **kwargs) - except Exception as exc: # noqa: BLE001 - self.set_error(exc) - return None - - @staticmethod - def make_apply_reset(on_apply: Callable[..., Any], on_reset: Callable[..., Any]) -> W.HBox: - btn_apply = W.Button(description="Apply", button_style="success") - btn_reset = W.Button(description="Reset") - btn_apply.on_click(on_apply) - btn_reset.on_click(on_reset) - return W.HBox([btn_apply, btn_reset]) - - @staticmethod - def reset_fields(widgets: Dict[str, W.Widget], specs: list[Any]) -> None: - for f in specs: - w = widgets[f.name] - default = f.default - try: - if f.kind == "float": - w.value = float(default) if default is not None else 0.0 - elif f.kind == "bool": - w.value = bool(default) - elif f.kind == "float_list": - init = ", ".join(map(str, default)) if isinstance(default, (list, tuple)) else str(default or "") - w.value = init - else: - w.value = str(default or "") - except Exception: - pass - - @staticmethod - def widget_for_field(f: Any) -> W.Widget: - label = getattr(f, "label", None) or getattr(f, "name", "") - kind = getattr(f, "kind", "text") - default = getattr(f, "default", None) - - if kind == "float": - w = W.BoundedFloatText( - description=label, - value=float(default) if default is not None else 0, - min=0.0, step=1e-6, readout_format=".6g", - ) - return _style_field(w) - - if kind == "bool": - w = W.Checkbox(description=label, value=bool(default)) - return _style_field(w, width="auto") - - if kind == "float_list": - # see aligned list component below - vals = list(default) if isinstance(default, (list, tuple)) else ( - [float(default)] if default is not None else [] - ) - return FloatListField(description=label, values=vals, label_width=LABEL_W) - - w = W.Text(description=label, value=str(default) if default is not None else "") - return _style_field(w) - - - @staticmethod - def observe_and_rebuild(widget: W.Widget, names: str, rebuild_fn: Callable[[Any], None]) -> None: - def _on_change(change: dict) -> None: - if change.get("name") != names: - return - rebuild_fn(change.get("new")) - - widget.observe(_on_change, names=names) - - def display(self) -> None: - from IPython.display import display as _display - - _display(self.root) - - diff --git a/cadetgui/widgets/config.py b/cadetgui/widgets/config.py deleted file mode 100644 index b7fbc77..0000000 --- a/cadetgui/widgets/config.py +++ /dev/null @@ -1,562 +0,0 @@ -from __future__ import annotations - -from typing import Any, Callable, Optional, Union, Dict -from threading import Timer -import warnings -import ipywidgets as W -from CADETProcess.processModel import ComponentSystem - -from .base import BaseWidget, ListenerMixin -from .elements import ChoiceField, ObjectChoiceField, Modal -from .form import FormRenderer -from ..cadetprocessadapter import ( - DEFAULT_COLUMN_FACTORIES, - MODEL_REGISTRY, - build_column_config_spec, -) - -__all__ = ["ConfigurationWidget"] - -# ---------------------- -# CSS-like layout tokens -# ---------------------- - -CSS_ROOT = W.Layout( - position="relative", - width="100%", - overflow="visible", - display="block", - z_index="0", -) - -CSS_TOOLBAR_WRAP = W.Layout( - position="relative", - width="100%", - overflow="visible", - z_index="0", -) - -# Model & Column pickers row -CSS_TOOLBAR_ROW = W.Layout( - align_items="center", - position="relative", - flex_wrap="wrap", - min_width="0", -) - -# Toolbar popover panel -CSS_TOOLBAR_POPOVER = W.Layout( - display="none", - position="absolute", - top="calc(100% + 8px)", - right="0", - width="420px", - max_height="60vh", - overflow_y="auto", - padding="16px", - border="1px solid #ccc", - border_radius="12px", - background_color="#fff", - box_shadow="0 8px 24px rgba(0,0,0,0.25)", - z_index="10020", -) - -# Main model configuration panel (no horizontal scroll) -CSS_MODEL_PANEL = W.Layout( - min_height="500px", - max_width="400px", - display="block", - overflow_x="hidden", -) - -# Grey overlay dimmer for popovers & modal -CSS_OVERLAY_DIMMER = W.Layout( - display="none", - position="absolute", - top="0", left="0", right="0", bottom="0", - background_color="rgba(0,0,0,0.25)", - z_index="10010", - pointer_events="auto", -) - -# Raise a control above overlays if needed -CSS_RAISE_ABOVE_OVERLAY = dict(position="relative", z_index="10040", pointer_events="auto") - - -# ---------------------- -# Utilities -# ---------------------- - -def _set_attr_path(obj: Any, path: str, value: Any) -> None: - """Set attribute or mapping by dotted path. Supports 'param:Family.key'.""" - if path.startswith("param:"): - _, rest = path.split("param:", 1) - family, key = rest.split(".", 1) - try: - obj.parameter[family][key] = value - return - except Exception: - pass - target = obj - parts = path.split(".") - for part in parts[:-1]: - target = getattr(target, part) - setattr(target, parts[-1], value) - - -# ---------------------- -# Widget -# ---------------------- - -class ConfigurationWidget(BaseWidget, ListenerMixin): - """Unified configuration widget for model/column-based process building. - - - Model Configuration: main panel under the toolbar (builds the process) - - Column Configuration: modal dialog for editing column parameters - """ - - # ----- init & state ----- - def __init__( - self, - *, - title: Optional[str] = None, - registry: Optional[dict[str, Callable[[Any], Any]]] = None, - columns: Optional[Union[list[Any], dict[str, Any]]] = None, - on_built: Optional[Callable[[Any], None]] = None, - spec_builder: Optional[type[FormRenderer]] = None, - ) -> None: - ListenerMixin.__init__(self) - - use_defaults = registry is None or columns is None or spec_builder is None - if use_defaults: - self._DEFAULT_COLUMN_FACTORIES = DEFAULT_COLUMN_FACTORIES - self._can_rebuild_columns = True - self._components_value = 1 - columns = DEFAULT_COLUMN_FACTORIES - registry = MODEL_REGISTRY - spec_builder = FormRenderer - else: - self._DEFAULT_COLUMN_FACTORIES = None - self._can_rebuild_columns = False - self._components_value = None - - # External deps / factories - self._registry = registry - self._columns = columns - self._SpecDriven = spec_builder - self._on_built = on_built - - # Column Config modal - self._column_modal = Modal("Column configuration") - - # State - self._built: Any | None = None - self._column_cache: dict[object, Any] = {} - - # Anti-flicker / concurrency guards - self._suspend_main_rebuild: bool = False - self._toolbar_popover_timer: Optional[Timer] = None - self._toolbar_popover_last_factory: Any = None - - # Detachable observers - self._obs_model_spec = None - self._obs_column_spec = None - - # Controls - self._btn_apply = W.Button(description="Apply", button_style="success") - self._btn_reset = W.Button(description="Reset") - self._btn_open_column_modal = W.Button(description="Configure column…", icon="wrench") - - self._components_field: Optional[W.IntText] = ( - W.IntText(description="Components:", value=self._components_value, min=1) - if self._can_rebuild_columns - else None - ) - - super().__init__(title=title or "Configuration") - - # Public API - @property - def process(self) -> Any | None: - return self._built - - # ----- UI builders ----- - def _build_toolbar_row(self) -> W.Widget: - self._model_picker = ObjectChoiceField(label="Model:", items=self._registry) # type: ignore[arg-type] - self._column_picker = ChoiceField(label="Column:", options=self._column_pairs) - for k, v in CSS_RAISE_ABOVE_OVERLAY.items(): - setattr(self._column_picker.widget.layout, k, v) - - row = W.HBox( - [self._components_field, self._model_picker.widget, self._column_picker.widget, self._btn_open_column_modal], - layout=CSS_TOOLBAR_ROW, - ) - return row - - def _build_toolbar_popover(self) -> W.Widget: - self._toolbar_popover = W.VBox([], layout=CSS_TOOLBAR_POPOVER) - return self._toolbar_popover - - def _build_model_panel(self) -> W.Widget: - self._model_panel = W.Box([], layout=CSS_MODEL_PANEL) - return self._model_panel - - def _build_overlay_dimmer(self) -> W.Widget: - self._overlay_dimmer = W.Box([], layout=CSS_OVERLAY_DIMMER) - return self._overlay_dimmer - - # ----- BaseWidget hooks ----- - def _build_body(self) -> W.Widget: - self._manual_mode = not (self._registry and self._columns) - if self._manual_mode: - self._form_box = W.VBox([]) - self._actions = W.HBox([self._btn_apply, self._btn_reset]) - return W.VBox([self._form_box, self._actions]) - - # Normalize columns - if isinstance(self._columns, dict): - self._column_pairs = list(self._columns.items()) - else: - self._column_pairs = [ - (getattr(c, "name", c.__class__.__name__), c) for c in self._columns - ] - - # Toolbar (row + popover anchored to it) - toolbar_row = self._build_toolbar_row() - self._toolbar_wrap = W.Box([toolbar_row], layout=CSS_TOOLBAR_WRAP) - self._toolbar_popover = self._build_toolbar_popover() - self._toolbar_wrap.children = [toolbar_row, self._toolbar_popover] - - # Model Config panel - self._model_panel = self._build_model_panel() - - # Content - self._content = W.VBox([self._toolbar_wrap, self._model_panel], layout=W.Layout(width="100%")) - - # Overlays: dimmer then column modal, all inside the root - self._overlay_dimmer = self._build_overlay_dimmer() - self._root = W.Box([self._content, self._overlay_dimmer, self._column_modal.widget], layout=CSS_ROOT) - - return W.VBox([self._root]) - - def _wire_events(self) -> None: - if getattr(self, "_manual_mode", False): - self._btn_apply.on_click(self._on_apply) - self._btn_reset.on_click(self._on_reset) - return - - self._attach_main_observers() - self._btn_open_column_modal.on_click(self._open_column_modal) - - # Initialize picks - try: - mopts = list(self._model_picker.widget.options) - if mopts: - self._model_picker.set_value(mopts[0][1]) - copts = list(self._column_picker.widget.options) - if copts: - self._column_picker.set_value(copts[0][1]) - except Exception: - pass - - # Initial form - model_fn, column = self._get_selection() - if model_fn and column: - self._rebuild_model_panel(model_fn, column) - - # Components watcher - if self._components_field: - self._components_field.observe(self._on_components_change, names="value") - - # ----- Toolbar popover helpers ----- - def _show_toolbar_popover(self, content: W.Widget, *, title: str | None = None) -> None: - if getattr(self._column_modal, "is_open", False): - try: - self._column_modal.close() - except Exception: - pass - if title: - title_html = W.HTML(f"

{title}

") - self._toolbar_popover.children = [title_html, content] - else: - self._toolbar_popover.children = [content] - self._toolbar_popover.layout.display = "flex" - self._overlay_dimmer.layout.display = "flex" - - def _hide_toolbar_popover(self) -> None: - self._toolbar_popover.layout.display = "none" - self._toolbar_popover.children = [] - self._overlay_dimmer.layout.display = "none" - - def _open_toolbar_popover_with_live_update( - self, - *, - initial_factory: Any, - rebuild_fn: Callable[[Any], FormRenderer], - title_fn: Callable[[Any], str], - observe_widget: W.Widget, - names: str = "value", - ) -> None: - if getattr(self._column_modal, "is_open", False): - try: - self._column_modal.close() - except Exception: - pass - - self._detach_main_observers() - self._suspend_main_rebuild = True - - def _restore(): - self._suspend_main_rebuild = False - try: - observe_widget.unobserve(_on_change, names=names) - except Exception: - pass - if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): - try: - self._toolbar_popover_timer.cancel() - except Exception: - pass - self._attach_main_observers() - self._hide_toolbar_popover() - - form = rebuild_fn(initial_factory) - self._toolbar_popover_last_factory = initial_factory - self._show_toolbar_popover(form.root, title=title_fn(initial_factory)) - - self._toolbar_popover_timer = None - - def _do_rebuild(factory: Any) -> None: - try: - new_form = rebuild_fn(factory) - self._toolbar_popover_last_factory = factory - self._show_toolbar_popover(new_form.root, title=title_fn(factory)) - except Exception as exc: - self._show_toolbar_popover(W.HTML(f"Error: {exc}")) - - def _on_change(change: dict) -> None: - if change.get("name") != names: - return - factory = change.get("new") - if factory is self._toolbar_popover_last_factory: - return - if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): - try: - self._toolbar_popover_timer.cancel() - except Exception: - pass - self._toolbar_popover_timer = Timer(0.12, _do_rebuild, args=(factory,)) - self._toolbar_popover_timer.start() - - observe_widget.observe(_on_change, names=names) - self._popover_close = _restore # retained attribute name for backward-compat - - # ----- Build helpers (Model/Column) ----- - def _build_model_form(self, model_fn: Callable[[Any], Any], column: Any) -> FormRenderer: - with warnings.catch_warnings(): - warnings.simplefilter("ignore", category=UserWarning) - spec = model_fn(column) - - form = (self._SpecDriven or FormRenderer)(spec) # type: ignore[call-arg] - - def _after_apply(_b: W.Button) -> None: - if getattr(form, "built", None) is not None: - self._built = form.built - if self._on_built: - self._on_built(form.built) - self.notify(self._built) - - form._btn_apply.on_click(_after_apply) # noqa: SLF001 - return form - - def _build_column_form(self, column: Any) -> FormRenderer: - spec = build_column_config_spec(column) - form = FormRenderer(spec) - - spec_apply = getattr(spec, "apply", None) - - def _apply_into_column(_b: W.Button) -> None: - vals: Dict[str, Any] = {} - for f in spec.fields: - raw = getattr(form._widgets[f.name], "value", None) # noqa: SLF001 - val = f.transform(raw) if f.transform else raw - if f.validate: - f.validate(val) - vals[f.name] = val - - if callable(spec_apply): - spec_apply(column, vals) - else: - targets = getattr(spec, "targets", None) or {} - wrote_any = False - for fname, v in vals.items(): - target_path = targets.get(fname) - try: - if target_path: - _set_attr_path(column, target_path, v) - wrote_any = True - elif hasattr(column, fname): - setattr(column, fname, v) - wrote_any = True - except Exception: - pass - if not wrote_any: - for k, v in vals.items(): - try: - column.parameter["LRMP"][k] = v - wrote_any = True - except Exception: - pass - - name = getattr(column, "name", column.__class__.__name__) - self.set_status(f"Updated column parameters for: {name}") - self._hide_toolbar_popover() - - form._btn_apply.on_click(_apply_into_column) # noqa: SLF001 - return form - - # ----- Selection helpers ----- - def _make_column(self, factory: Callable[[ComponentSystem], Any]) -> Any: - if factory in self._column_cache: - return self._column_cache[factory] - cs = ComponentSystem(self._components_field.value if self._components_field else 1) - return factory(cs) - - def _get_selection(self) -> tuple[Callable[[Any], Any] | None, Any | None]: - model_fn = self._model_picker.get_value() if hasattr(self, "_model_picker") else None - col_factory = self._column_picker.get_value() if hasattr(self, "_column_picker") else None - column = self._column_cache.get(col_factory) if callable(col_factory) else col_factory - if column is None and callable(col_factory): - column = self._make_column(col_factory) - return model_fn, column - - # ----- Observers attach/detach ----- - def _attach_main_observers(self) -> None: - if self._obs_model_spec is None: - self._obs_model_spec = lambda ch: self._on_spec_change(ch) - self._model_picker.widget.observe(self._obs_model_spec, names="value") - if self._obs_column_spec is None: - self._obs_column_spec = lambda ch: self._on_spec_change(ch) - self._column_picker.widget.observe(self._obs_column_spec, names="value") - - def _detach_main_observers(self) -> None: - if self._obs_model_spec is not None: - try: - self._model_picker.widget.unobserve(self._obs_model_spec, names="value") - except Exception: - pass - self._obs_model_spec = None - if self._obs_column_spec is not None: - try: - self._column_picker.widget.unobserve(self._obs_column_spec, names="value") - except Exception: - pass - self._obs_column_spec = None - - # ----- Event handlers ----- - def _rebuild_model_panel(self, model_fn: Callable[[Any], Any], column: Any) -> None: - form = self._build_model_form(model_fn, column) - with self._model_panel.hold_trait_notifications(): - self._model_panel.children = [form.root] - self.set_status("Select model & column, configure, then click Apply.") - - def _on_spec_change(self, _change: dict) -> None: - if self._suspend_main_rebuild: - return - model_fn, column = self._get_selection() - if model_fn and column: - self._rebuild_model_panel(model_fn, column) - - def _on_components_change(self, change: dict) -> None: - if not self._can_rebuild_columns or change.get("name") != "value": - return - try: - n = int(change["new"]) # type: ignore[index] - if n < 1: - return - except Exception: - return - - self._column_cache.clear() - self._columns = {name: factory for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} # type: ignore[union-attr] - pairs = list(self._columns.items()) - self._column_pairs = pairs - self._column_picker.widget.options = pairs - if pairs: - self._column_picker.set_value(pairs[0][1]) - - model_fn, column = self._get_selection() - if model_fn and column: - self._rebuild_model_panel(model_fn, column) - self.set_status(f"Rebuilt columns for {n} component(s).") - - def _open_column_modal(self, _btn): - # Close any live popover sessions - if hasattr(self, "_popover_close"): - try: - self._popover_close() - except Exception: - pass - try: - del self._popover_close - except Exception: - pass - if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): - try: - self._toolbar_popover_timer.cancel() - except Exception: - pass - - col_factory = self._column_picker.get_value() - if col_factory is None: - self.set_status("Pick a column first.") - return - - self._overlay_dimmer.layout.display = "flex" - self._suspend_main_rebuild = True - self._detach_main_observers() - - def build_form_for(factory): - column = self._column_cache.get(factory) or self._make_column(factory) - form = self._build_column_form(column) - def _cache_after_apply(_b): - self._column_cache[factory] = column - model_fn, _ = self._get_selection() - if model_fn is not None: - self._rebuild_model_panel(model_fn, column) - self._column_modal.close() - form._btn_apply.on_click(_cache_after_apply) # noqa: SLF001 - return column, form - - column, form = build_form_for(col_factory) - self._column_modal.open(form.root, title=f"Configure: {getattr(column, 'name', column.__class__.__name__)}") - - def _on_dropdown_change(change: dict): - if change.get("name") != "value" or not self._column_modal.is_open: - return - try: - column2, form2 = build_form_for(change.get("new")) - self._column_modal.set_body(form2.root) - self._column_modal.set_title(f"Configure: {getattr(column2, 'name', column2.__class__.__name__)}") - except Exception as exc: - self._column_modal.set_body(W.HTML(f"Error: {exc}")) - - self._column_picker.widget.observe(_on_dropdown_change, names="value") - - def _on_modal_close(): - try: - self._column_picker.widget.unobserve(_on_dropdown_change, names="value") - except Exception: - pass - self._overlay_dimmer.layout.display = "none" - self._suspend_main_rebuild = False - self._attach_main_observers() - - self._column_modal.add_close_listener(_on_modal_close) - - # ----- Manual mode ----- - def _on_apply(self, _btn: W.Button) -> None: - self.set_status("Manual mode not implemented.") - - def _on_reset(self, _btn: W.Button) -> None: - self.set_status("Reset.") \ No newline at end of file diff --git a/cadetgui/widgets/elements.py b/cadetgui/widgets/elements.py deleted file mode 100644 index eac5203..0000000 --- a/cadetgui/widgets/elements.py +++ /dev/null @@ -1,446 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/elements.py -# ========================================= -from __future__ import annotations - -from abc import ABC, abstractmethod -from typing import Any, Callable, Iterable, Optional, Sequence, Tuple, TypeVar - -import ipywidgets as W - -__all__ = [ - "Element", - "TextField", - "FloatField", - "BoolField", - "Display", - "ChoiceField", - "ObjectChoiceField", - "Modal", -] - -T = TypeVar("T") - - -class Element(ABC): - """Base class for small reusable form elements.""" - - widget: W.Widget - - @abstractmethod - def get_value(self) -> Any: - """Return the current value.""" - - @abstractmethod - def set_value(self, value: Any) -> None: - """Set the current value.""" - - -class TextField(Element): - """Single-line text input with label.""" - - def __init__(self, *, label: str = "", value: str = "") -> None: - self.widget = W.Text(description=label, value=value) - - def get_value(self) -> str: # type: ignore[override] - return str(self.widget.value) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = str(value) - - -class FloatField(Element): - """Float input with label.""" - - def __init__(self, *, label: str = "", value: float = 0.0) -> None: - self.widget = W.FloatText(description=label, value=float(value)) - - def get_value(self) -> float: # type: ignore[override] - return float(self.widget.value) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = float(value) - - -class BoolField(Element): - """Boolean checkbox with label.""" - - def __init__(self, *, label: str = "", value: bool = False) -> None: - self.widget = W.Checkbox(description=label, value=bool(value)) - - def get_value(self) -> bool: # type: ignore[override] - return bool(self.widget.value) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = bool(value) - - -class Display(Element): - """Read-only HTML display block.""" - - def __init__(self, *, html: str = "") -> None: - self.widget = W.HTML(value=html) - - def get_value(self) -> str: # type: ignore[override] - return str(getattr(self.widget, "value", "")) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = str(value) - -class FloatListInput(W.VBox): - """Editable list of positive floats with +/− controls (no textarea).""" - - def __init__(self, *, label: str = "", values: list[float] | None = None, - min_val: float = 1e-300, step: float = 1e-6) -> None: - self._min = min_val - self._step = step - self._rows = W.VBox([]) - self._add = W.Button(icon="plus", tooltip="Add value") - self._label = W.Label(label) if label else W.Label() - super().__init__([self._label, self._rows, self._add], - layout=W.Layout(width="100%", min_width="0")) - - for v in (values if values else [0.0]): - self._add_row(float(v) if v is not None else 0.0) - - self._add.on_click(lambda _: self._add_row()) - - def _add_row(self, value: float = 0.0) -> None: - num = W.BoundedFloatText( - value=max(value, self._min), - min=self._min, - step=self._step, - readout_format=".6g", - layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), - ) - rm = W.Button(icon="trash", tooltip="Remove") - row = W.HBox([num, rm], layout=W.Layout(align_items="center")) - rm.on_click(lambda _b: self._remove_row(row)) - self._rows.children = tuple(list(self._rows.children) + [row]) - - def _remove_row(self, row: W.HBox) -> None: - items = list(self._rows.children) - try: - items.remove(row) - self._rows.children = tuple(items if items else []) - except ValueError: - pass - - @property - def value(self) -> list[float]: - return [float(ch.children[0].value) for ch in self._rows.children] - -import ipywidgets as W - -class FloatListField(W.HBox): - """List of positive floats aligned with other fields' description column.""" - def __init__(self, *, description: str, values: list[float] | None = None, - label_width: str = "140px", min_val: float = 1e-300, step: float = 1e-6): - self._min = min_val - self._step = step - self._rows = W.VBox([]) - self._add = W.Button(icon="plus", tooltip="Add value") - label = W.Label(description, layout=W.Layout(width=label_width, flex="0 0 auto")) - - box = W.VBox([self._rows, self._add], layout=W.Layout(width="100%", min_width="0")) - super().__init__([label, box], - layout=W.Layout(align_items="flex-start", width="100%", min_width="0")) - - for v in (values if values else [min_val]): - self._add_row(float(v)) - - self._add.on_click(lambda _: self._add_row()) - - def _add_row(self, value: float) -> None: - num = W.BoundedFloatText( - value=max(value, self._min), - min=self._min, step=self._step, readout_format=".6g", - layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), - ) - rm = W.Button(icon="trash", tooltip="Remove") - row = W.HBox([num, rm], layout=W.Layout(align_items="center")) - rm.on_click(lambda _b: self._remove_row(row)) - self._rows.children = tuple(list(self._rows.children) + [row]) - - def _remove_row(self, row: W.HBox) -> None: - items = list(self._rows.children) - if row in items: - items.remove(row) - self._rows.children = tuple(items) - - @property - def value(self) -> list[float]: - return [float(ch.children[0].value) for ch in self._rows.children] - - -class Popup(Element): - """Light-weight pseudo-modal popup using an Accordion.""" - - def __init__(self, *, title: str = "Info", content: Optional[W.Widget] = None) -> None: - body = content or W.HTML("Empty") - acc = W.Accordion(children=[body]) - acc.set_title(0, title) - acc.selected_index = None - self.widget = acc - - def get_value(self) -> None: # type: ignore[override] - return None - - def set_value(self, value: Any) -> None: # type: ignore[override] - pass - - def open(self) -> None: - self.widget.selected_index = 0 # type: ignore[attr-defined] - - def close(self) -> None: - self.widget.selected_index = None # type: ignore[attr-defined] - -class ChoiceField(Element): - """Dropdown for selecting one option from (label, value) pairs. - - Parameters - ---------- - label : str - Text shown left of the dropdown (ipywidgets 'description'). - options : Sequence[Tuple[str, Any]] - Iterable of (label, value) pairs. - value : Any | None - Initially selected value. If None, uses the first option (if any). - layout : W.Layout | None - Optional ipywidgets layout (width, margin, etc.). - style : dict | None - Optional widget.style overrides, e.g. {"description_width": "90px"}. - disabled : bool - Disable user interaction. - placeholder : str | None - If given and value is None, inserts a non-selectable placeholder label. - class_name : str | None - CSS class to add to the widget (ipywidgets v8: .add_class; v7: ._dom_classes). - """ - - def __init__( - self, - *, - label: str = "", - options: Sequence[Tuple[str, Any]] = (), - value: Any | None = None, - layout: Optional[W.Layout] = None, - style: Optional[dict] = None, - disabled: bool = False, - placeholder: str | None = None, - class_name: str | None = None, - ) -> None: - # Build options (optionally add a placeholder) - self._placeholder = None - if placeholder is not None and (value is None) and len(options) > 0: - # ipywidgets Dropdown doesn't support a true non-selectable option, - # so we insert a unique sentinel value and treat it specially. - self._placeholder = object() - options = [(placeholder, self._placeholder)] + list(options) - - self.widget = W.Dropdown(description=label, options=list(options), disabled=disabled) - - if layout is not None: - self.widget.layout = layout - if style and hasattr(self.widget, "style"): - for k, v in style.items(): - setattr(self.widget.style, k, v) - - if class_name: - # v8 - if hasattr(self.widget, "add_class"): - self.widget.add_class(class_name) - # v7 fallback - elif hasattr(self.widget, "_dom_classes"): - self.widget._dom_classes.add(class_name) - - # Set initial value - try: - if value is not None: - self.widget.value = value - else: - # If placeholder present, select it; else leave default (first option) - if self._placeholder is not None: - self.widget.value = self._placeholder - except Exception: - pass - - # ---- Element API ---- - def get_value(self) -> Any: # type: ignore[override] - v = getattr(self.widget, "value", None) - # If placeholder is selected, behave as though no value is chosen - if self._placeholder is not None and v is self._placeholder: - return None - return v - - def set_value(self, value: Any) -> None: # type: ignore[override] - # Allow setting to None -> move to placeholder (if configured) - if value is None and self._placeholder is not None: - self.widget.value = self._placeholder - else: - self.widget.value = value - - # ---- Convenience helpers ---- - def set_options(self, options: Sequence[Tuple[str, Any]], *, keep_value: bool = True) -> None: - """Replace the options. If keep_value=True, try to keep current value if still present.""" - current = self.widget.value - self.widget.options = list(options) - if keep_value and any(v == current for _, v in self.widget.options): - try: - self.widget.value = current - except Exception: - pass - elif self.widget.options: - # default to first option - try: - self.widget.value = self.widget.options[0][1] - except Exception: - pass - - def add_class(self, name: str) -> None: - if hasattr(self.widget, "add_class"): - self.widget.add_class(name) # v8 - elif hasattr(self.widget, "_dom_classes"): - self.widget._dom_classes.add(name) # v7 - - def disable(self) -> None: - self.widget.disabled = True - - def enable(self) -> None: - self.widget.disabled = False - -class ObjectChoiceField(ChoiceField): - """Dropdown for arbitrary objects with a label function (or attribute). - - Parameters - ---------- - label : str - Text shown left of the dropdown. - items : list[object] | dict[str, object] - Either a list of objects or a mapping of display label -> object. - label_fn : Callable[[object], str] | None - Function to produce a label for each object (used when items is a list). - fallback_attr : str - Attribute name to read for labels if label_fn is not provided (default: 'name'). - value, layout, style, disabled, placeholder, class_name - Passed through to ChoiceField. - """ - - def __init__( - self, - *, - label: str = "Select:", - items: list[object] | dict[str, object], - label_fn: Optional[Callable[[object], str]] = None, - fallback_attr: str = "name", - value: Any | None = None, - layout: Optional[W.Layout] = None, - style: Optional[dict] = None, - disabled: bool = False, - placeholder: str | None = None, - class_name: str | None = None, - ) -> None: - if isinstance(items, dict): - pairs = [(str(k), v) for k, v in items.items()] - else: - pairs = [] - for obj in items: - if label_fn is not None: - lbl = label_fn(obj) - else: - lbl = getattr(obj, fallback_attr, obj.__class__.__name__) - pairs.append((str(lbl), obj)) - - super().__init__( - label=label, - options=pairs, - value=value, - layout=layout, - style=style, - disabled=disabled, - placeholder=placeholder, - class_name=class_name, - ) - -class Modal: - def __init__(self, title: str = "Dialog") -> None: - self._title = title - self._on_close: list[Callable[[], None]] = [] - self.is_open = False - - self._overlay = W.Box( - [], - layout=W.Layout( - display="none", - position="absolute", # ⬅ anchor to root stack - top="0", left="0", right="0", bottom="0", - width="100%", height="100%", - justify_content="center", - align_items="flex-start", - background_color="rgba(0,0,0,0.35)", - z_index="10030", # ⬅ top of our stack - pointer_events="auto", - ), - ) - - - # The card/panel (above the backdrop) - self._title_html = W.HTML() - self._close_btn = W.Button(description="Close", icon="x") - self._close_btn.on_click(lambda _: self.close()) - - header = W.HBox( - [self._title_html, self._close_btn], - layout=W.Layout(justify_content="space-between", align_items="center", width="100%"), - ) - - self.body = W.Box([], layout=W.Layout(flex="1 1 auto", overflow_y="auto", width="100%")) - - self._panel = W.VBox( - [header, self.body], - layout=W.Layout( - width="min(720px, 90vw)", - max_height="80vh", - overflow="hidden", - padding="16px", - border="1px solid #ccc", - border_radius="12px", - background_color="#fff", - box_shadow="0 8px 24px rgba(0,0,0,0.25)", - # Critical bits: - position="relative", # panel has its own stacking context - z_index="2147483647", # above the backdrop (and everything else) - margin="12px 0 0 0", # near the top (adjust to taste) - pointer_events="auto", # panel captures clicks - ), - ) - - self._overlay.children = [self._panel] - self.widget = self._overlay - self.set_title(title) - - def set_title(self, title: str) -> None: - self._title = title - self._title_html.value = f"

{title}

" - - def set_body(self, content: W.Widget) -> None: - self.body.children = [content] - - def open(self, content: W.Widget, *, title: Optional[str] = None) -> None: - if title: - self.set_title(title) - self.set_body(content) - self._overlay.layout.display = "flex" # ipywidgets Boxes render with 'flex' - self.is_open = True - - def close(self) -> None: - self._overlay.layout.display = "none" - self.body.children = [] - self.is_open = False - for fn in list(self._on_close): - try: fn() - except Exception: pass - self._on_close.clear() - - def add_close_listener(self, fn: Callable[[], None]) -> None: - self._on_close.append(fn) \ No newline at end of file diff --git a/cadetgui/widgets/form.py b/cadetgui/widgets/form.py deleted file mode 100644 index 6ea502b..0000000 --- a/cadetgui/widgets/form.py +++ /dev/null @@ -1,65 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/form.py -# ========================================= -from __future__ import annotations - -from typing import Any, Dict, Optional - -import ipywidgets as W - -from .base import BaseWidget -from ..cadetprocessadapter import ModelSpec - -__all__ = ["FormRenderer"] - - -class FormRenderer(BaseWidget): - """Render a ModelSpec into a form and build an object on Apply.""" - - def __init__(self, spec: ModelSpec, *, title: Optional[str] = None) -> None: - self._spec = spec - self._widgets: Dict[str, W.Widget] = {} - self._btn_apply = W.Button(description="Apply", button_style="success") - self._btn_reset = W.Button(description="Reset") - self.built: Any = None - super().__init__(title=title or spec.title) - - def _build_body(self) -> W.Widget: - rows: list[W.Widget] = [] - for f in self._spec.fields: - w = BaseWidget.widget_for_field(f) - self._widgets[f.name] = w - rows.append(w) - actions = W.HBox([self._btn_apply, self._btn_reset]) - return W.VBox(rows + [actions]) - - def _wire_events(self) -> None: - self._btn_apply.on_click(self._on_apply) - self._btn_reset.on_click(self._on_reset) - - def _collect_values(self) -> Dict[str, Any]: - vals: Dict[str, Any] = {} - for f in self._spec.fields: - raw = getattr(self._widgets[f.name], "value", None) - value = f.transform(raw) if f.transform else raw - if f.validate: - f.validate(value) - vals[f.name] = value - return vals - - def _on_apply(self, _btn: W.Button) -> None: - try: - vals = self._collect_values() - if self._spec.build is None: - raise RuntimeError("Spec has no 'build' function.") - self.built = self._spec.build(vals) - self.set_status("Built successfully.") - except Exception as exc: # noqa: BLE001 - self.built = None - self.set_error(exc) - - def _on_reset(self, _btn: W.Button) -> None: - BaseWidget.reset_fields(self._widgets, self._spec.fields) - self.set_status("Reset to defaults.") - - diff --git a/cadetgui/widgets/legacy/__init__.py b/cadetgui/widgets/legacy/__init__.py new file mode 100644 index 0000000..fb74189 --- /dev/null +++ b/cadetgui/widgets/legacy/__init__.py @@ -0,0 +1,38 @@ +# ========================================= +# File: cadetgui/widgets/legacy/__init__.py +# ========================================= +"""ipywidgets-based prototype — reference material for the anywidget port. + +Not the target implementation (see ai-docs/ARCHITECTURE.md). Kept working and +importable so the existing notebook keeps functioning during the port. +""" +from .base import BaseWidget, ListenerMixin +from .config import ConfigurationWidget +from .elements import ( + BoolField, + ChoiceField, + Display, + Element, + FloatField, + ObjectChoiceField, + Popup, + TextField, +) +from .form import FormRenderer +from .solution import SolutionWidget + +__all__ = [ + "BaseWidget", + "ListenerMixin", + "Element", + "TextField", + "FloatField", + "BoolField", + "Display", + "Popup", + "ChoiceField", + "ObjectChoiceField", + "FormRenderer", + "ConfigurationWidget", + "SolutionWidget", +] diff --git a/cadetgui/widgets/solution.py b/cadetgui/widgets/solution.py deleted file mode 100644 index 92b87ab..0000000 --- a/cadetgui/widgets/solution.py +++ /dev/null @@ -1,876 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/solution.py -# ========================================= -from __future__ import annotations - -from typing import Any, Callable, Dict, Optional, Mapping, Sequence, Tuple -from contextlib import redirect_stderr, redirect_stdout - -import ipywidgets as W - -from .base import BaseWidget -from ..simulation import run_process as _default_runner - -try: - from collections.abc import Mapping as _MappingABC -except Exception: # pragma: no cover - _MappingABC = dict # type: ignore - -__all__ = ["SolutionWidget", "solution_to_fields_lenmatch"] - -# ---- Optional import for nicer isinstance checks (kept soft) -try: # pragma: no cover - optional convenience - from CADETProcess.fields import Field as _FieldType # type: ignore -except Exception: # pragma: no cover - fallback to duck typing - _FieldType = Any # type: ignore - - -# ---------------------------- -# Generic helpers -# ---------------------------- -def _is_field(obj: Any) -> bool: - """Duck-type check for CADETProcess Field-like objects.""" - if _FieldType is not Any: - try: - return isinstance(obj, _FieldType) - except Exception: - pass - req = ["plot", "sel", "interp", "differentiate", "integrate", "coordinates"] - return all(hasattr(obj, name) for name in req) - - -def _try_plot_result_generic(result: Any, out: W.Output) -> None: - """Best-effort, generic plotting hook (safer checks).""" - try: - import matplotlib.pyplot as plt # type: ignore - with out: - plot_attr = getattr(result, "plot", None) - if callable(plot_attr): - plot_attr() - return - if isinstance(result, dict) and "t" in result and "y" in result: - t, y = result["t"], result["y"] - plt.figure() - plt.plot(t, y) - plt.xlabel("t") - plt.ylabel("y") - plt.show() - else: - print(repr(result)) - except Exception: - pass - - -def _get_attr_or_key(obj: Any, *names: str, default: Any = None) -> Any: - """Return first found attribute or mapping key from names, else default.""" - for n in names: - try: - if hasattr(obj, n): - return getattr(obj, n) - if isinstance(obj, _MappingABC) and n in obj: # type: ignore[arg-type] - return obj[n] - except Exception: - pass - return default - - -def _is_monotonic_increasing(arr: Any) -> bool: - try: - import numpy as _np - a = _np.asarray(arr) - if a.ndim != 1 or a.size < 2: - return False - return _np.all(_np.diff(a) >= 0) - except Exception: - return False - - -# ---------------------------- -# Field builders / coercion -# ---------------------------- -def _best_time_array(obj: Any) -> Any: - """Try to find a plausible time array on an object.""" - cand = _get_attr_or_key(obj, "time", "t") - if cand is not None: - return cand - try: - import numpy as _np - best = None - for name in dir(obj): - if name.startswith("_"): - continue - try: - v = getattr(obj, name) - except Exception: - continue - try: - a = _np.asarray(v) - except Exception: - continue - if a.ndim == 1 and a.size >= 2 and _is_monotonic_increasing(a): - lname = name.lower() - score = 1 - if "time" in lname or lname == "t": - score = 0 - if best is None or score < best[0]: - best = (score, v) - return best[1] if best else None - except Exception: - return None - - -def _pick_data_array(obj: Any, t_len: int) -> Any: - """Pick a plausible data array on an object given a time length.""" - data = _get_attr_or_key(obj, "c", "y", "data", "values", "signal") - if data is not None: - return data - try: - import numpy as _np - best = None - for name in dir(obj): - if name.startswith("_"): - continue - try: - v = getattr(obj, name) - except Exception: - continue - try: - a = _np.asarray(v) - except Exception: - continue - if a.ndim >= 1 and a.shape[0] == t_len: - score = -a.ndim - if best is None or score < best[0]: - best = (score, v) - return best[1] if best else None - except Exception: - return None - - -def _build_field_from_solution(solution: Any, *, name: Optional[str] = None) -> Any: - """Best-effort: turn a SolutionIO.solution-like object into a Field.""" - try: - from CADETProcess.fields import Field as FieldCls # type: ignore - except Exception: - FieldCls = None # type: ignore - - if FieldCls is None: - return solution # Can't build Field without Field class - - t = _get_attr_or_key(solution, "time", "t") - axial = _get_attr_or_key(solution, "axial", "z", "x") - radial = _get_attr_or_key(solution, "radial", "r") - - data = _get_attr_or_key(solution, "c", "y", "data", "values") - comps = _get_attr_or_key(solution, "components", "comp_names", "species") - unit = _get_attr_or_key(solution, "unit", "units") - - if data is None or t is None: - return solution - - coords: Dict[str, Any] = {"time": (t, "s")} - if axial is not None: - coords["axial"] = (axial, "m") - if radial is not None: - coords["radial"] = (radial, "m") - - try: - fld = FieldCls( - coordinates=coords, - data=data, - components=list(comps) if comps is not None else None, - name=name, - unit=unit, - ) - return fld - except Exception: - return solution - - -def _coerce_to_fieldish(result: Any) -> Any: - """Try to coerce common simulation result containers into Field or dict-of-Field.""" - if _is_field(result): - return result - - if isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): - return result - - # `.fields` mapping - try: - fields_map = getattr(result, "fields") - if isinstance(fields_map, Mapping) and fields_map and all(_is_field(v) for v in fields_map.values()): - return fields_map - except Exception: - pass - - # `to_fields` / `as_fields` / `to_field` - for meth in ("to_fields", "as_fields", "to_field"): - fn = getattr(result, meth, None) - if callable(fn): - try: - val = fn() - if _is_field(val): - return val - if isinstance(val, Mapping) and val and all(_is_field(v) for v in val.values()): - return val - except Exception: - pass - - # `.solution` mapping with nested SolutionIO → try to build Field - solmap = _get_attr_or_key(result, "solution") - if isinstance(solmap, Mapping) and solmap: - converted: Dict[str, Any] = {} - for unit_name, io_map in solmap.items(): - if isinstance(io_map, Mapping): - for port_name, io in io_map.items(): - sol = _get_attr_or_key(io, "solution") - key = f"{unit_name}:{port_name}" - fld = _build_field_from_solution(sol, name=key) - if _is_field(fld): - converted[key] = fld - elif sol is None: - fld2 = _build_field_from_solution(io, name=key) - if _is_field(fld2): - converted[key] = fld2 - if converted: - return converted - - # Generic mapping: keep Field entries found recursively - if isinstance(result, Mapping) and result: - sub: Dict[str, Any] = {} - for k, v in result.items(): - cv = _coerce_to_fieldish(v) - if _is_field(cv): - sub[k] = cv - if sub: - return sub - - return result - - -# ---------------------------- -# Coordinate normalizer -# ---------------------------- -def _coords_with_units(field: Any) -> Dict[str, Tuple["np.ndarray", Optional[str]]]: - """ - Normalize coordinates to: {dim: (grid_ndarray, unit_or_None)}. - - Prefers xarray attrs when available (field.data[dim].attrs["units"]). - Falls back to field.coordinates and accepts either bare arrays or (values, unit) tuples. - """ - import numpy as np - - # Preferred: via xarray DataArray - try: - da = getattr(field, "data", None) - if da is not None: - out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} - for dim in da.dims: - vals = np.asarray(da.coords[dim].values) - unit = da.coords[dim].attrs.get("units") - out[dim] = (vals, unit) - return out - except Exception: - pass - - # Fallback: whatever field.coordinates exposes - out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} - raw = getattr(field, "coordinates", {}) or {} - if isinstance(raw, dict): - for dim, val in raw.items(): - unit = None - arr = val - # Support legacy tuples: (values, unit) - if isinstance(val, tuple) and len(val) == 2: - arr, unit = val - try: - arr = np.asarray(arr) - except Exception: - pass - out[dim] = (arr, unit) - return out - - -# ---------------------------- -# Result transform that really uses solution arrays + real time -# ---------------------------- -def solution_to_fields_lenmatch(res): - """ - Flatten res.solution (unit -> {port -> SolutionIO}) into - { "unit:port": Field } by: - - getting data from io.solution (numpy array) - - inferring T from the data - - locating a unit/global 1D 'time' vector (handles {'values': ...} holders) - - falling back to arange(T) only if necessary - """ - from CADETProcess.fields import Field # type: ignore - import numpy as np - - solmap = getattr(res, "solution", None) - if not isinstance(solmap, Mapping): - return res - - def _safe_arr(x): - try: - return np.asarray(x) - except Exception: - try: - return np.asarray(list(x)) - except Exception: - return None - - def _as_vector(x): - """Extract a vector from common wrappers (dict with 'values', obj.values).""" - if x is None: - return None - # mapping with 'values' - if isinstance(x, Mapping) and "values" in x: - return _safe_arr(x["values"]) - # objects with non-callable .values - vals = getattr(x, "values", None) - if vals is not None and not callable(vals): - return _safe_arr(vals) - # plain array-like - return _safe_arr(x) - - def _scan_time(scope: Mapping, T: int): - """Find a 1D vector of length T in mapping scope, prefer monotonic & 'time' names.""" - best = None - # 1) direct names that may be wrappers - for key in ("time", "t"): - cand = None - if isinstance(scope, Mapping): - if key in scope: - cand = _as_vector(scope[key]) - if cand is not None and cand.ndim == 1 and cand.size == T: - return cand - # 2) nested holders like scope['time'] == {'values': ...} - for k, v in scope.items(): - if isinstance(v, Mapping) and "values" in v: - cand = _safe_arr(v["values"]) - if cand is not None and cand.ndim == 1 and cand.size == T: - return cand - # 3) generic scan of 1D arrays - for k, v in scope.items(): - cand = _as_vector(v) - if cand is None or cand.ndim != 1 or cand.size != T: - continue - return cand - return None - - out: Dict[str, Any] = {} - - for unit, ports in solmap.items(): - if not isinstance(ports, Mapping): - continue - - # Deduce T from any port's data - T = None - for _p, io in ports.items(): - data0 = _as_vector(getattr(io, "solution", None)) - if data0 is None: - continue - if data0.ndim >= 1: - T = int(data0.shape[0]) - break - if T is None: - continue - - # Find a unit-level time first; else global; else synthetic - t = _scan_time(ports, T) - if t is None and isinstance(solmap, Mapping): - gt = _scan_time(solmap, T) - if gt is not None: - t = gt - if t is None: - t = np.arange(T) - - for port, io in ports.items(): - data = _as_vector(getattr(io, "solution", None)) - if data is None or data.ndim < 1: - continue - - # Align time dimension - if data.shape[0] != T and data.shape[-1] == T: - data = np.swapaxes(data, 0, -1) - if data.shape[0] != T: - continue - - coords = {"time": (t, "s")} - comp_names = None - if data.ndim >= 2 and 1 < data.shape[-1] <= 64: - comp_names = [f"C{i}" for i in range(data.shape[-1])] - - try: - out[f"{unit}:{port}"] = Field( - coordinates=coords, - data=data, - components=comp_names, - name=f"{unit}:{port}", - ) - except Exception: - pass - - return out if out else solmap - - -# ---------------------------- -# Widget -# ---------------------------- -class SolutionWidget(BaseWidget): - """Runner/visualizer for CADET-Process processes with Field-aware tooling.""" - - def __init__( - self, - *, - title: Optional[str] = None, - process: Any = None, - config: Optional["ConfigurationWidget"] = None, - runner: Optional[Callable[[Any], Any]] = None, - runner_kwargs: Optional[Dict[str, Any]] = None, - result_transform: Optional[Callable[[Any], Any]] = None, - ) -> None: - self._process: Any | None = None - self._btn_run = W.Button(description="Run simulation", icon="play") - self._btn_clear = W.Button(description="Clear", icon="trash") - self._proc_label = W.HTML("No process set.") - self._out = W.Output() - self._show_tb = W.Checkbox(description="Show traceback", value=True) - - self._runner = runner or _default_runner - self._runner_kwargs = runner_kwargs or {} - self._result_transform = result_transform - - # Field-aware UI (created lazily when needed) - self._field_container = W.VBox(layout=W.Layout(display="none")) - self._field_controls: Dict[str, W.Widget] = {} - self._current_result: Any = None # last result object (possibly transformed/coerced) - - # Result inspector UI (always visible after a run) - self._result_info = W.HTML(value="") - self._result_key_dd = W.Dropdown(description="Result key", options=(), layout=W.Layout(width="auto")) - self._result_bar = W.HBox([self._result_info, self._result_key_dd], layout=W.Layout(display="none", gap="12px")) - self._result_key_dd.observe(lambda _ch: self._on_result_key_changed(), names="value") - - # Track the last figure we drew so we can close it - self._last_fig = None # type: ignore - - super().__init__(title=title or "Solution") - - if process is not None: - self.set_process(process) - if config is not None: - self.bind_to_config(config) - - # ----- public API ----- - def set_process(self, process: Any) -> None: - self._process = process - self._proc_label.value = ( - f"Process: {getattr(process, 'name', process.__class__.__name__)}" - ) - self.set_status("Ready to run.") - - def bind_to_config(self, config_widget: "ConfigurationWidget") -> None: - # Late import to avoid circular typing issues - from .config import ConfigurationWidget # noqa: WPS433 - - if not isinstance(config_widget, ConfigurationWidget): - raise TypeError("config_widget must be a ConfigurationWidget") - - config_widget.add_listener(self.set_process) - if config_widget.process is not None: - self.set_process(config_widget.process) - - # ----- UI ----- - def _build_body(self) -> W.Widget: - controls = W.HBox([self._btn_run, self._btn_clear, self._show_tb]) - return W.VBox( - [ - W.HBox([self._proc_label, controls]), - self._result_bar, - self._field_container, - self._out, - ] - ) - - def _wire_events(self) -> None: - self._btn_run.on_click(self._on_run) - self._btn_clear.on_click(self._on_clear) - - # ----- events ----- - def _on_run(self, _btn: W.Button) -> None: - self._out.clear_output() - self._hide_field_ui() - self._hide_result_bar() - if self._process is None: - self.set_error("No process to run. Build one first.") - return - - import io - import traceback as _tb - - capture = bool(self._show_tb.value) - buf_out, buf_err = (io.StringIO(), io.StringIO()) if capture else (None, None) - - try: - if capture: - with redirect_stdout(buf_out), redirect_stderr(buf_err): - raw = self._runner(self._process, **self._runner_kwargs) - else: - raw = self._runner(self._process, **self._runner_kwargs) - - # Optional transform, then coercion to Field-ish structures - result = self._result_transform(raw) if callable(self._result_transform) else raw - result = _coerce_to_fieldish(result) - self._current_result = result - - # Show result meta / selector if needed - self._show_result_bar(result) - - with self._out: - if capture: - if buf_out and buf_out.getvalue().strip(): - print("=== stdout ===") - print(buf_out.getvalue(), end="") - if buf_err and buf_err.getvalue().strip(): - print("=== stderr ===") - print(buf_err.getvalue(), end="") - print("Simulation finished.") - - # If it's Field-like, expose Field controls; if mapping try to plot one entry; else fallback - if self._render_field_ui_if_applicable(result): - self.set_status("Field detected — use controls to slice/plot.") - self._plot_field_from_controls() - elif isinstance(result, Mapping): - self._attempt_plot_from_mapping(result) - else: - with self._out: - print(repr(result)) - _try_plot_result_generic(result, self._out) - self.set_status("Simulation complete.") - - except Exception as exc: # noqa: BLE001 - with self._out: - if capture: - tb = _tb.TracebackException.from_exception(exc, capture_locals=True) - if buf_out and buf_out.getvalue().strip(): - print("=== stdout (captured) ===") - print(buf_out.getvalue(), end="") - if buf_err and buf_err.getvalue().strip(): - print("=== stderr (captured) ===") - print(buf_err.getvalue(), end="") - print("=== full traceback (with chained causes) ===") - print("".join(tb.format(chain=True)), end="") - else: - print(f"{exc.__class__.__name__}: {exc}") - self.set_error(f"Simulation error: {exc}") - - def _on_clear(self, _btn: W.Button) -> None: - self._out.clear_output() - self._hide_field_ui() - self._hide_result_bar() - self.set_status("Cleared.") - - # ----- Result bar ----- - def _hide_result_bar(self) -> None: - self._result_bar.layout.display = "none" - self._result_info.value = "" - self._result_key_dd.options = () - - def _show_result_bar(self, result: Any) -> None: - typ = type(result).__name__ - if isinstance(result, Mapping): - keys = list(result.keys()) - self._result_info.value = f"Result: Mapping[{len(keys)}], type={typ}" - self._result_key_dd.options = [(str(k), k) for k in keys] - self._result_key_dd.value = keys[0] if keys else None - self._result_bar.layout.display = "flex" - else: - self._result_info.value = f"Result: {typ}" - self._result_key_dd.options = () - self._result_bar.layout.display = "flex" - - def _on_result_key_changed(self) -> None: - if not isinstance(self._current_result, Mapping) or not self._current_result: - return - key = self._result_key_dd.value - val = self._current_result.get(key) - self._out.clear_output() - self._hide_field_ui() - if self._render_field_ui_if_applicable(val): - self._plot_field_from_controls() - self.set_status(f"Viewing: {key}") - else: - with self._out: - print(repr(val)) - _try_plot_result_generic(val, self._out) - self.set_status(f"Viewing: {key}") - - def _attempt_plot_from_mapping(self, mapping: Mapping[str, Any]) -> None: - # Prefer the first Field in the mapping, if any - for k, v in mapping.items(): - if _is_field(v): - self._result_key_dd.value = k - self._on_result_key_changed() # route through the normal path - return - - # Fallback: generic repr/plot of the first entry - first_key = next(iter(mapping.keys())) if mapping else None - val = mapping.get(first_key) if first_key is not None else None - with self._out: - print(repr(mapping)) - if first_key is not None: - print("--- First entry ---") - print(repr(val)) - _try_plot_result_generic(val, self._out) - self.set_status("No Field found in mapping.") - - # ----- Field-aware UI ----- - def _hide_field_ui(self) -> None: - self._field_container.layout.display = "none" - self._field_container.children = () - self._field_controls.clear() - - def _render_field_ui_if_applicable(self, result: Any) -> bool: - # Determine the single Field to render controls for - if _is_field(result): - field = result - elif isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): - # Use currently selected key from the result bar - key = self._result_key_dd.value - if key is None or key not in result: - key = next(iter(result.keys())) - field = result[key] - else: - return False - - rows: list[W.Widget] = [] - - # Components UI (if any) - components: Sequence[str] | None = getattr(field, "components", None) - if components is not None and len(components) > 0: - comp_sel = W.SelectMultiple( - description="Components", - options=list(components), - value=tuple(components), - layout=W.Layout(width="420px", height="120px"), - ) - self._field_controls["components"] = comp_sel - comp_sel.observe(lambda _ch: self._plot_field_from_controls(), names="value") - rows.append(comp_sel) - - # Slicing controls - coords = _coords_with_units(field) - slicer_boxes: list[W.Widget] = [] - for name, (grid, unit) in coords.items(): - ulabel = f"[{unit}]" if unit else "" - cb_fix = W.Checkbox(description=f"Fix {name} {ulabel}".strip(), value=False) - val = W.FloatText( - description=f"{name}=", - value=float(grid[0]) if hasattr(grid, "__len__") and len(grid) > 0 else 0.0, - layout=W.Layout(width="220px"), - ) - method = W.Dropdown( - description="method", - options=["exact", "nearest"], - value="exact", - layout=W.Layout(width="150px"), - ) - hb = W.HBox([cb_fix, val, method]) - self._field_controls[f"fix_{name}"] = cb_fix - self._field_controls[f"val_{name}"] = val - self._field_controls[f"method_{name}"] = method - for w in (cb_fix, val, method): - w.observe(lambda _ch: self._plot_field_from_controls(), names="value") - slicer_boxes.append(hb) - if slicer_boxes: - rows.append(W.VBox([W.HTML("Slicing"), *slicer_boxes])) - - coord_names = list(coords.keys()) - - # Interpolation controls - interp_enable = W.Checkbox(description="Interpolate", value=False) - interp_axis = W.Dropdown( - description="along", - options=coord_names, - value=coord_names[0] if coord_names else None, - ) - interp_points = W.IntText(description="points", value=100) - hb_interp = W.HBox([interp_enable, interp_axis, interp_points]) - self._field_controls["interp_enable"] = interp_enable - self._field_controls["interp_axis"] = interp_axis - self._field_controls["interp_points"] = interp_points - for w in (interp_enable, interp_axis, interp_points): - w.observe(lambda _ch: self._plot_field_from_controls(), names="value") - rows.append(W.VBox([W.HTML("Interpolation"), hb_interp])) - - # Calculus controls - calc_mode = W.Dropdown( - description="Operation", - options=["None", "Differentiate", "Integrate"], - value="None", - ) - calc_axis = W.Dropdown( - description="w.r.t.", - options=coord_names, - value=coord_names[0] if coord_names else None, - ) - hb_calc = W.HBox([calc_mode, calc_axis]) - self._field_controls["calc_mode"] = calc_mode - self._field_controls["calc_axis"] = calc_axis - for w in (calc_mode, calc_axis): - w.observe(lambda _ch: self._plot_field_from_controls(), names="value") - rows.append(W.VBox([W.HTML("Analysis"), hb_calc])) - - # Plot button - btn_plot = W.Button(description="Plot", icon="line-chart") - btn_plot.on_click(lambda _b: self._plot_field_from_controls()) - rows.append(btn_plot) - - self._field_container.children = tuple(rows) - self._field_container.layout.display = "block" - return True - - def _gather_slice_kwargs(self) -> Dict[str, Tuple[float, str]]: - kwargs: Dict[str, Tuple[float, str]] = {} - for key, widget in self._field_controls.items(): - if key.startswith("fix_") and isinstance(widget, W.Checkbox) and widget.value: - coord = key[len("fix_") :] - valw = self._field_controls.get(f"val_{coord}") - methw = self._field_controls.get(f"method_{coord}") - if isinstance(valw, W.FloatText) and isinstance(methw, W.Dropdown): - kwargs[coord] = (float(valw.value), str(methw.value)) - return kwargs - - def _get_active_field(self) -> Any: - # If we have a mapping, prefer the currently selected Result key - if isinstance(self._current_result, Mapping): - key = self._result_key_dd.value - if key is not None and key in self._current_result: - return self._current_result[key] - # Otherwise, the result itself is a Field (or something else) - return self._current_result - - def _apply_interpolation(self, fld: Any) -> Any: - enable = self._field_controls.get("interp_enable") - axis = self._field_controls.get("interp_axis") - points = self._field_controls.get("interp_points") - if isinstance(enable, W.Checkbox) and enable.value and isinstance(axis, W.Dropdown) and isinstance(points, W.IntText): - coords = _coords_with_units(fld) - if axis.value in coords: - grid, _unit = coords[axis.value] - if len(grid) >= 2 and points.value > 1: - import numpy as np # local import - new_grid = np.linspace(float(grid[0]), float(grid[-1]), int(points.value)) - try: - return fld.interp(**{axis.value: new_grid}) - except Exception: - return fld - return fld - - def _apply_calculus(self, fld: Any) -> Any: - mode = self._field_controls.get("calc_mode") - axis = self._field_controls.get("calc_axis") - if isinstance(mode, W.Dropdown) and isinstance(axis, W.Dropdown): - try: - if mode.value == "Differentiate" and axis.value: - return fld.differentiate(axis.value) - if mode.value == "Integrate" and axis.value: - return fld.integrate(axis.value) - except Exception: - return fld - return fld - - def _plot_field_from_controls(self) -> None: - import matplotlib.pyplot as plt # local import - - # Clear UI output (avoid accumulating figures) - self._out.clear_output(wait=True) - - # Close previous figure if we created one - if getattr(self, "_last_fig", None) is not None: - try: - plt.close(self._last_fig) - except Exception: - pass - self._last_fig = None - - fld = self._get_active_field() - if not _is_field(fld): - with self._out: - print("No Field to plot.") - return - - fld2 = self._apply_interpolation(fld) - fld3 = self._apply_calculus(fld2) - - # Slicing - slice_kwargs = self._gather_slice_kwargs() - if slice_kwargs: - try: - for coord, (value, method) in slice_kwargs.items(): - if method == "nearest": - fld3 = fld3.sel(**{coord: value}, method="nearest") - else: - fld3 = fld3.sel(**{coord: value}) - except Exception: - pass - - # Component selection (optional) - comp_sel = self._field_controls.get("components") - if isinstance(comp_sel, W.SelectMultiple) and comp_sel.value: - try: - if len(comp_sel.value) == 1: - fld3 = fld3[comp_sel.value[0]] - except Exception: - pass - - # Try plotting; capture the created figure so we can close it next time - try: - with self._out: - ax_or_axes = fld3.plot({}) - # Try to detect the figure object - try: - fig = None - if hasattr(ax_or_axes, "get_figure"): - fig = ax_or_axes.get_figure() - else: - if hasattr(ax_or_axes, "ravel"): - flat = ax_or_axes.ravel() - if flat and hasattr(flat[0], "get_figure"): - fig = flat[0].get_figure() - if fig is None: - fig = plt.gcf() - self._last_fig = fig - except Exception: - self._last_fig = None - except Exception: - try: - with self._out: - # Fallback: fix all dims at first entry - coords = _coords_with_units(fld3) - fixed = { - dim: grid[0] - for dim, (grid, _unit) in coords.items() - if hasattr(grid, "__len__") and len(grid) > 0 - } - ax_or_axes = fld3.plot(fixed) - try: - fig = None - if hasattr(ax_or_axes, "get_figure"): - fig = ax_or_axes.get_figure() - else: - if hasattr(ax_or_axes, "ravel"): - flat = ax_or_axes.ravel() - if flat and hasattr(flat[0], "get_figure"): - fig = flat[0].get_figure() - if fig is None: - fig = plt.gcf() - self._last_fig = fig - except Exception: - self._last_fig = None - except Exception: - _try_plot_result_generic(fld3, self._out) - self._last_fig = None - - self.set_status("Plotted.") From 6de7fc527a556576eab44ab029fe8a172e438d04 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:29:26 +0200 Subject: [PATCH 010/158] Transfer ipywidgets to anywidgets --- cadetgui/widgets/elements/__init__.py | 22 +++++ cadetgui/widgets/elements/_shared.css | 66 +++++++++++++++ cadetgui/widgets/elements/base.py | 52 ++++++++++++ cadetgui/widgets/elements/bool_field.js | 36 ++++++++ cadetgui/widgets/elements/bool_field.py | 33 ++++++++ cadetgui/widgets/elements/choice_field.js | 56 +++++++++++++ cadetgui/widgets/elements/choice_field.py | 76 +++++++++++++++++ cadetgui/widgets/elements/float_field.js | 59 +++++++++++++ cadetgui/widgets/elements/float_field.py | 37 +++++++++ cadetgui/widgets/elements/float_list_field.js | 83 +++++++++++++++++++ cadetgui/widgets/elements/float_list_field.py | 34 ++++++++ cadetgui/widgets/elements/text_field.js | 38 +++++++++ cadetgui/widgets/elements/text_field.py | 33 ++++++++ 13 files changed, 625 insertions(+) create mode 100644 cadetgui/widgets/elements/__init__.py create mode 100644 cadetgui/widgets/elements/_shared.css create mode 100644 cadetgui/widgets/elements/base.py create mode 100644 cadetgui/widgets/elements/bool_field.js create mode 100644 cadetgui/widgets/elements/bool_field.py create mode 100644 cadetgui/widgets/elements/choice_field.js create mode 100644 cadetgui/widgets/elements/choice_field.py create mode 100644 cadetgui/widgets/elements/float_field.js create mode 100644 cadetgui/widgets/elements/float_field.py create mode 100644 cadetgui/widgets/elements/float_list_field.js create mode 100644 cadetgui/widgets/elements/float_list_field.py create mode 100644 cadetgui/widgets/elements/text_field.js create mode 100644 cadetgui/widgets/elements/text_field.py diff --git a/cadetgui/widgets/elements/__init__.py b/cadetgui/widgets/elements/__init__.py new file mode 100644 index 0000000..8fafded --- /dev/null +++ b/cadetgui/widgets/elements/__init__.py @@ -0,0 +1,22 @@ +# ========================================= +# File: cadetgui/widgets/elements/__init__.py +# ========================================= +"""Atomic anywidget input controls — the target implementation. + +See ai-docs/ARCHITECTURE.md for the element contract these follow. +""" +from .base import Element +from .bool_field import BoolField +from .choice_field import ChoiceField +from .float_field import FloatField +from .float_list_field import FloatListField +from .text_field import TextField + +__all__ = [ + "Element", + "FloatField", + "TextField", + "BoolField", + "FloatListField", + "ChoiceField", +] diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css new file mode 100644 index 0000000..59533f0 --- /dev/null +++ b/cadetgui/widgets/elements/_shared.css @@ -0,0 +1,66 @@ +/* Shared styling for atomic elements. Class names are shared across element + JS files (float_field.js, etc.) so this one stylesheet covers all of them. */ + +.cadetgui-field { + display: flex; + align-items: center; + gap: 0.5rem; + font-family: system-ui, sans-serif; + font-size: 13px; +} + +.cadetgui-field-label { + min-width: 140px; + flex: 0 0 auto; +} + +.cadetgui-field-input { + width: 140px; +} + +.cadetgui-field[aria-invalid="true"] .cadetgui-field-input, +.cadetgui-field-input[aria-invalid="true"] { + border-color: #b00020; +} + +.cadetgui-field-error { + color: #b00020; + font-size: 12px; +} + +.cadetgui-field-error[hidden] { + display: none; +} + +.cadetgui-field-bool { + gap: 0.375rem; +} + +.cadetgui-field-bool .cadetgui-field-label { + min-width: 0; +} + +.cadetgui-field-list { + flex-direction: column; + align-items: flex-start; +} + +.cadetgui-field-list-body { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.cadetgui-field-list-row { + display: flex; + align-items: center; + gap: 0.25rem; +} + +.cadetgui-field-list-row input { + width: 140px; +} + +.cadetgui-field-list-add { + width: fit-content; +} diff --git a/cadetgui/widgets/elements/base.py b/cadetgui/widgets/elements/base.py new file mode 100644 index 0000000..9c39cd6 --- /dev/null +++ b/cadetgui/widgets/elements/base.py @@ -0,0 +1,52 @@ +# ========================================= +# File: cadetgui/widgets/elements/base.py +# ========================================= +from __future__ import annotations + +from typing import Any, Callable, Optional + +import anywidget +import traitlets as T + +__all__ = ["Element"] + +Validator = Callable[[Any], Optional[str]] + + +class Element(anywidget.AnyWidget): + """Base for atomic input widgets: value + label + validation, synced to JS. + + Implements the element contract from ai-docs/ARCHITECTURE.md: state via + `error`/`is_valid`, events via traitlets' own `.observe()`. Subclasses define + their own `value` — either a synced trait directly (`FloatField`, `TextField`, + ...) for JSON-safe types, or a plain Python property backed by a different + synced trait (`ChoiceField.selected_index`) when the true value isn't + JSON-serializable (e.g. an arbitrary Python/CADET-Process object) and must + stay server-side. Set `_value_trait_name` to the synced trait that should + trigger re-validation in the latter case. + """ + + label = T.Unicode("").tag(sync=True) + error = T.Unicode("").tag(sync=True) + + _value_trait_name = "value" + + def __init__(self, *, validate: Optional[Validator] = None, **kwargs: Any) -> None: + self._validate_fn = validate + super().__init__(**kwargs) + self.observe(self._run_validate, names=self._value_trait_name) + self._run_validate() + + def _run_validate(self, change: Optional[dict] = None) -> None: + if self._validate_fn is None: + return + try: + message = self._validate_fn(self.value) + except ValueError as exc: + message = str(exc) + self.error = message or "" + + @property + def is_valid(self) -> bool: + """Whether the current value passed validation.""" + return not self.error diff --git a/cadetgui/widgets/elements/bool_field.js b/cadetgui/widgets/elements/bool_field.js new file mode 100644 index 0000000..b69d5b4 --- /dev/null +++ b/cadetgui/widgets/elements/bool_field.js @@ -0,0 +1,36 @@ +function render({ model, el }) { + const wrap = document.createElement("label"); + wrap.className = "cadetgui-field cadetgui-field-bool"; + + const input = document.createElement("input"); + input.type = "checkbox"; + input.checked = Boolean(model.get("value")); + input.addEventListener("change", () => { + model.set("value", input.checked); + model.save_changes(); + }); + wrap.appendChild(input); + + const labelEl = document.createElement("span"); + labelEl.className = "cadetgui-field-label"; + labelEl.textContent = model.get("label"); + wrap.appendChild(labelEl); + + const err = document.createElement("span"); + err.className = "cadetgui-field-error"; + const syncError = () => { + const msg = model.get("error"); + err.textContent = msg; + err.hidden = !msg; + }; + wrap.appendChild(err); + syncError(); + + model.on("change:value", () => { input.checked = Boolean(model.get("value")); }); + model.on("change:error", syncError); + model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + + el.appendChild(wrap); +} + +export default { render }; diff --git a/cadetgui/widgets/elements/bool_field.py b/cadetgui/widgets/elements/bool_field.py new file mode 100644 index 0000000..461e270 --- /dev/null +++ b/cadetgui/widgets/elements/bool_field.py @@ -0,0 +1,33 @@ +# ========================================= +# File: cadetgui/widgets/elements/bool_field.py +# ========================================= +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +import traitlets as T + +from .base import Element, Validator + +__all__ = ["BoolField"] + +_DIR = Path(__file__).parent + + +class BoolField(Element): + """Single labeled checkbox.""" + + value = T.Bool(False).tag(sync=True) + + _esm = _DIR / "bool_field.js" + _css = _DIR / "_shared.css" + + def __init__( + self, + *, + label: str = "", + value: bool = False, + validate: Optional[Validator] = None, + ) -> None: + super().__init__(label=label, value=value, validate=validate) diff --git a/cadetgui/widgets/elements/choice_field.js b/cadetgui/widgets/elements/choice_field.js new file mode 100644 index 0000000..5c34eb5 --- /dev/null +++ b/cadetgui/widgets/elements/choice_field.js @@ -0,0 +1,56 @@ +function render({ model, el }) { + const wrap = document.createElement("label"); + wrap.className = "cadetgui-field"; + + const labelEl = document.createElement("span"); + labelEl.className = "cadetgui-field-label"; + labelEl.textContent = model.get("label"); + wrap.appendChild(labelEl); + + const select = document.createElement("select"); + select.className = "cadetgui-field-input"; + + function syncSelection() { + const idx = model.get("selected_index"); + select.value = idx === null || idx === undefined ? "" : String(idx); + } + + function syncOptions() { + const labels = model.get("option_labels") || []; + select.innerHTML = ""; + labels.forEach((text, i) => { + const opt = document.createElement("option"); + opt.value = String(i); + opt.textContent = text; + select.appendChild(opt); + }); + syncSelection(); + } + + select.addEventListener("change", () => { + model.set("selected_index", select.value === "" ? null : parseInt(select.value, 10)); + model.save_changes(); + }); + wrap.appendChild(select); + + const err = document.createElement("span"); + err.className = "cadetgui-field-error"; + const syncError = () => { + const msg = model.get("error"); + err.textContent = msg; + err.hidden = !msg; + }; + wrap.appendChild(err); + + syncOptions(); + syncError(); + + model.on("change:option_labels", syncOptions); + model.on("change:selected_index", syncSelection); + model.on("change:error", syncError); + model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + + el.appendChild(wrap); +} + +export default { render }; diff --git a/cadetgui/widgets/elements/choice_field.py b/cadetgui/widgets/elements/choice_field.py new file mode 100644 index 0000000..4b4dbcf --- /dev/null +++ b/cadetgui/widgets/elements/choice_field.py @@ -0,0 +1,76 @@ +# ========================================= +# File: cadetgui/widgets/elements/choice_field.py +# ========================================= +from __future__ import annotations + +from pathlib import Path +from typing import Any, List, Optional, Sequence, Tuple + +import traitlets as T + +from .base import Element, Validator + +__all__ = ["ChoiceField"] + +_DIR = Path(__file__).parent + + +class ChoiceField(Element): + """Dropdown selecting one of several (label, value) options. + + `value` may be any Python object, not just JSON-serializable ones — only + the option labels and the selected index cross the anywidget sync boundary; + the label -> value mapping stays server-side (see ai-docs/ARCHITECTURE.md's + Element contract for why). + """ + + option_labels = T.List(T.Unicode()).tag(sync=True) + selected_index = T.Int(allow_none=True, default_value=None).tag(sync=True) + + _value_trait_name = "selected_index" + + _esm = _DIR / "choice_field.js" + _css = _DIR / "_shared.css" + + def __init__( + self, + *, + label: str = "", + options: Sequence[Tuple[str, Any]] = (), + value: Any = None, + validate: Optional[Validator] = None, + ) -> None: + self._options: List[Tuple[str, Any]] = list(options) + index = self._index_of(value) if value is not None else (0 if self._options else None) + super().__init__( + label=label, + option_labels=[opt_label for opt_label, _ in self._options], + selected_index=index, + validate=validate, + ) + + def _index_of(self, value: Any) -> Optional[int]: + for i, (_, v) in enumerate(self._options): + if v == value: + return i + return None + + @property + def value(self) -> Any: + """The currently selected option's value (None if nothing is selected).""" + if self.selected_index is None or not (0 <= self.selected_index < len(self._options)): + return None + return self._options[self.selected_index][1] + + @value.setter + def value(self, new_value: Any) -> None: + self.selected_index = self._index_of(new_value) + + def set_options(self, options: Sequence[Tuple[str, Any]], *, keep_value: bool = True) -> None: + """Replace the options, optionally keeping the current value selected.""" + current = self.value if keep_value else None + self._options = list(options) + self.option_labels = [opt_label for opt_label, _ in self._options] + self.selected_index = self._index_of(current) if current is not None else ( + 0 if self._options else None + ) diff --git a/cadetgui/widgets/elements/float_field.js b/cadetgui/widgets/elements/float_field.js new file mode 100644 index 0000000..9fddef8 --- /dev/null +++ b/cadetgui/widgets/elements/float_field.js @@ -0,0 +1,59 @@ +function render({ model, el }) { + const wrap = document.createElement("label"); + wrap.className = "cadetgui-field"; + + const labelEl = document.createElement("span"); + labelEl.className = "cadetgui-field-label"; + labelEl.textContent = model.get("label"); + wrap.appendChild(labelEl); + + const input = document.createElement("input"); + input.type = "number"; + input.step = "any"; + input.className = "cadetgui-field-input"; + + const syncBounds = () => { + const min = model.get("min"); + const max = model.get("max"); + if (min === null || min === undefined) input.removeAttribute("min"); + else input.min = String(min); + if (max === null || max === undefined) input.removeAttribute("max"); + else input.max = String(max); + }; + const syncValue = () => { + input.value = model.get("value"); + }; + const syncError = () => { + const msg = model.get("error"); + err.textContent = msg; + err.hidden = !msg; + input.setAttribute("aria-invalid", msg ? "true" : "false"); + }; + + syncBounds(); + syncValue(); + + input.addEventListener("change", () => { + const parsed = parseFloat(input.value); + if (!Number.isNaN(parsed)) { + model.set("value", parsed); + model.save_changes(); + } + }); + wrap.appendChild(input); + + const err = document.createElement("span"); + err.className = "cadetgui-field-error"; + wrap.appendChild(err); + syncError(); + + model.on("change:value", syncValue); + model.on("change:min", syncBounds); + model.on("change:max", syncBounds); + model.on("change:error", syncError); + model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + + el.appendChild(wrap); +} + +export default { render }; diff --git a/cadetgui/widgets/elements/float_field.py b/cadetgui/widgets/elements/float_field.py new file mode 100644 index 0000000..0ce7ded --- /dev/null +++ b/cadetgui/widgets/elements/float_field.py @@ -0,0 +1,37 @@ +# ========================================= +# File: cadetgui/widgets/elements/float_field.py +# ========================================= +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +import traitlets as T + +from .base import Element, Validator + +__all__ = ["FloatField"] + +_DIR = Path(__file__).parent + + +class FloatField(Element): + """Single labeled float input with optional min/max bounds.""" + + value = T.Float(0.0).tag(sync=True) + min = T.Float(allow_none=True, default_value=None).tag(sync=True) + max = T.Float(allow_none=True, default_value=None).tag(sync=True) + + _esm = _DIR / "float_field.js" + _css = _DIR / "_shared.css" + + def __init__( + self, + *, + label: str = "", + value: float = 0.0, + min: Optional[float] = None, + max: Optional[float] = None, + validate: Optional[Validator] = None, + ) -> None: + super().__init__(label=label, value=value, min=min, max=max, validate=validate) diff --git a/cadetgui/widgets/elements/float_list_field.js b/cadetgui/widgets/elements/float_list_field.js new file mode 100644 index 0000000..2748f73 --- /dev/null +++ b/cadetgui/widgets/elements/float_list_field.js @@ -0,0 +1,83 @@ +function render({ model, el }) { + const wrap = document.createElement("div"); + wrap.className = "cadetgui-field cadetgui-field-list"; + + const labelEl = document.createElement("span"); + labelEl.className = "cadetgui-field-label"; + labelEl.textContent = model.get("label"); + wrap.appendChild(labelEl); + + const body = document.createElement("div"); + body.className = "cadetgui-field-list-body"; + const rows = document.createElement("div"); + body.appendChild(rows); + + function currentValues() { + return Array.from(rows.querySelectorAll("input")).map((i) => parseFloat(i.value) || 0); + } + + function commit() { + model.set("value", currentValues()); + model.save_changes(); + } + + function addRow(value) { + const row = document.createElement("div"); + row.className = "cadetgui-field-list-row"; + + const input = document.createElement("input"); + input.type = "number"; + input.step = "any"; + input.value = value; + input.addEventListener("change", commit); + row.appendChild(input); + + const rm = document.createElement("button"); + rm.type = "button"; + rm.textContent = "−"; + rm.addEventListener("click", () => { + row.remove(); + commit(); + }); + row.appendChild(rm); + + rows.appendChild(row); + } + + function syncFromModel() { + rows.innerHTML = ""; + const values = model.get("value") || []; + (values.length ? values : [0]).forEach((v) => addRow(v)); + } + + const addBtn = document.createElement("button"); + addBtn.type = "button"; + addBtn.className = "cadetgui-field-list-add"; + addBtn.textContent = "+ add value"; + addBtn.addEventListener("click", () => { + addRow(0); + commit(); + }); + body.appendChild(addBtn); + wrap.appendChild(body); + + const err = document.createElement("span"); + err.className = "cadetgui-field-error"; + const syncError = () => { + const msg = model.get("error"); + err.textContent = msg; + err.hidden = !msg; + }; + wrap.appendChild(err); + + syncFromModel(); + syncError(); + + model.on("change:value", syncFromModel); + model.on("change:error", syncError); + model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + + el.appendChild(wrap); +} + +export default { render }; diff --git a/cadetgui/widgets/elements/float_list_field.py b/cadetgui/widgets/elements/float_list_field.py new file mode 100644 index 0000000..4c6ddb2 --- /dev/null +++ b/cadetgui/widgets/elements/float_list_field.py @@ -0,0 +1,34 @@ +# ========================================= +# File: cadetgui/widgets/elements/float_list_field.py +# ========================================= +from __future__ import annotations + +from pathlib import Path +from typing import List, Optional, Sequence + +import traitlets as T + +from .base import Element, Validator + +__all__ = ["FloatListField"] + +_DIR = Path(__file__).parent + + +class FloatListField(Element): + """Editable list of floats with add/remove rows.""" + + value = T.List(T.Float()).tag(sync=True) + + _esm = _DIR / "float_list_field.js" + _css = _DIR / "_shared.css" + + def __init__( + self, + *, + label: str = "", + value: Optional[Sequence[float]] = None, + validate: Optional[Validator] = None, + ) -> None: + values: List[float] = [float(v) for v in value] if value else [0.0] + super().__init__(label=label, value=values, validate=validate) diff --git a/cadetgui/widgets/elements/text_field.js b/cadetgui/widgets/elements/text_field.js new file mode 100644 index 0000000..fd95899 --- /dev/null +++ b/cadetgui/widgets/elements/text_field.js @@ -0,0 +1,38 @@ +function render({ model, el }) { + const wrap = document.createElement("label"); + wrap.className = "cadetgui-field"; + + const labelEl = document.createElement("span"); + labelEl.className = "cadetgui-field-label"; + labelEl.textContent = model.get("label"); + wrap.appendChild(labelEl); + + const input = document.createElement("input"); + input.type = "text"; + input.className = "cadetgui-field-input"; + input.value = model.get("value"); + input.addEventListener("change", () => { + model.set("value", input.value); + model.save_changes(); + }); + wrap.appendChild(input); + + const err = document.createElement("span"); + err.className = "cadetgui-field-error"; + const syncError = () => { + const msg = model.get("error"); + err.textContent = msg; + err.hidden = !msg; + input.setAttribute("aria-invalid", msg ? "true" : "false"); + }; + wrap.appendChild(err); + syncError(); + + model.on("change:value", () => { input.value = model.get("value"); }); + model.on("change:error", syncError); + model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + + el.appendChild(wrap); +} + +export default { render }; diff --git a/cadetgui/widgets/elements/text_field.py b/cadetgui/widgets/elements/text_field.py new file mode 100644 index 0000000..2211a17 --- /dev/null +++ b/cadetgui/widgets/elements/text_field.py @@ -0,0 +1,33 @@ +# ========================================= +# File: cadetgui/widgets/elements/text_field.py +# ========================================= +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +import traitlets as T + +from .base import Element, Validator + +__all__ = ["TextField"] + +_DIR = Path(__file__).parent + + +class TextField(Element): + """Single labeled text input.""" + + value = T.Unicode("").tag(sync=True) + + _esm = _DIR / "text_field.js" + _css = _DIR / "_shared.css" + + def __init__( + self, + *, + label: str = "", + value: str = "", + validate: Optional[Validator] = None, + ) -> None: + super().__init__(label=label, value=value, validate=validate) From a37653daff4395bb0086c5fa725bd54c218e9964 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:29:33 +0200 Subject: [PATCH 011/158] Update tests --- tests/display_widgets.ipynb | 258 +++++++++++++----------------------- tests/test_elements.py | 123 +++++++++++++++++ 2 files changed, 217 insertions(+), 164 deletions(-) create mode 100644 tests/test_elements.py diff --git a/tests/display_widgets.ipynb b/tests/display_widgets.ipynb index 33eaa93..58001f2 100644 --- a/tests/display_widgets.ipynb +++ b/tests/display_widgets.ipynb @@ -2,22 +2,32 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "id": "2d5d3b56", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "from cadetgui.widgets import ConfigurationWidget, SolutionWidget\n", "from CADETProcess.simulator import Cadet\n", "\n", "\n", "%load_ext autoreload\n", - "%autoreload 2" + "%autoreload 2\n", + "%matplotlib widget" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "id": "75d29533", "metadata": {}, "outputs": [], @@ -129,14 +139,14 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "a9c1028e", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "601b228532044f659b1af38ac1ed86bf", + "model_id": "1d6baee5a108410486c19789cb58b274", "version_major": 2, "version_minor": 0 }, @@ -150,7 +160,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "3ccf579e3b6348b489b07efed2841ca0", + "model_id": "601dd86ed3be477c8c74fa413c2bc566", "version_major": 2, "version_minor": 0 }, @@ -163,9 +173,24 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2IAAAIuCAYAAADdQrsxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQaZJREFUeJzt3XtcVVX+//H3QQQVBDVNByHF+zWjsDR1pEzTUaM0K79TQeNoNqMz2tc0M0Mr71PW+C0dRxMdJ9SsNLXMKU3zLmmT5iU1yftdAS+AwP794YP9OwQcOAdcR+T1fDzO47Fhr73WOp7PQ3iz9lnHYVmWJQAAAACAMT7engAAAAAAlDUEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADPP19gRKu+zsbB0/flyVK1eWw+Hw9nQAAAAAeIllWUpNTVVISIh8fFyveRHEiun48eMKCwvz9jQAAAAA3CSOHDmi0NBQl20IYsVUuXJlSdf/sYOCgrw8GwAAAADekpKSorCwMDsjuEIQK6ac2xGDgoIIYgAAAACK9JYlNusAAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgmEdB7PTp01q+fLlee+01devWTdWrV5fD4ZDD4VBsbKzb/a1cuVK9evVSaGio/P39FRoaql69emnlypWeTK/I3n//fXveDodD8fHxN3Q8AAAAAJAkX08uqlmzZokMblmWBg4cqJkzZ+b6/rFjx/Tpp5/q008/1YABAzRjxgw5HI4SGTPH8ePHNXLkyBLtEwAAAACKoti3JoaFhalLly4eXfvqq6/aISwiIkIJCQnaunWrEhISFBERIUmaOXOmRo8eXdxp5jFo0CClpKTo9ttvL/G+AQAAAMAVj4LYa6+9pmXLlunkyZM6fPiw/vGPf7jdx4EDBzR58mRJUmRkpDZs2KCnnnpKrVu31lNPPaX169crMjJSkjRp0iQdPHjQk6nma+nSpfr0009Vo0YNjRgxosT6BQAAAICi8CiIjR07Vj169CjWLYpTp05VZmamJGnatGmqWLFirvOVKlXStGnTJEmZmZl65513PB7LWWpqqgYNGiRJ+tvf/qZq1aqVSL8AAAAAUFRe2TXRsiwtXbpUktSkSRO1adMm33Zt2rRR48aNJUlLliyRZVnFHnvkyJE6evSooqKi9Oyzzxa7PwAAAABwl1eC2KFDh3Ts2DFJUseOHV22zTl/9OhRJSUlFWvcLVu2aPr06fLz89P06dOL1RcAAAAAeMorQWzPnj32cZMmTVy2dT7vfJ27rl27pv79+ys7O1svvfRSoeMCAAAAwI3ilSB25MgR+zg0NNRl27CwsHyvc9eUKVO0c+dO1atXT6NGjfK4HwAAAAAoLo8+R6y4UlNT7ePAwECXbQMCAuzjS5cueTTegQMH9MYbb0iS3nvvvTwbg7gjPT1d6enp9tcpKSke9wUAAACgbPLKilhaWpp97Ofn57Ktv7+/fXz16lWPxhs4cKDS0tLUp08fde3a1aM+ckyYMEHBwcH2w3nFDgAAAACKwitBrEKFCvZxRkaGy7bOq0+erGTFx8fr66+/VlBQUIlsgT9y5EglJyfbj+LcLgkAAACgbPLKrYmVK1e2jwu73fDy5cv2cWG3Mf7amTNnNGzYMEnSG2+8oZCQELeuz4+/v3+uVToAAAAAcJdXgpjzBh1Hjx512dZ5xcnd2wBnzZqlc+fOqUqVKrrtttu0YMGCPG22bNmS6zhnte7BBx/U7bff7tZ4AAAAAFAUXglizZo1s4/37t3rsq3z+aZNm7o1Ts5tjRcvXtTTTz9daPsZM2ZoxowZkqQ1a9YQxAAAAADcEF55j1h4eLh9m+DatWtdtl23bp0kqXbt2qpbt+6NnhoAAAAA3HBeCWIOh0PR0dGSrq94bd68Od92mzdvtlfEoqOj5XA43BpnzJgxsizL5WPOnDl2+zlz5tjfj4qK8uzJAQAAAEAhvBLEJGnIkCHy9b1+Z+TgwYPzbE1/9epVDR48WJLk6+urIUOG5NtPVFSUHA6HHA6HkpKSbuSUAQAAAKBEePQesfXr1+vAgQP212fPnrWPDxw4oPj4+FztY2Nj8/TRqFEjDRs2TBMnTlRiYqLatWunESNGqH79+jp48KAmTZqkHTt2SJJeeuklNWzY0JOpAgAAAMBNx6MgNmvWLM2dOzffcxs2bNCGDRtyfS+/ICZJ48aN0+nTp/XBBx9ox44deuqpp/K06devn958801PpgkAAAAANyWv3ZooST4+Ppo9e7ZWrFih6OhohYSEyM/PTyEhIYqOjtbnn3+uWbNmycfHq9MEAAAAgBLlsCzL8vYkSrOUlBQFBwcrOTlZQUFB3p4OAAAAAC9xJxuw1AQAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADPMoiJ0+fVrLly/Xa6+9pm7duql69epyOBxyOByKjY11u7+VK1eqV69eCg0Nlb+/v0JDQ9WrVy+tXLnSk+nlsW/fPk2dOlWPPvqowsPDVbFiRVWqVEnh4eF68skntWLFClmWVSJjAQAAAEBhHJYHCcThcBR4LiYmRvHx8UXqx7IsDRw4UDNnziywzYABAzRjxgyXY7oSExOjefPmFdru4Ycf1oIFC1SlShW3+k9JSVFwcLCSk5MVFBTk0RwBAAAAlH7uZINi35oYFhamLl26eHTtq6++aoewiIgIJSQkaOvWrUpISFBERIQkaebMmRo9erTH8zt27JgkqVq1ahowYIA+/PBDbdy4UVu3btU//vEPNW7cWJL05ZdfqmfPnsrOzvZ4LAAAAAAoCo9WxOLi4tS6dWu1bt1aNWvWVFJSksLDwyUVfUXswIEDatq0qTIzMxUZGal169apYsWK9vkrV66oY8eOSkxMlK+vr/bu3av69eu7O1XFxsbq/vvvV0xMjPz9/fOcv3Llih5++GGtX79ekjRv3jw988wzRe6fFTEAAAAAkoEVsbFjx6pHjx6qWbOmRxOUpKlTpyozM1OSNG3atFwhTJIqVaqkadOmSZIyMzP1zjvveDROfHy8BgwYkG8Iyxln+vTp9teLFy/2aBwAAAAAKCqv7JpoWZaWLl0qSWrSpInatGmTb7s2bdrYtw4uWbLkhm2o0aJFC1WvXl2SdPDgwRsyBgAAAADk8EoQO3TokP3erY4dO7psm3P+6NGjSkpKumFzysjIkCT5+LCjPwAAAIAbyyupY8+ePfZxkyZNXLZ1Pu98XUnasWOHUlJSijQfAAAAACgurwSxI0eO2MehoaEu24aFheV7XUkaP368ffzEE0/ckDEAAAAAIIevNwZNTU21jwMDA122DQgIsI8vXbpU4nP5+OOP7Q067rnnHvXu3dtl+/T0dKWnp9tf56ykAQAAAEBReWVFLC0tzT728/Nz2dZ5t8OrV6+W6Dz27t2r5557TpJUsWJFzZs3r9APjp4wYYKCg4Pth/OKHQAAAAAUhVeCWIUKFezjnE0yCuK8+vTrLe6L4/jx4+rWrZtSU1PlcDg0e/ZsNWvWrNDrRo4cqeTkZPtxo26XBAAAAHDr8sqtiZUrV7aPC7vd8PLly/ZxYbcxFtX58+fVpUsXexfGd999V3379i3Stf7+/gV+JhkAAAAAFIVXVsScN+g4evSoy7bOK04lcRtgamqqunbtqh9//FGS9MYbb2jw4MHF7hcAAAAAisorQcz5FsC9e/e6bOt8vmnTpsUa9+rVq+rZs6e2bdsmSXrppZf06quvFqtPAAAAAHCXV4JYeHi4QkJCJElr16512XbdunWSpNq1a6tu3boej3nt2jX17t3bHm/gwIGaPHmyx/0BAAAAgKe8EsQcDoeio6MlXV/x2rx5c77tNm/ebK+IRUdHF7qjYUGysrL0P//zP/riiy8kSc8884zef/99j/oCAAAAgOLyShCTpCFDhsjX9/peIYMHD86zNf3Vq1ft9275+vpqyJAh+fYTFRUlh8Mhh8Nhb77hzLIs9e/f3/6ssN69e2vOnDkehzoAAAAAKC6Pdk1cv369Dhw4YH999uxZ+/jAgQOKj4/P1T42NjZPH40aNdKwYcM0ceJEJSYmql27dhoxYoTq16+vgwcPatKkSdqxY4ek6+/latiwoSdT1bBhwzRnzhxJUosWLfTKK69oz549Lq9p0aKFR2MBAAAAQFE4LMuy3L0oNjZWc+fOLXL7gobIzs5W//799cEHHxR4bb9+/TRz5kz5+OS/eBcVFWW/7+vQoUN53kdWt25d/fLLL0Weq6v55iclJUXBwcFKTk5WUFCQW+MAAAAAuHW4kw28dmuiJPn4+Gj27NlasWKFoqOjFRISIj8/P4WEhCg6Olqff/65Zs2aVWAIAwAAAIDSyKMVMfx/rIgBAAAAkErRihgAAAAAlEUEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMM8CmKnT5/W8uXL9dprr6lbt26qXr26HA6HHA6HYmNj3e5v5cqV6tWrl0JDQ+Xv76/Q0FD16tVLK1eu9GR6BTp37pzi4uLUqlUrBQcHKygoSK1atVJcXJzOnTtXomMBAAAAQEEclmVZbl/kcBR4LiYmRvHx8UXqx7IsDRw4UDNnziywzYABAzRjxgyXYxbFtm3bFB0drRMnTuR7PiQkREuXLlVkZKRb/aakpCg4OFjJyckKCgoq1hwBAAAAlF7uZINi35oYFhamLl26eHTtq6++aoewiIgIJSQkaOvWrUpISFBERIQkaebMmRo9enSx5njs2DH17NlTJ06ckK+vr4YPH65169Zp3bp1Gj58uHx9fXX8+HH16NFDx44dK9ZYAAAAAFAYj1bE4uLi1Lp1a7Vu3Vo1a9ZUUlKSwsPDJRV9RezAgQNq2rSpMjMzFRkZqXXr1qlixYr2+StXrqhjx45KTEyUr6+v9u7dq/r167s7VUlSbGys5s6dK0latGiR+vTpk+v8Rx99pCeeeEKS9Nxzz+mDDz4oct+siAEAAACQDKyIjR07Vj169FDNmjU9mqAkTZ06VZmZmZKkadOm5QphklSpUiVNmzZNkpSZmal33nnHo3FOnTql+fPnS5IefvjhPCFMkvr06aOHH35YkjRv3jydOnXKo7EAAAAAoCi8smuiZVlaunSpJKlJkyZq06ZNvu3atGmjxo0bS5KWLFkiDxbv9NlnnykrK0vS9dWuguRsMpKVlaXPPvvM7XEAAAAAoKi8EsQOHTpkvxerY8eOLtvmnD969KiSkpLcHuvbb7/N05ercSRp/fr1bo8DAAAAAEXl641B9+zZYx83adLEZVvn83v27LHfi+buWMHBwapVq1aB7X7zm98oKChIKSkpueZXWvTvv067dp339jQAAAAAr2nRopr++c/fensaReKVIHbkyBH7ODQ01GXbsLCwfK9zd6zCxskZ68cff/RoHG/bteu8Nm8+7e1pAAAAACgCrwSx1NRU+zgwMNBl24CAAPv40qVLHo9V2DjOY7kaJz09Xenp6fbXKSkpbs8JAAAAQNnmlfeIpaWl2cd+fn4u2/r7+9vHV69e9XiswsZxHsvVOBMmTFBwcLD9cF6xAwAAAICi8EoQq1Chgn2ckZHhsq3z6tOvt7h3Z6zCxnEey9U4I0eOVHJysv0ojbcxAgAAAPAur9yaWLlyZfu4sNsNL1++bB8X5fbC/Ma6cuVKkW5rzBnL1Tj+/v65VuluFi1aVPP2FAAAAACvKk2/E3sliDlvnHH06FGXbZ1XnDy5DTA0NFSnTp0qdBznsUrj7YalZXcYAAAAAF66NbFZs2b28d69e122dT7ftGlTj8dKTk7WyZMnC2x34sQJe+MNT8YBAAAAgKLyShALDw9XSEiIJGnt2rUu265bt06SVLt2bdWtW9ftsdq3b28fuxrL+Vy7du3cHgcAAAAAisorQczhcCg6OlrS9RWvzZs359tu8+bN9opYdHS0HA6H22M98sgj8vG5/jTnzJlTYLv4+HhJko+Pjx555BG3xwEAAACAovJKEJOkIUOGyNf3+lvUBg8enGfL+KtXr2rw4MGSJF9fXw0ZMiTffqKiouRwOORwOJSUlJTnfK1atfT73/9ekvTll19q8eLFedp89NFH+vLLLyVJzzzzjGrVquXp0wIAAACAQnm0Wcf69et14MAB++uzZ8/axwcOHLBXl3LExsbm6aNRo0YaNmyYJk6cqMTERLVr104jRoxQ/fr1dfDgQU2aNEk7duyQJL300ktq2LChJ1OVJI0bN04rV67UmTNn1LdvXyUmJqpHjx6SpOXLl+utt96SJNWoUUNvvvmmx+MAAAAAQFE4LMuy3L0oNjZWc+fOLXL7gobIzs5W//799cEHHxR4bb9+/TRz5kz79sJfi4qKst/fdejQoQLfR7ZlyxY9+uijBW7YUatWLS1ZskT33Xefi2eSV0pKioKDg5WcnKygoCC3rgUAAABw63AnG3jt1kTp+vuxZs+erRUrVig6OlohISHy8/NTSEiIoqOj9fnnn2vWrFkFhjB33Hfffdq5c6deffVVtWjRQoGBgQoMDFTLli316quvateuXW6HMAAAAADwhEcrYvj/WBEDAAAAIJWiFTEAAAAAKIsIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIZ5PYilpaXp/fffV6dOnVSjRg35+fmpdu3a6t69uxYuXFhi4+zevVuDBw9Wy5YtFRQUJD8/P9WoUUMPPPCApk6dqtTU1BIbCwAAAABccViWZXlr8H379ik6Olr79u0rsE3Xrl21ePFiBQQEeDzOW2+9pZdfflmZmZkFtqlTp44+++wz3XnnnW71nZKSouDgYCUnJysoKMjjOQIAAAAo3dzJBl5bETtz5ow6d+5sh7A+ffpo+fLl2r59u5YvX64+ffpIklauXKm+fft6PM6iRYs0bNgwZWZmys/PT0OHDtWKFSu0ZcsWffjhh2rfvr0k6ZdfflHXrl2VnJxc/CcHAAAAAC54bUVs0KBBeu+99yRJcXFxGjNmTJ42cXFxev311yVJH3/8sXr16uX2OC1bttSuXbskScuXL1f37t3ztOndu7c++eQTSddXz1588cUi98+KGAAAAADJvWzglSCWlZWl6tWr6+LFi6pTp44OHjyocuXK5duuXr16Onz4sCIjI7Vt2za3xsn5h5Cku+++W999912+7X744Qe1atVK0vVQtnjxYrfHIIgBAAAAZdtNf2vi/v37dfHiRUlS586d8w1hklSuXDl17txZkpSYmKikpCS3xsnIyLCP69WrV2C7+vXr28fp6elujQEAAAAA7vJKEDt//rx9XLNmTZdtnc+vW7fOrXGqV6+uatWqSZJ+/vnnAtsdPHjQPm7UqJFbYwAAAACAu7wSxJx3QCxscwzn87t373Z7rAEDBkiStm/fri+++CLfNm+88Yak6ytwf/zjH90eAwAAAADc4euNQRs0aKDy5cvr2rVrha5yOZ8/fPiw22ONGjVKiYmJ+uqrr/TYY49p0KBB6tSpk6pXr66ff/5Z06dP19q1a1WuXDn9/e9/V9OmTd0eAwAAAADc4bUVsU6dOkm6vlFGQkJCvu0SEhK0c+dO+2tPPnQ5MDBQX3zxhf75z38qNDRUb731ln73u9/p3nvv1VNPPaW1a9eqV69e2rBhg/70pz8V2l96erpSUlJyPQAAAADAHV77HLGxY8fK1/f6glxMTIzefPNNHT58WNeuXdPhw4f15ptvKiYmRn5+fvY1V69e9WisxMREJSQkFPg+sa+++kpz584tUqiaMGGCgoOD7UdYWJhHcwIAAABQdnktiN17772aPXu2/Pz8dO3aNY0ePVp16tSRn5+f6tSpo9GjRys7O1tvvfWWfU3lypXdHmfx4sWKiorS6tWr1bJlS3366ac6d+6cMjIydPDgQY0fP17Xrl3T9OnTdf/99+vkyZMu+xs5cqSSk5Ptx5EjR9yeEwAAAICyzWtBTJKeffZZbd26VX369MkVsnx8fNSpUydt2LBBUVFR9verVq3qVv+nTp1SbGys0tPT1bx5c23cuFGPPvqoqlWrpvLly6tevXoaOXKkli1bJofDoR9//FGDBw922ae/v7+CgoJyPQAAAADAHV7ZrMNZq1attGjRImVlZenEiRNKS0tTSEiIKlWqJEn68MMP7bbNmjVzq+8FCxbo8uXLkqRXXnkl126Nzjp16qROnTrpq6++0ieffKILFy64HfoAAAAAoKi8uiLmrFy5cgoNDVWDBg3sECZJ69evt4/vu+8+t/rcs2ePfXz33Xe7bHvPPfdIkrKzs/XTTz+5NQ4AAAAAuOOmCWL5ycjI0OLFiyVJtWvX1v333+/W9TmbgUhSZmamy7bXrl3L9zoAAAAAKGk3dRB79913debMGUnSwIEDVa5cObeuDw8Pt4+//fZbl21zPq/M4XCobt267k0UAAAAANzg1SDm6gOaly1bplGjRkmSGjZsqGHDhuVpEx8fL4fDIYfDoTFjxuQ53717dzkcDknSuHHjdOzYsXzHmjlzphITEyVJbdq00W233ebuUwEAAACAIvPqPXgtWrRQ27Zt1adPHzVv3lx+fn5KSkrSRx99pIULF0q6vlPiwoULVaFCBbf7b9KkiZ577jl98MEHOnbsmCIiIjRkyBB16NBBlStX1pEjR7RgwQJ7Q5By5cpp/PjxJfocAQAAAODXvBrEsrOztWrVKq1atSrf882aNdP8+fMVERHh8Rjvv/++Ll++rIULF+rMmTP2KtuvBQQEaObMmbm2ywcAAACAG8GrQWzWrFlatWqVtm7dqhMnTujSpUuqUaOG7rzzTj3++ON65plnVL58+WKN4e/vrwULFuj5559XfHy8Nm/erGPHjik9PV1BQUFq3LixHnroIQ0YMEChoaEl9MwAAAAAoGAOy7Isb0+iNEtJSVFwcLCSk5P5cGcAAACgDHMnG9zUuyYCAAAAwK2IIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGCY14NYWlqa3n//fXXq1Ek1atSQn5+fateure7du2vhwoUlPt5XX32l2NhYNWjQQAEBAQoODlajRo30+OOPa/r06bp06VKJjwkAAAAAzhyWZVneGnzfvn2Kjo7Wvn37CmzTtWtXLV68WAEBAcUa68KFC3ruuee0dOlSl+127Nihu+66q8j9pqSkKDg4WMnJyQoKCirWHAEAAACUXu5kA19Dc8rjzJkz6ty5s44cOSJJ6tOnj2JiYhQSEqLjx49r7ty5+uijj7Ry5Ur17dtXn332mcdjJScnq3Pnzvruu+8kSd27d9dTTz2lBg0aKCsrS7/88ou2bdumxYsXl8hzAwAAAABXvLYiNmjQIL333nuSpLi4OI0ZMyZPm7i4OL3++uuSpI8//li9evXyaKxnn31W//rXv+Tr66v58+frySefzLedZVnKysqSr2/R8ykrYgAAAAAk97KBV4JYVlaWqlevrosXL6pOnTo6ePCgypUrl2+7evXq6fDhw4qMjNS2bdvcHmv9+vXq0KGDJGnMmDGKi4sr9vydEcQAAAAASO5lA69s1rF//35dvHhRktS5c+d8Q5gklStXTp07d5YkJSYmKikpye2x/u///k+SFBgYqP/93//1aL4AAAAAUJK8EsTOnz9vH9esWdNlW+fz69atc2ucjIwMe3OObt26KTAwUJKUmZmpX375RYcPH1ZGRoZbfQIAAABAcXkliDnvgJicnOyyrfP53bt3uzXOf//7X6WlpUmS2rZtq5MnT+q5555TlSpVVLduXdWpU0fBwcH63e9+p40bN7rVNwAAAAB4yitBrEGDBipfvrykwle5nM8fPnzYrXGcg1taWppatmyp+Ph4Xb58Odf3v/jiC3Xo0EHvvPOOW/0DAAAAgCe8tiLWqVMnSdIPP/yghISEfNslJCRo586d9tepqalujeN8C+TYsWN19uxZ9ejRQ4mJiUpLS9OpU6f0/vvvKygoSNnZ2XrxxRf1xRdfuOwzPT1dKSkpuR4AAAAA4A6vBDHpejDK2SY+JiZGb775pg4fPqxr167p8OHDevPNNxUTEyM/Pz/7mqtXr7o1hvPKV3p6unr27KmlS5fqnnvukb+/v26//Xa98MILWrFihXx8fGRZloYPHy5XG0lOmDBBwcHB9iMsLMzNZw4AAACgrPNaELv33ns1e/Zs+fn56dq1axo9erTq1KkjPz8/1alTR6NHj1Z2drbeeust+5rKlSu7NUaFChVyfT1lyhT5+OR9yu3bt7c/o2zXrl3atWtXgX2OHDlSycnJ9iPnA6kBAAAAoKi8FsSk6x+0vHXrVvXp0ydXyPLx8VGnTp20YcMGRUVF2d+vWrWqW/079xkeHq7GjRsX2Pbhhx+2j119Xpm/v7+CgoJyPQAAAADAHb7enkCrVq20aNEiZWVl6cSJE0pLS1NISIgqVaokSfrwww/tts2aNXOrb+fbBkNDQ4vc9vTp026NAwAAAADu8HoQy1GuXLl8w9L69evt4/vuu8+tPps3b24fZ2VluWzrfD7nvWsAAAAAcCN49dbEwmRkZGjx4sWSpNq1a+v+++936/o6derojjvukCQdPHjQZVvn87Vr13ZzpgAAAABQdDd1EHv33Xd15swZSdLAgQNVrlw5t/vo3bu3JOnUqVMuP7T5k08+sY87dOjg9jgAAAAAUFReDWKuPqB52bJlGjVqlCSpYcOGGjZsWJ428fHxcjgccjgcGjNmTL79DBkyxN498S9/+UuuLe1zzJ8/X998840kqXv37oW+nwwAAAAAisOrb4Zq0aKF2rZtqz59+qh58+by8/NTUlKSPvroIy1cuFDS9Z0SFy5cmGcr+qK644479Prrr2v48OH67rvvdO+992r48OFq0aKFkpOT9cknn2jGjBmSpKCgIE2dOrXEnh8AAAAA5MerQSw7O1urVq3SqlWr8j3frFkzzZ8/XxEREcUa56WXXtL58+c1adIk7d69W7GxsXna3H777VqyZIkaNmxYrLEAAAAAoDBeDWKzZs3SqlWrtHXrVp04cUKXLl1SjRo1dOedd+rxxx/XM888o/Lly5fIWBMmTNAjjzyi6dOn69tvv9WJEydUoUIFNWrUSI888ogGDx6s4ODgEhkLAAAAAFxxWJZleXsSpVlKSoqCg4OVnJzMhzsDAAAAZZg72eCm3jURAAAAAG5FBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMIwgBgAAAACGEcQAAAAAwDCCGAAAAAAYRhADAAAAAMMIYgAAAABgGEEMAAAAAAwjiAEAAACAYQQxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQAwAAAADDCGIAAAAAYBhBDAAAAAAMI4gBAAAAgGEEMQAAAAAwjCAGAAAAAIYRxAAAAADAMIIYAAAAABhGEAMAAAAAwwhiAAAAAGAYQQwAAAAADCOIAQAAAIBhBDEAAAAAMMzX2xMo7SzLkiSlpKR4eSYAAAAAvCknE+RkBFcIYsWUmpoqSQoLC/PyTAAAAADcDFJTUxUcHOyyjcMqSlxDgbKzs3X8+HFVrlxZDofD29NRSkqKwsLCdOTIEQUFBXl7OigFqBm4i5qBO6gXuIuagbtuppqxLEupqakKCQmRj4/rd4GxIlZMPj4+Cg0N9fY08ggKCvJ6IaJ0oWbgLmoG7qBe4C5qBu66WWqmsJWwHGzWAQAAAACGEcQAAAAAwDCC2C3G399fcXFx8vf39/ZUUEpQM3AXNQN3UC9wFzUDd5XWmmGzDgAAAAAwjBUxAAAAADCMIAYAAAAAhhHEAAAAAMAwghgAAAAAGEYQu0UcPnxYw4YNU9OmTRUQEKBq1arp3nvv1d/+9jdduXLF29ODAdu3b9f48ePVrVs3hYWFyd/fX4GBgWrUqJFiY2P17bffutXfypUr1atXL4WGhsrf31+hoaHq1auXVq5ceYOeAW4Ww4cPl8PhsB/ffPNNoddQL2XP2bNnNXnyZLVr1061atWSv7+/QkJCdN999+mll17Spk2bCu2Duik7MjIyNHv2bHXt2lW/+c1v7J9RjRs31h/+8Adt3ry5SP1QM6Xb6dOntXz5cr322mvq1q2bqlevbv+siY2Ndbu/kqiHK1euaMqUKbr33ntVrVo1BQYGqmnTpho2bJgOHz7s9pzcYqHUW758uRUcHGxJyvfRuHFj6+DBg96eJm6g3/72twW+/s6PZ555xkpPT3fZV3Z2tjVgwACX/QwYMMDKzs429Oxg0vfff2/5+vrmer3XrFlTYHvqpWxatGiRddttt7l83aOjowu8nropWw4fPmy1bNmy0J9RQ4cOLfA1p2ZuDa5ev5iYmCL3U1L1cODAAatx48YF9hEcHGytWLGimM+6YASxUu7777+3KlWqZEmyAgMDrXHjxlkbN260vv76a6t///52ITVp0sRKTU319nRxg9SvX9+SZIWEhFh//etfrcWLF1tbt261Nm3aZL399ttW7dq17Vro27evy75eeeUVu21ERISVkJBgbd261UpISLAiIiLsc6NGjTL07GBKVlaW1bp1a0uSdfvttxcpiFEvZc/cuXMtHx8fu07i4uKs//znP9Z3331nrVixwvr73/9ude7c2Xr88ccL7IO6KTuuXbuWK4TdeeedVnx8vLVp0yZr1apV1muvvWYFBATY5ydPnpxvP9TMrcE55ISFhVldunTxKIiVRD2kpqZaTZo0sdv279/f+vrrr62NGzda48aNswIDAy1JVqVKlaz//ve/JfDs8yKIlXJRUVGWJMvX19fauHFjnvOTJ0+2C2zs2LFemCFM6N69u7Vw4UIrMzMz3/NnzpyxGjVqZNfCunXr8m23f/9+ezUkMjLSunLlSq7zly9ftiIjI+2aO3DgQIk/F3jP1KlT7T/cjBw5stAgRr2UPbt377b8/f0tSVaHDh2sixcvFti2oNV36qZsWbx4sf1/Sdu2bfP9OZWYmGiVL1/ekmRVrVrVunbtWq7z1Myt47XXXrOWLVtmnTx50rIsyzp06JDbQayk6iEuLs7lHwA2btxoj/PAAw+490SLiCBWim3dutUuoOeffz7fNllZWVbTpk3t/9wyMjIMzxI3i2XLltn18pe//CXfNn/605/sNps2bcq3zaZNm+w2gwYNupFThkGHDx+2//q3Zs2aXD+gCgpi1EvZ06lTJ0uSVb16devMmTMe9UHdlC1Dhw61X8vPPvuswHaPPfaY3W7nzp25zlEzty5PglhJ1ENGRoZVpUoVS5LVtGlTKysrK99+nn/+ebufxMTEIj+vomKzjlJsyZIl9vFzzz2XbxsfHx89++yzkqQLFy4U6U33uDVFRUXZxwcPHsxz3rIsLV26VJLUpEkTtWnTJt9+2rRpo8aNG0u6XoOWZZX8ZGHcn/70J126dEkxMTG5aqUg1EvZs3fvXn399deSpEGDBql69epu90HdlD0ZGRn2cb169QpsV79+ffs4PT3dPqZm4Kyk6uGbb77RxYsXJUkxMTHy8ck/EjlvIPLJJ58Uc/Z5EcRKsZxd8AICAnTPPfcU2K5jx4728fr162/4vHBzcv5hmN9/OIcOHdKxY8ck5a6Z/OScP3r0qJKSkkpukvCKRYsWafny5apWrZqmTJlSpGuol7Lno48+so/79OljH1+4cEH79+/XuXPnCu2Duil7GjVqZB///PPPBbbL+QOhw+FQw4YN7e9TM3BWUvXgvJO0q34iIyMVEBAg6cb8Dk0QK8X27NkjSWrQoIF8fX0LbNekSZM816DsWbt2rX3sXBM5nGsjv/POqKlbx8WLF/XXv/5VkjRp0iTVqFGjSNdRL2VPzvbiwcHBatq0qf7973+rVatWqlatmho1aqTq1aurXr16Gjt2rC5dupRvH9RN2dO3b18FBQVJuv5/TFZWVp42O3bs0IoVKyRJTz31lN1eomaQW0nVQ1H78fX1tVdrb0RNEcRKqbS0NJ09e1aSFBoa6rJt1apV7TR/5MiRGz433Hyys7M1ceJE++snnngiTxvn2iispsLCwvK9DqXP8OHDdfLkSd1///3q169fka+jXsqe3bt3S5Lq1q2rwYMH6+mnn9YPP/yQq82hQ4c0ZswYtW3bVsePH8/TB3VT9tSoUUPx8fGqWLGiNmzYoNatW2vevHnavHmzvvrqK40dO1YdO3ZURkaG7rrrLr399tu5rqdm4Kyk6iHn64CAAFWpUqVI/Zw5cybXbbMlgSBWSqWmptrHgYGBhbbPCWIF/ZUSt7apU6dq69atkqTHHntMkZGRedq4U1M59SRRU6XZ+vXrNWvWLPn6+mrGjBlyOBxFvpZ6KXvOnz8v6fp7xd577z1VqVJFM2bM0OnTp5WWlqZt27apW7dukqRdu3apT58+ys7OztUHdVM2PfbYY0pMTFS/fv30/fffKyYmRm3btlXnzp01ZswYVapUSW+//bbWr1+vWrVq5bqWmoGzkqqHnH7c+R06v36KiyBWSqWlpdnHfn5+hbb39/eXJF29evWGzQk3p7Vr1+rll1+WJN1+++2aPn16vu3cqamcepKoqdIqIyNDAwYMkGVZGjp0qFq2bOnW9dRL2XP58mVJ1zdSKFeunL744gs9//zzqlGjhvz9/RUZGanly5fbYWzjxo153txO3ZRN165d04cffqhly5blu4nGqVOnlJCQkO+GYtQMnJVUPeT0487v0Pn1U1wEsVKqQoUK9rHzJgwFyVlKrVix4g2bE24+P/74ox577DFlZmbK399fixYtUs2aNfNt605NOS/NU1Ol0/jx47Vnzx7dcccdiouLc/t66qXscX7N+/Tpk+9uZT4+Prk2fElISCiwD+qmbLh8+bIeeughjRs3TufOndPw4cO1Z88epaenKzk5WatWrVL79u21bds29ezZU++++26u66kZOCupesjpx53fofPrp7gIYqVU5cqV7eOiLJPm/CWzKEuwuDUcOnRIXbp00YULF1SuXDklJCS43BnI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", + "application/vnd.jupyter.widget-view+json": { + "model_id": "af612fcb57b340ebb6505a59f4f1cd91", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAJYCAYAAADxHswlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPnZJREFUeJzt3X+U13WB7/HXwMgPB2cGIjsWKCo7SuU9V1GKFY6gi94k7lXbzdL8wSnzbOWm4lJSmtYxxTC1s6tdyyRda6wumYlWBxST0BXN1XUDS+0KtptG0gy/f8j3/uHleyAYmO8IM++xx+OcOecj3/fn8/58j28Hn/P5zOdbV6lUKgEAAAB6VJ+ePgEAAABAoAMAAEARBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoHfSK6+8knvvvTeXX3553ve+92Xo0KGpq6tLXV1dzj333L0yZ2tra0466aQccMABGTBgQEaMGJGzzjorjz766F6ZDwAAgJ5T39Mn0Fu87W1v67a51q9fn7/7u7/Lvffeu92fv/jii3nxxRfzne98J1dccUUuu+yybjsnAAAA9i5X0Ltg+PDhOfHEE/fa8T/60Y9W43zixIm5++6789hjj+XWW2/NoYcemi1btuTyyy/PN7/5zb12DgAAAHSvukqlUunpk+gNvvCFL+SYY47JMccck7e97W35v//3/+bggw9OkpxzzjmZPXv2HpnnoYceyoQJE5IkU6ZMyQ9/+MP07du3+vqKFSsyevToLFu2LIMHD84LL7yQ5ubmPTI3AAAAPccV9E668sor8/73v3+v3+p+7bXXJkn69u2bm266abs4T5KhQ4dm5syZSZKVK1fm1ltv3avnAwAAQPcQ6AVZvXp15s+fnySZNGlShg0bttNxp512WhobG5Mkc+bM6bbzAwAAYO8R6AV57LHHsmHDhiTJcccd1+G4fv365b3vfW91n02bNnXL+QEAALD3CPSCLFmypLp9+OGH73Ls1tc3b96c3/zmN3v1vAAAANj7BHpBli9fXt3u6Pb2rYYPH77T/QAAAOidfA56QVatWlXdHjRo0C7HNjQ0VLdXr17d4bgNGzZUb5tPki1btuTVV1/NW97yltTV1b2BswUAAHqzSqWSVatW5e1vf3v69HHttgQCvSDr16+vbvfr12+XY/v371/dXrduXYfjrr766lx55ZVv/OQAAIA3peXLl+/2Dl66h0AvyIABA6rbGzdu3OXYba+KDxw4sMNxl156aS6++OLqP7e1teXAAw/M8uXLq0+CBwAA/vK0t7dn+PDh2W+//Xr6VPj/BHpBtv0PY1e3rSfJmjVrqtu7uh2+f//+211t36qxsVGgAwAAfvW1IH7RoCDb3lby0ksv7XLstg+G2/aBcQAAAPROAr0g73znO6vbS5cu3eXYra/X19dn5MiRe/W8AAAA2PsEekGOOeaY6sPhHnrooQ7Hbdy4MY8++ugO+wAAANB7CfSC7LfffjnhhBOSJPPmzevwNvc5c+akvb09SXLqqad22/kBAACw9wj0bjR79uzU1dWlrq4uV1xxxU7HXHLJJUmSzZs355Of/GRee+217V5fsWJFPvOZzyRJmpub87GPfWyvnjMAAADdw1PcO2nhwoV57rnnqv+8YsWK6vZzzz2X2bNnbzf+3HPP7dI8xx9/fD70oQ+ltbU199xzTyZNmpQLL7wwb3/72/Pv//7vueqqq7Js2bIkyTXXXJPBgwd3aR4AAADKItA76Zvf/Ga+/e1v7/S1X/ziF/nFL36x3Z91NdCT5Fvf+lba29tz33335cEHH8yDDz643et9+vTJZZddlvPPP7/LcwAAAFAWt7gXaODAgZk7d27uvPPOTJo0Kfvvv3/69euX4cOH54wzzsjChQs7vEUeAACA3qmuUqlUevok6D7t7e1pampKW1tbGhsbe/p0AACAHqINyuMKOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQR6FyxbtiyXXHJJRo0alYaGhgwZMiRjxozJrFmzsnbt2j0yx69+9atccMEFOeKII9LY2Jh+/frlrW99ayZOnJjrr78+q1at2iPzAAAAUIa6SqVS6emT6E3mzp2bM888M21tbTt9/bDDDst9992XQw45pMtzXHfddfnsZz+bzZs3dzjmoIMOyj333JP/9t/+W03Hbm9vT1NTU9ra2tLY2NjlcwQAAHo3bVAeV9Br8NRTT+WDH/xg2traMmjQoFx11VVZtGhR5s+fn/POOy9J8uyzz2by5MlZvXp1l+b43ve+l0suuSSbN29Ov379ctFFF2Xu3Ln513/913znO9/JuHHjkiQvvvhi/sf/+B8d/qAAAACA3sUV9BpMnDgxCxYsSH19fX7+859n7Nix273+la98JdOnT0+SXHnllbn88strnuOII47IM888kyS59957M3ny5B3GfOADH8icOXOSvH61/eKLL+708f2UDAAASLRBiVxB76TFixdnwYIFSZKPfvSjO8R5kkybNi2jRo1Kktxwww3ZtGlTTXO0t7dX4/yoo47aaZwnyRe+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AHueQO+EbW8x37hx427Hb71iPXDgwJrmWbFiRaZNm5Ykueqqq3LAAQfUtP/OXHrppWlra6t+dfW2ewAAAPYut7h3wn777Vfd7sxt62vWrEnSudvht3XxxRdnxYoVOfroo/OJT3yitpPsQP/+/atX9AEAACiXQO+EAQMGZOjQoVmxYkVeeumlXY5duXJlNdBruZ38P//zP3PHHXckSY4//vh873vf2+X4V155Ja2trUmSgw8+OO95z3s6PRcAAADlEeidNGrUqDz88MN57rnnsnnz5g4/am3p0qXb7dNZ2946f+211+52/JIlS/LhD384SXLOOecIdAAAgF7O76B30rhx45K8fvv6E0880eG4hx56qLp97LHH7vXzAgAA4M1BoHfSKaecUt2+7bbbdjpmy5Ytuf3225Mkzc3NmThxYqePP2LEiFQqld1+bXXcccdV/2z27Nldek8AAACUQ6B30pgxYzJ+/Pgkya233ppHHnlkhzHXXXddlixZkiT59Kc/nX322We712fPnp26urrU1dXliiuu2OvnDAAAQO/hd9BrcOONN+bYY4/NunXrcuKJJ2bGjBmZOHFi1q1bl9bW1txyyy1JkpaWlurHpQEAAEBnCPQaHHnkkbnrrrvykY98JO3t7ZkxY8YOY1paWjJ37tztPpoNAAAAdsct7jWaMmVKnn766Vx00UVpaWnJvvvum+bm5hx99NGZOXNmnnzyyYwcObKnTxMAAIBepq6y7ZPHeNNrb29PU1NT2tra0tjY2NOnAwAA9BBtUB5X0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACHQAAAAog0AEAAKAAAh0AAAAKINABAACgAAIdAAAACiDQAQAAoAACvQuWLVuWSy65JKNGjUpDQ0OGDBmSMWPGZNasWVm7du0bOnZ7e3taW1tz3nnn5aijjkpzc3P69euXt771rZkwYUJmzZqVP/3pT3vmjQAAAFCMukqlUunpk+hN5s6dmzPPPDNtbW07ff2www7Lfffdl0MOOaTmY99///059dRTs2HDhl2Oe9vb3pbvfve7mThxYs1ztLe3p6mpKW1tbWlsbKx5fwAA4M1BG5THFfQaPPXUU/ngBz+Ytra2DBo0KFdddVUWLVqU+fPn57zzzkuSPPvss5k8eXJWr15d8/H/+Mc/ZsOGDenTp09OOumkXH/99XnggQfyy1/+Mvfcc09OP/30JMnLL7+c97///fm3f/u3Pfn2AAAA6EH1PX0CvcmFF16YtWvXpr6+Pj/72c8yduzY6mvHH398/uqv/irTp0/P0qVL89WvfjWXX355TcffZ599cv7552fGjBk58MADt3vtyCOPzJQpU3LsscfmH/7hH7J27dpMmzYt8+fP3yPvDQAAgJ7lFvdOWrx4ccaMGZMkOf/88/P1r399hzFbtmzJu9/97ixZsiSDBw/Oyy+/nH322WePn8sxxxyTxx9/PH369Mkrr7ySt7zlLZ3e120sAABAog1K5Bb3Trr77rur21OnTt3pmD59+uTss89OkqxcuTILFizYK+cyYcKEJK//QOC3v/3tXpkDAACA7iXQO+nhhx9OkjQ0NGT06NEdjjvuuOOq2wsXLtwr57LtQ+T69PGvEAAA4M1A3XXSkiVLkiQjR45MfX3Hv7p/+OGH77DPnvbQQw8lSerr6zNy5Mi9MgcAAADdS6B3wvr167NixYokybBhw3Y5dvDgwWloaEiSLF++fI+fy9y5c/P0008nSU466SS/KwIAAPAm4SnunbBq1arq9qBBg3Y7vqGhIWvWrOnSR63tyquvvppPfvKTSZK+ffvmS1/60m732bBhw3a3xLe3t+/RcwIAAGDPcAW9E9avX1/d7tev327H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NA8AAADlEeidsH79+qxYsSJJOrztfKvBgwenoaEhSbJ8+fKa5tl2/O7mGT58+E73AwAAoHfq+FIwVatWrapuDxo0aLfjGxoasmbNmpo/aq2Webb+ECDJLufZsGFD9bb5JNXPb29vb6/p3AAAgDeXrU3gg73KIdA7Yf369dXtfv367XZ8//79kyTr1q3ba/NsnWN381x99dW58sord/jzba/AAwAAf7n++Mc/pqmpqadPgwj0ThkwYEB1e+PGjbsdv/WK9cCBA/faPNteFd/VPJdeemkuvvji6j//6U9/ykEHHZRly5b5j5C9qr29PcOHD8/y5ct9riZ7lbVGd7HW6C7WGt2lra0tBx54YIYMGdLTp8L/J9A7Yb/99qtud+a29TVr1iTp3O3wXZ1n6xy7m6d///7bXW3fqqmpyTd8ukVjY6O1Rrew1ugu1hrdxVqju/Tp49FkpfBvohMGDBiQoUOHJkleeumlXY5duXJlNZ5rvY182wfD7W6ebR8M53Z1AACA3k+gd9KoUaOSJM8991w2b97c4bilS5fusE9nvfOd79zpcXY1T319fUaOHFnTPAAAAJRHoHfSuHHjkrx+a/kTTzzR4biHHnqoun3sscfWNMcxxxxTfTjctsf5cxs3bsyjjz66wz6d0b9//3zhC1/Y6W3vsCdZa3QXa43uYq3RXaw1uou1Vp66imfqd8pjjz2W97znPUmS888/P1//+td3GLNly5a8+93vzpIlS9Lc3JxXXnkl++yzT03znHzyybn//vtTX1+f3/72tzv9PPTW1tZ8+MMfTpJce+21+cd//McuvCMAAABK4gp6J40ZMybjx49Pktx666155JFHdhhz3XXXZcmSJUmST3/60zvE+ezZs1NXV5e6urpcccUVO53nkksuSZJs3rw5n/zkJ/Paa69t9/qKFSvymc98JknS3Nycj33sY2/ofQEAAFAGgV6DG2+8MQMHDszmzZtz4okn5uqrr86jjz6aBx98MOeff36mT5+eJGlpacm0adO6NMfxxx+fD33oQ0mSe+65J5MmTco999yTxx9/PLfddlve+973ZtmyZUmSa665JoMHD94zbw4AAIAe5WPWanDkkUfmrrvuykc+8pG0t7dnxowZO4xpaWnJ3Llzt/vItFp961vfSnt7e+677748+OCDefDBB7d7vU+fPrnsssty/vnnd3kOAAAAyuIKeo2mTJmSp59+OhdddFFaWlqy7777prm5OUcffXRmzpyZJ5988g0/VX3gwIGZO3du7rzzzkyaNCn7779/+vXrl+HDh+eMM87IwoULO7xFHgAAgN5JoHfBQQcdlK9+9at59tlns2bNmqxcuTKLFy/O9OnTs++++3a437nnnptKpZJKpdKpwD7jjDPys5/9LC+//HI2bNiQZcuW5c4778w73vGOXHLJJRk1alQaGhoyZMiQjBkzJrNmzcratWv32PtsbW3NSSedlAMOOCADBgzIiBEjctZZZ1WfIM+b37Jly/baWmtvb09ra2vOO++8HHXUUWlubk6/fv3y1re+NRMmTMisWbPypz/9ac+8EYq3N9daR/7rv/4rzc3N1WeDTJgwYa/MQ1m6c63Nmzcv5557bkaOHJmGhoY0NTWlpaUlf/u3f5ubb745q1ev3qPzUZbuWGu/+tWvcsEFF+SII45IY2Nj9e/RiRMn5vrrr8+qVav2yDyU55VXXsm9996byy+/PO973/sydOjQ6t9n55577l6ZUxt0kwq9yr333ltpamqqJNnp12GHHVZ5/vnn39Ac69atq7z//e/vcI4+ffpUvvjFL+6hd0Sp9uZau++++yr9+/fv8Nhbv972trdVHnjggT38zihNd3xf25kPfOAD281z3HHH7fE5KEt3rbVXX3218r/+1//a7fe4J5988o2/KYrUHWtt1qxZlfr6+l2usYMOOqjy1FNP7aF3RUl29e/9nHPO2aNzaYPuJdB7kX/7t3+r7LvvvpUklUGDBlWuuuqqyqJFiyrz58+vnHfeedX/SA4//PDKqlWrujzPGWecUT3WxIkTK3fffXflscceq9x6662VQw89tPraN77xjT347ijJ3l5rd9xxR/Ub+kknnVS5/vrrKw888EDll7/8ZeWee+6pnH766dU59t13X/8T+ybWXd/X/tw999xTSVLZf//9BfpfiO5aa3/6058qo0ePrh5v8uTJlTvuuKPyyCOPVBYuXFi58847KxdeeGFl2LBhvre9SXXHWrvrrruqx+nXr1/loosuqsydO7fyr//6r5XvfOc7lXHjxlVfP+CAAyp/+tOf9vC7pKdtG8jDhw+vnHjiiXst0LVB9xLovciECRMqSSr19fWVRYsW7fD6tddeW/0P5Morr+zSHAsWLKgeY8qUKZXNmzdv9/of/vCHyoEHHlhJUhk8eHBl5cqVXZqHsu3ttdba2lo5//zzKy+++GKHY772ta9V5zj++ONrnoPeoTu+r/25VatWVYYPH15JUrn99tsF+l+I7lprZ511VnWe1tbWDsdt2bKlsmnTpi7PQ7m6Y629+93vrh7j3nvv3emY0047rTrmuuuu69I8lOvyyy+v/PjHP678/ve/r1Qqlcpvf/vbvRLo2qD7CfRe4rHHHqv+x3H++efvdMxrr71WGTVqVPU/kI0bN9Y8z8knn1xJUunbt29l+fLlOx3z3e9+t3ous2bNqnkOytZda60zjj766OqV9hUrVuyVOeg5PbXWLrjggupVgEqlItD/AnTXWnv44Yer81xxxRVv9LTphbpjrbW1tVXnOOqoozoc99RTT1XHfeADH6hpDnqfvRXo2qD7eUhcL3H33XdXt6dOnbrTMX369MnZZ5+dJFm5cmUWLFhQ0xyrV6/O/PnzkySTJk3KsGHDdjrutNNOS2NjY5Jkzpw5Nc1B+bpjrXXW1od2bdmyJb/97W/3yhz0nJ5Ya4899lj++Z//Of369cvNN9/8ho5F79Fda+2f/umfkiSDBg3KtGnTat6f3q871trGjRur24ccckiH4w499NDq9oYNG2qaAxJt0FMEei/x8MMPJ0kaGhoyevToDscdd9xx1e2FCxfWNMdjjz1W/Qa+7XH+XL9+/fLe9763us+mTZtqmoeydcda66xt/4eiTx/frt5sunutbd68OR//+MezZcuWfOYzn8lhhx3W5WPRu3THWtu4cWN+9KMfJUne9773ZdCgQUleX3cvvvhili1btl1Y8ebUHWtt6NChGTJkSJLkhRde6HDc888/X91uaWmpaQ5ItEFP8X+8vcSSJUuSJCNHjkx9fX2H4w4//PAd9ql1jj8/zq7m2bx5c37zm9/UNA9l64611lkPPfRQkqS+vj4jR47cK3PQc7p7rc2aNStPPfVUDj300MyYMaPLx6H36Y619tRTT2X9+vVJkrFjx+b3v/99pk6dmubm5owYMSIHHXRQmpqacvLJJ2fRokVdeBf0Bt31fe3jH/94kuSXv/xl7r///p2O+dKXvpQk6du3bz72sY/VPAdog54h0HuB9evXZ8WKFUnS4a0lWw0ePDgNDQ1JkuXLl9c0z7bjdzfP8OHDd7ofvVt3rbXOmDt3bp5++ukkyUknnVS9dYo3h+5eay+88EK++MUvJkluuummDBgwoEvHoffprrX2q1/9ars5jzjiiMyePTtr1qzZ7s/vv//+jB8/PjfccENNx6d83fl97XOf+1z+5m/+Jkly6qmn5pJLLsn999+fxYsX56677sqECRPygx/8IH379s3Xvva1jBo1quY5QBv0DIHeC6xataq6vfWWuV3Z+g1/9erVe22erXN0ZR7K1V1rbXdeffXVfPKTn0zy+k/+t14F4M2ju9fa+eefn3Xr1uX000/PiSee2KVj0Dt111p79dVXq9tXXnllVqxYkfe///15/PHHs379+rz88su56aab0tjYmC1btuTiiy/u8MonvVN3fl8bNGhQ7r///nzjG9/IsGHDct111+Xkk0/OmDFj8qEPfSgPPfRQTjvttPziF7/IJz7xiZqPD4k26CkCvRfYestc8vrveOxO//79kyTr1q3ba/NsnaMr81Cu7lpru/Laa6/lzDPPzIsvvpgk+fznP58jjzxyjx2fMnTnWrv99tszb968NDY25vrrr695f3q37lpr214p37BhQ6ZMmZIf/ehHGT16dPr375/9998/f//3f5+5c+emT58+qVQqmT59eiqVSk3zUK7u/jv08ccfz3e/+90Ofw993rx5+fa3v5329vYuHR+0Qc8Q6L3AtrdiduYBM1sf5jBw4MC9Ns+2D++qdR7K1V1rbVc+8YlP5Cc/+UmSZPLkybnsssv22LEpR3ettRUrVlSfpn3VVVflgAMOqGl/er+e+Ds0Sb7yla/s9OGW48aNy2mnnZYkeeaZZ/LMM8/UNA/l6s6/Q3/wgx9kwoQJeeCBB3LEEUfkhz/8Yf74xz9m48aNef755/PlL385mzZtys0335y//uu/zu9///ua5wBt0DMEei+w3377Vbc7c8vI1p/id+b2qq7Os+2VglrnoVzdtdY6cumll+aWW25J8vr/xH7/+99P375998ixKUt3rbWLL744K1asyNFHH+02z79QPfF36MEHH7zLTwk46aSTqtuLFy+uaR7K1V1r7eWXX865556bDRs25F3velcWLVqUU045JUOGDMk+++yTQw45JJdeeml+/OMfp66uLv/xH/+RCy64oLY3A9EGPaXjx0tSjAEDBmTo0KFZsWJFXnrppV2OXblyZfU/kG0f1tAZ2z784aWXXsrRRx/d4dhtH/5Q6zyUq7vW2s7MnDkz11xzTZLkqKOOyr333usnsG9i3bHW/vM//zN33HFHkuT444/P9773vV2Of+WVV9La2prk9cB6z3ve0+m5KFd3fV/bdnwtD1N65ZVXapqHcnXXWmttba3uO2PGjO1+93dbJ5xwQk444YTMmzcvc+bMycqVKzN48OCa5uIvmzboGQK9lxg1alQefvjhPPfcc9m8eXOHH92xdOnS7fapxTvf+c6dHmdX8/j4qzef7lhrf+6mm27KZz/72eqxfvrTn6apqekNHZPy7e21tu3teNdee+1uxy9ZsiQf/vCHkyTnnHOOQH8T6Y7va+9617uq26+99toux277+q4+iovepzvW2rYffXXUUUftcuzo0aMzb968bNmyJb/+9a99X6Mm2qBnuMW9lxg3blyS128feeKJJzoct/Vzo5Pk2GOPrWmOY445pvoAiG2P8+c2btyYRx99dId9eHPojrW2rTvuuCOf+tSnkiSHHHJI5s2bl6FDh3b5ePQe3b3W+MvVHWvtoIMOyoEHHpgkef7553c5dtvX3/GOd9Q0D2XrjrW2bfRv3rx5l2M3bdq00/2gM7RBzxDovcQpp5xS3b7tttt2OmbLli25/fbbkyTNzc2ZOHFiTXPst99+OeGEE5K8/uTPjm7PmjNnTvWJoKeeempNc1C+7lhrW82ZMydTp05NpVLJsGHDMn/+/Lz97W/v0rHoffb2WhsxYkQqlcpuv7Y67rjjqn82e/bsLr0nytRd39c+8IEPJHn9d4QXLVrU4bg5c+ZUt8ePH1/zPJSrO9bawQcfXN1++OGHdzn25z//eZKkrq4uI0aMqGke0AY9pEKvMX78+EqSSn19fWXRokU7vH7ttddWklSSVL7whS/s8Pptt922y9crlUpl/vz51TH/83/+z8rmzZu3e/0Pf/hD5cADD6wkqTQ3N1deffXVPfHWKEx3rLWf/vSnlX79+lWSVPbff//K0qVL9/C7oDfojrW2O1v3P+6447q0P71Dd6y1F198sTJgwIBKksro0aMrq1ev3mHMHXfcUT3O5MmT3+jbokB7e60tWbKkUldXV0lSecc73lF56aWXdnoe//t//+/qccaOHftG3xaF++1vf1v9933OOed0ah9tUCb3uvQiN954Y4499tisW7cuJ554YmbMmJGJEydm3bp1aW1trT79uqWlpfqxQrU6/vjj86EPfSitra255557MmnSpFx44YV5+9vfnn//93/PVVddlWXLliVJrrnmGg8beZPa22vt0UcfzamnnpqNGzdmn332yfXXX59Nmzbt8uOGhg0blubm5q6+JQrVHd/XIOmetXbggQfmi1/8YqZPn54nnngiY8aMyfTp0/Pud787bW1tmTNnTr7+9a8nSRobG3P99dfvsfdHOfb2Wjv88MMzderUfOtb38rvfve7HHnkkbnwwgszfvz47Lffflm+fHlaW1vzne98J0nSt2/ffPnLX96j75Get3Dhwjz33HPVf16xYkV1+7nnntvhTrBzzz23S/Nogx7Q0z8hoDb33HNPpbGxsfqTrD//amlpqfzmN7/Z6b6dvdK0du3aysknn9zhHH369OnylSp6j7251r7whS90eNyOvm677ba9+4bpMd3xfW1Xtu7vCvqbX3ettc9+9rPVK5w7+9p///13emWVN4+9vdbWr19fOf3003f7d2dDQ0Plzjvv3IvvlJ5yzjnn1PT/UTujDcrkd9B7mSlTpuTpp5/ORRddlJaWluy7775pbm7O0UcfnZkzZ+bJJ598w09OHDhwYObOnZs777wzkyZNyv77759+/fpl+PDhOeOMM7Jw4cJcccUVe+YNUazuWGuQWGt0n+5aa1dffXV+8Ytf5KyzzsqIESPSv3//NDU15ZhjjsmXvvSl/PrXv87YsWP3wDuiVHt7rfXv3z+tra154IEHcvbZZ6elpSUNDQ2pr6/PkCFDMnbs2Fx22WVZunRpzjjjjD34zvhLpA26V12lss0TcgAAAIAe4Qo6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABRAoAMAAEABBDoAAAAUQKADAABAAQQ6AAAAFECgAwAAQAEEOgAAABTg/wH0PV257l7/gwAAAABJRU5ErkJggg==", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], "text/plain": [ - "
" + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, @@ -173,9 +198,24 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2gAAAJICAYAAAAUzce/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXFhJREFUeJzt3Xl8VNXh///3JCE7SYCwhUQBlUVBQBYBQQIIbpVdrVXBBcW1FstHRX9AsBVBW5daq3wLiqiAuwi4IpCiBtkFCygoayJLICSQkEyW+/sjzZg4d5JMMsudyev5eMzDm3vPPfdMcx6FN+fcc2yGYRgCAAAAAPhdiL8bAAAAAAAoR0ADAAAAAIsgoAEAAACARRDQAAAAAMAiCGgAAAAAYBEENAAAAACwCAIaAAAAAFgEAQ0AAAAALIKABgAAAAAWQUADAAAAAIsgoPnI0aNHtXz5ck2fPl1XXnmlEhMTZbPZZLPZdMstt/i7eR7jye+5f/9+PfLII+rZs6cSEhLUqFEjNW3aVP3799df/vIXHTt2zDtfAgAAAPCTMH83oKFo2bKlv5vgE576nosWLdIdd9yhgoKCKudzcnKUkZGhjIwMPf/883r77bc1ZMgQjzwTAAAA8DdG0PwgJSVFw4cP93czvK6u3zMjI0Pjx49XQUGBQkJCdOutt+rDDz/U+vXr9e677+qaa66RJB0/flwjRozQvn37PNxyAAAAwD8YQfOR6dOnq3fv3urdu7datmypffv2qV27dv5ulsd54nvOmjVLpaWlkqQXXnhB99xzj+Na7969NXbsWP35z3/WM888o/z8fD3zzDP6xz/+4dHvAQAAAPiDzTAMw9+NaIgqB5cJEyZowYIF/m2Ql9TlezZt2lQ5OTlq1qyZsrOzTcvk5uYqISFBktSzZ09t3LjRU00GAAAA/IYpjgGopKRE8+fP11VXXaWkpCRFREQoMTFRl156qZ577jkVFhb6u4n1YrfbJanakbf4+HglJiZKkoqKinzSLgAAAMDbCGgB5qefflK3bt00ceJEffLJJ/rll19kt9t1/PhxrV27VpMnT9aFF16o3bt3+7upddahQwdJ0t69e12WycvLc4yuVZQHAAAAAh0BLYD88ssvuuSSS7Rjxw41btxYf/7zn/XJJ59o8+bNWr16taZOnaro6Gjt3r1bV1xxhXJzc/3d5DqZNGmSpPJFQF5++WXTMn/5y1+cygMAAACBjkVCAsidd96pI0eOKCUlRWvWrFH79u2rXE9NTdW1116rgQMH6ueff9bf/va3KkEmUEycOFFr167Vm2++qXvvvVebNm3SiBEj1Lp1ax04cEBvvPGGPvjgA0nSww8/3CBWxAQAAEDDwAhagPj++++1fPlySdI///lPp3BWoUePHrr33nslSa+88orP2udJoaGheuONN/TWW2+pW7dumjdvnkaMGOFYwfGDDz7Q4MGD9dlnn2n27Nn+bi4AAADgMQS0ALF06VJJUnR0tK6++upqy1566aWSpKysLB08eNDrbfOGXbt2adGiRdq+fbvp9YyMDC1cuFC//PKLj1sGAAAAeA8BLUBULCNfUFCgsLAw2Ww2l5/f/e53jvsOHz5cpZ6VK1dWe29tP97cHHrt2rXq16+fli5dqjZt2uj111/X4cOHZbfbdfDgQb344ouKiorSm2++qT59+mjnzp1eawsAAADgSwS0AHH06NE63VdQUODhlnhXUVGRbrjhBp08eVKtWrXSunXrdNNNN6lly5Zq1KiRkpOTdc8992jt2rWKjIzUoUOHNH78eH83GwAAAPAIFgkJEKWlpZLK9wb76KOPan3fb/cS69+/v0dGnNq0aVPvOsx8+umnyszMlCTdf//9atWqlWm5Cy64QDfddJPmzZunjRs36rvvvlO3bt280iYAAADAVwhoAaJZs2aSpCNHjqhTp04KC6vbry46OlqdOnXyZNM8qnJ4vOiii6ot27NnT82bN09S+TtrBDQAAAAEOqY4BogePXpIKp+y+PXXX/u5Nd5TOXiWlJRUW7a4uNj0PgAAACBQEdACxMiRIx3HTz31lB9b4l2Vp2SuXbu22rLp6emm9wEAAACBioAWIHr37u3YkPnjjz/WjBkzqi2/b98+LV682BdN86ihQ4cqOjpakvTSSy+5XGb/k08+cWxW3aZNG3Xv3t1XTQQAAAC8hnlhPvLVV19pz549jp+zs7Mdx3v27NGCBQuqlL/llluc6nj11VfVq1cv/fLLL3r88cf12Wef6bbbblPXrl0VGRmp48ePa9u2bfr000+1atUqjRo1SjfccIO3vpKp+n7PhIQEPfLII5o+fbpOnTql/v376/7779ewYcPUpEkTHTlyREuXLtW///1vlZWVSZJmz56tkBD+rQEAAACBz2YYhuHvRjQEt9xyi1577bVal3f1a9m/f7+uvfZabdiwocY6br31Vr3yyiu1fqYneOJ7GoahBx98UM8//7zL/x0kqVGjRpo1a5amTJlSp7YCAAAAVsMIWoA5++yz9e2332rp0qV666239O233+rIkSMqLi5WQkKCzjvvPPXr108jRozQwIED/d3cOrHZbHr22Wcdy+h/9dVX2r9/vwoKChQbG6tzzz1XgwYN0qRJk9ShQwd/NxcAAADwGEbQAAAAAMAieHEHAAAAACyCgAYAAAAAFsE7aF5SVlamrKwsNW7cWDabzd/NAQAAAOAnhmHo1KlTSkpKqnH1cQKal2RlZSklJcXfzQAAAABgEQcPHlRycnK1ZQhoXtK4cWNJ5b+EuLg4P7cGAAAAgL/k5eUpJSXFkRGqQ0DzkoppjXFxcQQ0AAAAALV69YlFQgAAAADAIghoAAAAAGARBDQAAAAAsAgCGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGARBDQAAAAAsAgCGgAAAABYBAENAAAAACyCgAYAAAAAFhHm7wYAAAAAgKccPlwgm01q1ChE4eGhatQoRI0ahSgkxObvptUKAQ0AAABA0Ojff6n27j1V5dyIEWdr6dLL/dQi9zDFEQAAAEDQKC4uczrXqFHgxJ7AaSkAAAAA1MBuJ6ABAAAAgCUwggYAAAAAFmEW0MLDAyf2BE5LAQAAAKAGjKABAAAAgEUQ0AAAAADAAkpLy1RWZjidJ6ABAAAAgI+ZjZ5JBDQAAAAA8DlXAS08PNTHLak7AhoAAACAoMAIGgAAAABYBAENAAAAACzCbiegAQAAAIAluH4HLXBiT+C0FAAAAACqwRRHAAAAALAIAhoAAAAAWATvoAEAAACARTCCBgAAAAAWwSIhAAAAAGARjKABAAAAgEUQ0AAAAADAIuz2UtPzBDQAAAAA8DFG0LwgNTVVNpvNrc+aNWvcfk5aWppX6wcAAADgW64XCQn1cUvqznIBzV0hISE677zz/N0MAAAAAH4WDCNoYf5uwG+9+uqrys/Pr7bMjh07dP3110uShg4dqjZt2tTrmdu3b6/2ert27epVPwAAAADvI6B5QW3C0Ouvv+44Hj9+fL2f2aVLl3rXAQAAAMC/7PbAD2iB09L/KSsr05tvvilJio2N1ZgxY/zcIgAAAABWwEbVfvDll18qMzNTkjRu3DhFR0f7uUUAAAAArCAYpjgGTkv/Z+HChY5jT0xvBAAAABAcCGg+dvr0aX3wwQeSpLPOOkupqakeqXfYsGFq1qyZwsPD1aJFC6Wmpmr27NnKycnxSP0AAAAAvI+Nqn3svffec6zwePPNN8tms3mk3pUrV+rEiRMqLi7WsWPHlJ6erqlTp6p9+/ZaunSpR54BAAAAwLuCYQTNcqs4VsfT0xu7du2qUaNGqU+fPkpKSlJxcbF++OEHvfnmm/r888918uRJjR07VsuWLdOVV15ZbV1FRUUqKipy/JyXl1fv9gEAAACovWDYqNpmGIbh70bUxqFDh3T22WerrKxMffv2VUZGRr3qO3nypBISElxenzt3ru666y5JUlJSkvbs2aOoqCiX5dPS0jRz5kyn87m5uYqLi6tXWwEAAADU7KGH1unpp7c5nbfbJ/p1FC0vL0/x8fG1ygYBM9b3xhtvqKysPBFPmDCh3vVVF84kadKkSZo4caIkKSsrS++//3615adOnarc3FzH5+DBg/VuIwAAAIDaczWCFhbmmVejfCFgAlrF5tQRERG6/vrrffLMSZMmOY7T09OrLRsREaG4uLgqHwAAAAC+Y7ZRdViYzWNrV/hCQAS0jRs3aseOHZKk3/3ud2rSpIlPnnv++ec7jiv2XgMAAABgTWYjaIH0/pkUIAGt8uIgnpjeWFsB8noeAAAAAJkHtEBawVEKgIBWXFysJUuWSJKaN29e42qKnlQxaieVLxQCAAAAwLoIaD7wySef6NixY5KkP/zhDwoL893OAHPnznUcDxo0yGfPBQAAAOA+ApoP1GXvswULFshmK38ZMC0tzen69u3btWfPnmrrmDt3rubPny9JatWqlUaPHl37RgMAAADwObNFQgItoFl6o+qcnBwtX75cktSlSxdddNFFHql306ZNmjhxogYPHqwrr7xSXbt2VbNmzVRSUqJdu3bpjTfe0BdffCFJCg0N1dy5cxUTE+ORZwMAAADwDvNFQghoHvPWW2+pqKhIUu1Hz2qrtLRUK1eu1MqVK12WadasmebPn68RI0Z49NkAAAAAPC8YpjhaOqBV7H0WGhqqG2+80WP1XnXVVZo/f74yMjK0ZcsWHTlyRMePH5dhGGratKm6deumK664Qrfccgv7mQEAAAABIhgCms1gLXmvyMvLU3x8vHJzcwl5AAAAgA8MGLBUX399pMq5nj0TtXHjGD+1qJw72SCw4iQAAAAAuBAMI2iB1VoAAAAAcMF8kZBQP7Sk7ghoAAAAAIICI2gAAAAAYBEENAAAAACwCPONqm1+aEndEdAAAAAABAXeQQMAAAAAi2CKIwAAAABYBAENAAAAACyCgAYAAAAAFmG+SEhgRZ7Aai0AAAAAuGC+SEhgRZ7Aai0AAAAAmCgrM1RWZjidZwQNAAAAAHzMbPRMIqABAAAAgM/Z7aWm5wloAAAAAOBjrkbQ2KgaAAAAAHyMKY4AAAAAYBEENAAAAACwCAIaAAAAAFiE2SbVEgENAAAAAHzO9SIhgRV5Aqu1AAAAAGCCKY4AAAAAYBEENAAAAACwCAIaAAAAAFgEi4QAAAAAgEWwSAgAAAAAWARTHAEAAADAIghoAAAAAGARdnup6XkCGgAAAAD4mOt30EJ93JL6IaABAAAACHhMcQQAAAAAiyCgAQAAAIBFENAAAAAAwCLYqBoAAAAALIKNqgEAAADAIpjiCAAAAAAWQUADAAAAAIsgoAEAAACARdjtpabn2agaAAAAAHzM1QhaWJjNxy2pHwIaAAAAgIBnFtDCwmyy2QhoAAAAAOBTZgEt0N4/kwhoAAAAAIKA2UbVBDQAAAAA8AOzEbRAWyBEIqABAAAACAJMcQQAAAAAiyCgeYnNZqvVJzU11SPPW7JkiS6//HK1bt1akZGRatu2rW6++WatW7fOI/UDAAAA8L5gCWhh/m6AvxQWFuraa6/V8uXLq5zfv3+/9u/fr0WLFiktLU3Tpk3zUwsBAAAA1FawLBJi2YB2991365577nF5PSYmpl7133777Y5wNnjwYD3wwANKSkrS9u3bNWvWLP3000+aPn26WrdurYkTJ9brWQAAAAC8y3yREAKax7Ro0UJdunTxSt3p6elatGiRJOmaa67RBx98oNDQ8hVeevfurREjRqhnz546cOCAHnroIY0bN04JCQleaQsAAACA+guWKY6B12IPeOqppyRJoaGh+te//uUIZxUSExM1Z84cSVJOTo7mz5/v8zYCAAAAqD0CWoA6ffq0vvzyS0nSsGHDlJycbFpuzJgxiouLkyS9//77PmsfAAAAAPcR0ALU+vXrVVRUJEkaNGiQy3Lh4eHq27ev457i4mKftA8AAACA++z2UqdzbFTtQe+88446duyoqKgoNW7cWOedd54mTJig1atX16venTt3Oo47depUbdmK6yUlJdq9e3e9ngsAAADAexhB87IdO3boxx9/VGFhoU6fPq09e/Zo4cKFGjJkiEaPHq3c3Nw61Xvw4EHHsavpjRVSUlJM7zNTVFSkvLy8Kh8AAAAAvmEe0Gx+aEn9WC6gRUdH6/e//73+/e9/a+3atdqyZYs+//xzPfbYY2rWrJkk6cMPP9TIkSPrNO3w1KlTjuPY2Nhqy1Zeyv/06dPVln3yyScVHx/v+FQOdwAAAAC8K1hG0Cy3zH5mZqbpkvbDhg3T/fffryuvvFJbtmxRenq6XnrpJf3xj390q/7CwkLHcXh4eLVlIyIiHMdnzpyptuzUqVP14IMPOn7Oy8sjpAEAAAA+EiwbVVuuxdXtN9ayZUu9++67jmD1wgsvuF1/ZGSk49hut1dbtmIxEUmKioqqtmxERITi4uKqfAAAAAD4hvlG1SwS4nXt27fXsGHDJEl79uxRVlaWW/c3btzYcVzTtMX8/HzHcU3TIQEAAAD4T7BMcQy8Fks6//zzHceZmZlu3Vt5YZBDhw5VW7bywiBMVwQAAACsi4DmR4Zh1PneyuFu165d1ZatuB4WFqZzzz23zs8EAAAA4F0END/asWOH4zgpKcmte3v37u14hy09Pd1lObvdrnXr1jndAwAAAMBaysoMlZY6D+KEhwde3Am4Fv/888/64osvJJW/j9amTRu37m/cuLGGDh0qSVq5cqXLaY7vv/++Yy+z0aNH16PFAAAAALzJbPRMYgSt3pYtW6aSkhKX148cOaJx48Y59j+79957ncosWLBANptNNptNaWlppvVMmTJFklRSUqJ7771XpaWlVa5nZ2fr4YcfllS+quTEiRPr8nUAAAAA+EAwBTRL7YN2//33q7i4WGPHjlW/fv3Utm1bRUVFKTs7W2vWrNHLL7+s48ePS5IGDBhgGtBqY8iQIfr973+vJUuW6KOPPtKwYcP0pz/9SUlJSdq+fbueeOIJHThwQJI0e/ZsNWnSxGPfEQAAAIBnEdC8KCsrSy+88EK1e5yNHTtW8+bNq7KRtLteeeUV5eXl6eOPP9bq1au1evXqKtdDQkI0bdo0TZo0qc7PAAAAAOB9BDQvee2115Senq6MjAz9/PPPys7OVl5enmJjY5WSkqL+/ftrwoQJ6tevX72fFRUVpRUrVmjRokVasGCBvvvuO508eVItW7bUwIEDdd9993nkOQAAAAC8y24vNT0fiBtV24z6rFkPl/Ly8hQfH6/c3FzFxcX5uzkAAABA0Nq7N0/t2y9xOv/88/31xz928UOLqnInGwTemB8AAAAAVBJMUxwDr8UAAAAAUAkBDQAAAAAswm4noAEAAACAJbgaQQsPD7y4E3gtBgAAAIBKmOIIAAAAABZBQAMAAAAAiyCgAQAAAIBFuFokhHfQAAAAAMDHGEEDAAAAAIsgoAEAAACARRDQAAAAAMAiCGgAAAAAYBF2e6np+fDwUB+3pP4IaAAAAAACGiNoAAAAAGARBDQAAAAAsAgCGgAAAABYBBtVAwAAAIBFMIIGAAAAABZBQAMAAAAAiyCgAQAAAIBFENAAAAAAwCLMNqoOC7PJZrP5oTX1Q0ADAAAAENDMRtACcfRMIqABAAAACHAENAAAAACwCAIaAAAAAFgEAQ0AAAAALMJudw5o4eGhfmhJ/RHQAAAAAAQ0RtAAAAAAwCIIaAAAAABgEQQ0AAAAALAI83fQAjPqBGarAQAAAOB/GEEDAAAAAIsgoAEAAACARRDQAAAAAMAiCGgAAAAAYBF2e6nTORYJAQAAAAA/YAQNAAAAACyCgAYAAAAAFkFAAwAAAACLMN+oOtQPLak/AhoAAACAgMYIGgAAAABYBAENAAAAACzAMAyVlhpO5wloAAAAAOBjZqNnEgENAAAAAHzObIEQiY2qPWbz5s2aNWuWrrzySqWkpCgiIkKxsbHq0KGDbrnlFq1du9Yjz0lLS5PNZqvVZ82aNR55JgAAAADPCrYRtDB/N6CyQYMG6T//+Y/Tebvdrt27d2v37t167bXXdPPNN2vevHkKDw/3QysBAAAAWAUBzYsyMzMlSUlJSbr22ms1cOBAnXXWWSotLVVGRob+/ve/KzMzU6+//rpKSkq0aNEijzx3+/bt1V5v166dR54DAAAAwLMIaF7UqVMnzZo1S2PHjlVoaNWN5fr27aubb75Zl1xyiX788UctXrxYd999twYOHFjv53bp0qXedQAAAADwvWALaJZq9fLly3Xdddc5hbMKiYmJ+vvf/+74+d133/VV0wAAAABYkN1eano+PNw8U1idpQJabaSmpjqOf/rpJ/81BAAAAIDfMYLmZ3a73XEcEhJwzQcAAADgQQQ0P0tPT3ccd+rUySN1Dhs2TM2aNVN4eLhatGih1NRUzZ49Wzk5OR6pHwAAAIB3END8qKysTLNnz3b8fN1113mk3pUrV+rEiRMqLi7WsWPHlJ6erqlTp6p9+/ZaunRpreooKipSXl5elQ8AAAAA72Kjaj969tlntX79eknS6NGj1atXr3rV17VrV02bNk3Lli3Tpk2btG7dOr322msaPny4JOnkyZMaO3asPvnkkxrrevLJJxUfH+/4pKSk1KttAAAAAGoWbCNoNsMwDH83ojbS09N12WWXqaSkRC1atNC2bdvUsmXLOtd38uRJJSQkuLw+d+5c3XXXXZLK92Xbs2ePoqKiXJYvKipSUVGR4+e8vDylpKQoNzdXcXFxdW4nAAAAANe++OKQhg//2On8ihVX6KqrzvJDi5zl5eUpPj6+VtkgIGLlf//7X40ePVolJSWKiIjQ22+/Xa9wJqnacCZJkyZN0sSJEyVJWVlZev/996stHxERobi4uCofAAAAAN4VbCNolm/13r17NXz4cOXk5Cg0NFSLFy/WoEGDfPLsSZMmOY4rL04CAAAAwBoIaD6UlZWlyy67TFlZWbLZbHrllVc0evRonz3//PPPdxxnZmb67LkAAAAAaodFQnwkOztbw4YN088//yxJeuGFFzR+/HiftiFAXs8DAAAAGixG0HwgNzdXl19+uXbs2CFJmj17tu69916ft6Pi+VL5QiEAAAAArIWA5mUFBQW6+uqrtXnzZknSY489pocfftgvbZk7d67j2FfvvQEAAACoPQKaF9ntdo0ePVpff/21JOmBBx7QX//6V7frWbBggWw2m2w2m9LS0pyub9++XXv27Km2jrlz52r+/PmSpFatWvn03TcAAAAAteMqoIWHh/q4JZ4R5u8GVHbDDTfo888/lyQNGTJEt99+u77//nuX5cPDw9WhQwe3n7Np0yZNnDhRgwcP1pVXXqmuXbuqWbNmKikp0a5du/TGG2/oiy++kCSFhoZq7ty5iomJqduXAgAAAOA1dnup6flAHUGzVECrvNfYqlWrdOGFF1Zb/uyzz9a+ffvq9KzS0lKtXLlSK1eudFmmWbNmmj9/vkaMGFGnZwAAAADwrmCb4mipgOYrV111lebPn6+MjAxt2bJFR44c0fHjx2UYhpo2bapu3brpiiuu0C233MKG0wAAAICFBVtAsxmsJe8VeXl5io+PV25uLiEPAAAA8JLHH9+kGTM2OZ0/cWKCmjSJ8EOLnLmTDQIzVgIAAACA2KgaAAAAACwj2KY4BmarAQAAAEAENAAAAACwDLOAFhpavidyICKgAQAAAAhYZgEtUEfPJAIaAAAAgABmtlF1oC4QIhHQAAAAAAQwRtAAAAAAwCIIaAAAAABgEQQ0AAAAALAIs4AWHh7qh5Z4BgENAAAAQMCy2xlBAwAAAABLYIojAAAAAFgEAQ0AAAAALIKABgAAAAAWYfYOGhtVAwAAAIAfMIIGAAAAABZBQAMAAAAAiyCgAQAAAIBFmG9UHbgxJ3BbDgAAAKDBs9tLnc4xggYAAAAAfsAURwAAAACwCAIaAAAAAFgEAQ0AAAAALMJ8kZBQP7TEMwhoAAAAAAKSYRgqKTGczjOCBgAAAAA+ZjZ6JhHQAAAAAAS5w4cLNGbM52rZ8nUNHrxMW7dm+7tJQRnQwvzdAAAAAADWlpNTpIEDP9KePXmSpKNHz2jo0BX67ruxSk6O9Vu7gjGgBW7LAQAAAHhdaWmZbrxxlSOcVThxokh/+lOGn1pVzm43D2jh4YEbcwK35QAAAAC8Li1tkz755KDptffe26sVKw74uEW/YgQNAAAAQIPxwQd79de/bqm2zH33fa2CghIftagqAhoAAACABmHHjhyNH7+mxnL79p3SE09s9n6DTBDQAAAAAAS93Fy7Ro36XKdPF9eq/NNPb9OOHTlebpUzVwGNjaoBAAAABIWyMkM33bRKu3fnml5v1SrK6VxxcZnuvvsrGYbzptHeZLeXmp5nBA0AAABAUHj88U1avtx84Y+JEzvp88+vVmiozenaf/7zixYu3O3t5lXBFEcAAAAAQeujj/Zp5kzz98kuvriF/vnPS9S1a1NNntzVtMyUKet0/HihN5tYBQENAAAAQFA6duyMbr013fRay5ZReu+9YYqIKH+3a8aMnkpJiXEql51dqKlT13u1nZUR0AAAAAAEpUceWa8TJ4qczoeF2fTOO5epTZtfA1lsbCO98MIlpvX8+9+79M03h73WzspcLxISuDEncFsOAAAAwCMyMo7olVd+ML323HP9NXBga6fzI0e21YgRZ5vec9ddX6m01Dw8eZLdzggaAAAAgCBSUlKme+75yvTa6NFtdc8957u89x//6K/o6DCn89u3n9Dq1Vkea6MrTHEEAAAAEFRefnmHtm497nQ+OjpMzz/fXzab84qNFc4+u7HS0nqaXlu37qjH2ugKAQ0AAABA0DhypED/3/+30fTa9OkXKSUltsY6Hnigi2kg+umnvHq3rya8gwYAAAAgaDz00LfKzbU7ne/UKcHlUvq/FR4eqnbtGjud37PH+wGNd9AAAAAABIW1a11vLP3Pf16i8PDQWtd17rlxTuf27Mmtc9tqiymOPnbgwAFNmTJFnTt3VkxMjJo2bao+ffrob3/7mwoKCjz2nCVLlujyyy9X69atFRkZqbZt2+rmm2/WunXrPPYMAAAAwCqKi10vDHL99e01dGgbt+o75xzngHb48BmdPl1cp/bVVjAGNOclVyxixYoVuvHGG5Wb+2vyLigo0IYNG7RhwwbNmzdPH3/8sdq3b1/nZxQWFuraa6/V8uXLq5zfv3+/9u/fr0WLFiktLU3Tpk2r8zMAAAAAq/nnP7/X99/nOJ2PjW2kv/+9n9v1nXtuvOn5n3/O04UXNnO7vtoKxoBmyZZ/9913uu6665Sbm6vY2Fg98cQT+uabb/Tll1/qjjvukCT98MMPuvrqq3X69Ok6P+f22293hLPBgwfrww8/1Pr16zV//nydc845Kisr0/Tp0zVv3jyPfC8AAADA37Ky8jVjxibTazNn9qyyIXVtmU1xlLz/HprrRUJqPz3Taiw5gvanP/1JBQUFCgsL0+eff65+/X5N8UOGDNF5552nhx56SLt27dIzzzyj6dOnu/2M9PR0LVq0SJJ0zTXX6IMPPlBoaPkvsnfv3hoxYoR69uypAwcO6KGHHtK4ceOUkJDgke8HAAAA+ENpaZnuvfdrnTrlPPXwggua6P77u9SpXrMpjpL330Oz20tNzzOC5kEbNmzQmjVrJJWPcFUOZxX+/Oc/q3PnzpKk5557TsXF7s9tfeqppyRJoaGh+te//uUIZxUSExM1Z84cSVJOTo7mz5/v9jMAAAAAq7DbS/X733+pDz/cZ3r9X/8aUOdg07ZtY4WEOO+X5u2l9pni6AMffvih4/jWW281LRMSEqLx48dLKg9PFYGutk6fPq0vv/xSkjRs2DAlJyeblhszZozi4sr/NeD999936xkAAACAVRQUlGjkyM/17rt7Ta/fdNO5uvTS1nWuPyIiVGed5bxnmr+mOBLQPGjt2rWSpJiYGPXsab4ruSQNGjTIcfzVV+Yr0Liyfv16FRUVOdXzW+Hh4erbt6/jnrqM1AEAACA4GYahkpIy5ecXKyenSIcPF+jAgdP6+ec8HThwWllZ+TpypEDHjxcqN9eu06eLXQYKb8rNtevyyz/Wp58eNL0eHx+up5/uW+/nmC+1T0Bzl+XeQdu5c6ck6dxzz1VYmOvmderUyeked5/x23pcPefzzz9XSUmJdu/erfPPP9+tZ/nTW2/9pJdf3uHvZgAAgAbGMLxTr81W8V+bi+Nff/71v7+WM1NWZqi01HD8t/xTprIyqaSkTEVFpbLbf/2v3V5a5VxdvmtiYqSSk2McnzZtyv+bkhKrrl2bqkWLKPcrdeHYsTO6/PKPtWXLcdPrUVGheu+9YWrVKrrezzrnnDitXJlZ5dzBg6dVVFSqiAjvLNpBQPOywsJCZWdnS5LLaYcVmjRpopiYGOXn5+vgQfN/DXClcvmanpOSklLlvkAKaAcPntaaNb/4uxkAAACoJDu7UNnZhdq61Tw0tW3bWH36NFefPi3Up09zXXRRomJiGrn9nEOHTmvYsI+1a9dJ0+txcY20YsWVGjCgldt1mzEbQTMMae/eU+rUKcEjz/gtu905oIWG2kzfhwsUlgpop06dchzHxjrPYf2tioDm7lL77jwnJubXZUare05RUZFj2qQk5eV5dzgXAAAAwWnfvlPat++U3n77Z0lSSIhNXbo0UY8eieratakuvLCpunZtqpYto6qMDJaWlmn37jxt3ZqtrVuPa9GiPTp4MN/0Gc2bR+qzz65Sjx6JHmu3q73Q9uzJ9VpAMxtBC+TRM8liAa2wsNBxHB4eXmP5iIgISdKZM2e89pyKZ9T0nCeffFIzZ850qx0AAABATcrKDG3bdkLbtp2ocr5580h17dpUKSmx2rXrpLZtO64zZ8yXna8sOTlGX3xxtcdDk+ul9r03cEFA87LIyEjHsd1ur7F8xYhVVJR783TdeU7lUbHqnjN16lQ9+OCDjp/z8vKqTI8EAAAAPOnYsUKtWpXl1j3nnhunlSuv1tlnN/Z4e9q3N6/Tm0vtmwW08HACmsc0bvzrL7U20xbz88uHbGszHbKuz6l4Rk3PiYiIqDLaZgUtWkSpe/dm/m4GAABogFysyVFnFYtxGEb56omVj397zex8de0MDbU53lsqPw5RSIgUFhaiiIhQhYeHKDy84rjqzxWfX6+HKCwsRKWl5Ss8lpSULzpS/l9DeXl2ZWbm69Ch8k9WVoHKyry0qspvXHhhU3322VUeWRDETExMIyUlRSsrq6DKeW+OoJltVM0ImgdFRkYqMTFR2dnZOnToULVlc3JyHOHJ3ZGqyguDHDp0SL169XJZtvKCIoE2IjZ+fAeNH9/B380AAACACyUlZTpy5IwOHjyt//43R+vXH9X69ce0ffsJlZZ6Lrj17dtCH398pZo08e6AwjnnxJkEtFyvPY8pjj7QuXNnrV27Vnv27FFJSYnLpfZ37dpV5R53VF6JsXI91T0nLCxM5557rlvPAQAAAKoTFhaiNm3Kl9rv27elbr+9fAuogoISbdmSrfXrj+rbb49q69bj2r07z63RtiZNItStW1PddNN5Gj++g0+Cy7nnxmnt2sNVzu3bd0olJWUKC/P88wloPjBgwACtXbtW+fn52rRpky6++GLTcunp6Y7jSy65xK1n9O7dW+Hh4bLb7UpPT9cjjzxiWs5ut2vdunVV7gEAAAC8LTo6TJdc0kqXXPLrEvhnzpRox44cbd9+Qtu3ly8asn37CR0/Xqjk5Fh1797M8enRI1EpKTEu93/zFrOVHEtKDB04cFrt25svIlIfxcXOgZWA5mGjRo3Sk08+KUl69dVXTQNaWVmZFi5cKElKSEjQ4MGD3XpG48aNNXToUH3yySdauXKlDh06ZLof2vvvv+9YLn/06NHufhUAAADAY6KiwtSzZ3P17Nnc301xyWwvNKn8PTTvBDSzRUK8sym2r1guXvbp00cDBw6UJM2fP18ZGRlOZf7+979r586dkqQHHnhAjRpV3bhvwYIF/9s93qa0tDTT50yZMkWSVFJSonvvvVelpVVfMMzOztbDDz8sqTwETpw4sV7fCwAAAAh2rpba99ZKjsG4SIglW//8888rKipKJSUlGj58uJ588kmtW7dOq1ev1qRJk/TQQw9Jkjp06KA///nPdXrGkCFD9Pvf/16S9NFHH2nYsGH66KOPtHHjRr366qvq27evDhw4IEmaPXu2mjRp4pkvBwAAAAQp13uheWehEN5B85EePXrorbfe0k033aS8vDw9+uijTmU6dOigFStWVFky312vvPKK8vLy9PHHH2v16tVavXp1leshISGaNm2aJk2aVOdnAAAAAA1FQkKEEhMjlZ1dWOW8t5baD8aAZtnWX3PNNdq2bZsmT56sDh06KDo6WgkJCerVq5fmzJmjLVu21HtVxaioKK1YsUJvvvmmhg0bphYtWig8PFwpKSn6wx/+oK+++srlFEkAAAAAzsxG0XwZ0AJ9o2qbYVS3dR/qKi8vT/Hx8crNzVVcnOdfiAQAAACs6KabVunNN/dUORcZGar8/NsUEuLZVSXPP/9t7dx5ssq5yy9P1qefXuXR59SXO9kgsOMlAAAAAEsxW8mxsLBUWVn5Hn+W3c4URwAAAABwyfVCIZ6f5sg7aAAAAABQDbPNqiXvLLVPQAMAAACAalS3WbWnBeMiIYHdegAAAACWkpgYqbi4Rk7nvbEXGhtVAwAAAEA1bDab6XtoTHGsncBuPQAAAADLMXsPbc+ePHl6hy8CGgAAAADUwOw9tFOninXsWKHHnmEYhkpKnAMfAQ0AAAAAKnG11L4npzmahTNJCg8P9dgz/IGABgAAAMCjXK/k6LmFQswWCJEYQQMAAACAKlzthebJpfbN3j+TCGgAAAAAUEXr1tGKjHSeakhAq1lgtx4AAACA5YSEeH+pfVcBjY2qAQAAAOA3zN5D8+Q7aIygAQAAAEAtmb2Hdvx4kU6eLPJI/XY7AQ0AAAAAasXbS+0zggYAAAAAteR6qX0CWnUCu/UAAAAALMnbe6G5XiSEjaoBAAAAoIqUlFiFhdmczntqiiMbVQMAAABALYWFhahdO7OVHJniWJ3Abj0AAAAAyzJfap+AVp3Abj0AAAAAyzJbyfGXXwqUn19c77rZqBoAAAAA3OBqoZCffz5V77oZQQMAAAAAN5htVi15ZiVHNqoGAAAAADcwgua+wG49AAAAAMtKTo4xPX/06Jl6101AAwAAAAA3xMQ0UlSU88bRx455L6CxSAgAAAAAuNC8eZTTuWPHCutdLyNoAAAAAOCm5s0jnc5lZ9c/oLFICAAAAAC4iRE09wR26wEAAABYmtkImjffQSOgAQAAAIALiYnOAS0vr1hFRaX1qtf1IiHOi5IEEgIaAAAAAK8xG0GT6v8emt1uHvAYQQMAAAAAF8zeQZPqP82RKY4AAAAA4CZvjaAR0AAAAADATa4CWn1XcjQLaKGhNoWE2OpVr78R0AAAAAB4jespjp4PaIE+eiYR0AAAAAB4kdkqjlL930Ez26iagAYAAAAA1UhICFdYmPO0Q0bQzAX+NwAAAABgWTabzXQUzRurOBLQAAAAAKAGZu+heWMELTw88ONN4H8DAAAAAJZmtpKjN5bZZwQNAAAAAGpgFtDqO4LGIiEAAAAAUAdm76AdP16o0lLzzaZrgxE0AAAAAKgDs3fQDEM6caKoznWav4MWWuf6rMJyAe3AgQN66aWXdP3116tjx46KiYlRZGSkkpOTNXLkSC1evFglJSX1fs6aNWtks9lq9UlLS6v/FwMAAAAaKLMpjlL9pjkG6whamL8bUNn06dP117/+VYZhOF3LzMxUZmamPvroIz3zzDN67733dNZZZ/mhlQAAAADcYTaCJlUstd+kTnXa7aVO5whoHpaVlSXDMBQTE6PRo0dr6NChOu+88xQZGamdO3fqH//4hzZs2KCNGzfqsssu0+bNmxUbG1vv577yyivq3bu3y+stWrSo9zMAAACAhsrVCFp9VnJkBM0HmjVrpjlz5ujuu+9W48aNq1zr2bOnbrjhBv3hD3/Q22+/rd27d+vZZ5/VtGnT6v3cdu3aqUuXLvWuBwAAAIAzpjjWnqW+wZw5c/TQQw85hbMKoaGh+te//qXw8HBJ0rvvvuvL5gEAAACoA9dTHD0b0Nio2g+aNWumCy+8UJL0008/+bk1AAAAAGrStGmE6fnyd9DqhhE0CykqKl+OMyQkIJsPAAAANChhYSGmIa0+I2hsVG0RR48e1c6dOyVJnTp18kidjz76qJKTkxUeHq4mTZqoR48emjx5sn788UeP1A8AAAA0dGbvofEOmrOA+wZPP/20Yx+06667ziN1ZmRkKDMzU8XFxTp58qS2bt2q5557Tp07d1ZaWprpsv8AAAAAas/sPTRWcXRmqVUca/Ltt9/queeekyQlJyfrnnvuqVd9rVu31pgxYzRgwAC1b99eYWFhOnDggJYtW6bXX39dxcXFmjlzpux2u2bNmlVtXUVFRY6pl5KUl5dXr7YBAAAAwcR8BM2z76AFwyIhARPQjhw5onHjxqmkpEQ2m02vvfaaoqOj61xf7969tX//fjVq1KjK+YsuukijRo3SpEmTNHz4cOXm5mr27Nm67rrr1L17d5f1Pfnkk5o5c2ad2wMAAAAEM1dTHA3DkM1mc7u+YB1Bq9M3qAhJ9f0sWLCgVs87deqUrr76ah06dEiSNGvWLA0ZMqQuTXeIiYlxCmeV9enTRy+++KIkyTAMx7ErU6dOVW5uruNz8ODBerUPAAAACCaJic4Brbi4THl5xW7XZRgGAc1fCgsLNXLkSG3atEmS9OCDD+qRRx7xybOvv/56xcfHS5LS09OrLRsREaG4uLgqHwAAAADlXO+F5v40x5IS8zUigiGg1WmKY1hYmGMlxfpo3bp1tddLSkp03XXXafXq1ZKkiRMn6u9//3u9n1tbYWFh6tChgzZs2KDMzEyfPRcAAAAINmZTHKXyaY7nnhvvVl1mo2eSFB4e6na7rKbO76B5aol7V8rKynTzzTdr2bJlkspHs+bOnevVZ5phBUcAAACg/jw5guYqoAXDCJplv8GkSZO0ZMkSSdLvfvc7vf766z7fmLqkpMSxF1pSUpJPnw0AAAAEE1cjaHVZat9uLzU9T0DzkgcffFDz5s2TJA0dOlTvvvtutQt6eMuSJUscy+UPGjTI588HAAAAgkV1UxzdxQiaD6WlpenZZ5+VJPXv319Lly5VRESEW3Xs27fPsVJkamqq0/WcnBytWbOm2jrWr1+v+++/X5Jks9l01113udUGAAAAAL8yW8VRIqD9lqX2QXvhhRcce4m1adNGTz31lPbu3VvtPR07dnR7dC03N1eDBw/WhRdeqFGjRqlnz55q3bq1QkNDnTaqlqQpU6aoV69edftSAAAAABQZGabY2EY6fbrqsvqefAeNjao97L333nMcZ2ZmasCAATXes3fvXrVt27ZOz9u2bZu2bdvm8npoaKimTZum6dOn16l+AAAAAL9q3jzSJKAxglaZpQKaryQlJemdd95RRkaG1q9fr8zMTGVnZ6uwsFDx8fHq2LGjUlNTNXHixDqHPwAAAABVNW8eqb17T1U5V5eAZrcT0HyipvfCaqtt27bVLo8fHh6ucePGady4cR55HgAAAICamS21X5dVHIN5BC3wvwEAAACAgGC2kqNn30EL/I2qCWgAAAAAfMJsJcf8/BKdOVPiVj2MoAEAAABAPXlqLzQCGgAAAADUk9k7aJL70xzt9lLT8wQ0AAAAAKglRtBqFvjfAAAAAEBAcDWC5u5KjsG8UXXgfwMAAAAAAcH1CJp7UxwZQQMAAACAevLUFMdg3qg68L8BAAAAgIAQG9vIdBoi76D9KvC/AQAAAICAYLPZTN9DY4rjrwL/GwAAAAAIGGbTHD01gsYiIQAAAADgBm8GNEbQAAAAAMANZlMc3V1mn0VCAAAAAMADzEbQcnKKXI6KmWEEDQAAAAA8IDHRfKn948drP4rm+h200Dq1yUoIaAAAAAB8xhN7oTGCBgAAAAAeYPYOmuTeUvsENAAAAADwAE+MoNntpU7nQkJsCgmx1bldVkFAAwAAAOAzrkbQ3FnJ0WwELRhGzyQCGgAAAAAfcj2CVr8pjsGwSbVEQAMAAADgQ02aRJhORazvIiGMoAEAAACAm0JCbGrWLMLpvHvvoBHQAAAAAMAjzN5Dq+8URwIaAAAAANSB2Xto9Z3iyDtoAAAAAFAHZgGNVRzLBce3AAAAABAwzKY4ZmcXqqzMqNX9BDQAAAAA8JDEROcRtNJSQydPFtXqfhYJAQAAAAAPcb0XWu2mOTKCBgAAAAAe4o2AFh4eWq82WQUBDQAAAIBPmb2DJtV+qX1G0AAAAADAQ+o7gma3lzqdI6ABAAAAQB24GkGr7VL7jKABAAAAgIeYreIoMcVRIqABAAAA8LFGjUIUHx/udL5+i4QER7QJjm8BAAAAIKCYvYfGMvsENAAAAAB+YPYeWm2nOLJRNQAAAAB4UF1H0AzD0JkzJU7nmeIIAAAAAHVkFtCyswtlGEa19+Xm2k1H0FytDBloCGgAAAAAfM4sUBUWlio/33l0rLLDh82nQbZqRUADAAAAgDqp61L7v/xSYHq+devoerfJCghoAAAAAHzObIqjVPN7aIcPmwe0Vq0IaAAAAABQJwQ0cwQ0AAAAAD7nalGPuk5x5B00AAAAAKgjVyNo2dk1jaA5B7jGjRspJqaRR9rlbwQ0AAAAAD7nagTN1SqNv153HkELlumNkgUDWmpqqmw2W60+npKRkaGbb75Zbdu2VWRkpFq3bq0rrrhCS5Ys8dgzAAAAAPwqOjpM8fHhTuczM/Orvc9simOwTG+UpDB/N8DfHn/8cc2cOVNlZb9udnf48GEdPnxYn332mRYtWqS3335bkZHmQ7AAAAAA6qZNmxjl5tqrnKspoJmNsAXLEvuShQNar1699Oqrr3r1GfPmzdOMGTMkSeecc44effRRde3aVVlZWXr++ee1evVqLVu2TBMnTtQbb7zh1bYAAAAADU1ycox27Mipcu7QIdcBrbi4zPQdtWCa4mjZgBYTE6MuXbp4rf6TJ0/q//7v/yRJZ511ltatW6fExETH9d/97ncaPXq0li1bpjfffFN33nmnLr30Uq+1BwAAAGho2rRxDlZZWQUyDMP0laYjR4J7BUfJgu+g+cq///1vnTx5UpI0Z86cKuFMkkJDQ/Wvf/1LoaGhkqSnn37a100EAAAAglqbNjFO54qKSnX8eJFpeVcLiATTFMcGG9A+/PBDSVJcXJzGjBljWiY5OVmXXXaZJOmLL77Q6dOnfdU8AAAAIOiZBTTJ9Xtowb5JtdRAA5rdbtf69eslSf369VN4uPPqMRUGDRokSSoqKtKGDRt80j4AAACgIXA/oJmPoDHF0Qd27dql3r17q3HjxoqMjFRycrJGjhyphQsXqri4uF517969WyUlJZKkTp06VVu28vWdO3fW67kAAAAAfuVuQDNbYl9iBM0njhw5oo0bN+r06dMqKipSZmamPvroI02YMEHdu3evV1g6ePCg4zg5ObnasikpKab3AQAAAKif5OT6T3EMCbGpefPg2RLLcqs4hoSEaOjQobrqqqvUrVs3NWvWTKdOndLmzZs1d+5c7dy5Uzt27NDgwYO1fv16nXXWWW4/49SpU47j2NjYasvGxPzaaap7B62oqEhFRb++zJiXl+d2uwAAAICGJDExUo0ahai4uKzKeVdL7ZsFtBYtIhUaatlxJ7dZLqC9//77SkhIcDo/cOBA3XPPPbrjjjv02muv6ciRI/rTn/6k999/3+1nFBb+undCde+fSVJERITj+MwZ8zmvkvTkk09q5syZbrcFAAAAaKhCQmxKSorW/v1VB0IyM82nMv7yi/Pfx4NpeqNUxymOJSUlstls9f4sWLDAqW6zcFahUaNGmjdvnuO9sA8++ECZmZlutz8y8tchULvdXk1JVRkVi4py/fLh1KlTlZub6/gwHRIAAAComdl7aO5McQymJfYlC7+D5kpYWJhuv/12x8/p6elu19G4cWPHcU1L5+fn/9o5qpsOGRERobi4uCofAAAAANWrbUAzDMM0oAXTCo5SHac4hoWFeWRFw9atW9fpvvPPP99xXJcRtMoLgxw6dKjaspVHwiovGAIAAACg/tq0cR4BO3GiSGfOlCgq6te4kpdXrDNnSp3KBtsUxzq/g1bT8vTeZBhGve7v0KGDQkNDVVpaql27dlVbtvL1zp071+u5AAAAAKpytdR+VlaBzjnn11lprjapZoqjBezYscNxnJSU5Pb94eHh6tOnjyQpIyOj2vfQKqZQRkREqFevXm4/CwAAAIBrrpbaP3So6qtIrgJasI2gBVxAKykp0SuvvOL4+dJLL61TPaNGjZJUvhy+q5UgDx06pJUrV0qShg4dWuXdNQAAAAD153qz6qqB7PBh8xXVg+0dNEsFtNWrV+vkyZMurxcXF2vixImOaYfXXHON6Xth+/btc6wUmZqaalrXxIkTFR8fL0l65JFHdPz48SrXS0tLdc8996i0tHye65QpU+rwjQAAAABUx3VAq7pQyC+/NIwRNEvtg/baa69pxIgRGjFihFJTU9WxY0fFxcXp9OnT2rRpk2Ojaklq0aKFnn/++To/q2nTppozZ47uuusu7d+/XxdffLEee+wxde3aVVlZWXruuee0evVqSdINN9ygwYMHe+Q7AgAAAPhVUpJ5wPptQGso76BZKqBJ5cveL1q0SIsWLXJZpmvXrlqyZInatWtXr2dNmjRJWVlZ+stf/qKffvpJt912m1OZq666qsqUSgAAAACeExkZpmbNInT8eFGV884BzXmKY0xMmGJjG3m1fb5mqYD28MMPq3v37srIyNCOHTt07NgxnThxQhEREWrZsqV69eqlcePGafTo0QoNDfXIM2fOnKnLL79cL774otauXasjR44oISFB3bp106233qobbrjBI88BAAAAYK5NmxiTgFZ1xMxsimOwTW+ULBbQOnfurM6dO+tPf/pTvepp27atW0vx9+/fX/3796/XMwEAAADUTZs2Mdq27USVc7WZ4hhs0xsliy0SAgAAAKDhMVtqPysrX2Vlvw66mE1xDLYVHCUCGgAAAAA/M1vJsaTE0NGjZ/53XKZjx8wCGiNoAAAAAOBRNS21f/ToGZm9wcQIGgAAAAB4WJs21S+172qTat5BAwAAAAAPcz2CVr4wSEPZpFoioAEAAADws5qmOLrapJqABgAAAAAe1rRphCIjnfc5PnSo+oDGFEcAAAAA8DCbzWY6ilbdO2g2m9S8eaTX2+ZrBDQAAAAAflddQDN7B6158yiFhQVfnAm+bwQAAAAg4Jit5FjdO2jBOL1RIqABAAAAsACzEbS8vGKdPl1sOsUxGPdAkwhoAAAAACygupUczaY4BuMKjhIBDQAAAIAFuApou3adVEFBidN5RtAAAAAAwEuSk80D2saNx0zP8w4aAAAAAHiJqxG0TZuyTc8zxREAAAAAvKR162jZbM7nXY2gMcURAAAAALykUaMQtWjhHLqOHSs0Lc8URwAAAADwIlfTHM0wxREAAAAAvMhss2ozUVGhaty4kZdb4x8ENAAAAACWUNsRtPL31UxeWAsCBDQAAAAAluBqqf3fCtbpjRIBDQAAAIBF1HYELVhXcJQIaAAAAAAsovYBjRE0AAAAAPAqd95BC1YENAAAAACWwAgaAQ0AAACARcTFNVJMTFiN5XgHDQAAAAC8zGaz1WolR6Y4AgAAAIAP1GaaI1McAQAAAMAHahPQWrRgiiMAAAAAeF1NAS0xMVKNGgVvjAnebwYAAAAg4LRpU/30xWB+/0wioAEAAACwkJpG0IJ5BUeJgAYAAADAQmoOaIygAQAAAIBP1LTMPlMcAQAAAMBHWraMUmiozeV1pjgCAAAAgI+EhoZUO42RKY4AAAAA4EPVreTIFEcAAAAA8KHqFgphBA0AAAAAfKj6gMY7aAAAAADgM64CWkREqOLjw33cGt8ioAEAAACwFFdL7bduHS2bzfUKj8GAgAYAAADAUlyNoAX79EaJgAYAAADAYlyt4hjsC4RIBDQAAAAAFsMIGgAAAABYRExMI118cQun80OGtPFDa3zLUgEtLS1NNpvNrU9aWlqdnrVmzRqvPwMAAABA3Tz+eC/FxjZy/DxwYCuNGtXWfw3ykTB/N6C+Onbs6O8mAAAAAPCw4cOT9f334/Tll5mKjw/X6NHtFBIS3Cs4SpLNMAzD342ocPToUR09erTaMqWlpbr00kuVl5enuLg4HT58WFFR7s9FXbNmjQYPHixJeuWVV9S7d2+XZVu0aKEWLZyHWKuTl5en+Ph45ebmKi4uzu32AQAAAAgO7mQDS42g1SYIffLJJ8rLy5MkXXvttXUKZ7/Vrl07denSpd71AAAAAEB9WOodtNpYuHCh43j8+PF+bAkAAAAAeFZABbS8vDwtXbpUUvmo18CBA/3cIgAAAADwnIAKaO+8847OnDkjSbr55ptlswX/S4IAAAAAGo6ACmjemt746KOPKjk5WeHh4WrSpIl69OihyZMn68cff/TYMwAAAACgJgET0Pbv36+1a9dKki655BKdc845Hqs7IyNDmZmZKi4u1smTJ7V161Y999xz6ty5s9LS0mShhS4BAAAABDFLreJYnYULFzqC0oQJEzxSZ+vWrTVmzBgNGDBA7du3V1hYmA4cOKBly5bp9ddfV3FxsWbOnCm73a5Zs2ZVW1dRUZGKioocP1esNAkAAAAAtWWpfdCq07FjR/3444+KjIzU4cOHFR8fX6/68vPzFR4erkaNGpleX79+vYYPH67c3FzZbDZt3rxZ3bt3d1lfWlqaZs6c6XSefdAAAACAhs2dfdDqNMWxpKRENput3p8FCxbU6nnr1q1zvA82cuTIeoczSYqJiXEZziSpT58+evHFFyVJhmE4jl2ZOnWqcnNzHZ+DBw/Wu40AAAAAGpaAeAfNX3ufXX/99Y4wmJ6eXm3ZiIgIxcXFVfkAAAAAgDvq9A5aWFiYdu7cWe+Ht27dusYydrtdb731liSpZcuWuvzyy+v93NoKCwtThw4dtGHDBmVmZvrsuQAAAAAapjovEtKpUydPtsOl5cuX68SJE5KkG2+8UaGhoT55boUAeUUPAAAAQBCw/BRHf01vlMrftat49y0pKcmnzwYAAADQ8Fg6oB0/flwff/yxJKlbt27q1q2bT5+/ZMkSx3L5gwYN8umzAQAAADQ8lg5oixcvVnFxsST3Rs/27dvnWCkyNTXV6XpOTo7WrFlTbR3r16/X/fffL0my2Wy66667av18AAAAAKgLS29UXTG9MTQ0VDfeeKPH6s3NzdXgwYN14YUXatSoUerZs6dat26t0NBQp42qJWnKlCnq1auXx54PAAAAAGYsG9B++OEHbdiwQZJ0+eWXq2XLlh5/xrZt27Rt2zaX10NDQzVt2jRNnz7d7borFhepmCIJAAAAoGGqyAS1WYDQsgHNm4uDJCUl6Z133lFGRobWr1+vzMxMZWdnq7CwUPHx8erYsaNSU1M1ceJEtW3btk7POHXqlCQpJSXFgy0HAAAAEKhOnTrl2GfZFZvBOvJeUVZWpqysLDVu3Fg2m82vbcnLy1NKSooOHjzIBtqoFfoM3EWfgbvoM3AXfQbuslKfMQxDp06dUlJSkkJCql8GxLIjaIEuJCREycnJ/m5GFXFxcX7vnAgs9Bm4iz4Dd9Fn4C76DNxllT5T08hZBUuv4ggAAAAADQkBDQAAAAAsgoDWAERERGjGjBmKiIjwd1MQIOgzcBd9Bu6iz8Bd9Bm4K1D7DIuEAAAAAIBFMIIGAAAAABZBQAMAAAAAiyCgAQAAAIBFENAAAAAAwCIIaEHswIEDmjJlijp37qyYmBg1bdpUffr00d/+9jcVFBT4u3nwkc2bN2vWrFm68sorlZKSooiICMXGxqpDhw665ZZbtHbtWrfq+/TTTzVmzBglJycrIiJCycnJGjNmjD799FMvfQNYxUMPPSSbzeb4rFmzpsZ76C8NS3Z2tp566ildcsklatWqlSIiIpSUlKSLL75Y//d//6eMjIwa66DPNBx2u13z58/XFVdcodatWzv+fOrYsaNuu+02rVu3rlb10GcC29GjR7V8+XJNnz5dV155pRITEx1/ztxyyy1u1+eJ/lBQUKCnn35affr0UdOmTRUbG6vOnTtrypQpOnDggNttcpuBoLR8+XIjPj7ekGT66dixo/HTTz/5u5nwsksvvdRlH6j8ufnmm42ioqJq6yorKzPuvPPOauu58847jbKyMh99O/jS1q1bjbCwsCq/79WrV7ssT39peN5++22jWbNm1f7OR44c6fJ++kzDcuDAAaNr1641/vk0efJkl79z+kxwqO73N2HChFrX46n+sGfPHqNjx44u64iPjzdWrFhRz29dPQJaENq6dasRHR1tSDJiY2ONJ554wvjmm2+ML7/80rjjjjscHaxTp07GqVOn/N1ceNE555xjSDKSkpKMBx54wHj33XeN9evXGxkZGcYzzzxjtGnTxtEfbrjhhmrrevTRRx1le/ToYSxevNhYv369sXjxYqNHjx6Oa4899piPvh18pbS01Ojdu7chyWjRokWtAhr9pWF57bXXjJCQEEcfmTFjhvHFF18YmzZtMlasWGH84x//MIYNG2aMGzfOZR30mYajuLi4Sji78MILjQULFhgZGRnG559/bkyfPt2IiYlxXH/qqadM66HPBIfK4SclJcUYPnx4nQKaJ/rDqVOnjE6dOjnK3nHHHcaXX35pfPPNN8YTTzxhxMbGGpKM6Oho47vvvvPAtzdHQAtCqamphiQjLCzM+Oabb5yuP/XUU46ON3PmTD+0EL5y9dVXG2+99ZZRUlJiev3YsWNGhw4dHP3hP//5j2m53bt3O0ZPevXqZRQUFFS5np+fb/Tq1cvR7/bs2ePx7wL/efbZZx3/qDN16tQaAxr9pWHZsWOHERERYUgyBg4caJw8edJlWVcj9fSZhuXdd991/P9Iv379TP+M2rhxo9GoUSNDktGkSROjuLi4ynX6TPCYPn26sWzZMuPw4cOGYRjG3r173Q5onuoPM2bMqPYfBr755hvHcwYPHuzeF3UDAS3IrF+/3tGxJk2aZFqmtLTU6Ny5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7rvvdP311+vzzz/XE088obS0NEnSRRddpK5du8pms+mrr77Snj17JEnvvfeeZs+erccee8zlcw8fPqwhQ4Zo586djnOdO3dW9+7d1bhxYx09elRfffWVsrOzdfLkSV133XV6/fXXdeONN9b5uwIAfIMRNABA0KrNiJi75SuPoIWHh0uSXnzxRd1+++2y2WyOcu+//76uv/56lZSUSJKeeeYZTZkyRW3atNGSJUvUv39/R9mysjI98sgjevrppyVJsbGxOnz4sGJiYpyeX1ZWpssuu0yrV6+WVB705s6dq169elUpV1hYqDlz5mjmzJkyDEMxMTHavn27W6OLAADf4x00AADqyG636//9v/+niRMnVglnkjRmzBjdfvvtjp8ffPBBRUZG6osvvqgSziQpJCREs2fPVufOnSVJp0+f1vLly02f+eabbzrCWffu3ZWenu4UziQpMjJSM2bM0LRp0yRJ+fn5euqpp+r+ZQEAPkFAAwCgjnr06KEJEya4vH799ddX+fmuu+5Sx44dTcuGhITo2muvdfy8YcMG03LPPPOM4/iFF15QbGxstW2cOnWqEhISJEmLFy92+e4bAMAaCGgAANTR2LFjq73epUuXOpffu3ev0/VffvlFW7dulVT+7tyAAQNqbGNkZKT69esnScrNzdX3339f4z0AAP9hkRAAAOroggsuqPZ6xcqNFc4///xal8/Ly3O6npGR4Tg2DEP33XdfbZqpn376yXF88OBBXXjhhbW6DwDgewQ0AADqKD4+vtrrYWFV/5h1p3xxcbHT9aysrCrHL774Ym2aWQX7ogGAtTHFEQCAOvrtwiCeLv9bubm59bpfkmNVSQCANTGCBgBAgKi87P6oUaP0wQcf+LE1AABvYAQNAIAA0bJlS8fx7t27/dgSAIC3ENAAAEGrvlMKraZv376O4//+9786dOiQH1sDAPAGAhoAIGhFRkY6js0W3Qg07dq1c2xmLUnPPfec/xoDAPAKAhoAIGg1a9bMcZyZmenHlnjOww8/7Dh+/vnntXLlylrfe/jwYW80CQDgQQQ0AEDQ6tq1q+P47bff9mNLPOemm27SkCFDJJWvyHj11Vdrzpw5ys/PNy1/+vRpLV68WEOGDNH999/vy6YCAOqAVRwBAEFr7NixevnllyVJL730kjZv3qyLLrpI0dHRjjJ33323zjnnHH810W2hoaF6++23NWzYMG3ZskV2u12PPPKIHn/8cfXt21dnnXWWwsPDlZOTox9//FE7duxwTO8cO3asn1sPAKgJAQ0AELQuu+wy3XTTTXrjjTckSd9++62+/fbbKmV+97vfBVRAk8qnbn799dd68MEHNW/ePJWUlKigoECrVq1yeU9UVJR69uzpw1YCAOqCgAYACGoLFy7U1VdfrTfffFNbt25Vdna2CgsL/d2seouKitJLL72khx9+WG+88YZWrVqlH3/8UcePH1dZWZni4+PVvn17devWTUOHDtUVV1yhuLg4fzcbAFADm2EYhr8bAQAAAABgkRAAAAAAsAwCGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGARBDQAAAAAsAgCGgAAAABYBAENAAAAACyCgAYAAAAAFkFAAwAAAACLIKABAAAAgEUQ0AAAAADAIghoAAAAAGAR/z/p+qgW0ksOwQAAAABJRU5ErkJggg==", + "application/vnd.jupyter.widget-view+json": { + "model_id": "20697a11aca948d8b5cb52d18e7eb6c9", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAJYCAYAAADxHswlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAARWhJREFUeJzt3XuclVW9P/DvhnFALjOIIP5gCFDkophSqHhL0vCSFoWSekqh4xGtI2UdtMgLUt7QY1r+vERe0NMJUbxjEpYmIiJSVF7QBEFuolg6w/36/P7wNfs3OBdmuM0aeL9fr/16PTNrPWutvb8x9tnr2c/OZVmWBQAAAFCvGtX3AgAAAAABHQAAAJIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABBfW9AHauTZs2xZIlS6Jly5aRy+XqezkAAEA9ybIsli9fHu3bt49GjezdpkBA380sWbIkOnbsWN/LAAAAErFw4cIoKSmp72UQAvpup2XLlhHxyT/CoqKiel4NAABQX8rKyqJjx475jED9E9B3M+WXtRcVFQnoAACAj74mxAcNAAAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRgtwjoH3zwQUycODGuvPLKOOWUU6JNmzaRy+Uil8vFkCFD6jzepEmTYuDAgVFSUhJNmjSJkpKSGDhwYEyaNGn7L76C22+/Pb/uXC4XY8eO3aHzAQAAsPMU1PcCdoZ27dptl3GyLIsLL7wwxowZs9nvFy9eHI8++mg8+uijMXTo0Ljzzjsjl8ttlznLLVmyJEaMGLFdxwQAACAdu8UOekUdO3aME088cavOvfzyy/PhvHfv3jFu3LiYMWNGjBs3Lnr37h0REWPGjIkrrrhiu6233EUXXRRlZWWxzz77bPexAQAAqH+7RUC/8sor48knn4ylS5fGggUL4le/+lWdx5gzZ07ccMMNERHRp0+fePHFF+Oss86Kww47LM4666yYOnVq9OnTJyIiRo8eHXPnzt1u63/88cfj0UcfjbZt28aPfvSj7TYuAAAA6dgtAvqoUaPitNNO26ZL3W+++ebYsGFDRETceuutseeee27W3qxZs7j11lsjImLDhg1xyy23bPVcFS1fvjwuuuiiiIj47//+72jduvV2GRcAAIC07BYBfVtlWRaPP/54RET06NEj+vbtW2W/vn37Rvfu3SMi4rHHHossy7Z57hEjRsSiRYuiX79+ce65527zeAAAAKRJQK+FefPmxeLFiyMi4rjjjquxb3n7okWLYv78+ds078svvxx33HFHFBYWxh133LFNYwEAAJA2Ab0WZs+enT/u0aNHjX0rtlc8r67Wr18f559/fmzatCkuueSSLc4LAABAwyag18LChQvzxyUlJTX27dixY5Xn1dWNN94Yr776auy3335x2WWXbfU4AAAANAy7xfegb6vly5fnj1u0aFFj3+bNm+ePV6xYsVXzzZkzJ372s59FRMRtt91W6YZ0dbF27dpYu3Zt/ueysrKtHgsAAIAdxw56LaxZsyZ/XFhYWGPfJk2a5I9Xr169VfNdeOGFsWbNmhg0aFCcfPLJWzVGueuuuy6Ki4vzj4o7/AAAAKRDQK+Fpk2b5o/XrVtXY9+Ku9Vbs/M9duzY+OMf/xhFRUXb5avaRowYEaWlpfnHtlx2DwAAwI7jEvdaaNmyZf54S5etr1y5Mn+8pcvhP23ZsmUxfPjwiIj42c9+Fu3bt6/T+VVp0qTJZrv6AAAApElAr4WKN4ZbtGhRjX0r7lDX9XLyu+66K/75z39Gq1atYu+9944HHnigUp+XX355s+Py3f3jjz8+9tlnnzrNBwAAQDoE9Fo48MAD88dvvvlmjX0rtvfs2bNO85RfHv/xxx/Ht771rS32v/POO+POO++MiIjnnntOQAcAAGjAfAa9Frp06ZK/3Pz555+vse+UKVMiIqJDhw7RuXPnHb00AAAAdhECei3kcrkYMGBARHyyQz59+vQq+02fPj2/gz5gwIDI5XJ1mueqq66KLMtqfNx77735/vfee2/+9/369du6JwcAAEASBPRauvjii6Og4JNPBAwbNqzSV6itXr06hg0bFhERBQUFcfHFF1c5Tr9+/SKXy0Uul4v58+fvyCUDAADQgOwWn0GfOnVqzJkzJ//zhx9+mD+eM2dOjB07drP+Q4YMqTRGt27dYvjw4XH99dfHzJkz4+ijj44f/ehHsf/++8fcuXNj9OjRMWvWrIiIuOSSS+KAAw7YIc8FAACAXdNuEdDvuuuuuO+++6pse/HFF+PFF1/c7HdVBfSIiGuuuSY++OCDuOeee2LWrFlx1llnVepz3nnnxdVXX73NawYAAGD34hL3OmjUqFHcfffd8dRTT8WAAQOiffv2UVhYGO3bt48BAwbE7373u7jrrruiUSMvKwAAAHWTy7Isq+9FsPOUlZVFcXFxlJaWRlFRUX0vBwAAqCeyQXps9QIAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgATsFgH9gw8+iIkTJ8aVV14Zp5xySrRp0yZyuVzkcrkYMmRIncebNGlSDBw4MEpKSqJJkyZRUlISAwcOjEmTJm2X9b711ltx8803x9e+9rXo0qVL7LnnntGsWbPo0qVLnHnmmfHUU09FlmXbZS4AAADSkMt2g6SXy+WqbRs8eHCMHTu2VuNkWRYXXnhhjBkzpto+Q4cOjTvvvLPGOWsyePDguP/++7fY76STTooHHnggWrVqVafxy8rKori4OEpLS6OoqGir1ggAADR8skF6dosd9Io6duwYJ5544lade/nll+fDee/evWPcuHExY8aMGDduXPTu3TsiIsaMGRNXXHHFVq9v8eLFERHRunXrGDp0aPz2t7+NadOmxYwZM+JXv/pVdO/ePSIifv/738dXvvKV2LRp01bPBQAAQDp2ix30kSNHxmGHHRaHHXZYtGvXLubPnx9dunSJiNrvoM+ZMyd69uwZGzZsiD59+sSUKVNizz33zLevWrUqjjvuuJg5c2YUFBTEm2++Gfvvv3+d1zpkyJA46qijYvDgwdGkSZNK7atWrYqTTjoppk6dGhER999/f5xzzjm1Ht+7ZAAAQIRskKLdYgd91KhRcdppp0W7du22eoybb745NmzYEBERt95662bhPCKiWbNmceutt0ZExIYNG+KWW27ZqnnGjh0bQ4cOrTKcl89zxx135H+eMGHCVs0DAABAWnaLgL6tsiyLxx9/PCIievToEX379q2yX9++ffOXoD/22GM77EZuvXr1ijZt2kRExNy5c3fIHAAAAOxcAnotzJs3L//Z8OOOO67GvuXtixYtivnz5++wNa1bty4iIho1UkIAAIBdgXRXC7Nnz84f9+jRo8a+Fdsrnrc9zZo1K8rKymq1HgAAABoGAb0WFi5cmD8uKSmpsW/Hjh2rPG97uvbaa/PH3/jGN3bIHAAAAOxcBfW9gIZg+fLl+eMWLVrU2Ld58+b54xUrVmz3tTz88MP5G8N9/vOfj9NPP73G/mvXro21a9fmfy7feQcAACAtdtBrYc2aNfnjwsLCGvtWvPv66tWrt+s63nzzzfj2t78dERF77rln3H///ZHL5Wo857rrrovi4uL8o+IOPwAAAOkQ0GuhadOm+ePym7NVp+Ju9ae/im1bLFmyJE455ZRYvnx55HK5uPvuu+PAAw/c4nkjRoyI0tLS/GNHXXYPAADAtnGJey20bNkyf7yly9ZXrlyZP97S5fC19a9//StOPPHE/F3hf/GLX8TZZ59dq3ObNGlS7XeqAwAAkA476LVQ8cZwixYtqrFvxR3q7XE5+fLly+Pkk0+O119/PSIifvazn8WwYcO2eVwAAADSIqDXQsVLyd98880a+1Zs79mz5zbNu3r16vjKV74Sr7zySkREXHLJJXH55Zdv05gAAACkSUCvhS5dukT79u0jIuL555+vse+UKVMiIqJDhw7RuXPnrZ5z/fr1cfrpp+fnu/DCC+OGG27Y6vEAAABIm4BeC7lcLgYMGBARn+yQT58+vcp+06dPz++gDxgwYIt3WK/Oxo0b49/+7d/i6aefjoiIc845J26//fatGgsAAICGQUCvpYsvvjgKCj65p96wYcMqfYXa6tWr858NLygoiIsvvrjKcfr16xe5XC5yuVz+pm8VZVkW559/fv67zk8//fS49957tzrsAwAA0DDsFndxnzp1asyZMyf/84cffpg/njNnTowdO3az/kOGDKk0Rrdu3WL48OFx/fXXx8yZM+Poo4+OH/3oR7H//vvH3LlzY/To0TFr1qyI+OSz4gcccMBWrXX48OFx7733RkREr1694ic/+UnMnj27xnN69eq1VXMBAACQjlyWZVl9L2JHGzJkSNx333217l/dS7Jp06Y4//zz45577qn23PPOOy/GjBkTjRpVfXFCv3798p8rnzdvXqXPqXfu3DnefffdWq+1pvVWpaysLIqLi6O0tDSKiorqNA8AALDrkA3S4xL3OmjUqFHcfffd8dRTT8WAAQOiffv2UVhYGO3bt48BAwbE7373u7jrrruqDecAAABQnd1iB53/z7tkAABAhGyQIlu9AAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAbtFQP/ggw9i4sSJceWVV8Ypp5wSbdq0iVwuF7lcLoYMGVLn8SZNmhQDBw6MkpKSaNKkSZSUlMTAgQNj0qRJ23Xd//znP2PkyJFxyCGHRHFxcRQVFcUhhxwSI0eOjH/+85/bdS4AAADqVy7Lsqy+F7Gj5XK5atsGDx4cY8eOrdU4WZbFhRdeGGPGjKm2z9ChQ+POO++scc7aeOWVV2LAgAHx3nvvVdnevn37ePzxx6NPnz51GresrCyKi4ujtLQ0ioqKtmmNAABAwyUbpGe32EGvqGPHjnHiiSdu1bmXX355Ppz37t07xo0bFzNmzIhx48ZF7969IyJizJgxccUVV2zTGhcvXhxf+cpX4r333ouCgoK49NJLY8qUKTFlypS49NJLo6CgIJYsWRKnnXZaLF68eJvmAgAAIA27xQ76yJEj47DDDovDDjss2rVrF/Pnz48uXbpERO130OfMmRM9e/aMDRs2RJ8+fWLKlCmx55575ttXrVoVxx13XMycOTMKCgrizTffjP3333+r1jtkyJC47777IiLiwQcfjEGDBm3W/tBDD8U3vvGNiIj49re/Hffcc0+tx/YuGQAAECEbpGi32EEfNWpUnHbaadGuXbutHuPmm2+ODRs2RETErbfeulk4j4ho1qxZ3HrrrRERsWHDhrjlllu2ap73338/fvOb30RExEknnVQpnEdEDBo0KE466aSIiLj//vvj/fff36q5AAAASMduEdC3VZZl8fjjj0dERI8ePaJv375V9uvbt2907949IiIee+yx2JqLE5544onYuHFjRHyyO16d8pvbbdy4MZ544ok6zwMAAEBaBPRamDdvXv6z3scdd1yNfcvbFy1aFPPnz6/zXC+88EKlsWqaJyJi6tSpdZ4HAACAtBTU9wIagtmzZ+ePe/ToUWPfiu2zZ8/Of9a9rnMVFxfHvvvuW22///N//k8UFRVFWVnZZutrCH75y9di3Lg59b0MAACoV2ef3TW+971e9b0MEiKg18LChQvzxyUlJTX27dixY5Xn1XWuLc1TPtfrr7++VfPUp3ffXR7Tp39Q38sAAIB6ddRRW3+PLHZNAnotLF++PH/cokWLGvs2b948f7xixYqtnmtL81Scq6Z51q5dG2vXrs3/XFZWVuc1AQAAsOP5DHotrFmzJn9cWFhYY98mTZrkj1evXr3Vc21pnopz1TTPddddF8XFxflHxR1+AAAA0iGg10LTpk3zx+vWrauxb8Xd6k9/FVtd5trSPBXnqmmeESNGRGlpaf7R0C6HBwAA2F24xL0WWrZsmT/e0mXrK1euzB/X5jL1quZatWpVrS6PL5+rpnmaNGmy2a5+Cjp1ahl9++5T38sAAIB61alTyy13YrcioNdCxRu2LVq0qMa+FXeot+Zy8pKSknj//fe3OE/FuRraZevf+14vd6sEAAD4FJe418KBBx6YP37zzTdr7FuxvWfPnls9V2lpaSxdurTafu+9917+hm9bMw8AAABpEdBroUuXLtG+ffuIiHj++edr7DtlypSIiOjQoUN07ty5znMdc8wx+eOa5qrYdvTRR9d5HgAAANIioNdCLpeLAQMGRMQnO+TTp0+vst/06dPzO+gDBgyIXC5X57m++tWvRqNGn5Tl3nvvrbbf2LFjIyKiUaNG8dWvfrXO8wAAAJAWAb2WLr744igo+OQj+8OGDav01WarV6+OYcOGRUREQUFBXHzxxVWO069fv8jlcpHL5WL+/PmV2vfdd9/45je/GRERv//972PChAmV+jz00EPx+9//PiIizjnnnNh333239mkBAACQiN3iJnFTp06NOXPm5H/+8MMP88dz5szJ70aXGzJkSKUxunXrFsOHD4/rr78+Zs6cGUcffXT86Ec/iv333z/mzp0bo0ePjlmzZkVExCWXXBIHHHDAVq/3mmuuiUmTJsWyZcvi7LPPjpkzZ8Zpp50WERETJ06Mm266KSIi2rZtG1dfffVWzwMAAEA6clmWZfW9iB1tyJAhcd9999W6f3UvyaZNm+L888+Pe+65p9pzzzvvvBgzZkz+MvVP69evX/7z4/Pmzav2c+ovv/xyfO1rX6v2RnH77rtvPPbYY3HEEUfU8EwqKysri+Li4igtLY2ioqI6nQsAAOw6ZIP0uMS9Dho1ahR33313PPXUUzFgwIBo3759FBYWRvv27WPAgAHxu9/9Lu66665qw3ldHHHEEfHqq6/G5ZdfHr169YoWLVpEixYt4uCDD47LL788XnvttTqHcwAAANK1W+yg8/95lwwAAIiQDVJkBx0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQK+jNWvWxO233x4nnHBCtG3bNgoLC6NDhw5x6qmnxvjx47fbPG+88UYMGzYsDj744CgqKorCwsJo27ZtfPGLX4ybb745li9fvt3mAgAAoP7lsizL6nsRDcVbb70VAwYMiLfeeqvaPieffHJMmDAhmjdvvtXz3HTTTfHjH/84NmzYUG2fTp06xRNPPBGf/exn6zR2WVlZFBcXR2lpaRQVFW31GgEAgIZNNkiPHfRaWrZsWfTv3z8fzgcNGhQTJ06Mv/zlLzFx4sQYNGhQRERMmjQpzj777K2e58EHH4zhw4fHhg0borCwMH7wgx/EU089FS+//HL89re/jWOOOSYiIt599904+eSTo7S0dNufHAAAAPXODnotXXTRRXHbbbdFRMTIkSPjqquuqtRn5MiR8dOf/jQiIh5++OEYOHBgnec5+OCD47XXXouIiIkTJ8app55aqc/pp58ejzzySER8stv+wx/+sNbje5cMAACIkA1SJKDXwsaNG6NNmzbx8ccfR6dOnWLu3LnRuHHjKvvtt99+sWDBgujTp0+88sordZqn/B9IRMTnPve5+POf/1xlv7///e9xyCGHRMQnYX3ChAl1nsM/QgAA2L3JBulxiXstvP322/Hxxx9HRET//v2rDOcREY0bN47+/ftHRMTMmTNj/vz5dZpn3bp1+eP99tuv2n77779//njt2rV1mgMAAIA0Cei18K9//St/3K5duxr7VmyfMmVKneZp06ZNtG7dOiIi3nnnnWr7zZ07N3/crVu3Os0BAABAmgT0Wqh4R/Yt3ZStYvsbb7xR57mGDh0aERF/+ctf4umnn66yz89+9rOI+GTH/j/+4z/qPAcAAADpKajvBTQEXbt2jT322CPWr1+/xV3xiu0LFiyo81yXXXZZzJw5M/7whz/E17/+9bjooovihBNOiDZt2sQ777wTd9xxRzz//PPRuHHj+OUvfxk9e/as8xwAAACkxw56LTRv3jxOOOGEiPjkBm3jxo2rst+4cePi1Vdfzf+8fPnyOs/VokWLePrpp+PXv/51lJSUxE033RRf/vKX4/DDD4+zzjornn/++Rg4cGC8+OKL8d3vfneL461duzbKyso2ewAAAJAeAb2WRo0aFQUFn1xwMHjw4Lj66qtjwYIFsX79+liwYEFcffXVMXjw4CgsLMyfs3r16q2aa+bMmTFu3LhqP4f+hz/8Ie67775ahe3rrrsuiouL84+OHTtu1ZoAAADYsQT0Wjr88MPj7rvvjsLCwli/fn1cccUV0alTpygsLIxOnTrFFVdcEZs2bYqbbropf07Lli3rPM+ECROiX79+8eyzz8bBBx8cjz76aPzzn/+MdevWxdy5c+Paa6+N9evXxx133BFHHXVULF26tMbxRowYEaWlpfnHwoUL67wmAAAAdjwBvQ7OPffcmDFjRgwaNGiz8N2oUaM44YQT4sUXX4x+/frlf7/XXnvVafz3338/hgwZEmvXro2DDjoopk2bFl/72teidevWsccee8R+++0XI0aMiCeffDJyuVy8/vrrMWzYsBrHbNKkSRQVFW32AAAAID1uEldHhxxySDz44IOxcePGeO+992LNmjXRvn37aNasWURE/Pa3v833PfDAA+s09gMPPBArV66MiIif/OQnm909vqITTjghTjjhhPjDH/4QjzzySHz00Ud1fjMAAACAtNhB30qNGzeOkpKS6Nq1az6cR0RMnTo1f3zEEUfUaczZs2fnjz/3uc/V2Pfzn/98RERs2rQp/vGPf9RpHgAAANIjoG9H69atiwkTJkRERIcOHeKoo46q0/nlN6GLiNiwYUONfdevX1/leQAAADRMAvp29Itf/CKWLVsWEREXXnhhNG7cuE7nd+nSJX/8wgsv1Ni3/PvWc7lcdO7cuW4LBQAAIDkCeh0sWLCg2rYnn3wyLrvssoiIOOCAA2L48OGV+owdOzZyuVzkcrm46qqrKrWfeuqpkcvlIiLimmuuicWLF1c515gxY2LmzJkREdG3b9/Ye++96/pUAAAASIxro+ugV69eceSRR8agQYPioIMOisLCwpg/f3489NBDMX78+Ij45M7t48ePj6ZNm9Z5/B49esS3v/3tuOeee2Lx4sXRu3fvuPjii+PYY4+Nli1bxsKFC+OBBx7I34iucePGce21127X5wgAAED9ENDrYNOmTTF58uSYPHlyle0HHnhg/OY3v4nevXtv9Ry33357rFy5MsaPHx/Lli3L78p/WvPmzWPMmDGbfa0bAAAADZeAXgd33XVXTJ48OWbMmBHvvfderFixItq2bRuf/exn44wzzohzzjkn9thjj22ao0mTJvHAAw/EBRdcEGPHjo3p06fH4sWLY+3atVFUVBTdu3ePL33pSzF06NAoKSnZTs8MAACA+pbLsiyr70Ww85SVlUVxcXGUlpZGUVFRfS8HAACoJ7JBetwkDgAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBAr6M1a9bE7bffHieccEK0bds2CgsLo0OHDnHqqafG+PHjt/t8f/jDH2LIkCHRtWvXaN68eRQXF0e3bt3ijDPOiDvuuCNWrFix3ecEAABg58tlWZbV9yIairfeeisGDBgQb731VrV9Tj755JgwYUI0b958m+b66KOP4tvf/nY8/vjjNfabNWtWHHroobUet6ysLIqLi6O0tDSKioq2aY0AAEDDJRukp6C+F9BQLFu2LPr37x8LFy6MiIhBgwbF4MGDo3379rFkyZK477774qGHHopJkybF2WefHU888cRWz1VaWhr9+/ePP//5zxERceqpp8ZZZ50VXbt2jY0bN8a7774br7zySkyYMGG7PDcAAADqnx30Wrrooovitttui4iIkSNHxlVXXVWpz8iRI+OnP/1pREQ8/PDDMXDgwK2a69xzz43/+Z//iYKCgvjNb34TZ555ZpX9siyLjRs3RkFB7d9n8S4ZAAAQIRukSECvhY0bN0abNm3i448/jk6dOsXcuXOjcePGVfbbb7/9YsGCBdGnT5945ZVX6jzX1KlT49hjj42IiKuuuipGjhy5zeuvyD9CAAAgQjZIkZvE1cLbb78dH3/8cURE9O/fv8pwHhHRuHHj6N+/f0REzJw5M+bPn1/nuf7v//2/ERHRokWL+K//+q+tWi8AAAANj4BeC//617/yx+3atauxb8X2KVOm1GmedevW5W8Kd8opp0SLFi0iImLDhg3x7rvvxoIFC2LdunV1GhMAAICGQUCvhYp3ZC8tLa2xb8X2N954o07z/O1vf4s1a9ZERMSRRx4ZS5cujW9/+9vRqlWr6Ny5c3Tq1CmKi4vjy1/+ckybNq1OYwMAAJA2Ab0WunbtGnvssUdEbHlXvGL7ggUL6jRPxUC/Zs2aOPjgg2Ps2LGxcuXKzX7/9NNPx7HHHhu33HJLncYHAAAgXQJ6LTRv3jxOOOGEiIj4+9//HuPGjauy37hx4+LVV1/N/7x8+fI6zVPxUvpRo0bFhx9+GKeddlrMnDkz1qxZE++//37cfvvtUVRUFJs2bYof/vCH8fTTT9c45tq1a6OsrGyzBwAAAOkR0Gtp1KhR+a8zGzx4cFx99dWxYMGCWL9+fSxYsCCuvvrqGDx4cBQWFubPWb16dZ3mqLhTvnbt2vjKV74Sjz/+eHz+85+PJk2axD777BPf+c534qmnnopGjRpFlmVx6aWXRk034r/uuuuiuLg4/+jYsWMdnzkAAAA7g4BeS4cffnjcfffdUVhYGOvXr48rrrgiOnXqFIWFhdGpU6e44oorYtOmTXHTTTflz2nZsmWd5mjatOlmP994443RqFHlEh1zzDH571h/7bXX4rXXXqt2zBEjRkRpaWn+sXDhwjqtCQAAgJ1DQK+Dc889N2bMmBGDBg3aLHw3atQoTjjhhHjxxRejX79++d/vtddedRq/4phdunSJ7t27V9v3pJNOyh/X9H3rTZo0iaKios0eAAAApKegvhfQ0BxyyCHx4IMPxsaNG+O9996LNWvWRPv27aNZs2YREfHb3/423/fAAw+s09gVLz8vKSmpdd8PPvigTvMAAACQHgF9KzVu3LjKED116tT88RFHHFGnMQ866KD88caNG2vsW7G9/LPxAAAANFwucd+O1q1bFxMmTIiIiA4dOsRRRx1Vp/M7deoUn/nMZyIiYu7cuTX2rdjeoUOHOq4UAACA1Ajo29EvfvGLWLZsWUREXHjhhdG4ceM6j3H66adHRMT7778f06ZNq7bfI488kj8+9thj6zwPAAAAaRHQ62DBggXVtj355JNx2WWXRUTEAQccEMOHD6/UZ+zYsZHL5SKXy8VVV11V5TgXX3xx/m7u3/ve9zb76rVyv/nNb+JPf/pTRESceuqpW/y8OgAAAOnz4eU66NWrVxx55JExaNCgOOigg6KwsDDmz58fDz30UIwfPz4iPrlz+/jx4yt9ZVptfeYzn4mf/vSncemll8af//znOPzww+PSSy+NXr16RWlpaTzyyCNx5513RkREUVFR3Hzzzdvt+QEAAFB/BPQ62LRpU0yePDkmT55cZfuBBx4Yv/nNb6J3797bNM8ll1wS//rXv2L06NHxxhtvxJAhQyr12WeffeKxxx6LAw44YJvmAgAAIA0Ceh3cddddMXny5JgxY0a89957sWLFimjbtm189rOfjTPOOCPOOeec2GOPPbbLXNddd1189atfjTvuuCNeeOGFeO+996Jp06bRrVu3+OpXvxrDhg2L4uLi7TIXAAAA9S+XZVlW34tg5ykrK4vi4uIoLS2NoqKi+l4OAABQT2SD9LhJHAAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAEFNT3Ati5siyLiIiysrJ6XgkAAFCfyjNBeUag/gnou5nly5dHRETHjh3reSUAAEAKli9fHsXFxfW9DCIil3m7ZLeyadOmWLJkSbRs2TJyuVy9rqWsrCw6duwYCxcujKKionpdC9uPuu561HTXpK67HjXd9ajprimlumZZFsuXL4/27dtHo0Y+/ZwCO+i7mUaNGkVJSUl9L2MzRUVF9f7Hie1PXXc9arprUtddj5ruetR015RKXe2cp8XbJAAAAJAAAR0AAAASIKBTb5o0aRIjR46MJk2a1PdS2I7Uddejprsmdd31qOmuR013TepKTdwkDgAAABJgBx0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0NnpFixYEMOHD4+ePXtG8+bNo3Xr1nH44YfHf//3f8eqVavqe3kN3gcffBATJ06MK6+8Mk455ZRo06ZN5HK5yOVyMWTIkDqPN2nSpBg4cGCUlJREkyZNoqSkJAYOHBiTJk2q9RirVq2KG2+8MQ4//PBo3bp1tGjRInr27BnDhw+PBQsW1Hqc119/PS688MLo2rVr7LnnntG2bdv4whe+EL/61a9iw4YNdX5uDclf/vKXuPbaa+OUU06Jjh07RpMmTaJFixbRrVu3GDJkSLzwwgt1Gk9d61dZWVk88MAD8V//9V9x3HHHRdeuXaO4uDgKCwtjn332iX79+sUNN9wQ//znP2s1nnqm79JLL83/Lc7lcvGnP/1pi+eoaxoq1q2mR79+/bY4lpqm6cMPP4wbbrghjj766Nh3332jSZMm0b59+zjiiCPikksuiZdeemmLY6gt200GO9HEiROz4uLiLCKqfHTv3j2bO3dufS+zQavutY2IbPDgwbUeZ9OmTdnQoUNrHG/o0KHZpk2bahxnzpw5Wffu3asdo7i4OHvqqae2uJ677rora9KkSbXj9O3bN/vwww9r/fwaki984Qs11qH8cc4552Rr166tcSx1TcMzzzxTq5q2adMmmzRpUrXjqGfD8Ne//jUrKCjY7LV47rnnqu2vrmmpzb/ViMiOO+64asdQ03Q9+OCD2d57711jbQYMGFDt+WrL9iags9P89a9/zZo1a5ZFRNaiRYvsmmuuyaZNm5b98Y9/zM4///z8H44ePXpky5cvr+/lNlgV/wh37NgxO/HEE/M/1yWg/+QnP8mf17t372zcuHHZjBkzsnHjxmW9e/fOt1122WXVjrF8+fKsR48e+b7nn39+9sc//jGbNm1ads0112QtWrTIIiJr1qxZ9re//a3acSZNmpQ1atQoi4isXbt22S9/+cvs5Zdfzp5++uls4MCB+fG/8IUvZBs3bqzLy9Ug7L///llEZO3bt8++//3vZxMmTMhmzJiRvfTSS9nPf/7zrEOHDvnX4Oyzz65xLHVNwzPPPJN17NgxO/fcc7Nf/OIX2SOPPJK99NJL2YsvvpiNHz8+GzRoUNa4ceMsIrLCwsJqX0f1TN/GjRuzww47LIuIbJ999qlVQFfXtJQ/x+985zvZq6++Wu3jnXfeqXYMNU3Tfffdl38t9tlnn2zkyJHZM888k/35z3/OnnrqqeyXv/xl1r9//+yMM86odgy1ZXsT0Nlp+vXrl0VEVlBQkE2bNq1S+w033JD/wzFq1Kh6WOGu4corr8yefPLJbOnSpVmWZdm8efPqHNDffvvt/G5Pnz59slWrVm3WvnLlyqxPnz75es6ZM6fKcUaOHJmf+4YbbqjUPm3atPw8X/ziF6scY/369VnXrl2ziMiKioqqnOu73/1ufp777ruvVs+xITn11FOz8ePHZxs2bKiyfdmyZVm3bt3yr8GUKVOq7Keu6aiulhU9+uij+ec/cODASu3q2TDcfPPN+TefR4wYscWArq7pKX9+I0eO3Krz1TRNb7zxRn6n+dhjj80+/vjjavtWd3Wa2rIjCOjsFDNmzMj/Qbjggguq7LNx48asZ8+eWURke+21V7Zu3bqdvMpd09YE9Ip/wF966aUq+7z00kv5PhdddFGl9nXr1mWtWrXKIiLr2bNnte/UXnDBBflxZs6cWan9wQcfzLdfd911VY6xcuXKbK+99soiIuvVq1etnuOu5sknn8y/Tt/73veq7KOuDU/5jkqbNm0qtaln+hYsWJDf+Xruuec2+z/h1QV0dU3PtgZ0NU3TCSeckP/7umzZsq0aQ23ZEQR0doqKl/9Mnz692n7XXXddvt/kyZN34gp3XXUN6Js2bcpfMt2jR48a+5Z/VqqkpKTSZ6smT56cn/f666+vdoyK/+H6yU9+Uqn93/7t3/Lt7733XrXjVPwP1z/+8Y8tPMtdz/Lly/PP/9RTT63Urq4N0+c///ks4pOPBVWkng3Daaedttnf3i0FdHVN07YEdDVN0+zZs/PP76qrrtqqMdSWHcVd3Nkpyu8w3bx58/j85z9fbb/jjjsufzx16tQdvi4qmzdvXixevDgiNq9HVcrbFy1aFPPnz9+sreJdxWsap0+fPtG8efOIqLrm5eN079499t133y2upbpxdnXr1q3LHzdqVPlPu7o2PLNnz46//vWvERHRo0ePzdrUM30PPvhgTJw4MVq3bh033nhjrc5R112PmqbpoYceyh8PGjQof/zRRx/F22+/Xatv0FBbdhQBnZ1i9uzZERHRtWvXKCgoqLZfxf8TWn4OO1fF1/3ToeDTaqpXbccpKCiI/fffv8oxVqxYEYsWLdrmtewOnn/++fxxVa+VujYMq1atirfffjt+/vOfxxe/+MXYuHFjRER8//vf36yfeqbt448/ztds9OjR0bZt21qdp65pe+ihh6J79+6x5557RsuWLeOAAw6IwYMHx3PPPVftOWqapunTp0dERHFxcfTs2TP+93//Nw455JBo3bp1dOvWLdq0aRP77bdfjBo1KlasWFHlGGrLjiKgs8OtWbMmPvzww4iIKCkpqbHvXnvtlX93cOHChTt8bVRW8XXfUr06duxY5XkVf27evHm0atWqVuMsW7Ys1q5dm//9okWLIsuybV7Lrm7Tpk1x/fXX53/+xje+UamPuqZr7Nix+e9Rbt68eXTr1i3+67/+K95///2IiBg+fHh885vf3Owc9UzbpZdeGkuXLo2jjjoqzjvvvFqfp65pe+ONN+If//hHrFmzJlasWBFz5syJ+++/P44//vj4+te/HqWlpZXOUdM0vfHGGxER0blz5xg2bFh861vfir///e+b9Zk3b15cddVVceSRR8aSJUsqjaG27CgCOjvc8uXL88ctWrTYYv/ygF7dO5bsWHWpV3mtIirXq3ycutT80+Nsr7Xs6m6++eaYMWNGRER8/etfjz59+lTqo64Nz6GHHhrTp0+PG2+8MXK53GZt6pmuqVOnxl133RUFBQVx5513VqpdTdQ1Tc2aNYuzzjorfv3rX8cLL7wQs2bNismTJ8dll10We++9d0REPPbYYzFgwIBYv379ZueqaZr+9a9/RUTEm2++Gbfddlu0atUq7rzzzvjggw9izZo18corr8Qpp5wSERGvvfZaDBo0KDZt2rTZGGrLjlL9tcawnaxZsyZ/XFhYuMX+TZo0iYiI1atX77A1Ub261Ku8VhGV61U+Tl1q/ulxttdadmXPP/98/PjHP46IiH322SfuuOOOKvupa7q+9rWv5d9UWb16dcydOzcefPDBePTRR+Ob3/xm3HLLLXHaaadtdo56pmndunUxdOjQyLIsfvCDH8TBBx9cp/PVNU2LFy+ucmezf//+MWzYsDjllFNi1qxZ8fzzz8cdd9wR3/ve9/J91DRNK1eujIiItWvXRuPGjePpp5+Ovn375tv79OkTEydOjNNOOy2efvrpmDZtWjzyyCNxxhln5PuoLTuKHXR2uKZNm+aPK97Iqjrll+zsueeeO2xNVK8u9ap4edWn61U+Tl1q/ulxttdadlWvv/56fP3rX48NGzZEkyZN4sEHH4x27dpV2Vdd09WqVavo1atX9OrVKw477LA466yz4pFHHon7778/3nnnnRgwYECMHTt2s3PUM03XXnttzJ49Oz7zmc/EyJEj63y+uqappsuO27VrFxMmTMiHoltvvXWzdjVNU8XXYtCgQZuF83KNGjXa7AaP48aNq3YMtWV7EtDZ4Vq2bJk/rs2lNOXvatbmUh+2v7rUq7xWEZXrVT5OXWr+6XG211p2RfPmzYsTTzwxPvroo2jcuHGMGzeuxru/qmvDc8455+Qvq7zooovio48+yrepZ3refPPNuO666yLik5BW8TLS2lLXhmm//faL/v37R0TEnDlzNvu8spqmqeJrUX4pe1UOOuig6NChQ0REvPLKK9WOobZsTwI6O1zTpk2jTZs2ERH5O0xW56OPPsr/4ah4Ewt2noo3F9lSvSreXOTT9SofZ+XKlfHxxx/Xapy2bdtudunV9lrLrmbJkiXxpS99KZYsWRK5XC7uueee+PrXv17jOeraMA0YMCAiPnm9n3766fzv1TM9N998c6xbty7222+/WLVqVTzwwAOVHq+99lq+/7PPPpv/ffl/99S14TrwwAPzx+VfvRWhpqmq+Jxqe1O1Dz74YLPfqy07ioDOTtGzZ8+I+OSd5Q0bNlTb780336x0DjtXxf+TUbEeVampXrUdZ8OGDTF37twqx2jRokX+Px7bspZdyYcffhj9+/ePd955JyI+2ak799xzt3ieujZMFb+e6913380fq2d6yi8bfeedd+Lss8+u8vHwww/n+//sZz/L/37ZsmURoa4NWfkdtD9NTdN00EEH5Y/Lv86yOuXtn/6aYLVlRxHQ2SmOOeaYiPjk3cE///nP1far+F3ORx999A5fF5V16dIl2rdvHxGb16MqU6ZMiYiIDh06ROfOnTdrK6/5lsaZOXNmfveoqpqXj/PWW2/F0qVLqx1nd/jfTmlpaZx00kn5r4e5/vrr4z//8z9rda66NkwVd+IqXoqonrsmdW24yv8uR0S+hhFqmqovfOEL+ePy0Fud8jfEyy91L6e27DAZ7AQvv/xyFhFZRGQXXHBBlX02btyY9ezZM4uIrFWrVtm6det28ip3TfPmzcu/9oMHD67VOd/5znfy57z00ktV9nnppZfyfb773e9Wal+7dm1WXFycRUTWs2fPbNOmTVWOc8EFF+THmTFjRqX28ePH59uvu+66KsdYuXJlttdee2URkR144IG1eo4NzcqVK7Ojjz46/1pcdtlldR5DXRueL3/5y/nX6bnnntusTT0bnpEjR1Zbz3Lq2vDMnTs322OPPbKIyPbbb79K7Wqang8//DBfs/79+1fb709/+lP+9TrvvPMqtastO4KAzk5z7LHHZhGRFRQUZNOmTavUfsMNN+T/sIwcOXLnL3AXtTUB/a233soKCgqyiMj69OmTrVq1arP2VatWZX369MnX8x//+EeV41xxxRX5uW+44YZK7dOmTcvPc9xxx1U5xrp167L9998/i4isqKgomzNnTqU+3/3ud/Pz3HvvvbV6jg3J2rVrsxNPPDH/HL///e9v1Tjqmo577703W716dY19fv7zn+eff+fOnbP169dv1q6eDU9tArq6puWJJ56o9G+voqVLl2a9e/fOvwY33XRTpT5qmqaK4XrcuHGV2svKyrJDDz20xlCstuwIAjo7zV/+8pdszz33zCIia9GiRXbttddmL730Uvbss89mQ4cOzf/B6NatW1ZWVlbfy22wXnjhhezee+/NP2688cb8a3v00Udv1lbTH+cf//jH+fN69+6dPfDAA9krr7ySPfDAA5v9n5ERI0ZUO0ZZWVnWrVu3fN+hQ4dmzz77bPbSSy9l1157bdaiRYssIrI999wzmzVrVrXjPPXUU1mjRo2yiMjatWuX3XrrrdnLL7+cTZo0KTv99NPz4x9zzDHZhg0btuHVS9PAgQPzz/H444/P/v73v2evvvpqtY+33nqr2rHUNQ2dOnXKWrdunZ1//vnZfffdl02dOjX761//mr3wwgvZ7bffvtnVEoWFhdkzzzxT5Tjq2bDUJqBnmbqmpFOnTln79u2zYcOGZb/97W+zadOmZbNmzcqeeeaZ7LLLLsv23nvvzV6DNWvWVDmOmqbngw8+yD7zmc/kw/NFF12UPfvss9nMmTOze++9N+vRo0f+tfjOd75T7Thqy/YmoLNTPfHEE1lRUVH+D8SnH926dcvefvvt+l5mgzZ48OBqX9+qHtXZuHFj9u///u81nnveeedlGzdurHE9b7/9dnbAAQdUO0ZRUVH25JNPbvF5jRkzJissLKx2nMMPPzxbtmxZnV+vhqAu9YyIrFOnTtWOpa5p6NSpU61qWVJSkk2ePLnacdSzYaltQFfXdNT23+rpp5+effTRR9WOo6ZpeuONN7KuXbvWWJd///d/r/Fjl2rL9iags9PNnz8/+8EPfpB169Yta9asWdaqVausT58+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", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], "text/plain": [ - "
" + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, @@ -195,23 +235,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "id": "ee3a618f", "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "Expected Process", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mTypeError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[4]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 2\u001b[39m sim = Cadet()\n\u001b[32m 3\u001b[39m sim.evaluate_stationarity=\u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m res = \u001b[43msim\u001b[49m\u001b[43m.\u001b[49m\u001b[43msimulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mguiprocess\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/CADET/CADET-Process/CADETProcess/simulator/simulator.py:261\u001b[39m, in \u001b[36mSimulatorBase.simulate\u001b[39m\u001b[34m(self, process, previous_results, **kwargs)\u001b[39m\n\u001b[32m 227\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 228\u001b[39m \u001b[33;03mSimulate the process.\u001b[39;00m\n\u001b[32m 229\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 258\u001b[39m \u001b[33;03mrun\u001b[39;00m\n\u001b[32m 259\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 260\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(process, Process):\n\u001b[32m--> \u001b[39m\u001b[32m261\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[33m\"\u001b[39m\u001b[33mExpected Process\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 263\u001b[39m process.lock = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m 264\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m process.check_config():\n", - "\u001b[31mTypeError\u001b[39m: Expected Process" - ] - } - ], + "outputs": [], "source": [ "guiprocess = cfg.process\n", "sim = Cadet()\n", @@ -226,15 +253,18 @@ "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'SolutionWidget' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mNameError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[8]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m sol = \u001b[43mSolutionWidget\u001b[49m(config=cfg, result_transform=solution_to_fields_lenmatch_v3)\n\u001b[32m 2\u001b[39m sol.display()\n", - "\u001b[31mNameError\u001b[39m: name 'SolutionWidget' is not defined" - ] + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e5a6626c3e7348a7814d2c0a071ebb3a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HTML(value=\"

Solution

\"), VBox(children=(HBox(children=(HTML(value=' \u001b[39m\u001b[32m23\u001b[39m res = \u001b[43msim\u001b[49m\u001b[43m.\u001b[49m\u001b[43msimulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mguiprocess\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/CADET/CADET-Process/CADETProcess/simulator/simulator.py:265\u001b[39m, in \u001b[36mSimulatorBase.simulate\u001b[39m\u001b[34m(self, process, previous_results, **kwargs)\u001b[39m\n\u001b[32m 263\u001b[39m process.lock = \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[32m 264\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m process.check_config():\n\u001b[32m--> \u001b[39m\u001b[32m265\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m CADETProcessError(\u001b[33m\"\u001b[39m\u001b[33mProcess is not configured correctly.\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 267\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.n_cycles_max < \u001b[38;5;28mself\u001b[39m.n_cycles_min:\n\u001b[32m 268\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 269\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mn_cycles_max is set lower than n_cycles_min \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 270\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33m(\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m.n_cycles_max\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m vs \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m.n_cycles_min\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m). \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 271\u001b[39m )\n", - "\u001b[31mCADETProcessError\u001b[39m: Process is not configured correctly." - ] - } - ], + "outputs": [], "source": [ "from CADETProcess.modelBuilder import CLR\n", "from CADETProcess.processModel import LumpedRateModelWithoutPores, ComponentSystem\n", @@ -299,7 +308,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "id": "e686ffc1", "metadata": {}, "outputs": [ @@ -307,109 +316,15 @@ "data": { "text/plain": [ "array([[ 0.00000000e+00],\n", - " [-3.12329136e-27],\n", - " [-5.64527625e-13],\n", - " [ 7.71548992e-03],\n", - " [ 5.92374229e-01],\n", - " [ 7.34168509e-01],\n", - " [ 8.11728716e-01],\n", - " [ 8.61702449e-01],\n", - " [ 8.96708935e-01],\n", - " [ 9.22287169e-01],\n", - " [ 9.41360151e-01],\n", - " [ 9.55712480e-01],\n", - " [ 9.66553360e-01],\n", - " [ 9.66707245e-01],\n", - " [ 3.88578281e-01],\n", - " [ 2.51472807e-01],\n", - " [ 1.77452239e-01],\n", - " [ 1.30151952e-01],\n", - " [ 9.71629064e-02],\n", - " [ 7.31046615e-02],\n", - " [ 5.51772577e-02],\n", - " [ 4.16869916e-02],\n", - " [ 3.14946846e-02],\n", - " [ 2.37838278e-02],\n", - " [ 1.79496622e-02],\n", - " [ 1.35373428e-02],\n", - " [ 1.02025188e-02],\n", - " [ 7.68403649e-03],\n", - " [ 5.78367193e-03],\n", - " [ 4.34994541e-03],\n", - " [ 3.27041258e-03],\n", - " [ 2.45628989e-03],\n", - " [ 1.84424129e-03],\n", - " [ 1.38387840e-03],\n", - " [ 1.03788993e-03],\n", - " [ 7.77996244e-04],\n", - " [ 5.82885187e-04],\n", - " [ 4.36491171e-04],\n", - " [ 3.26712047e-04],\n", - " [ 2.44432073e-04],\n", - " [ 1.82792887e-04],\n", - " [ 1.36640914e-04],\n", - " [ 1.02098182e-04],\n", - " [ 7.62564179e-05],\n", - " [ 5.69335653e-05],\n", - " [ 4.24907607e-05],\n", - " [ 3.16999003e-05],\n", - " [ 2.36411884e-05],\n", - " [ 1.76246994e-05],\n", - " [ 1.31352069e-05],\n", - " [ 9.78572152e-06],\n", - " [ 7.28811058e-06],\n", - " [ 5.42644479e-06],\n", - " [ 4.03834597e-06],\n", - " [ 3.00567971e-06],\n", - " [ 2.23474372e-06],\n", - " [ 1.66307493e-06],\n", - " [ 1.23528368e-06],\n", - " [ 9.19219112e-07],\n", - " [ 6.82021439e-07],\n", - " [ 5.07502126e-07],\n", - " [ 3.76014557e-07],\n", - " [ 2.79899933e-07],\n", - " [ 2.06963772e-07],\n", - " [ 1.54294736e-07],\n", - " [ 1.16654077e-07],\n", - " [ 8.46181787e-08],\n", - " [ 6.20847278e-08],\n", - " [ 4.61102342e-08],\n", - " [ 3.44019238e-08],\n", - " [ 2.54644798e-08],\n", - " [ 1.85006180e-08],\n", - " [ 1.38119702e-08],\n", - " [ 1.02545057e-08],\n", - " [ 7.53351048e-09],\n", - " [ 5.39329543e-09],\n", - " [ 3.77074333e-09],\n", - " [ 2.85479469e-09],\n", - " [ 2.25205488e-09],\n", - " [ 1.90309206e-09],\n", - " [ 1.63942361e-09],\n", - " [ 1.35601757e-09],\n", - " [ 8.47747753e-10],\n", - " [ 5.21931941e-10],\n", - " [ 3.34284709e-10],\n", - " [ 2.39358936e-10],\n", - " [ 8.79472939e-11],\n", - " [-6.44001652e-11],\n", - " [-2.39980271e-10],\n", - " [-4.64642045e-10],\n", - " [-6.60416245e-10],\n", - " [-7.30461434e-10],\n", - " [-7.48556354e-10],\n", - " [-7.07165822e-10],\n", - " [-5.98754654e-10],\n", - " [-4.81020338e-10],\n", - " [-4.39115709e-10],\n", - " [-3.91575734e-10],\n", - " [-3.38400412e-10],\n", - " [-2.79589744e-10],\n", - " [-2.14984880e-10]])" + " [-1.54484977e-94],\n", + " [-3.11682710e-85],\n", + " ...,\n", + " [ 8.14468124e-16],\n", + " [ 8.16929643e-16],\n", + " [ 8.19391162e-16]])" ] }, - "execution_count": 8, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -420,7 +335,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "id": "dcfd76aa", "metadata": {}, "outputs": [ @@ -431,15 +346,30 @@ " )" ] }, - "execution_count": 9, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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C3y2t2wZr3vuGWDBiGrHFDMAAAAAcDYCIiDEDhwo1u9//x/T5x5+eLBSU90hHtHJud00qQYAAAAAJyMgAkLs7rtzVFRU7rM9M7O5Jk7MsGBEJ+dyuRQb6/t2QQURAAAAADgDAREQQmvXHtI//7nV9Lk//3mYoqPD96+kWaNqKogAAAAAwBnC924UcBjDMDRlyioZvqva6+c/P1XDh58S+kHVg9k0MyqIAAAAAMAZCIiAEPn88wNasWK/z/aEhGg99tgQC0ZUP+YVRAREAAAAAOAEBERAiPz1r5tMt995Z3916JAU4tHUn3kFEVPMAAAAAMAJCIiAENi795jeemuHz/bmzeP029/2s2BE9UcFEQAAAAA4FwEREAJ///tmVVT4Nh+aNKmnmjSJsWBE9WcWEFFBBAAAAADOQEAEBJnHU6m//32zz/aoKJd+/eueFoyoYWhSDQAAAADORUAEBNlbb+3QgQMlPtsvvrijOnZMtmBEDcMUMwAAAABwLgIiIMj+8pevTLfffPNpIR5J49CkGgAAAACci4AICKK1aw9p1aoDPtt79kzTqFHpFoyo4aggAgAAAADnIiACguhvf/NfPeRyuUI8msahBxEAAAAAOBcBERAkeXmlevXV73y2JyfH6pprulkwosYxryBiihkAAAAAOAEBERAks2dvMa2wmTixu5KT3RaMqHHcbrNl7qkgAgAAAAAnICACgqCyskpPP/216XM33tgrxKMJjLg437cLKogAAAAAwBkIiIAgeO+9XOXmHvXZft557dS9e1roBxQAZlPMqCACAAAAAGcgIAKC4K9/dcbS9ifyN8XMMAwLRgMAAAAACCQCIiDANm/O18cf7/HZ3rlzsi68sL0FIwoMsylmhiFVVhIQAQAAAIDdERABAeaveujGG3spOtq+f+XMKogkppkBAAAAgBPY924VCEMFBR69+OI3Ptvj46P1y192t2BEgWPWg0iiUTUAAAAAOAEBERBAc+d+o2PHKny2jx/fVc2axVswosBxu83fLqggAgAAAAD7IyACAqSqynBkc+pqVBABAAAAgHMREAEBsmTJHn3zTYHP9uHDT1H//i0sGFFgUUEEAAAAAM5FQAQEyF//usl0uxOqhyT/FUQERAAAAABgfwREQADs2FGohQtzfba3adNEl1/e2YIRBR5TzAAAAADAuQiIgAB4/fXtMgzf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AADAjgiI4Gj+AiKmmDWeWQWRRB8iAAAAALAjAiI42t69viuYSUwxCwS32zwgYiUzAAAAALAfAiI4GhVEwRMXxxQzAAAAAHCKmLruOGLECPXv31+ZmZnq37+/TjvtNMXGxgZzbECjmQVEUVEutWqVYMFonMVfBRFTzAAAAADAfuocEC1fvlwrVqzw/jk2NlY9e/b0BkbV/01OTg7KQOsrNzdXf/7zn5Wdna3c3FzFxcWpa9euuuKKK3TjjTeqSZPATTFasmSJXn75Za1YsUL79u1TTEyMWrdurb59++qcc87RNddco6SkpICdD3VnNsXslFMSFBND8Vxj+etBxBQzAAAAALAfl2EYRl12jIqKksvl0om7u1wun/06d+5cIzDKzMxUenp64EZcB9nZ2Ro/frwKCgpMn+/evbsWLVqkLl26NOo8+fn5mjhxot59991a91u3bp369+9f5+MWFhYqNTVVBQUFSklJadQYI92gQW9r7dq8GttOP72lVq++zKIROcfcud/ouuuW+mz/z38uV2Zmi9APCAAAAADQYHWuIKrmcrnkcrlUVVUls2xpx44d2rFjh9555x3vtubNm/tUGnXv3t00YGqsDRs26IorrlBxcbGSkpI0ffp0ZWVlqaSkRPPmzdM//vEPbd26VWPHjlVOTk6DK3sKCgo0evRorV27VpI0duxY/fznP1fXrl1VWVmpnTt3KicnR//6178C+e2hnsymmNF/KDCoIAIAAAAA56h3QCRJXbt21cSJE9W6dWutW7dO69ev14YNG1RYWGgaGuXl5WnJkiVasmSJd1tCQoL69OnjDYz69++vwYMHN/w7+a8pU6aouLhYMTExWrx4sYYOHep9btSoUerWrZumTZumLVu2aNasWbr33nsbdJ5bbrlFa9euVUxMjF5++WVdeeWVNZ4fNmyYfvGLX2jWrFmqrOSG2Qrl5VU6cKDEZ3t6OiuYBYL/Ze5pUg0AAAAAdlPnKWYPPvig/vjHP6qoqMhb+TN69GjNnDlTvXv3liRt375d69ev94ZG69ev1549e/yf/IQKIpfLpYqKisZ8L8rJyfGGTJMnT9azzz7rs09VVZV69+6tzZs3q2nTpjpw4EC9m22vWLFCZ511liTp/vvv13333deocf8YU8wCY/fuo2rf/lWf7Q89dLpmzMi0YETOsmhRrsaO/cBn++LFF2r0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3/9e06ZN09q1azV48GBNmzZNvXv3VkFBgd5++209++yzkqSUlBQ9+eSTAfv+UDdUEIVGXFy0iosramyjgggAAAAA7KdBnZO//PJLff/99+rbt6/69+/v/erdu7fcbnegx1gvmZmZev3113X11VersLBQM2bM8NknIyND2dnZNZasr6/f/va3+uGHH/TYY4/p66+/1oQJE3z2adWqlebPn69u3bo1+DxoGH99cPz1zUHDmDWqpoIIAAAAAOynwUtrFRUV6fPPP9fnn3/+v4PFxKh79+41QqP+/furWbNmARlsXY0bN04bN27UU089pezsbO3evVtut1tdu3bVz372M918881q0qTxq1k98sgjuvjii/XMM89o+fLl2rdvn+Lj45WRkaGLL75Yt9xyi1JTUwPwHaG+/K2k5W/lLTSMWeBGBREAAAAA2I/LqOO684888og2bNig9evXa9u2baqqMr8Bd7lcPtvatm3rExp16dKlcSN3sMLCQqWmpqqgoEApKSlWD8eWXnnlW1199ac+23NyLtOgQS0tGJEzZWS8rm+/LaixbezYDlq48HyLRgQAAAAAaIg6VxBNnz7d+7i4uFgbNmzQunXrtH79eq1bt05fffWVSktLTVcz2717t/bs2aPs7GzvtuTkZJ8pagMGDGjktwMcRw+i0DBr+k0FEQAAAADYT4OmmDVp0kRDhw7V0KFDvdsqKyu1efNmb2C0fv16rV+/Xvn5+ZLkExwVFhbWmKLmcrlUUVGz2S3QUKxiFhpmgRsBEQAAAADYT4N7EP1YdHS0evfurd69e+vqq6/2bs/Nza1RabR+/Xrl5uZK8g2NgEChgig0zAI3mlQDAAAAgP0ELCDyp0OHDurQoYMuueQS77YjR45o3bp1NYKjrVu3BnsoiCBUEIUGFUQAAAAA4AxBD4jMpKWlKSsrS1lZWd5tZWVlVgwFDkUFUWhQQQQAAAAAzhA25RRxcXFWDwEOQgVRaFBBBAAAAADOENAKoqqqKuXm5qqkpESpqalKT08P5OGBOqOCKDTMfp4eDwERAAAAANhNQAKiQ4cO6a677tKbb76pY8eOebfHxcXptNNOU2Zmpverb9++atKkSSBOC/jlL6SIjaWCKJDMl7lnihkAAAAA2E2jA6JDhw5pyJAh2rlzp8+qZKWlpfrPf/6j//znP95tUVFR6tatW43QqH//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k2oAAAAAsLs63zG3adNGw4cP16OPPqqvv/46mGMCGsUsnKB6KHji4syaVBMQAQAAAICd1PmuubKyUqtWrdLdd9+tPn36qGvXrrrtttv0ySefqLKSm0GED7MpZmZVLggM8woippgBAAAAgJ3UOSC65JJL1KRJExmGIcMwtH37dv35z3/W6NGj1aJFC1111VV69dVXdeTIkSAOFzg5s+oVGlQHj9nPtrLSUGUlIREAAAAA2EWdA6J33nlHhw8fVnZ2tn7961+rXbt23rCooKBAb7zxhq655hq1atVKWVlZevLJJ7Vt27Zgjh0wZV5BxBSzYDGbYiZRRQQAAAAAdlKvu2a3260LLrhATz/9tHJzc7V27Vrdd999GjBggDcsqqio0GeffaY77rhD3bt3V69evXTnnXdqxYoVMgwjWN8H4EUFUWj5m75HHyIAAAAAsI9GlVVkZmbqvvvu05o1a7R7924988wzuvDCCxUXF+cNjLZu3aqZM2dqxIgRatWqla677jq99dZbOnr0aKC+B6AGKohCy1/4RkAEAAAAAPYRsLvm9PR0TZ48WQsXLlReXp7eeecdTZw4US1btvSGRYcPH9bLL7+sK664Qi1atND555+vv/3tb8rNzQ3UMAAqiELMX/jGFDMAAAAAsI+glFU0adJEl1xyiWbPnq19+/Zp1apVmj59unr37u0Nizwejz766CP95je/UefOndW/f3/dc889ysnJCcaQEEGoIAotKogAAAAAwP6Cftfscrk0ZMgQPfTQQ9q4caO2b9+up556Suecc45iYmK8gdGXX36phx9+WGeccYbatm0b7GHBwaggCi0qiAAAAADA/kJeVtGpUyfdcsst+uijj5SXl6fXX39d48ePV9OmTb1h0f79+0M9LDiIx+MbEPlrpIzGo4IIAAAAAOwvxsqTJycn62c/+5l+9rOfqaqqSitWrNCCBQu0cOFCK4cFmysr861c8bcUOxrPX0BEBREAAAAA2EfY3DVHRUXp7LPP1syZM7VlyxarhwMbo4IotPxNMaOCCAAAAADsI2wCIiBQzHsQcakHC1PMAAAAAMD+uGuG45ivYkYFUbDQpBoAAAAA7I+ACI7DKmahRQURAAAAANgfAREcx7yCiEs9WPxVZ5n1ggIAAAAAhCfumuEoVVWGysvNVjGjgihY/PV3MltNDgAAAAAQngiI4Chm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NB4BEWyJVcxghUGDWurzzy9Wx45Jps8fPlymUaMWavHi3SEeGQAAAAA0DnfUsCUqiGCVjIw0rVx5iXr3bmr6/LFjFRo79n299tq2EI8MAAAAABqOgAi25PH4BkRUECFU0tMT9dlnF2v48FNMn6+oMPSLX3yixx5br6oqI8SjAwAAAID6444atmQ2xYwKIoRS06ZxWrz4Qo0b18HvPnfdtVqjRi3U998XhXBkAAAAAFB/BESwJbMpZlQQIdQSEmL09tvnaeLEDL/7LFu2T337/ksvvLBVhkE1EQAAAIDwxB01bIkKIoSLmJgozZ49Qnfe2c/vPkVF5frlL5fp0ksX68CB4hCODgAAAADqhoAItkQFEcKJy+XSo48O0axZZ8jl8r/fggU71afPv/TOOztCNzgAAAAAqAPuqGFL5svcU0EEa912W1998slF6tgxye8+hw6V6vLLP9KECUtVUOAJ4egAAAAAwD8CItiOYRgsc4+wNXJkujZu/Kl++cvute734ovfqE+fN/XBB7voTQQAAADAcgREsJ2KCvObaaaYIVykpLg1e/YIvfvueWrVKsHvfrt2HdMFF7yvUaMWauXK/SEcIQAAAADUxB01bMesekiiggjh5+KLO2nTpp/qsss61brf0qX7NGzYAo0d+77WrcsLzeAAAAAA4AQERLAdj8c8IKKCCOGoZcsEvfXWaM2dO1IpKbG17rto0S4NGPC2rrhiibZsORKaAQIAAACACIhgQ2Vlvg2qJSqIEL5cLpeuuSZDX375M40alX7S/d98c7tOO+1NTZiwVDt2FIZghAAAAAAiHQERbIcKIthVhw5J+uijsXr66eG19iaSpKoqQy+++I26d39DN9ywTDk5B2lmDQAAACBouKOG7dCDCHYWFeXS//1fL3333c/10EOnKy3NXev+5eVVmj17qwYPnq/MzLf1t799pSNHykI0WgAAAACRgoAItuPxmE8xc7sJiGAfSUmxmjEjUzt2XKW7785UYmLMSV+zYcNh3Xzz52rT5mVde+2nWr58H1VFAAAAAAKCgAi247+CiMsZ9pOWFqcHHzxd27dfpSlTetepEq60tFIvvfStzj77PfXq9aaeeGKjDh4sCcFoAQAAADgVd9SwHSqI4EStWiXoySfP1LffXqlJk3ooOtpVp9dt2XJEd9zxhU455SUNG/auHnlknb788gcqiwAAAADUCwERbIceRHCy9u2T9NxzZ2vLliv0f//XSykpsXV6nWFIK1ce0IwZOerb91/q3Pk13XzzCn3wwS6VllYEedQAAAAA7M5l8M/MYaewsFCpqakqKChQSkqK1cMJO4sX79aYMYt8tmdnn68LL+xgwYiA4Dl2rFxvvrldzz+/RZ9/fqBBx2jSJEajR7fVBRe017Bhp6hXr6aKiqpbhRIAAACAyHDyrqhAmKGCCJEkMTFWEyZ014QJ3fX11/l6/vktmjv3Gx0+XPeVzIqLK/Tuuzv17rs7JUmpqW6dcUYrnXlmaw0d2lpDhrRSSkrtq6kBAAAAcDbHTjHLzc3VHXfcoZ49eyoxMVHNmjXT4MGDNXPmTBUXFwfsPPPmzdOYMWPUpk0bxcfHq1OnTrrmmmv0xRdfBOwcqMnjMQ+I3G7HXs6AJKlXr6aaNWuo9uy5Wq+9NkqjRqU36DgFBR59+OFu3XffWp133iKlpc1Rv37/0q9/vVxz5mzV2rWHVFzMtDQAAAAgkjhyill2drbGjx+vgoIC0+e7d++uRYsWqUuXLg0+R2lpqX72s59p4cKFps9HRUXp/vvv1z333FPvYzPFrHavvrpN48d/4rP93/++VIMHt7JgRIB1duwo1IIFO7VwYa6WLdun8nLzJu715XJJXbqkqHfvpjrttKbq3buZevdupoyMVKr1AAAAAAdyXEC0YcMGnXnmmSouLlZSUpKmT5+urKwslZSUaN68efrHP/4hSerRo4dycnKUlJTUoPOMHz9er776qiQpKytLt956q9LT0/Xll1/q4Ycf1nfffSdJ+sc//qEbbrihXscmIKrdnDlbNXHiMp/t69Zdrv79W1gwIiA8FBZ6tHjxbi1cmKvs7Fzl5ZUG/BzR0S5165aqLl2S1blzsjp3TlHnzsnq1On4n5s2jQv4OQEAAAAEn+MCoqysLC1dulQxMTH67LPPNHTo0BrP//GPf9S0adMkSQ888IDuvffeep9j2bJlGjlypCRp3LhxeueddxQd/b9/Uc/Ly9PAgQOVm5urpk2bavv27UpLS6vz8QmI/Fu5cr9uu22VVq8+5PPc11//TD17NrVgVED4qaysUk7OIS1cmKv33tupjRt/CMl5U1Pd/w2OkpWe3kRt2hz/OuWU/z1u2TJe0dFMCQUAAADCiaMCopycHA0ePFiSNHnyZD377LM++1RVVal3797avHmzmjZtqgMHDig2tm7LSFcbO3asFi1apOjoaH3//fdq166dzz7z5s3TVVddJUmaOXOmpk6dWufjExD5WrcuT7/7XY4WLdrld59t236uU0/l5wWYOXSoRF98cVArVx7QqlUHtHr1QZWUmPfzCraoKJdat07QKackqGXLBDVvHqfmzePVvHmcmjWL9/lz06ZupaS4FRNDqAQAAAAEi6MCorvvvlsPP/ywJOmLL77QkCFDTPd79NFHNX36dEnS4sWLNXr06Dqf4+jRo2rRooXKysp0/vnn6/333zfdz+PxqGXLliosLNSZZ56pzz//vM7nICD6ny1bjujee9fozTe317pfcnKs8vKuldtNbxSgLsrLq7Rhw2FvYLRy5QHl5h61eli1SkiIVkqK+79fsUpN/d/jpKRYJSbGKDExVk2axJg8jlGTJjGKj49RfHz0j75iFBPjksvlsvpbBAAAACzjqGXuly9fLklKTEzUwIED/e43YsQI7+MVK1bUKyBavXq1ysrKfI7zY263W2eccYYWL16s1atXq7y8vN6VSnZRWVmlY8cCu+LRgQMlevjhdZo791tVVZ08w/zNb3oTDgH1EBsbpUGDWmrQoJb6zW96S5L27SvWpk0/6Kuv8rVp0w/atClfX32Vr6NHyy0e7XElJZUqKSnRgQMlAT92VJTLGxi53VFyu3/835rbYmNdiomJUmxslPe/xx+7vNtiYo7vEx3tUnS0/8fR0VGKitJJ/xsV5frRV81tLpe8/3W5zLeZ/bnmY99tUs3tJ/65+vHx/8r7X99tvvuYbT9xm+/2mr8zs0DPLOP78X51zQHrsl9dQsVA5o52DTFtOmwAQJiLiYlSkyaOijQs56if5ubNmyVJXbt2VUyM/2+tR48ePq+p7zl+fBx/51m8eLEqKir07bffqlevXvU6l118802BevV605Jzt2wZrwceGKRf/7qnJecHnKS6R9Do0f+bNmsYhnJzj3pDo6++yte2bYXasaNI+/YVWzjawKqqMlRcXKHi4sCG3QAAAAiOSy7pqPnzx1g9DEdxTEBUWlqqvLw8STLtCXSipk2bKjExUceOHdOuXf572pg5cf+Tnad9+/Y1XufUgMgKqaluTZvWT7/5TW8lJTmzMgsIBy6XSx07Jqtjx2RdeGGHGs+VlFQoN/eoduwo0o4dRfr++yLv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", + "application/vnd.jupyter.widget-view+json": { + "model_id": "5d3d536c9fc341bc8c7d3dfdce9a0a89", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAMgCAYAAAAz4JsCAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbLFJREFUeJzt3Xl8lPW5N/4rIRB2EBGtgiur4kLFrWBxb62K1d/RU09d6xHbnnqsrbXVPtX6WHer3bV93Kptta1trUi17jseQcEVEBSLaF1A9kBCkvn9wckUzEwyIcncM9zv9+uVl5OZ+75zJbmnhQ/X9/pWZDKZTAAAAABAiapMugAAAAAAaIkACwAAAICSJsACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsAAACAkibAAgAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSJsACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsAAACAkibAAgAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSJsACAAAAoKQJsAAAAAAoaQKsTUAmk4nly5dHJpNJuhQAAACADifA2gSsWLEi+vXrFytWrEi6FAAAAIAOJ8ACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsAAACAkibAAgAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSVpV0AQAAAED5aGxsjPr6+mhsbEy6FNqgsrIyunbtGhUVFUmXslEEWAAAAECrli1bFsuXL4+amhrhVZnq2rVr9OnTJwYOHBhdunRJupw2EWABAAAAeWUymXj//fdjyZIl0bNnzxg4cGB07949Kisry7abJ20ymUw0NDTEypUrY+nSpbF69eoYMmRIWYVYAiwAAAAgryVLlsSSJUtiq622is022yzpcmiH3r17R79+/WLBggWxaNGi2HLLLZMuqWCGuAMAAAA5ZTKZWLp0afTp00d4tYno0aNH9O3bN1asWBGZTCbpcgomwAIAAAByqq+vj9ra2ujXr1/SpdCB+vTpE2vXro21a9cmXUrBBFgAAABATg0NDRERUVVlAtGmpGn2VTkN4xdgAQAAAC0yrH3TUo6/TwEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAUIIWLFgQ5557bowaNSp69eoVAwYMiL333juuueaaqKmpSbq8oqpKugAAAAAANjRlypT44he/GMuWLcs+V1NTE9OmTYtp06bFjTfeGH/7299ixx13TLDK4tGBBQAAAFBCXnzxxTj++ONj2bJl0bt377j00kvjmWeeiYcffjjOOOOMiIiYM2dOHHHEEbFy5cqEqy0OHVgAAAAAJeTrX/961NTURFVVVTzwwAOx3377ZV876KCDYtiwYXHeeefF7Nmz49prr40LL7wwwWqLQwcWAAAAQImYNm1aPPbYYxERcfrpp28QXjX55je/GaNGjYqIiB/96Eexdu3aYpaYCAEWAAAAQIm4++67s49PO+20nMdUVlbGySefHBERS5YsyQZemzIBFgAAAECJePLJJyMiolevXrHnnnvmPW7ChAnZx0899VSn15U0ARYAAABAiZg1a1ZERAwdOjSqqvKPLh85cmSzczZlhrgDAAAA7XLGGU/EK698lHQZRTN69ID4f//v0x1+3TVr1sSiRYsiImLw4MEtHrvZZptFr169YtWqVfH22293eC2lRoAFAAAAtMsrr3wUzz77QdJllL0VK1ZkH/fu3bvV45sCrJUrV3ZmWSXBEkIAAACAErBmzZrs427durV6fHV1dURErF69utNqKhUCLAAAAIAS0L179+zjurq6Vo+vra2NiIgePXp0Wk2lQoAFAAAAUAL69OmTfVzIssBVq1ZFRGHLDcudGVgAAABAu4wePSDpEoqqs77f7t27x8CBA2PRokWxcOHCFo9dsmRJNsAaMmRIp9RTSgRYAAAAQLt0xo58aTVq1Kh48sknY968eVFfXx9VVbmjm9mzZ29wzqbOEkIAAACAEjF+/PiIWLc88Pnnn8973OOPP559PG7cuE6vK2kCLAAAAIAS8fnPfz77+JZbbsl5TGNjY9x2220REdG/f/848MADi1FaogRYAAAAACVi7733jv333z8iIm666aaYOnVqs2N++MMfxqxZsyIi4uyzz46uXbsWtcYkmIEFAAAAUEJ+/OMfx7hx42L16tVx2GGHxQUXXBAHHnhgrF69Ou6888741a9+FRERw4cPj29+85sJV1scAiwAAACAEjJmzJj4/e9/HyeeeGIsX748LrjggmbHDB8+PKZMmRJ9+vRJoMLis4QQAAAAoMQcddRR8dJLL8U555wTw4cPj549e0b//v1j7NixceWVV8aMGTNi6NChSZdZNBWZTCaTdBG0z/Lly6Nfv36xbNmy6Nu3b9LlAAAAsIlYs2ZNzJ8/P3bYYYfo3r170uXQQcrx96oDCwAAAICSJsACAAAAoKQJsFrxwQcfxL333hsXXnhhHH744TFw4MCoqKiIioqKOPXUU9t8vfvvvz+OPfbYGDx4cFRXV8fgwYPj2GOPjfvvv7/jiwcAAADYBNiFsBVbbrllh1wnk8nEl7/85exWl03eeeed+Mtf/hJ/+ctfYtKkSXHDDTdERUVFh3xNAAAAgE2BDqw2GDJkSBx22GEbde7/+T//JxtejRkzJu6444547rnn4o477ogxY8ZERMSvfvWr+N73vtdh9QIAAABsCnRgteLCCy+MvfbaK/baa6/Ycsst46233ooddtihTdeYN29eXHXVVRERMXbs2HjiiSeiR48eERGx1157xcSJE2PChAkxffr0uPLKK+O0006LnXbaqcO/FwAAAIBypAOrFRdffHEceeSR7VpKeN1110V9fX1ERPz0pz/NhldNevbsGT/96U8jIqK+vj5+9KMfbfTXAgAAANjUCLA6WSaTib/+9a8RETFy5MjYd999cx637777xogRIyIi4u67745MJlO0GgEAAABKmQCrk82fPz/eeeediIiYMGFCi8c2vb5w4cJ46623Ors0AAAAgLJgBlYnmzVrVvbxyJEjWzx2/ddnzZrV5llbtN/cucvi6affi5Ur10ZlZUXstFPfOPDAraNbty5JlwYAAACpJcDqZG+//Xb28eDBg1s8dsiQITnPo/OtWVMfp576WPz+9282e22bbXrFPfd8Jj75yYEJVAYAAABYQtjJVqxYkX3cu3fvFo/t1atX9vHKlSvzHldbWxvLly/f4IP2OfPMJ3OGVxER77yzKg47bEosXrymyFUBAACUBnOaNy3l+PsUYHWyNWv+FXp069atxWOrq6uzj1evXp33uMsvvzz69euX/Vi/c4u2mzNnadx229wWj1m8uDZuvnlOkSoCAAAoDV26rBunUl9fn3AldKSGhoaIiKisLJ9YqHwqLVPdu3fPPq6rq2vx2Nra2uzjHj165D3u/PPPj2XLlmU/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x1tvvRW77bZb7LHHHtmP0aNHl31H0h//+Mfs4+OOOy77eMmSJbFo0aIYMGBAbL755kmUlnobO8RdAxYAAAAUV0kEWBERK1asiKeffjqefvrp7HNVVVUxYsSIDUKtPfbYIwYMGJBgpW3z7LPPRkREv379YtSoUfHb3/42rrrqqnjppZeyx+ywww5xyimnxDe/+c3o3bt3UqWmTmFD3HOd10kFAQAAADklFmBdeuml8eKLL8bMmTNj3rx50djY2OyYtWvXZncl/O1vf5t9fptttmkWau24447FLL9gr732WkREbL/99nHWWWfFz3/+82bHzJ8/P77//e/HXXfdFX//+99j6623LnaZqVTYEHczsAAAACBpiQVY559/fvZxTU1NvPjiizFjxoyYOXNmzJgxI1599dVYs2ZNzrBg4cKF8c4778SUKVOyz/Xp06fZEsRPfvKTRfleWvLRRx9FxLpZWC+++GL0798/rrjiijj22GOjb9++8fLLL8eFF14Y9913X7zyyitx3HHHxZNPPtnizoq1tbVRW1ub/Xz58uWd/n2khQ4sAAAAKD0lsYSwZ8+esd9++8V+++2Xfa6hoSFmzZqVDbRmzpwZM2fOjCVLlkRE8y6Y5cuXb7AEsaKiIurr64v3TeSxatWqiFgXOnXp0iXuu+++2HfffbOvjx07Nu6999448sgj47777otnnnkm/vznP8e//du/5b3m5ZdfHhdffHGn176pKySIMsQdAAAAkleRKbP1UAsWLNigU2vmzJmxYMGCZsdVVFREQ0NDAhVuqHfv3tkQ6wtf+ELccccdOY979dVXY/To0RERceyxx8af/vSnvNfM1YE1ZMiQWLZsWfTt27cDq9+0DRp0W3z44ZoNnvuP/xgav/3tQdnPJ068PyZP3vD+2nHHPvHGGycUpUYAAACgRDqw2mLbbbeNbbfdNo4++ujsc0uXLo0ZM2ZsEGzNmTMnwSr/pU+fPtkA6/DDD8973C677BLbbLNNvPPOOzFt2rQWr1ldXR3V1dUdWmcaFbILYe4ZWJ1UEAAAAJBT2QVYufTv3z8OPPDAOPDAA7PPrd+hlKQhQ4bEe++9FxERgwcPbvXYd955Jz744INilJZ6diEEAACA8pB/UniZK5UOpV122SX7uLUljU2vV1VtErliybMLIQAAAJSHkg6wGhsb46233opZs2bFu+++m3Q5G+XTn/509vEbb7zR4rFvvvlmRERss802nVoT6xS2hLA4tQAAAAD5lWSA9eGHH8bpp58e/fv3j5122ilGjx4dQ4YMiZ49e8Zee+0VkyZNiuuvvz6effbZqKmpSbrcFk2cODG6du0aERF//vOf8x73+OOPx+LFiyMiYv/99y9KbWmXewlh64mVBiwAAAAorpJbq/bhhx/GPvvsE//4xz+aBQxr1qyJF154IV544YXsc5WVlTFs2LAYM2ZM9mOPPfaIzTffvNil57T55pvHf/7nf8b1118fDz74YNx5553xhS98YYNjVqxYEV//+tezn5955plFrjKdNrYDyxJCAAAAKK6SC7B+8IMfxFtvvZXthKmsrIxtt902amtr47333msWHjQ0NMScOXNizpw5ceedd2afHzx4cPzjH/8oau35XHzxxTFlypRYsGBBnHTSSfH000/HscceG3379o2XX345rrzyypg9e3ZERHzlK1+JvfbaK+GK06GwIe52IQQAAICklVyANXny5Ozjf//3f49f/OIXsdlmm0VERE1NTbzyyisxc+bMmDlzZsyYMSNefvnlnMsIFy5cWLSaW7PFFlvE/fffHxMnTox58+bFz372s/jZz37W7LgvfelL8eMf/ziBCtOpsCHuhZ0HAAAAdJ6SC7DefffdqKioiO222y5uu+227PyoiIiePXvG3nvvHXvvvXf2uUwmE6+//no21Gr6+OCDD5IoP69Ro0bFzJkz4/rrr4+77ror5s6dGytXroxBgwbFuHHj4swzz4wDDzww6TJTpbAlhKa4AwAAQNJKLsDq0aNHrF27Nj71qU9tEF7lU1FRESNGjIgRI0bEv//7v2efL7UAKyKiV69ece6558a5556bdClEe4a4a8ECAACAYiq5XQhHjx4dERFVVe3L1gYNGtQR5ZAyhQ1xL04tAAAAwDolF2Ade+yxkclkYtq0aUmXwiaukCDKLoQAAACQvJILsM4444zYaqutYvbs2fHQQw8lXQ6bMLsQAgAAQHkouQCrd+/ecfvtt0dFRUWcccYZJTnLik3Dxu5CCAAAABRXyQVYEREHH3xw/PznP4+FCxfGuHHj4sUXX0y6JDZBhexCWOh5AAAAQOcpyQArImLSpElx3nnnxRtvvBF77bVXnHrqqfHYY4/F2rVrky6NTUQhuxDmXkIowQIAAIBiat9Wf53kySefjFNPPTXeeuutqKioiPr6+rj99tvj9ttvj+rq6th1111jzJgxMWbMmPjkJz8Zu+22W1RXVyddNmWmkA4suxACAABA8kouwHrttdfis5/9bKxevToi/tUB09T1smbNmpg+fXpMnz49e06XLl1ixIgR2UBrzJgxsccee0S/fv2K/w1QNgob4l7YeQAAAEDnKbkA6wc/+EGsXr06KioqIpPJxA477BC77bZbNDY2xrx58+L111+P+vr6Dc6pr6+P1157LV577bX47W9/GxGR7dyCfAob4m6KOwAAACSt5AKsRx99NBsaXHLJJXHBBRdsECLU1tbGyy+/HDNmzMh+vPTSS9mOLSiUIe4AAABQHkouwFqyZElEROy+++7x3e9+t9nr1dXVMXbs2Bg7dmz2ucbGxpg9e/YGodbMmTOLVTJlqrAh7rnO66yKAAAAgFxKLsDaaqut4u23344xY8YUfE5lZWXsvPPOsfPOO8cXv/jFTqyOTUlhQ9ztQggAAABJq0y6gI/bfffdIyKipqYm4UpII7sQAgAAQOkpuQDrxBNPjEwmE0888YROF4qukCWEAAAAQHGVXIB17LHHxp577hnvvfde3HzzzUmXwyaqPeGoYBUAAACKq+QCrC5dusTtt98e/fv3j69//evx/PPPJ10Sm6B8GVRhM7A6oSAAAAAgr5ILsE4++eSYPHlyfOtb34q1a9fGAQccELfeemvSZbGJyddFZRdCAAAAKD0ltwvhb37zmw1ChLq6ujj99NPjmmuuiVNPPTUOPvjg2HXXXaOqquRKp4y0rwNLggUAAADFVJIpUFNAUFFRERUVFZHJZGLWrFnx7W9/OyIiunXrFrvsskuMGTMmPvnJT8aYMWNi9913jx49eiRZNmWk8ACr82sBAAAAWlZyAdZtt90WM2fOjJkzZ8aLL74YixcvjogNu15qa2tjxowZMWPGjOyg98rKyhg2bFg20BozZkwcdNBBiXwPlL5ClxDmPrejqwEAAABaUnIB1oknnhgnnnhi9vOFCxdmA62mj/nz5zcLIBoaGmLOnDkxZ86cuOOOO6KioiLq6+uLXT5loj0dWJYQAgAAQHGVXID1cYMHD47BgwfHkUcemX1u5cqVzUKtV199NWpraxOslHJS+BB3uxACAABA0ko+wMqld+/eMX78+Bg/fnz2uYaGhpg1a9YGyw8h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Bx4Yq1evjjvvvDN+9atfRUTE8OHDY/r06YlsSQkAAABQigRYRTR58uQ48cQTY/ny5TlfHz58eEyZMiWGDh1a5MoAAAAASpclhEV01FFHxUsvvRTnnHNODB8+PHr27Bn9+/ePsWPHxpVXXhkzZsxIVXi1YMGCOPfcc2PUqFHRq1evGDBgQOy9995xzTXXRE1NTdLlQZu88MILcdlll8Xhhx8eQ4YMierq6ujdu3cMHz48Tj311HjyySfbdL37778/jj322Bg8eHBUV1fH4MGD49hjj43777+/k74D6HjnnXdeVFRUZD8ee+yxVs9x71POFi1aFFdddVWMGzcuttpqq6iuro6tt9469tlnn/jWt76Vc4zEx3kPUI7q6uripptuis9+9rPxiU98IvvnoBEjRsSXvvSlePbZZwu6jvufUvLBBx/EvffeGxdeeGEcfvjhMXDgwOyfaU499dQ2X68j7u+ampq4+uqrY++9944BAwZE7969Y9SoUXHuuefGggUL2lxT2clAAu69995Mv379MhGR82PEiBGZN954I+kyoSCf/vSn897L63+cdNJJmdra2hav1djYmJk0aVKL15k0aVKmsbGxSN8dbJyZM2dmqqqqNrh3H3300bzHu/cpd3/4wx8ym2++eYv38NFHH533fO8BytWCBQsyu+66a6t/DjrnnHPy3r/uf0pRS/fjKaecUvB1Our+njdvXmbEiBF5r9GvX7/MlClT2vldlzYBFkU3c+bMTM+ePTMRkendu3fm0ksvzTzzzDOZhx9+OHPGGWdk34AjR47MrFixIulyoVU77bRTJiIyW2+9debss8/O3HXXXZnnnnsuM3Xq1My1116b2WabbbL39QknnNDitS644ILssWPGjMnccccdmeeeey5zxx13ZMaMGZN97bvf/W6Rvjtou4aGhsxee+2ViYjMoEGDCgqw3PuUs1//+teZysrK7D1/0UUXZR588MHM888/n5kyZUrmJz/5SebQQw/N/Nu//Vvea3gPUI7Wrl27QXi12267ZW699dbM1KlTMw888EDmwgsvzPTq1Sv7+lVXXZXzOu5/StH64dCQIUMyhx122EYFWB1xf69YsSIzcuTI7LFnnHFG5uGHH84888wzmUsvvTTTu3fvTERkevbsmXnxxRc74LsvTQIsiu6AAw7IRESmqqoq88wzzzR7/aqrrsq+MS+++OIEKoS2OeKIIzK///3vM/X19Tlf//DDDzPDhw/P3tdPPPFEzuPmzp2b7VgZO3ZspqamZoPXV61alRk7dmz2/TNv3rwO/16gI1x33XXZf4g4//zzWw2w3PuUs9deey1TXV2diYjM/vvvn1m6dGneY/N14XoPUK7uuuuu7P/G77fffjn/LDR9+vRM165dMxGR2WyzzTJr167d4HX3P6XqwgsvzEyePDnz3nvvZTKZTGb+/PltDrA66v6+6KKLWgyCn3nmmezXOfDAA9v2jZYRARZF9dxzz2XfeGeeeWbOYxoaGjKjRo3K/p9cXV1dkauEjjd58uTsvf/f//3fOY/56le/mj1m6tSpOY+ZOnVq9pivfe1rnVkybJQFCxZk/xXw0Ucf3eAPXPkCLPc+5ezggw/ORERm4MCBmQ8//HCjruE9QLk655xzsvflPffck/e4Y445Jnvcyy+/vMFr7n/KxcYEWB1xf9fV1WX69++fiYjMqFGjMg0NDTmvc+aZZ2avM3369IK/r3JiiDtFdffdd2cfn3baaTmPqaysjJNPPjkiIpYsWVLQ0F8odQcccED28RtvvNHs9UwmE3/9618jImLkyJGx77775rzOvvvuGyNGjIiIde+njI1kKTFf/epXY+XKlXHKKadscN/n496nnM2ePTsefvjhiIj42te+FgMHDmzzNbwHKGd1dXXZxzvuuGPe43baaafs49ra2uxj9z+bso66vx977LFYunRpRESccsopUVmZO8ZZf7D8n//853ZWX5oEWBRV005svXr1ij333DPvcRMmTMg+fuqppzq9Luhs6/8BL9f/6cyfPz/eeeediNjw/s+l6fWFCxfGW2+91XFFQjv94Q9/iHvvvTcGDBgQV199dUHnuPcpZ3/84x+zj4877rjs4yVLlsTcuXNj8eLFrV7De4ByNnz48OzjN998M+9xTf94V1FREcOGDcs+7/5nU9ZR9/f6u5m3dJ2xY8dGr169ImLT/Tu0AIuimjVrVkREDB06NKqqqvIeN3LkyGbnQDl7/PHHs4/Xv7+brH+f53p9fd4flKKlS5fG2WefHRERV155ZWyxxRYFnefep5w9++yzERHRr1+/GDVqVPz2t7+N3XffPQYMGBDDhw+PgQMHxo477hgXX3xxrFy5Muc1vAcoZyeccEL07ds3Itb9b39DQ0OzY2bMmBFTpkyJiIgvfOEL2eMj3P9s2jrq/i70OlVVVdlux031PSLAomjWrFkTixYtioiIwYMHt3jsZpttlk2P33777U6vDTpTY2NjXHHFFdnPjz/++GbHrH+ft/b+GDJkSM7zIEnnnXdevPfee/GpT30qTj/99ILPc+9Tzl577bWIiNh+++3jrLPOihNPPDFeeumlDY6ZP39+fP/734/99tsv3n333WbX8B6gnG2xxRZx6623Ro8ePeLpp5+OvfbaK2677bZ49tln46GHHoqLL744JkyYEHV1dbHHHnvEtddeu8H57n82ZR11fzd93qtXr+jfv39B1/nwww83WK67qRBgUTQrVqzIPu7du3erxzcFWPn+xRLKxXXXXRfPPfdcREQcc8wxMXbs2GbHtOX90fTeiPD+oDQ89dRTceONN0ZVVVXccMMNUVFRUfC57n3K2UcffRQR62Zh/fznP4/+/fvHDTfcEB988EGsWbMmpk2bFocffnhERLzyyitx3HHHRWNj4wbX8B6g3B1zzDExffr0OP3002PmzJlxyimnxH777ReHHnpofP/734+ePXvGtddeG0899VRstdVWG5zr/mdT1lH3d9N12vJ36FzX2RQIsCiaNWvWZB9369at1eOrq6sjImL16tWdVhN0tscffzy+853vRETEoEGD4vrrr895XFveH03vjQjvD5JXV1cXkyZNikwmE+ecc07suuuubTrfvU85W7VqVUSsG0rdpUuXuO++++LMM8+MLbbYIqqrq2Ps2LFx7733ZkOsZ555ptlgXe8Byt3atWvjd7/7XUyePDnncPX3338/7rjjjpwbM7n/2ZR11P3ddJ22/B0613U2BQIsiqZ79+7Zx+sPtM6nqeWxR48enVYTdKZXX301jjnmmKivr4/q6ur4wx/+EFtuuWXOY9vy/li/Hdj7g6RddtllMWvWrNh2223joosuavP57n3K2fr373HHHZdzh6nKysoNNjW444478l7De4Bys2rVqjjkkEPi0ksvjcWLF8d5550Xs2bNitra2li2bFk88MADMX78+Jg2bVocddRR8eMf/3iD893/bMo66v5uuk5b/g6d6zqbAgEWRdOnT5/s40LaGZv+VbOQVkkoNfPnz4/DDjsslixZEl26dIk77rijxV1D2vL+aHpvRHh/kKzZs2fH5ZdfHhERP/3pTzdoWy+Ue59ytv7929Rllcsuu+wS22yzTURETJs2Le81vAcoNxdddFE88cQTERFx0003xZVXXhkjR46Mbt26Rd++fePQQw+NRx99NA488MDIZDLxjW98Y4M5ce5/NmUddX83Xactf4fOdZ1NQf5t4KCDde/ePQYOHBiLFi2KhQsXtnjskiVLsm++9QfaQTl4991345BDDol33303Kioq4uabb45jjjmmxXPWH+zY2vtj/cGO3h8k6brrrou6urrYcccdo6amJu68885mx7zyyivZx4888ki89957ERFx1FFHRa9evdz7lLUhQ4Zk7+lCBvS+88478cEHH2zwvPcA5SqTycQtt9wSERHDhw+PU045JedxVVVVcckll8T48eOjsbExbrnllrjuuusiwv3Ppq2j7u/BgwfH//zP/8SqVati6dKlLQ5yb7pO01L2TY0Ai6IaNWpUPPnkkzFv3ryor6+Pqqrct+Ds2bM3OAfKxaJFi+LQQw+NN998MyLWdaWcfPLJrZ638847Zx+vf//n4v1BqWhqU3/zzTfjhBNOaPX4Sy65JPt4/vz50atXL/c+ZW2XXXbJdlQ1NDS0eGzT6x//s4/3AOXq/fffz25kMGbMmBaP3XPPPbOP17+P3f9syjrq/t55553jT3/6U/a4XMvVIyLq6+vjjTfeyHmNTYUlhBTV+PHjI2Jda+Pzzz+f97jHH388+3jcuHGdXhd0hGXLlsVnPvOZ7LbqV1xxRfzXf/1XQefusMMOsfXWW0fEhvd/Lk2t+ttss01sv/32G18wlAD3PuXs05/+dPZx018a8mn6h42mpYRNvAcoV+uHsfX19S0eu3bt2pznuf/ZlHXU/d30d+jWrjN9+vTsKqZN9e/QAiyK6vOf/3z2cVPL8cc1NjbGbbfdFhER/fv3jwMPPLAYpUG71NTUxBFHHBEvvPBCRER897vfjW9/+9sFn19RURFHH310RKz7l5Vnn30253HPPvts9l9ojj766KioqGhn5bDxbr311shkMi1+rD/Y/dFHH80+3/SHM/c+5WzixInRtWvXiIhmuwuu7/HHH4/FixdHRMT++++/wWveA5SrAQMGRN++fSMiYurUqS2GWOv/pXuHHXbIPnb/synrqPv7gAMOiH79+kVExK9//eucu31GrPtzWZPWxpeUrQwU2f7775+JiExVVVXmmWeeafb6VVddlYmITERkLrroouIXCG1UW1ubOeyww7L37dlnn71R15kzZ06mqqoqExGZsWPHZmpqajZ4vaamJjN27Njs++f111/vgOqhc1100UXZ98ajjz6a8xj3PuXsK1/5SvYev+OOO5q9vnz58swee+yRPea5555rdoz3AOXqhBNOyN7b3//+93Me89FHH2V23nnn7HF///vfN3jd/U+5mD9/fvY+PuWUUwo6p6Pu7+9973vZr33VVVc1e/2ZZ57Jfp0JEya09VsrGwIsiu6FF17I9OjRIxMRmd69e2cuu+yyzNSpUzOPPPJIZtKkSdk35vDhwzPLly9Pulxo1bHHHpu9bw866KDMSy+9lHn55ZfzfsyZMyfvtb7zne9krzVmzJjMnXfemZk2bVrmzjvvzIwZMyb72vnnn1/E7xA2XiEBVibj3qd8ffDBB5ltt902+5ePr33ta5lHHnkkM3369Mwtt9ySGTlyZPb+/cpXvpL3Ot4DlKNZs2Zlevbsmb0/jzrqqMxdd92VeeGFFzLPPPNM5tprr82+PyIic/DBB+e8jvufUvTkk09mbrnlluzH1Vdfnb0Xx40bt8Frt9xyS97rdMT9vXz58szw4cOzx06aNCnzyCOPZKZOnZq57LLLMr17985ERKZHjx6ZGTNmdPwPo0QIsEjEPffck+nbt2/2Dfjxj+HDh2fmzp2bdJlQkHz3cb6P7bbbLu+1GhoaMl/60pdaPP/000/PNDQ0FO8bhHYoNMBy71POXnvttczQoUNbvH+/9KUvZerq6vJew3uAcvXggw9mBg4c2Oqffw466KDMRx99lPMa7n9K0SmnnNKmP+Pn01H399y5czPDhg3Le42+fftmJk+e3NE/hpJSkcnkWUAJnewf//hH/PjHP44pU6bEwoULo1u3bjF06NA47rjj4mtf+1r07Nkz6RKhIG2dw7DddtvFW2+91eIxf/vb3+JXv/pVTJs2LRYtWhQDBw6MvfbaK84888w4/PDD21EtFNf3v//9uPjiiyNi3QysAw44oMXj3fuUq1WrVsX1118fd911V8ydOzdWrlwZgwYNinHjxsWZZ55Z8ExP7wHK0eLFi+Omm26K++67L1599dVYunRpVFVVxVZbbRV77bVX/Md//EdMnDix1T8zuf8pJaeeemr8+te/Lvj41qKVjri/V61aFT//+c/jj3/8Y8ybNy/q6upiyJAh8bnPfS7OPvvs2G677QqutxwJsAAAAAAoaXYhBAAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSJsACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsASJX6+vro0aNHVFRURLdu3WLt2rVJl0SR+N0DQPkSYAEAqTJnzpxYs2ZNRETsvPPO0bVr14QrKm3HHHNMVFRURJcuXeKDDz5Iupx28bsHgPIlwAIAytbatWuje/fuUVFREd27dy+oo+bFF1/MPt599907s7yyV1tbGw8++GBEROy9994xaNCghCtqH797AChfAiwAoGy99NJLUVtbGxERo0ePLqijZv0QY7fdduu02jYFDz/8cKxatSoiIo466qiEq2k/v3sAKF8VmUwmk3QRAAAb45e//GV8+ctfjoiISZMmxS9/+cuEK9q0fOUrX4kbbrghIiJefvnlGD16dMIVAQBppQMLAChb06dPzz7+5Cc/mWAlm6Z77703IiJ22GEH4RUAkCgBFgBQtp5//vnsYwFWx3rhhRdi4cKFEbFpLB8EAMqbAAsAKCs/+MEPoqKiIioqKmLGjBnZ5/fee+/s800fXbt2jbq6uuwxt99+e/a1k046Kef11z/mxBNPjIiI+vr6+OMf/xgTJ06M7bbbLqqrq2OrrbaKE044IV599dVm11ixYkVcd911MX78+Ojfv39UV1fHDjvsEP/93//dpp38MplM3HvvvTFp0qTYeeedY7PNNovq6urYZptt4phjjok///nP0VnTIO65557s444IsJL+uRbyu7/xxhuzx5xxxhkRse53cP/998dJJ50UI0aMiJ49e0bfvn3jU5/6VNx0002d9vMHADZUlXQBAABt8dJLLxV87IgRI6Jbt27Zz2fOnJl9vMcee+Q8Z/1jdt1115g1a1acfPLJGyxXjIh4//33484774y//vWvcd9998WECRMiYt3g85NOOin++c9/bnD8W2+9FT/96U/jnnvuif/5n/+JLbfcssXaH3300fja174Wr732WrPX3n333bj77rvj7rvvjsMOOyx+//vfR//+/Vu8XltNnjw5IiL69u2b/d7aI+mfa1t/97vvvnvMnTs3/vM//zOeeOKJZsdOnTo1pk6dGo899ljcfvvtLXznAEBHEGABAGVlzz33jEGDBsWcOXPioYceioh1QdUhhxzS7NiP7zTX1hCjsbExxo0bF0uWLImtttoqPv3pT0fPnj1jxowZ2R3tVq9eHaeeemrMmzcvbrzxxvjqV78ajY2NMXLkyNhrr72ivr4+nnnmmfjHP/4RERH/+Mc/4jvf+U7ccssteb/Hn/3sZ/H1r389GhoaIiKiT58+MW7cuBgyZEisWbMmnn/++Wyw9cADD8Rxxx0Xf//736OysmOa699555144YUXIiLis5/9bEG7O7Ym6Z9rIb/79XcpbGxsjH322SeWLFkS/fv3j/333z+23HLLePfdd+PRRx+N1atXR0TEb37zmzj22GPjmGOOacdPBwBoVQYAoAxdeOGFmYjIRETm4osvLuiczTffPHvOokWLWj2mW7dumZ49e2Z++ctfZurr6zc47pJLLskeFxGZ888/P9OlS5fMkCFDMvfff/8Gx65Zsybz7//+79lje/XqlVm7dm3Or/+nP/0pU1FRkYmITM+ePTNXX311ZuXKlc2Ou+eeezJ9+vTJXvN3v/tdQT+DQlx//fXZ695+++0dcs2kf66t/e4bGxszffv2zR7TvXv3THV1debaa6/NrFmzZoNjFyxYkBk6dGj22OOOO66dPx0AoDUVmYyF+wBA+Zk4cWJ2mdtf//rXmDhxYovHv/3227HttttGRMTgwYPj7bffbvGYiIiePXvGo48+GnvvvXezYxsbG2PYsGHx5ptvZp/bYYcd4umnn45PfOITzY7/6KOPYosttojGxsaIiHjjjTdixx133OCYV155JfbZZ5+oqamJ/v37x0MPPRR77rln3u/pN7/5TXae02c+85m4//77W/oRFOyII46Iv/3tb9GlS5f44IMPYsCAAe26XtI/10J+92+++WbstNNO2c979OgRDzzwQIwfPz7n9/THP/4xjj/++IhYt9xw/Q4vAKDjGeIOAJSl9QODMWPGtOn4QpYPRkT85Cc/yRmyRERUVlZusESxS5cucdddd+UMWSIiBgwYsEGI07QEbX3f/OY3o6amJiLWhVMthVcREccff3x07949IiKee+65Fo8t1KpVq+KRRx6JiIhx48a1O7yKSP7nujG/+2uvvTZveBURMXr06Ozj+vr6vMcBAB1DgAUAlJ2PPvoo20UzYMCAGDJkSKvntDXEGDVqVHzpS19q8ZpNXT8RESeccEJ88pOfbPH42tra7ON+/fpt8NrDDz8cDzzwQEREHHnkkXHEEUe0eK2IiG7dusXmm28eERFLlizJzsxqjwcffDDWrFkTEdFqV1uhkvy5fvzrF/K7HzZsWJx55pktfs0lS5ZkHw8cOLDFYwGA9jPEHQAoOzNmzMg+LqT7KqLtIcapp54aFRUVLV5z3rx52cennXZai8euWrUq3nvvvYiIqK6ujq233nqD13/yk59kH69evTq+9rWvtXi9Jh9++GH2ml26dCnonJbcc8892cdHHXVUu68XkezP9eNfv5AB7oXUOGfOnOzjjy9ZBAA6ngALACg76wdY+QKJj2trgHXwwQe3eL01a9bE66+/HhHrgpNx48a1ePwrr7wSTaNHd9lllw12DFyzZk38/e9/z37+8MMPx8MPP9zi9T5uq622atPxuTQ2NsaUKVMiYt3OjsOHD2/3NSOS+7nm+vod8buPiHjppZeyj3fddddWjwcA2scSQgCg7LR1/tWKFSti/vz5ERHRp0+fnB0z6x/TrVu3VkOJl19+OTv7aNddd43q6uqNrvmFF17YYBncxhg5cmS7zo9YN0frgw8+iIiO675K8uf68a+f73e/dOnSWLBgQUREVFVVFRSKbkwXIACw8QRYAEDZaWsH1syZM7NdOrvvvnvO5WHrH7PLLrtEt27dCq6hrUPkP3783Llzs49PPPHEyGQybf7oiB0IO2v5YFI/149//ZZ+90123nnnVkOzj59TaBcgALDxBFgAQFlZvXp1dv5Qjx49Cuo8ausSskKCk7YGLS0dv3jx4uzjJAeCT548OSLWDcZvbeleoZL8uX786xcy/6q1gfEREW+88UYsW7YsIiJ22GGH6N+/f6vnAADtI8ACAMrKK6+8kt1tb/To0QUNLm9rgFVIiLF+cNLa8Y2NjfHyyy9HRERlZWXstttuG7y+/vewdOnSVr92Z5g/f3688sorERHxuc99rkMGwkck+3P9+NdPKrwEANpPgAUAlJX1d3/bZZddCjqno0OMhoaG7BDvLl265AxO1vf6669HTU1NREQMGzYsevfuvcHr6w9gf/LJJ7NL3oqpqfsqImLixIkddt0kf64f//qdEV4KsACgOARYAEBZWX+5Xd++fVs9vr6+Pl599dWIWDege/To0S0eU1lZGbvvvnuL15w9e3asXr06Itbt1tejR48Wj28txBk/fnz28RtvvBE333xzi9db3z//+c+Cj21J0/yrrl27xmc+85kOuWbSP9dCf/evvfZaRERUVFQY4A4AJUqABQCUlfVDq4ceeqjV3ftmzZqVPWbkyJE5B3Svf8ywYcOiV69eLV6zoweNb7PNNnHEEUdkP//qV78aP/rRj6Kuri7n9WpqauKuu+6KI488Ms4777xWv35rli9fHk888URERBxwwAEFBYOFSPrnWsjv/rXXXsv+nPN1cbW3TgCg/aqSLgAAoC0mTJgQlZWV0djYGK+99loMHTo0Pv3pT8dmm22WPeaiiy6KLbbYIiKSn3/18evnCzx+/OMfx//8z//EokWLoq6uLs4555y45JJL4lOf+lR84hOfiIaGhli2bFm8/vrrMXv27Fi7dm1ERFx99dWtfv3W3H///dnrddTugxHJ/1w7Y4D7P//5z3jvvfciImLQoEGx9dZbt3oOANB+AiwAoKzsuOOO8a1vfSuuvPLKiIhYuHBh/O53v8u+3r179/jRj36U/bwUhngXUsNOO+0Ujz76aJxwwgnZYeofffRR3HvvvXmvu8UWW8SECRNa/fqtaVo+GNF5AVYSP9dS+N0DAB1DgAUAlJ0rrrgi9tlnn7jxxhvj+eefj8WLF0d9fX1EROy2225RVfWvP+Ks32FTSBdORwVSTd5///14//33I2LdUsGmzrBcRo8eHTNmzIi77747/vznP8f06dPjvffei5qamujRo0dsscUWMXTo0Bg7dmwcfPDBMWHChA2+143R0NAQ9913X0RE7LrrrrH99tu363rrS/rn2tbffVu7xAqZlwUAdIyKTBLb3AAAUBIef/zxOOCAAyIi4oILLohLL7002YIAAHIwxB0AIMUmT56cfTxx4sQEKwEAyE8HFgBAio0YMSJef/312HLLLeOf//xnVFRUJF0SAEAzAiwAAAAASpolhAAAAACUNAEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAQEkTYAEAAABQ0gRYAAAAAJQ0ARYAAAAAJU2ABQAAAEBJE2ABAAAAUNIEWAAAAACUNAEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAQEkTYAEAAABQ0gRYAAAAAJQ0ARYAAAAAJU2ABQAAAEBJE2ABAAAAUNIEWAAAAACUNAEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAQEkTYAEAAABQ0gRYAAAAAJS0/x8UAhovuCekEwAAAABJRU5ErkJggg==", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], "text/plain": [ - "
" + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" ] }, "metadata": {}, diff --git a/tests/test_elements.py b/tests/test_elements.py new file mode 100644 index 0000000..6c8e07f --- /dev/null +++ b/tests/test_elements.py @@ -0,0 +1,123 @@ +from __future__ import annotations + +import pytest +from cadetgui.widgets.elements import ( + BoolField, + ChoiceField, + Element, + FloatField, + FloatListField, + TextField, +) + + +def test_floatfield_value_and_label(): + f = FloatField(label="Flow rate", value=1.5) + assert f.value == pytest.approx(1.5) + assert f.label == "Flow rate" + assert f.is_valid + + +def test_floatfield_bounds_default_to_unbounded(): + f = FloatField(label="x") + assert f.min is None + assert f.max is None + + +def test_floatfield_validate_runs_on_change(): + def positive(v): + if v <= 0: + return "must be > 0" + + f = FloatField(value=1.0, validate=positive) + assert f.is_valid + + f.value = -1.0 + assert not f.is_valid + assert f.error == "must be > 0" + + f.value = 2.0 + assert f.is_valid + + +def test_floatfield_observe_fires_on_value_change(): + f = FloatField(value=0.0) + seen = [] + f.observe(lambda change: seen.append(change["new"]), names="value") + f.value = 5.0 + assert seen == [5.0] + + +def test_floatfield_is_element(): + assert isinstance(FloatField(), Element) + + +def test_floatfield_ships_esm_and_css(): + f = FloatField() + assert "function render" in f._esm + assert ".cadetgui-field" in f._css + + +def test_textfield_get_set(): + t = TextField(label="Name", value="Alice") + assert t.value == "Alice" + t.value = "Bob" + assert t.value == "Bob" + + +def test_boolfield_get_set(): + b = BoolField(label="Flag", value=False) + assert b.value is False + b.value = True + assert b.value is True + + +def test_floatlistfield_defaults_and_set(): + fl = FloatListField(label="Feed") + assert fl.value == [0.0] + + fl2 = FloatListField(value=[1.0, 2.5, 3]) + assert fl2.value == [1.0, 2.5, 3.0] + + fl2.value = [4.0] + assert fl2.value == [4.0] + + +def test_choicefield_selects_by_value_and_tracks_index(): + col_a, col_b = object(), object() + c = ChoiceField(label="Column", options=[("GRM", col_a), ("LRMP", col_b)], value=col_b) + assert c.value is col_b + assert c.selected_index == 1 + assert c.option_labels == ["GRM", "LRMP"] + + +def test_choicefield_defaults_to_first_option(): + c = ChoiceField(options=[("A", 1), ("B", 2)]) + assert c.value == 1 + assert c.selected_index == 0 + + +def test_choicefield_set_value_updates_index(): + c = ChoiceField(options=[("A", 1), ("B", 2)], value=1) + c.value = 2 + assert c.selected_index == 1 + + +def test_choicefield_set_options_keeps_matching_value(): + c = ChoiceField(options=[("A", 1), ("B", 2)], value=2) + c.set_options([("B", 2), ("C", 3)]) + assert c.value == 2 + assert c.selected_index == 0 + + +def test_choicefield_validate_observes_selected_index(): + def not_none(v): + if v is None: + return "required" + + c = ChoiceField(options=[("A", 1)], value=1, validate=not_none) + assert c.is_valid + + c.set_options([]) + assert not c.is_valid + assert c.error == "required" From fa41575480767bc18dee568cbb433f3c2a3f545f Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:42:04 +0200 Subject: [PATCH 012/158] Add anywidget renderer --- cadetgui/widgets/forms/__init__.py | 10 +++ cadetgui/widgets/forms/renderer.py | 112 +++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 cadetgui/widgets/forms/__init__.py create mode 100644 cadetgui/widgets/forms/renderer.py diff --git a/cadetgui/widgets/forms/__init__.py b/cadetgui/widgets/forms/__init__.py new file mode 100644 index 0000000..cd98948 --- /dev/null +++ b/cadetgui/widgets/forms/__init__.py @@ -0,0 +1,10 @@ +# ========================================= +# File: cadetgui/widgets/forms/__init__.py +# ========================================= +"""Renders a ModelSpec into a form of anywidget Elements. + +See ai-docs/ARCHITECTURE.md's data-flow section for where this fits. +""" +from .renderer import FormRenderer, element_for_field + +__all__ = ["FormRenderer", "element_for_field"] diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py new file mode 100644 index 0000000..cc14c0f --- /dev/null +++ b/cadetgui/widgets/forms/renderer.py @@ -0,0 +1,112 @@ +# ========================================= +# File: cadetgui/widgets/forms/renderer.py +# ========================================= +from __future__ import annotations + +from typing import Any, Callable, Dict + +import ipywidgets as W + +from ...cadetprocessadapter import FieldSpec, ModelSpec +from ..elements import BoolField, Element, FloatField, FloatListField, TextField + +__all__ = ["FormRenderer", "element_for_field"] + + +def _coerced_default(f: FieldSpec) -> Any: + """Field default, coerced to a type the matching element's `value` trait accepts.""" + if f.kind == "float": + return float(f.default) if f.default is not None else 0.0 + if f.kind == "float_list": + return list(f.default) if f.default else [0.0] + if f.kind == "bool": + return bool(f.default) + return str(f.default) if f.default is not None else "" + + +_ELEMENT_FOR_KIND: Dict[str, Callable[[FieldSpec], Element]] = { + "float": lambda f: FloatField( + label=f.label or f.name, + value=_coerced_default(f), + min=f.min, + max=f.max, + validate=f.validate, + ), + "float_list": lambda f: FloatListField( + label=f.label or f.name, value=_coerced_default(f), validate=f.validate + ), + "bool": lambda f: BoolField( + label=f.label or f.name, value=_coerced_default(f), validate=f.validate + ), + "text": lambda f: TextField( + label=f.label or f.name, value=_coerced_default(f), validate=f.validate + ), +} + + +def element_for_field(f: FieldSpec) -> Element: + """Build the anywidget Element matching a FieldSpec's kind.""" + factory = _ELEMENT_FOR_KIND.get(f.kind) + if factory is None: + raise ValueError(f"No element registered for field kind {f.kind!r}") + return factory(f) + + +class FormRenderer: + """Render a ModelSpec into a form of Elements; build an object on Apply.""" + + def __init__(self, spec: ModelSpec) -> None: + self.spec = spec + self.built: Any = None + self.status = W.HTML("Ready.") + + self._elements: Dict[str, Element] = {f.name: element_for_field(f) for f in spec.fields} + + self._btn_apply = W.Button(description="Apply", button_style="success") + self._btn_reset = W.Button(description="Reset") + self._btn_apply.on_click(self._on_apply) + self._btn_reset.on_click(self._on_reset) + + header = W.HTML(f"

{spec.title}

") + actions = W.HBox([self._btn_apply, self._btn_reset]) + rows = [self._elements[f.name] for f in spec.fields] + self.root = W.VBox([header, *rows, actions, self.status]) + + @property + def is_valid(self) -> bool: + """Whether every rendered field currently passes its validator.""" + return all(el.is_valid for el in self._elements.values()) + + def _collect_values(self) -> Dict[str, Any]: + values: Dict[str, Any] = {} + for f in self.spec.fields: + raw = self._elements[f.name].value + values[f.name] = f.transform(raw) if f.transform else raw + return values + + def _on_apply(self, _btn: Any) -> None: + if not self.is_valid: + self.status.value = ( + "Fix invalid fields before applying." + ) + return + try: + values = self._collect_values() + if self.spec.build is None: + raise RuntimeError("Spec has no 'build' function.") + self.built = self.spec.build(values) + self.status.value = "Built successfully." + except Exception as exc: # noqa: BLE001 + self.built = None + self.status.value = f"{exc}" + + def _on_reset(self, _btn: Any) -> None: + for f in self.spec.fields: + self._elements[f.name].value = _coerced_default(f) + self.status.value = "Reset to defaults." + + def display(self) -> None: + """Render this form in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.root) From 6922d47fadb9870a2d001ec072b0361ad11c166d Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:42:08 +0200 Subject: [PATCH 013/158] Test forms --- tests/test_forms.py | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/test_forms.py diff --git a/tests/test_forms.py b/tests/test_forms.py new file mode 100644 index 0000000..7c93618 --- /dev/null +++ b/tests/test_forms.py @@ -0,0 +1,82 @@ +from __future__ import annotations + +from cadetgui.cadetprocessadapter import FieldSpec, ModelSpec, require_positive +from cadetgui.widgets.forms import FormRenderer, element_for_field + + +def make_spec() -> ModelSpec: + def build(values): + return dict(values) + + fields = [ + FieldSpec("rate", "float", "Rate", default=1.0, min=0.0, validate=require_positive), + FieldSpec("name", "text", "Name", default="col"), + FieldSpec("active", "bool", "Active", default=True), + FieldSpec("levels", "float_list", "Levels", default=[1.0, 2.0]), + ] + return ModelSpec(title="Test", fields=fields, build=build) + + +def test_element_for_field_maps_kind_to_element_type(): + from cadetgui.widgets.elements import ( + BoolField, + FloatField, + FloatListField, + TextField, + ) + + assert isinstance(element_for_field(FieldSpec("r", "float", default=1.0)), FloatField) + assert isinstance(element_for_field(FieldSpec("n", "text", default="x")), TextField) + assert isinstance(element_for_field(FieldSpec("a", "bool", default=True)), BoolField) + field = FieldSpec("l", "float_list", default=[1.0]) + assert isinstance(element_for_field(field), FloatListField) + + +def test_form_renders_one_element_per_field_with_defaults(): + form = FormRenderer(make_spec()) + assert set(form._elements) == {"rate", "name", "active", "levels"} + assert form._elements["rate"].value == 1.0 + assert form._elements["name"].value == "col" + assert form._elements["active"].value is True + assert form._elements["levels"].value == [1.0, 2.0] + assert form.is_valid + + +def test_form_apply_builds_object_from_current_values(): + form = FormRenderer(make_spec()) + form._elements["rate"].value = 5.0 + form._on_apply(None) + assert form.built == {"rate": 5.0, "name": "col", "active": True, "levels": [1.0, 2.0]} + assert "built" in form.status.value.lower() + + +def test_form_apply_blocked_when_a_field_is_invalid(): + form = FormRenderer(make_spec()) + form._elements["rate"].value = -1.0 + assert not form.is_valid + + form._on_apply(None) + assert form.built is None + assert "invalid" in form.status.value.lower() + + +def test_form_reset_restores_defaults(): + form = FormRenderer(make_spec()) + form._elements["rate"].value = 99.0 + form._elements["active"].value = False + + form._on_reset(None) + assert form._elements["rate"].value == 1.0 + assert form._elements["active"].value is True + + +def test_form_apply_reports_build_exception_without_raising(): + def failing_build(values): + raise RuntimeError("boom") + + fields = [FieldSpec("x", "float", default=1.0)] + spec = ModelSpec(title="Fail", fields=fields, build=failing_build) + form = FormRenderer(spec) + form._on_apply(None) + assert form.built is None + assert "boom" in form.status.value From 6564a7fa46f98ee12b8087244d89de3363c6f32f Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:46:41 +0200 Subject: [PATCH 014/158] Allow reactive form --- cadetgui/widgets/forms/renderer.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index cc14c0f..22632dd 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -3,7 +3,7 @@ # ========================================= from __future__ import annotations -from typing import Any, Callable, Dict +from typing import Any, Callable, Dict, Optional import ipywidgets as W @@ -55,9 +55,12 @@ def element_for_field(f: FieldSpec) -> Element: class FormRenderer: """Render a ModelSpec into a form of Elements; build an object on Apply.""" - def __init__(self, spec: ModelSpec) -> None: + def __init__( + self, spec: ModelSpec, *, on_built: Optional[Callable[[Any], None]] = None + ) -> None: self.spec = spec self.built: Any = None + self._on_built = on_built self.status = W.HTML("Ready.") self._elements: Dict[str, Element] = {f.name: element_for_field(f) for f in spec.fields} @@ -96,6 +99,8 @@ def _on_apply(self, _btn: Any) -> None: raise RuntimeError("Spec has no 'build' function.") self.built = self.spec.build(values) self.status.value = "Built successfully." + if self._on_built is not None: + self._on_built(self.built) except Exception as exc: # noqa: BLE001 self.built = None self.status.value = f"{exc}" From d6192aef78c94ffe57a01b15d874b61e7a0ea92b Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:47:01 +0200 Subject: [PATCH 015/158] Transfer configuration widget to anywidget --- cadetgui/widgets/composite/__init__.py | 10 ++ cadetgui/widgets/composite/configuration.py | 121 ++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 cadetgui/widgets/composite/__init__.py create mode 100644 cadetgui/widgets/composite/configuration.py diff --git a/cadetgui/widgets/composite/__init__.py b/cadetgui/widgets/composite/__init__.py new file mode 100644 index 0000000..8b90b10 --- /dev/null +++ b/cadetgui/widgets/composite/__init__.py @@ -0,0 +1,10 @@ +# ========================================= +# File: cadetgui/widgets/composite/__init__.py +# ========================================= +"""Task widgets assembled from elements + forms. + +See ai-docs/ARCHITECTURE.md's "Composition, not inheritance-of-everything" note. +""" +from .configuration import ConfigurationWidget + +__all__ = ["ConfigurationWidget"] diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py new file mode 100644 index 0000000..68dd27b --- /dev/null +++ b/cadetgui/widgets/composite/configuration.py @@ -0,0 +1,121 @@ +# ========================================= +# File: cadetgui/widgets/composite/configuration.py +# ========================================= +from __future__ import annotations + +from typing import Any, Callable, Dict, List, Optional + +import ipywidgets as W +from CADETProcess.processModel import ComponentSystem + +from ...cadetprocessadapter import ( + DEFAULT_COLUMN_FACTORIES, + MODEL_REGISTRY, + build_column_config_spec, +) +from ..elements import ChoiceField +from ..forms import FormRenderer + +__all__ = ["ConfigurationWidget"] + + +class ConfigurationWidget: + """Pick a unit operation + model-builder template, configure both, build a process. + + Rebuilds its forms whenever the component count, column, or model selection + changes. `.process` holds the latest successfully-built object; `add_listener` + registers a callback that fires with it on every successful build. + """ + + def __init__( + self, + *, + registry: Optional[Dict[str, Callable[[Any], Any]]] = None, + columns: Optional[Dict[str, Callable[[ComponentSystem], Any]]] = None, + ) -> None: + self._registry = registry or MODEL_REGISTRY + self._columns = columns or DEFAULT_COLUMN_FACTORIES + self._column_cache: Dict[Any, Any] = {} + self._listeners: List[Callable[[Any], None]] = [] + self.process: Any = None + self._column_form: Optional[FormRenderer] = None + self._model_form: Optional[FormRenderer] = None + + self._components = W.BoundedIntText(description="Components:", value=1, min=1, max=99) + self._column_picker = ChoiceField(label="Column:", options=list(self._columns.items())) + self._model_picker = ChoiceField(label="Model:", options=list(self._registry.items())) + + self._column_form_box = W.VBox([]) + self._model_form_box = W.VBox([]) + self.status = W.HTML("Select a column and model.") + + self.root = W.VBox( + [ + W.HTML("

Configuration

"), + W.HBox([self._components, self._column_picker, self._model_picker]), + self._column_form_box, + self._model_form_box, + self.status, + ] + ) + + self._components.observe(self._on_components_change, names="value") + self._column_picker.observe(self._on_selection_change, names="selected_index") + self._model_picker.observe(self._on_selection_change, names="selected_index") + + self._rebuild_forms() + + def add_listener(self, fn: Callable[[Any], None]) -> None: + """Register a callback fired with `.process` on every successful build.""" + self._listeners.append(fn) + + def _notify(self) -> None: + for fn in list(self._listeners): + fn(self.process) + + def _get_column(self) -> Any: + factory = self._column_picker.value + if factory is None: + return None + if factory not in self._column_cache: + cs = ComponentSystem(self._components.value) + self._column_cache[factory] = factory(cs) + return self._column_cache[factory] + + def _on_components_change(self, change: dict) -> None: + if change.get("name") != "value": + return + self._column_cache.clear() + self._rebuild_forms() + + def _on_selection_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + self._rebuild_forms() + + def _on_process_built(self, built: Any) -> None: + self.process = built + self._notify() + self.status.value = "Process built." + + def _rebuild_forms(self) -> None: + column = self._get_column() + model_fn = self._model_picker.value + if column is None or model_fn is None: + self._column_form_box.children = () + self._model_form_box.children = () + return + + self._column_form = FormRenderer(build_column_config_spec(column)) + self._column_form_box.children = (self._column_form.root,) + + self._model_form = FormRenderer(model_fn(column), on_built=self._on_process_built) + self._model_form_box.children = (self._model_form.root,) + + self.status.value = "Configure the column, then the model, and Apply each." + + def display(self) -> None: + """Render this widget in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.root) From 6f10676f5db663a6f7c72e4661f371f7d3b058ab Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 12:47:08 +0200 Subject: [PATCH 016/158] Add configuration widget test --- tests/test_configuration.py | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/test_configuration.py diff --git a/tests/test_configuration.py b/tests/test_configuration.py new file mode 100644 index 0000000..368ad03 --- /dev/null +++ b/tests/test_configuration.py @@ -0,0 +1,57 @@ +from __future__ import annotations + +import warnings + +from cadetgui.widgets.composite import ConfigurationWidget + +warnings.filterwarnings("ignore", category=UserWarning) + + +def test_configuration_widget_renders_default_forms(): + cw = ConfigurationWidget() + assert cw._column_picker.option_labels == ["GRM", "LRMP", "LRM", "CSTR"] + assert len(cw._column_form_box.children) == 1 + assert len(cw._model_form_box.children) == 1 + + +def test_configuration_widget_builds_process_on_both_applies(): + cw = ConfigurationWidget() + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + + assert cw.process is not None + assert type(cw.process).__name__ == "BatchElution" + + +def test_configuration_widget_notifies_listeners_on_build(): + cw = ConfigurationWidget() + seen = [] + cw.add_listener(seen.append) + + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + + assert len(seen) == 1 + assert seen[0] is cw.process + + +def test_configuration_widget_rebuilds_forms_on_model_change(): + cw = ConfigurationWidget() + first_title = cw._model_form.spec.title + + cw._model_picker.selected_index = 1 + assert cw._model_form.spec.title != first_title + assert len(cw._model_form_box.children) == 1 + + +def test_configuration_widget_rebuilds_column_on_component_change(): + cw = ConfigurationWidget() + original_column = cw._get_column() + assert original_column.n_comp == 1 + + cw._components.value = 2 + new_column = cw._get_column() + assert new_column is not original_column + assert new_column.n_comp == 2 + # the stale 1-component column must not linger in the cache + assert original_column not in cw._column_cache.values() From a6e28c5c999ee5b3b3c6c1c8a702bf8844933b06 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:10:35 +0200 Subject: [PATCH 017/158] Transfer solution widget to anywidget --- cadetgui/widgets/composite/__init__.py | 3 +- cadetgui/widgets/composite/solution.py | 124 +++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 cadetgui/widgets/composite/solution.py diff --git a/cadetgui/widgets/composite/__init__.py b/cadetgui/widgets/composite/__init__.py index 8b90b10..cdb5c63 100644 --- a/cadetgui/widgets/composite/__init__.py +++ b/cadetgui/widgets/composite/__init__.py @@ -6,5 +6,6 @@ See ai-docs/ARCHITECTURE.md's "Composition, not inheritance-of-everything" note. """ from .configuration import ConfigurationWidget +from .solution import SolutionWidget -__all__ = ["ConfigurationWidget"] +__all__ = ["ConfigurationWidget", "SolutionWidget"] diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py new file mode 100644 index 0000000..b578b6f --- /dev/null +++ b/cadetgui/widgets/composite/solution.py @@ -0,0 +1,124 @@ +# ========================================= +# File: cadetgui/widgets/composite/solution.py +# ========================================= +from __future__ import annotations + +from typing import Any, Callable, Optional + +import ipywidgets as W + +from ...simulation import run_process as _default_runner +from ..elements import ChoiceField + +__all__ = ["SolutionWidget"] + + +class SolutionWidget: + """Run a CADET-Process process and plot its solution. + + Plots via `SolutionIO.plot()` directly (CADET-Process already provides it — + see ai-docs/ARCHITECTURE.md's "no duplicated numerical engine" principle). + """ + + def __init__( + self, + *, + process: Any = None, + runner: Optional[Callable[[Any], Any]] = None, + ) -> None: + self._runner = runner or _default_runner + self.process = process + self.result: Any = None + + self._process_label = W.HTML() + self._btn_run = W.Button(description="Run simulation", icon="play", button_style="success") + self._btn_clear = W.Button(description="Clear", icon="trash") + self._signal_picker = ChoiceField(label="Signal:", options=[]) + self._plot_out = W.Output() + self.status = W.HTML("Ready.") + + self._btn_run.on_click(self._on_run) + self._btn_clear.on_click(self._on_clear) + self._signal_picker.observe(self._on_signal_change, names="selected_index") + + self.root = W.VBox( + [ + W.HTML("

Solution

"), + W.HBox([self._process_label, self._btn_run, self._btn_clear]), + self._signal_picker, + self._plot_out, + self.status, + ] + ) + self._update_process_label() + + def set_process(self, process: Any) -> None: + """Set the process to run on the next Run click.""" + self.process = process + self._update_process_label() + + def bind_to_config(self, config_widget: Any) -> None: + """Track a ConfigurationWidget's built process automatically.""" + config_widget.add_listener(self.set_process) + if getattr(config_widget, "process", None) is not None: + self.set_process(config_widget.process) + + def _update_process_label(self) -> None: + if self.process is None: + self._process_label.value = "No process set." + else: + name = getattr(self.process, "name", type(self.process).__name__) + self._process_label.value = f"Process: {name}" + + def _on_run(self, _btn: Any) -> None: + self._plot_out.clear_output() + if self.process is None: + self.status.value = "No process to run." + return + try: + self.result = self._runner(self.process) + except Exception as exc: # noqa: BLE001 + self.result = None + self.status.value = f"Simulation failed: {exc}" + return + + signals = [ + (f"{unit}: {port}", (unit, port)) + for unit, ports in self.result.solution.items() + for port in ports + ] + self._signal_picker.set_options(signals, keep_value=True) + self.status.value = "Simulation finished." + self._plot_selected() + + def _on_clear(self, _btn: Any) -> None: + self._plot_out.clear_output() + self.result = None + self._signal_picker.set_options([]) + self.status.value = "Cleared." + + def _on_signal_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + self._plot_selected() + + def _plot_selected(self) -> None: + if self.result is None or self._signal_picker.value is None: + return + unit, port = self._signal_picker.value + solution = self.result.solution[unit][port] + + self._plot_out.clear_output(wait=True) + with self._plot_out: + import matplotlib.pyplot as plt + from IPython.display import display + + fig, _ax = solution.plot() + display(fig) + plt.close(fig) + + def display(self) -> None: + """Render this widget in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.root) From 53769b45b8049aaa7d239788aed2e5fa8d7aaf05 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:10:46 +0200 Subject: [PATCH 018/158] Add shared stylesheet --- cadetgui/widgets/elements/_shared.css | 83 ++++++++++++++++++++++++--- 1 file changed, 75 insertions(+), 8 deletions(-) diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index 59533f0..f8ac9e5 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -1,30 +1,66 @@ /* Shared styling for atomic elements. Class names are shared across element - JS files (float_field.js, etc.) so this one stylesheet covers all of them. */ + JS files (float_field.js, etc.) so this one stylesheet covers all of them. + Tokens are declared on .cadetgui-field so every element (each gets its own + copy of this file injected by anywidget) carries its own light/dark values. */ .cadetgui-field { + --cg-fg: #1f2937; + --cg-muted: #6b7280; + --cg-border: #d1d5db; + --cg-focus: #2563eb; + --cg-danger: #dc2626; + --cg-bg: #ffffff; + --cg-radius: 6px; + display: flex; align-items: center; - gap: 0.5rem; - font-family: system-ui, sans-serif; + gap: 0.6rem; + padding: 2px 0; + font-family: system-ui, -apple-system, sans-serif; font-size: 13px; + color: var(--cg-fg); +} + +@media (prefers-color-scheme: dark) { + .cadetgui-field { + --cg-fg: #e5e7eb; + --cg-muted: #9ca3af; + --cg-border: #4b5563; + --cg-focus: #60a5fa; + --cg-danger: #f87171; + --cg-bg: #1f2937; + } } .cadetgui-field-label { min-width: 140px; flex: 0 0 auto; + color: var(--cg-muted); } .cadetgui-field-input { width: 140px; + padding: 4px 8px; + border: 1px solid var(--cg-border); + border-radius: var(--cg-radius); + background: var(--cg-bg); + color: var(--cg-fg); + font: inherit; +} + +.cadetgui-field-input:focus { + outline: none; + border-color: var(--cg-focus); + box-shadow: 0 0 0 2px color-mix(in srgb, var(--cg-focus) 25%, transparent); } .cadetgui-field[aria-invalid="true"] .cadetgui-field-input, .cadetgui-field-input[aria-invalid="true"] { - border-color: #b00020; + border-color: var(--cg-danger); } .cadetgui-field-error { - color: #b00020; + color: var(--cg-danger); font-size: 12px; } @@ -33,32 +69,63 @@ } .cadetgui-field-bool { - gap: 0.375rem; + gap: 0.4rem; } .cadetgui-field-bool .cadetgui-field-label { min-width: 0; + color: var(--cg-fg); +} + +.cadetgui-field-bool input[type="checkbox"] { + width: 15px; + height: 15px; + accent-color: var(--cg-focus); } .cadetgui-field-list { flex-direction: column; align-items: flex-start; + gap: 0.3rem; } .cadetgui-field-list-body { display: flex; flex-direction: column; - gap: 0.25rem; + gap: 0.3rem; } .cadetgui-field-list-row { display: flex; align-items: center; - gap: 0.25rem; + gap: 0.35rem; } .cadetgui-field-list-row input { width: 140px; + padding: 4px 8px; + border: 1px solid var(--cg-border); + border-radius: var(--cg-radius); + background: var(--cg-bg); + color: var(--cg-fg); + font: inherit; +} + +.cadetgui-field-list-row button, +.cadetgui-field-list-add { + border: 1px solid var(--cg-border); + border-radius: var(--cg-radius); + background: var(--cg-bg); + color: var(--cg-muted); + font: inherit; + cursor: pointer; + padding: 3px 8px; +} + +.cadetgui-field-list-row button:hover, +.cadetgui-field-list-add:hover { + border-color: var(--cg-focus); + color: var(--cg-focus); } .cadetgui-field-list-add { From 540f7d16cf31de81f7929eab21ed6127e58a5bc8 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:10:53 +0200 Subject: [PATCH 019/158] Add example notebook --- examples/configuration_and_solution.ipynb | 73 +++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 examples/configuration_and_solution.ipynb diff --git a/examples/configuration_and_solution.ipynb b/examples/configuration_and_solution.ipynb new file mode 100644 index 0000000..9cb7d5c --- /dev/null +++ b/examples/configuration_and_solution.ipynb @@ -0,0 +1,73 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b4cb635e", + "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the two widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** \u2014 pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object.\n- **`SolutionWidget`** \u2014 run that process through the CADET-Process simulator and plot the result.\n\nBoth are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting \u2014 the GUI never traps you inside it.\n\n*(There's also an earlier ipywidgets-based prototype in `cadetgui.widgets.legacy`, kept only as reference material \u2014 this notebook uses the current anywidget-based implementation.)*", + "metadata": {} + }, + { + "cell_type": "code", + "id": "0a16422b", + "source": "from cadetgui.widgets.composite import ConfigurationWidget, SolutionWidget", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "id": "3218f382", + "source": "## 1. Configure a process\n\nDisplaying `ConfigurationWidget` gives you three things to pick: the number of components, a column/unit operation type, and a model-builder template. Changing any of them rebuilds the two forms below it.\n\n1. Pick a column (e.g. `LRMP`) and a model (e.g. `Load\u2013Wash\u2013Elute (LWE)`).\n2. Adjust the column's physical parameters if you want, then click **Apply** on the column form.\n3. Adjust the model's process parameters, then click **Apply** on the model form.\n\nThe second Apply builds an actual CADET-Process object \u2014 you'll see \"Process built.\" appear.", + "metadata": {} + }, + { + "cell_type": "code", + "id": "302e74c3", + "source": "config = ConfigurationWidget()\nconfig.display()", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "id": "ff4a37be", + "source": "## 2. Run and visualize the simulation\n\n`SolutionWidget.bind_to_config(config)` makes it track whatever process `config` builds \u2014 every time you click Apply above, this widget picks it up automatically.\n\nClick **Run simulation** below, then use the **Signal** dropdown to plot different unit/port combinations (feed, column outlet, ...).", + "metadata": {} + }, + { + "cell_type": "code", + "id": "9befcbde", + "source": "solution = SolutionWidget()\nsolution.bind_to_config(config)\nsolution.display()", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "id": "48885efa", + "source": "## 3. The underlying objects stay accessible\n\nNothing above is trapped inside the widgets. `config.process` is a plain CADET-Process object, and `solution.result` is a plain `SimulationResults` object \u2014 use them exactly as you would if you'd built everything by hand in a script, for anything the GUI doesn't cover.", + "metadata": {} + }, + { + "cell_type": "code", + "id": "2d59f4c0", + "source": "print(type(config.process))\nprint(type(solution.result))\nprint(list(solution.result.solution.keys())) # unit operation names", + "metadata": {}, + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (cadet_dev)", + "language": "python", + "name": "cadet_dev" + }, + "language_info": { + "name": "python", + "version": "3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file From 5519cd896991b376f378505c09034367154097f3 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:10:59 +0200 Subject: [PATCH 020/158] Add solution widget test --- tests/test_solution.py | 87 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 tests/test_solution.py diff --git a/tests/test_solution.py b/tests/test_solution.py new file mode 100644 index 0000000..c0e613a --- /dev/null +++ b/tests/test_solution.py @@ -0,0 +1,87 @@ +from __future__ import annotations + +import warnings + +import matplotlib + +matplotlib.use("Agg") # headless test environment, no display needed + +from cadetgui.widgets.composite import ConfigurationWidget, SolutionWidget + +warnings.filterwarnings("ignore", category=UserWarning) + + +def built_process(): + cw = ConfigurationWidget() + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + return cw.process + + +def test_solutionwidget_starts_with_no_process(): + sw = SolutionWidget() + assert sw.process is None + assert "No process set" in sw._process_label.value + + +def test_solutionwidget_set_process_updates_label(): + sw = SolutionWidget() + sw.set_process(built_process()) + assert "Batch Elution" in sw._process_label.value + + +def test_solutionwidget_bind_to_config_tracks_future_builds(): + cw = ConfigurationWidget() + sw = SolutionWidget() + sw.bind_to_config(cw) + assert sw.process is None # nothing built yet + + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + assert sw.process is cw.process + + +def test_solutionwidget_bind_to_config_picks_up_existing_process(): + cw = ConfigurationWidget() + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + + sw = SolutionWidget() + sw.bind_to_config(cw) + assert sw.process is cw.process + + +def test_solutionwidget_run_without_process_shows_error(): + sw = SolutionWidget() + sw._on_run(None) + assert sw.result is None + assert "No process" in sw.status.value + + +def test_solutionwidget_run_populates_signals_and_plots(): + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + + assert sw.result is not None + assert sw._signal_picker.option_labels # non-empty + assert sw._signal_picker.value is not None + assert "finished" in sw.status.value.lower() + + +def test_solutionwidget_selection_persists_across_reruns(): + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + sw._signal_picker.selected_index = 3 + picked = sw._signal_picker.value + + sw._on_run(None) + assert sw._signal_picker.value == picked + + +def test_solutionwidget_clear_resets_state(): + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + sw._on_clear(None) + + assert sw.result is None + assert sw._signal_picker.option_labels == [] From 6d3dd8547c10601b286dac03a7806fd98d3663d3 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:11:07 +0200 Subject: [PATCH 021/158] Add webapp prototype --- examples/webapp/README.md | 45 +++++++++++++++++++++++++++++++++++++++ examples/webapp/app.ipynb | 25 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 examples/webapp/README.md create mode 100644 examples/webapp/app.ipynb diff --git a/examples/webapp/README.md b/examples/webapp/README.md new file mode 100644 index 0000000..03f5723 --- /dev/null +++ b/examples/webapp/README.md @@ -0,0 +1,45 @@ +# CADET-GUI as a website + +`app.ipynb` renders `ConfigurationWidget` + `SolutionWidget` — the exact same +widgets used in `examples/configuration_and_solution.ipynb` — composed into a +one-page layout, served via [Voilà](https://voila.readthedocs.io/). + +## Run it + +```bash +pip install voila # one-time, not a cadetgui runtime dependency +voila examples/webapp/app.ipynb +``` + +Then open the URL Voilà prints (defaults to `http://localhost:8866`). What you +get is a plain web page — no notebook UI, no code, no cell boundaries, just the +widgets in a styled two-column layout with a header. Anyone visiting the URL in +a browser sees a website; the `.ipynb` file is just this app's source format +(convenient because it's also directly editable/runnable in JupyterLab), not +something end users interact with. + +## Why this proves anything + +The widgets need a live Python backend regardless of deployment target — running +an actual CADET-Process/CADET-Core simulation can't happen client-side in a +browser. Voilà gives us that backend (one Jupyter kernel per visitor session) for +free, using the exact same widget-sync protocol our anywidget elements already +speak for Jupyter. So "the same widget code, unmodified, works in a notebook and +on a website" isn't a promise — `app.ipynb` and +`examples/configuration_and_solution.ipynb` import and use `ConfigurationWidget`/ +`SolutionWidget` identically; only the composition/layout code differs. + +## If you get `ModuleNotFoundError: No module named 'cadetgui'` + +Voilà runs the notebook's cell(s) in a Jupyter **kernel**, which may not be the +same Python environment you're running `voila` from. Register a kernel for the +environment `cadetgui` is installed in (once): + +```bash +python -m ipykernel install --user --name --display-name "Python 3 ()" +``` + +Then make sure the notebook's kernel metadata (`Kernel > Change Kernel` in +JupyterLab, or edit `metadata.kernelspec` in the `.ipynb` JSON) points at that +kernel name. Both notebooks in `examples/` are currently pinned to a kernel named +`cadet_dev` — rename to match your own environment if it's called something else. diff --git a/examples/webapp/app.ipynb b/examples/webapp/app.ipynb new file mode 100644 index 0000000..efee490 --- /dev/null +++ b/examples/webapp/app.ipynb @@ -0,0 +1,25 @@ +{ + "cells": [ + { + "cell_type": "code", + "id": "a9463514", + "source": "import ipywidgets as W\nfrom IPython.display import display\n\nfrom cadetgui.widgets.composite import ConfigurationWidget, SolutionWidget\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process and run it \u2014 powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\nconfig_card = W.VBox([config.root])\nconfig_card.add_class(\"cadetgui-card\")\nsolution_card = W.VBox([solution.root])\nsolution_card.add_class(\"cadetgui-card\")\n\ncolumns = W.HBox([config_card, solution_card])\ncolumns.add_class(\"cadetgui-app-columns\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, columns])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)", + "metadata": {}, + "execution_count": null, + "outputs": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (cadet_dev)", + "language": "python", + "name": "cadet_dev" + }, + "language_info": { + "name": "python", + "version": "3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file From 6567a3857b9794f62f3a56493367e739811f2ef2 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:16:54 +0200 Subject: [PATCH 022/158] Update Layout --- cadetgui/widgets/_chrome.py | 16 +++ cadetgui/widgets/chrome.css | 103 ++++++++++++++++++++ cadetgui/widgets/composite/configuration.py | 14 ++- cadetgui/widgets/composite/solution.py | 14 ++- cadetgui/widgets/forms/renderer.py | 8 +- 5 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 cadetgui/widgets/_chrome.py create mode 100644 cadetgui/widgets/chrome.css diff --git a/cadetgui/widgets/_chrome.py b/cadetgui/widgets/_chrome.py new file mode 100644 index 0000000..176e2dc --- /dev/null +++ b/cadetgui/widgets/_chrome.py @@ -0,0 +1,16 @@ +# ========================================= +# File: cadetgui/widgets/_chrome.py +# ========================================= +from __future__ import annotations + +from pathlib import Path + +_CSS = (Path(__file__).parent / "chrome.css").read_text() + + +def style_tag() -> str: + """Shared " diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css new file mode 100644 index 0000000..1428873 --- /dev/null +++ b/cadetgui/widgets/chrome.css @@ -0,0 +1,103 @@ +/* Shared chrome for composite/form widgets (FormRenderer, ConfigurationWidget, + SolutionWidget) — these compose plain ipywidgets containers, not anywidget + elements, so this gets injected via a \n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process and run it \u2014 powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\nconfig_card = W.VBox([config.root])\nconfig_card.add_class(\"cadetgui-card\")\nsolution_card = W.VBox([solution.root])\nsolution_card.add_class(\"cadetgui-card\")\n\ncolumns = W.HBox([config_card, solution_card])\ncolumns.add_class(\"cadetgui-app-columns\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, columns])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)", + "source": "import ipywidgets as W\nfrom IPython.display import display\n\nfrom cadetgui.widgets.composite import ConfigurationWidget, DataImportWidget, SolutionWidget\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\ndata = DataImportWidget()\nsolution.bind_to_data(data)\n\nconfig_card = W.VBox([config.root])\nconfig_card.add_class(\"cadetgui-card\")\nsolution_card = W.VBox([solution.root])\nsolution_card.add_class(\"cadetgui-card\")\n\ncolumns = W.HBox([config_card, solution_card])\ncolumns.add_class(\"cadetgui-app-columns\")\n\ndata_card = W.VBox([data.root])\ndata_card.add_class(\"cadetgui-card\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, columns, data_card])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)", "metadata": {}, "execution_count": null, "outputs": [] From 4e87daaa38db7c0ade1a8034713193ad9a6499d0 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:52:14 +0200 Subject: [PATCH 027/158] Add data import tests --- tests/test_data_import.py | 84 +++++++++++++++++++++++++++++++++++++++ tests/test_solution.py | 49 ++++++++++++++++++++++- 2 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 tests/test_data_import.py diff --git a/tests/test_data_import.py b/tests/test_data_import.py new file mode 100644 index 0000000..2a9df75 --- /dev/null +++ b/tests/test_data_import.py @@ -0,0 +1,84 @@ +from __future__ import annotations + +import datetime as dt + +from cadetgui.widgets.composite import DataImportWidget + + +def _upload(widget: DataImportWidget, filename: str, csv_text: str) -> None: + content = memoryview(csv_text.encode("utf-8")) + widget._upload.value = ( + { + "name": filename, + "type": "text/csv", + "size": len(content), + "last_modified": dt.datetime.now(), + "content": content, + }, + ) + + +def test_upload_parses_minutes_by_default(): + di = DataImportWidget() + _upload(di, "run1.csv", "time,signal\n0,0.0\n1,0.5\n2,1.0\n") + + assert len(di.datasets) == 1 + ds = di.datasets[0] + assert ds.label == "run1" + assert ds.time_min.tolist() == [0.0, 1.0, 2.0] + assert ds.signal.tolist() == [0.0, 0.5, 1.0] + + +def test_upload_converts_seconds_to_minutes(): + di = DataImportWidget() + di._time_unit.value = "s" + _upload(di, "run1.csv", "time,signal\n0,0.0\n60,1.0\n120,0.5\n") + + assert di.datasets[0].time_min.tolist() == [0.0, 1.0, 2.0] + + +def test_upload_skips_unparseable_rows_without_crashing(): + di = DataImportWidget() + _upload(di, "messy.csv", "time,signal\n0,0.0\nnot,a,number\n2,1.0\n") + + assert di.datasets[0].time_min.tolist() == [0.0, 2.0] + + +def test_upload_of_unparseable_file_reports_error_and_adds_nothing(): + di = DataImportWidget() + _upload(di, "empty.csv", "time,signal\n") + + assert di.datasets == [] + assert "Could not parse" in di.status.value + + +def test_multiple_uploads_accumulate_and_select_newest(): + di = DataImportWidget() + _upload(di, "a.csv", "time,signal\n0,1\n") + _upload(di, "b.csv", "time,signal\n0,2\n") + + assert [d.label for d in di.datasets] == ["a", "b"] + assert di._dataset_picker.value.label == "b" + + +def test_remove_deletes_the_selected_dataset(): + di = DataImportWidget() + _upload(di, "a.csv", "time,signal\n0,1\n") + _upload(di, "b.csv", "time,signal\n0,2\n") + + di._dataset_picker.selected_index = 0 # "a" + di._on_remove(None) + + assert [d.label for d in di.datasets] == ["b"] + + +def test_listener_fires_on_upload_and_remove(): + di = DataImportWidget() + events = [] + di.add_listener(lambda: events.append(len(di.datasets))) + + _upload(di, "a.csv", "time,signal\n0,1\n") + assert events == [1] + + di._on_remove(None) + assert events == [1, 0] diff --git a/tests/test_solution.py b/tests/test_solution.py index a6cb5a8..c48a37e 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -1,16 +1,34 @@ from __future__ import annotations +import datetime as dt import warnings import matplotlib matplotlib.use("Agg") # headless test environment, no display needed -from cadetgui.widgets.composite import ConfigurationWidget, SolutionWidget +from cadetgui.widgets.composite import ( + ConfigurationWidget, + DataImportWidget, + SolutionWidget, +) warnings.filterwarnings("ignore", category=UserWarning) +def upload_csv(widget: DataImportWidget, filename: str, csv_text: str) -> None: + content = memoryview(csv_text.encode("utf-8")) + widget._upload.value = ( + { + "name": filename, + "type": "text/csv", + "size": len(content), + "last_modified": dt.datetime.now(), + "content": content, + }, + ) + + def built_process(): cw = ConfigurationWidget() cw._column_form._on_apply(None) @@ -131,3 +149,32 @@ def test_solutionwidget_picking_a_failed_run_shows_its_error(): sw.history._picker.selected_index = 1 # the failed run assert sw._signal_picker.option_labels == [] assert "Simulation failed" in sw.status.value + + +def test_solutionwidget_overlays_bound_experimental_data(): + sw = SolutionWidget(process=built_process()) + di = DataImportWidget() + sw.bind_to_data(di) + + upload_csv(di, "measured.csv", "time,signal\n0,0.0\n1,0.5\n") + sw._on_run(None) # no exception with data already loaded before the run + + unit, port = sw._signal_picker.value + solution = sw.result.solution[unit][port] + fig, ax = solution.plot() + for ds in di.datasets: + ax.plot(ds.time_min, ds.signal, linestyle="--", label=f"{ds.label} (measured)") + ax.legend() + labels = ax.get_legend_handles_labels()[1] + assert any("measured" in label for label in labels) + + +def test_solutionwidget_replots_when_data_uploaded_after_run(): + sw = SolutionWidget(process=built_process()) + di = DataImportWidget() + sw.bind_to_data(di) + + sw._on_run(None) # plot exists before any experimental data is loaded + upload_csv(di, "late.csv", "time,signal\n0,0.0\n1,1.0\n") # must not raise + + assert di.datasets # upload succeeded and triggered a listener-driven replot From 0f56113a214d5877e2cae6334ad47629e7bbf455 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 13:58:05 +0200 Subject: [PATCH 028/158] Add export script funtionality to configuration widget --- cadetgui/widgets/chrome.css | 10 ++++ cadetgui/widgets/composite/configuration.py | 55 +++++++++++++++++++++ cadetgui/widgets/forms/renderer.py | 5 +- tests/test_configuration.py | 53 ++++++++++++++++++++ 4 files changed, 121 insertions(+), 2 deletions(-) diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css index 1428873..5f3ffd2 100644 --- a/cadetgui/widgets/chrome.css +++ b/cadetgui/widgets/chrome.css @@ -101,3 +101,13 @@ font: inherit; padding: 4px 8px; } + +.cadetgui-script textarea { + border: 1px solid var(--cg-border); + border-radius: var(--cg-radius); + background: var(--cg-bg); + color: var(--cg-fg); + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; + font-size: 12.5px; + padding: 10px; +} diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index b1a64fa..b04d511 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -51,6 +51,10 @@ def __init__( self.status = W.HTML("Select a column and model.") self.status.add_class("cadetgui-status") + self._btn_export = W.Button(description="Export script", icon="code") + self._script_out = W.Textarea(layout=W.Layout(width="100%", height="220px", display="none")) + self._script_out.add_class("cadetgui-script") + toolbar = W.HBox( [self._components, self._column_picker, self._model_picker], layout=W.Layout(flex_flow="row wrap"), @@ -64,6 +68,8 @@ def __init__( toolbar, self._column_form_box, self._model_form_box, + self._btn_export, + self._script_out, self.status, ] ) @@ -72,6 +78,7 @@ def __init__( self._components.observe(self._on_components_change, names="value") self._column_picker.observe(self._on_selection_change, names="selected_index") self._model_picker.observe(self._on_selection_change, names="selected_index") + self._btn_export.on_click(self._on_export) self._rebuild_forms() @@ -124,6 +131,54 @@ def _rebuild_forms(self) -> None: self.status.value = "Configure the column, then the model, and Apply each." + def export_script(self) -> str: + """Generate an executable CADET-Process Python script for the current build. + + Introspects the actual built objects' classes (`type(obj).__module__` / + `__name__`) rather than a hardcoded column/model name mapping, so this + works for any column or model registered — no per-type special-casing + (PRODUCT_VISION.md ARCH-003: the "expert escape hatch"/anti-black-box + requirement). + """ + if self.process is None or self._column_form is None or self._model_form is None: + raise RuntimeError("Nothing built yet — Apply both the column and model forms first.") + + column = self._get_column() + cs_cls = ComponentSystem + col_cls = type(column) + proc_cls = type(self.process) + + lines = [ + f"from {cs_cls.__module__} import {cs_cls.__name__}", + f"from {col_cls.__module__} import {col_cls.__name__}", + f"from {proc_cls.__module__} import {proc_cls.__name__}", + "", + f"component_system = {cs_cls.__name__}({self._components.value})", + "", + f"column = {col_cls.__name__}(component_system, name={column.name!r})", + ] + for name, value in self._column_form.collect_values().items(): + lines.append(f"column.{name} = {value!r}") + + lines.append("") + lines.append(f"process = {proc_cls.__name__}(") + lines.append(" column=column,") + for name, value in self._model_form.collect_values().items(): + lines.append(f" {name}={value!r},") + lines.append(")") + + return "\n".join(lines) + + def _on_export(self, _btn: Any) -> None: + try: + script = self.export_script() + except RuntimeError as exc: + self.status.value = f"{exc}" + return + self._script_out.value = script + self._script_out.layout.display = "" + self.status.value = "Script generated below." + def display(self) -> None: """Render this widget in a Jupyter cell.""" from IPython.display import display as _display diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index 31c3f81..576b9f9 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -84,7 +84,8 @@ def is_valid(self) -> bool: """Whether every rendered field currently passes its validator.""" return all(el.is_valid for el in self._elements.values()) - def _collect_values(self) -> Dict[str, Any]: + def collect_values(self) -> Dict[str, Any]: + """Return the current field values, with each field's `transform` applied.""" values: Dict[str, Any] = {} for f in self.spec.fields: raw = self._elements[f.name].value @@ -98,7 +99,7 @@ def _on_apply(self, _btn: Any) -> None: ) return try: - values = self._collect_values() + values = self.collect_values() if self.spec.build is None: raise RuntimeError("Spec has no 'build' function.") self.built = self.spec.build(values) diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 368ad03..0fee9df 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -55,3 +55,56 @@ def test_configuration_widget_rebuilds_column_on_component_change(): assert new_column.n_comp == 2 # the stale 1-component column must not linger in the cache assert original_column not in cw._column_cache.values() + + +def test_export_script_raises_before_anything_is_built(): + cw = ConfigurationWidget() + try: + cw.export_script() + assert False, "should have raised" + except RuntimeError as exc: + assert "Apply" in str(exc) + + +def test_export_script_button_shows_error_status_before_build(): + cw = ConfigurationWidget() + cw._on_export(None) + assert "Apply" in cw.status.value + assert cw._script_out.layout.display == "none" + + +def test_export_script_produces_executable_equivalent_process(): + import numpy as np + + cw = ConfigurationWidget() + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + + script = cw.export_script() + ns = {} + exec(compile(script, "", "exec"), ns) # noqa: S102 + + assert type(ns["process"]) is type(cw.process) + assert type(ns["column"]) is type(cw._get_column()) + assert ns["component_system"].n_comp == cw._components.value + + from cadetgui.simulation import run_process + + res_widget = run_process(cw.process) + res_script = run_process(ns["process"]) + unit = next(iter(res_widget.solution)) + assert np.array_equal( + res_widget.solution[unit]["outlet"].solution, + res_script.solution[unit]["outlet"].solution, + ) + + +def test_export_script_button_populates_textarea_on_success(): + cw = ConfigurationWidget() + cw._column_form._on_apply(None) + cw._model_form._on_apply(None) + + cw._on_export(None) + assert "process = " in cw._script_out.value + assert cw._script_out.layout.display == "" + assert "generated" in cw.status.value.lower() From 03fcc55e091a4f0e5ece875b8ab702e2464602aa Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 14:03:53 +0200 Subject: [PATCH 029/158] Remove legacy widgets --- cadetgui/cadetprocessadapter.py | 146 +--- cadetgui/widgets/__init__.py | 43 +- cadetgui/widgets/legacy/__init__.py | 38 - cadetgui/widgets/legacy/base.py | 184 ---- cadetgui/widgets/legacy/config.py | 564 ------------- cadetgui/widgets/legacy/elements.py | 452 ---------- cadetgui/widgets/legacy/form.py | 63 -- cadetgui/widgets/legacy/solution.py | 971 ---------------------- examples/configuration_and_solution.ipynb | 2 +- tests/display_widgets.ipynb | 524 ------------ tests/test_widgets.py | 104 --- 11 files changed, 42 insertions(+), 3049 deletions(-) delete mode 100644 cadetgui/widgets/legacy/__init__.py delete mode 100644 cadetgui/widgets/legacy/base.py delete mode 100644 cadetgui/widgets/legacy/config.py delete mode 100644 cadetgui/widgets/legacy/elements.py delete mode 100644 cadetgui/widgets/legacy/form.py delete mode 100644 cadetgui/widgets/legacy/solution.py delete mode 100644 tests/display_widgets.ipynb delete mode 100644 tests/test_widgets.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index cd60bf1..dc7034d 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -1,19 +1,18 @@ from __future__ import annotations from dataclasses import dataclass, field -from typing import Any, Callable, Mapping, Sequence, Optional, Dict, Literal +from typing import Any, Callable, Dict, Literal, Mapping, Optional, Sequence +from CADETProcess.modelBuilder import LWE, BatchElution from CADETProcess.processModel import ( ChromatographicColumnBase, ComponentSystem, + Cstr, GeneralRateModel, - LumpedRateModelWithPores, LumpedRateModelWithoutPores, - Cstr + LumpedRateModelWithPores, ) -from CADETProcess.modelBuilder import LWE, BatchElution, CLR, FlipFlop, MRSSR - FieldKind = str Validator = Callable[[Any], None] Transform = Callable[[Any], Any] @@ -31,6 +30,7 @@ class FieldSpec: max: float | None = None units: str | None = None + def require_positive(x: Any) -> None: if float(x) <= 0: raise ValueError("Must be > 0.") @@ -47,6 +47,7 @@ def parse_float_list(v: Any) -> list[float]: vals.append(float(tok)) return vals + PARAMS: dict[str, FieldSpec] = { "c_feed": FieldSpec("c_feed", "float_list", "Feed concentration", [10.0], transform=parse_float_list), "c_load": FieldSpec("c_load", "float_list", "Load concentration", [50.0], transform=parse_float_list), @@ -60,15 +61,6 @@ def parse_float_list(v: Any) -> list[float]: "gradient_duration": FieldSpec("gradient_duration", "float", "Gradient duration", 10.0, validate=require_positive), "final_wash_duration": FieldSpec("final_wash_duration", "float", "Final wash duration", 10.0), "c_eluent": FieldSpec("c_eluent", "float", "Eluent (scalar)", 0.0), - "recycle_on": FieldSpec("recycle_on", "float", "Recycle on (t)", 250.0, validate=require_positive), - "recycle_off": FieldSpec("recycle_off", "float", "Recycle off (t)", 300.0, validate=require_positive), - "pump_volume": FieldSpec("pump_volume", "float", "Pump volume", 1e-9, validate=require_positive), - "V_tank": FieldSpec("V_tank", "float", "Tank volume", 1e-6, validate=require_positive), - "delay_flip": FieldSpec("delay_flip", "float", "Delay flip (t)", 325.0, validate=require_positive), - "delay_injection": FieldSpec("delay_injection", "float", "Delay injection (t)", 190.0, validate=require_positive), - "c_tank_init": FieldSpec("c_tank_init", "float_list", "Initial tank c",transform=parse_float_list) - - } @@ -124,106 +116,13 @@ def _build(v: Mapping[str, Any]) -> Any: ]), build=_build, ) - -def clr_spec(column: ChromatographicColumnBase) -> ModelSpec: - """Closed Loop Recycling (CLR) spec.""" - def _build(v: Mapping[str, Any]) -> Any: - from CADETProcess.modelBuilder import CLR - return CLR( - column=column, - c_feed=v["c_feed"], - flow_rate=float(v["flow_rate"]), - feed_duration=float(v["feed_duration"]), - recycle_off=float(v["recycle_off"]), - cycle_time=float(v["cycle_time"]), - c_eluent=float(v["c_eluent"]), - pump_volume=float(v["pump_volume"]), - ) - - return ModelSpec( - title="Closed Loop Recycling (CLR)", - fields=_pick([ - "c_feed", - "flow_rate", - "feed_duration", - "recycle_off", - "cycle_time", - "c_eluent", - "pump_volume", - ]), - build=_build, - ) - -def flipflop_spec(column: ChromatographicColumnBase) -> ModelSpec: - """Flip-Flop spec.""" - def _build(v: Mapping[str, Any]) -> Any: - from CADETProcess.modelBuilder import FlipFlop - return FlipFlop( - column=column, - c_feed=v["c_feed"], - flow_rate=float(v["flow_rate"]), - feed_duration=float(v["feed_duration"]), - delay_flip=float(v["delay_flip"]), - delay_injection=float(v["delay_injection"]), - c_eluent=float(v["c_eluent"]), # keep scalar eluent for now - ) - - return ModelSpec( - title="Flip-Flop", - fields=_pick([ - "c_feed", - "flow_rate", - "feed_duration", - "delay_flip", - "delay_injection", - "c_eluent", - ]), - build=_build, - ) - -def mrssr_spec(column: ChromatographicColumnBase) -> ModelSpec: - """Mixed-Recycle Steady-State Recycling (MRSSR) spec.""" - def _build(v: Mapping[str, Any]) -> Any: - from CADETProcess.modelBuilder import MRSSR - # c_tank_init may be None (means: use feed concentration) - return MRSSR( - column=column, - c_feed=v["c_feed"], - flow_rate=float(v["flow_rate"]), - feed_duration=float(v["feed_duration"]), - recycle_on=float(v["recycle_on"]), - recycle_off=float(v["recycle_off"]), - cycle_time=float(v["cycle_time"]), - V_tank=float(v["V_tank"]), - c_eluent=float(v["c_eluent"]), - c_tank_init=v["c_tank_init"], - ) - - return ModelSpec( - title="MRSSR", - fields=_pick([ - "c_feed", - "flow_rate", - "feed_duration", - "recycle_on", - "recycle_off", - "cycle_time", - "V_tank", - "c_eluent", - "c_tank_init", - ]), - build=_build, - ) - - +# CLR, Flip-Flop, and MRSSR specs were removed for now (see ai-docs/REQUIREMENTS.md +# "Open decisions" — not rejected, just out of scope until picked back up). MODEL_REGISTRY: dict[str, Callable[[ChromatographicColumnBase], ModelSpec]] = { "Batch Elution": batch_elution_spec, "Load–Wash–Elute (LWE)": lwe_spec, - "CLR": clr_spec, - "Flip-Flop": flipflop_spec, - "MRSSR": mrssr_spec, } ColumnFactory = Callable[[ComponentSystem], ChromatographicColumnBase] @@ -238,6 +137,7 @@ def make_lrmp(cs: ComponentSystem) -> ChromatographicColumnBase: col = LumpedRateModelWithPores(cs, name="LRMP") return col + def make_lrm(cs: ComponentSystem) -> ChromatographicColumnBase: col = LumpedRateModelWithoutPores(cs, name="LRM") return col @@ -259,6 +159,7 @@ def make_cstr(cs: ComponentSystem) -> ChromatographicColumnBase: PARAM_TYPE_OVERRIDES: Dict[str, FieldKind] = {} + def _unique_preserve_order(names: Sequence[str]) -> list[str]: """Return names in original order, dropping duplicates (first occurrence wins).""" seen: set[str] = set() @@ -269,31 +170,35 @@ def _unique_preserve_order(names: Sequence[str]) -> list[str]: out.append(n) return out + PARAM_SCHEMA: dict[str, dict] = { - "diameter": {"kind": "float", "default": 0.024, "min": 0.0, "units": "m"}, - "bed_porosity": {"kind": "float", "default": 0.72, "min": 0.0, "max": 1.0}, - "length": {"kind": "float", "default": 0.5, "min": 0.0, "units": "m"}, - "pore_diffusion": {"kind": "float", "default": 1e-10, "min": 0.0, "units": "m^2/s"}, - "film_diffusion": {"kind": "float", "default": 1e-3, "min": 0.0, "units": "m/s"}, - "particle_porosity": {"kind": "float", "default": 0.6, "min": 0.0, "max": 1.0}, - "particle_radius": {"kind": "float", "default": 5.0e-6, "min": 0.0, "units": "m"}, - "axial_dispersion": {"kind": "float", "default": 1e-8, "min": 0.0, "units": "m^2/s"}, + "diameter": {"kind": "float", "default": 0.024, "min": 0.0, "units": "m"}, + "bed_porosity": {"kind": "float", "default": 0.72, "min": 0.0, "max": 1.0}, + "length": {"kind": "float", "default": 0.5, "min": 0.0, "units": "m"}, + "pore_diffusion": {"kind": "float", "default": 1e-10, "min": 0.0, "units": "m^2/s"}, + "film_diffusion": {"kind": "float", "default": 1e-3, "min": 0.0, "units": "m/s"}, + "particle_porosity": {"kind": "float", "default": 0.6, "min": 0.0, "max": 1.0}, + "particle_radius": {"kind": "float", "default": 5.0e-6, "min": 0.0, "units": "m"}, + "axial_dispersion": {"kind": "float", "default": 1e-8, "min": 0.0, "units": "m^2/s"}, } + def _infer_kind(x) -> str: if isinstance(x, (list, tuple)): return "float_list" - if isinstance(x, bool): return "bool" + if isinstance(x, bool): return "bool" return "float" + def _resolve_param(name: str, column_value): meta = PARAM_SCHEMA.get(name, {}) default = meta.get("default", column_value) - kind = meta.get("kind", _infer_kind(default)) + kind = meta.get("kind", _infer_kind(default)) transform = parse_float_list if kind == "float_list" else None bounds = {k: meta[k] for k in ("min", "max") if k in meta} - units = meta.get("units") + units = meta.get("units") return default, kind, transform, bounds, units + def _coerce_to_kind(kind: str, val): if kind == "float_list": return parse_float_list(val) @@ -302,6 +207,7 @@ def _coerce_to_kind(kind: str, val): # default: float return float(val) + def build_column_config_spec(column: ChromatographicColumnBase) -> ModelSpec: req = getattr(column, "required_parameters", None) or [] names = _unique_preserve_order(list(req)) diff --git a/cadetgui/widgets/__init__.py b/cadetgui/widgets/__init__.py index 59d1543..a35bf30 100644 --- a/cadetgui/widgets/__init__.py +++ b/cadetgui/widgets/__init__.py @@ -4,41 +4,28 @@ """Composable widgets for CADET-GUI. This subpackage provides: -- elements: atomic anywidget input controls (the target implementation) -- legacy: the earlier ipywidgets-based prototype, kept working as reference - material during the anywidget port (see ai-docs/ARCHITECTURE.md) +- elements: atomic anywidget input controls +- forms: FormRenderer, rendering a ModelSpec into elements +- composite: task widgets assembled from elements + forms (Configuration, + Solution, RunHistory, DataImport) -Public API re-exports the legacy prototype for now, since it's what's usable -end-to-end. Update this as anywidget equivalents land. +Public API re-exports the composite widgets, the most common entry point. +Import from `cadetgui.widgets.elements`/`.forms` directly for the lower layers. """ -from .legacy import ( - BaseWidget, - BoolField, - ChoiceField, +from .composite import ( ConfigurationWidget, - Display, - Element, - FloatField, - FormRenderer, - ListenerMixin, - ObjectChoiceField, - Popup, + DataImportWidget, + ExperimentalDataset, + RunHistoryWidget, + RunRecord, SolutionWidget, - TextField, ) __all__ = [ - "BaseWidget", - "ListenerMixin", - "Element", - "TextField", - "FloatField", - "BoolField", - "Display", - "Popup", - "ChoiceField", - "ObjectChoiceField", - "FormRenderer", "ConfigurationWidget", "SolutionWidget", + "RunHistoryWidget", + "RunRecord", + "DataImportWidget", + "ExperimentalDataset", ] diff --git a/cadetgui/widgets/legacy/__init__.py b/cadetgui/widgets/legacy/__init__.py deleted file mode 100644 index fb74189..0000000 --- a/cadetgui/widgets/legacy/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/legacy/__init__.py -# ========================================= -"""ipywidgets-based prototype — reference material for the anywidget port. - -Not the target implementation (see ai-docs/ARCHITECTURE.md). Kept working and -importable so the existing notebook keeps functioning during the port. -""" -from .base import BaseWidget, ListenerMixin -from .config import ConfigurationWidget -from .elements import ( - BoolField, - ChoiceField, - Display, - Element, - FloatField, - ObjectChoiceField, - Popup, - TextField, -) -from .form import FormRenderer -from .solution import SolutionWidget - -__all__ = [ - "BaseWidget", - "ListenerMixin", - "Element", - "TextField", - "FloatField", - "BoolField", - "Display", - "Popup", - "ChoiceField", - "ObjectChoiceField", - "FormRenderer", - "ConfigurationWidget", - "SolutionWidget", -] diff --git a/cadetgui/widgets/legacy/base.py b/cadetgui/widgets/legacy/base.py deleted file mode 100644 index 2c95717..0000000 --- a/cadetgui/widgets/legacy/base.py +++ /dev/null @@ -1,184 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/base.py -# ========================================= -from __future__ import annotations - -from abc import ABC, abstractmethod -from typing import Any, Callable, Dict, Optional - -import ipywidgets as W - -from .elements import FloatListField # aligned list control - -__all__ = ["ListenerMixin", "BaseWidget"] - -LABEL_W = "140px" - - -def _style_field( - w: W.Widget, *, width: str = "300px", label_width: str = LABEL_W, grow: bool = False -) -> W.Widget: - if hasattr(w, "layout"): - w.layout.width = "100%" if grow else width - w.layout.min_width = "0" - if not grow: - w.layout.flex = "0 0 auto" - if hasattr(w, "style"): - try: - w.style.description_width = label_width # fixed label column - except Exception: - pass - return w - - -class ListenerMixin: - """Reusable mixin that provides listener registration and notification.""" - - def __init__(self) -> None: - self._listeners: list[Callable[[Any], None]] = [] - - def add_listener(self, fn: Callable[[Any], None]) -> None: - """Register a listener callback.""" - self._listeners.append(fn) - - def notify(self, value: Any) -> None: - """Notify all registered listeners with a new value.""" - for fn in list(self._listeners): - try: - fn(value) - except Exception: - pass - - -class BaseWidget(ABC): - """Base widget container with a header, body, and status bar.""" - - def __init__(self, *, title: Optional[str] = None) -> None: - self.title = title or self.__class__.__name__ - self._status = W.HTML("Ready.") - self._header = W.HTML(f"

{self.title}

") - self._body = self._build_body() - self.root = W.VBox([self._header, self._body, self._status]) - self._wire_events() - - @abstractmethod - def _build_body(self) -> W.Widget: - ... - - def _wire_events(self) -> None: - """Connect event handlers (optional override).""" - - def set_status(self, text: str) -> None: - self._status.value = text - - def set_error(self, exc: Exception | str) -> None: - msg = str(exc) if isinstance(exc, Exception) else exc - self._status.value = f"{msg}" - - def run_safe(self, func: Callable[..., Any], *args: Any, **kwargs: Any) -> Any | None: - try: - return func(*args, **kwargs) - except Exception as exc: # noqa: BLE001 - self.set_error(exc) - return None - - @staticmethod - def make_apply_reset(on_apply: Callable[..., Any], on_reset: Callable[..., Any]) -> W.HBox: - btn_apply = W.Button(description="Apply", button_style="success") - btn_reset = W.Button(description="Reset") - btn_apply.on_click(on_apply) - btn_reset.on_click(on_reset) - return W.HBox([btn_apply, btn_reset]) - - @staticmethod - def reset_fields(widgets: Dict[str, W.Widget], specs: list[Any]) -> None: - """Reset widgets to their FieldSpec defaults.""" - for f in specs: - w = widgets.get(f.name) - if w is None: - continue - default = getattr(f, "default", None) - kind = getattr(f, "kind", "text") - try: - if kind == "float": - w.value = float(default) if default is not None else 0.0 - elif kind == "bool": - w.value = bool(default) - elif kind == "float_list": - # Rebuild the aligned FloatListField to match defaults - vals = ( - list(default) - if isinstance(default, (list, tuple)) - else ([float(default)] if default is not None else [0.0]) - ) - desc = getattr(f, "label", None) or getattr(f, "name", "") - new = FloatListField(description=desc, values=vals, label_width=LABEL_W) - widgets[f.name] = new # caller should re-render the form if needed - else: - w.value = "" if default is None else str(default) - except Exception: - # be robust to partial failures - pass - - @staticmethod - def widget_for_field(f: Any) -> W.Widget: - """ - Map a FieldSpec (name, kind, default, min, max, units, etc.) to a widget. - - IMPORTANT: Do NOT invent a max for floats. If min/max are not provided, - use FloatText (unbounded). If bounds exist, use BoundedFloatText with - exactly those bounds. - """ - label = getattr(f, "label", None) or getattr(f, "name", "") - kind = getattr(f, "kind", "text") - default = getattr(f, "default", None) - min_v = getattr(f, "min", None) - max_v = getattr(f, "max", None) - - # FLOAT - if kind == "float": - common = dict( - description=label, - value=float(default) if default is not None else 0.0, - ) - if min_v is None and max_v is None: - w = W.FloatText(**common) - else: - if min_v is not None: - common["min"] = float(min_v) - if max_v is not None: - common["max"] = float(max_v) - w = W.BoundedFloatText(**common, step=1e-6, readout_format=".6g") - return _style_field(w) - - # BOOL - if kind == "bool": - w = W.Checkbox(description=label, value=bool(default)) - return _style_field(w, width="auto") - - # FLOAT LIST (aligned, button-based editor) - if kind == "float_list": - vals = ( - list(default) - if isinstance(default, (list, tuple)) - else ([float(default)] if default is not None else [0.0]) - ) - return FloatListField(description=label, values=vals, label_width=LABEL_W) - - # TEXT (fallback) - w = W.Text(description=label, value=str(default) if default is not None else "") - return _style_field(w) - - @staticmethod - def observe_and_rebuild(widget: W.Widget, names: str, rebuild_fn: Callable[[Any], None]) -> None: - def _on_change(change: dict) -> None: - if change.get("name") != names: - return - rebuild_fn(change.get("new")) - - widget.observe(_on_change, names=names) - - def display(self) -> None: - from IPython.display import display as _display - - _display(self.root) diff --git a/cadetgui/widgets/legacy/config.py b/cadetgui/widgets/legacy/config.py deleted file mode 100644 index 68278e8..0000000 --- a/cadetgui/widgets/legacy/config.py +++ /dev/null @@ -1,564 +0,0 @@ -from __future__ import annotations - -import warnings -from threading import Timer -from typing import Any, Callable, Dict, Optional, Union - -import ipywidgets as W -from CADETProcess.processModel import ComponentSystem - -from ...cadetprocessadapter import ( - DEFAULT_COLUMN_FACTORIES, - MODEL_REGISTRY, - build_column_config_spec, -) -from .base import BaseWidget, ListenerMixin -from .elements import ChoiceField, Modal, ObjectChoiceField -from .form import FormRenderer - -__all__ = ["ConfigurationWidget"] - -# ---------------------- -# CSS-like layout tokens -# ---------------------- - -CSS_ROOT = W.Layout( - position="relative", - width="100%", - overflow="visible", - display="block", - z_index="0", -) - -CSS_TOOLBAR_WRAP = W.Layout( - position="relative", - width="100%", - overflow="visible", - z_index="0", -) - -# Model & Column pickers row -CSS_TOOLBAR_ROW = W.Layout( - align_items="center", - position="relative", - flex_wrap="wrap", - min_width="0", -) - -# Toolbar popover panel -CSS_TOOLBAR_POPOVER = W.Layout( - display="none", - position="absolute", - top="calc(100% + 8px)", - right="0", - width="420px", - max_height="60vh", - overflow_y="auto", - padding="16px", - border="1px solid #ccc", - border_radius="12px", - background_color="#fff", - box_shadow="0 8px 24px rgba(0,0,0,0.25)", - z_index="10020", -) - -# Main model configuration panel (no horizontal scroll) -CSS_MODEL_PANEL = W.Layout( - min_height="500px", - max_width="400px", - display="block", - overflow_x="hidden", -) - -# Grey overlay dimmer for popovers & modal -CSS_OVERLAY_DIMMER = W.Layout( - display="none", - position="absolute", - top="0", left="0", right="0", bottom="0", - background_color="rgba(0,0,0,0.25)", - z_index="10010", - pointer_events="auto", -) - -# Raise a control above overlays if needed -CSS_RAISE_ABOVE_OVERLAY = dict(position="relative", z_index="10040", pointer_events="auto") - - -# ---------------------- -# Utilities -# ---------------------- - -def _set_attr_path(obj: Any, path: str, value: Any) -> None: - """Set attribute or mapping by dotted path. Supports 'param:Family.key'.""" - if path.startswith("param:"): - _, rest = path.split("param:", 1) - family, key = rest.split(".", 1) - try: - obj.parameter[family][key] = value - return - except Exception: - pass - target = obj - parts = path.split(".") - for part in parts[:-1]: - target = getattr(target, part) - setattr(target, parts[-1], value) - - -# ---------------------- -# Widget -# ---------------------- - -class ConfigurationWidget(BaseWidget, ListenerMixin): - """Unified configuration widget for model/column-based process building. - - - Model Configuration: main panel under the toolbar (builds the process) - - Column Configuration: modal dialog for editing column parameters - """ - - # ----- init & state ----- - def __init__( - self, - *, - title: Optional[str] = None, - registry: Optional[dict[str, Callable[[Any], Any]]] = None, - columns: Optional[Union[list[Any], dict[str, Any]]] = None, - on_built: Optional[Callable[[Any], None]] = None, - spec_builder: Optional[type[FormRenderer]] = None, - ) -> None: - ListenerMixin.__init__(self) - - use_defaults = registry is None or columns is None or spec_builder is None - if use_defaults: - self._DEFAULT_COLUMN_FACTORIES = DEFAULT_COLUMN_FACTORIES - self._can_rebuild_columns = True - self._components_value = 1 - columns = DEFAULT_COLUMN_FACTORIES - registry = MODEL_REGISTRY - spec_builder = FormRenderer - else: - self._DEFAULT_COLUMN_FACTORIES = None - self._can_rebuild_columns = False - self._components_value = None - - # External deps / factories - self._registry = registry - self._columns = columns - self._SpecDriven = spec_builder - self._on_built = on_built - - # Column Config modal - self._column_modal = Modal("Column configuration") - - # State - self._built: Any | None = None - self._column_cache: dict[object, Any] = {} - - # Anti-flicker / concurrency guards - self._suspend_main_rebuild: bool = False - self._toolbar_popover_timer: Optional[Timer] = None - self._toolbar_popover_last_factory: Any = None - - # Detachable observers - self._obs_model_spec = None - self._obs_column_spec = None - - # Controls - self._btn_apply = W.Button(description="Apply", button_style="success") - self._btn_reset = W.Button(description="Reset") - self._btn_open_column_modal = W.Button(description="Configure column…", icon="wrench") - - self._components_field: Optional[W.IntText] = ( - W.IntText(description="Components:", value=self._components_value, min=1) - if self._can_rebuild_columns - else None - ) - - super().__init__(title=title or "Configuration") - - # Public API - @property - def process(self) -> Any | None: - return self._built - - # ----- UI builders ----- - def _build_toolbar_row(self) -> W.Widget: - self._model_picker = ObjectChoiceField(label="Model:", items=self._registry) # type: ignore[arg-type] - self._column_picker = ChoiceField(label="Column:", options=self._column_pairs) - for k, v in CSS_RAISE_ABOVE_OVERLAY.items(): - setattr(self._column_picker.widget.layout, k, v) - - row = W.HBox( - [self._components_field, self._model_picker.widget, self._column_picker.widget, self._btn_open_column_modal], - layout=CSS_TOOLBAR_ROW, - ) - return row - - def _build_toolbar_popover(self) -> W.Widget: - self._toolbar_popover = W.VBox([], layout=CSS_TOOLBAR_POPOVER) - return self._toolbar_popover - - def _build_model_panel(self) -> W.Widget: - self._model_panel = W.Box([], layout=CSS_MODEL_PANEL) - return self._model_panel - - def _build_overlay_dimmer(self) -> W.Widget: - self._overlay_dimmer = W.Box([], layout=CSS_OVERLAY_DIMMER) - return self._overlay_dimmer - - # ----- BaseWidget hooks ----- - def _build_body(self) -> W.Widget: - self._manual_mode = not (self._registry and self._columns) - if self._manual_mode: - self._form_box = W.VBox([]) - self._actions = W.HBox([self._btn_apply, self._btn_reset]) - return W.VBox([self._form_box, self._actions]) - - # Normalize columns - if isinstance(self._columns, dict): - self._column_pairs = list(self._columns.items()) - else: - self._column_pairs = [ - (getattr(c, "name", c.__class__.__name__), c) for c in self._columns - ] - - # Toolbar (row + popover anchored to it) - toolbar_row = self._build_toolbar_row() - self._toolbar_wrap = W.Box([toolbar_row], layout=CSS_TOOLBAR_WRAP) - self._toolbar_popover = self._build_toolbar_popover() - self._toolbar_wrap.children = [toolbar_row, self._toolbar_popover] - - # Model Config panel - self._model_panel = self._build_model_panel() - - # Content - self._content = W.VBox([self._toolbar_wrap, self._model_panel], layout=W.Layout(width="100%")) - - # Overlays: dimmer then column modal, all inside the root - self._overlay_dimmer = self._build_overlay_dimmer() - self._root = W.Box([self._content, self._overlay_dimmer, self._column_modal.widget], layout=CSS_ROOT) - - return W.VBox([self._root]) - - def _wire_events(self) -> None: - if getattr(self, "_manual_mode", False): - self._btn_apply.on_click(self._on_apply) - self._btn_reset.on_click(self._on_reset) - return - - self._attach_main_observers() - self._btn_open_column_modal.on_click(self._open_column_modal) - - # Initialize picks - try: - mopts = list(self._model_picker.widget.options) - if mopts: - self._model_picker.set_value(mopts[0][1]) - copts = list(self._column_picker.widget.options) - if copts: - self._column_picker.set_value(copts[0][1]) - except Exception: - pass - - # Initial form - model_fn, column = self._get_selection() - if model_fn and column: - self._rebuild_model_panel(model_fn, column) - - # Components watcher - if self._components_field: - self._components_field.observe(self._on_components_change, names="value") - - # ----- Toolbar popover helpers ----- - def _show_toolbar_popover(self, content: W.Widget, *, title: str | None = None) -> None: - if getattr(self._column_modal, "is_open", False): - try: - self._column_modal.close() - except Exception: - pass - if title: - title_html = W.HTML(f"

{title}

") - self._toolbar_popover.children = [title_html, content] - else: - self._toolbar_popover.children = [content] - self._toolbar_popover.layout.display = "flex" - self._overlay_dimmer.layout.display = "flex" - - def _hide_toolbar_popover(self) -> None: - self._toolbar_popover.layout.display = "none" - self._toolbar_popover.children = [] - self._overlay_dimmer.layout.display = "none" - - def _open_toolbar_popover_with_live_update( - self, - *, - initial_factory: Any, - rebuild_fn: Callable[[Any], FormRenderer], - title_fn: Callable[[Any], str], - observe_widget: W.Widget, - names: str = "value", - ) -> None: - if getattr(self._column_modal, "is_open", False): - try: - self._column_modal.close() - except Exception: - pass - - self._detach_main_observers() - self._suspend_main_rebuild = True - - def _restore(): - self._suspend_main_rebuild = False - try: - observe_widget.unobserve(_on_change, names=names) - except Exception: - pass - if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): - try: - self._toolbar_popover_timer.cancel() - except Exception: - pass - self._attach_main_observers() - self._hide_toolbar_popover() - - form = rebuild_fn(initial_factory) - self._toolbar_popover_last_factory = initial_factory - self._show_toolbar_popover(form.root, title=title_fn(initial_factory)) - - self._toolbar_popover_timer = None - - def _do_rebuild(factory: Any) -> None: - try: - new_form = rebuild_fn(factory) - self._toolbar_popover_last_factory = factory - self._show_toolbar_popover(new_form.root, title=title_fn(factory)) - except Exception as exc: - self._show_toolbar_popover(W.HTML(f"Error: {exc}")) - - def _on_change(change: dict) -> None: - if change.get("name") != names: - return - factory = change.get("new") - if factory is self._toolbar_popover_last_factory: - return - if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): - try: - self._toolbar_popover_timer.cancel() - except Exception: - pass - self._toolbar_popover_timer = Timer(0.12, _do_rebuild, args=(factory,)) - self._toolbar_popover_timer.start() - - observe_widget.observe(_on_change, names=names) - self._popover_close = _restore # retained attribute name for backward-compat - - # ----- Build helpers (Model/Column) ----- - def _build_model_form(self, model_fn: Callable[[Any], Any], column: Any) -> FormRenderer: - with warnings.catch_warnings(): - warnings.simplefilter("ignore", category=UserWarning) - spec = model_fn(column) - - form = (self._SpecDriven or FormRenderer)(spec) # type: ignore[call-arg] - - def _after_apply(_b: W.Button) -> None: - if getattr(form, "built", None) is not None: - self._built = form.built - if self._on_built: - self._on_built(form.built) - self.notify(self._built) - - form._btn_apply.on_click(_after_apply) # noqa: SLF001 - return form - - def _build_column_form(self, column: Any) -> FormRenderer: - spec = build_column_config_spec(column) - form = FormRenderer(spec) - - spec_apply = getattr(spec, "apply", None) - - def _apply_into_column(_b: W.Button) -> None: - vals: Dict[str, Any] = {} - for f in spec.fields: - raw = getattr(form._widgets[f.name], "value", None) # noqa: SLF001 - val = f.transform(raw) if f.transform else raw - if f.validate: - f.validate(val) - vals[f.name] = val - - if callable(spec_apply): - spec_apply(column, vals) - else: - targets = getattr(spec, "targets", None) or {} - wrote_any = False - for fname, v in vals.items(): - target_path = targets.get(fname) - try: - if target_path: - _set_attr_path(column, target_path, v) - wrote_any = True - elif hasattr(column, fname): - setattr(column, fname, v) - wrote_any = True - except Exception: - pass - if not wrote_any: - for k, v in vals.items(): - try: - column.parameter["LRMP"][k] = v - wrote_any = True - except Exception: - pass - - name = getattr(column, "name", column.__class__.__name__) - self.set_status(f"Updated column parameters for: {name}") - self._hide_toolbar_popover() - - form._btn_apply.on_click(_apply_into_column) # noqa: SLF001 - return form - - # ----- Selection helpers ----- - def _make_column(self, factory: Callable[[ComponentSystem], Any]) -> Any: - if factory in self._column_cache: - return self._column_cache[factory] - cs = ComponentSystem(self._components_field.value if self._components_field else 1) - return factory(cs) - - def _get_selection(self) -> tuple[Callable[[Any], Any] | None, Any | None]: - model_fn = self._model_picker.get_value() if hasattr(self, "_model_picker") else None - col_factory = self._column_picker.get_value() if hasattr(self, "_column_picker") else None - column = self._column_cache.get(col_factory) if callable(col_factory) else col_factory - if column is None and callable(col_factory): - column = self._make_column(col_factory) - return model_fn, column - - # ----- Observers attach/detach ----- - def _attach_main_observers(self) -> None: - if self._obs_model_spec is None: - self._obs_model_spec = lambda ch: self._on_spec_change(ch) - self._model_picker.widget.observe(self._obs_model_spec, names="value") - if self._obs_column_spec is None: - self._obs_column_spec = lambda ch: self._on_spec_change(ch) - self._column_picker.widget.observe(self._obs_column_spec, names="value") - - def _detach_main_observers(self) -> None: - if self._obs_model_spec is not None: - try: - self._model_picker.widget.unobserve(self._obs_model_spec, names="value") - except Exception: - pass - self._obs_model_spec = None - if self._obs_column_spec is not None: - try: - self._column_picker.widget.unobserve(self._obs_column_spec, names="value") - except Exception: - pass - self._obs_column_spec = None - - # ----- Event handlers ----- - def _rebuild_model_panel(self, model_fn: Callable[[Any], Any], column: Any) -> None: - form = self._build_model_form(model_fn, column) - with self._model_panel.hold_trait_notifications(): - self._model_panel.children = [form.root] - self.set_status("Select model & column, configure, then click Apply.") - - def _on_spec_change(self, _change: dict) -> None: - if self._suspend_main_rebuild: - return - model_fn, column = self._get_selection() - if model_fn and column: - self._rebuild_model_panel(model_fn, column) - - def _on_components_change(self, change: dict) -> None: - if not self._can_rebuild_columns or change.get("name") != "value": - return - try: - n = int(change["new"]) # type: ignore[index] - if n < 1: - return - except Exception: - return - - self._column_cache.clear() - self._columns = {name: factory for name, factory in self._DEFAULT_COLUMN_FACTORIES.items()} # type: ignore[union-attr] - pairs = list(self._columns.items()) - self._column_pairs = pairs - self._column_picker.widget.options = pairs - if pairs: - self._column_picker.set_value(pairs[0][1]) - - model_fn, column = self._get_selection() - if model_fn and column: - self._rebuild_model_panel(model_fn, column) - self.set_status(f"Rebuilt columns for {n} component(s).") - - def _open_column_modal(self, _btn): - # Close any live popover sessions - if hasattr(self, "_popover_close"): - try: - self._popover_close() - except Exception: - pass - try: - del self._popover_close - except Exception: - pass - if self._toolbar_popover_timer and self._toolbar_popover_timer.is_alive(): - try: - self._toolbar_popover_timer.cancel() - except Exception: - pass - - col_factory = self._column_picker.get_value() - if col_factory is None: - self.set_status("Pick a column first.") - return - - self._overlay_dimmer.layout.display = "flex" - self._suspend_main_rebuild = True - self._detach_main_observers() - - def build_form_for(factory): - column = self._column_cache.get(factory) or self._make_column(factory) - form = self._build_column_form(column) - - def _cache_after_apply(_b): - self._column_cache[factory] = column - model_fn, _ = self._get_selection() - if model_fn is not None: - self._rebuild_model_panel(model_fn, column) - self._column_modal.close() - form._btn_apply.on_click(_cache_after_apply) # noqa: SLF001 - return column, form - - column, form = build_form_for(col_factory) - self._column_modal.open(form.root, title=f"Configure: {getattr(column, 'name', column.__class__.__name__)}") - - def _on_dropdown_change(change: dict): - if change.get("name") != "value" or not self._column_modal.is_open: - return - try: - column2, form2 = build_form_for(change.get("new")) - self._column_modal.set_body(form2.root) - self._column_modal.set_title(f"Configure: {getattr(column2, 'name', column2.__class__.__name__)}") - except Exception as exc: - self._column_modal.set_body(W.HTML(f"Error: {exc}")) - - self._column_picker.widget.observe(_on_dropdown_change, names="value") - - def _on_modal_close(): - try: - self._column_picker.widget.unobserve(_on_dropdown_change, names="value") - except Exception: - pass - self._overlay_dimmer.layout.display = "none" - self._suspend_main_rebuild = False - self._attach_main_observers() - - self._column_modal.add_close_listener(_on_modal_close) - - # ----- Manual mode ----- - def _on_apply(self, _btn: W.Button) -> None: - self.set_status("Manual mode not implemented.") - - def _on_reset(self, _btn: W.Button) -> None: - self.set_status("Reset.") diff --git a/cadetgui/widgets/legacy/elements.py b/cadetgui/widgets/legacy/elements.py deleted file mode 100644 index 39c36d7..0000000 --- a/cadetgui/widgets/legacy/elements.py +++ /dev/null @@ -1,452 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/elements.py -# ========================================= -from __future__ import annotations - -from abc import ABC, abstractmethod -from typing import Any, Callable, Optional, Sequence, Tuple, TypeVar - -import ipywidgets as W - -__all__ = [ - "Element", - "TextField", - "FloatField", - "BoolField", - "Display", - "ChoiceField", - "ObjectChoiceField", - "Modal", -] - -T = TypeVar("T") - - -class Element(ABC): - """Base class for small reusable form elements.""" - - widget: W.Widget - - @abstractmethod - def get_value(self) -> Any: - """Return the current value.""" - - @abstractmethod - def set_value(self, value: Any) -> None: - """Set the current value.""" - - -class TextField(Element): - """Single-line text input with label.""" - - def __init__(self, *, label: str = "", value: str = "") -> None: - self.widget = W.Text(description=label, value=value) - - def get_value(self) -> str: # type: ignore[override] - return str(self.widget.value) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = str(value) - - -class FloatField(Element): - """Float input with label.""" - - def __init__(self, *, label: str = "", value: float = 0.0) -> None: - self.widget = W.FloatText(description=label, value=float(value)) - - def get_value(self) -> float: # type: ignore[override] - return float(self.widget.value) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = float(value) - - -class BoolField(Element): - """Boolean checkbox with label.""" - - def __init__(self, *, label: str = "", value: bool = False) -> None: - self.widget = W.Checkbox(description=label, value=bool(value)) - - def get_value(self) -> bool: # type: ignore[override] - return bool(self.widget.value) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = bool(value) - - -class Display(Element): - """Read-only HTML display block.""" - - def __init__(self, *, html: str = "") -> None: - self.widget = W.HTML(value=html) - - def get_value(self) -> str: # type: ignore[override] - return str(getattr(self.widget, "value", "")) - - def set_value(self, value: Any) -> None: # type: ignore[override] - self.widget.value = str(value) - - -class FloatListInput(W.VBox): - """Editable list of positive floats with +/− controls (no textarea).""" - - def __init__(self, *, label: str = "", values: list[float] | None = None, - min_val: float = 1e-300, step: float = 1e-6) -> None: - self._min = min_val - self._step = step - self._rows = W.VBox([]) - self._add = W.Button(icon="plus", tooltip="Add value") - self._label = W.Label(label) if label else W.Label() - super().__init__([self._label, self._rows, self._add], - layout=W.Layout(width="100%", min_width="0")) - - for v in (values if values else [0.0]): - self._add_row(float(v) if v is not None else 0.0) - - self._add.on_click(lambda _: self._add_row()) - - def _add_row(self, value: float = 0.0) -> None: - num = W.BoundedFloatText( - value=max(value, self._min), - min=self._min, - step=self._step, - readout_format=".6g", - layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), - ) - rm = W.Button(icon="trash", tooltip="Remove") - row = W.HBox([num, rm], layout=W.Layout(align_items="center")) - rm.on_click(lambda _b: self._remove_row(row)) - self._rows.children = tuple(list(self._rows.children) + [row]) - - def _remove_row(self, row: W.HBox) -> None: - items = list(self._rows.children) - try: - items.remove(row) - self._rows.children = tuple(items if items else []) - except ValueError: - pass - - @property - def value(self) -> list[float]: - return [float(ch.children[0].value) for ch in self._rows.children] - - -import ipywidgets as W - - -class FloatListField(W.HBox): - """List of positive floats aligned with other fields' description column.""" - - def __init__(self, *, description: str, values: list[float] | None = None, - label_width: str = "140px", min_val: float = 0.0, step: float = 1e-6): - self._min = min_val - self._step = step - self._rows = W.VBox([]) - self._add = W.Button(icon="plus", tooltip="Add value") - label = W.Label(description, layout=W.Layout(width=label_width, flex="0 0 auto")) - - box = W.VBox([self._rows, self._add], layout=W.Layout(width="100%", min_width="0")) - super().__init__([label, box], - layout=W.Layout(align_items="flex-start", width="100%", min_width="0")) - - for v in (values if values else [min_val]): - self._add_row(float(v)) - - self._add.on_click(lambda _: self._add_row(0.0)) - - def _add_row(self, value: float) -> None: - num = W.BoundedFloatText( - value=max(value, self._min), - min=self._min, step=self._step, readout_format=".6g", - layout=W.Layout(width="180px", min_width="0", flex="0 0 auto"), - ) - rm = W.Button(icon="trash", tooltip="Remove") - row = W.HBox([num, rm], layout=W.Layout(align_items="center")) - rm.on_click(lambda _b: self._remove_row(row)) - self._rows.children = tuple(list(self._rows.children) + [row]) - - def _remove_row(self, row: W.HBox) -> None: - items = list(self._rows.children) - if row in items: - items.remove(row) - self._rows.children = tuple(items) - - @property - def value(self) -> list[float]: - return [float(ch.children[0].value) for ch in self._rows.children] - - -class Popup(Element): - """Light-weight pseudo-modal popup using an Accordion.""" - - def __init__(self, *, title: str = "Info", content: Optional[W.Widget] = None) -> None: - body = content or W.HTML("Empty") - acc = W.Accordion(children=[body]) - acc.set_title(0, title) - acc.selected_index = None - self.widget = acc - - def get_value(self) -> None: # type: ignore[override] - return None - - def set_value(self, value: Any) -> None: # type: ignore[override] - pass - - def open(self) -> None: - self.widget.selected_index = 0 # type: ignore[attr-defined] - - def close(self) -> None: - self.widget.selected_index = None # type: ignore[attr-defined] - - -class ChoiceField(Element): - """Dropdown for selecting one option from (label, value) pairs. - - Parameters - ---------- - label : str - Text shown left of the dropdown (ipywidgets 'description'). - options : Sequence[Tuple[str, Any]] - Iterable of (label, value) pairs. - value : Any | None - Initially selected value. If None, uses the first option (if any). - layout : W.Layout | None - Optional ipywidgets layout (width, margin, etc.). - style : dict | None - Optional widget.style overrides, e.g. {"description_width": "90px"}. - disabled : bool - Disable user interaction. - placeholder : str | None - If given and value is None, inserts a non-selectable placeholder label. - class_name : str | None - CSS class to add to the widget (ipywidgets v8: .add_class; v7: ._dom_classes). - """ - - def __init__( - self, - *, - label: str = "", - options: Sequence[Tuple[str, Any]] = (), - value: Any | None = None, - layout: Optional[W.Layout] = None, - style: Optional[dict] = None, - disabled: bool = False, - placeholder: str | None = None, - class_name: str | None = None, - ) -> None: - # Build options (optionally add a placeholder) - self._placeholder = None - if placeholder is not None and (value is None) and len(options) > 0: - # ipywidgets Dropdown doesn't support a true non-selectable option, - # so we insert a unique sentinel value and treat it specially. - self._placeholder = object() - options = [(placeholder, self._placeholder)] + list(options) - - self.widget = W.Dropdown(description=label, options=list(options), disabled=disabled) - - if layout is not None: - self.widget.layout = layout - if style and hasattr(self.widget, "style"): - for k, v in style.items(): - setattr(self.widget.style, k, v) - - if class_name: - # v8 - if hasattr(self.widget, "add_class"): - self.widget.add_class(class_name) - # v7 fallback - elif hasattr(self.widget, "_dom_classes"): - self.widget._dom_classes.add(class_name) - - # Set initial value - try: - if value is not None: - self.widget.value = value - else: - # If placeholder present, select it; else leave default (first option) - if self._placeholder is not None: - self.widget.value = self._placeholder - except Exception: - pass - - # ---- Element API ---- - def get_value(self) -> Any: # type: ignore[override] - v = getattr(self.widget, "value", None) - # If placeholder is selected, behave as though no value is chosen - if self._placeholder is not None and v is self._placeholder: - return None - return v - - def set_value(self, value: Any) -> None: # type: ignore[override] - # Allow setting to None -> move to placeholder (if configured) - if value is None and self._placeholder is not None: - self.widget.value = self._placeholder - else: - self.widget.value = value - - # ---- Convenience helpers ---- - def set_options(self, options: Sequence[Tuple[str, Any]], *, keep_value: bool = True) -> None: - """Replace the options. If keep_value=True, try to keep current value if still present.""" - current = self.widget.value - self.widget.options = list(options) - if keep_value and any(v == current for _, v in self.widget.options): - try: - self.widget.value = current - except Exception: - pass - elif self.widget.options: - # default to first option - try: - self.widget.value = self.widget.options[0][1] - except Exception: - pass - - def add_class(self, name: str) -> None: - if hasattr(self.widget, "add_class"): - self.widget.add_class(name) # v8 - elif hasattr(self.widget, "_dom_classes"): - self.widget._dom_classes.add(name) # v7 - - def disable(self) -> None: - self.widget.disabled = True - - def enable(self) -> None: - self.widget.disabled = False - - -class ObjectChoiceField(ChoiceField): - """Dropdown for arbitrary objects with a label function (or attribute). - - Parameters - ---------- - label : str - Text shown left of the dropdown. - items : list[object] | dict[str, object] - Either a list of objects or a mapping of display label -> object. - label_fn : Callable[[object], str] | None - Function to produce a label for each object (used when items is a list). - fallback_attr : str - Attribute name to read for labels if label_fn is not provided (default: 'name'). - value, layout, style, disabled, placeholder, class_name - Passed through to ChoiceField. - """ - - def __init__( - self, - *, - label: str = "Select:", - items: list[object] | dict[str, object], - label_fn: Optional[Callable[[object], str]] = None, - fallback_attr: str = "name", - value: Any | None = None, - layout: Optional[W.Layout] = None, - style: Optional[dict] = None, - disabled: bool = False, - placeholder: str | None = None, - class_name: str | None = None, - ) -> None: - if isinstance(items, dict): - pairs = [(str(k), v) for k, v in items.items()] - else: - pairs = [] - for obj in items: - if label_fn is not None: - lbl = label_fn(obj) - else: - lbl = getattr(obj, fallback_attr, obj.__class__.__name__) - pairs.append((str(lbl), obj)) - - super().__init__( - label=label, - options=pairs, - value=value, - layout=layout, - style=style, - disabled=disabled, - placeholder=placeholder, - class_name=class_name, - ) - - -class Modal: - def __init__(self, title: str = "Dialog") -> None: - self._title = title - self._on_close: list[Callable[[], None]] = [] - self.is_open = False - - self._overlay = W.Box( - [], - layout=W.Layout( - display="none", - position="absolute", # ⬅ anchor to root stack - top="0", left="0", right="0", bottom="0", - width="100%", height="100%", - justify_content="center", - align_items="flex-start", - background_color="rgba(0,0,0,0.35)", - z_index="10030", # ⬅ top of our stack - pointer_events="auto", - ), - ) - - # The card/panel (above the backdrop) - self._title_html = W.HTML() - self._close_btn = W.Button(description="Close", icon="x") - self._close_btn.on_click(lambda _: self.close()) - - header = W.HBox( - [self._title_html, self._close_btn], - layout=W.Layout(justify_content="space-between", align_items="center", width="100%"), - ) - - self.body = W.Box([], layout=W.Layout(flex="1 1 auto", overflow_y="auto", width="100%")) - - self._panel = W.VBox( - [header, self.body], - layout=W.Layout( - width="min(720px, 90vw)", - max_height="80vh", - overflow="hidden", - padding="16px", - border="1px solid #ccc", - border_radius="12px", - background_color="#fff", - box_shadow="0 8px 24px rgba(0,0,0,0.25)", - # Critical bits: - position="relative", # panel has its own stacking context - z_index="2147483647", # above the backdrop (and everything else) - margin="12px 0 0 0", # near the top (adjust to taste) - pointer_events="auto", # panel captures clicks - ), - ) - - self._overlay.children = [self._panel] - self.widget = self._overlay - self.set_title(title) - - def set_title(self, title: str) -> None: - self._title = title - self._title_html.value = f"

{title}

" - - def set_body(self, content: W.Widget) -> None: - self.body.children = [content] - - def open(self, content: W.Widget, *, title: Optional[str] = None) -> None: - if title: - self.set_title(title) - self.set_body(content) - self._overlay.layout.display = "flex" # ipywidgets Boxes render with 'flex' - self.is_open = True - - def close(self) -> None: - self._overlay.layout.display = "none" - self.body.children = [] - self.is_open = False - for fn in list(self._on_close): - try: fn() - except Exception: pass - self._on_close.clear() - - def add_close_listener(self, fn: Callable[[], None]) -> None: - self._on_close.append(fn) diff --git a/cadetgui/widgets/legacy/form.py b/cadetgui/widgets/legacy/form.py deleted file mode 100644 index c55701e..0000000 --- a/cadetgui/widgets/legacy/form.py +++ /dev/null @@ -1,63 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/form.py -# ========================================= -from __future__ import annotations - -from typing import Any, Dict, Optional - -import ipywidgets as W - -from ...cadetprocessadapter import ModelSpec -from .base import BaseWidget - -__all__ = ["FormRenderer"] - - -class FormRenderer(BaseWidget): - """Render a ModelSpec into a form and build an object on Apply.""" - - def __init__(self, spec: ModelSpec, *, title: Optional[str] = None) -> None: - self._spec = spec - self._widgets: Dict[str, W.Widget] = {} - self._btn_apply = W.Button(description="Apply", button_style="success") - self._btn_reset = W.Button(description="Reset") - self.built: Any = None - super().__init__(title=title or spec.title) - - def _build_body(self) -> W.Widget: - rows: list[W.Widget] = [] - for f in self._spec.fields: - w = BaseWidget.widget_for_field(f) - self._widgets[f.name] = w - rows.append(w) - actions = W.HBox([self._btn_apply, self._btn_reset]) - return W.VBox(rows + [actions]) - - def _wire_events(self) -> None: - self._btn_apply.on_click(self._on_apply) - self._btn_reset.on_click(self._on_reset) - - def _collect_values(self) -> Dict[str, Any]: - vals: Dict[str, Any] = {} - for f in self._spec.fields: - raw = getattr(self._widgets[f.name], "value", None) - value = f.transform(raw) if f.transform else raw - if f.validate: - f.validate(value) - vals[f.name] = value - return vals - - def _on_apply(self, _btn: W.Button) -> None: - try: - vals = self._collect_values() - if self._spec.build is None: - raise RuntimeError("Spec has no 'build' function.") - self.built = self._spec.build(vals) - self.set_status("Built successfully.") - except Exception as exc: # noqa: BLE001 - self.built = None - self.set_error(exc) - - def _on_reset(self, _btn: W.Button) -> None: - BaseWidget.reset_fields(self._widgets, self._spec.fields) - self.set_status("Reset to defaults.") diff --git a/cadetgui/widgets/legacy/solution.py b/cadetgui/widgets/legacy/solution.py deleted file mode 100644 index 58a31c4..0000000 --- a/cadetgui/widgets/legacy/solution.py +++ /dev/null @@ -1,971 +0,0 @@ -# ========================================= -# File: cadetgui/widgets/solution.py -# ========================================= -from __future__ import annotations - -from contextlib import redirect_stderr, redirect_stdout -from typing import Any, Callable, Dict, Mapping, Optional, Sequence, Tuple - -import ipywidgets as W -import numpy as np - -from ...simulation import run_process as _default_runner -from .base import BaseWidget - -try: - from collections.abc import Mapping as _MappingABC -except Exception: # pragma: no cover - _MappingABC = dict # type: ignore - -__all__ = ["SolutionWidget", "solution_to_fields_lenmatch"] - -# ---- Optional import for nicer isinstance checks (kept soft) -try: # pragma: no cover - optional convenience - from CADETProcess.fields import Field as _FieldType # type: ignore -except Exception: # pragma: no cover - fallback to duck typing - _FieldType = Any # type: ignore - - -# ---------------------------- -# Generic helpers -# ---------------------------- -def _is_field(obj: Any) -> bool: - """Duck-type check for CADETProcess Field-like objects.""" - if _FieldType is not Any: - try: - return isinstance(obj, _FieldType) - except Exception: - pass - req = ["plot", "sel", "interp", "differentiate", "integrate", "coordinates"] - return all(hasattr(obj, name) for name in req) - - -def _try_plot_result_generic(result: Any, out: W.Output) -> None: - """Best-effort, generic plotting hook (safer checks).""" - try: - import matplotlib.pyplot as plt # type: ignore - from IPython.display import display - with out: - plot_attr = getattr(result, "plot", None) - if callable(plot_attr): - obj = plot_attr() - # Try to display the current figure if one was created - try: - display(plt.gcf()) - except Exception: - pass - return - if isinstance(result, dict) and "t" in result and "y" in result: - t, y = result["t"], result["y"] - plt.figure() - plt.plot(t, y) - plt.xlabel("t") - plt.ylabel("y") - display(plt.gcf()) - else: - print(repr(result)) - except Exception: - pass - - -def _get_attr_or_key(obj: Any, *names: str, default: Any = None) -> Any: - """Return first found attribute or mapping key from names, else default.""" - for n in names: - try: - if hasattr(obj, n): - return getattr(obj, n) - if isinstance(obj, _MappingABC) and n in obj: # type: ignore[arg-type] - return obj[n] - except Exception: - pass - return default - - -def _is_monotonic_increasing(arr: Any) -> bool: - try: - import numpy as _np - a = _np.asarray(arr) - if a.ndim != 1 or a.size < 2: - return False - return _np.all(_np.diff(a) >= 0) - except Exception: - return False - - -# ---------------------------- -# Field builders / coercion -# ---------------------------- -def _best_time_array(obj: Any) -> Any: - """Try to find a plausible time array on an object.""" - cand = _get_attr_or_key(obj, "time", "t") - if cand is not None: - return cand - try: - import numpy as _np - best = None - for name in dir(obj): - if name.startswith("_"): - continue - try: - v = getattr(obj, name) - except Exception: - continue - try: - a = _np.asarray(v) - except Exception: - continue - if a.ndim == 1 and a.size >= 2 and _is_monotonic_increasing(a): - lname = name.lower() - score = 1 - if "time" in lname or lname == "t": - score = 0 - if best is None or score < best[0]: - best = (score, v) - return best[1] if best else None - except Exception: - return None - - -def _pick_data_array(obj: Any, t_len: int) -> Any: - """Pick a plausible data array on an object given a time length.""" - data = _get_attr_or_key(obj, "c", "y", "data", "values", "signal") - if data is not None: - return data - try: - import numpy as _np - best = None - for name in dir(obj): - if name.startswith("_"): - continue - try: - v = getattr(obj, name) - except Exception: - continue - try: - a = _np.asarray(v) - except Exception: - continue - if a.ndim >= 1 and a.shape[0] == t_len: - score = -a.ndim - if best is None or score < best[0]: - best = (score, v) - return best[1] if best else None - except Exception: - return None - - -def _build_field_from_solution(solution: Any, *, name: Optional[str] = None) -> Any: - """Best-effort: turn a SolutionIO.solution-like object into a Field.""" - try: - from CADETProcess.fields import Field as FieldCls # type: ignore - except Exception: - FieldCls = None # type: ignore - - if FieldCls is None: - return solution # Can't build Field without Field class - - t = _get_attr_or_key(solution, "time", "t") - axial = _get_attr_or_key(solution, "axial", "z", "x") - radial = _get_attr_or_key(solution, "radial", "r") - - data = _get_attr_or_key(solution, "c", "y", "data", "values") - comps = _get_attr_or_key(solution, "components", "comp_names", "species") - unit = _get_attr_or_key(solution, "unit", "units") - - if data is None or t is None: - return solution - - coords: Dict[str, Any] = {"time": (t, "s")} - if axial is not None: - coords["axial"] = (axial, "m") - if radial is not None: - coords["radial"] = (radial, "m") - - try: - fld = FieldCls( - coordinates=coords, - data=data, - components=list(comps) if comps is not None else None, - name=name, - unit=unit, - ) - return fld - except Exception: - return solution - - -def _coerce_to_fieldish(result: Any) -> Any: - """Try to coerce common simulation result containers into Field or dict-of-Field.""" - if _is_field(result): - return result - - if isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): - return result - - # `.fields` mapping - try: - fields_map = getattr(result, "fields") - if isinstance(fields_map, Mapping) and fields_map and all(_is_field(v) for v in fields_map.values()): - return fields_map - except Exception: - pass - - # `to_fields` / `as_fields` / `to_field` - for meth in ("to_fields", "as_fields", "to_field"): - fn = getattr(result, meth, None) - if callable(fn): - try: - val = fn() - if _is_field(val): - return val - if isinstance(val, Mapping) and val and all(_is_field(v) for v in val.values()): - return val - except Exception: - pass - - # `.solution` mapping with nested SolutionIO → try to build Field - solmap = _get_attr_or_key(result, "solution") - if isinstance(solmap, Mapping) and solmap: - converted: Dict[str, Any] = {} - for unit_name, io_map in solmap.items(): - if isinstance(io_map, Mapping): - for port_name, io in io_map.items(): - sol = _get_attr_or_key(io, "solution") - key = f"{unit_name}:{port_name}" - fld = _build_field_from_solution(sol, name=key) - if _is_field(fld): - converted[key] = fld - elif sol is None: - fld2 = _build_field_from_solution(io, name=key) - if _is_field(fld2): - converted[key] = fld2 - if converted: - return converted - - # Generic mapping: keep Field entries found recursively - if isinstance(result, Mapping) and result: - sub: Dict[str, Any] = {} - for k, v in result.items(): - cv = _coerce_to_fieldish(v) - if _is_field(cv): - sub[k] = cv - if sub: - return sub - - return result - - -# ---------------------------- -# Coordinate normalizer -# ---------------------------- -def _coords_with_units(field: Any) -> Dict[str, Tuple["np.ndarray", Optional[str]]]: - """ - Normalize coordinates to: {dim: (grid_ndarray, unit_or_None)}. - - Prefers xarray attrs when available (field.data[dim].attrs["units"]). - Falls back to field.coordinates and accepts either bare arrays or (values, unit) tuples. - """ - import numpy as np - - # Preferred: via xarray DataArray - try: - da = getattr(field, "data", None) - if da is not None: - out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} - for dim in da.dims: - vals = np.asarray(da.coords[dim].values) - unit = da.coords[dim].attrs.get("units") - out[dim] = (vals, unit) - return out - except Exception: - pass - - # Fallback: whatever field.coordinates exposes - out: Dict[str, Tuple[np.ndarray, Optional[str]]] = {} - raw = getattr(field, "coordinates", {}) or {} - if isinstance(raw, dict): - for dim, val in raw.items(): - unit = None - arr = val - # Support legacy tuples: (values, unit) - if isinstance(val, tuple) and len(val) == 2: - arr, unit = val - try: - arr = np.asarray(arr) - except Exception: - pass - out[dim] = (arr, unit) - return out - - -# ---------------------------- -# Result transform that really uses solution arrays + real time -# ---------------------------- -def solution_to_fields_lenmatch(res): - """ - Flatten res.solution (unit -> {port -> SolutionIO}) into - { "unit:port": Field } by: - - getting data from io.solution (numpy array) - - inferring T from the data - - locating a unit/global 1D 'time' vector (handles {'values': ...} holders) - - falling back to arange(T) only if necessary - """ - import numpy as np - from CADETProcess.fields import Field # type: ignore - - solmap = getattr(res, "solution", None) - if not isinstance(solmap, Mapping): - return res - - def _safe_arr(x): - try: - return np.asarray(x) - except Exception: - try: - return np.asarray(list(x)) - except Exception: - return None - - def _as_vector(x): - """Extract a vector from common wrappers (dict with 'values', obj.values).""" - if x is None: - return None - # mapping with 'values' - if isinstance(x, Mapping) and "values" in x: - return _safe_arr(x["values"]) - # objects with non-callable .values - vals = getattr(x, "values", None) - if vals is not None and not callable(vals): - return _safe_arr(vals) - # plain array-like - return _safe_arr(x) - - def _scan_time(scope: Mapping, T: int): - """Find a 1D vector of length T in mapping scope, prefer monotonic & 'time' names.""" - best = None - # 1) direct names that may be wrappers - for key in ("time", "t"): - cand = None - if isinstance(scope, Mapping): - if key in scope: - cand = _as_vector(scope[key]) - if cand is not None and cand.ndim == 1 and cand.size == T: - return cand - # 2) nested holders like scope['time'] == {'values': ...} - for k, v in scope.items(): - if isinstance(v, Mapping) and "values" in v: - cand = _safe_arr(v["values"]) - if cand is not None and cand.ndim == 1 and cand.size == T: - return cand - # 3) generic scan of 1D arrays - for k, v in scope.items(): - cand = _as_vector(v) - if cand is None or cand.ndim != 1 or cand.size != T: - continue - return cand - return None - - out: Dict[str, Any] = {} - - for unit, ports in solmap.items(): - if not isinstance(ports, Mapping): - continue - - # Deduce T from any port's data - T = None - for _p, io in ports.items(): - data0 = _as_vector(getattr(io, "solution", None)) - if data0 is None: - continue - if data0.ndim >= 1: - T = int(data0.shape[0]) - break - if T is None: - continue - - # Find a unit-level time first; else global; else synthetic - t = _scan_time(ports, T) - if t is None and isinstance(solmap, Mapping): - gt = _scan_time(solmap, T) - if gt is not None: - t = gt - if t is None: - t = np.arange(T) - - for port, io in ports.items(): - data = _as_vector(getattr(io, "solution", None)) - if data is None or data.ndim < 1: - continue - - # Align time dimension - if data.shape[0] != T and data.shape[-1] == T: - data = np.swapaxes(data, 0, -1) - if data.shape[0] != T: - continue - - coords = {"time": (t, "s")} - comp_names = None - if data.ndim >= 2 and 1 < data.shape[-1] <= 64: - comp_names = [f"C{i}" for i in range(data.shape[-1])] - - try: - out[f"{unit}:{port}"] = Field( - coordinates=coords, - data=data, - components=comp_names, - name=f"{unit}:{port}", - ) - except Exception: - pass - - return out if out else solmap - - -# ---------------------------- -# Widget -# ---------------------------- -class SolutionWidget(BaseWidget): - """Runner/visualizer for CADET-Process processes with Field-aware tooling.""" - - def __init__( - self, - *, - title: Optional[str] = None, - process: Any = None, - config: Optional["ConfigurationWidget"] = None, - runner: Optional[Callable[[Any], Any]] = None, - runner_kwargs: Optional[Dict[str, Any]] = None, - result_transform: Optional[Callable[[Any], Any]] = None, - ) -> None: - self._process: Any | None = None - self._btn_run = W.Button(description="Run simulation", icon="play") - self._btn_clear = W.Button(description="Clear", icon="trash") - self._proc_label = W.HTML("No process set.") - - # Separate outputs: one for the plot, one for logs/stdout/stderr - self._plot_out = W.Output() - self._log_out = W.Output() - - self._show_tb = W.Checkbox(description="Show traceback", value=True) - - self._runner = runner or _default_runner - self._runner_kwargs = runner_kwargs or {} - self._result_transform = result_transform - - # Field-aware UI (created lazily when needed) - self._field_container = W.VBox(layout=W.Layout(display="none")) - self._field_controls: Dict[str, W.Widget] = {} - self._current_result: Any = None # last result object (possibly transformed/coerced) - - # Result inspector UI (always visible after a run) - self._result_info = W.HTML(value="") - self._result_key_dd = W.Dropdown(description="Result key", options=(), layout=W.Layout(width="auto")) - self._result_bar = W.HBox([self._result_info, self._result_key_dd], layout=W.Layout(display="none", gap="12px")) - self._result_key_dd.observe(lambda _ch: self._on_result_key_changed(), names="value") - - # Track a single live figure/axes for reuse when possible - self._fig = None - self._ax = None - - super().__init__(title=title or "Solution") - - if process is not None: - self.set_process(process) - if config is not None: - self.bind_to_config(config) - - # ----- backend helper ----- - def _enable_widget_backend(self) -> None: - """Try to enable ipympl widget backend for interactive plots.""" - try: - import ipympl # noqa: F401 # registers the widget backend if installed - import matplotlib.pyplot as plt - try: - plt.switch_backend("module://ipympl.backend_nbagg") - except Exception: - # May already be using a compatible interactive backend (or switch unsupported here). - pass - except Exception: - # ipympl not installed; fall back to whatever backend is configured. - pass - - # ----- public API ----- - def set_process(self, process: Any) -> None: - self._process = process - self._proc_label.value = ( - f"Process: {getattr(process, 'name', process.__class__.__name__)}" - ) - self.set_status("Ready to run.") - - def bind_to_config(self, config_widget: "ConfigurationWidget") -> None: - # Late import to avoid circular typing issues - from .config import ConfigurationWidget # noqa: WPS433 - - if not isinstance(config_widget, ConfigurationWidget): - raise TypeError("config_widget must be a ConfigurationWidget") - - config_widget.add_listener(self.set_process) - if config_widget.process is not None: - self.set_process(config_widget.process) - - # ----- UI ----- - def _build_body(self) -> W.Widget: - controls = W.HBox([self._btn_run, self._btn_clear, self._show_tb]) - return W.VBox( - [ - W.HBox([self._proc_label, controls]), - self._result_bar, - self._field_container, - self._plot_out, # plot area (single live figure) - self._log_out, # logs/stdout/stderr - ] - ) - - def _wire_events(self) -> None: - self._btn_run.on_click(self._on_run) - self._btn_clear.on_click(self._on_clear) - - # ----- events ----- - def _on_run(self, _btn: W.Button) -> None: - # Fresh run: clear previous outputs - self._plot_out.clear_output() - self._log_out.clear_output() - self._hide_field_ui() - self._hide_result_bar() - self._fig = None - self._ax = None - - if self._process is None: - self.set_error("No process to run. Build one first.") - return - - import io - import traceback as _tb - - capture = bool(self._show_tb.value) - buf_out, buf_err = (io.StringIO(), io.StringIO()) if capture else (None, None) - - try: - if capture: - with redirect_stdout(buf_out), redirect_stderr(buf_err): - raw = self._runner(self._process, **self._runner_kwargs) - else: - raw = self._runner(self._process, **self._runner_kwargs) - - # Optional transform, then coercion to Field-ish structures - result = self._result_transform(raw) if callable(self._result_transform) else raw - result = _coerce_to_fieldish(result) - self._current_result = result - - # Show result meta / selector if needed - self._show_result_bar(result) - - with self._log_out: - if capture: - if buf_out and buf_out.getvalue().strip(): - print("=== stdout ===") - print(buf_out.getvalue(), end="") - if buf_err and buf_err.getvalue().strip(): - print("=== stderr ===") - print(buf_err.getvalue(), end="") - print("Simulation finished.") - - # If it's Field-like, expose Field controls; if mapping try to plot one entry; else fallback - if self._render_field_ui_if_applicable(result): - self.set_status("Field detected — use controls to slice/plot.") - self._plot_field_from_controls() - elif isinstance(result, Mapping): - self._attempt_plot_from_mapping(result) - else: - with self._log_out: - print(repr(result)) - _try_plot_result_generic(result, self._log_out) - self.set_status("Simulation complete.") - - except Exception as exc: # noqa: BLE001 - with self._log_out: - if capture: - tb = _tb.TracebackException.from_exception(exc, capture_locals=True) - if buf_out and buf_out.getvalue().strip(): - print("=== stdout (captured) ===") - print(buf_out.getvalue(), end="") - if buf_err and buf_err.getvalue().strip(): - print("=== stderr (captured) ===") - print(buf_err.getvalue(), end="") - print("=== full traceback (with chained causes) ===") - print("".join(tb.format(chain=True)), end="") - else: - print(f"{exc.__class__.__name__}: {exc}") - self.set_error(f"Simulation error: {exc}") - - def _on_clear(self, _btn: W.Button) -> None: - self._plot_out.clear_output() - self._log_out.clear_output() - self._hide_field_ui() - self._hide_result_bar() - self._fig = None - self._ax = None - self.set_status("Cleared.") - - # ----- Result bar ----- - def _hide_result_bar(self) -> None: - self._result_bar.layout.display = "none" - self._result_info.value = "" - self._result_key_dd.options = () - - def _show_result_bar(self, result: Any) -> None: - typ = type(result).__name__ - if isinstance(result, Mapping): - keys = list(result.keys()) - self._result_info.value = f"Result: Mapping[{len(keys)}], type={typ}" - self._result_key_dd.options = [(str(k), k) for k in keys] - self._result_key_dd.value = keys[0] if keys else None - self._result_bar.layout.display = "flex" - else: - self._result_info.value = f"Result: {typ}" - self._result_key_dd.options = () - self._result_bar.layout.display = "flex" - - def _on_result_key_changed(self) -> None: - if not isinstance(self._current_result, Mapping) or not self._current_result: - return - key = self._result_key_dd.value - val = self._current_result.get(key) - self._log_out.clear_output() - self._hide_field_ui() - if self._render_field_ui_if_applicable(val): - self._plot_field_from_controls() - self.set_status(f"Viewing: {key}") - else: - with self._log_out: - print(repr(val)) - _try_plot_result_generic(val, self._log_out) - self.set_status(f"Viewing: {key}") - - def _attempt_plot_from_mapping(self, mapping: Mapping[str, Any]) -> None: - # Prefer the first Field in the mapping, if any - for k, v in mapping.items(): - if _is_field(v): - self._result_key_dd.value = k - self._on_result_key_changed() # route through the normal path - return - - # Fallback: generic repr/plot of the first entry - first_key = next(iter(mapping.keys())) if mapping else None - val = mapping.get(first_key) if first_key is not None else None - with self._log_out: - print(repr(mapping)) - if first_key is not None: - print("--- First entry ---") - print(repr(val)) - _try_plot_result_generic(val, self._log_out) - self.set_status("No Field found in mapping.") - - # ----- Field-aware UI ----- - def _hide_field_ui(self) -> None: - self._field_container.layout.display = "none" - self._field_container.children = () - self._field_controls.clear() - - def _render_field_ui_if_applicable(self, result: Any) -> bool: - - # Determine the single Field to render controls for - if _is_field(result): - field = result - elif isinstance(result, Mapping) and result and all(_is_field(v) for v in result.values()): - # Use currently selected key from the result bar - key = self._result_key_dd.value - if key is None or key not in result: - key = next(iter(result.keys())) - field = result[key] - else: - return False - - # reset control registry for fresh UI - self._field_controls = {} - - rows: list[W.Widget] = [] - - # Components UI (if any) - components: Sequence[str] | None = getattr(field, "components", None) - showed_component_selector = False - if components is not None and len(components) > 0: - comp_sel = W.SelectMultiple( - description="Components", - options=list(components), - value=tuple(components), - layout=W.Layout(width="420px", height="120px"), - ) - self._field_controls["components"] = comp_sel - comp_sel.observe(lambda _ch: self._plot_field_from_controls(), names="value") - rows.append(comp_sel) - showed_component_selector = True - - # Slicing controls - coords = _coords_with_units(field) - slicer_boxes: list[W.Widget] = [] - numeric_axis_names: list[str] = [] - - for name, (grid, unit) in coords.items(): - # If we've already provided a dedicated components selector, skip duplicating - if name == "component" and showed_component_selector: - continue - - # ensure numpy array for dtype inspection - arr = np.asarray(grid) - is_numeric = np.issubdtype(arr.dtype, np.number) - - ulabel = f"[{unit}]" if unit else "" - if is_numeric: - # numeric axis → checkbox + FloatText + method dropdown - try: - v0 = float(arr[0]) if arr.size else 0.0 - except (TypeError, ValueError): - v0 = 0.0 - - cb_fix = W.Checkbox(description=f"Fix {name} {ulabel}".strip(), value=False) - val = W.FloatText( - description=f"{name}=", - value=v0, - layout=W.Layout(width="220px"), - ) - method = W.Dropdown( - description="method", - options=["exact", "nearest"], - value="exact", - layout=W.Layout(width="150px"), - ) - hb = W.HBox([cb_fix, val, method]) - - self._field_controls[f"fix_{name}"] = cb_fix - self._field_controls[f"val_{name}"] = val - self._field_controls[f"method_{name}"] = method - for w in (cb_fix, val, method): - w.observe(lambda _ch: self._plot_field_from_controls(), names="value") - - slicer_boxes.append(hb) - numeric_axis_names.append(name) - - else: - # categorical axis → multi-select - options = [str(x) for x in arr.tolist()] - sel = W.SelectMultiple( - description=name.capitalize(), - options=options, - value=tuple(options), - layout=W.Layout(width="420px", height="120px"), - ) - self._field_controls[f"sel_{name}"] = sel - sel.observe(lambda _ch: self._plot_field_from_controls(), names="value") - slicer_boxes.append(sel) - - if slicer_boxes: - rows.append(W.VBox([W.HTML("Slicing"), *slicer_boxes])) - - # Interpolation controls (numeric axes only) - if numeric_axis_names: - interp_enable = W.Checkbox(description="Interpolate", value=False) - interp_axis = W.Dropdown( - description="along", - options=numeric_axis_names, - value=numeric_axis_names[0], - ) - interp_points = W.IntText(description="points", value=100) - hb_interp = W.HBox([interp_enable, interp_axis, interp_points]) - self._field_controls["interp_enable"] = interp_enable - self._field_controls["interp_axis"] = interp_axis - self._field_controls["interp_points"] = interp_points - for w in (interp_enable, interp_axis, interp_points): - w.observe(lambda _ch: self._plot_field_from_controls(), names="value") - rows.append(W.VBox([W.HTML("Interpolation"), hb_interp])) - else: - # No numeric axes → disable interpolation UI entirely - interp_note = W.HTML("No numeric axes available for interpolation.") - rows.append(W.VBox([W.HTML("Interpolation"), interp_note])) - - # Calculus controls (numeric axes only) - if numeric_axis_names: - calc_mode = W.Dropdown( - description="Operation", - options=["None", "Differentiate", "Integrate"], - value="None", - ) - calc_axis = W.Dropdown( - description="w.r.t.", - options=numeric_axis_names, - value=numeric_axis_names[0], - ) - hb_calc = W.HBox([calc_mode, calc_axis]) - self._field_controls["calc_mode"] = calc_mode - self._field_controls["calc_axis"] = calc_axis - for w in (calc_mode, calc_axis): - w.observe(lambda _ch: self._plot_field_from_controls(), names="value") - rows.append(W.VBox([W.HTML("Analysis"), hb_calc])) - else: - calc_note = W.HTML("No numeric axes available for analysis.") - rows.append(W.VBox([W.HTML("Analysis"), calc_note])) - - # Plot button (manual trigger in addition to reactive updates) - btn_plot = W.Button(description="Plot", icon="line-chart") - btn_plot.on_click(lambda _b: self._plot_field_from_controls()) - rows.append(btn_plot) - - self._field_container.children = tuple(rows) - self._field_container.layout.display = "block" - return True - - def _gather_slice_kwargs(self) -> Dict[str, Tuple[float, str]]: - kwargs: Dict[str, Tuple[float, str]] = {} - for key, widget in self._field_controls.items(): - if key.startswith("fix_") and isinstance(widget, W.Checkbox) and widget.value: - coord = key[len("fix_") :] - valw = self._field_controls.get(f"val_{coord}") - methw = self._field_controls.get(f"method_{coord}") - if isinstance(valw, W.FloatText) and isinstance(methw, W.Dropdown): - kwargs[coord] = (float(valw.value), str(methw.value)) - return kwargs - - def _get_active_field(self) -> Any: - # If we have a mapping, prefer the currently selected Result key - if isinstance(self._current_result, Mapping): - key = self._result_key_dd.value - if key is not None and key in self._current_result: - return self._current_result[key] - # Otherwise, the result itself is a Field (or something else) - return self._current_result - - def _apply_interpolation(self, fld: Any) -> Any: - enable = self._field_controls.get("interp_enable") - axis = self._field_controls.get("interp_axis") - points = self._field_controls.get("interp_points") - if isinstance(enable, W.Checkbox) and enable.value and isinstance(axis, W.Dropdown) and isinstance(points, W.IntText): - coords = _coords_with_units(fld) - if axis.value in coords: - grid, _unit = coords[axis.value] - if len(grid) >= 2 and points.value > 1: - import numpy as np # local import - new_grid = np.linspace(float(grid[0]), float(grid[-1]), int(points.value)) - try: - return fld.interp(**{axis.value: new_grid}) - except Exception: - return fld - return fld - - def _apply_calculus(self, fld: Any) -> Any: - mode = self._field_controls.get("calc_mode") - axis = self._field_controls.get("calc_axis") - if isinstance(mode, W.Dropdown) and isinstance(axis, W.Dropdown): - try: - if mode.value == "Differentiate" and axis.value: - return fld.differentiate(axis.value) - if mode.value == "Integrate" and axis.value: - return fld.integrate(axis.value) - except Exception: - return fld - return fld - - def _plot_field_from_controls(self) -> None: - # Make the figure area behave like a single live canvas - self._plot_out.clear_output(wait=True) - - # Enable interactive backend if possible (ipympl) - self._enable_widget_backend() - - import matplotlib.pyplot as plt # local import - from IPython.display import display - - fld = self._get_active_field() - if not _is_field(fld): - with self._log_out: - print("No Field to plot.") - return - - fld2 = self._apply_interpolation(fld) - fld3 = self._apply_calculus(fld2) - - # Slicing - slice_kwargs = self._gather_slice_kwargs() - if slice_kwargs: - try: - for coord, (value, method) in slice_kwargs.items(): - if method == "nearest": - fld3 = fld3.sel(**{coord: value}, method="nearest") - else: - fld3 = fld3.sel(**{coord: value}) - except Exception: - pass - - # Component selection (optional) - comp_sel = self._field_controls.get("components") - if isinstance(comp_sel, W.SelectMultiple) and comp_sel.value: - try: - if len(comp_sel.value) == 1: - fld3 = fld3[comp_sel.value[0]] - except Exception: - pass - - # Draw a single figure and show it once in the plot output - try: - with self._plot_out: - ax = None - # Try to reuse an existing axes if Field.plot supports it - if self._ax is not None: - try: - self._ax.clear() - ax = self._ax - except Exception: - ax = None - - if ax is not None: - # Many APIs accept 'ax=...'; try first - try: - ret = fld3.plot({}, ax=ax) - except TypeError: - # fallback: set current axes and let plot create artists - plt.sca(ax) - ret = fld3.plot({}) - else: - # first time (or reuse failed): make a fresh figure - fig, ax = plt.subplots() - ret = fld3.plot({}) - self._fig, self._ax = fig, ax - - # Capture figure reference if plot returned axes - try: - if hasattr(ret, "get_figure"): - self._fig = ret.get_figure() - try: - # if we didn’t create ax above, pull one from ret - self._ax = ret if hasattr(ret, "plot") else getattr(ret, "axes", [None])[0] - except Exception: - pass - else: - # last-resort: current fig/ax - self._fig = plt.gcf() - self._ax = plt.gca() - except Exception: - pass - - # Display exactly once (plot_out was cleared above) - display(self._fig) - - except Exception: - # very defensive fallback (generic plot/print) - with self._plot_out: - try: - coords = _coords_with_units(fld3) - fixed = { - dim: grid[0] - for dim, (grid, _unit) in coords.items() - if hasattr(grid, "__len__") and len(grid) > 0 - } - ret = fld3.plot(fixed) - try: - self._fig = ret.get_figure() if hasattr(ret, "get_figure") else plt.gcf() - display(self._fig) - except Exception: - pass - except Exception: - _try_plot_result_generic(fld3, self._log_out) - - self.set_status("Plotted.") diff --git a/examples/configuration_and_solution.ipynb b/examples/configuration_and_solution.ipynb index 0b60102..3e6034a 100644 --- a/examples/configuration_and_solution.ipynb +++ b/examples/configuration_and_solution.ipynb @@ -3,7 +3,7 @@ { "cell_type": "markdown", "id": "b4cb635e", - "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the two widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** — pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object.\n- **`SolutionWidget`** — run that process through the CADET-Process simulator and plot the result.\n\nBoth are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting — the GUI never traps you inside it.\n\n*(There's also an earlier ipywidgets-based prototype in `cadetgui.widgets.legacy`, kept only as reference material — this notebook uses the current anywidget-based implementation.)*", + "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** — pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object. Includes Python-script export.\n- **`SolutionWidget`** — run that process through the CADET-Process simulator and plot the result, with built-in run history.\n- **`DataImportWidget`** — import a measured chromatogram and overlay it for comparison.\n\nAll are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting — the GUI never traps you inside it.", "metadata": {} }, { diff --git a/tests/display_widgets.ipynb b/tests/display_widgets.ipynb deleted file mode 100644 index 58001f2..0000000 --- a/tests/display_widgets.ipynb +++ /dev/null @@ -1,524 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 3, - "id": "2d5d3b56", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], - "source": [ - "from cadetgui.widgets import ConfigurationWidget, SolutionWidget\n", - "from CADETProcess.simulator import Cadet\n", - "\n", - "\n", - "%load_ext autoreload\n", - "%autoreload 2\n", - "%matplotlib widget" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "75d29533", - "metadata": {}, - "outputs": [], - "source": [ - "from collections.abc import Mapping\n", - "from CADETProcess.fields import Field\n", - "import numpy as np\n", - "\n", - "def solution_to_fields_lenmatch_v3(res):\n", - " \"\"\"\n", - " Flatten res.solution (unit -> {port -> SolutionIO}) into\n", - " { \"unit:port\": Field }, using:\n", - " data := io.solution (numpy array, with (T,1) -> (T,))\n", - " time := try unit-level 'time'/'t' (incl. {'values': ...}) of length T,\n", - " else try global (res.solution) same way, else np.arange(T).\n", - " \"\"\"\n", - " solmap = getattr(res, \"solution\", None)\n", - " if not isinstance(solmap, Mapping):\n", - " return res\n", - "\n", - " def _safe_arr(x):\n", - " try:\n", - " return np.asarray(x)\n", - " except Exception:\n", - " try:\n", - " return np.asarray(list(x))\n", - " except Exception:\n", - " return None\n", - "\n", - " def _as_vector(x):\n", - " \"\"\"Extract 1D vector from common wrappers (dict with 'values', obj.values, or array-like).\"\"\"\n", - " if x is None:\n", - " return None\n", - " if isinstance(x, Mapping) and \"values\" in x:\n", - " return _safe_arr(x[\"values\"])\n", - " vals = getattr(x, \"values\", None)\n", - " if vals is not None and not callable(vals):\n", - " return _safe_arr(vals)\n", - " return _safe_arr(x)\n", - "\n", - " def _find_time(scope: Mapping, T: int):\n", - " # 1) direct 'time'/'t'\n", - " for key in (\"time\", \"t\"):\n", - " if key in scope:\n", - " cand = _as_vector(scope[key])\n", - " if cand is not None and cand.ndim == 1 and cand.size == T:\n", - " return cand\n", - " # 2) nested holders like {'time': {'values': ...}}\n", - " for k, v in scope.items():\n", - " if isinstance(v, Mapping) and \"values\" in v:\n", - " cand = _safe_arr(v[\"values\"])\n", - " if cand is not None and cand.ndim == 1 and cand.size == T:\n", - " return cand\n", - " # 3) any 1D array of length T\n", - " for k, v in scope.items():\n", - " cand = _as_vector(v)\n", - " if cand is not None and cand.ndim == 1 and cand.size == T:\n", - " return cand\n", - " return None\n", - "\n", - " out = {}\n", - "\n", - " for unit, ports in solmap.items():\n", - " if not isinstance(ports, Mapping):\n", - " continue\n", - " for port, io in ports.items():\n", - " data = getattr(io, \"solution\", None)\n", - " data = _safe_arr(data)\n", - " if data is None or data.ndim < 1:\n", - " continue\n", - "\n", - " # squeeze trailing singleton (T,1) -> (T,)\n", - " if data.ndim >= 2 and data.shape[-1] == 1:\n", - " data = data[..., 0]\n", - "\n", - " T = int(data.shape[0])\n", - " if T <= 1:\n", - " continue\n", - "\n", - " # time (per port): unit → global → arange\n", - " t = _find_time(ports, T)\n", - " if t is None:\n", - " t = _find_time(solmap, T)\n", - " if t is None:\n", - " t = np.arange(T)\n", - "\n", - " coords = {\"time\": (t, \"s\")}\n", - "\n", - " # treat last dim as components if >1 and small-ish\n", - " comp_names = None\n", - " if data.ndim >= 2 and 1 < data.shape[-1] <= 64:\n", - " comp_names = [f\"C{i}\" for i in range(data.shape[-1])]\n", - "\n", - " try:\n", - " out[f\"{unit}:{port}\"] = Field(\n", - " coordinates=coords,\n", - " data=data,\n", - " components=comp_names,\n", - " name=f\"{unit}:{port}\",\n", - " )\n", - " except Exception:\n", - " # Skip malformed, keep others\n", - " pass\n", - "\n", - " return out if out else solmap\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a9c1028e", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "1d6baee5a108410486c19789cb58b274", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HTML(value=\"

Configuration

\"), VBox(children=(Box(children=(VBox(childr…" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "601dd86ed3be477c8c74fa413c2bc566", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HTML(value=\"

Solution

\"), VBox(children=(HBox(children=(HTML(value='\n", - "
\n", - " Figure\n", - "
\n", - " \n", - " \n", - " " - ], - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "20697a11aca948d8b5cb52d18e7eb6c9", - "version_major": 2, - "version_minor": 0 - }, - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAJYCAYAAADxHswlAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAARWhJREFUeJzt3XuclVW9P/DvhnFALjOIIP5gCFDkophSqHhL0vCSFoWSekqh4xGtI2UdtMgLUt7QY1r+vERe0NMJUbxjEpYmIiJSVF7QBEFuolg6w/36/P7wNfs3OBdmuM0aeL9fr/16PTNrPWutvb8x9tnr2c/OZVmWBQAAAFCvGtX3AgAAAAABHQAAAJIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABBfW9AHauTZs2xZIlS6Jly5aRy+XqezkAAEA9ybIsli9fHu3bt49GjezdpkBA380sWbIkOnbsWN/LAAAAErFw4cIoKSmp72UQAvpup2XLlhHxyT/CoqKiel4NAABQX8rKyqJjx475jED9E9B3M+WXtRcVFQnoAACAj74mxAcNAAAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRgtwjoH3zwQUycODGuvPLKOOWUU6JNmzaRy+Uil8vFkCFD6jzepEmTYuDAgVFSUhJNmjSJkpKSGDhwYEyaNGn7L76C22+/Pb/uXC4XY8eO3aHzAQAAsPMU1PcCdoZ27dptl3GyLIsLL7wwxowZs9nvFy9eHI8++mg8+uijMXTo0Ljzzjsjl8ttlznLLVmyJEaMGLFdxwQAACAdu8UOekUdO3aME088cavOvfzyy/PhvHfv3jFu3LiYMWNGjBs3Lnr37h0REWPGjIkrrrhiu6233EUXXRRlZWWxzz77bPexAQAAqH+7RUC/8sor48knn4ylS5fGggUL4le/+lWdx5gzZ07ccMMNERHRp0+fePHFF+Oss86Kww47LM4666yYOnVq9OnTJyIiRo8eHXPnzt1u63/88cfj0UcfjbZt28aPfvSj7TYuAAAA6dgtAvqoUaPitNNO26ZL3W+++ebYsGFDRETceuutseeee27W3qxZs7j11lsjImLDhg1xyy23bPVcFS1fvjwuuuiiiIj47//+72jduvV2GRcAAIC07BYBfVtlWRaPP/54RET06NEj+vbtW2W/vn37Rvfu3SMi4rHHHossy7Z57hEjRsSiRYuiX79+ce65527zeAAAAKRJQK+FefPmxeLFiyMi4rjjjquxb3n7okWLYv78+ds078svvxx33HFHFBYWxh133LFNYwEAAJA2Ab0WZs+enT/u0aNHjX0rtlc8r67Wr18f559/fmzatCkuueSSLc4LAABAwyag18LChQvzxyUlJTX27dixY5Xn1dWNN94Yr776auy3335x2WWXbfU4AAAANAy7xfegb6vly5fnj1u0aFFj3+bNm+ePV6xYsVXzzZkzJ372s59FRMRtt91W6YZ0dbF27dpYu3Zt/ueysrKtHgsAAIAdxw56LaxZsyZ/XFhYWGPfJk2a5I9Xr169VfNdeOGFsWbNmhg0aFCcfPLJWzVGueuuuy6Ki4vzj4o7/AAAAKRDQK+Fpk2b5o/XrVtXY9+Ku9Vbs/M9duzY+OMf/xhFRUXb5avaRowYEaWlpfnHtlx2DwAAwI7jEvdaaNmyZf54S5etr1y5Mn+8pcvhP23ZsmUxfPjwiIj42c9+Fu3bt6/T+VVp0qTJZrv6AAAApElAr4WKN4ZbtGhRjX0r7lDX9XLyu+66K/75z39Gq1atYu+9944HHnigUp+XX355s+Py3f3jjz8+9tlnnzrNBwAAQDoE9Fo48MAD88dvvvlmjX0rtvfs2bNO85RfHv/xxx/Ht771rS32v/POO+POO++MiIjnnntOQAcAAGjAfAa9Frp06ZK/3Pz555+vse+UKVMiIqJDhw7RuXPnHb00AAAAdhECei3kcrkYMGBARHyyQz59+vQq+02fPj2/gz5gwIDI5XJ1mueqq66KLMtqfNx77735/vfee2/+9/369du6JwcAAEASBPRauvjii6Og4JNPBAwbNqzSV6itXr06hg0bFhERBQUFcfHFF1c5Tr9+/SKXy0Uul4v58+fvyCUDAADQgOwWn0GfOnVqzJkzJ//zhx9+mD+eM2dOjB07drP+Q4YMqTRGt27dYvjw4XH99dfHzJkz4+ijj44f/ehHsf/++8fcuXNj9OjRMWvWrIiIuOSSS+KAAw7YIc8FAACAXdNuEdDvuuuuuO+++6pse/HFF+PFF1/c7HdVBfSIiGuuuSY++OCDuOeee2LWrFlx1llnVepz3nnnxdVXX73NawYAAGD34hL3OmjUqFHcfffd8dRTT8WAAQOiffv2UVhYGO3bt48BAwbE7373u7jrrruiUSMvKwAAAHWTy7Isq+9FsPOUlZVFcXFxlJaWRlFRUX0vBwAAqCeyQXps9QIAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgATsFgH9gw8+iIkTJ8aVV14Zp5xySrRp0yZyuVzkcrkYMmRIncebNGlSDBw4MEpKSqJJkyZRUlISAwcOjEmTJm2X9b711ltx8803x9e+9rXo0qVL7LnnntGsWbPo0qVLnHnmmfHUU09FlmXbZS4AAADSkMt2g6SXy+WqbRs8eHCMHTu2VuNkWRYXXnhhjBkzpto+Q4cOjTvvvLPGOWsyePDguP/++7fY76STTooHHnggWrVqVafxy8rKori4OEpLS6OoqGir1ggAADR8skF6dosd9Io6duwYJ5544lade/nll+fDee/evWPcuHExY8aMGDduXPTu3TsiIsaMGRNXXHHFVq9v8eLFERHRunXrGDp0aPz2t7+NadOmxYwZM+JXv/pVdO/ePSIifv/738dXvvKV2LRp01bPBQAAQDp2ix30kSNHxmGHHRaHHXZYtGvXLubPnx9dunSJiNrvoM+ZMyd69uwZGzZsiD59+sSUKVNizz33zLevWrUqjjvuuJg5c2YUFBTEm2++Gfvvv3+d1zpkyJA46qijYvDgwdGkSZNK7atWrYqTTjoppk6dGhER999/f5xzzjm1Ht+7ZAAAQIRskKLdYgd91KhRcdppp0W7du22eoybb745NmzYEBERt95662bhPCKiWbNmceutt0ZExIYNG+KWW27ZqnnGjh0bQ4cOrTKcl89zxx135H+eMGHCVs0DAABAWnaLgL6tsiyLxx9/PCIievToEX379q2yX9++ffOXoD/22GM77EZuvXr1ijZt2kRExNy5c3fIHAAAAOxcAnotzJs3L//Z8OOOO67GvuXtixYtivnz5++wNa1bty4iIho1UkIAAIBdgXRXC7Nnz84f9+jRo8a+Fdsrnrc9zZo1K8rKymq1HgAAABoGAb0WFi5cmD8uKSmpsW/Hjh2rPG97uvbaa/PH3/jGN3bIHAAAAOxcBfW9gIZg+fLl+eMWLVrU2Ld58+b54xUrVmz3tTz88MP5G8N9/vOfj9NPP73G/mvXro21a9fmfy7feQcAACAtdtBrYc2aNfnjwsLCGvtWvPv66tWrt+s63nzzzfj2t78dERF77rln3H///ZHL5Wo857rrrovi4uL8o+IOPwAAAOkQ0GuhadOm+ePym7NVp+Ju9ae/im1bLFmyJE455ZRYvnx55HK5uPvuu+PAAw/c4nkjRoyI0tLS/GNHXXYPAADAtnGJey20bNkyf7yly9ZXrlyZP97S5fC19a9//StOPPHE/F3hf/GLX8TZZ59dq3ObNGlS7XeqAwAAkA476LVQ8cZwixYtqrFvxR3q7XE5+fLly+Pkk0+O119/PSIifvazn8WwYcO2eVwAAADSIqDXQsVLyd98880a+1Zs79mz5zbNu3r16vjKV74Sr7zySkREXHLJJXH55Zdv05gAAACkSUCvhS5dukT79u0jIuL555+vse+UKVMiIqJDhw7RuXPnrZ5z/fr1cfrpp+fnu/DCC+OGG27Y6vEAAABIm4BeC7lcLgYMGBARn+yQT58+vcp+06dPz++gDxgwYIt3WK/Oxo0b49/+7d/i6aefjoiIc845J26//fatGgsAAICGQUCvpYsvvjgKCj65p96wYcMqfYXa6tWr858NLygoiIsvvrjKcfr16xe5XC5yuVz+pm8VZVkW559/fv67zk8//fS49957tzrsAwAA0DDsFndxnzp1asyZMyf/84cffpg/njNnTowdO3az/kOGDKk0Rrdu3WL48OFx/fXXx8yZM+Poo4+OH/3oR7H//vvH3LlzY/To0TFr1qyI+OSz4gcccMBWrXX48OFx7733RkREr1694ic/+UnMnj27xnN69eq1VXMBAACQjlyWZVl9L2JHGzJkSNx333217l/dS7Jp06Y4//zz45577qn23PPOOy/GjBkTjRpVfXFCv3798p8rnzdvXqXPqXfu3DnefffdWq+1pvVWpaysLIqLi6O0tDSKiorqNA8AALDrkA3S4xL3OmjUqFHcfffd8dRTT8WAAQOiffv2UVhYGO3bt48BAwbE7373u7jrrruqDecAAABQnd1iB53/z7tkAABAhGyQIlu9AAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAbtFQP/ggw9i4sSJceWVV8Ypp5wSbdq0iVwuF7lcLoYMGVLn8SZNmhQDBw6MkpKSaNKkSZSUlMTAgQNj0qRJ23Xd//znP2PkyJFxyCGHRHFxcRQVFcUhhxwSI0eOjH/+85/bdS4AAADqVy7Lsqy+F7Gj5XK5atsGDx4cY8eOrdU4WZbFhRdeGGPGjKm2z9ChQ+POO++scc7aeOWVV2LAgAHx3nvvVdnevn37ePzxx6NPnz51GresrCyKi4ujtLQ0ioqKtmmNAABAwyUbpGe32EGvqGPHjnHiiSdu1bmXX355Ppz37t07xo0bFzNmzIhx48ZF7969IyJizJgxccUVV2zTGhcvXhxf+cpX4r333ouCgoK49NJLY8qUKTFlypS49NJLo6CgIJYsWRKnnXZaLF68eJvmAgAAIA27xQ76yJEj47DDDovDDjss2rVrF/Pnz48uXbpERO130OfMmRM9e/aMDRs2RJ8+fWLKlCmx55575ttXrVoVxx13XMycOTMKCgrizTffjP3333+r1jtkyJC47777IiLiwQcfjEGDBm3W/tBDD8U3vvGNiIj49re/Hffcc0+tx/YuGQAAECEbpGi32EEfNWpUnHbaadGuXbutHuPmm2+ODRs2RETErbfeulk4j4ho1qxZ3HrrrRERsWHDhrjlllu2ap73338/fvOb30RExEknnVQpnEdEDBo0KE466aSIiLj//vvj/fff36q5AAAASMduEdC3VZZl8fjjj0dERI8ePaJv375V9uvbt2907949IiIee+yx2JqLE5544onYuHFjRHyyO16d8pvbbdy4MZ544ok6zwMAAEBaBPRamDdvXv6z3scdd1yNfcvbFy1aFPPnz6/zXC+88EKlsWqaJyJi6tSpdZ4HAACAtBTU9wIagtmzZ+ePe/ToUWPfiu2zZ8/Of9a9rnMVFxfHvvvuW22///N//k8UFRVFWVnZZutrCH75y9di3Lg59b0MAACoV2ef3TW+971e9b0MEiKg18LChQvzxyUlJTX27dixY5Xn1XWuLc1TPtfrr7++VfPUp3ffXR7Tp39Q38sAAIB6ddRRW3+PLHZNAnotLF++PH/cokWLGvs2b948f7xixYqtnmtL81Scq6Z51q5dG2vXrs3/XFZWVuc1AQAAsOP5DHotrFmzJn9cWFhYY98mTZrkj1evXr3Vc21pnopz1TTPddddF8XFxflHxR1+AAAA0iGg10LTpk3zx+vWrauxb8Xd6k9/FVtd5trSPBXnqmmeESNGRGlpaf7R0C6HBwAA2F24xL0WWrZsmT/e0mXrK1euzB/X5jL1quZatWpVrS6PL5+rpnmaNGmy2a5+Cjp1ahl9++5T38sAAIB61alTyy13YrcioNdCxRu2LVq0qMa+FXeot+Zy8pKSknj//fe3OE/FuRraZevf+14vd6sEAAD4FJe418KBBx6YP37zzTdr7FuxvWfPnls9V2lpaSxdurTafu+9917+hm9bMw8AAABpEdBroUuXLtG+ffuIiHj++edr7DtlypSIiOjQoUN07ty5znMdc8wx+eOa5qrYdvTRR9d5HgAAANIioNdCLpeLAQMGRMQnO+TTp0+vst/06dPzO+gDBgyIXC5X57m++tWvRqNGn5Tl3nvvrbbf2LFjIyKiUaNG8dWvfrXO8wAAAJAWAb2WLr744igo+OQj+8OGDav01WarV6+OYcOGRUREQUFBXHzxxVWO069fv8jlcpHL5WL+/PmV2vfdd9/45je/GRERv//972PChAmV+jz00EPx+9//PiIizjnnnNh333239mkBAACQiN3iJnFTp06NOXPm5H/+8MMP88dz5szJ70aXGzJkSKUxunXrFsOHD4/rr78+Zs6cGUcffXT86Ec/iv333z/mzp0bo0ePjlmzZkVExCWXXBIHHHDAVq/3mmuuiUmTJsWyZcvi7LPPjpkzZ8Zpp50WERETJ06Mm266KSIi2rZtG1dfffVWzwMAAEA6clmWZfW9iB1tyJAhcd9999W6f3UvyaZNm+L888+Pe+65p9pzzzvvvBgzZkz+MvVP69evX/7z4/Pmzav2c+ovv/xyfO1rX6v2RnH77rtvPPbYY3HEEUfU8EwqKysri+Li4igtLY2ioqI6nQsAAOw6ZIP0uMS9Dho1ahR33313PPXUUzFgwIBo3759FBYWRvv27WPAgAHxu9/9Lu66665qw3ldHHHEEfHqq6/G5ZdfHr169YoWLVpEixYt4uCDD47LL788XnvttTqHcwAAANK1W+yg8/95lwwAAIiQDVJkBx0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQK+jNWvWxO233x4nnHBCtG3bNgoLC6NDhw5x6qmnxvjx47fbPG+88UYMGzYsDj744CgqKorCwsJo27ZtfPGLX4ybb745li9fvt3mAgAAoP7lsizL6nsRDcVbb70VAwYMiLfeeqvaPieffHJMmDAhmjdvvtXz3HTTTfHjH/84NmzYUG2fTp06xRNPPBGf/exn6zR2WVlZFBcXR2lpaRQVFW31GgEAgIZNNkiPHfRaWrZsWfTv3z8fzgcNGhQTJ06Mv/zlLzFx4sQYNGhQRERMmjQpzj777K2e58EHH4zhw4fHhg0borCwMH7wgx/EU089FS+//HL89re/jWOOOSYiIt599904+eSTo7S0dNufHAAAAPXODnotXXTRRXHbbbdFRMTIkSPjqquuqtRn5MiR8dOf/jQiIh5++OEYOHBgnec5+OCD47XXXouIiIkTJ8app55aqc/pp58ejzzySER8stv+wx/+sNbje5cMAACIkA1SJKDXwsaNG6NNmzbx8ccfR6dOnWLu3LnRuHHjKvvtt99+sWDBgujTp0+88sordZqn/B9IRMTnPve5+POf/1xlv7///e9xyCGHRMQnYX3ChAl1nsM/QgAA2L3JBulxiXstvP322/Hxxx9HRET//v2rDOcREY0bN47+/ftHRMTMmTNj/vz5dZpn3bp1+eP99tuv2n77779//njt2rV1mgMAAIA0Cei18K9//St/3K5duxr7VmyfMmVKneZp06ZNtG7dOiIi3nnnnWr7zZ07N3/crVu3Os0BAABAmgT0Wqh4R/Yt3ZStYvsbb7xR57mGDh0aERF/+ctf4umnn66yz89+9rOI+GTH/j/+4z/qPAcAAADpKajvBTQEXbt2jT322CPWr1+/xV3xiu0LFiyo81yXXXZZzJw5M/7whz/E17/+9bjooovihBNOiDZt2sQ777wTd9xxRzz//PPRuHHj+OUvfxk9e/as8xwAAACkxw56LTRv3jxOOOGEiPjkBm3jxo2rst+4cePi1Vdfzf+8fPnyOs/VokWLePrpp+PXv/51lJSUxE033RRf/vKX4/DDD4+zzjornn/++Rg4cGC8+OKL8d3vfneL461duzbKyso2ewAAAJAeAb2WRo0aFQUFn1xwMHjw4Lj66qtjwYIFsX79+liwYEFcffXVMXjw4CgsLMyfs3r16q2aa+bMmTFu3LhqP4f+hz/8Ie67775ahe3rrrsuiouL84+OHTtu1ZoAAADYsQT0Wjr88MPj7rvvjsLCwli/fn1cccUV0alTpygsLIxOnTrFFVdcEZs2bYqbbropf07Lli3rPM+ECROiX79+8eyzz8bBBx8cjz76aPzzn/+MdevWxdy5c+Paa6+N9evXxx133BFHHXVULF26tMbxRowYEaWlpfnHwoUL67wmAAAAdjwBvQ7OPffcmDFjRgwaNGiz8N2oUaM44YQT4sUXX4x+/frlf7/XXnvVafz3338/hgwZEmvXro2DDjoopk2bFl/72teidevWsccee8R+++0XI0aMiCeffDJyuVy8/vrrMWzYsBrHbNKkSRQVFW32AAAAID1uEldHhxxySDz44IOxcePGeO+992LNmjXRvn37aNasWURE/Pa3v833PfDAA+s09gMPPBArV66MiIif/OQnm909vqITTjghTjjhhPjDH/4QjzzySHz00Ud1fjMAAACAtNhB30qNGzeOkpKS6Nq1az6cR0RMnTo1f3zEEUfUaczZs2fnjz/3uc/V2Pfzn/98RERs2rQp/vGPf9RpHgAAANIjoG9H69atiwkTJkRERIcOHeKoo46q0/nlN6GLiNiwYUONfdevX1/leQAAADRMAvp29Itf/CKWLVsWEREXXnhhNG7cuE7nd+nSJX/8wgsv1Ni3/PvWc7lcdO7cuW4LBQAAIDkCeh0sWLCg2rYnn3wyLrvssoiIOOCAA2L48OGV+owdOzZyuVzkcrm46qqrKrWfeuqpkcvlIiLimmuuicWLF1c515gxY2LmzJkREdG3b9/Ye++96/pUAAAASIxro+ugV69eceSRR8agQYPioIMOisLCwpg/f3489NBDMX78+Ij45M7t48ePj6ZNm9Z5/B49esS3v/3tuOeee2Lx4sXRu3fvuPjii+PYY4+Nli1bxsKFC+OBBx7I34iucePGce21127X5wgAAED9ENDrYNOmTTF58uSYPHlyle0HHnhg/OY3v4nevXtv9Ry33357rFy5MsaPHx/Lli3L78p/WvPmzWPMmDGbfa0bAAAADZeAXgd33XVXTJ48OWbMmBHvvfderFixItq2bRuf/exn44wzzohzzjkn9thjj22ao0mTJvHAAw/EBRdcEGPHjo3p06fH4sWLY+3atVFUVBTdu3ePL33pSzF06NAoKSnZTs8MAACA+pbLsiyr70Ww85SVlUVxcXGUlpZGUVFRfS8HAACoJ7JBetwkDgAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBAr6M1a9bE7bffHieccEK0bds2CgsLo0OHDnHqqafG+PHjt/t8f/jDH2LIkCHRtWvXaN68eRQXF0e3bt3ijDPOiDvuuCNWrFix3ecEAABg58tlWZbV9yIairfeeisGDBgQb731VrV9Tj755JgwYUI0b958m+b66KOP4tvf/nY8/vjjNfabNWtWHHroobUet6ysLIqLi6O0tDSKioq2aY0AAEDDJRukp6C+F9BQLFu2LPr37x8LFy6MiIhBgwbF4MGDo3379rFkyZK477774qGHHopJkybF2WefHU888cRWz1VaWhr9+/ePP//5zxERceqpp8ZZZ50VXbt2jY0bN8a7774br7zySkyYMGG7PDcAAADqnx30Wrrooovitttui4iIkSNHxlVXXVWpz8iRI+OnP/1pREQ8/PDDMXDgwK2a69xzz43/+Z//iYKCgvjNb34TZ555ZpX9siyLjRs3RkFB7d9n8S4ZAAAQIRukSECvhY0bN0abNm3i448/jk6dOsXcuXOjcePGVfbbb7/9YsGCBdGnT5945ZVX6jzX1KlT49hjj42IiKuuuipGjhy5zeuvyD9CAAAgQjZIkZvE1cLbb78dH3/8cURE9O/fv8pwHhHRuHHj6N+/f0REzJw5M+bPn1/nuf7v//2/ERHRokWL+K//+q+tWi8AAAANj4BeC//617/yx+3atauxb8X2KVOm1GmedevW5W8Kd8opp0SLFi0iImLDhg3x7rvvxoIFC2LdunV1GhMAAICGQUCvhYp3ZC8tLa2xb8X2N954o07z/O1vf4s1a9ZERMSRRx4ZS5cujW9/+9vRqlWr6Ny5c3Tq1CmKi4vjy1/+ckybNq1OYwMAAJA2Ab0WunbtGnvssUdEbHlXvGL7ggUL6jRPxUC/Zs2aOPjgg2Ps2LGxcuXKzX7/9NNPx7HHHhu33HJLncYHAAAgXQJ6LTRv3jxOOOGEiIj4+9//HuPGjauy37hx4+LVV1/N/7x8+fI6zVPxUvpRo0bFhx9+GKeddlrMnDkz1qxZE++//37cfvvtUVRUFJs2bYof/vCH8fTTT9c45tq1a6OsrGyzBwAAAOkR0Gtp1KhR+a8zGzx4cFx99dWxYMGCWL9+fSxYsCCuvvrqGDx4cBQWFubPWb16dZ3mqLhTvnbt2vjKV74Sjz/+eHz+85+PJk2axD777BPf+c534qmnnopGjRpFlmVx6aWXRk034r/uuuuiuLg4/+jYsWMdnzkAAAA7g4BeS4cffnjcfffdUVhYGOvXr48rrrgiOnXqFIWFhdGpU6e44oorYtOmTXHTTTflz2nZsmWd5mjatOlmP994443RqFHlEh1zzDH571h/7bXX4rXXXqt2zBEjRkRpaWn+sXDhwjqtCQAAgJ1DQK+Dc889N2bMmBGDBg3aLHw3atQoTjjhhHjxxRejX79++d/vtddedRq/4phdunSJ7t27V9v3pJNOyh/X9H3rTZo0iaKios0eAAAApKegvhfQ0BxyyCHx4IMPxsaNG+O9996LNWvWRPv27aNZs2YREfHb3/423/fAAw+s09gVLz8vKSmpdd8PPvigTvMAAACQHgF9KzVu3LjKED116tT88RFHHFGnMQ866KD88caNG2vsW7G9/LPxAAAANFwucd+O1q1bFxMmTIiIiA4dOsRRRx1Vp/M7deoUn/nMZyIiYu7cuTX2rdjeoUOHOq4UAACA1Ajo29EvfvGLWLZsWUREXHjhhdG4ceM6j3H66adHRMT7778f06ZNq7bfI488kj8+9thj6zwPAAAAaRHQ62DBggXVtj355JNx2WWXRUTEAQccEMOHD6/UZ+zYsZHL5SKXy8VVV11V5TgXX3xx/m7u3/ve9zb76rVyv/nNb+JPf/pTRESceuqpW/y8OgAAAOnz4eU66NWrVxx55JExaNCgOOigg6KwsDDmz58fDz30UIwfPz4iPrlz+/jx4yt9ZVptfeYzn4mf/vSncemll8af//znOPzww+PSSy+NXr16RWlpaTzyyCNx5513RkREUVFR3Hzzzdvt+QEAAFB/BPQ62LRpU0yePDkmT55cZfuBBx4Yv/nNb6J3797bNM8ll1wS//rXv2L06NHxxhtvxJAhQyr12WeffeKxxx6LAw44YJvmAgAAIA0Ceh3cddddMXny5JgxY0a89957sWLFimjbtm189rOfjTPOOCPOOeec2GOPPbbLXNddd1189atfjTvuuCNeeOGFeO+996Jp06bRrVu3+OpXvxrDhg2L4uLi7TIXAAAA9S+XZVlW34tg5ykrK4vi4uIoLS2NoqKi+l4OAABQT2SD9LhJHAAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAECOgAAACQAAEdAAAAEiCgAwAAQAIEdAAAAEiAgA4AAAAJENABAAAgAQI6AAAAJEBABwAAgAQI6AAAAJAAAR0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0AEAACABAjoAAAAkQEAHAACABAjoAAAAkAABHQAAABIgoAMAAEACBHQAAABIgIAOAAAACRDQAQAAIAECOgAAACRAQAcAAIAEFNT3Ati5siyLiIiysrJ6XgkAAFCfyjNBeUag/gnou5nly5dHRETHjh3reSUAAEAKli9fHsXFxfW9DCIil3m7ZLeyadOmWLJkSbRs2TJyuVy9rqWsrCw6duwYCxcujKKionpdC9uPuu561HTXpK67HjXd9ajprimlumZZFsuXL4/27dtHo0Y+/ZwCO+i7mUaNGkVJSUl9L2MzRUVF9f7Hie1PXXc9arprUtddj5ruetR015RKXe2cp8XbJAAAAJAAAR0AAAASIKBTb5o0aRIjR46MJk2a1PdS2I7Uddejprsmdd31qOmuR013TepKTdwkDgAAABJgBx0AAAASIKADAABAAgR0AAAASICADgAAAAkQ0NnpFixYEMOHD4+ePXtG8+bNo3Xr1nH44YfHf//3f8eqVavq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5557RsuWLeOAAw6IwYMHx3PPPVftOWqapunTp0dERHFxcfTs2TP+93//Nw455JBo3bp1dOvWLdq0aRP77bdfjBo1KlasWFHlGGrLjiKgs8OtWbMmPvzww4iIKCkpqbHvXnvtlX93cOHChTt8bVRW8XXfUr06duxY5XkVf27evHm0atWqVuMsW7Ys1q5dm//9okWLIsuybV7Lrm7Tpk1x/fXX53/+xje+UamPuqZr7Nix+e9Rbt68eXTr1i3+67/+K95///2IiBg+fHh885vf3Owc9UzbpZdeGkuXLo2jjjoqzjvvvFqfp65pe+ONN+If//hHrFmzJlasWBFz5syJ+++/P44//vj4+te/HqWlpZXOUdM0vfHGGxER0blz5xg2bFh861vfir///e+b9Zk3b15cddVVceSRR8aSJUsqjaG27CgCOjvc8uXL88ctWrTYYv/ygF7dO5bsWHWpV3mtIirXq3ycutT80+Nsr7Xs6m6++eaYMWNGRER8/etfjz59+lTqo64Nz6GHHhrTp0+PG2+8MXK53GZt6pmuqVOnxl133RUFBQVx5513VqpdTdQ1Tc2aNYuzzjorfv3rX8cLL7wQs2bNismTJ8dll10We++9d0REPPbYYzFgwIBYv379ZueqaZr+9a9/RUTEm2++Gbfddlu0atUq7rzzzvjggw9izZo18corr8Qpp5wSERGvvfZaDBo0KDZt2rTZGGrLjlL9tcawnaxZsyZ/XFhYuMX+TZo0iYiI1atX77A1Ub261Ku8VhGV61U+Tl1q/ulxttdadmXPP/98/PjHP46IiH322SfuuOOOKvupa7q+9rWv5d9UWb16dcydOzcefPDBePTRR+Ob3/xm3HLLLXHaaadtdo56pmndunUxdOjQyLIsfvCDH8TBBx9cp/PVNU2LFy+ucmezf//+MWzYsDjllFNi1qxZ8fzzz8cdd9wR3/ve9/J91DRNK1eujIiItWvXRuPGjePpp5+Ovn375tv79OkTEydOjNNOOy2efvrpmDZtWjzyyCNxxhln5PuoLTuKHXR2uKZNm+aPK97Iqjrll+zsueeeO2xNVK8u9ap4edWn61U+Tl1q/ulxttdadlWvv/56fP3rX48NGzZEkyZN4sEHH4x27dpV2Vdd09WqVavo1atX9OrVKw477LA466yz4pFHHon7778/3nnnnRgwYECMHTt2s3PUM03XXnttzJ49Oz7zmc/EyJEj63y+uqappsuO27VrFxMmTMiHoltvvXWzdjVNU8XXYtCgQZuF83KNGjXa7AaP48aNq3YMtWV7EtDZ4Vq2bJk/rs2lNOXvatbmUh+2v7rUq7xWEZXrVT5OXWr+6XG211p2RfPmzYsTTzwxPvroo2jcuHGMGzeuxru/qmvDc8455+Qvq7zooovio48+yrepZ3refPPNuO666yLik5BW8TLS2lLXhmm//faL/v37R0TEnDlzNvu8spqmqeJrUX4pe1UOOuig6NChQ0REvPLKK9WOobZsTwI6O1zTpk2jTZs2ERH5O0xW56OPPsr/4ah4Ewt2noo3F9lSvSreXOTT9SofZ+XKlfHxxx/Xapy2bdtudunV9lrLrmbJkiXxpS99KZYsWRK5XC7uueee+PrXv17jOeraMA0YMCAiPnm9n3766fzv1TM9N998c6xbty7222+/WLVqVTzwwAOVHq+99lq+/7PPPpv/ffl/99S14TrwwAPzx+VfvRWhpqmq+Jxqe1O1Dz74YLPfqy07ioDOTtGzZ8+I+OSd5Q0bNlTb780336x0DjtXxf+TUbEeVampXrUdZ8OGDTF37twqx2jRokX+Px7bspZdyYcffhj9+/ePd955JyI+2ak799xzt3ieujZMFb+e6913380fq2d6yi8bfeedd+Lss8+u8vHwww/n+//sZz/L/37ZsmURoa4NWfkdtD9NTdN00EEH5Y/Lv86yOuXtn/6aYLVlRxHQ2SmOOeaYiPjk3cE///nP1far+F3ORx999A5fF5V16dIl2rdvHxGb16MqU6ZMiYiIDh06ROfOnTdrK6/5lsaZOXNmfveoqpqXj/PWW2/F0qVLqx1nd/jfTmlpaZx00kn5r4e5/vrr4z//8z9rda66NkwVd+IqXoqonrsmdW24yv8uR0S+hhFqmqovfOEL+ePy0Fud8jfEyy91L6e27DAZ7AQvv/xyFhFZRGQXXHBBlX02btyY9ezZM4uIrFWrVtm6det28ip3TfPmzcu/9oMHD67VOd/5znfy57z00ktV9nnppZfyfb773e9Wal+7dm1WXFycRUTWs2fPbNOmTVWOc8EFF+THmTFjRqX28ePH59uvu+66KsdYuXJlttdee2URkR144IG1eo4NzcqVK7Ojjz46/1pcdtlldR5DXRueL3/5y/nX6bnnntusTT0bnpEjR1Zbz3Lq2vDMnTs322OPPbKIyPbbb79K7Wqang8//DBfs/79+1fb709/+lP+9TrvvPMqtastO4KAzk5z7LHHZhGRFRQUZNOmTavUfsMNN+T/sIwcOXLnL3AXtTUB/a233soKCgqyiMj69OmTrVq1arP2VatWZX369MnX8x//+EeV41xxxRX5uW+44YZK7dOmTcvPc9xxx1U5xrp167L9998/i4isqKgomzNnTqU+3/3ud/Pz3HvvvbV6jg3J2rVrsxNPPDH/HL///e9v1Tjqmo577703W716dY19fv7zn+eff+fOnbP169dv1q6eDU9tArq6puWJJ56o9G+voqVLl2a9e/fOvwY33XRTpT5qmqaK4XrcuHGV2svKyrJDDz20xlCstuwIAjo7zV/+8pdszz33zCIia9GiRXbttddmL730Uvbss89mQ4cOzf/B6NatW1ZWVlbfy22wXnjhhezee+/NP2688cb8a3v00Udv1lbTH+cf//jH+fN69+6dPfDAA9krr7ySPfDAA5v9n5ERI0ZUO0ZZWVnWrVu3fN+hQ4dmzz77bPbSSy9l1157bdaiRYssIrI999wzmzVrVrXjPPXUU1mjRo2yiMjatWuX3XrrrdnLL7+cTZo0KTv99NPz4x9zzDHZhg0btuHVS9PAgQPzz/H444/P/v73v2evvvpqtY+33nqr2rHUNQ2dOnXKWrdunZ1//vnZfffdl02dOjX761//mr3wwgvZ7bffvtnVEoWFhdkzzzxT5Tjq2bDUJqBnmbqmpFOnTln79u2zYcOGZb/97W+zadOmZbNmzcqeeeaZ7LLLLsv23nvvzV6DNWvWVDmOmqbngw8+yD7zmc/kw/NFF12UPfvss9nMmTOze++9N+vRo0f+tfjOd75T7Thqy/YmoLNTPfHEE1lRUVH+D8SnH926dcvefvvt+l5mgzZ48OBqX9+qHtXZuHFj9u///u81nnveeedlGzdurHE9b7/9dnbAAQdUO0ZRUVH25JNPbvF5jRkzJissLKx2nMMPPzxbtmxZnV+vhqAu9YyIrFOnTtWOpa5p6NSpU61qWVJSkk2ePLnacdSzYaltQFfXdNT23+rpp5+effTRR9WOo6ZpeuONN7KuXbvWWJd///d/r/Fjl2rL9iags9PNnz8/+8EPfpB169Yta9asWdaqVausT58+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", - "text/html": [ - "\n", - "
\n", - "
\n", - " Figure\n", - "
\n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "cfg = ConfigurationWidget() \n", - "\n", - "\n", - "cfg.display()\n", - "\n", - "sol = SolutionWidget(config=cfg, result_transform=solution_to_fields_lenmatch_v3)\n", - "sol.display()\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "ee3a618f", - "metadata": {}, - "outputs": [], - "source": [ - "guiprocess = cfg.process\n", - "sim = Cadet()\n", - "sim.evaluate_stationarity=False\n", - "res = sim.simulate(guiprocess)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "5e5c1df5", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e5a6626c3e7348a7814d2c0a071ebb3a", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HTML(value=\"

Solution

\"), VBox(children=(HBox(children=(HTML(value=',\n", - " )" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "5d3d536c9fc341bc8c7d3dfdce9a0a89", - "version_major": 2, - "version_minor": 0 - }, - "image/png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAMgCAYAAAAz4JsCAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbLFJREFUeJzt3Xl8lPW5N/4rIRB2EBGtgiur4kLFrWBxb62K1d/RU09d6xHbnnqsrbXVPtX6WHer3bV93Kptta1trUi17jseQcEVEBSLaF1A9kBCkvn9wckUzEwyIcncM9zv9+uVl5OZ+75zJbmnhQ/X9/pWZDKZTAAAAABAiapMugAAAAAAaIkACwAAAICSJsACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsAAACAkibAAgAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSJsACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsAAACAkibAAgAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSJsACAAAAoKQJsAAAAAAoaQKsTUAmk4nly5dHJpNJuhQAAACADifA2gSsWLEi+vXrFytWrEi6FAAAAIAOJ8ACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsAAACAkibAAgAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSVpV0AQAAAED5aGxsjPr6+mhsbEy6FNqgsrIyunbtGhUVFUmXslEEWAAAAECrli1bFsuXL4+amhrhVZnq2rVr9OnTJwYOHBhdunRJupw2EWABAAAAeWUymXj//fdjyZIl0bNnzxg4cGB07949Kisry7abJ20ymUw0NDTEypUrY+nSpbF69eoYMmRIWYVYAiwAAAAgryVLlsSSJUtiq622is022yzpcmiH3r17R79+/WLBggWxaNGi2HLLLZMuqWCGuAMAAAA5ZTKZWLp0afTp00d4tYno0aNH9O3bN1asWBGZTCbpcgomwAIAAAByqq+vj9ra2ujXr1/SpdCB+vTpE2vXro21a9cmXUrBBFgAAABATg0NDRERUVVlAtGmpGn2VTkN4xdgAQAAAC0yrH3TUo6/TwEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAUIIWLFgQ5557bowaNSp69eoVAwYMiL333juuueaaqKmpSbq8oqpKugAAAAAANjRlypT44he/GMuWLcs+V1NTE9OmTYtp06bFjTfeGH/7299ixx13TLDK4tGBBQAAAFBCXnzxxTj++ONj2bJl0bt377j00kvjmWeeiYcffjjOOOOMiIiYM2dOHHHEEbFy5cqEqy0OHVgAAAAAJeTrX/961NTURFVVVTzwwAOx3377ZV876KCDYtiwYXHeeefF7Nmz49prr40LL7wwwWqLQwcWAAAAQImYNm1aPPbYYxERcfrpp28QXjX55je/GaNGjYqIiB/96Eexdu3aYpaYCAEWAAAAQIm4++67s49PO+20nMdUVlbGySefHBERS5YsyQZemzIBFgAAAECJePLJJyMiolevXrHnnnvmPW7ChAnZx0899VSn15U0ARYAAABAiZg1a1ZERAwdOjSqqvKPLh85cmSzczZlhrgDAAAA7XLGGU/EK698lHQZRTN69ID4f//v0x1+3TVr1sSiRYsiImLw4MEtHrvZZptFr169YtWqVfH22293eC2lRoAFAAAAtMsrr3wUzz77QdJllL0VK1ZkH/fu3bvV45sCrJUrV3ZmWSXBEkIAAACAErBmzZrs427durV6fHV1dURErF69utNqKhUCLAAAAIAS0L179+zjurq6Vo+vra2NiIgePXp0Wk2lQoAFAAAAUAL69OmTfVzIssBVq1ZFRGHLDcudGVgAAABAu4wePSDpEoqqs77f7t27x8CBA2PRokWxcOHCFo9dsmRJNsAaMmRIp9RTSgRYAAAAQLt0xo58aTVq1Kh48sknY968eVFfXx9VVbmjm9mzZ29wzqbOEkIAAACAEjF+/PiIWLc88Pnnn8973OOPP559PG7cuE6vK2kCLAAAAIAS8fnPfz77+JZbbsl5TGNjY9x2220REdG/f/848MADi1FaogRYAAAAACVi7733jv333z8iIm666aaYOnVqs2N++MMfxqxZsyIi4uyzz46uXbsWtcYkmIEFAAAAUEJ+/OMfx7hx42L16tVx2GGHxQUXXBAHHnhgrF69Ou6888741a9+FRERw4cPj29+85sJV1scAiwAAACAEjJmzJj4/e9/HyeeeGIsX748LrjggmbHDB8+PKZMmRJ9+vRJoMLis4QQAAAAoMQcddRR8dJLL8U555wTw4cPj549e0b//v1j7NixceWVV8aMGTNi6NChSZdZNBWZTCaTdBG0z/Lly6Nfv36xbNmy6Nu3b9LlAAAAsIlYs2ZNzJ8/P3bYYYfo3r170uXQQcrx96oDCwAAAICSJsACAAAAoKQJsFrxwQcfxL333hsXXnhhHH744TFw4MCoqKiIioqKOPXUU9t8vfvvvz+OPfbYGDx4cFRXV8fgwYPj2GOPjfvvv7/jiwcAAADYBNiFsBVbbrllh1wnk8nEl7/85exWl03eeeed+Mtf/hJ/+ctfYtKkSXHDDTdERUVFh3xNAAAAgE2BDqw2GDJkSBx22GEbde7/+T//JxtejRkzJu6444547rnn4o477ogxY8ZERMSvfvWr+N73vtdh9QIAAABsCnRgteLCCy+MvfbaK/baa6/Ycsst46233ooddtihTdeYN29eXHXVVRERMXbs2HjiiSeiR48eERGx1157xcSJE2PChAkxffr0uPLKK+O0006LnXbaqcO/FwAAAIBypAOrFRdffHEceeSR7VpKeN1110V9fX1ERPz0pz/NhldNevbsGT/96U8jIqK+vj5+9KMfbfTXAgAAANjUCLA6WSaTib/+9a8RETFy5MjYd999cx637777xogRIyIi4u67745MJlO0GgEAAABKmQCrk82fPz/eeeediIiYMGFCi8c2vb5w4cJ46623Ors0AAAAgLJgBlYnmzVrVvbxyJEjWzx2/ddnzZrV5llbtN/cucvi6affi5Ur10ZlZUXstFPfOPDAraNbty5JlwYAAACpJcDqZG+//Xb28eDBg1s8dsiQITnPo/OtWVMfp576WPz+9282e22bbXrFPfd8Jj75yYEJVAYAAABYQtjJVqxYkX3cu3fvFo/t1atX9vHKlSvzHldbWxvLly/f4IP2OfPMJ3OGVxER77yzKg47bEosXrymyFUBAACUBnOaNy3l+PsUYHWyNWv+FXp069atxWOrq6uzj1evXp33uMsvvzz69euX/Vi/c4u2mzNnadx229wWj1m8uDZuvnlOkSoCAAAoDV26rBunUl9fn3AldKSGhoaIiKisLJ9YqHwqLVPdu3fPPq6rq2vx2Nra2uzjHj165D3u/PPPj2XLlmU/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x1tvvRW77bZb7LHHHtmP0aNHl31H0h//+Mfs4+OOOy77eMmSJbFo0aIYMGBAbL755kmUlnobO8RdAxYAAAAUV0kEWBERK1asiKeffjqefvrp7HNVVVUxYsSIDUKtPfbYIwYMGJBgpW3z7LPPRkREv379YtSoUfHb3/42rrrqqnjppZeyx+ywww5xyimnxDe/+c3o3bt3UqWmTmFD3HOd10kFAQAAADklFmBdeuml8eKLL8bMmTNj3rx50djY2OyYtWvXZncl/O1vf5t9fptttmkWau24447FLL9gr732WkREbL/99nHWWWfFz3/+82bHzJ8/P77//e/HXXfdFX//+99j6623LnaZqVTYEHczsAAAACBpiQVY559/fvZxTU1NvPjiizFjxoyYOXNmzJgxI1599dVYs2ZNzrBg4cKF8c4778SUKVOyz/Xp06fZEsRPfvKTRfleWvLRRx9FxLpZWC+++GL0798/rrjiijj22GOjb9++8fLLL8eFF14Y9913X7zyyitx3HHHxZNPPtnizoq1tbVRW1ub/Xz58uWd/n2khQ4sAAAAKD0lsYSwZ8+esd9++8V+++2Xfa6hoSFmzZqVDbRmzpwZM2fOjCVLlkRE8y6Y5cuXb7AEsaKiIurr64v3TeSxatWqiFgXOnXp0iXuu+++2HfffbOvjx07Nu6999448sgj47777otnnnkm/vznP8e//du/5b3m5ZdfHhdffHGn176pKySIMsQdAAAAkleRKbP1UAsWLNigU2vmzJmxYMGCZsdVVFREQ0NDAhVuqHfv3tkQ6wtf+ELccccdOY979dVXY/To0RERceyxx8af/vSnvNfM1YE1ZMiQWLZsWfTt27cDq9+0DRp0W3z44ZoNnvuP/xgav/3tQdnPJ068PyZP3vD+2nHHPvHGGycUpUYAAACgRDqw2mLbbbeNbbfdNo4++ujsc0uXLo0ZM2ZsEGzNmTMnwSr/pU+fPtkA6/DDD8973C677BLbbLNNvPPOOzFt2rQWr1ldXR3V1dUdWmcaFbILYe4ZWJ1UEAAAAJBT2QVYufTv3z8OPPDAOPDAA7PPrd+hlKQhQ4bEe++9FxERgwcPbvXYd955Jz744INilJZ6diEEAACA8pB/UniZK5UOpV122SX7uLUljU2vV1VtErliybMLIQAAAJSHkg6wGhsb46233opZs2bFu+++m3Q5G+XTn/509vEbb7zR4rFvvvlmRERss802nVoT6xS2hLA4tQAAAAD5lWSA9eGHH8bpp58e/fv3j5122ilGjx4dQ4YMiZ49e8Zee+0VkyZNiuuvvz6effbZqKmpSbrcFk2cODG6du0aERF//vOf8x73+OOPx+LFiyMiYv/99y9KbWmXewlh64mVBiwAAAAorpJbq/bhhx/GPvvsE//4xz+aBQxr1qyJF154IV544YXsc5WVlTFs2LAYM2ZM9mOPPfaIzTffvNil57T55pvHf/7nf8b1118fDz74YNx5553xhS98YYNjVqxYEV//+tezn5955plFrjKdNrYDyxJCAAAAKK6SC7B+8IMfxFtvvZXthKmsrIxtt902amtr47333msWHjQ0NMScOXNizpw5ceedd2afHzx4cPzjH/8oau35XHzxxTFlypRYsGBBnHTSSfH000/HscceG3379o2XX345rrzyypg9e3ZERHzlK1+JvfbaK+GK06GwIe52IQQAAICklVyANXny5Ozjf//3f49f/OIXsdlmm0VERE1NTbzyyisxc+bMmDlzZsyYMSNefvnlnMsIFy5cWLSaW7PFFlvE/fffHxMnTox58+bFz372s/jZz37W7LgvfelL8eMf/ziBCtOpsCHuhZ0HAAAAdJ6SC7DefffdqKioiO222y5uu+227PyoiIiePXvG3nvvHXvvvXf2uUwmE6+//no21Gr6+OCDD5IoP69Ro0bFzJkz4/rrr4+77ror5s6dGytXroxBgwbFuHHj4swzz4wDDzww6TJTpbAlhKa4AwAAQNJKLsDq0aNHrF27Nj71qU9tEF7lU1FRESNGjIgRI0bEv//7v2efL7UAKyKiV69ece6558a5556bdClEe4a4a8ECAACAYiq5XQhHjx4dERFVVe3L1gYNGtQR5ZAyhQ1xL04tAAAAwDolF2Ade+yxkclkYtq0aUmXwiaukCDKLoQAAACQvJILsM4444zYaqutYvbs2fHQQw8lXQ6bMLsQAgAAQHkouQCrd+/ecfvtt0dFRUWcccYZJTnLik3Dxu5CCAAAABRXyQVYEREHH3xw/PznP4+FCxfGuHHj4sUXX0y6JDZBhexCWOh5AAAAQOcpyQArImLSpElx3nnnxRtvvBF77bVXnHrqqfHYY4/F2rVrky6NTUQhuxDmXkIowQIAAIBiat9Wf53kySefjFNPPTXeeuutqKioiPr6+rj99tvj9ttvj+rq6th1111jzJgxMWbMmPjkJz8Zu+22W1RXVyddNmWmkA4suxACAABA8kouwHrttdfis5/9bKxevToi/tUB09T1smbNmpg+fXpMnz49e06XLl1ixIgR2UBrzJgxsccee0S/fv2K/w1QNgob4l7YeQAAAEDnKbkA6wc/+EGsXr06KioqIpPJxA477BC77bZbNDY2xrx58+L111+P+vr6Dc6pr6+P1157LV577bX47W9/GxGR7dyCfAob4m6KOwAAACSt5AKsRx99NBsaXHLJJXHBBRdsECLU1tbGyy+/HDNmzMh+vPTSS9mOLSiUIe4AAABQHkouwFqyZElEROy+++7x3e9+t9nr1dXVMXbs2Bg7dmz2ucbGxpg9e/YGodbMmTOLVTJlqrAh7rnO66yKAAAAgFxKLsDaaqut4u23344xY8YUfE5lZWXsvPPOsfPOO8cXv/jFTqyOTUlhQ9ztQggAAABJq0y6gI/bfffdIyKipqYm4UpII7sQAgAAQOkpuQDrxBNPjEwmE0888YROF4qukCWEAAAAQHGVXIB17LHHxp577hnvvfde3HzzzUmXwyaqPeGoYBUAAACKq+QCrC5dusTtt98e/fv3j69//evx/PPPJ10Sm6B8GVRhM7A6oSAAAAAgr5ILsE4++eSYPHlyfOtb34q1a9fGAQccELfeemvSZbGJyddFZRdCAAAAKD0ltwvhb37zmw1ChLq6ujj99NPjmmuuiVNPPTUOPvjg2HXXXaOqquRKp4y0rwNLggUAAADFVJIpUFNAUFFRERUVFZHJZGLWrFnx7W9/OyIiunXrFrvsskuMGTMmPvnJT8aYMWNi9913jx49eiRZNmWk8ACr82sBAAAAWlZyAdZtt90WM2fOjJkzZ8aLL74YixcvjogNu15qa2tjxowZMWPGjOyg98rKyhg2bFg20BozZkwcdNBBiXwPlL5ClxDmPrejqwEAAABaUnIB1oknnhgnnnhi9vOFCxdmA62mj/nz5zcLIBoaGmLOnDkxZ86cuOOOO6KioiLq6+uLXT5loj0dWJYQAgAAQHGVXID1cYMHD47BgwfHkUcemX1u5cqVzUKtV199NWpraxOslHJS+BB3uxACAABA0ko+wMqld+/eMX78+Bg/fnz2uYaGhpg1a9YGyw8h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Bx4Yq1evjjvvvDN+9atfRUTE8OHDY/r06YlsSQkAAABQigRYRTR58uQ48cQTY/ny5TlfHz58eEyZMiWGDh1a5MoAAAAASpclhEV01FFHxUsvvRTnnHNODB8+PHr27Bn9+/ePsWPHxpVXXhkzZsxIVXi1YMGCOPfcc2PUqFHRq1evGDBgQOy9995xzTXXRE1NTdLlQZu88MILcdlll8Xhhx8eQ4YMierq6ujdu3cMHz48Tj311HjyySfbdL37778/jj322Bg8eHBUV1fH4MGD49hjj43777+/k74D6HjnnXdeVFRUZD8ee+yxVs9x71POFi1aFFdddVWMGzcuttpqq6iuro6tt9469tlnn/jWt76Vc4zEx3kPUI7q6uripptuis9+9rPxiU98IvvnoBEjRsSXvvSlePbZZwu6jvufUvLBBx/EvffeGxdeeGEcfvjhMXDgwOyfaU499dQ2X68j7u+ampq4+uqrY++9944BAwZE7969Y9SoUXHuuefGggUL2lxT2clAAu69995Mv379MhGR82PEiBGZN954I+kyoSCf/vSn897L63+cdNJJmdra2hav1djYmJk0aVKL15k0aVKmsbGxSN8dbJyZM2dmqqqqNrh3H3300bzHu/cpd3/4wx8ym2++eYv38NFHH533fO8BytWCBQsyu+66a6t/DjrnnHPy3r/uf0pRS/fjKaecUvB1Our+njdvXmbEiBF5r9GvX7/MlClT2vldlzYBFkU3c+bMTM+ePTMRkendu3fm0ksvzTzzzDOZhx9+OHPGGWdk34AjR47MrFixIulyoVU77bRTJiIyW2+9debss8/O3HXXXZnnnnsuM3Xq1My1116b2WabbbL39QknnNDitS644ILssWPGjMnccccdmeeeey5zxx13ZMaMGZN97bvf/W6Rvjtou4aGhsxee+2ViYjMoEGDCgqw3PuUs1//+teZysrK7D1/0UUXZR588MHM888/n5kyZUrmJz/5SebQQw/N/Nu//Vvea3gPUI7Wrl27QXi12267ZW699dbM1KlTMw888EDmwgsvzPTq1Sv7+lVXXZXzOu5/StH64dCQIUMyhx122EYFWB1xf69YsSIzcuTI7LFnnHFG5uGHH84888wzmUsvvTTTu3fvTERkevbsmXnxxRc74LsvTQIsiu6AAw7IRESmqqoq88wzzzR7/aqrrsq+MS+++OIEKoS2OeKIIzK///3vM/X19Tlf//DDDzPDhw/P3tdPPPFEzuPmzp2b7VgZO3ZspqamZoPXV61alRk7dmz2/TNv3rwO/16gI1x33XXZf4g4//zzWw2w3PuUs9deey1TXV2diYjM/vvvn1m6dGneY/N14XoPUK7uuuuu7P/G77fffjn/LDR9+vRM165dMxGR2WyzzTJr167d4HX3P6XqwgsvzEyePDnz3nvvZTKZTGb+/PltDrA66v6+6KKLWgyCn3nmmezXOfDAA9v2jZYRARZF9dxzz2XfeGeeeWbOYxoaGjKjRo3K/p9cXV1dkauEjjd58uTsvf/f//3fOY/56le/mj1m6tSpOY+ZOnVq9pivfe1rnVkybJQFCxZk/xXw0Ucf3eAPXPkCLPc+5ezggw/ORERm4MCBmQ8//HCjruE9QLk655xzsvflPffck/e4Y445Jnvcyy+/vMFr7n/KxcYEWB1xf9fV1WX69++fiYjMqFGjMg0NDTmvc+aZZ2avM3369IK/r3JiiDtFdffdd2cfn3baaTmPqaysjJNPPjkiIpYsWVLQ0F8odQcccED28RtvvNHs9UwmE3/9618jImLkyJGx77775rzOvvvuGyNGjIiIde+njI1kKTFf/epXY+XKlXHKKadscN/n496nnM2ePTsefvjhiIj42te+FgMHDmzzNbwHKGd1dXXZxzvuuGPe43baaafs49ra2uxj9z+bso66vx977LFYunRpRESccsopUVmZO8ZZf7D8n//853ZWX5oEWBRV005svXr1ij333DPvcRMmTMg+fuqppzq9Luhs6/8BL9f/6cyfPz/eeeediNjw/s+l6fWFCxfGW2+91XFFQjv94Q9/iHvvvTcGDBgQV199dUHnuPcpZ3/84x+zj4877rjs4yVLlsTcuXNj8eLFrV7De4ByNnz48OzjN998M+9xTf94V1FREcOGDcs+7/5nU9ZR9/f6u5m3dJ2xY8dGr169ImLT/Tu0AIuimjVrVkREDB06NKqqqvIeN3LkyGbnQDl7/PHHs4/Xv7+brH+f53p9fd4flKKlS5fG2WefHRERV155ZWyxxRYFnefep5w9++yzERHRr1+/GDVqVPz2t7+N3XffPQYMGBDDhw+PgQMHxo477hgXX3xxrFy5Muc1vAcoZyeccEL07ds3Itb9b39DQ0OzY2bMmBFTpkyJiIgvfOEL2eMj3P9s2jrq/i70OlVVVdlux031PSLAomjWrFkTixYtioiIwYMHt3jsZpttlk2P33777U6vDTpTY2NjXHHFFdnPjz/++GbHrH+ft/b+GDJkSM7zIEnnnXdevPfee/GpT30qTj/99ILPc+9Tzl577bWIiNh+++3jrLPOihNPPDFeeumlDY6ZP39+fP/734/99tsv3n333WbX8B6gnG2xxRZx6623Ro8ePeLpp5+OvfbaK2677bZ49tln46GHHoqLL744JkyYEHV1dbHHHnvEtddeu8H57n82ZR11fzd93qtXr+jfv39B1/nwww83WK67qRBgUTQrVqzIPu7du3erxzcFWPn+xRLKxXXXXRfPPfdcREQcc8wxMXbs2GbHtOX90fTeiPD+oDQ89dRTceONN0ZVVVXccMMNUVFRUfC57n3K2UcffRQR62Zh/fznP4/+/fvHDTfcEB988EGsWbMmpk2bFocffnhERLzyyitx3HHHRWNj4wbX8B6g3B1zzDExffr0OP3002PmzJlxyimnxH777ReHHnpofP/734+ePXvGtddeG0899VRstdVWG5zr/mdT1lH3d9N12vJ36FzX2RQIsCiaNWvWZB9369at1eOrq6sjImL16tWdVhN0tscffzy+853vRETEoEGD4vrrr895XFveH03vjQjvD5JXV1cXkyZNikwmE+ecc07suuuubTrfvU85W7VqVUSsG0rdpUuXuO++++LMM8+MLbbYIqqrq2Ps2LFx7733ZkOsZ555ptlgXe8Byt3atWvjd7/7XUyePDnncPX3338/7rjjjpwbM7n/2ZR11P3ddJ22/B0613U2BQIsiqZ79+7Zx+sPtM6nqeWxR48enVYTdKZXX301jjnmmKivr4/q6ur4wx/+EFtuuWXOY9vy/li/Hdj7g6RddtllMWvWrNh2223joosuavP57n3K2fr373HHHZdzh6nKysoNNjW444478l7De4Bys2rVqjjkkEPi0ksvjcWLF8d5550Xs2bNitra2li2bFk88MADMX78+Jg2bVocddRR8eMf/3iD893/bMo66v5uuk5b/g6d6zqbAgEWRdOnT5/s40LaGZv+VbOQVkkoNfPnz4/DDjsslixZEl26dIk77rijxV1D2vL+aHpvRHh/kKzZs2fH5ZdfHhERP/3pTzdoWy+Ue59ytv7929Rllcsuu+wS22yzTURETJs2Le81vAcoNxdddFE88cQTERFx0003xZVXXhkjR46Mbt26Rd++fePQQw+NRx99NA488MDIZDLxjW98Y4M5ce5/NmUddX83Xactf4fOdZ1NQf5t4KCDde/ePQYOHBiLFi2KhQsXtnjskiVLsm++9QfaQTl4991345BDDol33303Kioq4uabb45jjjmmxXPWH+zY2vtj/cGO3h8k6brrrou6urrYcccdo6amJu68885mx7zyyivZx4888ki89957ERFx1FFHRa9evdz7lLUhQ4Zk7+lCBvS+88478cEHH2zwvPcA5SqTycQtt9wSERHDhw+PU045JedxVVVVcckll8T48eOjsbExbrnllrjuuusiwv3Ppq2j7u/BgwfH//zP/8SqVati6dKlLQ5yb7pO01L2TY0Ai6IaNWpUPPnkkzFv3ryor6+Pqqrct+Ds2bM3OAfKxaJFi+LQQw+NN998MyLWdaWcfPLJrZ638847Zx+vf//n4v1BqWhqU3/zzTfjhBNOaPX4Sy65JPt4/vz50atXL/c+ZW2XXXbJdlQ1NDS0eGzT6x//s4/3AOXq/fffz25kMGbMmBaP3XPPPbOP17+P3f9syjrq/t55553jT3/6U/a4XMvVIyLq6+vjjTfeyHmNTYUlhBTV+PHjI2Jda+Pzzz+f97jHH388+3jcuHGdXhd0hGXLlsVnPvOZ7LbqV1xxRfzXf/1XQefusMMOsfXWW0fEhvd/Lk2t+ttss01sv/32G18wlAD3PuXs05/+dPZx018a8mn6h42mpYRNvAcoV+uHsfX19S0eu3bt2pznuf/ZlHXU/d30d+jWrjN9+vTsKqZN9e/QAiyK6vOf/3z2cVPL8cc1NjbGbbfdFhER/fv3jwMPPLAYpUG71NTUxBFHHBEvvPBCRER897vfjW9/+9sFn19RURFHH310RKz7l5Vnn30253HPPvts9l9ojj766KioqGhn5bDxbr311shkMi1+rD/Y/dFHH80+3/SHM/c+5WzixInRtWvXiIhmuwuu7/HHH4/FixdHRMT++++/wWveA5SrAQMGRN++fSMiYurUqS2GWOv/pXuHHXbIPnb/synrqPv7gAMOiH79+kVExK9//eucu31GrPtzWZPWxpeUrQwU2f7775+JiExVVVXmmWeeafb6VVddlYmITERkLrroouIXCG1UW1ubOeyww7L37dlnn71R15kzZ06mqqoqExGZsWPHZmpqajZ4vaamJjN27Njs++f111/vgOqhc1100UXZ98ajjz6a8xj3PuXsK1/5SvYev+OOO5q9vnz58swee+yRPea5555rdoz3AOXqhBNOyN7b3//+93Me89FHH2V23nnn7HF///vfN3jd/U+5mD9/fvY+PuWUUwo6p6Pu7+9973vZr33VVVc1e/2ZZ57Jfp0JEya09VsrGwIsiu6FF17I9OjRIxMRmd69e2cuu+yyzNSpUzOPPPJIZtKkSdk35vDhwzPLly9Pulxo1bHHHpu9bw866KDMSy+9lHn55ZfzfsyZMyfvtb7zne9krzVmzJjMnXfemZk2bVrmzjvvzIwZMyb72vnnn1/E7xA2XiEBVibj3qd8ffDBB5ltt902+5ePr33ta5lHHnkkM3369Mwtt9ySGTlyZPb+/cpXvpL3Ot4DlKNZs2Zlevbsmb0/jzrqqMxdd92VeeGFFzLPPPNM5tprr82+PyIic/DBB+e8jvufUvTkk09mbrnlluzH1Vdfnb0Xx40bt8Frt9xyS97rdMT9vXz58szw4cOzx06aNCnzyCOPZKZOnZq57LLLMr17985ERKZHjx6ZGTNmdPwPo0QIsEjEPffck+nbt2/2Dfjxj+HDh2fmzp2bdJlQkHz3cb6P7bbbLu+1GhoaMl/60pdaPP/000/PNDQ0FO8bhHYoNMBy71POXnvttczQoUNbvH+/9KUvZerq6vJew3uAcvXggw9mBg4c2Oqffw466KDMRx99lPMa7n9K0SmnnNKmP+Pn01H399y5czPDhg3Le42+fftmJk+e3NE/hpJSkcnkWUAJnewf//hH/PjHP44pU6bEwoULo1u3bjF06NA47rjj4mtf+1r07Nkz6RKhIG2dw7DddtvFW2+91eIxf/vb3+JXv/pVTJs2LRYtWhQDBw6MvfbaK84888w4/PDD21EtFNf3v//9uPjiiyNi3QysAw44oMXj3fuUq1WrVsX1118fd911V8ydOzdWrlwZgwYNinHjxsWZZ55Z8ExP7wHK0eLFi+Omm26K++67L1599dVYunRpVFVVxVZbbRV77bVX/Md//EdMnDix1T8zuf8pJaeeemr8+te/Lvj41qKVjri/V61aFT//+c/jj3/8Y8ybNy/q6upiyJAh8bnPfS7OPvvs2G677QqutxwJsAAAAAAoaXYhBAAAAKCkCbAAAAAAKGkCLAAAAABKmgALAAAAgJImwAIAAACgpAmwAAAAAChpAiwAAAAASpoACwAAAICSJsACAAAAoKQJsAAAAAAoaQIsAAAAAEqaAAsASJX6+vro0aNHVFRURLdu3WLt2rVJl0SR+N0DQPkSYAEAqTJnzpxYs2ZNRETsvPPO0bVr14QrKm3HHHNMVFRURJcuXeKDDz5Iupx28bsHgPIlwAIAytbatWuje/fuUVFREd27dy+oo+bFF1/MPt599907s7yyV1tbGw8++GBEROy9994xaNCghCtqH797AChfAiwAoGy99NJLUVtbGxERo0ePLqijZv0QY7fdduu02jYFDz/8cKxatSoiIo466qiEq2k/v3sAKF8VmUwmk3QRAAAb45e//GV8+ctfjoiISZMmxS9/+cuEK9q0fOUrX4kbbrghIiJefvnlGD16dMIVAQBppQMLAChb06dPzz7+5Cc/mWAlm6Z77703IiJ22GEH4RUAkCgBFgBQtp5//vnsYwFWx3rhhRdi4cKFEbFpLB8EAMqbAAsAKCs/+MEPoqKiIioqKmLGjBnZ5/fee+/s800fXbt2jbq6uuwxt99+e/a1k046Kef11z/mxBNPjIiI+vr6+OMf/xgTJ06M7bbbLqqrq2OrrbaKE044IV599dVm11ixYkVcd911MX78+Ojfv39UV1fHDjvsEP/93//dpp38MplM3HvvvTFp0qTYeeedY7PNNovq6urYZptt4phjjok///nP0VnTIO65557s444IsJL+uRbyu7/xxhuzx5xxxhkRse53cP/998dJJ50UI0aMiJ49e0bfvn3jU5/6VNx0002d9vMHADZUlXQBAABt8dJLLxV87IgRI6Jbt27Zz2fOnJl9vMcee+Q8Z/1jdt1115g1a1acfPLJGyxXjIh4//33484774y//vWvcd9998WECRMiYt3g85NOOin++c9/bnD8W2+9FT/96U/jnnvuif/5n/+JLbfcssXaH3300fja174Wr732WrPX3n333bj77rvj7rvvjsMOOyx+//vfR//+/Vu8XltNnjw5IiL69u2b/d7aI+mfa1t/97vvvnvMnTs3/vM//zOeeOKJZsdOnTo1pk6dGo899ljcfvvtLXznAEBHEGABAGVlzz33jEGDBsWcOXPioYceioh1QdUhhxzS7NiP7zTX1hCjsbExxo0bF0uWLImtttoqPv3pT0fPnj1jxowZ2R3tVq9eHaeeemrMmzcvbrzxxvjqV78ajY2NMXLkyNhrr72ivr4+nnnmmfjHP/4RERH/+Mc/4jvf+U7ccssteb/Hn/3sZ/H1r389GhoaIiKiT58+MW7cuBgyZEisWbMmnn/++Wyw9cADD8Rxxx0Xf//736OysmOa699555144YUXIiLis5/9bEG7O7Ym6Z9rIb/79XcpbGxsjH322SeWLFkS/fv3j/333z+23HLLePfdd+PRRx+N1atXR0TEb37zmzj22GPjmGOOacdPBwBoVQYAoAxdeOGFmYjIRETm4osvLuiczTffPHvOokWLWj2mW7dumZ49e2Z++ctfZurr6zc47pJLLskeFxGZ888/P9OlS5fMkCFDMvfff/8Gx65Zsybz7//+79lje/XqlVm7dm3Or/+nP/0pU1FRkYmITM+ePTNXX311ZuXKlc2Ou+eeezJ9+vTJXvN3v/tdQT+DQlx//fXZ695+++0dcs2kf66t/e4bGxszffv2zR7TvXv3THV1debaa6/NrFmzZoNjFyxYkBk6dGj22OOOO66dPx0AoDUVmYyF+wBA+Zk4cWJ2mdtf//rXmDhxYovHv/3227HttttGRMTgwYPj7bffbvGYiIiePXvGo48+GnvvvXezYxsbG2PYsGHx5ptvZp/bYYcd4umnn45PfOITzY7/6KOPYosttojGxsaIiHjjjTdixx133OCYV155JfbZZ5+oqamJ/v37x0MPPRR77rln3u/pN7/5TXae02c+85m4//77W/oRFOyII46Iv/3tb9GlS5f44IMPYsCAAe26XtI/10J+92+++WbstNNO2c979OgRDzzwQIwfPz7n9/THP/4xjj/++IhYt9xw/Q4vAKDjGeIOAJSl9QODMWPGtOn4QpYPRkT85Cc/yRmyRERUVlZusESxS5cucdddd+UMWSIiBgwYsEGI07QEbX3f/OY3o6amJiLWhVMthVcREccff3x07949IiKee+65Fo8t1KpVq+KRRx6JiIhx48a1O7yKSP7nujG/+2uvvTZveBURMXr06Ozj+vr6vMcBAB1DgAUAlJ2PPvoo20UzYMCAGDJkSKvntDXEGDVqVHzpS19q8ZpNXT8RESeccEJ88pOfbPH42tra7ON+/fpt8NrDDz8cDzzwQEREHHnkkXHEEUe0eK2IiG7dusXmm28eERFLlizJzsxqjwcffDDWrFkTEdFqV1uhkvy5fvzrF/K7HzZsWJx55pktfs0lS5ZkHw8cOLDFYwGA9jPEHQAoOzNmzMg+LqT7KqLtIcapp54aFRUVLV5z3rx52cennXZai8euWrUq3nvvvYiIqK6ujq233nqD13/yk59kH69evTq+9rWvtXi9Jh9++GH2ml26dCnonJbcc8892cdHHXVUu68XkezP9eNfv5AB7oXUOGfOnOzjjy9ZBAA6ngALACg76wdY+QKJj2trgHXwwQe3eL01a9bE66+/HhHrgpNx48a1ePwrr7wSTaNHd9lllw12DFyzZk38/e9/z37+8MMPx8MPP9zi9T5uq622atPxuTQ2NsaUKVMiYt3OjsOHD2/3NSOS+7nm+vod8buPiHjppZeyj3fddddWjwcA2scSQgCg7LR1/tWKFSti/vz5ERHRp0+fnB0z6x/TrVu3VkOJl19+OTv7aNddd43q6uqNrvmFF17YYBncxhg5cmS7zo9YN0frgw8+iIiO675K8uf68a+f73e/dOnSWLBgQUREVFVVFRSKbkwXIACw8QRYAEDZaWsH1syZM7NdOrvvvnvO5WHrH7PLLrtEt27dCq6hrUPkP3783Llzs49PPPHEyGQybf7oiB0IO2v5YFI/149//ZZ+90123nnnVkOzj59TaBcgALDxBFgAQFlZvXp1dv5Qjx49Cuo8ausSskKCk7YGLS0dv3jx4uzjJAeCT548OSLWDcZvbeleoZL8uX786xcy/6q1gfEREW+88UYsW7YsIiJ22GGH6N+/f6vnAADtI8ACAMrKK6+8kt1tb/To0QUNLm9rgFVIiLF+cNLa8Y2NjfHyyy9HRERlZWXstttuG7y+/vewdOnSVr92Z5g/f3688sorERHxuc99rkMGwkck+3P9+NdPKrwEANpPgAUAlJX1d3/bZZddCjqno0OMhoaG7BDvLl265AxO1vf6669HTU1NREQMGzYsevfuvcHr6w9gf/LJJ7NL3oqpqfsqImLixIkddt0kf64f//qdEV4KsACgOARYAEBZWX+5Xd++fVs9vr6+Pl599dWIWDege/To0S0eU1lZGbvvvnuL15w9e3asXr06Itbt1tejR48Wj28txBk/fnz28RtvvBE333xzi9db3z//+c+Cj21J0/yrrl27xmc+85kOuWbSP9dCf/evvfZaRERUVFQY4A4AJUqABQCUlfVDq4ceeqjV3ftmzZqVPWbkyJE5B3Svf8ywYcOiV69eLV6zoweNb7PNNnHEEUdkP//qV78aP/rRj6Kuri7n9WpqauKuu+6KI488Ms4777xWv35rli9fHk888URERBxwwAEFBYOFSPrnWsjv/rXXXsv+nPN1cbW3TgCg/aqSLgAAoC0mTJgQlZWV0djYGK+99loMHTo0Pv3pT8dmm22WPeaiiy6KLbbYIiKSn3/18evnCzx+/OMfx//8z//EokWLoq6uLs4555y45JJL4lOf+lR84hOfiIaGhli2bFm8/vrrMXv27Fi7dm1ERFx99dWtfv3W3H///dnrddTugxHJ/1w7Y4D7P//5z3jvvfciImLQoEGx9dZbt3oOANB+AiwAoKzsuOOO8a1vfSuuvPLKiIhYuHBh/O53v8u+3r179/jRj36U/bwUhngXUsNOO+0Ujz76aJxwwgnZYeofffRR3HvvvXmvu8UWW8SECRNa/fqtaVo+GNF5AVYSP9dS+N0DAB1DgAUAlJ0rrrgi9tlnn7jxxhvj+eefj8WLF0d9fX1EROy2225RVfWvP+Ks32FTSBdORwVSTd5///14//33I2LdUsGmzrBcRo8eHTNmzIi77747/vznP8f06dPjvffei5qamujRo0dsscUWMXTo0Bg7dmwcfPDBMWHChA2+143R0NAQ9913X0RE7LrrrrH99tu363rrS/rn2tbffVu7xAqZlwUAdIyKTBLb3AAAUBIef/zxOOCAAyIi4oILLohLL7002YIAAHIwxB0AIMUmT56cfTxx4sQEKwEAyE8HFgBAio0YMSJef/312HLLLeOf//xnVFRUJF0SAEAzAiwAAAAASpolhAAAAACUNAEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAQEkTYAEAAABQ0gRYAAAAAJQ0ARYAAAAAJU2ABQAAAEBJE2ABAAAAUNIEWAAAAACUNAEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAQEkTYAEAAABQ0gRYAAAAAJQ0ARYAAAAAJU2ABQAAAEBJE2ABAAAAUNIEWAAAAACUNAEWAAAAACVNgAUAAABASRNgAQAAAFDSBFgAAAAAlDQBFgAAAAAlTYAFAAAAQEkTYAEAAABQ0gRYAAAAAJS0/x8UAhovuCekEwAAAABJRU5ErkJggg==", - "text/html": [ - "\n", - "
\n", - "
\n", - " Figure\n", - "
\n", - " \n", - "
\n", - " " - ], - "text/plain": [ - "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "res = sim.simulate(guiprocess)\n", - "res.solution.GRM.outlet.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4535001e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['total_porosity',\n", - " 'length',\n", - " 'diameter',\n", - " 'axial_dispersion',\n", - " 'length',\n", - " 'diameter',\n", - " 'axial_dispersion']" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "column." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "3be6d53a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'feed': {'inlet': ,\n", - " 'outlet': },\n", - " 'eluent': {'inlet': ,\n", - " 'outlet': },\n", - " 'GRM': {'inlet': ,\n", - " 'outlet': },\n", - " 'outlet': {'inlet': ,\n", - " 'outlet': }}" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "res = sim.simulate(guiprocess)\n", - "res.solution" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "id": "4223037f", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "solmap type: \n", - "unit keys: ['feed', 'eluent', 'GRM', 'outlet']\n", - "unit time type: \n", - "global time type: \n", - "t.shape: ()\n", - "data.shape: (101, 1)\n" - ] - } - ], - "source": [ - "u, p = \"GRM\", \"outlet\" # pick any unit/port you like\n", - "\n", - "res = sim.simulate(guiprocess)\n", - "solmap = res.solution\n", - "\n", - "print(\"solmap type:\", type(solmap))\n", - "print(\"unit keys:\", list(solmap.keys())[:10])\n", - "\n", - "# --- TIME: try unit, then global\n", - "unit_time_obj = getattr(solmap[u], \"time\", None)\n", - "global_time_obj = getattr(solmap, \"time\", None)\n", - "\n", - "def extract_values(x):\n", - " if x is None: return None\n", - " if isinstance(x, dict) and \"values\" in x: return x[\"values\"]\n", - " return getattr(x, \"values\", None) if hasattr(x, \"values\") else x\n", - "\n", - "t_unit = extract_values(unit_time_obj)\n", - "t_global = extract_values(global_time_obj)\n", - "\n", - "print(\"unit time type:\", type(t_unit))\n", - "print(\"global time type:\", type(t_global))\n", - "\n", - "import numpy as np\n", - "t = np.asarray(t_unit if t_unit is not None else t_global)\n", - "print(\"t.shape:\", getattr(t, \"shape\", None))\n", - "\n", - "# --- DATA\n", - "io = solmap[u][p]\n", - "data_obj = getattr(io, \"solution\", None)\n", - "data = np.asarray(getattr(data_obj, \"values\", data_obj))\n", - "print(\"data.shape:\", getattr(data, \"shape\", None))\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4814cfd2", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "cadet_dev", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tests/test_widgets.py b/tests/test_widgets.py deleted file mode 100644 index 1a6b2a0..0000000 --- a/tests/test_widgets.py +++ /dev/null @@ -1,104 +0,0 @@ -from __future__ import annotations -import pytest -import ipywidgets as W - -from cadetgui.widgets.elements import ( - BaseWidget, - TextField, - FloatField, - BoolField, - Display, - Popup, - ConfigurationWidget, -) - - -def test_basewidget_is_abstract(): - with pytest.raises(TypeError): - BaseWidget() # type: ignore[call-arg] - - -class Demo(BaseWidget): - def _build_body(self) -> W.Widget: - return W.Label("body") - - -def test_basewidget_concrete_builds_container(): - w = Demo(title="DemoTitle") - assert isinstance(w.root, W.VBox) - assert len(w.root.children) == 3 - header, body, status = w.root.children - assert isinstance(header, W.HTML) - assert "DemoTitle" in header.value - assert isinstance(body, W.Label) - assert isinstance(status, W.HTML) - assert "Ready." in status.value - - -def test_display_no_raise_if_ipython_available(): - ip = pytest.importorskip("IPython") - w = Demo() - w.display() - - -def test_textfield_get_set(): - tf = TextField(label="Name", value="Alice") - assert tf.get_value() == "Alice" - tf.set_value(123) # coerces to str - assert tf.get_value() == "123" - - -def test_floatfield_get_set(): - ff = FloatField(label="K", value=1.5) - assert ff.get_value() == pytest.approx(1.5) - ff.set_value("2.75") - assert ff.get_value() == pytest.approx(2.75) - - -def test_boolfield_get_set(): - bf = BoolField(label="Flag", value=False) - assert bf.get_value() is False - bf.set_value(1) - assert bf.get_value() is True - - -def test_display_constructs_html(): - d = Display(html="Hi") - assert isinstance(d.widget, W.HTML) - assert "Hi" in d.widget.value - - -def test_popup_open_close(): - p = Popup(title="Info") - assert isinstance(p.widget, W.Accordion) - # closed by default - assert p.widget.selected_index is None - p.open() - assert p.widget.selected_index == 0 - p.close() - assert p.widget.selected_index is None - - -def test_configuration_widget_add_fields_and_values(): - cfg = ConfigurationWidget(title="Cfg") - # add fields - cfg.add_field("name", TextField(label="Name")) - cfg.add_field("alpha", FloatField(label="Alpha", value=0.1)) - cfg.add_field("active", BoolField(label="Active")) - # layout should contain form + actions - assert len(cfg.root.children) == 3 # header, body, status - body = cfg.root.children[1] - assert isinstance(body, W.VBox) - # inner VBox children: form_box and actions - form_box, actions = body.children - assert isinstance(form_box, W.VBox) - assert isinstance(actions, W.HBox) - # fields show up in form - assert len(form_box.children) == 3 - - # set/get values - cfg.set_values({"name": "col1", "alpha": 0.42, "active": True}) - values = cfg.get_values() - assert values["name"] == "col1" - assert values["alpha"] == pytest.approx(0.42) - assert values["active"] is True From 738787048e0956d24e5b9d22e61a2047284b134f Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 14:04:40 +0200 Subject: [PATCH 030/158] Rename fields in configuration widget --- cadetgui/widgets/composite/configuration.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index b04d511..286de75 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -43,8 +43,8 @@ def __init__( self._model_form: Optional[FormRenderer] = None self._components = W.BoundedIntText(description="Components:", value=1, min=1, max=99) - self._column_picker = ChoiceField(label="Column:", options=list(self._columns.items())) - self._model_picker = ChoiceField(label="Model:", options=list(self._registry.items())) + self._column_picker = ChoiceField(label="Column Model:", options=list(self._columns.items())) + self._model_picker = ChoiceField(label="Process Template:", options=list(self._registry.items())) self._column_form_box = W.VBox([]) self._model_form_box = W.VBox([]) From 8d30829453dd0ea8d7df5ae35eb43666f1db270a Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 14:13:36 +0200 Subject: [PATCH 031/158] Add tab structure for web app view --- examples/webapp/README.md | 24 +++++++++++++++--------- examples/webapp/app.ipynb | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/examples/webapp/README.md b/examples/webapp/README.md index aec682d..1eecc29 100644 --- a/examples/webapp/README.md +++ b/examples/webapp/README.md @@ -2,10 +2,16 @@ `app.ipynb` renders `ConfigurationWidget`, `SolutionWidget` (with its built-in run history), and `DataImportWidget` — the exact same widgets used in -`examples/configuration_and_solution.ipynb` — composed into a one-page layout, -served via [Voilà](https://voila.readthedocs.io/). Try uploading -`examples/data/example_uv_signal.csv` (a synthetic UV trace generated for these -examples) in the data card to see it overlaid on a simulation run. +`examples/configuration_and_solution.ipynb` — composed into three tabs +(**Configuration** / **Solution** / **Analysis**), served via +[Voilà](https://voila.readthedocs.io/). `DataImportWidget` lives under +**Analysis**, not alongside Solution — that's a deliberate separation, not a +demotion: comparison/analysis is its own concern, distinct from running and +viewing a single simulation, even though it visually overlays onto Solution's +plot. Try uploading `examples/data/example_uv_signal.csv` (a synthetic UV trace +generated for these examples) there to see it overlaid on a simulation run — +switching tabs doesn't lose anything; a plot rendered on one tab is still there +when you switch back. ## Run it @@ -15,11 +21,11 @@ voila examples/webapp/app.ipynb ``` Then open the URL Voilà prints (defaults to `http://localhost:8866`). What you -get is a plain web page — no notebook UI, no code, no cell boundaries, just the -widgets in a styled two-column layout with a header. Anyone visiting the URL in -a browser sees a website; the `.ipynb` file is just this app's source format -(convenient because it's also directly editable/runnable in JupyterLab), not -something end users interact with. +get is a plain web page — no notebook UI, no code, no cell boundaries, just a +header and three tabs. Anyone visiting the URL in a browser sees a website; the +`.ipynb` file is just this app's source format (convenient because it's also +directly editable/runnable in JupyterLab), not something end users interact +with. ## Why this proves anything diff --git a/examples/webapp/app.ipynb b/examples/webapp/app.ipynb index 91daf01..81e3a67 100644 --- a/examples/webapp/app.ipynb +++ b/examples/webapp/app.ipynb @@ -3,7 +3,7 @@ { "cell_type": "code", "id": "a9463514", - "source": "import ipywidgets as W\nfrom IPython.display import display\n\nfrom cadetgui.widgets.composite import ConfigurationWidget, DataImportWidget, SolutionWidget\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\ndata = DataImportWidget()\nsolution.bind_to_data(data)\n\nconfig_card = W.VBox([config.root])\nconfig_card.add_class(\"cadetgui-card\")\nsolution_card = W.VBox([solution.root])\nsolution_card.add_class(\"cadetgui-card\")\n\ncolumns = W.HBox([config_card, solution_card])\ncolumns.add_class(\"cadetgui-app-columns\")\n\ndata_card = W.VBox([data.root])\ndata_card.add_class(\"cadetgui-card\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, columns, data_card])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)", + "source": "import ipywidgets as W\nfrom IPython.display import display\n\nfrom cadetgui.widgets.composite import ConfigurationWidget, DataImportWidget, SolutionWidget\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\n# Analysis: import experimental data and compare it against a simulation run.\ndata = DataImportWidget()\nsolution.bind_to_data(data)\n\n\ndef tab_page(widget_root):\n page = W.VBox([widget_root])\n page.add_class(\"cadetgui-tab-page\")\n return page\n\n\ntabs = W.Tab(children=[tab_page(config.root), tab_page(solution.root), tab_page(data.root)])\ntabs.set_title(0, \"Configuration\")\ntabs.set_title(1, \"Solution\")\ntabs.set_title(2, \"Analysis\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, tabs])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)", "metadata": {}, "execution_count": null, "outputs": [] From 58da442c6cf9eea6ca1ca735e914f5798cebafb6 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 14:29:24 +0200 Subject: [PATCH 032/158] Add binding model picker to configuration widget --- cadetgui/cadetprocessadapter.py | 73 ++++++++++++++-- cadetgui/widgets/composite/configuration.py | 95 +++++++++++++++++---- tests/test_configuration.py | 70 +++++++++++++++ 3 files changed, 214 insertions(+), 24 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index dc7034d..a9e7bb4 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -5,12 +5,17 @@ from CADETProcess.modelBuilder import LWE, BatchElution from CADETProcess.processModel import ( + BindingBaseClass, ChromatographicColumnBase, ComponentSystem, Cstr, GeneralRateModel, + Langmuir, + Linear, LumpedRateModelWithoutPores, LumpedRateModelWithPores, + NoBinding, + StericMassAction, ) FieldKind = str @@ -157,6 +162,34 @@ def make_cstr(cs: ComponentSystem) -> ChromatographicColumnBase: } +BindingFactory = Callable[[ComponentSystem], BindingBaseClass] + + +def make_no_binding(cs: ComponentSystem) -> BindingBaseClass: + return NoBinding(cs, name="NoBinding") + + +def make_linear_binding(cs: ComponentSystem) -> BindingBaseClass: + return Linear(cs, name="Linear") + + +def make_langmuir_binding(cs: ComponentSystem) -> BindingBaseClass: + return Langmuir(cs, name="Langmuir") + + +def make_sma_binding(cs: ComponentSystem) -> BindingBaseClass: + return StericMassAction(cs, name="StericMassAction") + + +# "None" first so a ChoiceField over this dict defaults to it, matching +# CADET-Process's own default (an unconfigured column already has NoBinding). +DEFAULT_BINDING_FACTORIES: Dict[str, BindingFactory] = { + "None": make_no_binding, + "Linear": make_linear_binding, + "Langmuir": make_langmuir_binding, + "Steric Mass Action (SMA)": make_sma_binding, +} + PARAM_TYPE_OVERRIDES: Dict[str, FieldKind] = {} @@ -180,6 +213,22 @@ def _unique_preserve_order(names: Sequence[str]) -> list[str]: "particle_porosity": {"kind": "float", "default": 0.6, "min": 0.0, "max": 1.0}, "particle_radius": {"kind": "float", "default": 5.0e-6, "min": 0.0, "units": "m"}, "axial_dispersion": {"kind": "float", "default": 1e-8, "min": 0.0, "units": "m^2/s"}, + + # Binding-model parameters. Bounds/units sourced from CADET-Core's binding + # model docs (cadet.github.io/master/interface/binding/{linear, + # multi_component_langmuir,steric_mass_action}.html), not invented — see + # ai-docs/ARCHITECTURE.md's "no inventing bounds" rule. + # + # `adsorption_rate`'s unit differs by model (Langmuir: m^3/(mol*s); Linear + # and SMA: m^3_MP/m^3_SP/s) — left unspecified since this schema is shared + # across binding model types and picking one would be wrong for the others. + # `desorption_rate` (1/s) and `capacity` (mol/m^3) are consistent across + # every model that uses them, so those do get a unit. + "adsorption_rate": {"kind": "float", "min": 0.0}, + "desorption_rate": {"kind": "float", "min": 0.0, "units": "1/s"}, + "capacity": {"kind": "float", "min": 0.0, "units": "mol/m^3"}, + "characteristic_charge": {"kind": "float", "min": 0.0}, + "steric_factor": {"kind": "float", "min": 0.0}, } @@ -208,14 +257,20 @@ def _coerce_to_kind(kind: str, val): return float(val) -def build_column_config_spec(column: ChromatographicColumnBase) -> ModelSpec: - req = getattr(column, "required_parameters", None) or [] +def build_parameter_config_spec(obj: Any) -> ModelSpec: + """Build a ModelSpec from any object exposing `required_parameters`. + + Generic over what `obj` is — a column, a binding model, anything with the + CADET-Process `required_parameters` convention — so the same function + drives both the column form and the binding-model form. + """ + req = getattr(obj, "required_parameters", None) or [] names = _unique_preserve_order(list(req)) fields: list[FieldSpec] = [] for name in names: - col_val = getattr(column, name, None) - default, kind, transform, bounds, units = _resolve_param(name, col_val) + current_val = getattr(obj, name, None) + default, kind, transform, bounds, units = _resolve_param(name, current_val) label = name.replace("_", " ").capitalize() fs_kwargs = dict(name=name, kind=kind, label=label, default=default, transform=transform, **bounds) if units is not None: @@ -231,18 +286,18 @@ def _apply(values: Mapping[str, Any]) -> Any: schema_kind = PARAM_SCHEMA.get(name, {}).get("kind") kind = schema_kind or PARAM_TYPE_OVERRIDES.get(name) # keep if you still have it if kind is None: - # last-resort inference from current column value - cur = getattr(column, name, None) + # last-resort inference from current value + cur = getattr(obj, name, None) kind = _infer_kind(cur) coerced = _coerce_to_kind(kind, values[name]) - setattr(column, name, coerced) + setattr(obj, name, coerced) except Exception: # swallow and continue so one bad value doesn't block the rest continue - return column + return obj return ModelSpec( - title=f"Configure {column.__class__.__name__}", + title=f"Configure {obj.__class__.__name__}", fields=fields, build=_apply, # <- pass the function directly; it takes (values) ) diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 286de75..9760d35 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -9,9 +9,10 @@ from CADETProcess.processModel import ComponentSystem from ...cadetprocessadapter import ( + DEFAULT_BINDING_FACTORIES, DEFAULT_COLUMN_FACTORIES, MODEL_REGISTRY, - build_column_config_spec, + build_parameter_config_spec, ) from .._chrome import style_tag from ..elements import ChoiceField @@ -21,11 +22,12 @@ class ConfigurationWidget: - """Pick a unit operation + model-builder template, configure both, build a process. + """Pick a unit operation + binding model + model-builder template, build a process. - Rebuilds its forms whenever the component count, column, or model selection - changes. `.process` holds the latest successfully-built object; `add_listener` - registers a callback that fires with it on every successful build. + Rebuilds its forms whenever the component count, column, binding model, or + process-template selection changes. `.process` holds the latest + successfully-built object; `add_listener` registers a callback that fires + with it on every successful build. """ def __init__( @@ -33,20 +35,32 @@ def __init__( *, registry: Optional[Dict[str, Callable[[Any], Any]]] = None, columns: Optional[Dict[str, Callable[[ComponentSystem], Any]]] = None, + binding_registry: Optional[Dict[str, Callable[[ComponentSystem], Any]]] = None, ) -> None: self._registry = registry or MODEL_REGISTRY self._columns = columns or DEFAULT_COLUMN_FACTORIES + self._binding_registry = binding_registry or DEFAULT_BINDING_FACTORIES self._column_cache: Dict[Any, Any] = {} + self._binding_cache: Dict[Any, Any] = {} self._listeners: List[Callable[[Any], None]] = [] self.process: Any = None self._column_form: Optional[FormRenderer] = None + self._binding_form: Optional[FormRenderer] = None self._model_form: Optional[FormRenderer] = None self._components = W.BoundedIntText(description="Components:", value=1, min=1, max=99) - self._column_picker = ChoiceField(label="Column Model:", options=list(self._columns.items())) - self._model_picker = ChoiceField(label="Process Template:", options=list(self._registry.items())) + self._column_picker = ChoiceField( + label="Column Model:", options=list(self._columns.items()) + ) + self._binding_picker = ChoiceField( + label="Binding Model:", options=list(self._binding_registry.items()) + ) + self._model_picker = ChoiceField( + label="Process Template:", options=list(self._registry.items()) + ) self._column_form_box = W.VBox([]) + self._binding_form_box = W.VBox([]) self._model_form_box = W.VBox([]) self.status = W.HTML("Select a column and model.") self.status.add_class("cadetgui-status") @@ -56,7 +70,7 @@ def __init__( self._script_out.add_class("cadetgui-script") toolbar = W.HBox( - [self._components, self._column_picker, self._model_picker], + [self._components, self._column_picker, self._binding_picker, self._model_picker], layout=W.Layout(flex_flow="row wrap"), ) toolbar.add_class("cadetgui-toolbar") @@ -67,6 +81,7 @@ def __init__( W.HTML("
Configuration
"), toolbar, self._column_form_box, + self._binding_form_box, self._model_form_box, self._btn_export, self._script_out, @@ -77,6 +92,7 @@ def __init__( self._components.observe(self._on_components_change, names="value") self._column_picker.observe(self._on_selection_change, names="selected_index") + self._binding_picker.observe(self._on_selection_change, names="selected_index") self._model_picker.observe(self._on_selection_change, names="selected_index") self._btn_export.on_click(self._on_export) @@ -99,10 +115,27 @@ def _get_column(self) -> Any: self._column_cache[factory] = factory(cs) return self._column_cache[factory] + def _get_binding_model(self) -> Any: + factory = self._binding_picker.value + column = self._get_column() + if factory is None or column is None: + return None + # Keyed by (factory, id(column)) rather than just factory: a binding + # model's component_system must be the *same object* as its column's + # (CADET-Process raises "Component systems do not match" otherwise), + # and each distinct column instance gets its own ComponentSystem — so + # a binding model cached against a since-replaced column would no + # longer be attachable to the current one. + cache_key = (factory, id(column)) + if cache_key not in self._binding_cache: + self._binding_cache[cache_key] = factory(column.component_system) + return self._binding_cache[cache_key] + def _on_components_change(self, change: dict) -> None: if change.get("name") != "value": return self._column_cache.clear() + self._binding_cache.clear() self._rebuild_forms() def _on_selection_change(self, change: dict) -> None: @@ -117,40 +150,64 @@ def _on_process_built(self, built: Any) -> None: def _rebuild_forms(self) -> None: column = self._get_column() + binding_model = self._get_binding_model() model_fn = self._model_picker.value - if column is None or model_fn is None: + if column is None or binding_model is None or model_fn is None: self._column_form_box.children = () + self._binding_form_box.children = () self._model_form_box.children = () return - self._column_form = FormRenderer(build_column_config_spec(column)) + self._column_form = FormRenderer(build_parameter_config_spec(column)) self._column_form_box.children = (self._column_form.root,) + def _attach_binding(built: Any, col: Any = column) -> None: + col.binding_model = built + + self._binding_form = FormRenderer( + build_parameter_config_spec(binding_model), on_built=_attach_binding + ) + self._binding_form_box.children = (self._binding_form.root,) + self._model_form = FormRenderer(model_fn(column), on_built=self._on_process_built) self._model_form_box.children = (self._model_form.root,) - self.status.value = "Configure the column, then the model, and Apply each." + self.status.value = ( + "Configure the column, binding model, and process, then Apply each" + " (in that order — the process picks up whatever's applied on column" + " and binding model at the time)." + ) def export_script(self) -> str: """Generate an executable CADET-Process Python script for the current build. Introspects the actual built objects' classes (`type(obj).__module__` / - `__name__`) rather than a hardcoded column/model name mapping, so this - works for any column or model registered — no per-type special-casing + `__name__`) rather than a hardcoded column/model/binding name mapping, so + this works for anything registered — no per-type special-casing (PRODUCT_VISION.md ARCH-003: the "expert escape hatch"/anti-black-box requirement). """ - if self.process is None or self._column_form is None or self._model_form is None: - raise RuntimeError("Nothing built yet — Apply both the column and model forms first.") + if ( + self.process is None + or self._column_form is None + or self._binding_form is None + or self._model_form is None + ): + raise RuntimeError( + "Nothing built yet — Apply the column, binding model, and process forms first." + ) column = self._get_column() + binding_model = self._get_binding_model() cs_cls = ComponentSystem col_cls = type(column) + bind_cls = type(binding_model) proc_cls = type(self.process) lines = [ f"from {cs_cls.__module__} import {cs_cls.__name__}", f"from {col_cls.__module__} import {col_cls.__name__}", + f"from {bind_cls.__module__} import {bind_cls.__name__}", f"from {proc_cls.__module__} import {proc_cls.__name__}", "", f"component_system = {cs_cls.__name__}({self._components.value})", @@ -160,6 +217,14 @@ def export_script(self) -> str: for name, value in self._column_form.collect_values().items(): lines.append(f"column.{name} = {value!r}") + lines.append("") + lines.append( + f"column.binding_model = {bind_cls.__name__}(" + f"component_system, name={binding_model.name!r})" + ) + for name, value in self._binding_form.collect_values().items(): + lines.append(f"column.binding_model.{name} = {value!r}") + lines.append("") lines.append(f"process = {proc_cls.__name__}(") lines.append(" column=column,") diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 0fee9df..c0fd125 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -108,3 +108,73 @@ def test_export_script_button_populates_textarea_on_success(): assert "process = " in cw._script_out.value assert cw._script_out.layout.display == "" assert "generated" in cw.status.value.lower() + + +def test_binding_model_defaults_to_none_matching_cadetprocess_default(): + cw = ConfigurationWidget() + assert cw._binding_picker.option_labels[0] == "None" + assert cw._binding_form.spec.fields == [] # NoBinding has no required_parameters + + +def test_switching_binding_model_rebuilds_its_form(): + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["Langmuir"] + assert {f.name for f in cw._binding_form.spec.fields} == { + "adsorption_rate", + "desorption_rate", + "capacity", + } + + +def test_applying_binding_form_attaches_it_to_the_column(): + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["Linear"] + cw._binding_form._on_apply(None) + + column = cw._get_column() + assert type(column.binding_model).__name__ == "Linear" + + +def test_switching_column_type_keeps_binding_model_attachable(): + """Regression test: binding model and column must share one ComponentSystem + instance (CADET-Process rejects a mismatch), and each column factory gets + its own fresh ComponentSystem — so a binding model cached against a + since-replaced column must not be reused as-is.""" + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["Linear"] + cw._binding_form._on_apply(None) + + cw._column_picker.value = cw._columns["LRMP"] # different column, different ComponentSystem + cw._binding_form._on_apply(None) # must not raise / must not fail validation + + assert cw._binding_form.built is not None + assert "Built successfully" in cw._binding_form.status.value + column = cw._get_column() + assert type(column.binding_model).__name__ == "Linear" + assert column.binding_model.component_system is column.component_system + + +def test_export_script_includes_binding_model_and_round_trips(): + import numpy as np + from cadetgui.simulation import run_process + + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["Linear"] + cw._column_form._on_apply(None) + cw._binding_form._on_apply(None) + cw._model_form._on_apply(None) + + script = cw.export_script() + assert "column.binding_model = Linear(" in script + + ns = {} + exec(compile(script, "", "exec"), ns) # noqa: S102 + assert type(ns["column"].binding_model).__name__ == "Linear" + + res_widget = run_process(cw.process) + res_script = run_process(ns["process"]) + unit = next(iter(res_widget.solution)) + assert np.array_equal( + res_widget.solution[unit]["outlet"].solution, + res_script.solution[unit]["outlet"].solution, + ) From 885f2c845e134a83cb65f8b5089b0d0039910728 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 14:37:15 +0200 Subject: [PATCH 033/158] Add component picker --- cadetgui/widgets/composite/configuration.py | 12 ++- cadetgui/widgets/elements/__init__.py | 2 + cadetgui/widgets/elements/_shared.css | 11 +++ .../widgets/elements/component_list_field.js | 99 +++++++++++++++++++ .../widgets/elements/component_list_field.py | 38 +++++++ tests/test_configuration.py | 55 ++++++++++- tests/test_elements.py | 24 +++++ 7 files changed, 235 insertions(+), 6 deletions(-) create mode 100644 cadetgui/widgets/elements/component_list_field.js create mode 100644 cadetgui/widgets/elements/component_list_field.py diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 9760d35..38f8c99 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -15,7 +15,7 @@ build_parameter_config_spec, ) from .._chrome import style_tag -from ..elements import ChoiceField +from ..elements import ChoiceField, ComponentListField from ..forms import FormRenderer __all__ = ["ConfigurationWidget"] @@ -48,7 +48,7 @@ def __init__( self._binding_form: Optional[FormRenderer] = None self._model_form: Optional[FormRenderer] = None - self._components = W.BoundedIntText(description="Components:", value=1, min=1, max=99) + self._components = ComponentListField(label="Components:") self._column_picker = ChoiceField( label="Column Model:", options=list(self._columns.items()) ) @@ -69,8 +69,11 @@ def __init__( self._script_out = W.Textarea(layout=W.Layout(width="100%", height="220px", display="none")) self._script_out.add_class("cadetgui-script") + components_section = W.VBox([self._components]) + components_section.add_class("cadetgui-section") + toolbar = W.HBox( - [self._components, self._column_picker, self._binding_picker, self._model_picker], + [self._column_picker, self._binding_picker, self._model_picker], layout=W.Layout(flex_flow="row wrap"), ) toolbar.add_class("cadetgui-toolbar") @@ -79,6 +82,7 @@ def __init__( [ W.HTML(style_tag()), W.HTML("
Configuration
"), + components_section, toolbar, self._column_form_box, self._binding_form_box, @@ -210,7 +214,7 @@ def export_script(self) -> str: f"from {bind_cls.__module__} import {bind_cls.__name__}", f"from {proc_cls.__module__} import {proc_cls.__name__}", "", - f"component_system = {cs_cls.__name__}({self._components.value})", + f"component_system = {cs_cls.__name__}({self._components.value!r})", "", f"column = {col_cls.__name__}(component_system, name={column.name!r})", ] diff --git a/cadetgui/widgets/elements/__init__.py b/cadetgui/widgets/elements/__init__.py index 8fafded..3592bb6 100644 --- a/cadetgui/widgets/elements/__init__.py +++ b/cadetgui/widgets/elements/__init__.py @@ -8,6 +8,7 @@ from .base import Element from .bool_field import BoolField from .choice_field import ChoiceField +from .component_list_field import ComponentListField from .float_field import FloatField from .float_list_field import FloatListField from .text_field import TextField @@ -19,4 +20,5 @@ "BoolField", "FloatListField", "ChoiceField", + "ComponentListField", ] diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index f8ac9e5..c45bb01 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -131,3 +131,14 @@ .cadetgui-field-list-add { width: fit-content; } + +.cadetgui-field-list-controls { + display: flex; + align-items: center; + gap: 0.6rem; +} + +.cadetgui-field-count { + color: var(--cg-muted); + font-size: 12px; +} diff --git a/cadetgui/widgets/elements/component_list_field.js b/cadetgui/widgets/elements/component_list_field.js new file mode 100644 index 0000000..2efcdc5 --- /dev/null +++ b/cadetgui/widgets/elements/component_list_field.js @@ -0,0 +1,99 @@ +function render({ model, el }) { + const wrap = document.createElement("div"); + wrap.className = "cadetgui-field cadetgui-field-list"; + + const labelEl = document.createElement("span"); + labelEl.className = "cadetgui-field-label"; + labelEl.textContent = model.get("label"); + wrap.appendChild(labelEl); + + const body = document.createElement("div"); + body.className = "cadetgui-field-list-body"; + const rows = document.createElement("div"); + body.appendChild(rows); + + const counter = document.createElement("span"); + counter.className = "cadetgui-field-count"; + + function currentNames() { + return Array.from(rows.querySelectorAll("input")).map((i) => i.value); + } + + function updateCounter() { + const n = rows.children.length; + counter.textContent = `${n} component${n === 1 ? "" : "s"}`; + } + + function commit() { + model.set("value", currentNames()); + model.save_changes(); + updateCounter(); + } + + function addRow(name) { + const row = document.createElement("div"); + row.className = "cadetgui-field-list-row"; + + const input = document.createElement("input"); + input.type = "text"; + input.value = name; + input.addEventListener("change", commit); + row.appendChild(input); + + const rm = document.createElement("button"); + rm.type = "button"; + rm.textContent = "−"; + rm.title = "Remove component"; + rm.addEventListener("click", () => { + if (rows.children.length <= 1) return; // always keep at least one + row.remove(); + commit(); + }); + row.appendChild(rm); + + rows.appendChild(row); + } + + function syncFromModel() { + rows.innerHTML = ""; + const names = model.get("value") || []; + (names.length ? names : ["Component 1"]).forEach((n) => addRow(n)); + updateCounter(); + } + + const addBtn = document.createElement("button"); + addBtn.type = "button"; + addBtn.className = "cadetgui-field-list-add"; + addBtn.textContent = "+ Add component"; + addBtn.addEventListener("click", () => { + addRow(`Component ${rows.children.length + 1}`); + commit(); + }); + + const controls = document.createElement("div"); + controls.className = "cadetgui-field-list-controls"; + controls.appendChild(addBtn); + controls.appendChild(counter); + body.appendChild(controls); + wrap.appendChild(body); + + const err = document.createElement("span"); + err.className = "cadetgui-field-error"; + const syncError = () => { + const msg = model.get("error"); + err.textContent = msg; + err.hidden = !msg; + }; + wrap.appendChild(err); + + syncFromModel(); + syncError(); + + model.on("change:value", syncFromModel); + model.on("change:error", syncError); + model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + + el.appendChild(wrap); +} + +export default { render }; diff --git a/cadetgui/widgets/elements/component_list_field.py b/cadetgui/widgets/elements/component_list_field.py new file mode 100644 index 0000000..2c30205 --- /dev/null +++ b/cadetgui/widgets/elements/component_list_field.py @@ -0,0 +1,38 @@ +# ========================================= +# File: cadetgui/widgets/elements/component_list_field.py +# ========================================= +from __future__ import annotations + +from pathlib import Path +from typing import List, Optional, Sequence + +import traitlets as T + +from .base import Element, Validator + +__all__ = ["ComponentListField"] + +_DIR = Path(__file__).parent + + +class ComponentListField(Element): + """Editable list of named components: add/remove/rename rows, live count. + + Defaults to one component ("Component 1") — always at least one, since a + `ComponentSystem` with zero components isn't meaningful. + """ + + value = T.List(T.Unicode()).tag(sync=True) + + _esm = _DIR / "component_list_field.js" + _css = _DIR / "_shared.css" + + def __init__( + self, + *, + label: str = "", + value: Optional[Sequence[str]] = None, + validate: Optional[Validator] = None, + ) -> None: + names: List[str] = list(value) if value else ["Component 1"] + super().__init__(label=label, value=names, validate=validate) diff --git a/tests/test_configuration.py b/tests/test_configuration.py index c0fd125..973c4b9 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -49,10 +49,11 @@ def test_configuration_widget_rebuilds_column_on_component_change(): original_column = cw._get_column() assert original_column.n_comp == 1 - cw._components.value = 2 + cw._components.value = ["Salt", "Protein"] new_column = cw._get_column() assert new_column is not original_column assert new_column.n_comp == 2 + assert list(new_column.component_system.names) == ["Salt", "Protein"] # the stale 1-component column must not linger in the cache assert original_column not in cw._column_cache.values() @@ -86,7 +87,8 @@ def test_export_script_produces_executable_equivalent_process(): assert type(ns["process"]) is type(cw.process) assert type(ns["column"]) is type(cw._get_column()) - assert ns["component_system"].n_comp == cw._components.value + assert ns["component_system"].n_comp == len(cw._components.value) + assert list(ns["component_system"].names) == cw._components.value from cadetgui.simulation import run_process @@ -178,3 +180,52 @@ def test_export_script_includes_binding_model_and_round_trips(): res_widget.solution[unit]["outlet"].solution, res_script.solution[unit]["outlet"].solution, ) + + +def test_components_field_defaults_to_one_named_component(): + cw = ConfigurationWidget() + assert cw._components.value == ["Component 1"] + assert cw._get_column().n_comp == 1 + assert list(cw._get_column().component_system.names) == ["Component 1"] + + +def test_renaming_components_rebuilds_column_with_new_names(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein"] + + column = cw._get_column() + assert column.n_comp == 2 + assert list(column.component_system.names) == ["Salt", "Protein"] + + +def test_binding_model_scales_to_multiple_named_components(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein"] + cw._binding_picker.value = cw._binding_registry["Linear"] + cw._column_form._on_apply(None) + cw._binding_form._on_apply(None) + + column = cw._get_column() + assert column.binding_model.n_comp == 2 + assert cw._binding_form.status.value == "Built successfully." + # NOTE: applying the model form itself (batch_elution_spec/lwe_spec) is not + # exercised with >1 component here — those specs hard-code single-value + # concentration defaults (e.g. c_feed=[10.0]) that CADET-Process rejects + # for n_comp != 1. Pre-existing adapter-layer limitation, unrelated to + # component naming; column/binding config already scale correctly, as + # this test shows. See ai-docs/REQUIREMENTS.md. + + +def test_export_script_reflects_a_renamed_single_component(): + cw = ConfigurationWidget() + cw._components.value = ["MyProtein"] # still one component, just renamed + cw._column_form._on_apply(None) + cw._binding_form._on_apply(None) + cw._model_form._on_apply(None) + + script = cw.export_script() + assert "component_system = ComponentSystem(['MyProtein'])" in script + + ns = {} + exec(compile(script, "", "exec"), ns) # noqa: S102 + assert list(ns["component_system"].names) == ["MyProtein"] diff --git a/tests/test_elements.py b/tests/test_elements.py index 6c8e07f..a7f14f7 100644 --- a/tests/test_elements.py +++ b/tests/test_elements.py @@ -4,6 +4,7 @@ from cadetgui.widgets.elements import ( BoolField, ChoiceField, + ComponentListField, Element, FloatField, FloatListField, @@ -121,3 +122,26 @@ def not_none(v): c.set_options([]) assert not c.is_valid assert c.error == "required" + + +def test_componentlistfield_defaults_to_one_component(): + f = ComponentListField(label="Components:") + assert f.value == ["Component 1"] + + +def test_componentlistfield_accepts_initial_names(): + f = ComponentListField(value=["Salt", "Protein"]) + assert f.value == ["Salt", "Protein"] + + +def test_componentlistfield_empty_initial_value_falls_back_to_default(): + f = ComponentListField(value=[]) + assert f.value == ["Component 1"] + + +def test_componentlistfield_observe_fires_on_value_change(): + f = ComponentListField() + seen = [] + f.observe(lambda change: seen.append(change["new"]), names="value") + f.value = ["A", "B", "C"] + assert seen == [["A", "B", "C"]] From 04758f0752bb5bb443557293a79d76c0afdfb31b Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 16:17:14 +0200 Subject: [PATCH 034/158] Add interface.json --- cadetgui/parameters/__init__.py | 64 ++++++ cadetgui/parameters/interface.json | 333 +++++++++++++++++++++++++++++ 2 files changed, 397 insertions(+) create mode 100644 cadetgui/parameters/__init__.py create mode 100644 cadetgui/parameters/interface.json diff --git a/cadetgui/parameters/__init__.py b/cadetgui/parameters/__init__.py new file mode 100644 index 0000000..fd2ff24 --- /dev/null +++ b/cadetgui/parameters/__init__.py @@ -0,0 +1,64 @@ +"""Loader for the parameter metadata ground truth (`interface.json`). + +Framework-agnostic (no widget/CADET-Process imports) -- see +ai-docs/ARCHITECTURE.md's "Parameter metadata schema" for the design and +ai-docs/REQUIREMENTS.md item #5 for why this exists as one file rather than +scattered per-widget constants. +""" +from __future__ import annotations + +import json +from functools import lru_cache +from pathlib import Path +from typing import Any + +__all__ = ["load_schema", "get_parameters", "get_parameter", "required_parameters"] + +_SCHEMA_PATH = Path(__file__).parent / "interface.json" + + +def _resolve_refs(node: Any, root: dict) -> Any: + """Recursively replace `{"$ref": "a.b.c"}` with the dotted-path value from `root`.""" + if isinstance(node, dict): + if set(node.keys()) == {"$ref"}: + target: Any = root + for part in node["$ref"].split("."): + target = target[part] + return _resolve_refs(target, root) + return {k: _resolve_refs(v, root) for k, v in node.items()} + if isinstance(node, list): + return [_resolve_refs(v, root) for v in node] + return node + + +@lru_cache(maxsize=1) +def load_schema() -> dict: + """Load and `$ref`-resolve `interface.json`. Cached -- the file doesn't change at runtime.""" + raw = json.loads(_SCHEMA_PATH.read_text()) + return _resolve_refs(raw, raw) + + +def get_parameters(category: str, model: str) -> dict[str, dict]: + """All known parameters for `model` in `category`, keyed by CADET-Process name. + + Merges the category's `shared_parameters` (e.g. `length`, `diameter`, + `axial_dispersion` -- identical across every TubularReactorBase-derived + column) underneath the model's own_parameters, but only for models that + opt in via `extends_shared_parameters: true` -- e.g. `Cstr` has a + different base class and no column geometry, so it must not inherit them. + """ + schema = load_schema()["categories"][category] + model_entry = schema["models"][model] + extends_shared = model_entry.get("extends_shared_parameters") + shared = schema.get("shared_parameters", {}) if extends_shared else {} + return {**shared, **model_entry["own_parameters"]} + + +def get_parameter(category: str, model: str, name: str) -> dict: + """Metadata for one parameter, e.g. `get_parameter("binding", "Langmuir", "capacity")`.""" + return get_parameters(category, model)[name] + + +def required_parameters(category: str, model: str) -> list[str]: + """Return the subset of `get_parameters(...)` CADET-Process requires to build `model`.""" + return load_schema()["categories"][category]["models"][model]["required_parameters"] diff --git a/cadetgui/parameters/interface.json b/cadetgui/parameters/interface.json new file mode 100644 index 0000000..c75f61a --- /dev/null +++ b/cadetgui/parameters/interface.json @@ -0,0 +1,333 @@ +{ + "$comment": "Parameter metadata ground truth for CADET-GUI. Not GUI-specific: describes CADET-Process<->CADET-Core parameters as they actually are. GUI-layer decisions (which fields to render, how) belong in cadetprocessadapter.py, not here. Sourced from CADET-Core/doc/interface/{binding,unit_operations,solver.rst} and CADET-Process's CADETProcess/processModel/{binding,unitOperation}.py + CADETProcess/simulator/cadetAdapter.py (parameter maps), verified 2026-09-07 -- no invented units/ranges.", + "categories": { + "column": { + "$comment": "Shared TubularReactorBase parameters (length/diameter/axial_dispersion) apply to GeneralRateModel, LumpedRateModelWithPores, LumpedRateModelWithoutPores -- NOT Cstr, which has a different base class and volume-based geometry instead.", + "shared_parameters": { + "length": { + "cp_name": "length", + "co_name": "BED_LENGTH", + "co_name_code_variant": "COL_LENGTH", + "unit": "m", + "min": 0.0, + "min_exclusive": true, + "max": null, + "dtype": "float", + "component_dependent": false, + "description": "Column length.", + "source": "interface/unit_operations/axial_flow_column_1D_config.rst BED_LENGTH; cadetAdapter.py unit_parameters_map writes COL_LENGTH for the same CADET-Process attribute -- the two doc/code names for the same parameter, not verified which is current upstream, flagged rather than guessed." + }, + "diameter": { + "cp_name": "diameter", + "co_name": null, + "co_name_note": "Not written directly -- CADETProcess derives CROSS_SECTION_AREA = pi/4 * diameter^2 (see TubularReactorBase.cross_section_area). diameter is a CADET-Process-only convenience attribute.", + "unit": "m", + "min": 0.0, + "min_exclusive": true, + "max": null, + "dtype": "float", + "component_dependent": false, + "description": "Column diameter (converted to cross-section area before reaching CADET-Core).", + "source": "CADETProcess/processModel/unitOperation.py TubularReactorBase.cross_section_area; interface/unit_operations/axial_flow_column_1D_config.rst CROSS_SECTION_AREA (unit m^2, range >0)." + }, + "axial_dispersion": { + "cp_name": "axial_dispersion", + "co_name": "COL_DISPERSION", + "unit": "m^2/s", + "min": 0.0, + "min_exclusive": false, + "max": null, + "dtype": "float", + "component_dependent": true, + "description": "Axial dispersion coefficient.", + "source": "interface/unit_operations/axial_flow_column_1D_config.rst COL_DISPERSION." + } + }, + "models": { + "GeneralRateModel": { + "co_unit_type": "GENERAL_RATE_MODEL", + "extends_shared_parameters": true, + "required_parameters": [ + "bed_porosity", "particle_porosity", "pore_diffusion", + "particle_radius", "film_diffusion", "diameter", "length", "axial_dispersion" + ], + "own_parameters": { + "bed_porosity": { + "cp_name": "bed_porosity", "co_name": "COL_POROSITY", + "unit": null, "min": 0.0, "min_exclusive": true, "max": 1.0, "max_exclusive": false, + "dtype": "float", "component_dependent": false, + "description": "Interstitial (bed) porosity.", + "source": "interface/unit_operations/axial_flow_column_1D_config.rst COL_POROSITY." + }, + "particle_porosity": { + "cp_name": "particle_porosity", "co_name": "PAR_POROSITY", + "unit": null, "min": 0.0, "min_exclusive": true, "max": 1.0, "max_exclusive": false, + "dtype": "float", "component_dependent": false, + "description": "Particle (intraparticle) porosity.", + "source": "interface/unit_operations/particle_config.rst PAR_POROSITY." + }, + "particle_radius": { + "cp_name": "particle_radius", "co_name": "PAR_RADIUS", + "unit": "m", "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Particle radius.", + "source": "interface/unit_operations/particle_config.rst PAR_RADIUS." + }, + "film_diffusion": { + "cp_name": "film_diffusion", "co_name": "FILM_DIFFUSION", + "unit": "m/s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Film diffusion coefficient (mass transfer through the particle film) per component.", + "source": "interface/unit_operations/particle_config.rst FILM_DIFFUSION." + }, + "pore_diffusion": { + "cp_name": "pore_diffusion", + "co_name": "PORE_DIFFUSION", + "co_name_code_variant": "PAR_DIFFUSION", + "unit": "m^2/s", "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Effective pore diffusion coefficient per component.", + "source": "interface/unit_operations/particle_config.rst PORE_DIFFUSION; cadetAdapter.py unit_parameters_map writes PAR_DIFFUSION for GeneralRateModel -- same doc/code name mismatch pattern as COL_LENGTH/BED_LENGTH, flagged not resolved." + } + } + }, + "LumpedRateModelWithPores": { + "co_unit_type": "LUMPED_RATE_MODEL_WITH_PORES", + "extends_shared_parameters": true, + "required_parameters": [ + "bed_porosity", "particle_porosity", "particle_radius", + "film_diffusion", "diameter", "length", "axial_dispersion" + ], + "own_parameters": { + "bed_porosity": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.bed_porosity" }, + "particle_porosity": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.particle_porosity" }, + "particle_radius": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.particle_radius" }, + "film_diffusion": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.film_diffusion" } + } + }, + "LumpedRateModelWithoutPores": { + "co_unit_type": "LUMPED_RATE_MODEL_WITHOUT_PORES", + "extends_shared_parameters": true, + "required_parameters": ["total_porosity", "diameter", "length", "axial_dispersion"], + "own_parameters": { + "total_porosity": { + "cp_name": "total_porosity", "co_name": "TOTAL_POROSITY", + "unit": null, "min": 0.0, "min_exclusive": true, "max": 1.0, "max_exclusive": false, + "dtype": "float", "component_dependent": false, + "description": "Total porosity (bed + particle combined into one lumped value; there are no explicit particles in this model).", + "source": "interface/unit_operations/axial_flow_column_1D_config.rst TOTAL_POROSITY." + } + } + }, + "Cstr": { + "co_unit_type": "CSTR", + "required_parameters": ["init_liquid_volume"], + "own_parameters": { + "init_liquid_volume": { + "cp_name": "init_liquid_volume", "co_name": "INIT_LIQUID_VOLUME", + "unit": "m^3", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Initial liquid volume in the tank.", + "source": "interface/unit_operations/cstr.rst INIT_LIQUID_VOLUME." + } + } + } + } + }, + "binding": { + "$comment": "No shared_parameters section: unlike column models, the same CADET-Process attribute name (e.g. capacity) means a genuinely different thing per binding model -- for Langmuir it is per-component (length NCOMP), for StericMassAction it is a single scalar (length 1). Sharing a definition across models would silently misrepresent one of them, which is exactly the bug this file exists to avoid (see cadetgui's PARAM_SCHEMA / REQUIREMENTS.md item #12).", + "models": { + "NoBinding": { + "co_model_name": "NONE", + "required_parameters": [], + "own_parameters": {} + }, + "Linear": { + "co_model_name": "LINEAR", + "required_parameters": ["adsorption_rate", "desorption_rate"], + "own_parameters": { + "adsorption_rate": { + "cp_name": "adsorption_rate", "co_name": "LIN_KA", + "unit": "m^3_MP/(m^3_SP*s)", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Adsorption rate constant.", + "source": "interface/binding/linear.rst LIN_KA." + }, + "desorption_rate": { + "cp_name": "desorption_rate", "co_name": "LIN_KD", + "unit": "1/s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Desorption rate constant.", + "source": "interface/binding/linear.rst LIN_KD." + } + } + }, + "Langmuir": { + "co_model_name": "MULTI_COMPONENT_LANGMUIR", + "required_parameters": ["adsorption_rate", "desorption_rate", "capacity"], + "own_parameters": { + "adsorption_rate": { + "cp_name": "adsorption_rate", "co_name": "MCL_KA", + "unit": "m^3_MP/(mol*s)", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Adsorption rate constant. Unit differs from Linear/StericMassAction's adsorption_rate (mol-based here, volume-based there) -- do not share one definition across binding models.", + "source": "interface/binding/multi_component_langmuir.rst MCL_KA." + }, + "desorption_rate": { + "cp_name": "desorption_rate", "co_name": "MCL_KD", + "unit": "1/s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Desorption rate constant.", + "source": "interface/binding/multi_component_langmuir.rst MCL_KD." + }, + "capacity": { + "cp_name": "capacity", "co_name": "MCL_QMAX", + "unit": "mol/m^3_SP", "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Maximum adsorption capacity, per component. Unlike StericMassAction.capacity (a single scalar shared by all components), Langmuir's capacity is genuinely per-component.", + "source": "interface/binding/multi_component_langmuir.rst MCL_QMAX; CADETProcess/processModel/binding.py Langmuir.capacity = SizedUnsignedList(size=\"n_comp\")." + } + } + }, + "StericMassAction": { + "co_model_name": "STERIC_MASS_ACTION", + "required_parameters": [ + "adsorption_rate", "desorption_rate", "steric_factor", "characteristic_charge", "capacity" + ], + "own_parameters": { + "adsorption_rate": { + "cp_name": "adsorption_rate", "co_name": "SMA_KA", + "unit": "m^3_MP/(m^3_SP*s)", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Adsorption rate constant.", + "source": "interface/binding/steric_mass_action.rst SMA_KA." + }, + "desorption_rate": { + "cp_name": "desorption_rate", "co_name": "SMA_KD", + "unit": "1/s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Desorption rate constant.", + "source": "interface/binding/steric_mass_action.rst SMA_KD." + }, + "characteristic_charge": { + "cp_name": "characteristic_charge", "co_name": "SMA_NU", + "unit": null, "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Characteristic charge (nu): number of resin sites the protein interacts with.", + "source": "interface/binding/steric_mass_action.rst SMA_NU." + }, + "steric_factor": { + "cp_name": "steric_factor", "co_name": "SMA_SIGMA", + "unit": null, "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Steric factor (sigma): number of resin sites shielded by the bound protein.", + "source": "interface/binding/steric_mass_action.rst SMA_SIGMA." + }, + "capacity": { + "cp_name": "capacity", "co_name": "SMA_LAMBDA", + "unit": "mol/m^3_SP", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Stationary phase (ionic) capacity -- a single value shared by the whole resin, not per component. Unlike Langmuir.capacity (per-component), this is a scalar (length 1).", + "source": "interface/binding/steric_mass_action.rst SMA_LAMBDA (Length: 1); CADETProcess/processModel/binding.py StericMassAction.capacity = UnsignedFloat()." + } + } + } + } + }, + "solver": { + "$comment": "Not yet exposed anywhere in the GUI (REQUIREMENTS.md 'Next widgets' #8) -- populated here as the third category the product owner asked to distinguish, and to prove the schema generalizes beyond column/binding. Global per-simulation settings, none are component-dependent.", + "models": { + "SolverTimeIntegratorParameters": { + "co_group": "/solver/time_integrator", + "required_parameters": [], + "own_parameters": { + "abstol": { + "cp_name": "abstol", "co_name": "ABSTOL", + "unit": null, "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": false, "default": 1e-8, + "description": "Absolute tolerance in the solution of the original system.", + "source": "interface/solver.rst ABSTOL; CADETProcess/simulator/cadetAdapter.py SolverTimeIntegratorParameters.abstol." + }, + "reltol": { + "cp_name": "reltol", "co_name": "RELTOL", + "unit": null, "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, "default": 1e-6, + "description": "Relative tolerance in the solution of the original system.", + "source": "interface/solver.rst RELTOL." + }, + "algtol": { + "cp_name": "algtol", "co_name": "ALGTOL", + "unit": null, "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": false, "default": 1e-12, + "description": "Tolerance in the solution of the nonlinear consistency equations.", + "source": "interface/solver.rst ALGTOL." + }, + "reltol_sens": { + "cp_name": "reltol_sens", "co_name": "RELTOL_SENS", + "unit": null, "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, "default": 1e-12, + "description": "Relative tolerance in the solution of the sensitivity systems.", + "source": "interface/solver.rst RELTOL_SENS." + }, + "init_step_size": { + "cp_name": "init_step_size", "co_name": "INIT_STEP_SIZE", + "unit": "s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, "default": 1e-6, + "description": "Initial time integrator step size (0.0: IDAS default).", + "source": "interface/solver.rst INIT_STEP_SIZE." + }, + "max_steps": { + "cp_name": "max_steps", "co_name": "MAX_STEPS", + "unit": null, "min": 0, "min_exclusive": false, "max": null, + "dtype": "int", "component_dependent": false, "default": 1000000, + "description": "Maximum number of timesteps taken by IDAS (0: IDAS default = 500).", + "source": "interface/solver.rst MAX_STEPS." + }, + "max_step_size": { + "cp_name": "max_step_size", "co_name": "MAX_STEP_SIZE", + "unit": "s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, "default": 0.0, + "description": "Maximum size of timesteps taken by IDAS (0.0: unlimited).", + "source": "interface/solver.rst MAX_STEP_SIZE." + }, + "errortest_sens": { + "cp_name": "errortest_sens", "co_name": "ERRORTEST_SENS", + "unit": null, "min": null, "max": null, + "dtype": "bool", "component_dependent": false, "default": false, + "description": "Whether (forward) sensitivities take part in the local error test.", + "source": "interface/solver.rst ERRORTEST_SENS." + }, + "max_newton_iter": { + "cp_name": "max_newton_iter", "co_name": "MAX_NEWTON_ITER", + "unit": null, "min": 0, "min_exclusive": false, "max": null, + "dtype": "int", "component_dependent": false, "default": 1000000, + "description": "Maximum number of Newton iterations per time step.", + "source": "interface/solver.rst MAX_NEWTON_ITER." + }, + "max_errtest_fail": { + "cp_name": "max_errtest_fail", "co_name": "MAX_ERRTEST_FAIL", + "unit": null, "min": 0, "min_exclusive": false, "max": null, + "dtype": "int", "component_dependent": false, "default": 1000000, + "description": "Maximum number of local error test failures per time step.", + "source": "interface/solver.rst MAX_ERRTEST_FAIL." + }, + "max_convtest_fail": { + "cp_name": "max_convtest_fail", "co_name": "MAX_CONVTEST_FAIL", + "unit": null, "min": 0, "min_exclusive": false, "max": null, + "dtype": "int", "component_dependent": false, "default": 1000000, + "description": "Maximum number of Newton convergence test failures per time step.", + "source": "interface/solver.rst MAX_CONVTEST_FAIL." + }, + "max_newton_iter_sens": { + "cp_name": "max_newton_iter_sens", "co_name": "MAX_NEWTON_ITER_SENS", + "unit": null, "min": 0, "min_exclusive": false, "max": null, + "dtype": "int", "component_dependent": false, "default": 1000000, + "description": "Maximum number of Newton iterations in the forward sensitivity time step.", + "source": "interface/solver.rst MAX_NEWTON_ITER_SENS." + } + } + } + } + } + } +} From 84cb00aa233b8fb116724becf39b77e3a99a589a Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 16:17:21 +0200 Subject: [PATCH 035/158] Wire through interface.json --- cadetgui/cadetprocessadapter.py | 131 ++++++++++++++++++++------------ 1 file changed, 83 insertions(+), 48 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index a9e7bb4..4db0e79 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -18,7 +18,8 @@ StericMassAction, ) -FieldKind = str +from .parameters import get_parameters as _param_metadata_for + Validator = Callable[[Any], None] Transform = Callable[[Any], Any] @@ -190,8 +191,6 @@ def make_sma_binding(cs: ComponentSystem) -> BindingBaseClass: "Steric Mass Action (SMA)": make_sma_binding, } -PARAM_TYPE_OVERRIDES: Dict[str, FieldKind] = {} - def _unique_preserve_order(names: Sequence[str]) -> list[str]: """Return names in original order, dropping duplicates (first occurrence wins).""" @@ -204,48 +203,89 @@ def _unique_preserve_order(names: Sequence[str]) -> list[str]: return out -PARAM_SCHEMA: dict[str, dict] = { - "diameter": {"kind": "float", "default": 0.024, "min": 0.0, "units": "m"}, - "bed_porosity": {"kind": "float", "default": 0.72, "min": 0.0, "max": 1.0}, - "length": {"kind": "float", "default": 0.5, "min": 0.0, "units": "m"}, - "pore_diffusion": {"kind": "float", "default": 1e-10, "min": 0.0, "units": "m^2/s"}, - "film_diffusion": {"kind": "float", "default": 1e-3, "min": 0.0, "units": "m/s"}, - "particle_porosity": {"kind": "float", "default": 0.6, "min": 0.0, "max": 1.0}, - "particle_radius": {"kind": "float", "default": 5.0e-6, "min": 0.0, "units": "m"}, - "axial_dispersion": {"kind": "float", "default": 1e-8, "min": 0.0, "units": "m^2/s"}, - - # Binding-model parameters. Bounds/units sourced from CADET-Core's binding - # model docs (cadet.github.io/master/interface/binding/{linear, - # multi_component_langmuir,steric_mass_action}.html), not invented — see - # ai-docs/ARCHITECTURE.md's "no inventing bounds" rule. - # - # `adsorption_rate`'s unit differs by model (Langmuir: m^3/(mol*s); Linear - # and SMA: m^3_MP/m^3_SP/s) — left unspecified since this schema is shared - # across binding model types and picking one would be wrong for the others. - # `desorption_rate` (1/s) and `capacity` (mol/m^3) are consistent across - # every model that uses them, so those do get a unit. - "adsorption_rate": {"kind": "float", "min": 0.0}, - "desorption_rate": {"kind": "float", "min": 0.0, "units": "1/s"}, - "capacity": {"kind": "float", "min": 0.0, "units": "mol/m^3"}, - "characteristic_charge": {"kind": "float", "min": 0.0}, - "steric_factor": {"kind": "float", "min": 0.0}, -} - - def _infer_kind(x) -> str: if isinstance(x, (list, tuple)): return "float_list" if isinstance(x, bool): return "bool" return "float" -def _resolve_param(name: str, column_value): - meta = PARAM_SCHEMA.get(name, {}) - default = meta.get("default", column_value) - kind = meta.get("kind", _infer_kind(default)) +# GUI-only seed defaults: a sensible starting value for a blank form, so +# "Apply" without touching anything doesn't build a degenerate (zero-length, +# zero-porosity) column. CADET-Core has no canonical default for these -- +# they're mandatory, problem-specific physical inputs -- so this deliberately +# lives here rather than in parameters/interface.json (which is the ground-truth +# CADET-Process<->CADET-Core mapping, not a GUI convenience). Shared across +# column models via the `None` model slot; add a `(category, "ModelName", name)` +# entry only if a specific model genuinely needs a different seed. +_GUI_SEED_DEFAULTS: dict[tuple[str, Optional[str], str], float] = { + ("column", None, "diameter"): 0.024, + ("column", None, "length"): 0.5, + ("column", None, "axial_dispersion"): 1e-8, + ("column", None, "bed_porosity"): 0.72, + ("column", None, "particle_porosity"): 0.6, + ("column", None, "particle_radius"): 5.0e-6, + ("column", None, "film_diffusion"): 1e-3, + ("column", None, "pore_diffusion"): 1e-10, +} + + +def _seed_default(category: str, model_name: str, name: str) -> float: + key = (category, model_name, name) + if key in _GUI_SEED_DEFAULTS: + return _GUI_SEED_DEFAULTS[key] + return _GUI_SEED_DEFAULTS.get((category, None, name), 0.0) + + +def _category_and_model(obj: Any) -> tuple[Optional[str], str]: + model_name = type(obj).__name__ + if isinstance(obj, BindingBaseClass): + return "binding", model_name + if isinstance(obj, ChromatographicColumnBase) or isinstance(obj, Cstr): + return "column", model_name + return None, model_name + + +def _resolve_param(obj: Any, category: Optional[str], model_name: str, name: str): + """Resolve one parameter's kind/bounds/units/default. + + Ground truth (kind, bounds, units, whether it's per-component) comes from + `parameters/interface.json` via `category`/`model_name` -- see + ai-docs/ARCHITECTURE.md's "Parameter metadata schema" for why this is + nested per-model rather than one flat dict (e.g. `Langmuir.capacity` is + per-component, `StericMassAction.capacity` is a single scalar; same + CADET-Process attribute name, different shape). Falls back to inferring + purely from the object's current value when the schema doesn't (yet) know + this category/model/parameter, so an unregistered model still renders + something instead of raising. + """ + meta = None + if category is not None: + try: + meta = _param_metadata_for(category, model_name).get(name) + except KeyError: + meta = None + + current = getattr(obj, name, None) + + if meta is None: + kind = _infer_kind(current) + transform = parse_float_list if kind == "float_list" else None + return current, kind, transform, {}, None + + dtype = meta["dtype"] + kind = "float_list" if (dtype == "float" and meta["component_dependent"]) else dtype + + if current is not None: + default = current + elif kind == "float_list": + n_comp = getattr(obj, "n_comp", None) or 1 + default = [_seed_default(category, model_name, name)] * n_comp + else: + default = _seed_default(category, model_name, name) + + bounds = {k: meta[k] for k in ("min", "max") if meta.get(k) is not None} transform = parse_float_list if kind == "float_list" else None - bounds = {k: meta[k] for k in ("min", "max") if k in meta} - units = meta.get("units") - return default, kind, transform, bounds, units + return default, kind, transform, bounds, meta.get("unit") def _coerce_to_kind(kind: str, val): @@ -266,11 +306,13 @@ def build_parameter_config_spec(obj: Any) -> ModelSpec: """ req = getattr(obj, "required_parameters", None) or [] names = _unique_preserve_order(list(req)) + category, model_name = _category_and_model(obj) fields: list[FieldSpec] = [] + kinds: dict[str, str] = {} for name in names: - current_val = getattr(obj, name, None) - default, kind, transform, bounds, units = _resolve_param(name, current_val) + default, kind, transform, bounds, units = _resolve_param(obj, category, model_name, name) + kinds[name] = kind label = name.replace("_", " ").capitalize() fs_kwargs = dict(name=name, kind=kind, label=label, default=default, transform=transform, **bounds) if units is not None: @@ -282,14 +324,7 @@ def _apply(values: Mapping[str, Any]) -> Any: if name not in values: continue try: - # prefer schema kind; fall back to explicit overrides; else infer - schema_kind = PARAM_SCHEMA.get(name, {}).get("kind") - kind = schema_kind or PARAM_TYPE_OVERRIDES.get(name) # keep if you still have it - if kind is None: - # last-resort inference from current value - cur = getattr(obj, name, None) - kind = _infer_kind(cur) - coerced = _coerce_to_kind(kind, values[name]) + coerced = _coerce_to_kind(kinds[name], values[name]) setattr(obj, name, coerced) except Exception: # swallow and continue so one bad value doesn't block the rest From 12c5ab7534804bcd6d35a22f39dd69b127489a39 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 16:17:29 +0200 Subject: [PATCH 036/158] Test parameter readouts from interface.json --- tests/test_parameters.py | 99 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 tests/test_parameters.py diff --git a/tests/test_parameters.py b/tests/test_parameters.py new file mode 100644 index 0000000..c37bb41 --- /dev/null +++ b/tests/test_parameters.py @@ -0,0 +1,99 @@ +from __future__ import annotations + +from cadetgui.parameters import get_parameter, get_parameters, required_parameters + + +def test_column_shared_parameters_resolve_via_ref(): + grm = get_parameters("column", "GeneralRateModel") + lrmp = get_parameters("column", "LumpedRateModelWithPores") + # bed_porosity is a $ref in LumpedRateModelWithPores pointing at GeneralRateModel's + # entry -- must resolve to the same actual dict, not stay a literal {"$ref": ...}. + assert lrmp["bed_porosity"] == grm["bed_porosity"] + assert "$ref" not in str(lrmp["bed_porosity"]) + + +def test_column_shared_geometry_present_on_every_tubular_model(): + for model in ["GeneralRateModel", "LumpedRateModelWithPores", "LumpedRateModelWithoutPores"]: + params = get_parameters("column", model) + assert {"length", "diameter", "axial_dispersion"} <= params.keys() + + +def test_cstr_has_no_shared_tubular_geometry(): + params = get_parameters("column", "Cstr") + assert "length" not in params + assert "diameter" not in params + assert params.keys() == {"init_liquid_volume"} + + +def test_langmuir_capacity_is_component_dependent_but_sma_capacity_is_not(): + langmuir_capacity = get_parameter("binding", "Langmuir", "capacity") + sma_capacity = get_parameter("binding", "StericMassAction", "capacity") + assert langmuir_capacity["component_dependent"] is True + assert sma_capacity["component_dependent"] is False + # same CADET-Process attribute name, different CADET-Core field -- the whole + # reason this schema is nested per-model rather than one flat dict. + assert langmuir_capacity["co_name"] != sma_capacity["co_name"] + + +def test_adsorption_rate_unit_differs_between_langmuir_and_linear(): + assert ( + get_parameter("binding", "Langmuir", "adsorption_rate")["unit"] + != get_parameter("binding", "Linear", "adsorption_rate")["unit"] + ) + + +def test_solver_category_parameters_are_never_component_dependent(): + params = get_parameters("solver", "SolverTimeIntegratorParameters") + assert params + assert all(p["component_dependent"] is False for p in params.values()) + + +def test_required_parameters_match_real_cadetprocess_objects(): + """Cross-check against CADET-Process itself, not just internal consistency -- + this is the schema's actual ground-truth claim, so it must match the library + it describes.""" + from CADETProcess.processModel import ( + ComponentSystem, + Cstr, + GeneralRateModel, + Langmuir, + Linear, + LumpedRateModelWithoutPores, + LumpedRateModelWithPores, + NoBinding, + StericMassAction, + ) + + cs = ComponentSystem(2) + column_models = { + "GeneralRateModel": GeneralRateModel, + "LumpedRateModelWithPores": LumpedRateModelWithPores, + "LumpedRateModelWithoutPores": LumpedRateModelWithoutPores, + } + for name, cls in column_models.items(): + obj = cls(cs, name="x") + assert set(required_parameters("column", name)) == set(obj.required_parameters) + + assert set(required_parameters("column", "Cstr")) == set(Cstr(cs, name="x").required_parameters) + + binding_models = {"Linear": Linear, "Langmuir": Langmuir, "StericMassAction": StericMassAction} + for name, cls in binding_models.items(): + obj = cls(cs, name="x") + assert set(required_parameters("binding", name)) == set(obj.required_parameters) + + assert required_parameters("binding", "NoBinding") == NoBinding().required_parameters == [] + + +def test_every_required_parameter_has_metadata(): + for category, model in [ + ("column", "GeneralRateModel"), + ("column", "LumpedRateModelWithPores"), + ("column", "LumpedRateModelWithoutPores"), + ("column", "Cstr"), + ("binding", "Linear"), + ("binding", "Langmuir"), + ("binding", "StericMassAction"), + ]: + params = get_parameters(category, model) + for name in required_parameters(category, model): + assert name in params, f"{category}/{model} required parameter {name!r} has no metadata" From f78166509118c5a85631c33746dc813f97c74338 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 17:28:00 +0200 Subject: [PATCH 037/158] Add units to fields --- cadetgui/widgets/elements/_shared.css | 23 ++++++++ cadetgui/widgets/elements/base.py | 1 + cadetgui/widgets/elements/bool_field.js | 42 ++++++++++++++ cadetgui/widgets/elements/bool_field.py | 3 +- cadetgui/widgets/elements/float_field.js | 51 ++++++++++++++++- cadetgui/widgets/elements/float_field.py | 5 +- cadetgui/widgets/elements/float_list_field.js | 55 ++++++++++++++++++- cadetgui/widgets/elements/float_list_field.py | 3 +- cadetgui/widgets/elements/text_field.js | 42 ++++++++++++++ cadetgui/widgets/elements/text_field.py | 3 +- cadetgui/widgets/forms/renderer.py | 7 ++- 11 files changed, 226 insertions(+), 9 deletions(-) diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index c45bb01..b0b30be 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -6,6 +6,7 @@ .cadetgui-field { --cg-fg: #1f2937; --cg-muted: #6b7280; + --cg-unit: #828d99; --cg-border: #d1d5db; --cg-focus: #2563eb; --cg-danger: #dc2626; @@ -25,6 +26,7 @@ .cadetgui-field { --cg-fg: #e5e7eb; --cg-muted: #9ca3af; + --cg-unit: #5b6472; --cg-border: #4b5563; --cg-focus: #60a5fa; --cg-danger: #f87171; @@ -38,6 +40,27 @@ color: var(--cg-muted); } +.cadetgui-field-unit { + color: var(--cg-unit); + flex: 0 0 auto; + font-family: "STIX Two Math", "Cambria Math", Georgia, "Times New Roman", serif; +} + +.cadetgui-field-unit sup, +.cadetgui-field-unit sub { + line-height: 0; +} + +.cadetgui-field-unit sub[title] { + cursor: help; + text-decoration: underline dotted; + text-underline-offset: 2px; +} + +.cadetgui-field-unit[hidden] { + display: none; +} + .cadetgui-field-input { width: 140px; padding: 4px 8px; diff --git a/cadetgui/widgets/elements/base.py b/cadetgui/widgets/elements/base.py index 9c39cd6..f8b7c4f 100644 --- a/cadetgui/widgets/elements/base.py +++ b/cadetgui/widgets/elements/base.py @@ -27,6 +27,7 @@ class Element(anywidget.AnyWidget): """ label = T.Unicode("").tag(sync=True) + units = T.Unicode("").tag(sync=True) error = T.Unicode("").tag(sync=True) _value_trait_name = "value" diff --git a/cadetgui/widgets/elements/bool_field.js b/cadetgui/widgets/elements/bool_field.js index b69d5b4..57d3101 100644 --- a/cadetgui/widgets/elements/bool_field.js +++ b/cadetgui/widgets/elements/bool_field.js @@ -1,3 +1,34 @@ +const UNIT_GLOSSARY = { + MP: "mobile phase", + SP: "stationary phase", + IV: "interstitial volume", +}; + +function renderUnit(container, raw) { + container.replaceChildren(); + if (!raw) return; + const re = /\^([0-9]+)|_([A-Za-z0-9]+)|\*/g; + let last = 0; + let m; + while ((m = re.exec(raw)) !== null) { + if (m.index > last) container.append(raw.slice(last, m.index)); + if (m[1] !== undefined) { + const sup = document.createElement("sup"); + sup.textContent = m[1]; + container.appendChild(sup); + } else if (m[2] !== undefined) { + const sub = document.createElement("sub"); + sub.textContent = m[2]; + if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + container.appendChild(sub); + } else { + container.append("·"); + } + last = re.lastIndex; + } + if (last < raw.length) container.append(raw.slice(last)); +} + function render({ model, el }) { const wrap = document.createElement("label"); wrap.className = "cadetgui-field cadetgui-field-bool"; @@ -16,6 +47,16 @@ function render({ model, el }) { labelEl.textContent = model.get("label"); wrap.appendChild(labelEl); + const unitEl = document.createElement("span"); + unitEl.className = "cadetgui-field-unit"; + const syncUnit = () => { + const units = model.get("units"); + renderUnit(unitEl, units); + unitEl.hidden = !units; + }; + wrap.appendChild(unitEl); + syncUnit(); + const err = document.createElement("span"); err.className = "cadetgui-field-error"; const syncError = () => { @@ -29,6 +70,7 @@ function render({ model, el }) { model.on("change:value", () => { input.checked = Boolean(model.get("value")); }); model.on("change:error", syncError); model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + model.on("change:units", syncUnit); el.appendChild(wrap); } diff --git a/cadetgui/widgets/elements/bool_field.py b/cadetgui/widgets/elements/bool_field.py index 461e270..2928200 100644 --- a/cadetgui/widgets/elements/bool_field.py +++ b/cadetgui/widgets/elements/bool_field.py @@ -28,6 +28,7 @@ def __init__( *, label: str = "", value: bool = False, + units: Optional[str] = None, validate: Optional[Validator] = None, ) -> None: - super().__init__(label=label, value=value, validate=validate) + super().__init__(label=label, value=value, units=units or "", validate=validate) diff --git a/cadetgui/widgets/elements/float_field.js b/cadetgui/widgets/elements/float_field.js index 9fddef8..e8c235c 100644 --- a/cadetgui/widgets/elements/float_field.js +++ b/cadetgui/widgets/elements/float_field.js @@ -1,3 +1,41 @@ +const UNIT_GLOSSARY = { + MP: "mobile phase", + SP: "stationary phase", + IV: "interstitial volume", +}; + +function renderUnit(container, raw) { + container.replaceChildren(); + if (!raw) return; + const re = /\^([0-9]+)|_([A-Za-z0-9]+)|\*/g; + let last = 0; + let m; + while ((m = re.exec(raw)) !== null) { + if (m.index > last) container.append(raw.slice(last, m.index)); + if (m[1] !== undefined) { + const sup = document.createElement("sup"); + sup.textContent = m[1]; + container.appendChild(sup); + } else if (m[2] !== undefined) { + const sub = document.createElement("sub"); + sub.textContent = m[2]; + if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + container.appendChild(sub); + } else { + container.append("·"); + } + last = re.lastIndex; + } + if (last < raw.length) container.append(raw.slice(last)); +} + +function formatNumber(n) { + if (!Number.isFinite(n) || n === 0) return String(n); + const abs = Math.abs(n); + if (abs < 1e-3 || abs >= 1e6) return n.toExponential(); + return String(n); +} + function render({ model, el }) { const wrap = document.createElement("label"); wrap.className = "cadetgui-field"; @@ -21,7 +59,7 @@ function render({ model, el }) { else input.max = String(max); }; const syncValue = () => { - input.value = model.get("value"); + input.value = formatNumber(model.get("value")); }; const syncError = () => { const msg = model.get("error"); @@ -42,6 +80,16 @@ function render({ model, el }) { }); wrap.appendChild(input); + const unitEl = document.createElement("span"); + unitEl.className = "cadetgui-field-unit"; + const syncUnit = () => { + const units = model.get("units"); + renderUnit(unitEl, units); + unitEl.hidden = !units; + }; + wrap.appendChild(unitEl); + syncUnit(); + const err = document.createElement("span"); err.className = "cadetgui-field-error"; wrap.appendChild(err); @@ -52,6 +100,7 @@ function render({ model, el }) { model.on("change:max", syncBounds); model.on("change:error", syncError); model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + model.on("change:units", syncUnit); el.appendChild(wrap); } diff --git a/cadetgui/widgets/elements/float_field.py b/cadetgui/widgets/elements/float_field.py index 0ce7ded..e1b257e 100644 --- a/cadetgui/widgets/elements/float_field.py +++ b/cadetgui/widgets/elements/float_field.py @@ -32,6 +32,9 @@ def __init__( value: float = 0.0, min: Optional[float] = None, max: Optional[float] = None, + units: Optional[str] = None, validate: Optional[Validator] = None, ) -> None: - super().__init__(label=label, value=value, min=min, max=max, validate=validate) + super().__init__( + label=label, value=value, min=min, max=max, units=units or "", validate=validate + ) diff --git a/cadetgui/widgets/elements/float_list_field.js b/cadetgui/widgets/elements/float_list_field.js index 2748f73..07e761e 100644 --- a/cadetgui/widgets/elements/float_list_field.js +++ b/cadetgui/widgets/elements/float_list_field.js @@ -1,3 +1,41 @@ +const UNIT_GLOSSARY = { + MP: "mobile phase", + SP: "stationary phase", + IV: "interstitial volume", +}; + +function renderUnit(container, raw) { + container.replaceChildren(); + if (!raw) return; + const re = /\^([0-9]+)|_([A-Za-z0-9]+)|\*/g; + let last = 0; + let m; + while ((m = re.exec(raw)) !== null) { + if (m.index > last) container.append(raw.slice(last, m.index)); + if (m[1] !== undefined) { + const sup = document.createElement("sup"); + sup.textContent = m[1]; + container.appendChild(sup); + } else if (m[2] !== undefined) { + const sub = document.createElement("sub"); + sub.textContent = m[2]; + if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + container.appendChild(sub); + } else { + container.append("·"); + } + last = re.lastIndex; + } + if (last < raw.length) container.append(raw.slice(last)); +} + +function formatNumber(n) { + if (!Number.isFinite(n) || n === 0) return String(n); + const abs = Math.abs(n); + if (abs < 1e-3 || abs >= 1e6) return n.toExponential(); + return String(n); +} + function render({ model, el }) { const wrap = document.createElement("div"); wrap.className = "cadetgui-field cadetgui-field-list"; @@ -28,7 +66,7 @@ function render({ model, el }) { const input = document.createElement("input"); input.type = "number"; input.step = "any"; - input.value = value; + input.value = formatNumber(value); input.addEventListener("change", commit); row.appendChild(input); @@ -41,6 +79,12 @@ function render({ model, el }) { }); row.appendChild(rm); + const unitEl = document.createElement("span"); + unitEl.className = "cadetgui-field-unit"; + renderUnit(unitEl, model.get("units")); + unitEl.hidden = !model.get("units"); + row.appendChild(unitEl); + rows.appendChild(row); } @@ -61,6 +105,14 @@ function render({ model, el }) { body.appendChild(addBtn); wrap.appendChild(body); + const syncUnits = () => { + const units = model.get("units"); + rows.querySelectorAll(".cadetgui-field-unit").forEach((unitEl) => { + renderUnit(unitEl, units); + unitEl.hidden = !units; + }); + }; + const err = document.createElement("span"); err.className = "cadetgui-field-error"; const syncError = () => { @@ -76,6 +128,7 @@ function render({ model, el }) { model.on("change:value", syncFromModel); model.on("change:error", syncError); model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + model.on("change:units", syncUnits); el.appendChild(wrap); } diff --git a/cadetgui/widgets/elements/float_list_field.py b/cadetgui/widgets/elements/float_list_field.py index 4c6ddb2..4b0f851 100644 --- a/cadetgui/widgets/elements/float_list_field.py +++ b/cadetgui/widgets/elements/float_list_field.py @@ -28,7 +28,8 @@ def __init__( *, label: str = "", value: Optional[Sequence[float]] = None, + units: Optional[str] = None, validate: Optional[Validator] = None, ) -> None: values: List[float] = [float(v) for v in value] if value else [0.0] - super().__init__(label=label, value=values, validate=validate) + super().__init__(label=label, value=values, units=units or "", validate=validate) diff --git a/cadetgui/widgets/elements/text_field.js b/cadetgui/widgets/elements/text_field.js index fd95899..fda3692 100644 --- a/cadetgui/widgets/elements/text_field.js +++ b/cadetgui/widgets/elements/text_field.js @@ -1,3 +1,34 @@ +const UNIT_GLOSSARY = { + MP: "mobile phase", + SP: "stationary phase", + IV: "interstitial volume", +}; + +function renderUnit(container, raw) { + container.replaceChildren(); + if (!raw) return; + const re = /\^([0-9]+)|_([A-Za-z0-9]+)|\*/g; + let last = 0; + let m; + while ((m = re.exec(raw)) !== null) { + if (m.index > last) container.append(raw.slice(last, m.index)); + if (m[1] !== undefined) { + const sup = document.createElement("sup"); + sup.textContent = m[1]; + container.appendChild(sup); + } else if (m[2] !== undefined) { + const sub = document.createElement("sub"); + sub.textContent = m[2]; + if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + container.appendChild(sub); + } else { + container.append("·"); + } + last = re.lastIndex; + } + if (last < raw.length) container.append(raw.slice(last)); +} + function render({ model, el }) { const wrap = document.createElement("label"); wrap.className = "cadetgui-field"; @@ -17,6 +48,16 @@ function render({ model, el }) { }); wrap.appendChild(input); + const unitEl = document.createElement("span"); + unitEl.className = "cadetgui-field-unit"; + const syncUnit = () => { + const units = model.get("units"); + renderUnit(unitEl, units); + unitEl.hidden = !units; + }; + wrap.appendChild(unitEl); + syncUnit(); + const err = document.createElement("span"); err.className = "cadetgui-field-error"; const syncError = () => { @@ -31,6 +72,7 @@ function render({ model, el }) { model.on("change:value", () => { input.value = model.get("value"); }); model.on("change:error", syncError); model.on("change:label", () => { labelEl.textContent = model.get("label"); }); + model.on("change:units", syncUnit); el.appendChild(wrap); } diff --git a/cadetgui/widgets/elements/text_field.py b/cadetgui/widgets/elements/text_field.py index 2211a17..185a2a8 100644 --- a/cadetgui/widgets/elements/text_field.py +++ b/cadetgui/widgets/elements/text_field.py @@ -28,6 +28,7 @@ def __init__( *, label: str = "", value: str = "", + units: Optional[str] = None, validate: Optional[Validator] = None, ) -> None: - super().__init__(label=label, value=value, validate=validate) + super().__init__(label=label, value=value, units=units or "", validate=validate) diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index 576b9f9..763a5d0 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -31,16 +31,17 @@ def _coerced_default(f: FieldSpec) -> Any: value=_coerced_default(f), min=f.min, max=f.max, + units=f.units, validate=f.validate, ), "float_list": lambda f: FloatListField( - label=f.label or f.name, value=_coerced_default(f), validate=f.validate + label=f.label or f.name, value=_coerced_default(f), units=f.units, validate=f.validate ), "bool": lambda f: BoolField( - label=f.label or f.name, value=_coerced_default(f), validate=f.validate + label=f.label or f.name, value=_coerced_default(f), units=f.units, validate=f.validate ), "text": lambda f: TextField( - label=f.label or f.name, value=_coerced_default(f), validate=f.validate + label=f.label or f.name, value=_coerced_default(f), units=f.units, validate=f.validate ), } From 97663377231e4982e27360c0ad8a941fa9f3e05d Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 17:28:26 +0200 Subject: [PATCH 038/158] Source units from json --- cadetgui/cadetprocessadapter.py | 65 +++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 4db0e79..39ca717 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -54,19 +54,60 @@ def parse_float_list(v: Any) -> list[float]: return vals +# Units sourced from CADET-Core docs (interface/unit_operations/inlet.rst's +# CONST_COEFF for concentrations: mol/m_IV^-3; interface/solver.rst's +# SECTION_TIMES for durations: s). `flow_rate`'s m^3/s isn't documented for +# this exact field (Inlet-to-column connection flow rate isn't itemized in +# system.rst), but is the one volumetric-flow-rate unit CADET-Core uses +# consistently everywhere else (e.g. CSTR's FLOWRATE_FILTER) -- inferred by +# consistency, not invented, and noted here rather than silently assumed. PARAMS: dict[str, FieldSpec] = { - "c_feed": FieldSpec("c_feed", "float_list", "Feed concentration", [10.0], transform=parse_float_list), - "c_load": FieldSpec("c_load", "float_list", "Load concentration", [50.0], transform=parse_float_list), - "c_salt_low": FieldSpec("c_salt_low", "float_list", "Low-salt buffer", [50.0], transform=parse_float_list), - "c_salt_high": FieldSpec("c_salt_high", "float_list", "High-salt buffer", [500.0], transform=parse_float_list), - "flow_rate": FieldSpec("flow_rate", "float", "Flow rate", 1.0e-6, validate=require_positive), - "feed_duration": FieldSpec("feed_duration", "float", "Feed duration", 60.0, validate=require_positive), - "load_duration": FieldSpec("load_duration", "float", "Load duration", 60.0, validate=require_positive), - "cycle_time": FieldSpec("cycle_time", "float", "Cycle time", 6000.0, validate=require_positive), - "wash_duration": FieldSpec("wash_duration", "float", "Wash duration", 10.0, validate=require_positive), - "gradient_duration": FieldSpec("gradient_duration", "float", "Gradient duration", 10.0, validate=require_positive), - "final_wash_duration": FieldSpec("final_wash_duration", "float", "Final wash duration", 10.0), - "c_eluent": FieldSpec("c_eluent", "float", "Eluent (scalar)", 0.0), + "c_feed": FieldSpec( + "c_feed", "float_list", "Feed concentration", [10.0], + transform=parse_float_list, units="mol/m^3_IV", + ), + "c_load": FieldSpec( + "c_load", "float_list", "Load concentration", [50.0], + transform=parse_float_list, units="mol/m^3_IV", + ), + "c_salt_low": FieldSpec( + "c_salt_low", "float_list", "Low-salt buffer", [50.0], + transform=parse_float_list, units="mol/m^3_IV", + ), + "c_salt_high": FieldSpec( + "c_salt_high", "float_list", "High-salt buffer", [500.0], + transform=parse_float_list, units="mol/m^3_IV", + ), + "flow_rate": FieldSpec( + "flow_rate", "float", "Flow rate", 1.0e-6, + validate=require_positive, units="m^3/s", + ), + "feed_duration": FieldSpec( + "feed_duration", "float", "Feed duration", 60.0, + validate=require_positive, units="s", + ), + "load_duration": FieldSpec( + "load_duration", "float", "Load duration", 60.0, + validate=require_positive, units="s", + ), + "cycle_time": FieldSpec( + "cycle_time", "float", "Cycle time", 6000.0, + validate=require_positive, units="s", + ), + "wash_duration": FieldSpec( + "wash_duration", "float", "Wash duration", 10.0, + validate=require_positive, units="s", + ), + "gradient_duration": FieldSpec( + "gradient_duration", "float", "Gradient duration", 10.0, + validate=require_positive, units="s", + ), + "final_wash_duration": FieldSpec( + "final_wash_duration", "float", "Final wash duration", 10.0, units="s", + ), + "c_eluent": FieldSpec( + "c_eluent", "float", "Eluent (scalar)", 0.0, units="mol/m^3_IV", + ), } From c0d90440f6abefd956c81e0261c8084d3610787f Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 17:28:35 +0200 Subject: [PATCH 039/158] Test units --- tests/test_elements.py | 5 +++++ tests/test_forms.py | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/tests/test_elements.py b/tests/test_elements.py index a7f14f7..462084d 100644 --- a/tests/test_elements.py +++ b/tests/test_elements.py @@ -53,6 +53,11 @@ def test_floatfield_is_element(): assert isinstance(FloatField(), Element) +def test_floatfield_units_default_to_empty_and_can_be_set(): + assert FloatField().units == "" + assert FloatField(units="m").units == "m" + + def test_floatfield_ships_esm_and_css(): f = FloatField() assert "function render" in f._esm diff --git a/tests/test_forms.py b/tests/test_forms.py index 7c93618..7693ab1 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -32,6 +32,15 @@ def test_element_for_field_maps_kind_to_element_type(): assert isinstance(element_for_field(field), FloatListField) +def test_element_for_field_passes_units_through_to_the_element(): + field = FieldSpec("length", "float", "Length", default=0.5, units="m") + element = element_for_field(field) + assert element.units == "m" + + unitless = element_for_field(FieldSpec("rate", "float", default=1.0)) + assert unitless.units == "" + + def test_form_renders_one_element_per_field_with_defaults(): form = FormRenderer(make_spec()) assert set(form._elements) == {"rate", "name", "active", "levels"} From 4ab67464de95f420785a28c2730c474b3c9d9025 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 17:30:17 +0200 Subject: [PATCH 040/158] [WIP] Switch to configurable tooltips, some are still broken --- cadetgui/widgets/chrome.css | 9 +++ cadetgui/widgets/elements/_shared.css | 2 +- cadetgui/widgets/elements/bool_field.js | 57 ++++++++++++++++++- cadetgui/widgets/elements/float_field.js | 57 ++++++++++++++++++- cadetgui/widgets/elements/float_list_field.js | 57 ++++++++++++++++++- cadetgui/widgets/elements/text_field.js | 57 ++++++++++++++++++- 6 files changed, 234 insertions(+), 5 deletions(-) diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css index 5f3ffd2..9036b1a 100644 --- a/cadetgui/widgets/chrome.css +++ b/cadetgui/widgets/chrome.css @@ -57,6 +57,15 @@ background: color-mix(in srgb, var(--cg-border) 6%, transparent); } +.cadetgui-section.cadetgui-settings-box { + gap: 4px; + background: color-mix(in srgb, var(--cg-fg) 12%, var(--cg-bg)); +} + +.cadetgui-settings-box .cadetgui-section-title { + margin-bottom: 4px; +} + .cadetgui-status { font-size: 12.5px; color: var(--cg-muted); diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index b0b30be..92a239c 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -51,7 +51,7 @@ line-height: 0; } -.cadetgui-field-unit sub[title] { +.cadetgui-field-unit sub[data-tooltip] { cursor: help; text-decoration: underline dotted; text-underline-offset: 2px; diff --git a/cadetgui/widgets/elements/bool_field.js b/cadetgui/widgets/elements/bool_field.js index 57d3101..e8d7007 100644 --- a/cadetgui/widgets/elements/bool_field.js +++ b/cadetgui/widgets/elements/bool_field.js @@ -4,6 +4,56 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; +// Body-appended, position:fixed tooltip: Jupyter output-area containers +// clip overflow, so a ::after on the gets cut off near boundaries. +// Colors are hardcoded (not var(--cg-*)) since this lives outside any +// .cadetgui-field-scoped stylesheet. +function tooltipColors() { + const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; + return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; +} + +function getTooltipEl() { + let tip = document.getElementById("cadetgui-tooltip"); + if (tip) return tip; + tip = document.createElement("div"); + tip.id = "cadetgui-tooltip"; + Object.assign(tip.style, { + position: "fixed", + padding: "6px 12px", + borderRadius: "2px", + fontFamily: "system-ui, -apple-system, sans-serif", + fontSize: "15px", + fontStyle: "normal", + lineHeight: "1.4", + whiteSpace: "nowrap", + pointerEvents: "none", + opacity: "0", + transition: "opacity 0.1s ease 80ms", + zIndex: "999999", + }); + document.body.appendChild(tip); + return tip; +} + +function showTooltip(anchorEl, text) { + const tip = getTooltipEl(); + const { bg, fg } = tooltipColors(); + tip.style.background = bg; + tip.style.color = fg; + tip.textContent = text; + const r = anchorEl.getBoundingClientRect(); + tip.style.left = `${r.left + r.width / 2}px`; + tip.style.top = `${r.bottom + 10}px`; + tip.style.transform = "translateX(-50%)"; + requestAnimationFrame(() => { tip.style.opacity = "1"; }); +} + +function hideTooltip() { + const tip = document.getElementById("cadetgui-tooltip"); + if (tip) tip.style.opacity = "0"; +} + function renderUnit(container, raw) { container.replaceChildren(); if (!raw) return; @@ -19,7 +69,12 @@ function renderUnit(container, raw) { } else if (m[2] !== undefined) { const sub = document.createElement("sub"); sub.textContent = m[2]; - if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + const gloss = UNIT_GLOSSARY[m[2]]; + if (gloss) { + sub.dataset.tooltip = gloss; + sub.addEventListener("mouseenter", () => showTooltip(sub, gloss)); + sub.addEventListener("mouseleave", hideTooltip); + } container.appendChild(sub); } else { container.append("·"); diff --git a/cadetgui/widgets/elements/float_field.js b/cadetgui/widgets/elements/float_field.js index e8c235c..6416b96 100644 --- a/cadetgui/widgets/elements/float_field.js +++ b/cadetgui/widgets/elements/float_field.js @@ -4,6 +4,56 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; +// Body-appended, position:fixed tooltip: Jupyter output-area containers +// clip overflow, so a ::after on the gets cut off near boundaries. +// Colors are hardcoded (not var(--cg-*)) since this lives outside any +// .cadetgui-field-scoped stylesheet. +function tooltipColors() { + const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; + return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; +} + +function getTooltipEl() { + let tip = document.getElementById("cadetgui-tooltip"); + if (tip) return tip; + tip = document.createElement("div"); + tip.id = "cadetgui-tooltip"; + Object.assign(tip.style, { + position: "fixed", + padding: "6px 12px", + borderRadius: "2px", + fontFamily: "system-ui, -apple-system, sans-serif", + fontSize: "15px", + fontStyle: "normal", + lineHeight: "1.4", + whiteSpace: "nowrap", + pointerEvents: "none", + opacity: "0", + transition: "opacity 0.1s ease 80ms", + zIndex: "999999", + }); + document.body.appendChild(tip); + return tip; +} + +function showTooltip(anchorEl, text) { + const tip = getTooltipEl(); + const { bg, fg } = tooltipColors(); + tip.style.background = bg; + tip.style.color = fg; + tip.textContent = text; + const r = anchorEl.getBoundingClientRect(); + tip.style.left = `${r.left + r.width / 2}px`; + tip.style.top = `${r.bottom + 10}px`; + tip.style.transform = "translateX(-50%)"; + requestAnimationFrame(() => { tip.style.opacity = "1"; }); +} + +function hideTooltip() { + const tip = document.getElementById("cadetgui-tooltip"); + if (tip) tip.style.opacity = "0"; +} + function renderUnit(container, raw) { container.replaceChildren(); if (!raw) return; @@ -19,7 +69,12 @@ function renderUnit(container, raw) { } else if (m[2] !== undefined) { const sub = document.createElement("sub"); sub.textContent = m[2]; - if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + const gloss = UNIT_GLOSSARY[m[2]]; + if (gloss) { + sub.dataset.tooltip = gloss; + sub.addEventListener("mouseenter", () => showTooltip(sub, gloss)); + sub.addEventListener("mouseleave", hideTooltip); + } container.appendChild(sub); } else { container.append("·"); diff --git a/cadetgui/widgets/elements/float_list_field.js b/cadetgui/widgets/elements/float_list_field.js index 07e761e..5177e85 100644 --- a/cadetgui/widgets/elements/float_list_field.js +++ b/cadetgui/widgets/elements/float_list_field.js @@ -4,6 +4,56 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; +// Body-appended, position:fixed tooltip: Jupyter output-area containers +// clip overflow, so a ::after on the gets cut off near boundaries. +// Colors are hardcoded (not var(--cg-*)) since this lives outside any +// .cadetgui-field-scoped stylesheet. +function tooltipColors() { + const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; + return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; +} + +function getTooltipEl() { + let tip = document.getElementById("cadetgui-tooltip"); + if (tip) return tip; + tip = document.createElement("div"); + tip.id = "cadetgui-tooltip"; + Object.assign(tip.style, { + position: "fixed", + padding: "6px 12px", + borderRadius: "2px", + fontFamily: "system-ui, -apple-system, sans-serif", + fontSize: "15px", + fontStyle: "normal", + lineHeight: "1.4", + whiteSpace: "nowrap", + pointerEvents: "none", + opacity: "0", + transition: "opacity 0.1s ease 80ms", + zIndex: "999999", + }); + document.body.appendChild(tip); + return tip; +} + +function showTooltip(anchorEl, text) { + const tip = getTooltipEl(); + const { bg, fg } = tooltipColors(); + tip.style.background = bg; + tip.style.color = fg; + tip.textContent = text; + const r = anchorEl.getBoundingClientRect(); + tip.style.left = `${r.left + r.width / 2}px`; + tip.style.top = `${r.bottom + 10}px`; + tip.style.transform = "translateX(-50%)"; + requestAnimationFrame(() => { tip.style.opacity = "1"; }); +} + +function hideTooltip() { + const tip = document.getElementById("cadetgui-tooltip"); + if (tip) tip.style.opacity = "0"; +} + function renderUnit(container, raw) { container.replaceChildren(); if (!raw) return; @@ -19,7 +69,12 @@ function renderUnit(container, raw) { } else if (m[2] !== undefined) { const sub = document.createElement("sub"); sub.textContent = m[2]; - if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + const gloss = UNIT_GLOSSARY[m[2]]; + if (gloss) { + sub.dataset.tooltip = gloss; + sub.addEventListener("mouseenter", () => showTooltip(sub, gloss)); + sub.addEventListener("mouseleave", hideTooltip); + } container.appendChild(sub); } else { container.append("·"); diff --git a/cadetgui/widgets/elements/text_field.js b/cadetgui/widgets/elements/text_field.js index fda3692..db2125c 100644 --- a/cadetgui/widgets/elements/text_field.js +++ b/cadetgui/widgets/elements/text_field.js @@ -4,6 +4,56 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; +// Body-appended, position:fixed tooltip: Jupyter output-area containers +// clip overflow, so a ::after on the gets cut off near boundaries. +// Colors are hardcoded (not var(--cg-*)) since this lives outside any +// .cadetgui-field-scoped stylesheet. +function tooltipColors() { + const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; + return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; +} + +function getTooltipEl() { + let tip = document.getElementById("cadetgui-tooltip"); + if (tip) return tip; + tip = document.createElement("div"); + tip.id = "cadetgui-tooltip"; + Object.assign(tip.style, { + position: "fixed", + padding: "6px 12px", + borderRadius: "2px", + fontFamily: "system-ui, -apple-system, sans-serif", + fontSize: "15px", + fontStyle: "normal", + lineHeight: "1.4", + whiteSpace: "nowrap", + pointerEvents: "none", + opacity: "0", + transition: "opacity 0.1s ease 80ms", + zIndex: "999999", + }); + document.body.appendChild(tip); + return tip; +} + +function showTooltip(anchorEl, text) { + const tip = getTooltipEl(); + const { bg, fg } = tooltipColors(); + tip.style.background = bg; + tip.style.color = fg; + tip.textContent = text; + const r = anchorEl.getBoundingClientRect(); + tip.style.left = `${r.left + r.width / 2}px`; + tip.style.top = `${r.bottom + 10}px`; + tip.style.transform = "translateX(-50%)"; + requestAnimationFrame(() => { tip.style.opacity = "1"; }); +} + +function hideTooltip() { + const tip = document.getElementById("cadetgui-tooltip"); + if (tip) tip.style.opacity = "0"; +} + function renderUnit(container, raw) { container.replaceChildren(); if (!raw) return; @@ -19,7 +69,12 @@ function renderUnit(container, raw) { } else if (m[2] !== undefined) { const sub = document.createElement("sub"); sub.textContent = m[2]; - if (UNIT_GLOSSARY[m[2]]) sub.title = UNIT_GLOSSARY[m[2]]; + const gloss = UNIT_GLOSSARY[m[2]]; + if (gloss) { + sub.dataset.tooltip = gloss; + sub.addEventListener("mouseenter", () => showTooltip(sub, gloss)); + sub.addEventListener("mouseleave", hideTooltip); + } container.appendChild(sub); } else { container.append("·"); From 461f8723c7adec4b5620ff77ff31e3f4e8decc78 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 17:30:32 +0200 Subject: [PATCH 041/158] Rearrange sections --- cadetgui/widgets/chrome.css | 6 +++ cadetgui/widgets/composite/configuration.py | 43 ++++++++++++++++----- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css index 9036b1a..bab209f 100644 --- a/cadetgui/widgets/chrome.css +++ b/cadetgui/widgets/chrome.css @@ -47,6 +47,12 @@ align-items: center !important; } +.cadetgui-section-title { + font-size: 13px; + font-weight: 600; + color: var(--cg-muted); +} + .cadetgui-section { display: flex; flex-direction: column; diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 38f8c99..1860f47 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -69,24 +69,49 @@ def __init__( self._script_out = W.Textarea(layout=W.Layout(width="100%", height="220px", display="none")) self._script_out.add_class("cadetgui-script") - components_section = W.VBox([self._components]) + components_section = W.VBox( + [ + W.HTML("
Component System
"), + self._components, + ] + ) components_section.add_class("cadetgui-section") - toolbar = W.HBox( - [self._column_picker, self._binding_picker, self._model_picker], - layout=W.Layout(flex_flow="row wrap"), + column_section = W.VBox( + [ + W.HTML("
Column Model
"), + self._column_picker, + self._column_form_box, + ] ) - toolbar.add_class("cadetgui-toolbar") + column_section.add_class("cadetgui-section") + + binding_section = W.VBox( + [ + W.HTML("
Binding Model
"), + self._binding_picker, + self._binding_form_box, + ] + ) + binding_section.add_class("cadetgui-section") + + process_section = W.VBox( + [ + W.HTML("
Process
"), + self._model_picker, + self._model_form_box, + ] + ) + process_section.add_class("cadetgui-section") self.root = W.VBox( [ W.HTML(style_tag()), W.HTML("
Configuration
"), components_section, - toolbar, - self._column_form_box, - self._binding_form_box, - self._model_form_box, + column_section, + binding_section, + process_section, self._btn_export, self._script_out, self.status, From ee01b5ede1b3c495142857ba27b625304653503f Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 7 Sep 2026 18:07:06 +0200 Subject: [PATCH 042/158] Add Multiplexing and Multi Component Config Options for Binding --- cadetgui/cadetprocessadapter.py | 126 ++++++++++++------ cadetgui/widgets/composite/configuration.py | 63 ++++++++- cadetgui/widgets/elements/_shared.css | 10 ++ cadetgui/widgets/elements/float_list_field.js | 44 ++++-- cadetgui/widgets/elements/float_list_field.py | 26 +++- cadetgui/widgets/forms/renderer.py | 6 +- tests/test_configuration.py | 82 ++++++++++++ tests/test_elements.py | 21 +++ tests/test_forms.py | 9 ++ 9 files changed, 334 insertions(+), 53 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 39ca717..c02d0d6 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -35,6 +35,7 @@ class FieldSpec: min: float | None = None max: float | None = None units: str | None = None + component_names: tuple[str, ...] | None = None def require_positive(x: Any) -> None: @@ -61,23 +62,12 @@ def parse_float_list(v: Any) -> list[float]: # system.rst), but is the one volumetric-flow-rate unit CADET-Core uses # consistently everywhere else (e.g. CSTR's FLOWRATE_FILTER) -- inferred by # consistency, not invented, and noted here rather than silently assumed. +# +# Concentration fields (c_feed, c_load, c_salt_low, c_salt_high, c_eluent) are +# NOT in this dict -- they're genuinely per-component (`Inlet.c`), so they're +# built fresh per model-spec call by `_concentration_field()`, sized/named +# from the actual column's ComponentSystem, same as column/binding parameters. PARAMS: dict[str, FieldSpec] = { - "c_feed": FieldSpec( - "c_feed", "float_list", "Feed concentration", [10.0], - transform=parse_float_list, units="mol/m^3_IV", - ), - "c_load": FieldSpec( - "c_load", "float_list", "Load concentration", [50.0], - transform=parse_float_list, units="mol/m^3_IV", - ), - "c_salt_low": FieldSpec( - "c_salt_low", "float_list", "Low-salt buffer", [50.0], - transform=parse_float_list, units="mol/m^3_IV", - ), - "c_salt_high": FieldSpec( - "c_salt_high", "float_list", "High-salt buffer", [500.0], - transform=parse_float_list, units="mol/m^3_IV", - ), "flow_rate": FieldSpec( "flow_rate", "float", "Flow rate", 1.0e-6, validate=require_positive, units="m^3/s", @@ -105,9 +95,6 @@ def parse_float_list(v: Any) -> list[float]: "final_wash_duration": FieldSpec( "final_wash_duration", "float", "Final wash duration", 10.0, units="s", ), - "c_eluent": FieldSpec( - "c_eluent", "float", "Eluent (scalar)", 0.0, units="mol/m^3_IV", - ), } @@ -122,6 +109,18 @@ def _pick(keys: Sequence[str]) -> list[FieldSpec]: return [PARAMS[k] for k in keys] +def _concentration_field( + name: str, label: str, default_scalar: float, column: ChromatographicColumnBase +) -> FieldSpec: + """Per-component concentration field, sized/named from the column's ComponentSystem.""" + names = tuple(column.component_system.names) + n_comp = len(names) or 1 + return FieldSpec( + name, "float_list", label, [default_scalar] * n_comp, + transform=parse_float_list, units="mol/m^3_IV", component_names=names, + ) + + def batch_elution_spec(column: ChromatographicColumnBase) -> ModelSpec: def _build(v: Mapping[str, Any]) -> Any: return BatchElution( @@ -130,14 +129,15 @@ def _build(v: Mapping[str, Any]) -> Any: flow_rate=float(v["flow_rate"]), feed_duration=float(v["feed_duration"]), cycle_time=float(v["cycle_time"]), - c_eluent=float(v["c_eluent"]), + c_eluent=v["c_eluent"], ) - return ModelSpec( - title="Batch Elution", - fields=_pick(["c_feed", "flow_rate", "feed_duration", "cycle_time", "c_eluent"]), - build=_build, - ) + fields = [ + _concentration_field("c_feed", "Feed concentration", 10.0, column), + *_pick(["flow_rate", "feed_duration", "cycle_time"]), + _concentration_field("c_eluent", "Eluent concentration", 0.0, column), + ] + return ModelSpec(title="Batch Elution", fields=fields, build=_build) def lwe_spec(column: ChromatographicColumnBase) -> ModelSpec: @@ -154,15 +154,16 @@ def _build(v: Mapping[str, Any]) -> Any: final_wash_duration=float(v["final_wash_duration"]), ) - return ModelSpec( - title="Load–Wash–Elute (LWE)", - fields=_pick([ - "c_load", "c_salt_low", "c_salt_high", - "flow_rate", "load_duration", "wash_duration", - "gradient_duration", "final_wash_duration", + fields = [ + _concentration_field("c_load", "Load concentration", 50.0, column), + _concentration_field("c_salt_low", "Low-salt buffer", 50.0, column), + _concentration_field("c_salt_high", "High-salt buffer", 500.0, column), + *_pick([ + "flow_rate", "load_duration", "wash_duration", "gradient_duration", + "final_wash_duration", ]), - build=_build, - ) + ] + return ModelSpec(title="Load–Wash–Elute (LWE)", fields=fields, build=_build) # CLR, Flip-Flop, and MRSSR specs were removed for now (see ai-docs/REQUIREMENTS.md @@ -277,6 +278,20 @@ def _seed_default(category: str, model_name: str, name: str) -> float: return _GUI_SEED_DEFAULTS.get((category, None, name), 0.0) +# Column parameters CADET-Process treats as genuinely per-component +# (`SizedUnsignedList(size="n_comp")`, confirmed in ai-docs/ARCHITECTURE.md's +# "Parameter metadata schema" notes) but that most users want to enter as one +# shared value most of the time -- unlike binding-model parameters (rates, +# capacities, ...), which are per-component almost always by physical +# necessity. `ConfigurationWidget`'s multiplex toggle (gear icon on the +# Column Model section) offers these three as opt-in per-component editors; +# everywhere else they default to a single scalar that CADET-Process itself +# broadcasts to every component (confirmed: `col.axial_dispersion = 1e-8` -> +# `[1e-8, 1e-8, 1e-8]` for a 3-component system) -- not a GUI approximation, +# the real CADET-Process setter behavior. +MULTIPLEXABLE_COLUMN_PARAMS = frozenset({"axial_dispersion", "film_diffusion", "pore_diffusion"}) + + def _category_and_model(obj: Any) -> tuple[Optional[str], str]: model_name = type(obj).__name__ if isinstance(obj, BindingBaseClass): @@ -286,7 +301,14 @@ def _category_and_model(obj: Any) -> tuple[Optional[str], str]: return None, model_name -def _resolve_param(obj: Any, category: Optional[str], model_name: str, name: str): +def _resolve_param( + obj: Any, + category: Optional[str], + model_name: str, + name: str, + *, + multiplex: Optional[Dict[str, bool]] = None, +): """Resolve one parameter's kind/bounds/units/default. Ground truth (kind, bounds, units, whether it's per-component) comes from @@ -298,6 +320,10 @@ def _resolve_param(obj: Any, category: Optional[str], model_name: str, name: str purely from the object's current value when the schema doesn't (yet) know this category/model/parameter, so an unregistered model still renders something instead of raising. + + `multiplex` overrides `component_dependent` for names in + `MULTIPLEXABLE_COLUMN_PARAMS` -- everywhere else the schema's own flag + (ground truth, not a GUI choice) decides. """ meta = None if category is not None: @@ -314,9 +340,19 @@ def _resolve_param(obj: Any, category: Optional[str], model_name: str, name: str return current, kind, transform, {}, None dtype = meta["dtype"] - kind = "float_list" if (dtype == "float" and meta["component_dependent"]) else dtype - - if current is not None: + component_dependent = meta["component_dependent"] + if multiplex is not None and name in MULTIPLEXABLE_COLUMN_PARAMS: + component_dependent = bool(multiplex.get(name, False)) + kind = "float_list" if (dtype == "float" and component_dependent) else dtype + + if current is not None and isinstance(current, (list, tuple)) and kind == "float": + # CADET-Process always stores these as a per-component list internally, + # even when it was set via scalar broadcast -- if multiplex was just + # toggled off, `current` is still that list. "multiplex off" means + # "one value for every component," so the first entry is the + # representative scalar (matches how it would've been entered). + default = current[0] if len(current) else _seed_default(category, model_name, name) + elif current is not None: default = current elif kind == "float_list": n_comp = getattr(obj, "n_comp", None) or 1 @@ -338,26 +374,38 @@ def _coerce_to_kind(kind: str, val): return float(val) -def build_parameter_config_spec(obj: Any) -> ModelSpec: +def build_parameter_config_spec( + obj: Any, *, multiplex: Optional[Dict[str, bool]] = None +) -> ModelSpec: """Build a ModelSpec from any object exposing `required_parameters`. Generic over what `obj` is — a column, a binding model, anything with the CADET-Process `required_parameters` convention — so the same function drives both the column form and the binding-model form. + + `multiplex`: see `MULTIPLEXABLE_COLUMN_PARAMS` — only meaningful for the + column category's `axial_dispersion`/`film_diffusion`/`pore_diffusion`; + ignored (and unnecessary) for everything else, which always renders + per-component when the schema says it's component-dependent. """ req = getattr(obj, "required_parameters", None) or [] names = _unique_preserve_order(list(req)) category, model_name = _category_and_model(obj) + component_names = tuple(obj.component_system.names) if hasattr(obj, "component_system") else () fields: list[FieldSpec] = [] kinds: dict[str, str] = {} for name in names: - default, kind, transform, bounds, units = _resolve_param(obj, category, model_name, name) + default, kind, transform, bounds, units = _resolve_param( + obj, category, model_name, name, multiplex=multiplex + ) kinds[name] = kind label = name.replace("_", " ").capitalize() fs_kwargs = dict(name=name, kind=kind, label=label, default=default, transform=transform, **bounds) if units is not None: fs_kwargs["units"] = units + if kind == "float_list" and component_names: + fs_kwargs["component_names"] = component_names fields.append(FieldSpec(**fs_kwargs)) def _apply(values: Mapping[str, Any]) -> Any: diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 1860f47..3b82aa0 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -12,6 +12,7 @@ DEFAULT_BINDING_FACTORIES, DEFAULT_COLUMN_FACTORIES, MODEL_REGISTRY, + MULTIPLEXABLE_COLUMN_PARAMS, build_parameter_config_spec, ) from .._chrome import style_tag @@ -48,6 +49,33 @@ def __init__( self._binding_form: Optional[FormRenderer] = None self._model_form: Optional[FormRenderer] = None + self._multiplex_state: Dict[str, bool] = dict.fromkeys(MULTIPLEXABLE_COLUMN_PARAMS, False) + self._multiplex_checkboxes: Dict[str, W.Checkbox] = { + name: W.Checkbox( + description=f"Enable {name.replace('_', ' ').title()} Multiplex", + value=False, + indent=False, + ) + for name in MULTIPLEXABLE_COLUMN_PARAMS + } + for name, checkbox in self._multiplex_checkboxes.items(): + checkbox.observe(self._make_on_multiplex_change(name), names="value") + + self._btn_settings = W.Button( + icon="cog", tooltip="Column discretization settings", + layout=W.Layout(width="36px"), + ) + self._btn_settings.on_click(self._on_toggle_settings) + self._settings_box = W.VBox( + [ + W.HTML("
Settings
"), + *self._multiplex_checkboxes.values(), + ], + layout=W.Layout(display="none"), + ) + self._settings_box.add_class("cadetgui-section") + self._settings_box.add_class("cadetgui-settings-box") + self._components = ComponentListField(label="Components:") self._column_picker = ChoiceField( label="Column Model:", options=list(self._columns.items()) @@ -77,9 +105,17 @@ def __init__( ) components_section.add_class("cadetgui-section") - column_section = W.VBox( + column_header = W.HBox( [ W.HTML("
Column Model
"), + self._btn_settings, + ], + layout=W.Layout(justify_content="space-between", align_items="center"), + ) + column_section = W.VBox( + [ + column_header, + self._settings_box, self._column_picker, self._column_form_box, ] @@ -172,6 +208,19 @@ def _on_selection_change(self, change: dict) -> None: return self._rebuild_forms() + def _on_toggle_settings(self, _btn: Any) -> None: + shown = self._settings_box.layout.display != "none" + self._settings_box.layout.display = "none" if shown else "" + + def _make_on_multiplex_change(self, name: str) -> Callable[[dict], None]: + def _on_change(change: dict) -> None: + if change.get("name") != "value": + return + self._multiplex_state[name] = bool(change["new"]) + self._rebuild_forms() + + return _on_change + def _on_process_built(self, built: Any) -> None: self.process = built self._notify() @@ -187,7 +236,17 @@ def _rebuild_forms(self) -> None: self._model_form_box.children = () return - self._column_form = FormRenderer(build_parameter_config_spec(column)) + column_params = set(getattr(column, "required_parameters", None) or []) + applicable = column_params & MULTIPLEXABLE_COLUMN_PARAMS + for name, checkbox in self._multiplex_checkboxes.items(): + checkbox.layout.display = "" if name in applicable else "none" + self._btn_settings.layout.display = "" if applicable else "none" + if not applicable: + self._settings_box.layout.display = "none" + + self._column_form = FormRenderer( + build_parameter_config_spec(column, multiplex=self._multiplex_state) + ) self._column_form_box.children = (self._column_form.root,) def _attach_binding(built: Any, col: Any = column) -> None: diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index 92a239c..228e7d8 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -155,6 +155,16 @@ width: fit-content; } +.cadetgui-field-list-add[hidden] { + display: none; +} + +.cadetgui-field-component-name { + color: var(--cg-muted); + font-family: system-ui, -apple-system, sans-serif; + font-size: 12px; +} + .cadetgui-field-list-controls { display: flex; align-items: center; diff --git a/cadetgui/widgets/elements/float_list_field.js b/cadetgui/widgets/elements/float_list_field.js index 5177e85..6fb4071 100644 --- a/cadetgui/widgets/elements/float_list_field.js +++ b/cadetgui/widgets/elements/float_list_field.js @@ -105,6 +105,10 @@ function render({ model, el }) { const rows = document.createElement("div"); body.appendChild(rows); + function isPinned() { + return (model.get("component_names") || []).length > 0; + } + function currentValues() { return Array.from(rows.querySelectorAll("input")).map((i) => parseFloat(i.value) || 0); } @@ -114,7 +118,7 @@ function render({ model, el }) { model.save_changes(); } - function addRow(value) { + function addRow(value, componentName) { const row = document.createElement("div"); row.className = "cadetgui-field-list-row"; @@ -125,14 +129,16 @@ function render({ model, el }) { input.addEventListener("change", commit); row.appendChild(input); - const rm = document.createElement("button"); - rm.type = "button"; - rm.textContent = "−"; - rm.addEventListener("click", () => { - row.remove(); - commit(); - }); - row.appendChild(rm); + if (!isPinned()) { + const rm = document.createElement("button"); + rm.type = "button"; + rm.textContent = "−"; + rm.addEventListener("click", () => { + row.remove(); + commit(); + }); + row.appendChild(rm); + } const unitEl = document.createElement("span"); unitEl.className = "cadetgui-field-unit"; @@ -140,11 +146,25 @@ function render({ model, el }) { unitEl.hidden = !model.get("units"); row.appendChild(unitEl); + const names = model.get("component_names") || []; + if (componentName !== undefined && names.length > 1) { + const nameEl = document.createElement("span"); + nameEl.className = "cadetgui-field-component-name"; + nameEl.textContent = `[${componentName}]`; + row.appendChild(nameEl); + } + rows.appendChild(row); } function syncFromModel() { rows.innerHTML = ""; + const names = model.get("component_names") || []; + if (names.length > 0) { + const values = model.get("value") || []; + names.forEach((name, i) => addRow(values[i] ?? 0, name)); + return; + } const values = model.get("value") || []; (values.length ? values : [0]).forEach((v) => addRow(v)); } @@ -160,6 +180,10 @@ function render({ model, el }) { body.appendChild(addBtn); wrap.appendChild(body); + const syncPinned = () => { + addBtn.hidden = isPinned(); + }; + const syncUnits = () => { const units = model.get("units"); rows.querySelectorAll(".cadetgui-field-unit").forEach((unitEl) => { @@ -177,10 +201,12 @@ function render({ model, el }) { }; wrap.appendChild(err); + syncPinned(); syncFromModel(); syncError(); model.on("change:value", syncFromModel); + model.on("change:component_names", () => { syncPinned(); syncFromModel(); }); model.on("change:error", syncError); model.on("change:label", () => { labelEl.textContent = model.get("label"); }); model.on("change:units", syncUnits); diff --git a/cadetgui/widgets/elements/float_list_field.py b/cadetgui/widgets/elements/float_list_field.py index 4b0f851..1b6e9d0 100644 --- a/cadetgui/widgets/elements/float_list_field.py +++ b/cadetgui/widgets/elements/float_list_field.py @@ -16,9 +16,22 @@ class FloatListField(Element): - """Editable list of floats with add/remove rows.""" + """List of floats. + + Two modes: + + - **Pinned** (`component_names` given, non-empty): exactly one row per + name, no add/remove -- the row count is controlled externally (by the + component system), not by the user. Each row is labeled with its + component's name once there's more than one (a single component has + nothing to disambiguate). + - **Free-form** (`component_names` omitted/empty): the original + add/remove row editor, for values with no natural per-component + correspondence. + """ value = T.List(T.Float()).tag(sync=True) + component_names = T.List(T.Unicode()).tag(sync=True) _esm = _DIR / "float_list_field.js" _css = _DIR / "_shared.css" @@ -29,7 +42,16 @@ def __init__( label: str = "", value: Optional[Sequence[float]] = None, units: Optional[str] = None, + component_names: Optional[Sequence[str]] = None, validate: Optional[Validator] = None, ) -> None: + names: List[str] = list(component_names) if component_names else [] values: List[float] = [float(v) for v in value] if value else [0.0] - super().__init__(label=label, value=values, units=units or "", validate=validate) + if names: + # pinned mode: row count must exactly match the component count, + # regardless of what `value` happened to contain. + values = (values + [0.0] * len(names))[: len(names)] + super().__init__( + label=label, value=values, units=units or "", component_names=names, + validate=validate, + ) diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index 763a5d0..c52f153 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -35,7 +35,11 @@ def _coerced_default(f: FieldSpec) -> Any: validate=f.validate, ), "float_list": lambda f: FloatListField( - label=f.label or f.name, value=_coerced_default(f), units=f.units, validate=f.validate + label=f.label or f.name, + value=_coerced_default(f), + units=f.units, + component_names=f.component_names, + validate=f.validate, ), "bool": lambda f: BoolField( label=f.label or f.name, value=_coerced_default(f), units=f.units, validate=f.validate diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 973c4b9..ebdbe70 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -216,6 +216,88 @@ def test_binding_model_scales_to_multiple_named_components(): # this test shows. See ai-docs/REQUIREMENTS.md. +def test_binding_form_fields_get_component_names_matching_component_system(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein"] + cw._binding_picker.value = cw._binding_registry["Linear"] + + by_name = {f.name: f for f in cw._binding_form.spec.fields} + assert by_name["adsorption_rate"].component_names == ("Salt", "Protein") + assert by_name["desorption_rate"].component_names == ("Salt", "Protein") + + +def test_column_geometry_fields_default_to_scalar_non_multiplexed(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["GRM"] + + by_name = {f.name: f for f in cw._column_form.spec.fields} + assert by_name["axial_dispersion"].kind == "float" + assert by_name["film_diffusion"].kind == "float" + assert by_name["pore_diffusion"].kind == "float" + + +def test_enabling_multiplex_switches_field_to_per_component(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein"] + cw._column_picker.value = cw._columns["GRM"] + + cw._multiplex_checkboxes["axial_dispersion"].value = True + + by_name = {f.name: f for f in cw._column_form.spec.fields} + assert by_name["axial_dispersion"].kind == "float_list" + assert by_name["axial_dispersion"].component_names == ("Salt", "Protein") + # untouched params stay scalar + assert by_name["film_diffusion"].kind == "float" + + +def test_multiplex_settings_hidden_for_column_without_any_applicable_param(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["CSTR"] + assert cw._btn_settings.layout.display == "none" + + +def test_multiplex_checkbox_visibility_matches_column_capabilities(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["LRM"] # LumpedRateModelWithoutPores: no particles + assert cw._multiplex_checkboxes["axial_dispersion"].layout.display == "" + assert cw._multiplex_checkboxes["film_diffusion"].layout.display == "none" + assert cw._multiplex_checkboxes["pore_diffusion"].layout.display == "none" + + +def test_scalar_column_field_broadcasts_via_cadetprocess_on_apply(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein", "Impurity"] + cw._column_picker.value = cw._columns["GRM"] + + cw._column_form._on_apply(None) + column = cw._get_column() + assert column.axial_dispersion == [column.axial_dispersion[0]] * 3 + + +def test_multiplexed_column_field_keeps_distinct_per_component_values(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein"] + cw._column_picker.value = cw._columns["GRM"] + cw._multiplex_checkboxes["axial_dispersion"].value = True + + cw._column_form._elements["axial_dispersion"].value = [1e-8, 2e-8] + cw._column_form._on_apply(None) + + column = cw._get_column() + assert column.axial_dispersion == [1e-8, 2e-8] + + +def test_concentration_fields_are_sized_and_named_from_component_system(): + cw = ConfigurationWidget() + cw._components.value = ["Salt", "Protein", "Impurity"] + cw._model_picker.value = cw._registry["Batch Elution"] + + by_name = {f.name: f for f in cw._model_form.spec.fields} + assert by_name["c_feed"].component_names == ("Salt", "Protein", "Impurity") + assert len(by_name["c_feed"].default) == 3 + assert by_name["c_eluent"].component_names == ("Salt", "Protein", "Impurity") + + def test_export_script_reflects_a_renamed_single_component(): cw = ConfigurationWidget() cw._components.value = ["MyProtein"] # still one component, just renamed diff --git a/tests/test_elements.py b/tests/test_elements.py index 462084d..e819de0 100644 --- a/tests/test_elements.py +++ b/tests/test_elements.py @@ -89,6 +89,27 @@ def test_floatlistfield_defaults_and_set(): assert fl2.value == [4.0] +def test_floatlistfield_free_form_has_no_component_names(): + fl = FloatListField(value=[1.0, 2.0]) + assert fl.component_names == [] + + +def test_floatlistfield_pinned_mode_sizes_value_to_component_count(): + fl = FloatListField(value=[1.0], component_names=["Salt", "Protein", "Impurity"]) + assert fl.component_names == ["Salt", "Protein", "Impurity"] + assert fl.value == [1.0, 0.0, 0.0] + + +def test_floatlistfield_pinned_mode_truncates_longer_value(): + fl = FloatListField(value=[1.0, 2.0, 3.0], component_names=["Salt"]) + assert fl.value == [1.0] + + +def test_floatlistfield_pinned_mode_with_matching_value_is_unchanged(): + fl = FloatListField(value=[1.0, 2.0], component_names=["Salt", "Protein"]) + assert fl.value == [1.0, 2.0] + + def test_choicefield_selects_by_value_and_tracks_index(): col_a, col_b = object(), object() c = ChoiceField(label="Column", options=[("GRM", col_a), ("LRMP", col_b)], value=col_b) diff --git a/tests/test_forms.py b/tests/test_forms.py index 7693ab1..362466a 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -41,6 +41,15 @@ def test_element_for_field_passes_units_through_to_the_element(): assert unitless.units == "" +def test_element_for_field_passes_component_names_through_to_float_list(): + field = FieldSpec("rate", "float_list", default=[1.0, 2.0], component_names=("Salt", "Protein")) + element = element_for_field(field) + assert element.component_names == ["Salt", "Protein"] + + unnamed = element_for_field(FieldSpec("rate", "float_list", default=[1.0])) + assert unnamed.component_names == [] + + def test_form_renders_one_element_per_field_with_defaults(): form = FormRenderer(make_spec()) assert set(form._elements) == {"rate", "name", "active", "levels"} From ed44f6335e036341409a7951a0690d29413e5e52 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 8 Sep 2026 08:41:02 +0200 Subject: [PATCH 043/158] Remove comments --- cadetgui/cadetprocessadapter.py | 82 ++++++------------- cadetgui/widgets/composite/configuration.py | 15 +--- cadetgui/widgets/elements/bool_field.js | 7 +- cadetgui/widgets/elements/float_field.js | 7 +- cadetgui/widgets/elements/float_list_field.js | 7 +- cadetgui/widgets/elements/text_field.js | 7 +- 6 files changed, 40 insertions(+), 85 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index c02d0d6..551ed03 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -55,18 +55,12 @@ def parse_float_list(v: Any) -> list[float]: return vals -# Units sourced from CADET-Core docs (interface/unit_operations/inlet.rst's -# CONST_COEFF for concentrations: mol/m_IV^-3; interface/solver.rst's -# SECTION_TIMES for durations: s). `flow_rate`'s m^3/s isn't documented for -# this exact field (Inlet-to-column connection flow rate isn't itemized in -# system.rst), but is the one volumetric-flow-rate unit CADET-Core uses -# consistently everywhere else (e.g. CSTR's FLOWRATE_FILTER) -- inferred by -# consistency, not invented, and noted here rather than silently assumed. +# Units: mol/m^3_IV (inlet.rst CONST_COEFF), s (solver.rst SECTION_TIMES), +# flow_rate m^3/s by consistency with CADET-Core's other flow-rate fields. # -# Concentration fields (c_feed, c_load, c_salt_low, c_salt_high, c_eluent) are -# NOT in this dict -- they're genuinely per-component (`Inlet.c`), so they're -# built fresh per model-spec call by `_concentration_field()`, sized/named -# from the actual column's ComponentSystem, same as column/binding parameters. +# Concentration fields (c_feed, c_load, c_salt_low, c_salt_high, c_eluent) +# aren't here -- they're per-component (`Inlet.c`), built by +# `_concentration_field()` per model-spec call instead. PARAMS: dict[str, FieldSpec] = { "flow_rate": FieldSpec( "flow_rate", "float", "Flow rate", 1.0e-6, @@ -166,8 +160,7 @@ def _build(v: Mapping[str, Any]) -> Any: return ModelSpec(title="Load–Wash–Elute (LWE)", fields=fields, build=_build) -# CLR, Flip-Flop, and MRSSR specs were removed for now (see ai-docs/REQUIREMENTS.md -# "Open decisions" — not rejected, just out of scope until picked back up). +# CLR/Flip-Flop/MRSSR: see ai-docs/REQUIREMENTS.md "Open decisions". MODEL_REGISTRY: dict[str, Callable[[ChromatographicColumnBase], ModelSpec]] = { "Batch Elution": batch_elution_spec, "Load–Wash–Elute (LWE)": lwe_spec, @@ -251,14 +244,9 @@ def _infer_kind(x) -> str: return "float" -# GUI-only seed defaults: a sensible starting value for a blank form, so -# "Apply" without touching anything doesn't build a degenerate (zero-length, -# zero-porosity) column. CADET-Core has no canonical default for these -- -# they're mandatory, problem-specific physical inputs -- so this deliberately -# lives here rather than in parameters/interface.json (which is the ground-truth -# CADET-Process<->CADET-Core mapping, not a GUI convenience). Shared across -# column models via the `None` model slot; add a `(category, "ModelName", name)` -# entry only if a specific model genuinely needs a different seed. +# Starting values so a blank form doesn't Apply a degenerate column; +# CADET-Core has no canonical default for these. `None` model slot = shared +# across column models; add a specific model name only to override it. _GUI_SEED_DEFAULTS: dict[tuple[str, Optional[str], str], float] = { ("column", None, "diameter"): 0.024, ("column", None, "length"): 0.5, @@ -278,17 +266,11 @@ def _seed_default(category: str, model_name: str, name: str) -> float: return _GUI_SEED_DEFAULTS.get((category, None, name), 0.0) -# Column parameters CADET-Process treats as genuinely per-component -# (`SizedUnsignedList(size="n_comp")`, confirmed in ai-docs/ARCHITECTURE.md's -# "Parameter metadata schema" notes) but that most users want to enter as one -# shared value most of the time -- unlike binding-model parameters (rates, -# capacities, ...), which are per-component almost always by physical -# necessity. `ConfigurationWidget`'s multiplex toggle (gear icon on the -# Column Model section) offers these three as opt-in per-component editors; -# everywhere else they default to a single scalar that CADET-Process itself -# broadcasts to every component (confirmed: `col.axial_dispersion = 1e-8` -> -# `[1e-8, 1e-8, 1e-8]` for a 3-component system) -- not a GUI approximation, -# the real CADET-Process setter behavior. +# Per-component in CADET-Process but usually entered as one shared value, +# unlike binding parameters (per-component by physical necessity). Default +# scalar; `ConfigurationWidget`'s multiplex toggle opts a name into +# per-component editing -- CADET-Process broadcasts a scalar assignment to +# every component either way. MULTIPLEXABLE_COLUMN_PARAMS = frozenset({"axial_dispersion", "film_diffusion", "pore_diffusion"}) @@ -311,19 +293,12 @@ def _resolve_param( ): """Resolve one parameter's kind/bounds/units/default. - Ground truth (kind, bounds, units, whether it's per-component) comes from - `parameters/interface.json` via `category`/`model_name` -- see - ai-docs/ARCHITECTURE.md's "Parameter metadata schema" for why this is - nested per-model rather than one flat dict (e.g. `Langmuir.capacity` is - per-component, `StericMassAction.capacity` is a single scalar; same - CADET-Process attribute name, different shape). Falls back to inferring - purely from the object's current value when the schema doesn't (yet) know - this category/model/parameter, so an unregistered model still renders - something instead of raising. - - `multiplex` overrides `component_dependent` for names in - `MULTIPLEXABLE_COLUMN_PARAMS` -- everywhere else the schema's own flag - (ground truth, not a GUI choice) decides. + Ground truth comes from `parameters/interface.json` via + `category`/`model_name` (nested per-model, since e.g. `Langmuir.capacity` + and `StericMassAction.capacity` differ in shape despite the same name). + Falls back to inferring from the object's current value for an + unregistered category/model/parameter. `multiplex` overrides + `component_dependent` for `MULTIPLEXABLE_COLUMN_PARAMS` only. """ meta = None if category is not None: @@ -346,11 +321,7 @@ def _resolve_param( kind = "float_list" if (dtype == "float" and component_dependent) else dtype if current is not None and isinstance(current, (list, tuple)) and kind == "float": - # CADET-Process always stores these as a per-component list internally, - # even when it was set via scalar broadcast -- if multiplex was just - # toggled off, `current` is still that list. "multiplex off" means - # "one value for every component," so the first entry is the - # representative scalar (matches how it would've been entered). + # CADET-Process stores these as a list even after scalar broadcast. default = current[0] if len(current) else _seed_default(category, model_name, name) elif current is not None: default = current @@ -379,14 +350,9 @@ def build_parameter_config_spec( ) -> ModelSpec: """Build a ModelSpec from any object exposing `required_parameters`. - Generic over what `obj` is — a column, a binding model, anything with the - CADET-Process `required_parameters` convention — so the same function - drives both the column form and the binding-model form. - - `multiplex`: see `MULTIPLEXABLE_COLUMN_PARAMS` — only meaningful for the - column category's `axial_dispersion`/`film_diffusion`/`pore_diffusion`; - ignored (and unnecessary) for everything else, which always renders - per-component when the schema says it's component-dependent. + Generic over `obj` (column, binding model, ...) so the same function + drives every form. `multiplex` only matters for + `MULTIPLEXABLE_COLUMN_PARAMS`. """ req = getattr(obj, "required_parameters", None) or [] names = _unique_preserve_order(list(req)) diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 3b82aa0..da6b478 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -185,12 +185,8 @@ def _get_binding_model(self) -> Any: column = self._get_column() if factory is None or column is None: return None - # Keyed by (factory, id(column)) rather than just factory: a binding - # model's component_system must be the *same object* as its column's - # (CADET-Process raises "Component systems do not match" otherwise), - # and each distinct column instance gets its own ComponentSystem — so - # a binding model cached against a since-replaced column would no - # longer be attachable to the current one. + # Keyed by id(column) too: a binding model's component_system must be + # the same object as its column's, and each column gets its own. cache_key = (factory, id(column)) if cache_key not in self._binding_cache: self._binding_cache[cache_key] = factory(column.component_system) @@ -269,11 +265,8 @@ def _attach_binding(built: Any, col: Any = column) -> None: def export_script(self) -> str: """Generate an executable CADET-Process Python script for the current build. - Introspects the actual built objects' classes (`type(obj).__module__` / - `__name__`) rather than a hardcoded column/model/binding name mapping, so - this works for anything registered — no per-type special-casing - (PRODUCT_VISION.md ARCH-003: the "expert escape hatch"/anti-black-box - requirement). + Introspects the built objects' classes rather than a hardcoded + column/model/binding mapping, so it works for anything registered. """ if ( self.process is None diff --git a/cadetgui/widgets/elements/bool_field.js b/cadetgui/widgets/elements/bool_field.js index e8d7007..11abb94 100644 --- a/cadetgui/widgets/elements/bool_field.js +++ b/cadetgui/widgets/elements/bool_field.js @@ -4,10 +4,9 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; -// Body-appended, position:fixed tooltip: Jupyter output-area containers -// clip overflow, so a ::after on the gets cut off near boundaries. -// Colors are hardcoded (not var(--cg-*)) since this lives outside any -// .cadetgui-field-scoped stylesheet. +// Body-appended, fixed-position tooltip: Jupyter output areas clip +// overflow, so a ::after here gets cut off. Colors hardcoded -- outside +// any .cadetgui-field-scoped stylesheet. function tooltipColors() { const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; diff --git a/cadetgui/widgets/elements/float_field.js b/cadetgui/widgets/elements/float_field.js index 6416b96..f28b671 100644 --- a/cadetgui/widgets/elements/float_field.js +++ b/cadetgui/widgets/elements/float_field.js @@ -4,10 +4,9 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; -// Body-appended, position:fixed tooltip: Jupyter output-area containers -// clip overflow, so a ::after on the gets cut off near boundaries. -// Colors are hardcoded (not var(--cg-*)) since this lives outside any -// .cadetgui-field-scoped stylesheet. +// Body-appended, fixed-position tooltip: Jupyter output areas clip +// overflow, so a ::after here gets cut off. Colors hardcoded -- outside +// any .cadetgui-field-scoped stylesheet. function tooltipColors() { const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; diff --git a/cadetgui/widgets/elements/float_list_field.js b/cadetgui/widgets/elements/float_list_field.js index 6fb4071..c407317 100644 --- a/cadetgui/widgets/elements/float_list_field.js +++ b/cadetgui/widgets/elements/float_list_field.js @@ -4,10 +4,9 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; -// Body-appended, position:fixed tooltip: Jupyter output-area containers -// clip overflow, so a ::after on the gets cut off near boundaries. -// Colors are hardcoded (not var(--cg-*)) since this lives outside any -// .cadetgui-field-scoped stylesheet. +// Body-appended, fixed-position tooltip: Jupyter output areas clip +// overflow, so a ::after here gets cut off. Colors hardcoded -- outside +// any .cadetgui-field-scoped stylesheet. function tooltipColors() { const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; diff --git a/cadetgui/widgets/elements/text_field.js b/cadetgui/widgets/elements/text_field.js index db2125c..69c1b07 100644 --- a/cadetgui/widgets/elements/text_field.js +++ b/cadetgui/widgets/elements/text_field.js @@ -4,10 +4,9 @@ const UNIT_GLOSSARY = { IV: "interstitial volume", }; -// Body-appended, position:fixed tooltip: Jupyter output-area containers -// clip overflow, so a ::after on the gets cut off near boundaries. -// Colors are hardcoded (not var(--cg-*)) since this lives outside any -// .cadetgui-field-scoped stylesheet. +// Body-appended, fixed-position tooltip: Jupyter output areas clip +// overflow, so a ::after here gets cut off. Colors hardcoded -- outside +// any .cadetgui-field-scoped stylesheet. function tooltipColors() { const dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches; return dark ? { bg: "#9ca3af", fg: "#1f2937" } : { bg: "#6b7280", fg: "#ffffff" }; From 6ab40c99f26e36b96c5c3430bfac569e9cbab041 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 8 Sep 2026 14:45:04 +0200 Subject: [PATCH 044/158] Add event sliders --- cadetgui/widgets/chrome.css | 12 ++ cadetgui/widgets/composite/configuration.py | 123 +++++++++++++++++++- cadetgui/widgets/forms/renderer.py | 4 + tests/test_configuration.py | 63 ++++++++++ 4 files changed, 200 insertions(+), 2 deletions(-) diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css index bab209f..6f8f0c0 100644 --- a/cadetgui/widgets/chrome.css +++ b/cadetgui/widgets/chrome.css @@ -63,6 +63,18 @@ background: color-mix(in srgb, var(--cg-border) 6%, transparent); } +.cadetgui-row { + display: flex; + flex-flow: row wrap; + gap: 12px; + align-items: flex-start; +} + +.cadetgui-row > .cadetgui-section-half { + flex: 1 1 340px; + min-width: 0; +} + .cadetgui-section.cadetgui-settings-box { gap: 4px; background: color-mix(in srgb, var(--cg-fg) 12%, var(--cg-bg)); diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index da6b478..c7413d5 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -6,7 +6,9 @@ from typing import Any, Callable, Dict, List, Optional import ipywidgets as W +import matplotlib.pyplot as plt from CADETProcess.processModel import ComponentSystem +from IPython.display import clear_output, display from ...cadetprocessadapter import ( DEFAULT_BINDING_FACTORIES, @@ -22,6 +24,11 @@ __all__ = ["ConfigurationWidget"] +def _round_10sf(v: float) -> float: + """Round to 10 significant figures, clearing browser-slider float noise.""" + return float(f"{v:.10g}") + + class ConfigurationWidget: """Pick a unit operation + binding model + model-builder template, build a process. @@ -48,6 +55,7 @@ def __init__( self._column_form: Optional[FormRenderer] = None self._binding_form: Optional[FormRenderer] = None self._model_form: Optional[FormRenderer] = None + self._event_sliders: Dict[str, W.FloatSlider] = {} self._multiplex_state: Dict[str, bool] = dict.fromkeys(MULTIPLEXABLE_COLUMN_PARAMS, False) self._multiplex_checkboxes: Dict[str, W.Checkbox] = { @@ -90,6 +98,8 @@ def __init__( self._column_form_box = W.VBox([]) self._binding_form_box = W.VBox([]) self._model_form_box = W.VBox([]) + self._event_plot_label = W.HTML("
Event Timeline
") + self._event_plot_out = W.Output() self.status = W.HTML("Select a column and model.") self.status.add_class("cadetgui-status") @@ -121,6 +131,7 @@ def __init__( ] ) column_section.add_class("cadetgui-section") + column_section.add_class("cadetgui-section-half") binding_section = W.VBox( [ @@ -130,12 +141,18 @@ def __init__( ] ) binding_section.add_class("cadetgui-section") + binding_section.add_class("cadetgui-section-half") + + column_binding_row = W.HBox([column_section, binding_section]) + column_binding_row.add_class("cadetgui-row") process_section = W.VBox( [ W.HTML("
Process
"), self._model_picker, self._model_form_box, + self._event_plot_label, + self._event_plot_out, ] ) process_section.add_class("cadetgui-section") @@ -145,8 +162,7 @@ def __init__( W.HTML(style_tag()), W.HTML("
Configuration
"), components_section, - column_section, - binding_section, + column_binding_row, process_section, self._btn_export, self._script_out, @@ -230,6 +246,7 @@ def _rebuild_forms(self) -> None: self._column_form_box.children = () self._binding_form_box.children = () self._model_form_box.children = () + self._clear_event_section() return column_params = set(getattr(column, "required_parameters", None) or []) @@ -255,6 +272,7 @@ def _attach_binding(built: Any, col: Any = column) -> None: self._model_form = FormRenderer(model_fn(column), on_built=self._on_process_built) self._model_form_box.children = (self._model_form.root,) + self._rebuild_event_sliders() self.status.value = ( "Configure the column, binding model, and process, then Apply each" @@ -262,6 +280,107 @@ def _attach_binding(built: Any, col: Any = column) -> None: " and binding model at the time)." ) + def _clear_event_section(self) -> None: + self._event_sliders = {} + with self._event_plot_out: + clear_output() + + def _rebuild_event_sliders(self) -> None: + """Slider per scalar timing/flow field, spliced right next to its own field. + + Only `float`-kind fields get a slider — the per-component + concentration fields stay list-editors, untouched. A slider move + rebuilds a throwaway process (cheap: no solver call) and redraws + `process.plot_events()`; it does not commit to `.process` or notify + listeners — only the form's own Apply button does that. + """ + self._event_sliders = {} + if self._model_form is None: + self._clear_event_section() + return + + for f in self._model_form.spec.fields: + if f.kind != "float": + continue + el = self._model_form.element(f.name) + default = float(el.value) + # min=0 and step=default/100 put the default exactly on the + # slider's step grid -- otherwise the browser snaps the handle + # to the nearest step on render and reports that back, quietly + # overwriting the clean default via the link below. + step = default / 100 if default > 0 else 0.01 + slider = W.FloatSlider( + value=default, + min=0.0, + max=default * 5 if default > 0 else 1.0, + step=step, + readout=False, # the linked field already shows the value + layout=W.Layout(width="220px"), + ) + # dlink + rounding, not link: the browser's slider reports + # position as a float with drag-accumulated noise (e.g. + # 19620.00000000004), which a plain link would pass straight + # into the field unrounded. + W.dlink((slider, "value"), (el, "value"), transform=_round_10sf) + W.dlink((el, "value"), (slider, "value"), transform=_round_10sf) + slider.observe(lambda _change: self._redraw_event_plot(), names="value") + self._event_sliders[f.name] = slider + + # Pair each field's row with its slider in place, rather than + # listing every slider together below the whole form. + new_children = [] + for child in self._model_form.root.children: + paired = next( + ( + self._event_sliders[f.name] + for f in self._model_form.spec.fields + if f.name in self._event_sliders and child is self._model_form.element(f.name) + ), + None, + ) + new_children.append(W.HBox([child, paired]) if paired is not None else child) + self._model_form.root.children = tuple(new_children) + + self._event_plot_label.layout.display = "" if self._event_sliders else "none" + self._redraw_event_plot() + + def _redraw_event_plot(self) -> None: + if self._model_form is None or not self._model_form.is_valid: + return + try: + values = self._model_form.collect_values() + preview = self._model_form.spec.build(values) + fig, axes = preview.plot_events(x_axis_in_minutes=True) + except Exception: + return + axes = list(axes) if hasattr(axes, "__iter__") else [axes] + + # plot_events() always stacks one subplot per parameter in a single + # column; re-plot the same lines into a smaller row layout instead + # (CADETProcess.plot_events(ax=...) can't do this directly -- passing + # a pre-built axes array hits an UnboundLocalError on `fig` in its + # own implementation). + row_fig, row_axes = plt.subplots( + 1, len(axes), figsize=(3 * len(axes), 2.5), squeeze=True + ) + row_axes = row_axes.reshape(-1) + xlabel = axes[-1].get_xlabel() + for old_ax, ax in zip(axes, row_axes): + for line in old_ax.get_lines(): + ax.plot(line.get_xdata(), line.get_ydata()) + title = old_ax.texts[0].get_text() if old_ax.texts else "" + ax.set_title(title, fontsize=9) + ax.set_xlabel(xlabel) + ax.set_ylabel(old_ax.get_ylabel()) + ax.grid(True) + plt.close(fig) + row_fig.tight_layout() + + with self._event_plot_out: + clear_output(wait=True) + display(row_fig) + plt.close(row_fig) + def export_script(self) -> str: """Generate an executable CADET-Process Python script for the current build. diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index c52f153..3016d46 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -89,6 +89,10 @@ def is_valid(self) -> bool: """Whether every rendered field currently passes its validator.""" return all(el.is_valid for el in self._elements.values()) + def element(self, name: str) -> Element: + """Return the Element rendered for one field, keyed by FieldSpec.name.""" + return self._elements[name] + def collect_values(self) -> Dict[str, Any]: """Return the current field values, with each field's `transform` applied.""" values: Dict[str, Any] = {} diff --git a/tests/test_configuration.py b/tests/test_configuration.py index ebdbe70..d53933a 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -311,3 +311,66 @@ def test_export_script_reflects_a_renamed_single_component(): ns = {} exec(compile(script, "", "exec"), ns) # noqa: S102 assert list(ns["component_system"].names) == ["MyProtein"] + + +def test_event_sliders_cover_only_scalar_timing_fields_not_concentration_lists(): + cw = ConfigurationWidget() # defaults to Batch Elution + assert set(cw._event_sliders) == {"flow_rate", "feed_duration", "cycle_time"} + + +def test_event_sliders_change_when_process_template_changes(): + cw = ConfigurationWidget() + cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] + assert set(cw._event_sliders) == { + "flow_rate", "load_duration", "wash_duration", + "gradient_duration", "final_wash_duration", + } + + +def test_moving_event_slider_updates_the_linked_form_field(): + cw = ConfigurationWidget() + slider = cw._event_sliders["feed_duration"] + + slider.value = slider.value * 2 + + assert cw._model_form.element("feed_duration").value == slider.value + + +def test_editing_form_field_updates_the_linked_event_slider(): + cw = ConfigurationWidget() + element = cw._model_form.element("flow_rate") + + element.value = element.value * 3 + + assert cw._event_sliders["flow_rate"].value == element.value + + +def test_moving_event_slider_after_column_applied_rebuilds_a_preview_process(): + cw = ConfigurationWidget() + cw._column_form._on_apply(None) + + seen = [] + original_build = cw._model_form.spec.build + cw._model_form.spec.build = lambda values: seen.append(values) or original_build(values) + + cw._event_sliders["cycle_time"].value += 1.0 + + assert len(seen) == 1 + assert seen[0]["cycle_time"] == cw._event_sliders["cycle_time"].value + + +def test_moving_event_slider_before_column_applied_does_not_crash(): + cw = ConfigurationWidget() + cw._event_sliders["cycle_time"].value += 1.0 # column still has unconfigured geometry + + +def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): + cw = ConfigurationWidget() + old_slider = cw._event_sliders["flow_rate"] + + cw._column_picker.selected_index = 1 # GRM -> LRMP + + new_slider = cw._event_sliders["flow_rate"] + assert new_slider is not old_slider + old_slider.value = old_slider.value + 1.0 # must no longer affect the live form + assert cw._model_form.element("flow_rate").value != old_slider.value From a04c17386a5dc318d0b8c49c5cbc3a4c8079cb1e Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 09:05:00 +0200 Subject: [PATCH 045/158] Remove "Ready" and activate auto submit on form --- cadetgui/cadetprocessadapter.py | 8 +- cadetgui/widgets/composite/__init__.py | 2 + cadetgui/widgets/composite/configuration.py | 28 +++--- cadetgui/widgets/composite/solution.py | 6 ++ cadetgui/widgets/forms/renderer.py | 25 +++-- tests/test_configuration.py | 106 +++++++++++++------- tests/test_forms.py | 20 ++-- tests/test_solution.py | 44 ++++++-- 8 files changed, 159 insertions(+), 80 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 551ed03..0e1ec02 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -378,12 +378,8 @@ def _apply(values: Mapping[str, Any]) -> Any: for name in names: if name not in values: continue - try: - coerced = _coerce_to_kind(kinds[name], values[name]) - setattr(obj, name, coerced) - except Exception: - # swallow and continue so one bad value doesn't block the rest - continue + coerced = _coerce_to_kind(kinds[name], values[name]) + setattr(obj, name, coerced) return obj return ModelSpec( diff --git a/cadetgui/widgets/composite/__init__.py b/cadetgui/widgets/composite/__init__.py index f01d9dc..cdd1666 100644 --- a/cadetgui/widgets/composite/__init__.py +++ b/cadetgui/widgets/composite/__init__.py @@ -9,6 +9,7 @@ from .data_import import DataImportWidget, ExperimentalDataset from .run_history import RunHistoryWidget, RunRecord from .solution import SolutionWidget +from .workbench import WorkbenchWidget __all__ = [ "ConfigurationWidget", @@ -17,4 +18,5 @@ "RunRecord", "DataImportWidget", "ExperimentalDataset", + "WorkbenchWidget", ] diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index c7413d5..346f2b2 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -275,9 +275,9 @@ def _attach_binding(built: Any, col: Any = column) -> None: self._rebuild_event_sliders() self.status.value = ( - "Configure the column, binding model, and process, then Apply each" - " (in that order — the process picks up whatever's applied on column" - " and binding model at the time)." + "Fields apply automatically as you edit them" + " (column and binding model first, since the process picks up" + " whatever's currently set on them)." ) def _clear_event_section(self) -> None: @@ -289,10 +289,12 @@ def _rebuild_event_sliders(self) -> None: """Slider per scalar timing/flow field, spliced right next to its own field. Only `float`-kind fields get a slider — the per-component - concentration fields stay list-editors, untouched. A slider move - rebuilds a throwaway process (cheap: no solver call) and redraws - `process.plot_events()`; it does not commit to `.process` or notify - listeners — only the form's own Apply button does that. + concentration fields stay list-editors, untouched. Each slider is + dlinked to its field's value, so a slider move flows through the + form's own auto-commit exactly like typing a new value would + (cheap: no solver call, just rebuilds the process) — `.process` and + listeners update the same way either way. `_redraw_event_plot` + then just redraws from the form's freshly committed build. """ self._event_sliders = {} if self._model_form is None: @@ -345,12 +347,14 @@ def _rebuild_event_sliders(self) -> None: self._redraw_event_plot() def _redraw_event_plot(self) -> None: - if self._model_form is None or not self._model_form.is_valid: + # Reuse the form's own auto-committed build rather than building + # again here: the slider is dlinked to the field, so by the time + # this observer runs (registered after the dlink), the form has + # already auto-committed and `.built` is current. + if self._model_form is None or self._model_form.built is None: return try: - values = self._model_form.collect_values() - preview = self._model_form.spec.build(values) - fig, axes = preview.plot_events(x_axis_in_minutes=True) + fig, axes = self._model_form.built.plot_events(x_axis_in_minutes=True) except Exception: return axes = list(axes) if hasattr(axes, "__iter__") else [axes] @@ -394,7 +398,7 @@ def export_script(self) -> str: or self._model_form is None ): raise RuntimeError( - "Nothing built yet — Apply the column, binding model, and process forms first." + "Nothing built yet — pick a column, binding model, and process template first." ) column = self._get_column() diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py index 5ac5448..c672e25 100644 --- a/cadetgui/widgets/composite/solution.py +++ b/cadetgui/widgets/composite/solution.py @@ -97,6 +97,9 @@ def _on_run(self, _btn: Any) -> None: return label = getattr(self.process, "name", type(self.process).__name__) + self._btn_run.disabled = True + self._btn_run.description = "Running..." + self.status.value = "Running simulation…" try: result = self._runner(self.process) except Exception as exc: # noqa: BLE001 @@ -104,6 +107,9 @@ def _on_run(self, _btn: Any) -> None: self.history.record(label, error=str(exc)) self.status.value = f"Simulation failed: {exc}" return + finally: + self._btn_run.disabled = False + self._btn_run.description = "Run simulation" self.history.record(label, result=result) self._load_result(result) diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index 3016d46..f98a1f4 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -59,7 +59,7 @@ def element_for_field(f: FieldSpec) -> Element: class FormRenderer: - """Render a ModelSpec into a form of Elements; build an object on Apply.""" + """Render a ModelSpec into a form of Elements; auto-commits on every valid change.""" def __init__( self, spec: ModelSpec, *, on_built: Optional[Callable[[Any], None]] = None @@ -70,20 +70,21 @@ def __init__( self.status = W.HTML("Ready.") self._elements: Dict[str, Element] = {f.name: element_for_field(f) for f in spec.fields} + for element in self._elements.values(): + element.observe(self._on_field_changed, names="value") - self._btn_apply = W.Button(description="Apply", button_style="success") self._btn_reset = W.Button(description="Reset") - self._btn_apply.on_click(self._on_apply) self._btn_reset.on_click(self._on_reset) header = W.HTML(f"
{spec.title}
") - actions = W.HBox([self._btn_apply, self._btn_reset]) rows = [self._elements[f.name] for f in spec.fields] self.status.add_class("cadetgui-status") - self.root = W.VBox([W.HTML(style_tag()), header, *rows, actions, self.status]) + self.root = W.VBox([W.HTML(style_tag()), header, *rows, self._btn_reset, self.status]) self.root.add_class("cadetgui-panel") self.root.add_class("cadetgui-section") + self._commit() + @property def is_valid(self) -> bool: """Whether every rendered field currently passes its validator.""" @@ -101,10 +102,16 @@ def collect_values(self) -> Dict[str, Any]: values[f.name] = f.transform(raw) if f.transform else raw return values - def _on_apply(self, _btn: Any) -> None: + def _on_field_changed(self, change: dict) -> None: + if change.get("name") != "value": + return + self._commit() + + def _commit(self) -> None: if not self.is_valid: + self.built = None self.status.value = ( - "Fix invalid fields before applying." + "Fix the highlighted field(s) to continue." ) return try: @@ -112,7 +119,7 @@ def _on_apply(self, _btn: Any) -> None: if self.spec.build is None: raise RuntimeError("Spec has no 'build' function.") self.built = self.spec.build(values) - self.status.value = "Built successfully." + self.status.value = "" # nothing to say when things are fine if self._on_built is not None: self._on_built(self.built) except Exception as exc: # noqa: BLE001 @@ -122,7 +129,7 @@ def _on_apply(self, _btn: Any) -> None: def _on_reset(self, _btn: Any) -> None: for f in self.spec.fields: self._elements[f.name].value = _coerced_default(f) - self.status.value = "Reset to defaults." + self._commit() def display(self) -> None: """Render this form in a Jupyter cell.""" diff --git a/tests/test_configuration.py b/tests/test_configuration.py index d53933a..9a04ef6 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -14,22 +14,19 @@ def test_configuration_widget_renders_default_forms(): assert len(cw._model_form_box.children) == 1 -def test_configuration_widget_builds_process_on_both_applies(): +def test_configuration_widget_builds_process_automatically_with_defaults(): cw = ConfigurationWidget() - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) assert cw.process is not None assert type(cw.process).__name__ == "BatchElution" -def test_configuration_widget_notifies_listeners_on_build(): +def test_configuration_widget_notifies_listeners_on_a_valid_field_change(): cw = ConfigurationWidget() seen = [] cw.add_listener(seen.append) - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) + cw._model_form.element("flow_rate").value = 2e-6 assert len(seen) == 1 assert seen[0] is cw.process @@ -58,19 +55,30 @@ def test_configuration_widget_rebuilds_column_on_component_change(): assert original_column not in cw._column_cache.values() -def test_export_script_raises_before_anything_is_built(): +def test_export_script_raises_when_nothing_has_been_built(): + # With auto-commit, this state isn't reachable through the default + # registries (their defaults always build successfully) -- force it + # directly to keep the guard clause itself covered. cw = ConfigurationWidget() + cw.process = None + cw._column_form = None + cw._binding_form = None + cw._model_form = None try: cw.export_script() assert False, "should have raised" except RuntimeError as exc: - assert "Apply" in str(exc) + assert "column" in str(exc).lower() -def test_export_script_button_shows_error_status_before_build(): +def test_export_script_button_shows_error_status_when_nothing_has_been_built(): cw = ConfigurationWidget() + cw.process = None + cw._column_form = None + cw._binding_form = None + cw._model_form = None cw._on_export(None) - assert "Apply" in cw.status.value + assert "column" in cw.status.value.lower() assert cw._script_out.layout.display == "none" @@ -78,8 +86,6 @@ def test_export_script_produces_executable_equivalent_process(): import numpy as np cw = ConfigurationWidget() - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) script = cw.export_script() ns = {} @@ -103,8 +109,6 @@ def test_export_script_produces_executable_equivalent_process(): def test_export_script_button_populates_textarea_on_success(): cw = ConfigurationWidget() - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) cw._on_export(None) assert "process = " in cw._script_out.value @@ -128,10 +132,9 @@ def test_switching_binding_model_rebuilds_its_form(): } -def test_applying_binding_form_attaches_it_to_the_column(): +def test_selecting_binding_model_attaches_it_to_the_column(): cw = ConfigurationWidget() cw._binding_picker.value = cw._binding_registry["Linear"] - cw._binding_form._on_apply(None) column = cw._get_column() assert type(column.binding_model).__name__ == "Linear" @@ -144,13 +147,11 @@ def test_switching_column_type_keeps_binding_model_attachable(): since-replaced column must not be reused as-is.""" cw = ConfigurationWidget() cw._binding_picker.value = cw._binding_registry["Linear"] - cw._binding_form._on_apply(None) cw._column_picker.value = cw._columns["LRMP"] # different column, different ComponentSystem - cw._binding_form._on_apply(None) # must not raise / must not fail validation assert cw._binding_form.built is not None - assert "Built successfully" in cw._binding_form.status.value + assert cw._binding_form.status.value == "" column = cw._get_column() assert type(column.binding_model).__name__ == "Linear" assert column.binding_model.component_system is column.component_system @@ -162,9 +163,6 @@ def test_export_script_includes_binding_model_and_round_trips(): cw = ConfigurationWidget() cw._binding_picker.value = cw._binding_registry["Linear"] - cw._column_form._on_apply(None) - cw._binding_form._on_apply(None) - cw._model_form._on_apply(None) script = cw.export_script() assert "column.binding_model = Linear(" in script @@ -202,12 +200,10 @@ def test_binding_model_scales_to_multiple_named_components(): cw = ConfigurationWidget() cw._components.value = ["Salt", "Protein"] cw._binding_picker.value = cw._binding_registry["Linear"] - cw._column_form._on_apply(None) - cw._binding_form._on_apply(None) column = cw._get_column() assert column.binding_model.n_comp == 2 - assert cw._binding_form.status.value == "Built successfully." + assert cw._binding_form.status.value == "" # NOTE: applying the model form itself (batch_elution_spec/lwe_spec) is not # exercised with >1 component here — those specs hard-code single-value # concentration defaults (e.g. c_feed=[10.0]) that CADET-Process rejects @@ -264,12 +260,11 @@ def test_multiplex_checkbox_visibility_matches_column_capabilities(): assert cw._multiplex_checkboxes["pore_diffusion"].layout.display == "none" -def test_scalar_column_field_broadcasts_via_cadetprocess_on_apply(): +def test_scalar_column_field_broadcasts_via_cadetprocess(): cw = ConfigurationWidget() cw._components.value = ["Salt", "Protein", "Impurity"] cw._column_picker.value = cw._columns["GRM"] - cw._column_form._on_apply(None) column = cw._get_column() assert column.axial_dispersion == [column.axial_dispersion[0]] * 3 @@ -281,7 +276,6 @@ def test_multiplexed_column_field_keeps_distinct_per_component_values(): cw._multiplex_checkboxes["axial_dispersion"].value = True cw._column_form._elements["axial_dispersion"].value = [1e-8, 2e-8] - cw._column_form._on_apply(None) column = cw._get_column() assert column.axial_dispersion == [1e-8, 2e-8] @@ -301,9 +295,6 @@ def test_concentration_fields_are_sized_and_named_from_component_system(): def test_export_script_reflects_a_renamed_single_component(): cw = ConfigurationWidget() cw._components.value = ["MyProtein"] # still one component, just renamed - cw._column_form._on_apply(None) - cw._binding_form._on_apply(None) - cw._model_form._on_apply(None) script = cw.export_script() assert "component_system = ComponentSystem(['MyProtein'])" in script @@ -345,9 +336,8 @@ def test_editing_form_field_updates_the_linked_event_slider(): assert cw._event_sliders["flow_rate"].value == element.value -def test_moving_event_slider_after_column_applied_rebuilds_a_preview_process(): +def test_moving_event_slider_rebuilds_a_preview_process(): cw = ConfigurationWidget() - cw._column_form._on_apply(None) seen = [] original_build = cw._model_form.spec.build @@ -359,9 +349,11 @@ def test_moving_event_slider_after_column_applied_rebuilds_a_preview_process(): assert seen[0]["cycle_time"] == cw._event_sliders["cycle_time"].value -def test_moving_event_slider_before_column_applied_does_not_crash(): +def test_moving_event_slider_with_invalid_column_field_does_not_crash(): cw = ConfigurationWidget() - cw._event_sliders["cycle_time"].value += 1.0 # column still has unconfigured geometry + cw._column_form._elements["length"].value = -1.0 # CADET-Process rejects this on setattr + + cw._event_sliders["cycle_time"].value += 1.0 # must not raise despite the column error def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): @@ -374,3 +366,47 @@ def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): assert new_slider is not old_slider old_slider.value = old_slider.value + 1.0 # must no longer affect the live form assert cw._model_form.element("flow_rate").value != old_slider.value + + +def test_invalid_field_value_is_not_committed_and_shows_an_inline_error(): + cw = ConfigurationWidget() + element = cw._model_form.element("flow_rate") # has validate=require_positive + + element.value = -1.0 + + assert not element.is_valid + assert element.error # shown inline under the field itself + assert not cw._model_form.is_valid + assert cw._model_form.built is None + + +def test_invalid_field_value_leaves_the_last_good_process_in_place(): + cw = ConfigurationWidget() + good_process = cw.process + assert good_process is not None + + cw._model_form.element("flow_rate").value = -1.0 # invalid: blocked before committing + + assert cw.process is good_process # untouched -- Run/Export still work off it + + +def test_cadetprocess_level_rejection_surfaces_as_a_status_error_without_crashing(): + cw = ConfigurationWidget() + + cw._column_form._elements["length"].value = -1.0 # no client-side validator for this field + + assert "lower bound" in cw._column_form.status.value.lower() + assert cw._get_column().length != -1.0 # CADET-Process's own setter rejected it + + +def test_fixing_an_invalid_value_recommits_automatically(): + cw = ConfigurationWidget() + element = cw._model_form.element("flow_rate") + element.value = -1.0 + assert cw._model_form.built is None + + element.value = 3e-6 + + assert cw._model_form.is_valid + assert cw._model_form.built is not None + assert cw.process is cw._model_form.built diff --git a/tests/test_forms.py b/tests/test_forms.py index 362466a..30393f3 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -60,22 +60,25 @@ def test_form_renders_one_element_per_field_with_defaults(): assert form.is_valid -def test_form_apply_builds_object_from_current_values(): +def test_form_builds_object_from_defaults_on_construction(): + form = FormRenderer(make_spec()) + assert form.built == {"rate": 1.0, "name": "col", "active": True, "levels": [1.0, 2.0]} + assert form.status.value == "" + + +def test_form_auto_commits_on_a_valid_field_change(): form = FormRenderer(make_spec()) form._elements["rate"].value = 5.0 - form._on_apply(None) assert form.built == {"rate": 5.0, "name": "col", "active": True, "levels": [1.0, 2.0]} - assert "built" in form.status.value.lower() + assert form.status.value == "" -def test_form_apply_blocked_when_a_field_is_invalid(): +def test_form_commit_blocked_when_a_field_is_invalid(): form = FormRenderer(make_spec()) form._elements["rate"].value = -1.0 assert not form.is_valid - - form._on_apply(None) assert form.built is None - assert "invalid" in form.status.value.lower() + assert "invalid" in form.status.value.lower() or "fix" in form.status.value.lower() def test_form_reset_restores_defaults(): @@ -88,13 +91,12 @@ def test_form_reset_restores_defaults(): assert form._elements["active"].value is True -def test_form_apply_reports_build_exception_without_raising(): +def test_form_reports_build_exception_without_raising(): def failing_build(values): raise RuntimeError("boom") fields = [FieldSpec("x", "float", default=1.0)] spec = ModelSpec(title="Fail", fields=fields, build=failing_build) form = FormRenderer(spec) - form._on_apply(None) assert form.built is None assert "boom" in form.status.value diff --git a/tests/test_solution.py b/tests/test_solution.py index c48a37e..27ebc62 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -7,6 +7,7 @@ matplotlib.use("Agg") # headless test environment, no display needed +from cadetgui.simulation import run_process as _default_runner from cadetgui.widgets.composite import ( ConfigurationWidget, DataImportWidget, @@ -30,9 +31,7 @@ def upload_csv(widget: DataImportWidget, filename: str, csv_text: str) -> None: def built_process(): - cw = ConfigurationWidget() - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) + cw = ConfigurationWidget() # auto-commits its defaults on construction return cw.process @@ -48,21 +47,20 @@ def test_solutionwidget_set_process_updates_label(): assert "Batch Elution" in sw._process_label.value -def test_solutionwidget_bind_to_config_tracks_future_builds(): +def test_solutionwidget_bind_to_config_tracks_future_field_changes(): cw = ConfigurationWidget() sw = SolutionWidget() sw.bind_to_config(cw) - assert sw.process is None # nothing built yet + assert sw.process is cw.process # already auto-built by the time we bind - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) + first_process = cw.process + cw._model_form.element("flow_rate").value = 5e-6 assert sw.process is cw.process + assert sw.process is not first_process # picked up the fresh auto-rebuild def test_solutionwidget_bind_to_config_picks_up_existing_process(): cw = ConfigurationWidget() - cw._column_form._on_apply(None) - cw._model_form._on_apply(None) sw = SolutionWidget() sw.bind_to_config(cw) @@ -76,6 +74,34 @@ def test_solutionwidget_run_without_process_shows_error(): assert "No process" in sw.status.value +def test_solutionwidget_shows_spinner_and_disables_button_while_running(): + sw = SolutionWidget(process=built_process()) + seen = {} + + def spying_runner(process): + seen["disabled"] = sw._btn_run.disabled + seen["description"] = sw._btn_run.description + seen["status"] = sw.status.value + return _default_runner(process) + + sw._runner = spying_runner + sw._on_run(None) + + assert seen["disabled"] is True + assert seen["description"] == "Running..." + assert "cadetgui-spinner" in seen["status"] + assert sw._btn_run.disabled is False # reset once the run finishes + assert sw._btn_run.description == "Run simulation" + + +def test_solutionwidget_resets_button_even_when_run_fails(): + sw = SolutionWidget(process=object()) # not a real process -> runner raises + sw._on_run(None) + + assert sw._btn_run.disabled is False + assert sw._btn_run.description == "Run simulation" + + def test_solutionwidget_run_populates_signals_and_plots(): sw = SolutionWidget(process=built_process()) sw._on_run(None) From a3e6d5d5246314ee29cdbc9773c0255d709df1d6 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 09:05:33 +0200 Subject: [PATCH 046/158] Update Notebook --- examples/configuration_and_solution.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/configuration_and_solution.ipynb b/examples/configuration_and_solution.ipynb index 3e6034a..9469554 100644 --- a/examples/configuration_and_solution.ipynb +++ b/examples/configuration_and_solution.ipynb @@ -17,7 +17,7 @@ { "cell_type": "markdown", "id": "3218f382", - "source": "## 1. Configure a process\n\nDisplaying `ConfigurationWidget` gives you three things to pick: the number of components, a column/unit operation type, and a model-builder template. Changing any of them rebuilds the two forms below it.\n\n1. Pick a column (e.g. `LRMP`) and a model (e.g. `Load–Wash–Elute (LWE)`).\n2. Adjust the column's physical parameters if you want, then click **Apply** on the column form.\n3. Adjust the model's process parameters, then click **Apply** on the model form.\n\nThe second Apply builds an actual CADET-Process object — you'll see \"Process built.\" appear.", + "source": "## 1. Configure a process\n\nDisplaying `ConfigurationWidget` gives you three things to pick: the number of components, a column/unit operation type, and a model-builder template. Changing any of them rebuilds the two forms below it.\n\n1. Pick a column (e.g. `LRMP`) and a model (e.g. `Load–Wash–Elute (LWE)`).\n2. Edit the column's or model's fields directly — each change applies automatically as soon as it's valid, no Apply button needed. An invalid value (e.g. a negative length) is flagged inline and shown in that form's status line instead of being applied.\n\nOnce every field is valid, `config.process` already holds a real CADET-Process object.", "metadata": {} }, { @@ -31,7 +31,7 @@ { "cell_type": "markdown", "id": "ff4a37be", - "source": "## 2. Run and visualize the simulation\n\n`SolutionWidget.bind_to_config(config)` makes it track whatever process `config` builds — every time you click Apply above, this widget picks it up automatically.\n\nClick **Run simulation** below, then use the **Signal** dropdown to plot different unit/port combinations (feed, column outlet, ...). Every run (successful or not) is logged in the **Run:** picker above the signal dropdown — pick an older entry to go back and view it; a failed run shows its error instead of a broken plot.", + "source": "## 2. Run and visualize the simulation\n\n`SolutionWidget.bind_to_config(config)` makes it track whatever process `config` builds — since fields apply automatically, this widget picks up every valid edit above right away, with no extra step.\n\nClick **Run simulation** below, then use the **Signal** dropdown to plot different unit/port combinations (feed, column outlet, ...). Every run (successful or not) is logged in the **Run:** picker above the signal dropdown — pick an older entry to go back and view it; a failed run shows its error instead of a broken plot.", "metadata": {} }, { From 3deb1b6a6c702fd5f95bd2a2de9f5383c666d30c Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 09:20:59 +0200 Subject: [PATCH 047/158] Add workbench widget --- cadetgui/widgets/_chrome.py | 8 ++ cadetgui/widgets/assets/cadet_logo.png | Bin 0 -> 27553 bytes cadetgui/widgets/chrome.css | 97 +++++++++++++++++++++++- cadetgui/widgets/composite/workbench.py | 88 +++++++++++++++++++++ examples/workbench.ipynb | 61 +++++++++++++++ tests/test_workbench.py | 58 ++++++++++++++ 6 files changed, 310 insertions(+), 2 deletions(-) create mode 100644 cadetgui/widgets/assets/cadet_logo.png create mode 100644 cadetgui/widgets/composite/workbench.py create mode 100644 examples/workbench.ipynb create mode 100644 tests/test_workbench.py diff --git a/cadetgui/widgets/_chrome.py b/cadetgui/widgets/_chrome.py index 176e2dc..bfeb2dd 100644 --- a/cadetgui/widgets/_chrome.py +++ b/cadetgui/widgets/_chrome.py @@ -3,9 +3,12 @@ # ========================================= from __future__ import annotations +import base64 from pathlib import Path _CSS = (Path(__file__).parent / "chrome.css").read_text() +_LOGO_PNG = (Path(__file__).parent / "assets" / "cadet_logo.png").read_bytes() +_LOGO_DATA_URI = f"data:image/png;base64,{base64.b64encode(_LOGO_PNG).decode('ascii')}" def style_tag() -> str: @@ -14,3 +17,8 @@ def style_tag() -> str: See chrome.css for the class names (.cadetgui-panel, .cadetgui-section, ...). """ return f"" + + +def logo_data_uri() -> str: + """Return the CADET logo (icon + wordmark) as an inline `data:` URI PNG.""" + return _LOGO_DATA_URI diff --git a/cadetgui/widgets/assets/cadet_logo.png b/cadetgui/widgets/assets/cadet_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f56f4fef38e392e1cdd575bcb063e810c63b25a8 GIT binary patch literal 27553 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 IM6N<$f@OmE#{d8T literal 0 HcmV?d00001 diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css index 6f8f0c0..553c633 100644 --- a/cadetgui/widgets/chrome.css +++ b/cadetgui/widgets/chrome.css @@ -4,11 +4,28 @@ anywidget `_css`. Same --cg-* token names as elements/_shared.css so both layers read as one system. */ +.cadetgui-spinner { + display: inline-block; + width: 11px; + height: 11px; + margin-right: 6px; + border: 2px solid color-mix(in srgb, currentColor 25%, transparent); + border-top-color: currentColor; + border-radius: 50%; + vertical-align: -1px; + animation: cadetgui-spin 0.7s linear infinite; +} + +@keyframes cadetgui-spin { + to { transform: rotate(360deg); } +} + .cadetgui-panel { --cg-fg: #1f2937; --cg-muted: #6b7280; --cg-border: #d1d5db; - --cg-focus: #2563eb; + --cg-brand: #005b82; /* CADET logo navy -- fixed, not theme-swapped */ + --cg-focus: #005b82; --cg-danger: #dc2626; --cg-success: #059669; --cg-bg: #ffffff; @@ -26,7 +43,7 @@ --cg-fg: #e5e7eb; --cg-muted: #9ca3af; --cg-border: #4b5563; - --cg-focus: #60a5fa; + --cg-focus: #4fa8d1; --cg-danger: #f87171; --cg-success: #34d399; --cg-bg: #1f2937; @@ -138,3 +155,79 @@ font-size: 12.5px; padding: 10px; } + +/* ---- WorkbenchWidget: top bar + sidebar shell ---- */ + +.cadetgui-workbench { + gap: 0 !important; +} + +.cadetgui-topbar { + display: flex; + align-items: center; + gap: 10px; + padding: 10px 18px; + border-radius: var(--cg-radius) var(--cg-radius) 0 0; + /* Fixed white, not var(--cg-bg): the logo PNG's ink is a fixed navy, so it + needs a fixed light backdrop in both themes -- a dark-mode --cg-bg would + wash out the wordmark, which can't recolor itself. */ + background: #ffffff; + border-bottom: 3px solid var(--cg-brand); +} + +.cadetgui-topbar img { + height: 26px; + display: block; +} + +.cadetgui-topbar-title { + font-size: 15px; + font-weight: 600; + color: var(--cg-brand); + letter-spacing: 0.02em; +} + +.cadetgui-workbench-body { + display: flex; + flex-flow: row wrap; + align-items: flex-start; + border: 1px solid var(--cg-border); + border-top: none; + border-radius: 0 0 var(--cg-radius) var(--cg-radius); +} + +.cadetgui-sidebar-nav { + flex: 0 0 180px; + padding: 14px 10px; + border-right: 1px solid var(--cg-border); + align-self: stretch; +} + +/* ToggleButtons renders its own buttons in a row inside one wrapper div; + force that wrapper into a vertical stack instead of restyling the + picker itself -- keeps its built-in single-select/active-state behavior. */ +.cadetgui-sidebar-nav > div { + display: flex; + flex-direction: column; + gap: 4px; +} + +.cadetgui-sidebar-nav .widget-toggle-button { + width: 100%; + justify-content: flex-start; + text-align: left; + background: transparent; + border-color: transparent; +} + +.cadetgui-sidebar-nav .widget-toggle-button.mod-active { + background: var(--cg-focus); + border-color: var(--cg-focus); + color: #ffffff; +} + +.cadetgui-workbench-content { + flex: 1 1 480px; + min-width: 0; + padding: 16px; +} diff --git a/cadetgui/widgets/composite/workbench.py b/cadetgui/widgets/composite/workbench.py new file mode 100644 index 0000000..7b13462 --- /dev/null +++ b/cadetgui/widgets/composite/workbench.py @@ -0,0 +1,88 @@ +# ========================================= +# File: cadetgui/widgets/composite/workbench.py +# ========================================= +from __future__ import annotations + +from typing import Dict, Optional + +import ipywidgets as W + +from .._chrome import logo_data_uri, style_tag +from .configuration import ConfigurationWidget +from .data_import import DataImportWidget +from .solution import SolutionWidget + +__all__ = ["WorkbenchWidget"] + +_STEPS = ("Configuration", "Simulation", "Experimental Data") + + +class WorkbenchWidget: + """Top-level shell: a sidebar-navigated Configuration/Simulation/Data page. + + Builds and wires a `ConfigurationWidget`, `SolutionWidget`, and + `DataImportWidget` together (same bindings as + examples/configuration_and_solution.ipynb), showing exactly one at a time + via a left sidebar instead of stacking all three inline. Each stays a + plain attribute (`.configuration`/`.solution`/`.data`) for scripting — + the shell is purely a navigation convenience, not a black box. + """ + + def __init__( + self, + *, + configuration: Optional[ConfigurationWidget] = None, + solution: Optional[SolutionWidget] = None, + data: Optional[DataImportWidget] = None, + ) -> None: + self.configuration = configuration or ConfigurationWidget() + self.solution = solution or SolutionWidget() + self.data = data or DataImportWidget() + + self.solution.bind_to_config(self.configuration) + self.solution.bind_to_data(self.data) + + self._panes: Dict[str, W.Widget] = { + "Configuration": self.configuration.root, + "Simulation": self.solution.root, + "Experimental Data": self.data.root, + } + for root in self._panes.values(): + root.layout.display = "none" + + self._nav = W.ToggleButtons(options=list(_STEPS)) + self._nav.add_class("cadetgui-sidebar-nav") + self._nav.observe(self._on_nav_change, names="index") + + self._content = W.VBox(list(self._panes.values())) + self._content.add_class("cadetgui-workbench-content") + + top_bar = W.HTML( + "
" + f"CADET" + "Workbench" + "
" + ) + body = W.HBox([self._nav, self._content]) + body.add_class("cadetgui-workbench-body") + + self.root = W.VBox([W.HTML(style_tag()), top_bar, body]) + self.root.add_class("cadetgui-panel") + self.root.add_class("cadetgui-workbench") + + self._show(_STEPS[0]) + + def _on_nav_change(self, change: dict) -> None: + if change.get("name") != "index": + return + self._show(_STEPS[change["new"]]) + + def _show(self, step: str) -> None: + for name, root in self._panes.items(): + root.layout.display = "" if name == step else "none" + + def display(self) -> None: + """Render this widget in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.root) diff --git a/examples/workbench.ipynb b/examples/workbench.ipynb new file mode 100644 index 0000000..1a0939f --- /dev/null +++ b/examples/workbench.ipynb @@ -0,0 +1,61 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "workbench-cell", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/IBT/lanzrath/CADET/CADET-Process/CADETProcess/modelBuilder/batchElutionBuilder.py:62: UserWarning: Renaming column to `column` for consistency\n", + " warnings.warn(\"Renaming column to `column` for consistency\")\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b391b307a3104130bb50b3d85e515b9c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "VBox(children=(HTML(value='\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\n# Analysis: import experimental data and compare it against a simulation run.\ndata = DataImportWidget()\nsolution.bind_to_data(data)\n\n\ndef tab_page(widget_root):\n page = W.VBox([widget_root])\n page.add_class(\"cadetgui-tab-page\")\n return page\n\n\ntabs = W.Tab(children=[tab_page(config.root), tab_page(solution.root), tab_page(data.root)])\ntabs.set_title(0, \"Configuration\")\ntabs.set_title(1, \"Solution\")\ntabs.set_title(2, \"Analysis\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, tabs])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)", "metadata": {}, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": "import ipywidgets as W\nfrom cadetgui.widgets.composite import (\n ConfigurationWidget,\n DataImportWidget,\n SolutionWidget,\n)\nfrom IPython.display import display\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against \"\n \"measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\ndata = DataImportWidget()\nsolution.bind_to_data(data)\n\n\ndef tab_page(widget_root: W.Widget) -> W.VBox:\n \"\"\"Wrap a widget root in the shared tab-page padding class.\"\"\"\n page = W.VBox([widget_root])\n page.add_class(\"cadetgui-tab-page\")\n return page\n\n\ntabs = W.Tab(children=[tab_page(config.root), tab_page(solution.root), tab_page(data.root)])\ntabs.set_title(0, \"Configuration\")\ntabs.set_title(1, \"Solution\")\ntabs.set_title(2, \"Analysis\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, tabs])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)" } ], "metadata": { diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 2440960..6b44044 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -433,7 +433,7 @@ def test_cycle_time_slider_is_capped_at_300_minutes_by_default(): def test_cycle_time_slider_cap_stretches_to_fit_an_existing_larger_value(): cw = ConfigurationWidget() - cw._model_form.element("cycle_time").value = 400.0 * 60.0 # already above the 300min cap + cw._model_form.element("cycle_time").value = 400.0 * 60.0 # 400 min is above the 300 min cap cw._rebuild_event_sliders() # normally triggered by a rebuild, called directly here @@ -445,11 +445,11 @@ def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): cw = ConfigurationWidget() old_slider = cw._event_sliders["flow_rate"] - cw._column_picker.selected_index = 1 # GRM -> LRMP + cw._column_picker.selected_index = 1 # switch column from GRM (default) to LRMP new_slider = cw._event_sliders["flow_rate"] assert new_slider is not old_slider - old_slider.value = old_slider.value + 1.0 # must no longer affect the live form + old_slider.value = old_slider.value + 1.0 # stale slider is disconnected from the current form assert cw._model_form.element("flow_rate").value != old_slider.value diff --git a/tests/test_workbench.py b/tests/test_workbench.py index d031c4d..0b73385 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -44,7 +44,11 @@ def test_workbench_config_edits_still_flow_through_to_solution(): def test_workbench_accepts_prebuilt_widgets(): - from cadetgui.widgets.composite import ConfigurationWidget, DataImportWidget, SolutionWidget + from cadetgui.widgets.composite import ( + ConfigurationWidget, + DataImportWidget, + SolutionWidget, + ) cw = ConfigurationWidget() sw = SolutionWidget() From d8808f82711ac25eb322412c3b270037e341cf15 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 13:45:37 +0200 Subject: [PATCH 055/158] Add own Process Template "Pulse Feed" --- cadetgui/cadetprocessadapter.py | 109 ++++++++++++++++++-- cadetgui/widgets/composite/configuration.py | 42 +++++--- tests/test_configuration.py | 61 +++++++++++ 3 files changed, 193 insertions(+), 19 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 2d0b342..cdde1a8 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -9,12 +9,16 @@ ChromatographicColumnBase, ComponentSystem, Cstr, + FlowSheet, GeneralRateModel, + Inlet, Langmuir, Linear, LumpedRateModelWithoutPores, LumpedRateModelWithPores, NoBinding, + Outlet, + Process, StericMassAction, ) @@ -29,7 +33,7 @@ class FieldSpec: """Describes one form field: its kind, default, bounds, and validation.""" name: str - kind: Literal["float", "float_list", "bool", "text"] + kind: Literal["float", "float_list", "bool", "text", "choice"] label: str | None = None default: Any = None transform: Callable | None = None @@ -38,6 +42,8 @@ class FieldSpec: max: float | None = None units: str | None = None component_names: tuple[str, ...] | None = None + # "choice" only: (label, value) options for the dropdown. + options: tuple[tuple[str, Any], ...] | None = None def require_positive(x: Any) -> None: @@ -59,6 +65,8 @@ def parse_float_list(v: Any) -> list[float]: return vals +CONCENTRATION_UNITS = "mol/m^3_IV" + # Units: mol/m^3_IV (inlet.rst CONST_COEFF), s (solver.rst SECTION_TIMES), # flow_rate m^3/s by consistency with CADET-Core's other flow-rate fields. # @@ -82,6 +90,10 @@ def parse_float_list(v: Any) -> list[float]: "cycle_time", "float", "Cycle time", 6000.0, validate=require_positive, units="s", ), + "pulse_duration": FieldSpec( + "pulse_duration", "float", "Pulse duration", 60.0, + validate=require_positive, units="s", + ), "wash_duration": FieldSpec( "wash_duration", "float", "Wash duration", 10.0, validate=require_positive, units="s", @@ -103,6 +115,12 @@ class ModelSpec: title: str fields: list[FieldSpec] = field(default_factory=list) build: Callable[[Mapping[str, Any]], Any] | None = None + # Script lines constructing `process` from `column`/`component_system`, for + # export_script(). None means the default `Cls(column=column, **values)` + # pattern (true for a CADET-Process model-builder like BatchElution/LWE); + # a model that wires its own flow sheet instead (e.g. Pulse Feed) provides + # its own. + export: Callable[[Mapping[str, Any]], list[str]] | None = None def _pick(keys: Sequence[str]) -> list[FieldSpec]: @@ -110,14 +128,14 @@ def _pick(keys: Sequence[str]) -> list[FieldSpec]: def _concentration_field( - name: str, label: str, default_scalar: float, column: ChromatographicColumnBase + name: str, label: str, default_scalar: float, unit: Any ) -> FieldSpec: - """Per-component concentration field, sized/named from the column's ComponentSystem.""" - names = tuple(column.component_system.names) + """Per-component concentration field, sized/named from the unit's ComponentSystem.""" + names = tuple(unit.component_system.names) n_comp = len(names) or 1 return FieldSpec( name, "float_list", label, [default_scalar] * n_comp, - transform=parse_float_list, units="mol/m^3_IV", component_names=names, + transform=parse_float_list, units=CONCENTRATION_UNITS, component_names=names, ) @@ -170,10 +188,89 @@ def _build(v: Mapping[str, Any]) -> Any: return ModelSpec(title="Load–Wash–Elute (LWE)", fields=fields, build=_build) +def pulse_feed_spec(unit: Any) -> ModelSpec: + """Build the Pulse Feed (Single Component) model's ModelSpec for the given unit. + + Unlike Batch Elution/LWE, this isn't a CADET-Process model-builder class -- + there is no predefined one for a plain feed-into-unit setup -- so it wires + the flow sheet and events directly. Works with any unit operation, not + just a `ChromatographicColumnBase` (e.g. `Cstr`, which isn't one). + """ + names = tuple(unit.component_system.names) + + def _c_feed(v: Mapping[str, Any]) -> list[float]: + c_feed = [0.0] * (len(names) or 1) + if v["component"] in names: + c_feed[names.index(v["component"])] = float(v["concentration"]) + return c_feed + + def _build(v: Mapping[str, Any]) -> Any: + component_system = unit.component_system + feed = Inlet(component_system, name="feed") + feed.flow_rate = float(v["flow_rate"]) + outlet = Outlet(component_system, name="outlet") + + flow_sheet = FlowSheet(component_system) + flow_sheet.add_unit(feed, feed_inlet=True) + flow_sheet.add_unit(unit) + flow_sheet.add_unit(outlet, product_outlet=True) + flow_sheet.add_connection(feed, unit) + flow_sheet.add_connection(unit, outlet) + + process = Process(flow_sheet, "Pulse Feed") + process.cycle_time = float(v["cycle_time"]) + process.add_duration("pulse_duration", float(v["pulse_duration"])) + + c_feed = _c_feed(v) + process.add_event("pulse_on", "flow_sheet.feed.c", c_feed) + process.add_event("pulse_off", "flow_sheet.feed.c", [0.0] * len(c_feed)) + process.add_event_dependency("pulse_off", ["pulse_on", "pulse_duration"], [1, 1]) + return process + + def _export(v: Mapping[str, Any]) -> list[str]: + c_feed = _c_feed(v) + c_off = [0.0] * len(c_feed) + return [ + "", + "feed = Inlet(component_system, name='feed')", + f"feed.flow_rate = {float(v['flow_rate'])!r}", + "outlet = Outlet(component_system, name='outlet')", + "", + "flow_sheet = FlowSheet(component_system)", + "flow_sheet.add_unit(feed, feed_inlet=True)", + "flow_sheet.add_unit(column)", + "flow_sheet.add_unit(outlet, product_outlet=True)", + "flow_sheet.add_connection(feed, column)", + "flow_sheet.add_connection(column, outlet)", + "", + "process = Process(flow_sheet, 'Pulse Feed')", + f"process.cycle_time = {float(v['cycle_time'])!r}", + f"process.add_duration('pulse_duration', {float(v['pulse_duration'])!r})", + f"process.add_event('pulse_on', 'flow_sheet.feed.c', {c_feed!r})", + f"process.add_event('pulse_off', 'flow_sheet.feed.c', {c_off!r})", + "process.add_event_dependency('pulse_off', ['pulse_on', 'pulse_duration'], [1, 1])", + ] + + fields = [ + FieldSpec( + "component", "choice", "Component", names[0] if names else None, + options=tuple((n, n) for n in names), + ), + FieldSpec( + "concentration", "float", "Pulse concentration", 10.0, units=CONCENTRATION_UNITS, + ), + *_pick(["flow_rate", "pulse_duration", "cycle_time"]), + ] + return ModelSpec( + title="Pulse Feed (Single Component)", fields=fields, build=_build, export=_export + ) + + # CLR/Flip-Flop/MRSSR: see ai-docs/REQUIREMENTS.md "Open decisions". -MODEL_REGISTRY: dict[str, Callable[[ChromatographicColumnBase], ModelSpec]] = { +MODEL_REGISTRY: dict[str, Callable[[Any], ModelSpec]] = { "Batch Elution": batch_elution_spec, "Load–Wash–Elute (LWE)": lwe_spec, + "Pulse Feed (Single Component)": pulse_feed_spec, } ColumnFactory = Callable[[ComponentSystem], ChromatographicColumnBase] diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 0402437..d739871 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -6,6 +6,7 @@ from CADETProcess.processModel import ComponentSystem from ...cadetprocessadapter import ( + CONCENTRATION_UNITS, DEFAULT_BINDING_FACTORIES, DEFAULT_COLUMN_FACTORIES, MODEL_REGISTRY, @@ -481,12 +482,16 @@ def _redraw_event_plot(self) -> None: quantities = {name.split(".")[-1] for name in process.parameter_timelines} if len(quantities) == 1: quantity = next(iter(quantities)) - quantity_label = quantity.replace("_", " ").capitalize() - self._event_chart.y_label = ( - f"{quantity_label} / {PARAMS['flow_rate'].units}" - if quantity == "flow_rate" - else quantity_label - ) + quantity_units = { + "flow_rate": PARAMS["flow_rate"].units, + "c": CONCENTRATION_UNITS, + } + units = quantity_units.get(quantity) + if quantity == "c": + label = "Concentration" + else: + label = quantity.replace("_", " ").capitalize() + self._event_chart.y_label = f"{label} / {units}" if units else label else: self._event_chart.y_label = "state" self._event_chart.series = series @@ -515,12 +520,19 @@ def export_script(self) -> str: col_cls = type(column) bind_cls = type(binding_model) proc_cls = type(self.process) + model_spec = self._model_form.spec - lines = [ + imports = [ f"from {cs_cls.__module__} import {cs_cls.__name__}", f"from {col_cls.__module__} import {col_cls.__name__}", f"from {bind_cls.__module__} import {bind_cls.__name__}", f"from {proc_cls.__module__} import {proc_cls.__name__}", + ] + if model_spec.export is not None: + imports.append("from CADETProcess.processModel import FlowSheet, Inlet, Outlet") + + lines = [ + *imports, "", f"component_system = {cs_cls.__name__}({self._components.value!r})", "", @@ -537,12 +549,16 @@ def export_script(self) -> str: for name, value in self._binding_form.collect_values().items(): lines.append(f"column.binding_model.{name} = {value!r}") - lines.append("") - lines.append(f"process = {proc_cls.__name__}(") - lines.append(" column=column,") - for name, value in self._model_form.collect_values().items(): - lines.append(f" {name}={value!r},") - lines.append(")") + model_values = self._model_form.collect_values() + if model_spec.export is not None: + lines.extend(model_spec.export(model_values)) + else: + lines.append("") + lines.append(f"process = {proc_cls.__name__}(") + lines.append(" column=column,") + for name, value in model_values.items(): + lines.append(f" {name}={value!r},") + lines.append(")") return "\n".join(lines) diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 6b44044..700d6bc 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -540,3 +540,64 @@ def test_fixing_an_invalid_value_recommits_automatically(): assert cw._model_form.is_valid assert cw._model_form.built is not None assert cw.process is cw._model_form.built + + +def test_pulse_feed_builds_a_process_for_a_cstr(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] + cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + + assert type(cw.process).__name__ == "Process" + assert cw.process.cycle_time == 6000.0 + timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] + assert timeline.value([0.0]).flatten().tolist() == [10.0] + assert timeline.value([70.0]).flatten().tolist() == [0.0] # past the 60s pulse_duration + + +def test_pulse_feed_component_picker_targets_only_the_selected_component(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] + cw._components.value = ["Salt", "Protein"] + cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + + component = cw._model_form.element("component") + assert component.option_labels == ["Salt", "Protein"] + timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] + assert timeline.value([0.0]).flatten().tolist() == [10.0, 0.0] + + component.value = "Protein" + + timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] + assert timeline.value([0.0]).flatten().tolist() == [0.0, 10.0] + + +def test_pulse_feed_event_chart_shows_feed_concentration(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] + cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + + assert [s["name"] for s in cw._event_chart.series] == ["Feed"] + assert cw._event_chart.y_label == "Concentration / mol/m^3_IV" + + +def test_pulse_feed_gets_sliders_for_its_scalar_fields_but_not_the_component_picker(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] + cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + + assert set(cw._event_sliders) == {"concentration", "flow_rate", "pulse_duration", "cycle_time"} + + +def test_pulse_feed_export_script_round_trips(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] + cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + + script = cw.export_script() + ns: dict = {} + exec(compile(script, "", "exec"), ns) # noqa: S102 + + assert ns["process"].cycle_time == cw.process.cycle_time + exported_timeline = ns["process"].parameter_timelines["flow_sheet.feed.c"] + original_timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] + assert exported_timeline.value([0.0]).tolist() == original_timeline.value([0.0]).tolist() From bcb8326c45200d5d586b7cdde0e4dbf53e8515e9 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 13:46:34 +0200 Subject: [PATCH 056/158] Fix whitespace issue for multiple components --- cadetgui/widgets/elements/_shared.css | 17 +++++++++++++---- cadetgui/widgets/forms/renderer.py | 23 ++++++++++++++++++----- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index 18f4c9f..68d79f1 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -170,10 +170,19 @@ } .cadetgui-field-list-stacked > .cadetgui-field-list-body { - /* A small nesting indent under the label, not all the way out to where - other fields' inputs start (calc(140px + 0.6rem) read as pushed too - far right compared to every other field). */ - padding-left: 1rem; + /* Matches the label width + gap of every other field's row layout, so + the input column doesn't jump sideways the moment a second row makes + this field switch from row to stacked layout. */ + padding-left: calc(140px + 0.6rem); +} + +.cadetgui-field-list-stacked > .cadetgui-field-label { + /* .cadetgui-field-label's flex: 0 0 140px pins its *main-axis* size to + 140px -- width in the normal row layout, but height once the stacked + variant switches to flex-direction: column, leaving a 140px-tall blank + label box above the rows. Reset it to size from content instead. */ + width: auto; + flex: 0 0 auto; } .cadetgui-field-list-body { diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index f9cf9ae..55da91d 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -6,7 +6,14 @@ from ...cadetprocessadapter import FieldSpec, ModelSpec from .._chrome import style_tag -from ..elements import BoolField, Element, FloatField, FloatListField, TextField +from ..elements import ( + BoolField, + ChoiceField, + Element, + FloatField, + FloatListField, + TextField, +) __all__ = ["FormRenderer", "element_for_field"] @@ -19,6 +26,8 @@ def _coerced_default(f: FieldSpec) -> Any: return list(f.default) if f.default else [0.0] if f.kind == "bool": return bool(f.default) + if f.kind == "choice": + return f.default return str(f.default) if f.default is not None else "" @@ -44,6 +53,9 @@ def _coerced_default(f: FieldSpec) -> Any: "text": lambda f: TextField( label=f.label or f.name, value=_coerced_default(f), units=f.units, validate=f.validate ), + "choice": lambda f: ChoiceField( + label=f.label or f.name, options=f.options or (), value=_coerced_default(f) + ), } @@ -68,7 +80,10 @@ def __init__( self._elements: Dict[str, Element] = {f.name: element_for_field(f) for f in spec.fields} for element in self._elements.values(): - element.observe(self._on_field_changed, names="value") + # Not always "value" itself: ChoiceField's `value` is a plain + # property over `selected_index` (see Element._value_trait_name), + # since its true value isn't JSON-serializable. + element.observe(self._on_field_changed, names=element._value_trait_name) self._btn_reset = W.Button(description="Reset") self._btn_reset.on_click(self._on_reset) @@ -99,9 +114,7 @@ def collect_values(self) -> Dict[str, Any]: values[f.name] = f.transform(raw) if f.transform else raw return values - def _on_field_changed(self, change: dict) -> None: - if change.get("name") != "value": - return + def _on_field_changed(self, _change: dict) -> None: self._commit() def _commit(self) -> None: From 00d485e6d0f89861b156da3b1c7d3782961bb61d Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 14:34:32 +0200 Subject: [PATCH 057/158] Force minimum number of components for LWE and BE --- cadetgui/widgets/chrome.css | 9 +++ cadetgui/widgets/composite/configuration.py | 64 ++++++++++++++++++- cadetgui/widgets/elements/_shared.css | 7 ++ .../widgets/elements/component_list_field.js | 15 ++++- .../widgets/elements/component_list_field.py | 6 +- tests/test_configuration.py | 40 +++++++++--- 6 files changed, 127 insertions(+), 14 deletions(-) diff --git a/cadetgui/widgets/chrome.css b/cadetgui/widgets/chrome.css index 553c633..ea7ca19 100644 --- a/cadetgui/widgets/chrome.css +++ b/cadetgui/widgets/chrome.css @@ -106,6 +106,15 @@ color: var(--cg-muted); } +.cadetgui-note { + font-size: 12.5px; + color: var(--cg-muted); + padding: 6px 10px; + border-left: 3px solid var(--cg-focus); + background: color-mix(in srgb, var(--cg-focus) 8%, transparent); + border-radius: 0 var(--cg-radius) var(--cg-radius) 0; +} + /* ipywidgets renders Button/Dropdown/etc. as .jupyter-widgets + a specific widget class — target broadly so this covers plain ipywidgets controls used for layout/actions (Button, BoundedIntText) inside our panels. */ diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index d739871..3772b47 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -12,7 +12,9 @@ MODEL_REGISTRY, MULTIPLEXABLE_COLUMN_PARAMS, PARAMS, + batch_elution_spec, build_parameter_config_spec, + lwe_spec, require_positive, ) from .._chrome import style_tag @@ -23,6 +25,10 @@ _CYCLE_TIME_SLIDER_MAX_SECONDS = 300.0 * 60.0 +# These templates model a buffer/salt gradient against a load, which is +# meaningless with a single component -- auto-add a second one on selection. +_TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS = frozenset({batch_elution_spec, lwe_spec}) + def _round_10sf(v: float) -> float: """Round to 10 significant figures, clearing browser-slider float noise.""" @@ -106,6 +112,8 @@ def __init__( self._process_settings_box.add_class("cadetgui-settings-box") self._components = ComponentListField(label="Components:") + self._component_note = W.HTML(layout=W.Layout(display="none")) + self._component_note.add_class("cadetgui-note") self._column_picker = ChoiceField( label="Column Model:", options=list(self._columns.items()) ) @@ -132,6 +140,7 @@ def __init__( [ W.HTML("
Component System
"), self._components, + self._component_note, ] ) components_section.add_class("cadetgui-section") @@ -211,10 +220,12 @@ def __init__( self._components.observe(self._on_components_change, names="value") self._column_picker.observe(self._on_selection_change, names="selected_index") self._binding_picker.observe(self._on_selection_change, names="selected_index") - self._model_picker.observe(self._on_selection_change, names="selected_index") + self._model_picker.observe(self._on_model_selection_change, names="selected_index") self._btn_export.on_click(self._on_export) - self._rebuild_forms() + self._sync_component_minimum() + if not self._maybe_autoadd_component(): + self._rebuild_forms() def add_listener(self, fn: Callable[[Any], None]) -> None: """Register a callback fired with `.process` on every successful build.""" @@ -257,6 +268,47 @@ def _on_selection_change(self, change: dict) -> None: return self._rebuild_forms() + def _on_model_selection_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + self._sync_component_minimum() + if self._maybe_autoadd_component(): + return # setting self._components.value already rebuilt the forms + self._rebuild_forms() + + def _required_min_components(self) -> int: + model_fn = self._model_picker.value + return 2 if model_fn in _TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS else 1 + + def _sync_component_minimum(self) -> None: + """Raise/lower the component list's floor to match the selected template. + + Also drives the info note next to it and (via `min_components`) greys + out the list's remove button once the row count hits the floor. + """ + required = self._required_min_components() + self._components.min_components = required + if required > 1: + self._component_note.value = ( + "The process template you selected does not allow less than" + f" {required} components." + ) + self._component_note.layout.display = "" + else: + self._component_note.layout.display = "none" + + def _maybe_autoadd_component(self) -> bool: + """Add a second component when a gradient template needs one but only one exists.""" + required = self._required_min_components() + names = self._components.value + if len(names) < required: + self._components.value = [ + *names, + *(f"Component {i}" for i in range(len(names) + 1, required + 1)), + ] + return True + return False + def _on_toggle_settings(self, _btn: Any) -> None: shown = self._settings_box.layout.display != "none" self._settings_box.layout.display = "none" if shown else "" @@ -471,8 +523,14 @@ def _redraw_event_plot(self) -> None: parts = name.split(".") unit_op = parts[-2] if len(parts) >= 2 else name display_name = unit_op.replace("_", " ").capitalize() + component_names = self._components.value for col in range(n_cols): - label = display_name if n_cols == 1 else f"{display_name} [{col}]" + if n_cols == 1: + label = display_name + elif col < len(component_names): + label = f"{display_name} ({component_names[col]})" + else: + label = f"{display_name} [{col}]" values = [ float(row[col]) if isinstance(row, (list, tuple)) else float(row) for row in raw diff --git a/cadetgui/widgets/elements/_shared.css b/cadetgui/widgets/elements/_shared.css index 68d79f1..773e76c 100644 --- a/cadetgui/widgets/elements/_shared.css +++ b/cadetgui/widgets/elements/_shared.css @@ -224,6 +224,13 @@ color: var(--cg-focus); } +.cadetgui-field-list-row button:disabled { + cursor: not-allowed; + opacity: 0.4; + border-color: var(--cg-border); + color: var(--cg-muted); +} + .cadetgui-field-list-add { width: fit-content; } diff --git a/cadetgui/widgets/elements/component_list_field.js b/cadetgui/widgets/elements/component_list_field.js index 69280ad..115f464 100644 --- a/cadetgui/widgets/elements/component_list_field.js +++ b/cadetgui/widgets/elements/component_list_field.js @@ -25,6 +25,14 @@ function render({ model, el }) { counter.textContent = `${n} component${n === 1 ? "" : "s"}`; } + function updateRemoveButtons() { + const min = model.get("min_components") || 1; + const atMin = rows.children.length <= min; + rows.querySelectorAll(".cadetgui-field-list-remove").forEach((btn) => { + btn.disabled = atMin; + }); + } + function commit() { model.set("value", currentNames()); model.save_changes(); @@ -43,12 +51,14 @@ function render({ model, el }) { const rm = document.createElement("button"); rm.type = "button"; + rm.className = "cadetgui-field-list-remove"; rm.textContent = "−"; rm.title = "Remove component"; rm.addEventListener("click", () => { - if (rows.children.length <= 1) return; // always keep at least one + if (rows.children.length <= (model.get("min_components") || 1)) return; row.remove(); commit(); + updateRemoveButtons(); }); row.appendChild(rm); @@ -64,6 +74,7 @@ function render({ model, el }) { // indented below) once there's more than one row. wrap.classList.toggle("cadetgui-field-list-stacked", list.length > 1); updateCounter(); + updateRemoveButtons(); } const addBtn = document.createElement("button"); @@ -73,6 +84,7 @@ function render({ model, el }) { addBtn.addEventListener("click", () => { addRow(`Component ${rows.children.length + 1}`); commit(); + updateRemoveButtons(); }); const controls = document.createElement("div"); @@ -96,6 +108,7 @@ function render({ model, el }) { model.on("change:value", syncFromModel); model.on("change:error", syncError); + model.on("change:min_components", updateRemoveButtons); model.on("change:label", () => { labelEl.textContent = model.get("label"); labelEl.title = model.get("label"); diff --git a/cadetgui/widgets/elements/component_list_field.py b/cadetgui/widgets/elements/component_list_field.py index 2e7d296..052eb7d 100644 --- a/cadetgui/widgets/elements/component_list_field.py +++ b/cadetgui/widgets/elements/component_list_field.py @@ -16,10 +16,14 @@ class ComponentListField(Element): """Editable list of named components: add/remove/rename rows, live count. Defaults to one component ("Component 1") — always at least one, since a - `ComponentSystem` with zero components isn't meaningful. + `ComponentSystem` with zero components isn't meaningful. `min_components` + raises that floor further (e.g. a process template that needs a salt plus + a product component); the JS side greys out the remove button once the + row count reaches it. """ value = T.List(T.Unicode()).tag(sync=True) + min_components = T.Int(1).tag(sync=True) _esm = _DIR / "component_list_field.js" _css = _DIR / "_shared.css" diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 700d6bc..89b9993 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -49,14 +49,14 @@ def test_configuration_widget_rebuilds_forms_on_model_change(): def test_configuration_widget_rebuilds_column_on_component_change(): cw = ConfigurationWidget() original_column = cw._get_column() - assert original_column.n_comp == 1 + assert original_column.n_comp == 2 # Batch Elution's auto-added default - cw._components.value = ["Salt", "Protein"] + cw._components.value = ["Salt", "Protein", "Impurity"] new_column = cw._get_column() assert new_column is not original_column - assert new_column.n_comp == 2 - assert list(new_column.component_system.names) == ["Salt", "Protein"] - # the stale 1-component column must not linger in the cache + assert new_column.n_comp == 3 + assert list(new_column.component_system.names) == ["Salt", "Protein", "Impurity"] + # the stale 2-component column must not linger in the cache assert original_column not in cw._column_cache.values() @@ -187,11 +187,29 @@ def test_export_script_includes_binding_model_and_round_trips(): ) -def test_components_field_defaults_to_one_named_component(): +def test_components_field_defaults_to_two_named_components(): + # Batch Elution is the default template and needs a feed + eluent + # component, so construction auto-adds a second one (see + # _maybe_autoadd_component / _TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS). cw = ConfigurationWidget() - assert cw._components.value == ["Component 1"] - assert cw._get_column().n_comp == 1 - assert list(cw._get_column().component_system.names) == ["Component 1"] + assert cw._components.value == ["Component 1", "Component 2"] + assert cw._get_column().n_comp == 2 + assert list(cw._get_column().component_system.names) == ["Component 1", "Component 2"] + + +def test_component_minimum_and_note_match_the_selected_template(): + cw = ConfigurationWidget() # defaults to Batch Elution + assert cw._components.min_components == 2 + assert cw._component_note.layout.display == "" + assert "2 components" in cw._component_note.value + + cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + assert cw._components.min_components == 1 + assert cw._component_note.layout.display == "none" + + cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] + assert cw._components.min_components == 2 + assert cw._component_note.layout.display == "" def test_renaming_components_rebuilds_column_with_new_names(): @@ -546,6 +564,8 @@ def test_pulse_feed_builds_a_process_for_a_cstr(): cw = ConfigurationWidget() cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + # Pulse Feed doesn't need the second component Batch Elution auto-added. + cw._components.value = ["Component 1"] assert type(cw.process).__name__ == "Process" assert cw.process.cycle_time == 6000.0 @@ -575,6 +595,8 @@ def test_pulse_feed_event_chart_shows_feed_concentration(): cw = ConfigurationWidget() cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] + # Pulse Feed doesn't need the second component Batch Elution auto-added. + cw._components.value = ["Component 1"] assert [s["name"] for s in cw._event_chart.series] == ["Feed"] assert cw._event_chart.y_label == "Concentration / mol/m^3_IV" From 10cd1fa7a9c50321a942dcb7783025a5c8af4261 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Wed, 9 Sep 2026 15:30:23 +0200 Subject: [PATCH 058/158] Add optional column-parameter visibility toggle Column and binding forms only ever rendered CADET-Process's required_parameters, hiding everything with a built-in default (initial conditions, flow_direction, CSTR's flow_rate_filter, etc.) with no way to override it short of dropping to Python. A "Show optional parameters" checkbox in the Column Model section's settings gear now renders those too. --- cadetgui/cadetprocessadapter.py | 16 +++- cadetgui/parameters/interface.json | 87 ++++++++++++++++++- cadetgui/widgets/composite/configuration.py | 71 +++++++++++++-- .../widgets/elements/component_list_field.py | 5 +- tests/test_configuration.py | 65 +++++++++++++- tests/test_parameters.py | 3 +- 6 files changed, 230 insertions(+), 17 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index cdde1a8..c8b93bc 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -461,13 +461,15 @@ def _coerce_to_kind(kind: str, val: Any) -> Any: def build_parameter_config_spec( - obj: Any, *, multiplex: Optional[Dict[str, bool]] = None + obj: Any, *, multiplex: Optional[Dict[str, bool]] = None, include_optional: bool = False ) -> ModelSpec: """Build a ModelSpec from any object exposing `required_parameters`. Generic over `obj` (column, binding model, ...) so the same function drives every form. `multiplex` only matters for - `MULTIPLEXABLE_COLUMN_PARAMS`. + `MULTIPLEXABLE_COLUMN_PARAMS`. `include_optional` also renders every + scalar/list parameter `obj` currently holds a value for, beyond + `required_parameters`. """ req = getattr(obj, "required_parameters", None) or [] names = _unique_preserve_order(list(req)) @@ -479,6 +481,16 @@ def build_parameter_config_spec( if category == "binding" and names: names.append("is_kinetic") + if include_optional: + # obj.parameters' values are frozen at construction time, not live -- + # read each one fresh via getattr. Structured (dict-valued) + # parameters aren't renderable by this generic per-parameter form. + optional_names = [ + p for p in getattr(obj, "parameters", {}) + if p not in names and isinstance(getattr(obj, p, None), (int, float, bool, list, tuple)) + ] + names.extend(optional_names) + component_names = tuple(obj.component_system.names) if hasattr(obj, "component_system") else () fields: list[FieldSpec] = [] kinds: dict[str, str] = {} diff --git a/cadetgui/parameters/interface.json b/cadetgui/parameters/interface.json index f77ed6d..2862883 100644 --- a/cadetgui/parameters/interface.json +++ b/cadetgui/parameters/interface.json @@ -88,6 +88,51 @@ "dtype": "float", "component_dependent": true, "description": "Effective pore diffusion coefficient per component.", "source": "interface/unit_operations/particle_config.rst PORE_DIFFUSION; cadetAdapter.py unit_parameters_map writes PAR_DIFFUSION for GeneralRateModel -- same doc/code name mismatch pattern as COL_LENGTH/BED_LENGTH, flagged not resolved." + }, + "c": { + "cp_name": "c", "co_name": "INIT_C", + "unit": "mol/m^3_IV", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Initial concentration in the bulk mobile phase, per component.", + "source": "interface/unit_operations/axial_flow_column_1D_config.rst INIT_C; cadetAdapter.py unit_parameters_map maps INIT_C -> c the same way for every column model, including Cstr." + }, + "cp": { + "cp_name": "cp", "co_name": "INIT_CP", + "unit": "mol/m^3_MP", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Initial concentration in the particle liquid (pore) phase, per component. Only meaningful for models with an explicit particle pore phase (GRM, LRMP).", + "source": "interface/unit_operations/particle_config.rst INIT_CP." + }, + "q": { + "cp_name": "q", "co_name": "INIT_Q", + "co_name_doc_variant": "INIT_CS", + "unit": "mol/m^3_SP", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Initial concentration in the solid (bound) phase, per component. Stays unset (None, hidden) until a real binding model -- not NoBinding -- actually gives the column bound states.", + "source": "interface/unit_operations/particle_config.rst INIT_CS (the doc name for what cadetAdapter.py's unit_parameters_map calls INIT_Q for every column model -- same doc/code naming mismatch pattern as COL_LENGTH/BED_LENGTH)." + }, + "pore_accessibility": { + "cp_name": "pore_accessibility", "co_name": "PORE_ACCESSIBILITY", + "unit": null, "min": 0.0, "min_exclusive": true, "max": 1.0, "max_exclusive": false, + "dtype": "float", "component_dependent": true, + "description": "Fraction of pore volume accessible to each component (defaults to 1, i.e. fully accessible). Only meaningful for models with a particle pore phase (GRM, LRMP); CADET-Core's own docs say not to combine this with a binding model.", + "source": "interface/unit_operations/particle_config.rst PORE_ACCESSIBILITY." + }, + "surface_diffusion": { + "cp_name": "surface_diffusion", "co_name": "PAR_SURFDIFFUSION", + "co_name_doc_variant": "SURFACE_DIFFUSION", + "unit": "m^2_SP/s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": true, + "description": "Particle surface diffusion coefficient per bound state of each component. Only applied when CADET-Core's HAS_SURFACE_DIFFUSION flag is set, which the GUI doesn't currently expose -- this stays unset (None, hidden) here.", + "source": "interface/unit_operations/particle_config.rst SURFACE_DIFFUSION; cadetAdapter.py unit_parameters_map writes PAR_SURFDIFFUSION for GeneralRateModel -- same doc/code name mismatch pattern as COL_LENGTH/BED_LENGTH." + }, + "flow_direction": { + "cp_name": "flow_direction", "co_name": null, + "co_name_note": "Not written directly -- CADET-Process flips the sign of the VELOCITY it writes based on this Switch rather than passing it through as its own CADET-Core field.", + "unit": null, "min": -1.0, "min_exclusive": false, "max": 1.0, "max_exclusive": false, + "dtype": "float", "component_dependent": false, + "description": "Flow direction: 1 = forward, -1 = backward. CADET-Process's own Switch descriptor only accepts these two exact values; the bounded numeric field this renders as doesn't restrict entries to just them, same as any other min/max-bounded field -- CADET-Process's setter still rejects anything else on assignment.", + "source": "CADETProcess/processModel/unitOperation.py TubularReactorBase.flow_direction = Switch(valid=[-1, 1], default=1); interface/unit_operations/axial_flow_column_1D_config.rst VELOCITY (the field this sign is ultimately applied to)." } } }, @@ -102,7 +147,12 @@ "bed_porosity": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.bed_porosity" }, "particle_porosity": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.particle_porosity" }, "particle_radius": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.particle_radius" }, - "film_diffusion": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.film_diffusion" } + "film_diffusion": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.film_diffusion" }, + "c": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.c" }, + "cp": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.cp" }, + "q": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.q" }, + "pore_accessibility": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.pore_accessibility" }, + "flow_direction": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.flow_direction" } } }, "LumpedRateModelWithoutPores": { @@ -116,7 +166,10 @@ "dtype": "float", "component_dependent": false, "description": "Total porosity (bed + particle combined into one lumped value; there are no explicit particles in this model).", "source": "interface/unit_operations/axial_flow_column_1D_config.rst TOTAL_POROSITY." - } + }, + "c": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.c" }, + "q": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.q" }, + "flow_direction": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.flow_direction" } } }, "Cstr": { @@ -129,6 +182,22 @@ "dtype": "float", "component_dependent": false, "description": "Initial liquid volume in the tank.", "source": "interface/unit_operations/cstr.rst INIT_LIQUID_VOLUME." + }, + "c": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.c" }, + "q": { "$ref": "categories.column.models.GeneralRateModel.own_parameters.q" }, + "flow_rate_filter": { + "cp_name": "flow_rate_filter", "co_name": "FLOWRATE_FILTER", + "unit": "m^3/s", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Flow rate of pure liquid (no components) leaving through the CSTR's filter, on top of its regular outlet flow.", + "source": "interface/unit_operations/cstr.rst FLOWRATE_FILTER." + }, + "const_solid_volume": { + "cp_name": "const_solid_volume", "co_name": "CONST_SOLID_VOLUME", + "unit": "m^3", "min": 0.0, "min_exclusive": false, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Fixed solid-phase volume in the tank, for binding in a CSTR.", + "source": "interface/unit_operations/cstr.rst CONST_SOLID_VOLUME." } } } @@ -250,6 +319,20 @@ "dtype": "bool", "component_dependent": false, "description": "Kinetic (true) vs. quasi-stationary/rapid-equilibrium (false) adsorption. Not in CADET-Process's own required_parameters (it has a non-None default, True), so it never auto-renders -- build_parameter_config_spec adds it explicitly for binding models with a real isotherm.", "source": "CADETProcess/processModel/binding.py BindingBaseClass.is_kinetic (Bool, default True); interface/binding/multi_component_langmuir.rst IS_KINETIC." + }, + "reference_liquid_phase_conc": { + "cp_name": "reference_liquid_phase_conc", "co_name": "SMA_REFC0", + "unit": "mol/m^3_MP", "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Reference liquid phase concentration, used to normalize the adsorption term.", + "source": "interface/binding/steric_mass_action.rst SMA_REFC0." + }, + "reference_solid_phase_conc": { + "cp_name": "reference_solid_phase_conc", "co_name": "SMA_REFQ", + "unit": "mol/m^3_SP", "min": 0.0, "min_exclusive": true, "max": null, + "dtype": "float", "component_dependent": false, + "description": "Reference solid phase concentration, used to normalize the desorption term.", + "source": "interface/binding/steric_mass_action.rst SMA_REFQ." } } } diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 3772b47..dab28bb 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -76,14 +76,20 @@ def __init__( for name, checkbox in self._multiplex_checkboxes.items(): checkbox.observe(self._make_on_multiplex_change(name), names="value") + self._show_optional_checkbox = W.Checkbox( + description="Show optional parameters", value=False, indent=False + ) + self._show_optional_checkbox.observe(self._on_show_optional_change, names="value") + self._btn_settings = W.Button( - icon="cog", tooltip="Column discretization settings", + icon="cog", tooltip="Column settings", layout=W.Layout(width="36px"), ) self._btn_settings.on_click(self._on_toggle_settings) self._settings_box = W.VBox( [ W.HTML("
Settings
"), + self._show_optional_checkbox, *self._multiplex_checkboxes.values(), ], layout=W.Layout(display="none"), @@ -91,6 +97,28 @@ def __init__( self._settings_box.add_class("cadetgui-section") self._settings_box.add_class("cadetgui-settings-box") + self._show_optional_binding_checkbox = W.Checkbox( + description="Show optional parameters", value=False, indent=False + ) + self._show_optional_binding_checkbox.observe( + self._on_show_optional_binding_change, names="value" + ) + + self._btn_binding_settings = W.Button( + icon="cog", tooltip="Binding settings", + layout=W.Layout(width="36px"), + ) + self._btn_binding_settings.on_click(self._on_toggle_binding_settings) + self._binding_settings_box = W.VBox( + [ + W.HTML("
Settings
"), + self._show_optional_binding_checkbox, + ], + layout=W.Layout(display="none"), + ) + self._binding_settings_box.add_class("cadetgui-section") + self._binding_settings_box.add_class("cadetgui-settings-box") + self._cycle_time_unit_checkbox = W.Checkbox( description="Show Cycle Time in Minutes", value=False, indent=False ) @@ -163,9 +191,17 @@ def __init__( column_section.add_class("cadetgui-section") column_section.add_class("cadetgui-section-half") - binding_section = W.VBox( + binding_header = W.HBox( [ W.HTML("
Binding Model
"), + self._btn_binding_settings, + ], + layout=W.Layout(justify_content="space-between", align_items="center"), + ) + binding_section = W.VBox( + [ + binding_header, + self._binding_settings_box, self._binding_picker, self._binding_form_box, ] @@ -313,6 +349,10 @@ def _on_toggle_settings(self, _btn: Any) -> None: shown = self._settings_box.layout.display != "none" self._settings_box.layout.display = "none" if shown else "" + def _on_toggle_binding_settings(self, _btn: Any) -> None: + shown = self._binding_settings_box.layout.display != "none" + self._binding_settings_box.layout.display = "none" if shown else "" + def _on_toggle_process_settings(self, _btn: Any) -> None: shown = self._process_settings_box.layout.display != "none" self._process_settings_box.layout.display = "none" if shown else "" @@ -326,6 +366,16 @@ def _on_change(change: dict) -> None: return _on_change + def _on_show_optional_change(self, change: dict) -> None: + if change.get("name") != "value": + return + self._rebuild_forms() + + def _on_show_optional_binding_change(self, change: dict) -> None: + if change.get("name") != "value": + return + self._rebuild_forms() + def _on_process_built(self, built: Any) -> None: self.process = built self._notify() @@ -346,12 +396,16 @@ def _rebuild_forms(self) -> None: applicable = column_params & MULTIPLEXABLE_COLUMN_PARAMS for name, checkbox in self._multiplex_checkboxes.items(): checkbox.layout.display = "" if name in applicable else "none" - self._btn_settings.layout.display = "" if applicable else "none" - if not applicable: - self._settings_box.layout.display = "none" + # "Show optional parameters" applies to every column model, unlike + # the multiplex checkboxes above -- the gear stays visible regardless + # of `applicable`. self._column_form = FormRenderer( - build_parameter_config_spec(column, multiplex=self._multiplex_state) + build_parameter_config_spec( + column, + multiplex=self._multiplex_state, + include_optional=self._show_optional_checkbox.value, + ) ) self._column_form_box.children = (self._column_form.root,) @@ -359,7 +413,10 @@ def _attach_binding(built: Any, col: Any = column) -> None: col.binding_model = built self._binding_form = FormRenderer( - build_parameter_config_spec(binding_model), on_built=_attach_binding + build_parameter_config_spec( + binding_model, include_optional=self._show_optional_binding_checkbox.value + ), + on_built=_attach_binding, ) self._binding_form_box.children = (self._binding_form.root,) diff --git a/cadetgui/widgets/elements/component_list_field.py b/cadetgui/widgets/elements/component_list_field.py index 052eb7d..10715a2 100644 --- a/cadetgui/widgets/elements/component_list_field.py +++ b/cadetgui/widgets/elements/component_list_field.py @@ -17,9 +17,8 @@ class ComponentListField(Element): Defaults to one component ("Component 1") — always at least one, since a `ComponentSystem` with zero components isn't meaningful. `min_components` - raises that floor further (e.g. a process template that needs a salt plus - a product component); the JS side greys out the remove button once the - row count reaches it. + raises that floor further; the JS side greys out the remove button once + the row count reaches it. """ value = T.List(T.Unicode()).tag(sync=True) diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 89b9993..3e07210 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -294,10 +294,71 @@ def test_enabling_multiplex_switches_field_to_per_component(): assert by_name["film_diffusion"].kind == "float" -def test_multiplex_settings_hidden_for_column_without_any_applicable_param(): +def test_multiplex_checkboxes_hidden_for_column_without_any_applicable_param(): cw = ConfigurationWidget() cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - assert cw._btn_settings.layout.display == "none" + # The gear itself stays visible -- "Show optional parameters" always applies. + assert cw._btn_settings.layout.display != "none" + assert all(cb.layout.display == "none" for cb in cw._multiplex_checkboxes.values()) + + +def test_show_optional_parameters_adds_and_removes_column_fields(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + required_names = {f.name for f in cw._column_form.spec.fields} + assert "c" not in required_names # optional fields hidden by default + + cw._show_optional_checkbox.value = True + shown_names = {f.name for f in cw._column_form.spec.fields} + assert {"c", "cp", "flow_direction", "pore_accessibility"} <= shown_names + # still builds a real column with the optional fields' own defaults applied + assert cw._get_column() is not None + + cw._show_optional_checkbox.value = False + assert {f.name for f in cw._column_form.spec.fields} == required_names + + +def test_show_optional_parameters_skips_none_valued_and_non_scalar_fields(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + cw._show_optional_checkbox.value = True + + names = {f.name for f in cw._column_form.spec.fields} + assert "q" not in names # None-valued (no bound states configured) + assert "surface_diffusion" not in names # None-valued + assert "discretization" not in names # nested solver-settings dict, not a scalar field + + +def test_show_optional_parameters_does_not_apply_to_binding_form(): + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["Steric Mass Action (SMA)"] + cw._show_optional_checkbox.value = True + + names = {f.name for f in cw._binding_form.spec.fields} + assert "reference_liquid_phase_conc" not in names + + +def test_show_optional_binding_parameters_adds_sma_reference_concentrations(): + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["Steric Mass Action (SMA)"] + required_names = {f.name for f in cw._binding_form.spec.fields} + + cw._show_optional_binding_checkbox.value = True + shown_names = {f.name for f in cw._binding_form.spec.fields} + assert {"reference_liquid_phase_conc", "reference_solid_phase_conc"} <= shown_names + assert cw._get_column() is not None # still builds with the optional fields applied + + cw._show_optional_binding_checkbox.value = False + assert {f.name for f in cw._binding_form.spec.fields} == required_names + + +def test_show_optional_binding_parameters_does_not_apply_to_column_form(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + cw._show_optional_binding_checkbox.value = True + + names = {f.name for f in cw._column_form.spec.fields} + assert "c" not in names def test_multiplex_checkbox_visibility_matches_column_capabilities(): diff --git a/tests/test_parameters.py b/tests/test_parameters.py index c37bb41..8d2f4fd 100644 --- a/tests/test_parameters.py +++ b/tests/test_parameters.py @@ -22,7 +22,8 @@ def test_cstr_has_no_shared_tubular_geometry(): params = get_parameters("column", "Cstr") assert "length" not in params assert "diameter" not in params - assert params.keys() == {"init_liquid_volume"} + assert "axial_dispersion" not in params + assert "init_liquid_volume" in params def test_langmuir_capacity_is_component_dependent_but_sma_capacity_is_not(): From 67a2f59c98304606615bc1db3dd9f3d8504753be Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Fri, 11 Sep 2026 09:51:23 +0200 Subject: [PATCH 059/158] Change Default Models --- cadetgui/widgets/composite/configuration.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index dab28bb..d4e0b1a 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -143,10 +143,12 @@ def __init__( self._component_note = W.HTML(layout=W.Layout(display="none")) self._component_note.add_class("cadetgui-note") self._column_picker = ChoiceField( - label="Column Model:", options=list(self._columns.items()) + label="Column Model:", options=list(self._columns.items()), + value=self._columns.get("Lumped Rate Model Without Pores (LRM)"), ) self._binding_picker = ChoiceField( - label="Binding Model:", options=list(self._binding_registry.items()) + label="Binding Model:", options=list(self._binding_registry.items()), + value=self._binding_registry.get("Linear"), ) self._model_picker = ChoiceField( label="Process Template:", options=list(self._registry.items()) From 01036a8afbc782d24da3c0af03a57db5126677ec Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Fri, 11 Sep 2026 10:04:01 +0200 Subject: [PATCH 060/158] Fix total porosity missing from LRM as parameter --- cadetgui/cadetprocessadapter.py | 1 + tests/test_configuration.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index c8b93bc..fa41ed9 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -368,6 +368,7 @@ def _infer_kind(x: Any) -> str: ("column", None, "length"): 0.5, ("column", None, "axial_dispersion"): 1e-8, ("column", None, "bed_porosity"): 0.72, + ("column", None, "total_porosity"): 0.72, ("column", None, "particle_porosity"): 0.6, ("column", None, "particle_radius"): 5.0e-6, ("column", None, "film_diffusion"): 1e-3, diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 3e07210..1559959 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -121,10 +121,13 @@ def test_export_script_button_populates_textarea_on_success(): assert "generated" in cw.status.value.lower() -def test_binding_model_defaults_to_none_matching_cadetprocess_default(): +def test_binding_model_defaults_to_linear(): cw = ConfigurationWidget() - assert cw._binding_picker.option_labels[0] == "None" - assert cw._binding_form.spec.fields == [] # NoBinding has no required_parameters + assert cw._binding_picker.option_labels[0] == "None" # still first in the dropdown list + selected = cw._binding_picker.option_labels[cw._binding_picker.selected_index] + assert selected == "Linear" + names = {f.name for f in cw._binding_form.spec.fields} + assert names == {"adsorption_rate", "desorption_rate", "is_kinetic"} def test_switching_binding_model_rebuilds_its_form(): @@ -266,7 +269,8 @@ def test_unchecking_is_kinetic_commits_to_the_real_binding_model(): def test_no_binding_does_not_get_an_is_kinetic_field(): - cw = ConfigurationWidget() # binding defaults to "None" -> NoBinding + cw = ConfigurationWidget() + cw._binding_picker.value = cw._binding_registry["None"] assert "is_kinetic" not in {f.name for f in cw._binding_form.spec.fields} @@ -321,6 +325,7 @@ def test_show_optional_parameters_adds_and_removes_column_fields(): def test_show_optional_parameters_skips_none_valued_and_non_scalar_fields(): cw = ConfigurationWidget() cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + cw._binding_picker.value = cw._binding_registry["None"] # q stays unset without a real isotherm cw._show_optional_checkbox.value = True names = {f.name for f in cw._column_form.spec.fields} From 38d2d671b63fad0081dcd1389d03a9419b0bdbe5 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Fri, 11 Sep 2026 11:28:06 +0200 Subject: [PATCH 061/158] Enable Save and Import of Configurations --- cadetgui/configuration_store.py | 158 ++++++++++++++ cadetgui/widgets/composite/configuration.py | 230 +++++++++++++++++++- cadetgui/widgets/composite/run_history.py | 17 +- cadetgui/widgets/composite/solution.py | 115 ++++++++-- cadetgui/widgets/forms/renderer.py | 12 +- tests/test_configuration.py | 210 ++++++++++++++++++ tests/test_configuration_store.py | 94 ++++++++ tests/test_run_history.py | 16 ++ tests/test_solution.py | 132 +++++++++++ 9 files changed, 966 insertions(+), 18 deletions(-) create mode 100644 cadetgui/configuration_store.py create mode 100644 tests/test_configuration_store.py diff --git a/cadetgui/configuration_store.py b/cadetgui/configuration_store.py new file mode 100644 index 0000000..4c44bc9 --- /dev/null +++ b/cadetgui/configuration_store.py @@ -0,0 +1,158 @@ +from __future__ import annotations + +import datetime as dt +import hashlib +import json +from dataclasses import asdict, dataclass, field +from pathlib import Path +from typing import Any, Dict, List, Optional, Tuple + +from cadet import H5 + +from . import __version__ as _cadetgui_version + +__all__ = [ + "ConfigurationState", + "compute_hash", + "default_store_dir", + "save_h5", + "load_h5", + "save_to_store", + "load_from_store", +] + + +@dataclass(frozen=True) +class ConfigurationState: + """The hashed, JSON-safe payload needed to reconstruct a ConfigurationWidget.""" + + components: List[str] + column_key: str + binding_key: str + template_key: str + multiplex_state: Dict[str, bool] = field(default_factory=dict) + show_optional_column: bool = False + show_optional_binding: bool = False + column_values: Dict[str, Any] = field(default_factory=dict) + binding_values: Dict[str, Any] = field(default_factory=dict) + model_values: Dict[str, Any] = field(default_factory=dict) + + +def compute_hash(state: ConfigurationState) -> str: + """Content-addressed fingerprint of a configuration (the name is not hashed).""" + payload = json.dumps(asdict(state), sort_keys=True) + return hashlib.sha256(payload.encode("utf-8")).hexdigest() + + +def default_store_dir() -> Path: + """Local directory saved/imported-by-hash configurations live in.""" + store_dir = Path.home() / ".cadetgui" / "configurations" + store_dir.mkdir(parents=True, exist_ok=True) + return store_dir + + +def _decode_h5_leaf(value: Any) -> Any: + """Coerce one h5py/numpy/bytes leaf back to a plain JSON-safe Python type.""" + if hasattr(value, "to_dict"): + value = value.to_dict() + if isinstance(value, dict): + return {k: _decode_h5_leaf(v) for k, v in value.items()} + if isinstance(value, (list, tuple)): + return [_decode_h5_leaf(v) for v in value] + if isinstance(value, bytes): + return value.decode() + if hasattr(value, "tolist"): # numpy scalar or ndarray + return _decode_h5_leaf(value.tolist()) + return value + + +def save_h5( + state: ConfigurationState, + name: str, + path: "Path | str", + *, + process: Any = None, +) -> None: + """Write a configuration to `path` as h5. + + Always writes a `cadetgui` group holding the full GUI-reconstruction + state (the only thing `load_h5` reads back). When `process` is given, + also embeds the real CADET-Core solver config under the same file + (best-effort -- a missing/unlocatable CADET-Core install must not block + saving the GUI state, which never depends on it). + """ + h5 = H5() + if process is not None: + try: + from CADETProcess.simulator import Cadet + + h5.root.update(Cadet().get_process_config(process)) + except Exception: # noqa: BLE001 + pass + + h5.root.cadetgui = { + "name": name, + "hash": compute_hash(state), + "created": dt.datetime.now().isoformat(), + "cadetgui_version": _cadetgui_version, + "state": asdict(state), + } + h5.filename = str(path) + h5.save() + + +def load_h5(path: "Path | str") -> Tuple[str, ConfigurationState]: + """Read a configuration previously written by `save_h5`. + + Returns (name, state). Raises ValueError if `path` has no `cadetgui` + group (e.g. a plain CADET-Core h5 file). + """ + h5 = H5() + h5.filename = str(path) + h5.load_from_file() + + root = _decode_h5_leaf(h5.root) + gui = root.get("cadetgui") + if not gui: + raise ValueError(f"{path} has no 'cadetgui' group -- not a saved configuration.") + + payload = gui["state"] + state = ConfigurationState( + components=payload["components"], + column_key=payload["column_key"], + binding_key=payload["binding_key"], + template_key=payload["template_key"], + multiplex_state=payload.get("multiplex_state", {}), + show_optional_column=payload.get("show_optional_column", False), + show_optional_binding=payload.get("show_optional_binding", False), + column_values=payload.get("column_values", {}), + binding_values=payload.get("binding_values", {}), + model_values=payload.get("model_values", {}), + ) + return gui["name"], state + + +def save_to_store( + state: ConfigurationState, + name: str, + *, + process: Any = None, + store_dir: Optional[Path] = None, +) -> Path: + """Save to the local configuration store, keyed by content hash. Returns the path.""" + store_dir = store_dir or default_store_dir() + store_dir.mkdir(parents=True, exist_ok=True) + path = store_dir / f"{compute_hash(state)}.h5" + save_h5(state, name, path, process=process) + return path + + +def load_from_store( + hash_: str, *, store_dir: Optional[Path] = None +) -> Tuple[str, ConfigurationState]: + """Load a configuration from the local store by its hash.""" + store_dir = store_dir or default_store_dir() + path = store_dir / f"{hash_}.h5" + if not path.exists(): + raise FileNotFoundError(f"No saved configuration with hash {hash_!r} in {store_dir}.") + return load_h5(path) diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index d4e0b1a..f911d36 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -1,6 +1,7 @@ from __future__ import annotations -from typing import Any, Callable, Dict, List, Optional +from pathlib import Path +from typing import Any, Callable, Dict, List, Mapping, Optional import ipywidgets as W from CADETProcess.processModel import ComponentSystem @@ -17,13 +18,26 @@ lwe_spec, require_positive, ) +from ...configuration_store import ( + ConfigurationState, + compute_hash, + load_from_store, + save_to_store, +) from .._chrome import style_tag -from ..elements import ChoiceField, ComponentListField, EventTimelineChart, FloatField +from ..elements import ( + ChoiceField, + ComponentListField, + EventTimelineChart, + FloatField, + TextField, +) from ..forms import FormRenderer __all__ = ["ConfigurationWidget"] _CYCLE_TIME_SLIDER_MAX_SECONDS = 300.0 * 60.0 +_DEFAULT_CONFIG_NAME = "New Experiment" # These templates model a buffer/salt gradient against a load, which is # meaningless with a single component -- auto-add a second one on selection. @@ -35,6 +49,14 @@ def _round_10sf(v: float) -> float: return float(f"{v:.10g}") +def _key_for_value(registry: Mapping[str, Any], value: Any) -> Optional[str]: + """Reverse-lookup a registry's human label for one of its factory values.""" + for key, candidate in registry.items(): + if candidate == value: + return key + return None + + class ConfigurationWidget: """Pick a unit operation + binding model + model-builder template, build a process. @@ -63,6 +85,11 @@ def __init__( self._model_form: Optional[FormRenderer] = None self._event_sliders: Dict[str, W.FloatSlider] = {} self._cycle_time_minutes_element: Optional[FloatField] = None + self.config_name: str = _DEFAULT_CONFIG_NAME + self.config_hash: Optional[str] = None + # None = use configuration_store.default_store_dir(); set via the + # "Storage folder" field below once the user picks one explicitly. + self._store_dir: Optional[Path] = None self._multiplex_state: Dict[str, bool] = dict.fromkeys(MULTIPLEXABLE_COLUMN_PARAMS, False) self._multiplex_checkboxes: Dict[str, W.Checkbox] = { @@ -166,6 +193,24 @@ def __init__( self._script_out = W.Textarea(layout=W.Layout(width="100%", height="220px", display="none")) self._script_out.add_class("cadetgui-script") + self._store_dir_field = TextField(label="Storage folder:", value="") + self._btn_set_store_dir = W.Button(description="Set folder", icon="folder-open") + self._store_dir_note = W.HTML( + "Leave blank to use the default (~/.cadetgui/configurations)." + ) + self._store_dir_note.add_class("cadetgui-note") + self._name_field = TextField(label="Configuration name:", value=_DEFAULT_CONFIG_NAME) + self._hash_display = W.HTML("No configuration built yet.") + self._btn_save = W.Button(description="Save", icon="save") + self._file_upload = W.FileUpload(description="Import file", accept=".h5", multiple=False) + self._import_hash_field = TextField(label="Import by hash:", value="") + self._btn_import_hash = W.Button(description="Import", icon="download") + self._btn_toggle_save_load_details = W.Button( + description="Show details", icon="chevron-down" + ) + self.save_status = W.HTML() + self.save_status.add_class("cadetgui-status") + components_section = W.VBox( [ W.HTML("
Component System
"), @@ -241,10 +286,34 @@ def __init__( ) process_section.add_class("cadetgui-section") + self._save_load_details_box = W.VBox( + [ + self._hash_display, + W.HTML("
"), + W.HBox([self._store_dir_field, self._btn_set_store_dir]), + self._store_dir_note, + W.HTML("
"), + self._file_upload, + W.HBox([self._import_hash_field, self._btn_import_hash]), + ], + layout=W.Layout(display="none"), + ) + save_load_section = W.VBox( + [ + W.HTML("
Save / Load Configuration
"), + self._name_field, + W.HBox([self._btn_save, self._btn_toggle_save_load_details]), + self.save_status, + self._save_load_details_box, + ] + ) + save_load_section.add_class("cadetgui-section") + self.root = W.VBox( [ W.HTML(style_tag()), W.HTML("
Configuration
"), + save_load_section, components_section, column_binding_row, process_section, @@ -260,6 +329,12 @@ def __init__( self._binding_picker.observe(self._on_selection_change, names="selected_index") self._model_picker.observe(self._on_model_selection_change, names="selected_index") self._btn_export.on_click(self._on_export) + self._name_field.observe(self._on_name_change, names="value") + self._btn_set_store_dir.on_click(self._on_set_store_dir) + self._btn_save.on_click(self._on_save) + self._file_upload.observe(self._on_file_upload_change, names="value") + self._btn_import_hash.on_click(self._on_import_hash_click) + self._btn_toggle_save_load_details.on_click(self._on_toggle_save_load_details) self._sync_component_minimum() if not self._maybe_autoadd_component(): @@ -359,6 +434,11 @@ def _on_toggle_process_settings(self, _btn: Any) -> None: shown = self._process_settings_box.layout.display != "none" self._process_settings_box.layout.display = "none" if shown else "" + def _on_toggle_save_load_details(self, _btn: Any) -> None: + shown = self._save_load_details_box.layout.display != "none" + self._save_load_details_box.layout.display = "none" if shown else "" + self._btn_toggle_save_load_details.description = "Show details" if shown else "Hide details" + def _make_on_multiplex_change(self, name: str) -> Callable[[dict], None]: def _on_change(change: dict) -> None: if change.get("name") != "value": @@ -380,9 +460,85 @@ def _on_show_optional_binding_change(self, change: dict) -> None: def _on_process_built(self, built: Any) -> None: self.process = built + self._refresh_config_hash() self._notify() self.status.value = "Process built." + def _snapshot_state(self) -> ConfigurationState: + """Capture the current selection + field values as the hashed save/import payload.""" + if self._column_form is None or self._binding_form is None or self._model_form is None: + raise RuntimeError( + "Nothing built yet -- pick a column, binding model, and template first." + ) + column_key = _key_for_value(self._columns, self._column_picker.value) + binding_key = _key_for_value(self._binding_registry, self._binding_picker.value) + template_key = _key_for_value(self._registry, self._model_picker.value) + if column_key is None or binding_key is None or template_key is None: + raise RuntimeError("Current selection isn't in a known registry -- can't snapshot it.") + return ConfigurationState( + components=list(self._components.value), + column_key=column_key, + binding_key=binding_key, + template_key=template_key, + multiplex_state=dict(self._multiplex_state), + show_optional_column=bool(self._show_optional_checkbox.value), + show_optional_binding=bool(self._show_optional_binding_checkbox.value), + column_values=self._column_form.collect_values(), + binding_values=self._binding_form.collect_values(), + model_values=self._model_form.collect_values(), + ) + + def _refresh_config_hash(self) -> None: + try: + self.config_hash = compute_hash(self._snapshot_state()) + except RuntimeError: + self.config_hash = None + if self.config_hash is None: + self._hash_display.value = "No configuration built yet." + else: + self._hash_display.value = f"Hash: {self.config_hash}" + + def _apply_state(self, name: str, state: ConfigurationState) -> None: + """Reconstruct pickers/forms from a saved ConfigurationState.""" + column_factory = self._columns.get(state.column_key) + binding_factory = self._binding_registry.get(state.binding_key) + template_factory = self._registry.get(state.template_key) + if column_factory is None or binding_factory is None or template_factory is None: + raise ValueError( + "Saved configuration references a column, binding model, or template" + " that isn't registered here anymore." + ) + + for param_name, enabled in state.multiplex_state.items(): + checkbox = self._multiplex_checkboxes.get(param_name) + if checkbox is not None: + checkbox.value = enabled + self._show_optional_checkbox.value = state.show_optional_column + self._show_optional_binding_checkbox.value = state.show_optional_binding + + self._components.value = list(state.components) + self._column_picker.value = column_factory + self._binding_picker.value = binding_factory + self._model_picker.value = template_factory + + self._column_form.set_values(state.column_values) + self._binding_form.set_values(state.binding_values) + self._model_form.set_values(state.model_values) + + self.config_name = name + self._name_field.value = name + self._refresh_config_hash() + + def import_from_store(self, hash_: str) -> None: + """Load a configuration previously saved to the local store, by its hash.""" + try: + name, state = load_from_store(hash_, store_dir=self._store_dir) + self._apply_state(name, state) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + self.save_status.value = f"Imported '{name}' ({hash_})." + def _rebuild_forms(self) -> None: column = self._get_column() binding_model = self._get_binding_model() @@ -392,6 +548,7 @@ def _rebuild_forms(self) -> None: self._binding_form_box.children = () self._model_form_box.children = () self._clear_event_section() + self._refresh_config_hash() return column_params = set(getattr(column, "required_parameters", None) or []) @@ -425,6 +582,12 @@ def _attach_binding(built: Any, col: Any = column) -> None: self._model_form = FormRenderer(model_fn(column), on_built=self._on_process_built) self._model_form_box.children = (self._model_form.root,) self._rebuild_event_sliders() + # The model form's own on_built=_on_process_built fires from inside the + # FormRenderer(...) constructor call above, before this method's own + # `self._model_form = ...` assignment has completed -- so that first + # call sees a stale (pre-rebuild) _model_form and can't snapshot yet. + # Refresh again now that all three forms are actually assigned. + self._refresh_config_hash() self.status.value = ( "Fields apply automatically as you edit them" @@ -689,6 +852,69 @@ def _on_export(self, _btn: Any) -> None: self._script_out.layout.display = "" self.status.value = "Script generated below." + def _on_name_change(self, change: dict) -> None: + if change.get("name") != "value": + return + self.config_name = change["new"] + + def _on_set_store_dir(self, _btn: Any) -> None: + text = self._store_dir_field.value.strip() + if not text: + self._store_dir = None + self.save_status.value = "Using the default storage folder." + return + try: + path = Path(text).expanduser().resolve() + path.mkdir(parents=True, exist_ok=True) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + self._store_dir = path + self._store_dir_field.value = str(path) + self.save_status.value = f"Configurations will be saved to {path}." + + def _on_save(self, _btn: Any) -> None: + if not self.config_name.strip(): + self.save_status.value = ( + "Give the configuration a name before saving." + ) + return + try: + state = self._snapshot_state() + path = save_to_store( + state, self.config_name, process=self.process, store_dir=self._store_dir + ) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + self._refresh_config_hash() + self.save_status.value = f"Saved to {path}." + + def _on_file_upload_change(self, change: dict) -> None: + if change.get("name") != "value" or not self._file_upload.value: + return + item = self._file_upload.value[0] + try: + import tempfile + from pathlib import Path + + from ...configuration_store import load_h5 + + with tempfile.TemporaryDirectory() as tmp_dir: + tmp_path = Path(tmp_dir) / item["name"] + tmp_path.write_bytes(bytes(item["content"])) + name, state = load_h5(tmp_path) + self._apply_state(name, state) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + finally: + self._file_upload.value = () + self.save_status.value = f"Imported '{name}' from {item['name']}." + + def _on_import_hash_click(self, _btn: Any) -> None: + self.import_from_store(self._import_hash_field.value.strip()) + def display(self) -> None: """Render this widget in a Jupyter cell.""" from IPython.display import display as _display diff --git a/cadetgui/widgets/composite/run_history.py b/cadetgui/widgets/composite/run_history.py index 7a2f7e4..afe546e 100644 --- a/cadetgui/widgets/composite/run_history.py +++ b/cadetgui/widgets/composite/run_history.py @@ -20,6 +20,8 @@ class RunRecord: result: Any = None error: Optional[str] = None timestamp: dt.datetime = field(default_factory=dt.datetime.now) + config_name: Optional[str] = None + config_hash: Optional[str] = None @property def ok(self) -> bool: @@ -50,9 +52,20 @@ def add_listener(self, fn: Callable[[RunRecord], None]) -> None: """Register a callback fired with the picked RunRecord on every selection.""" self._listeners.append(fn) - def record(self, label: str, *, result: Any = None, error: Optional[str] = None) -> RunRecord: + def record( + self, + label: str, + *, + result: Any = None, + error: Optional[str] = None, + config_name: Optional[str] = None, + config_hash: Optional[str] = None, + ) -> RunRecord: """Add a run to the history and select it.""" - run = RunRecord(label=label, result=result, error=error) + run = RunRecord( + label=label, result=result, error=error, + config_name=config_name, config_hash=config_hash, + ) self.runs.append(run) options = [(self._describe(r), r) for r in self.runs] self._picker.set_options(options, keep_value=False) diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py index 8b4b52a..0ae4222 100644 --- a/cadetgui/widgets/composite/solution.py +++ b/cadetgui/widgets/composite/solution.py @@ -3,6 +3,7 @@ from typing import Any, Callable, Optional import ipywidgets as W +from CADETProcess.processModel import Inlet, Outlet from ...simulation import run_process as _default_runner from .._chrome import style_tag @@ -12,6 +13,30 @@ __all__ = ["SolutionWidget"] +def _signal_options(result: Any) -> list[tuple[str, tuple[str, str]]]: + """List (label, (unit, port)) signal options, collapsed for Inlet/Outlet units. + + An `Inlet`'s "inlet" port and an `Outlet`'s "outlet" port are CADET-Process + bookkeeping, not real signals -- confirmed identical to that same unit's + other port for every current template. Only the real port is offered, + labeled "Source"/"Sink" rather than the (there, meaningless) port name. + """ + units = result.process.flow_sheet.units_dict + options: list[tuple[str, tuple[str, str]]] = [] + for unit_name, ports in result.solution.items(): + unit = units.get(unit_name) + if isinstance(unit, Inlet): + if "outlet" in ports: + options.append((f"{unit_name}: Source", (unit_name, "outlet"))) + elif isinstance(unit, Outlet): + if "inlet" in ports: + options.append((f"{unit_name}: Sink", (unit_name, "inlet"))) + else: + for port in ports: + options.append((f"{unit_name}: {port}", (unit_name, port))) + return options + + class SolutionWidget: """Run a CADET-Process process and plot its solution. @@ -29,10 +54,15 @@ def __init__( self.process = process self.result: Any = None self._data_widget: Optional[Any] = None + self._config_widget: Optional[Any] = None self._process_label = W.HTML() self._btn_run = W.Button(description="Run simulation", icon="play", button_style="success") self._btn_clear = W.Button(description="Clear", icon="trash") + self._btn_load_config = W.Button( + description="Load configuration", icon="upload", + layout=W.Layout(display="none"), + ) self._signal_picker = ChoiceField(label="Signal:", options=[]) self._plot_out = W.Output() self.status = W.HTML("Ready.") @@ -40,6 +70,7 @@ def __init__( self._btn_run.on_click(self._on_run) self._btn_clear.on_click(self._on_clear) + self._btn_load_config.on_click(self._on_load_config) self._signal_picker.observe(self._on_signal_change, names="selected_index") self.history.add_listener(self._on_history_pick) self.status.add_class("cadetgui-status") @@ -50,12 +81,15 @@ def __init__( ) toolbar.add_class("cadetgui-toolbar") + history_row = W.HBox([self.history.root, self._btn_load_config]) + history_row.add_class("cadetgui-toolbar") + self.root = W.VBox( [ W.HTML(style_tag()), W.HTML("
Solution
"), toolbar, - self.history.root, + history_row, self._signal_picker, self._plot_out, self.status, @@ -70,8 +104,19 @@ def set_process(self, process: Any) -> None: self._update_process_label() def bind_to_config(self, config_widget: Any) -> None: - """Track a ConfigurationWidget's built process automatically.""" + """Track a ConfigurationWidget's built process automatically. + + Also remembers `config_widget` itself, so runs can be tagged with + their source configuration's name/hash and a past run can be + re-imported back into it (see `_on_run`/`_on_load_config`). + """ + self._config_widget = config_widget config_widget.add_listener(self.set_process) + # Renaming doesn't rebuild the process (no add_listener notification), + # but the Simulation tab's label must still track it. + config_widget._name_field.observe( + lambda _change: self._update_process_label(), names="value" + ) if getattr(config_widget, "process", None) is not None: self.set_process(config_widget.process) @@ -80,20 +125,60 @@ def bind_to_data(self, data_widget: Any) -> None: self._data_widget = data_widget data_widget.add_listener(self._plot_selected) + def _display_name(self) -> str: + """Return the label to show/record for the current process. + + Uses the bound ConfigurationWidget's own name whenever one is bound + (never the process's internal `.name`/class name, e.g. "Batch + Elution" -- that's an implementation detail, not what the user + called their configuration). Falls back to the process's own name + only when no ConfigurationWidget is bound at all, since there's + nothing else to show in that case. + """ + if self._config_widget is not None: + return self._config_widget.config_name + return getattr(self.process, "name", type(self.process).__name__) + def _update_process_label(self) -> None: if self.process is None: self._process_label.value = "No process set." else: - name = getattr(self.process, "name", type(self.process).__name__) - self._process_label.value = f"Process: {name}" + self._process_label.value = f"Process: {self._display_name()}" + + def _tag_current_config(self) -> tuple[Optional[str], Optional[str]]: + """Auto-save the bound ConfigurationWidget's current state, best-effort. + + Returns (config_name, config_hash) to tag a RunRecord with. Never + raises -- a store-write failure must not block an actual simulation + run, it just means that run's history entry has no re-importable hash. + """ + if self._config_widget is None: + return None, None + try: + from ...configuration_store import save_to_store + + cw = self._config_widget + save_to_store( + cw._snapshot_state(), cw.config_name, process=cw.process, store_dir=cw._store_dir + ) + return cw.config_name, cw.config_hash + except Exception: # noqa: BLE001 + return None, None def _on_run(self, _btn: Any) -> None: self._plot_out.clear_output() if self.process is None: self.status.value = "No process to run." return + if self._config_widget is not None and not self._config_widget.config_name.strip(): + self.status.value = ( + "Give the configuration a name before" + " running a simulation." + ) + return - label = getattr(self.process, "name", type(self.process).__name__) + label = self._display_name() + config_name, config_hash = self._tag_current_config() self._btn_run.disabled = True self._btn_run.description = "Running..." self.status.value = "Running simulation…" @@ -101,18 +186,27 @@ def _on_run(self, _btn: Any) -> None: result = self._runner(self.process) except Exception as exc: # noqa: BLE001 self.result = None - self.history.record(label, error=str(exc)) + self.history.record( + label, error=str(exc), config_name=config_name, config_hash=config_hash + ) self.status.value = f"Simulation failed: {exc}" return finally: self._btn_run.disabled = False self._btn_run.description = "Run simulation" - self.history.record(label, result=result) + self.history.record(label, result=result, config_name=config_name, config_hash=config_hash) self._load_result(result) self.status.value = "Simulation finished." + def _on_load_config(self, _btn: Any) -> None: + run = self.history.selected + if run is None or run.config_hash is None or self._config_widget is None: + return + self._config_widget.import_from_store(run.config_hash) + def _on_history_pick(self, run: RunRecord) -> None: + self._btn_load_config.layout.display = "" if run.config_hash else "none" self._plot_out.clear_output() if not run.ok: self.result = None @@ -124,12 +218,7 @@ def _on_history_pick(self, run: RunRecord) -> None: def _load_result(self, result: Any) -> None: self.result = result - signals = [ - (f"{unit}: {port}", (unit, port)) - for unit, ports in result.solution.items() - for port in ports - ] - self._signal_picker.set_options(signals, keep_value=True) + self._signal_picker.set_options(_signal_options(result), keep_value=True) self._plot_selected() def _on_clear(self, _btn: Any) -> None: diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index 55da91d..9916b2a 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Any, Callable, Dict, Optional +from typing import Any, Callable, Dict, Mapping, Optional import ipywidgets as W @@ -141,6 +141,16 @@ def _on_reset(self, _btn: Any) -> None: self._elements[f.name].value = _coerced_default(f) self._commit() + def set_values(self, values: Mapping[str, Any]) -> None: + """Push a dict of field values into the rendered elements and commit. + + Any field name missing from `values` falls back to its own default. + """ + for f in self.spec.fields: + value = values[f.name] if f.name in values else _coerced_default(f) + self._elements[f.name].value = value + self._commit() + def display(self) -> None: """Render this form in a Jupyter cell.""" from IPython.display import display as _display diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 1559959..628ba08 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -1,12 +1,21 @@ from __future__ import annotations +import datetime as dt import warnings +import cadetgui.configuration_store as configuration_store +import pytest from cadetgui.widgets.composite import ConfigurationWidget warnings.filterwarnings("ignore", category=UserWarning) +@pytest.fixture(autouse=True) +def _isolated_store(tmp_path, monkeypatch): + """Redirect the configuration store to a tmp dir -- never touch the real one.""" + monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) + + def test_configuration_widget_renders_default_forms(): cw = ConfigurationWidget() assert cw._column_picker.option_labels == [ @@ -689,3 +698,204 @@ def test_pulse_feed_export_script_round_trips(): exported_timeline = ns["process"].parameter_timelines["flow_sheet.feed.c"] original_timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] assert exported_timeline.value([0.0]).tolist() == original_timeline.value([0.0]).tolist() + + +def test_config_hash_is_set_after_construction_and_changes_with_field_edits(): + cw = ConfigurationWidget() + assert cw.config_hash is not None + + first_hash = cw.config_hash + cw._model_form.element("flow_rate").value = 4.4e-6 + assert cw.config_hash != first_hash + + +def test_snapshot_and_apply_state_round_trips_a_mutated_configuration(): + cw = ConfigurationWidget() + cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + cw._binding_picker.value = cw._binding_registry["Langmuir"] + cw._column_form.element("length").value = 0.42 + cw._model_form.element("flow_rate").value = 4.4e-6 + + state = cw._snapshot_state() + + cw2 = ConfigurationWidget() # a different widget entirely + cw2._apply_state("Imported", state) + + assert cw2.config_name == "Imported" + assert cw2._name_field.value == "Imported" + assert cw2.config_hash == cw.config_hash + assert type(cw2._get_column()).__name__ == "GeneralRateModel" + assert type(cw2._get_binding_model()).__name__ == "Langmuir" + assert cw2._column_form.collect_values() == cw._column_form.collect_values() + assert cw2._model_form.collect_values() == cw._model_form.collect_values() + + +def test_apply_state_rejects_an_unregistered_column_key(): + cw = ConfigurationWidget() + state = cw._snapshot_state() + bad_state = configuration_store.ConfigurationState( + **{**state.__dict__, "column_key": "Some Removed Column"} + ) + with pytest.raises(ValueError, match="isn't registered"): + cw._apply_state("x", bad_state) + + +def test_save_button_writes_to_the_store_and_shows_the_path(tmp_path): + cw = ConfigurationWidget() + cw._name_field.value = "Saved Config" + + cw._on_save(None) + + assert str(tmp_path) in cw.save_status.value + name, state = configuration_store.load_from_store(cw.config_hash) + assert name == "Saved Config" + assert state == cw._snapshot_state() + + +def test_import_from_store_restores_a_previously_saved_configuration(): + cw = ConfigurationWidget() + cw._name_field.value = "Saved Config" + cw._model_form.element("flow_rate").value = 7.7e-6 + cw._on_save(None) + saved_hash = cw.config_hash + + cw2 = ConfigurationWidget() + cw2.import_from_store(saved_hash) + + assert cw2.config_name == "Saved Config" + assert cw2.config_hash == saved_hash + assert "Imported" in cw2.save_status.value + + +def test_import_from_store_with_unknown_hash_shows_an_error(): + cw = ConfigurationWidget() + cw.import_from_store("deadbeef") + assert "deadbeef" in cw.save_status.value + + +def test_import_hash_button_delegates_to_import_from_store(): + cw = ConfigurationWidget() + cw._name_field.value = "Saved Config" + cw._on_save(None) + saved_hash = cw.config_hash + + cw2 = ConfigurationWidget() + cw2._import_hash_field.value = saved_hash + cw2._on_import_hash_click(None) + + assert cw2.config_hash == saved_hash + + +def test_file_upload_imports_an_exported_configuration(): + cw = ConfigurationWidget() + cw._name_field.value = "Uploaded Config" + cw._model_form.element("flow_rate").value = 2.2e-6 + + import tempfile + from pathlib import Path + + with tempfile.TemporaryDirectory() as d: + path = Path(d) / "exported.h5" + state = cw._snapshot_state() + configuration_store.save_h5(state, "Uploaded Config", path, process=cw.process) + content = memoryview(path.read_bytes()) + + cw2 = ConfigurationWidget() + cw2._file_upload.value = ( + { + "name": "exported.h5", + "type": "application/x-hdf5", + "size": len(content), + "last_modified": dt.datetime.now(), + "content": content, + }, + ) + + assert cw2.config_name == "Uploaded Config" + assert cw2.config_hash == cw.config_hash + assert cw2._file_upload.value == () # cleared so the same file can be re-uploaded + + +def test_store_dir_defaults_to_none_and_uses_the_default_store(tmp_path): + cw = ConfigurationWidget() + cw._name_field.value = "Default Store Config" + assert cw._store_dir is None + + cw._on_save(None) + # default store dir is monkeypatched to tmp_path by the isolated_store fixture + assert (tmp_path / f"{cw.config_hash}.h5").exists() + + +def test_setting_a_custom_store_dir_is_used_for_save_and_import(tmp_path): + custom = tmp_path / "my_configs" / "nested" + cw = ConfigurationWidget() + cw._name_field.value = "Custom Folder Config" + cw._store_dir_field.value = str(custom) + + cw._on_set_store_dir(None) + + assert cw._store_dir == custom + assert custom.is_dir() # created on set, even before anything is saved + + cw._on_save(None) + assert (custom / f"{cw.config_hash}.h5").exists() + + cw2 = ConfigurationWidget() + cw2._store_dir_field.value = str(custom) + cw2._on_set_store_dir(None) + cw2.import_from_store(cw.config_hash) + assert cw2.config_name == "Custom Folder Config" + + +def test_blank_store_dir_field_resets_to_the_default(tmp_path): + cw = ConfigurationWidget() + cw._store_dir_field.value = str(tmp_path / "custom") + cw._on_set_store_dir(None) + assert cw._store_dir is not None + + cw._store_dir_field.value = "" + cw._on_set_store_dir(None) + assert cw._store_dir is None + + +def test_invalid_store_dir_shows_an_error_and_does_not_change_store_dir(tmp_path): + blocked = tmp_path / "not_a_directory" + blocked.write_text("x") + + cw = ConfigurationWidget() + cw._store_dir_field.value = str(blocked / "sub") + cw._on_set_store_dir(None) + + assert cw._store_dir is None + assert "span style" in cw.save_status.value + + +def test_save_without_a_name_is_refused(tmp_path): + cw = ConfigurationWidget() + cw._name_field.value = "" # cleared the default name + cw._on_save(None) + + assert "name" in cw.save_status.value.lower() + assert list(tmp_path.glob("*.h5")) == [] # nothing written to the store + + +def test_save_load_details_are_collapsed_by_default_and_toggle(): + cw = ConfigurationWidget() + assert cw._save_load_details_box.layout.display == "none" + assert cw._btn_toggle_save_load_details.description == "Show details" + + cw._on_toggle_save_load_details(None) + assert cw._save_load_details_box.layout.display == "" + assert cw._btn_toggle_save_load_details.description == "Hide details" + + cw._on_toggle_save_load_details(None) + assert cw._save_load_details_box.layout.display == "none" + assert cw._btn_toggle_save_load_details.description == "Show details" + + +def test_save_load_section_is_the_first_section_in_the_panel(): + cw = ConfigurationWidget() + children = cw.root.children + # index 0 is the injected style tag, index 1 the panel title + save_load_section = children[2] + assert "Save / Load Configuration" in save_load_section.children[0].value diff --git a/tests/test_configuration_store.py b/tests/test_configuration_store.py new file mode 100644 index 0000000..0e46afe --- /dev/null +++ b/tests/test_configuration_store.py @@ -0,0 +1,94 @@ +from __future__ import annotations + +import warnings + +import pytest +from cadet import H5 +from cadetgui.configuration_store import ( + ConfigurationState, + compute_hash, + load_from_store, + load_h5, + save_h5, + save_to_store, +) + +warnings.filterwarnings("ignore", category=UserWarning) + + +def _sample_state(**overrides) -> ConfigurationState: + defaults = dict( + components=["Salt", "Protein"], + column_key="Lumped Rate Model Without Pores (LRM)", + binding_key="Linear", + template_key="Batch Elution", + multiplex_state={"axial_dispersion": False}, + show_optional_column=False, + show_optional_binding=True, + column_values={"length": 0.5, "diameter": 0.024}, + binding_values={"is_kinetic": True, "adsorption_rate": [0.0, 1.5]}, + model_values={"flow_rate": 1e-6, "cycle_time": 6000.0}, + ) + defaults.update(overrides) + return ConfigurationState(**defaults) + + +def test_hash_is_deterministic_regardless_of_construction_order(): + state_a = _sample_state() + state_b = ConfigurationState(**state_a.__dict__) + assert compute_hash(state_a) == compute_hash(state_b) + + +def test_hash_changes_when_a_value_changes(): + state_a = _sample_state() + state_b = _sample_state(column_values={"length": 0.6, "diameter": 0.024}) + assert compute_hash(state_a) != compute_hash(state_b) + + +def test_save_and_load_h5_round_trips_the_full_state(tmp_path): + state = _sample_state() + path = tmp_path / "config.h5" + + save_h5(state, "My Config", path) + name, loaded = load_h5(path) + + assert name == "My Config" + assert loaded == state + assert compute_hash(loaded) == compute_hash(state) + + +def test_load_h5_rejects_a_file_with_no_cadetgui_group(tmp_path): + path = tmp_path / "plain.h5" + h5 = H5() + h5.root.some_other_data = 1 + h5.filename = str(path) + h5.save() + + with pytest.raises(ValueError, match="cadetgui"): + load_h5(path) + + +def test_save_to_store_and_load_from_store_round_trip(tmp_path): + state = _sample_state() + path = save_to_store(state, "My Config", store_dir=tmp_path) + + assert path.name == f"{compute_hash(state)}.h5" + name, loaded = load_from_store(compute_hash(state), store_dir=tmp_path) + assert name == "My Config" + assert loaded == state + + +def test_load_from_store_raises_a_clear_error_for_an_unknown_hash(tmp_path): + with pytest.raises(FileNotFoundError, match="deadbeef"): + load_from_store("deadbeef", store_dir=tmp_path) + + +def test_save_to_store_is_idempotent_for_identical_content(tmp_path): + state = _sample_state() + path_a = save_to_store(state, "Name A", store_dir=tmp_path) + path_b = save_to_store(state, "Name B", store_dir=tmp_path) + + assert path_a == path_b # same content -> same hash -> same file + name, loaded = load_from_store(compute_hash(state), store_dir=tmp_path) + assert name == "Name B" # last write wins for the metadata, content unchanged + assert loaded == state diff --git a/tests/test_run_history.py b/tests/test_run_history.py index 5183d3c..87bba72 100644 --- a/tests/test_run_history.py +++ b/tests/test_run_history.py @@ -63,3 +63,19 @@ def test_describe_format_includes_index_and_status(): assert label.startswith("#1") assert "MyProcess" in label assert label.endswith("ok") + + +def test_record_carries_config_name_and_hash(): + h = RunHistoryWidget() + run = h.record("first", result="r1", config_name="My Config", config_hash="abc123") + + assert run.config_name == "My Config" + assert run.config_hash == "abc123" + + +def test_record_without_config_leaves_hash_none(): + h = RunHistoryWidget() + run = h.record("first", result="r1") + + assert run.config_name is None + assert run.config_hash is None diff --git a/tests/test_solution.py b/tests/test_solution.py index 27ebc62..373e415 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -4,9 +4,11 @@ import warnings import matplotlib +import pytest matplotlib.use("Agg") # headless test environment, no display needed +import cadetgui.configuration_store as configuration_store from cadetgui.simulation import run_process as _default_runner from cadetgui.widgets.composite import ( ConfigurationWidget, @@ -17,6 +19,12 @@ warnings.filterwarnings("ignore", category=UserWarning) +@pytest.fixture(autouse=True) +def _isolated_store(tmp_path, monkeypatch): + """Redirect the configuration store to a tmp dir -- never touch the real one.""" + monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) + + def upload_csv(widget: DataImportWidget, filename: str, csv_text: str) -> None: content = memoryview(csv_text.encode("utf-8")) widget._upload.value = ( @@ -112,6 +120,30 @@ def test_solutionwidget_run_populates_signals_and_plots(): assert "finished" in sw.status.value.lower() +def test_signal_list_collapses_inlet_and_outlet_units_to_one_entry_each(): + # Batch Elution: two Inlet units (feed, eluent), one real column, one Outlet. + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + + labels = sw._signal_picker.option_labels + assert labels == [ + "feed: Source", + "eluent: Source", + "column: inlet", + "column: outlet", + "outlet: Sink", + ] + + +def test_signal_list_source_and_sink_options_point_at_the_real_port(): + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + + options = dict(sw._signal_picker._options) + assert options["feed: Source"] == ("feed", "outlet") + assert options["outlet: Sink"] == ("outlet", "inlet") + + def test_solutionwidget_selection_persists_across_reruns(): sw = SolutionWidget(process=built_process()) sw._on_run(None) @@ -204,3 +236,103 @@ def test_solutionwidget_replots_when_data_uploaded_after_run(): upload_csv(di, "late.csv", "time,signal\n0,0.0\n1,1.0\n") # must not raise assert di.datasets # upload succeeded and triggered a listener-driven replot + + +def test_solutionwidget_run_tags_history_with_config_name_and_hash(): + cw = ConfigurationWidget() + cw._name_field.value = "My Config" + sw = SolutionWidget() + sw.bind_to_config(cw) + + sw._on_run(None) + + run = sw.history.selected + assert run.config_name == "My Config" + assert run.config_hash == cw.config_hash + + +def test_solutionwidget_run_auto_saves_config_to_store(): + cw = ConfigurationWidget() + cw._name_field.value = "Auto Saved Config" + sw = SolutionWidget() + sw.bind_to_config(cw) + + sw._on_run(None) + + name, state = configuration_store.load_from_store(cw.config_hash) + assert state == cw._snapshot_state() + + +def test_solutionwidget_run_without_bound_config_leaves_history_untagged(): + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + + run = sw.history.selected + assert run.config_name is None + assert run.config_hash is None + + +def test_solutionwidget_run_refuses_when_bound_config_has_no_name(): + cw = ConfigurationWidget() + cw._name_field.value = "" # cleared the default name + sw = SolutionWidget() + sw.bind_to_config(cw) + + sw._on_run(None) + + assert sw.history.runs == [] + assert "name" in sw.status.value.lower() + + +def test_solutionwidget_run_without_bound_config_does_not_require_a_name(): + sw = SolutionWidget(process=built_process()) # no ConfigurationWidget bound + sw._on_run(None) + + assert len(sw.history.runs) == 1 + + +def test_solutionwidget_process_label_shows_the_configuration_name_not_the_process_name(): + cw = ConfigurationWidget() + sw = SolutionWidget() + sw.bind_to_config(cw) + assert "New Experiment" in sw._process_label.value # the default name, not "Batch Elution" + assert "Batch Elution" not in sw._process_label.value + + cw._name_field.value = "My Named Config" + assert "My Named Config" in sw._process_label.value + assert "Batch Elution" not in sw._process_label.value + + +def test_solutionwidget_run_history_label_uses_the_configuration_name(): + cw = ConfigurationWidget() + cw._name_field.value = "My Named Config" + sw = SolutionWidget() + sw.bind_to_config(cw) + + sw._on_run(None) + + assert sw.history.selected.label == "My Named Config" + + +def test_solutionwidget_load_config_button_hidden_without_a_hash(): + sw = SolutionWidget(process=built_process()) + sw._on_run(None) # no bound ConfigurationWidget -> no hash + + assert sw._btn_load_config.layout.display == "none" + + +def test_solutionwidget_load_config_button_reimports_the_run_configuration(): + cw = ConfigurationWidget() + cw._name_field.value = "Reimport Test Config" + sw = SolutionWidget() + sw.bind_to_config(cw) + sw._on_run(None) + saved_hash = sw.history.selected.config_hash + + cw._model_form.element("flow_rate").value = 9.9e-6 + assert cw.config_hash != saved_hash + + assert sw._btn_load_config.layout.display == "" + sw._on_load_config(None) + + assert cw.config_hash == saved_hash From c40589ee6acfad6d77caae9047c780855c5aa7a5 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Fri, 11 Sep 2026 11:56:49 +0200 Subject: [PATCH 062/158] Clean up --- cadetgui/cadetprocessadapter.py | 24 +++++ cadetgui/widgets/composite/configuration.py | 109 ++++++++++++-------- cadetgui/widgets/composite/solution.py | 55 ++-------- cadetgui/widgets/forms/renderer.py | 23 +++-- tests/test_configuration.py | 36 +++++++ tests/test_solution.py | 13 +++ 6 files changed, 165 insertions(+), 95 deletions(-) diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index fa41ed9..110eda7 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -524,3 +524,27 @@ def _apply(values: Mapping[str, Any]) -> Any: fields=fields, build=_apply, ) + + +def classify_signal_ports(result: Any) -> list[tuple[str, tuple[str, str]]]: + """List (label, (unit, port)) solution signals, collapsed for Inlet/Outlet units. + + An `Inlet`'s "inlet" port and an `Outlet`'s "outlet" port are CADET-Process + bookkeeping, not real signals -- identical to that same unit's other port + for every current template. Only the real port is offered, labeled + "Source"/"Sink" rather than the (there, meaningless) port name. + """ + units = result.process.flow_sheet.units_dict + options: list[tuple[str, tuple[str, str]]] = [] + for unit_name, ports in result.solution.items(): + unit = units.get(unit_name) + if isinstance(unit, Inlet): + if "outlet" in ports: + options.append((f"{unit_name}: Source", (unit_name, "outlet"))) + elif isinstance(unit, Outlet): + if "inlet" in ports: + options.append((f"{unit_name}: Sink", (unit_name, "inlet"))) + else: + for port in ports: + options.append((f"{unit_name}: {port}", (unit_name, port))) + return options diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index f911d36..f9998d9 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -22,6 +22,7 @@ ConfigurationState, compute_hash, load_from_store, + load_h5, save_to_store, ) from .._chrome import style_tag @@ -86,7 +87,10 @@ def __init__( self._event_sliders: Dict[str, W.FloatSlider] = {} self._cycle_time_minutes_element: Optional[FloatField] = None self.config_name: str = _DEFAULT_CONFIG_NAME - self.config_hash: Optional[str] = None + # Set around _apply_state()'s picker/component writes so each one's own + # observer doesn't trigger its own full rebuild -- one rebuild for the + # whole restored selection instead of one per field touched. + self._suspend_rebuild = False # None = use configuration_store.default_store_dir(); set via the # "Storage folder" field below once the user picks one explicitly. self._store_dir: Optional[Path] = None @@ -341,7 +345,7 @@ def __init__( self._rebuild_forms() def add_listener(self, fn: Callable[[Any], None]) -> None: - """Register a callback fired with `.process` on every successful build.""" + """Register a callback fired with `.process` on every build or name change.""" self._listeners.append(fn) def _notify(self) -> None: @@ -422,22 +426,24 @@ def _maybe_autoadd_component(self) -> bool: return True return False + def _toggle_box(self, box: W.Widget) -> bool: + """Show/hide `box` (a `display: none` VBox); return whether it is now shown.""" + shown = box.layout.display == "none" + box.layout.display = "" if shown else "none" + return shown + def _on_toggle_settings(self, _btn: Any) -> None: - shown = self._settings_box.layout.display != "none" - self._settings_box.layout.display = "none" if shown else "" + self._toggle_box(self._settings_box) def _on_toggle_binding_settings(self, _btn: Any) -> None: - shown = self._binding_settings_box.layout.display != "none" - self._binding_settings_box.layout.display = "none" if shown else "" + self._toggle_box(self._binding_settings_box) def _on_toggle_process_settings(self, _btn: Any) -> None: - shown = self._process_settings_box.layout.display != "none" - self._process_settings_box.layout.display = "none" if shown else "" + self._toggle_box(self._process_settings_box) def _on_toggle_save_load_details(self, _btn: Any) -> None: - shown = self._save_load_details_box.layout.display != "none" - self._save_load_details_box.layout.display = "none" if shown else "" - self._btn_toggle_save_load_details.description = "Show details" if shown else "Hide details" + shown = self._toggle_box(self._save_load_details_box) + self._btn_toggle_save_load_details.description = "Hide details" if shown else "Show details" def _make_on_multiplex_change(self, name: str) -> Callable[[dict], None]: def _on_change(change: dict) -> None: @@ -460,7 +466,7 @@ def _on_show_optional_binding_change(self, change: dict) -> None: def _on_process_built(self, built: Any) -> None: self.process = built - self._refresh_config_hash() + self._refresh_hash_display() self._notify() self.status.value = "Process built." @@ -488,11 +494,15 @@ def _snapshot_state(self) -> ConfigurationState: model_values=self._model_form.collect_values(), ) - def _refresh_config_hash(self) -> None: + @property + def config_hash(self) -> Optional[str]: + """Content hash of the current configuration, or None if nothing is built yet.""" try: - self.config_hash = compute_hash(self._snapshot_state()) + return compute_hash(self._snapshot_state()) except RuntimeError: - self.config_hash = None + return None + + def _refresh_hash_display(self) -> None: if self.config_hash is None: self._hash_display.value = "No configuration built yet." else: @@ -509,25 +519,29 @@ def _apply_state(self, name: str, state: ConfigurationState) -> None: " that isn't registered here anymore." ) - for param_name, enabled in state.multiplex_state.items(): - checkbox = self._multiplex_checkboxes.get(param_name) - if checkbox is not None: - checkbox.value = enabled - self._show_optional_checkbox.value = state.show_optional_column - self._show_optional_binding_checkbox.value = state.show_optional_binding - - self._components.value = list(state.components) - self._column_picker.value = column_factory - self._binding_picker.value = binding_factory - self._model_picker.value = template_factory + self._suspend_rebuild = True + try: + for param_name, enabled in state.multiplex_state.items(): + checkbox = self._multiplex_checkboxes.get(param_name) + if checkbox is not None: + checkbox.value = enabled + self._show_optional_checkbox.value = state.show_optional_column + self._show_optional_binding_checkbox.value = state.show_optional_binding + self._components.value = list(state.components) + self._column_picker.value = column_factory + self._binding_picker.value = binding_factory + self._model_picker.value = template_factory + finally: + self._suspend_rebuild = False + self._rebuild_forms() self._column_form.set_values(state.column_values) self._binding_form.set_values(state.binding_values) self._model_form.set_values(state.model_values) self.config_name = name self._name_field.value = name - self._refresh_config_hash() + self._refresh_hash_display() def import_from_store(self, hash_: str) -> None: """Load a configuration previously saved to the local store, by its hash.""" @@ -540,6 +554,8 @@ def import_from_store(self, hash_: str) -> None: self.save_status.value = f"Imported '{name}' ({hash_})." def _rebuild_forms(self) -> None: + if self._suspend_rebuild: + return column = self._get_column() binding_model = self._get_binding_model() model_fn = self._model_picker.value @@ -548,7 +564,7 @@ def _rebuild_forms(self) -> None: self._binding_form_box.children = () self._model_form_box.children = () self._clear_event_section() - self._refresh_config_hash() + self._refresh_hash_display() return column_params = set(getattr(column, "required_parameters", None) or []) @@ -587,7 +603,7 @@ def _attach_binding(built: Any, col: Any = column) -> None: # `self._model_form = ...` assignment has completed -- so that first # call sees a stale (pre-rebuild) _model_form and can't snapshot yet. # Refresh again now that all three forms are actually assigned. - self._refresh_config_hash() + self._refresh_hash_display() self.status.value = ( "Fields apply automatically as you edit them" @@ -856,6 +872,7 @@ def _on_name_change(self, change: dict) -> None: if change.get("name") != "value": return self.config_name = change["new"] + self._notify() # e.g. the Simulation tab's process label tracks this too def _on_set_store_dir(self, _btn: Any) -> None: text = self._store_dir_field.value.strip() @@ -873,21 +890,32 @@ def _on_set_store_dir(self, _btn: Any) -> None: self._store_dir_field.value = str(path) self.save_status.value = f"Configurations will be saved to {path}." + def name_error(self, action: str = "saving") -> Optional[str]: + """Error message if this configuration has no name yet for `action`, else None.""" + if self.config_name.strip(): + return None + return f"Give the configuration a name before {action}." + + def persist_to_store(self) -> Path: + """Snapshot and save the current configuration to the store. Returns its path. + + Raises RuntimeError if unnamed or nothing has been built yet. + """ + error = self.name_error() + if error: + raise RuntimeError(error) + state = self._snapshot_state() + return save_to_store( + state, self.config_name, process=self.process, store_dir=self._store_dir + ) + def _on_save(self, _btn: Any) -> None: - if not self.config_name.strip(): - self.save_status.value = ( - "Give the configuration a name before saving." - ) - return try: - state = self._snapshot_state() - path = save_to_store( - state, self.config_name, process=self.process, store_dir=self._store_dir - ) + path = self.persist_to_store() except Exception as exc: # noqa: BLE001 self.save_status.value = f"{exc}" return - self._refresh_config_hash() + self._refresh_hash_display() self.save_status.value = f"Saved to {path}." def _on_file_upload_change(self, change: dict) -> None: @@ -896,9 +924,6 @@ def _on_file_upload_change(self, change: dict) -> None: item = self._file_upload.value[0] try: import tempfile - from pathlib import Path - - from ...configuration_store import load_h5 with tempfile.TemporaryDirectory() as tmp_dir: tmp_path = Path(tmp_dir) / item["name"] diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py index 0ae4222..02fcde7 100644 --- a/cadetgui/widgets/composite/solution.py +++ b/cadetgui/widgets/composite/solution.py @@ -3,8 +3,8 @@ from typing import Any, Callable, Optional import ipywidgets as W -from CADETProcess.processModel import Inlet, Outlet +from ...cadetprocessadapter import classify_signal_ports from ...simulation import run_process as _default_runner from .._chrome import style_tag from ..elements import ChoiceField @@ -13,30 +13,6 @@ __all__ = ["SolutionWidget"] -def _signal_options(result: Any) -> list[tuple[str, tuple[str, str]]]: - """List (label, (unit, port)) signal options, collapsed for Inlet/Outlet units. - - An `Inlet`'s "inlet" port and an `Outlet`'s "outlet" port are CADET-Process - bookkeeping, not real signals -- confirmed identical to that same unit's - other port for every current template. Only the real port is offered, - labeled "Source"/"Sink" rather than the (there, meaningless) port name. - """ - units = result.process.flow_sheet.units_dict - options: list[tuple[str, tuple[str, str]]] = [] - for unit_name, ports in result.solution.items(): - unit = units.get(unit_name) - if isinstance(unit, Inlet): - if "outlet" in ports: - options.append((f"{unit_name}: Source", (unit_name, "outlet"))) - elif isinstance(unit, Outlet): - if "inlet" in ports: - options.append((f"{unit_name}: Sink", (unit_name, "inlet"))) - else: - for port in ports: - options.append((f"{unit_name}: {port}", (unit_name, port))) - return options - - class SolutionWidget: """Run a CADET-Process process and plot its solution. @@ -112,11 +88,6 @@ def bind_to_config(self, config_widget: Any) -> None: """ self._config_widget = config_widget config_widget.add_listener(self.set_process) - # Renaming doesn't rebuild the process (no add_listener notification), - # but the Simulation tab's label must still track it. - config_widget._name_field.observe( - lambda _change: self._update_process_label(), names="value" - ) if getattr(config_widget, "process", None) is not None: self.set_process(config_widget.process) @@ -155,13 +126,8 @@ def _tag_current_config(self) -> tuple[Optional[str], Optional[str]]: if self._config_widget is None: return None, None try: - from ...configuration_store import save_to_store - - cw = self._config_widget - save_to_store( - cw._snapshot_state(), cw.config_name, process=cw.process, store_dir=cw._store_dir - ) - return cw.config_name, cw.config_hash + self._config_widget.persist_to_store() + return self._config_widget.config_name, self._config_widget.config_hash except Exception: # noqa: BLE001 return None, None @@ -170,18 +136,17 @@ def _on_run(self, _btn: Any) -> None: if self.process is None: self.status.value = "No process to run." return - if self._config_widget is not None and not self._config_widget.config_name.strip(): - self.status.value = ( - "Give the configuration a name before" - " running a simulation." - ) - return + if self._config_widget is not None: + error = self._config_widget.name_error("running a simulation") + if error: + self.status.value = f"{error}" + return label = self._display_name() - config_name, config_hash = self._tag_current_config() self._btn_run.disabled = True self._btn_run.description = "Running..." self.status.value = "Running simulation…" + config_name, config_hash = self._tag_current_config() try: result = self._runner(self.process) except Exception as exc: # noqa: BLE001 @@ -218,7 +183,7 @@ def _on_history_pick(self, run: RunRecord) -> None: def _load_result(self, result: Any) -> None: self.result = result - self._signal_picker.set_options(_signal_options(result), keep_value=True) + self._signal_picker.set_options(classify_signal_ports(result), keep_value=True) self._plot_selected() def _on_clear(self, _btn: Any) -> None: diff --git a/cadetgui/widgets/forms/renderer.py b/cadetgui/widgets/forms/renderer.py index 9916b2a..7591ef4 100644 --- a/cadetgui/widgets/forms/renderer.py +++ b/cadetgui/widgets/forms/renderer.py @@ -77,6 +77,10 @@ def __init__( self.built: Any = None self._on_built = on_built self.status = W.HTML("Ready.") + # Set around set_values()'s per-element writes so each one's own + # observer doesn't trigger its own commit -- one commit for the whole + # batch instead of one per field touched. + self._suspend_commit = False self._elements: Dict[str, Element] = {f.name: element_for_field(f) for f in spec.fields} for element in self._elements.values(): @@ -115,7 +119,8 @@ def collect_values(self) -> Dict[str, Any]: return values def _on_field_changed(self, _change: dict) -> None: - self._commit() + if not self._suspend_commit: + self._commit() def _commit(self) -> None: if not self.is_valid: @@ -137,18 +142,20 @@ def _commit(self) -> None: self.status.value = f"{exc}" def _on_reset(self, _btn: Any) -> None: - for f in self.spec.fields: - self._elements[f.name].value = _coerced_default(f) - self._commit() + self.set_values({}) def set_values(self, values: Mapping[str, Any]) -> None: - """Push a dict of field values into the rendered elements and commit. + """Push a dict of field values into the rendered elements and commit once. Any field name missing from `values` falls back to its own default. """ - for f in self.spec.fields: - value = values[f.name] if f.name in values else _coerced_default(f) - self._elements[f.name].value = value + self._suspend_commit = True + try: + for f in self.spec.fields: + default = _coerced_default(f) + self._elements[f.name].value = values.get(f.name, default) + finally: + self._suspend_commit = False self._commit() def display(self) -> None: diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 628ba08..bfa81c2 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -899,3 +899,39 @@ def test_save_load_section_is_the_first_section_in_the_panel(): # index 0 is the injected style tag, index 1 the panel title save_load_section = children[2] assert "Save / Load Configuration" in save_load_section.children[0].value + + +def test_name_error_reflects_whether_the_configuration_is_named(): + cw = ConfigurationWidget() + assert cw.name_error() is None # has the default name + + cw._name_field.value = "" + error = cw.name_error("running a simulation") + assert error == "Give the configuration a name before running a simulation." + + +def test_persist_to_store_raises_without_a_name(): + cw = ConfigurationWidget() + cw._name_field.value = "" + try: + cw.persist_to_store() + assert False, "should have raised" + except RuntimeError as exc: + assert "name" in str(exc).lower() + + +def test_persist_to_store_saves_and_returns_the_path(tmp_path): + cw = ConfigurationWidget() + cw._name_field.value = "Persisted Config" + + path = cw.persist_to_store() + + assert path == tmp_path / f"{cw.config_hash}.h5" + assert path.exists() + + +def test_config_hash_is_computed_fresh_not_cached_stale(): + cw = ConfigurationWidget() + first = cw.config_hash + cw._model_form.element("flow_rate").value = 8.8e-6 + assert cw.config_hash != first # no stale cached value survives a field edit diff --git a/tests/test_solution.py b/tests/test_solution.py index 373e415..7f2df0e 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -144,6 +144,19 @@ def test_signal_list_source_and_sink_options_point_at_the_real_port(): assert options["outlet: Sink"] == ("outlet", "inlet") +def test_classify_signal_ports_is_usable_standalone_from_the_adapter(): + # SolutionWidget is a thin caller -- the classification itself lives in + # cadetprocessadapter.py (framework-agnostic, no ipywidgets import). + from cadetgui.cadetprocessadapter import classify_signal_ports + from cadetgui.simulation import run_process + + process = built_process() + result = run_process(process) + options = dict(classify_signal_ports(result)) + assert options["feed: Source"] == ("feed", "outlet") + assert options["column: inlet"] == ("column", "inlet") + + def test_solutionwidget_selection_persists_across_reruns(): sw = SolutionWidget(process=built_process()) sw._on_run(None) From 5f15488ad1bb3342db3aaec2a6024baff74cbed2 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Fri, 11 Sep 2026 12:18:20 +0200 Subject: [PATCH 063/158] Add parameter Estimation Widget --- cadetgui/widgets/__init__.py | 2 + cadetgui/widgets/composite/__init__.py | 2 + .../widgets/composite/parameter_estimation.py | 38 +++++++++++++++++++ cadetgui/widgets/composite/workbench.py | 20 +++++----- tests/test_parameter_estimation.py | 17 +++++++++ tests/test_workbench.py | 12 +++--- 6 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 cadetgui/widgets/composite/parameter_estimation.py create mode 100644 tests/test_parameter_estimation.py diff --git a/cadetgui/widgets/__init__.py b/cadetgui/widgets/__init__.py index 8867619..b4c4672 100644 --- a/cadetgui/widgets/__init__.py +++ b/cadetgui/widgets/__init__.py @@ -13,6 +13,7 @@ ConfigurationWidget, DataImportWidget, ExperimentalDataset, + ParameterEstimationWidget, RunHistoryWidget, RunRecord, SolutionWidget, @@ -25,4 +26,5 @@ "RunRecord", "DataImportWidget", "ExperimentalDataset", + "ParameterEstimationWidget", ] diff --git a/cadetgui/widgets/composite/__init__.py b/cadetgui/widgets/composite/__init__.py index d152674..eb9f82e 100644 --- a/cadetgui/widgets/composite/__init__.py +++ b/cadetgui/widgets/composite/__init__.py @@ -4,6 +4,7 @@ """ from .configuration import ConfigurationWidget from .data_import import DataImportWidget, ExperimentalDataset +from .parameter_estimation import ParameterEstimationWidget from .run_history import RunHistoryWidget, RunRecord from .solution import SolutionWidget from .workbench import WorkbenchWidget @@ -15,5 +16,6 @@ "RunRecord", "DataImportWidget", "ExperimentalDataset", + "ParameterEstimationWidget", "WorkbenchWidget", ] diff --git a/cadetgui/widgets/composite/parameter_estimation.py b/cadetgui/widgets/composite/parameter_estimation.py new file mode 100644 index 0000000..ee939d6 --- /dev/null +++ b/cadetgui/widgets/composite/parameter_estimation.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +from typing import Optional + +import ipywidgets as W + +from .._chrome import style_tag +from .data_import import DataImportWidget + +__all__ = ["ParameterEstimationWidget"] + + +class ParameterEstimationWidget: + """Parameter estimation: fit a process's parameters against experimental data. + + Currently just houses experimental-data import (`DataImportWidget`) as its + first section -- the fitting workflow itself (PRODUCT_VISION.md §16) isn't + built yet; `.data` is exposed directly for other widgets (e.g. + `SolutionWidget.bind_to_data`) and scripting. + """ + + def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: + self.data = data or DataImportWidget() + + self.root = W.VBox( + [ + W.HTML(style_tag()), + W.HTML("
Parameter estimation
"), + self.data.root, + ] + ) + self.root.add_class("cadetgui-panel") + + def display(self) -> None: + """Render this widget in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.root) diff --git a/cadetgui/widgets/composite/workbench.py b/cadetgui/widgets/composite/workbench.py index d6b68b7..33bcefc 100644 --- a/cadetgui/widgets/composite/workbench.py +++ b/cadetgui/widgets/composite/workbench.py @@ -6,23 +6,23 @@ from .._chrome import logo_data_uri, style_tag from .configuration import ConfigurationWidget -from .data_import import DataImportWidget +from .parameter_estimation import ParameterEstimationWidget from .solution import SolutionWidget __all__ = ["WorkbenchWidget"] -_STEPS = ("Configuration", "Simulation", "Experimental Data") +_STEPS = ("Configuration", "Simulation", "Parameter Estimation") class WorkbenchWidget: - """Top-level shell: a sidebar-navigated Configuration/Simulation/Data page. + """Top-level shell: a sidebar-navigated Configuration/Simulation/Estimation page. Builds and wires a `ConfigurationWidget`, `SolutionWidget`, and - `DataImportWidget` together (same bindings as + `ParameterEstimationWidget` together (same bindings as examples/configuration_and_solution.ipynb), showing exactly one at a time via a left sidebar instead of stacking all three inline. Each stays a - plain attribute (`.configuration`/`.solution`/`.data`) for scripting — - the shell is purely a navigation convenience, not a black box. + plain attribute (`.configuration`/`.solution`/`.parameter_estimation`) for + scripting — the shell is purely a navigation convenience, not a black box. """ def __init__( @@ -30,19 +30,19 @@ def __init__( *, configuration: Optional[ConfigurationWidget] = None, solution: Optional[SolutionWidget] = None, - data: Optional[DataImportWidget] = None, + parameter_estimation: Optional[ParameterEstimationWidget] = None, ) -> None: self.configuration = configuration or ConfigurationWidget() self.solution = solution or SolutionWidget() - self.data = data or DataImportWidget() + self.parameter_estimation = parameter_estimation or ParameterEstimationWidget() self.solution.bind_to_config(self.configuration) - self.solution.bind_to_data(self.data) + self.solution.bind_to_data(self.parameter_estimation.data) self._panes: Dict[str, W.Widget] = { "Configuration": self.configuration.root, "Simulation": self.solution.root, - "Experimental Data": self.data.root, + "Parameter Estimation": self.parameter_estimation.root, } for root in self._panes.values(): root.layout.display = "none" diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py new file mode 100644 index 0000000..10ab8cc --- /dev/null +++ b/tests/test_parameter_estimation.py @@ -0,0 +1,17 @@ +from __future__ import annotations + +from cadetgui.widgets.composite import DataImportWidget, ParameterEstimationWidget + + +def test_parameter_estimation_widget_nests_a_data_import_widget(): + pw = ParameterEstimationWidget() + + assert isinstance(pw.data, DataImportWidget) + assert pw.data.root in pw.root.children + + +def test_parameter_estimation_widget_accepts_a_prebuilt_data_widget(): + dw = DataImportWidget() + pw = ParameterEstimationWidget(data=dw) + + assert pw.data is dw diff --git a/tests/test_workbench.py b/tests/test_workbench.py index 0b73385..a20902d 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -19,7 +19,7 @@ def test_workbench_shows_only_the_configuration_pane_initially(): assert wb.configuration.root.layout.display == "" assert wb.solution.root.layout.display == "none" - assert wb.data.root.layout.display == "none" + assert wb.parameter_estimation.root.layout.display == "none" assert wb._nav.index == 0 @@ -30,7 +30,7 @@ def test_workbench_nav_switches_the_visible_pane(): assert wb.configuration.root.layout.display == "none" assert wb.solution.root.layout.display == "" - assert wb.data.root.layout.display == "none" + assert wb.parameter_estimation.root.layout.display == "none" def test_workbench_config_edits_still_flow_through_to_solution(): @@ -46,17 +46,17 @@ def test_workbench_config_edits_still_flow_through_to_solution(): def test_workbench_accepts_prebuilt_widgets(): from cadetgui.widgets.composite import ( ConfigurationWidget, - DataImportWidget, + ParameterEstimationWidget, SolutionWidget, ) cw = ConfigurationWidget() sw = SolutionWidget() - dw = DataImportWidget() + pw = ParameterEstimationWidget() - wb = WorkbenchWidget(configuration=cw, solution=sw, data=dw) + wb = WorkbenchWidget(configuration=cw, solution=sw, parameter_estimation=pw) assert wb.configuration is cw assert wb.solution is sw - assert wb.data is dw + assert wb.parameter_estimation is pw assert sw.process is cw.process From aa96ad69a21e92275ef577f732c49a3a063d32f6 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 15 Sep 2026 13:25:51 +0200 Subject: [PATCH 064/158] Add example data explanation file --- examples/EXAMPLE_DATA.md | 74 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 examples/EXAMPLE_DATA.md diff --git a/examples/EXAMPLE_DATA.md b/examples/EXAMPLE_DATA.md new file mode 100644 index 0000000..db7afe8 --- /dev/null +++ b/examples/EXAMPLE_DATA.md @@ -0,0 +1,74 @@ +# Example datasets + +Every file in `examples/data/` is *synthetic* — generated by running the exact +`ConfigurationWidget()` default process (or a known, named deviation from it) +through the real CADET-Process simulator, sampling the result, and adding a +small amount of noise. None of it is measured data. The point of writing down +exactly how each file was made is so you know what the "correct" answer is +before you fit it — useful for checking the Parameter Estimation tab actually +works, not just that it runs without error. + +All three share the same base: `ConfigurationWidget()`'s plain defaults — +`LumpedRateModelWithoutPores` column, `Linear` binding, 2 components, flow +rate `1e-6`, `total_porosity = 0.72`, `axial_dispersion = 1e-8`, +`adsorption_rate = [0, 0]`, `desorption_rate = [0, 0]` (i.e. no binding at +all by default). Each row below only lists what was changed from that. + +| File | Changed from defaults | Signal / Calibration | Window | Noise (seed) | +|---|---|---|---|---| +| `example_uv_signal.csv` | *(nothing — plain defaults)* | Outlet, Component sum, Beer-Lambert (`extinction_coefficient=5000 L/(mol·cm)`, `path_length=1 cm`) | 0–10 min, 0.1 min steps | Gaussian, seed `20260911` | +| `example_raw_signal.csv` | `total_porosity = 0.60` | Outlet, Component 1, no calibration | 0–10 min, 0.1 min steps | Gaussian (scale 0.15), seed `20260916` | +| `example_binding_signal.csv` | `total_porosity = 0.65`, `axial_dispersion = 2e-8`, `adsorption_rate = [0, 0.3]`, `desorption_rate = [0, 0.05]` | Outlet, Total (sum of both components), no calibration | 0–20 min, 0.1 min steps | Gaussian (scale 0.08), seed `20260917` | + +All noise is clipped at `0` afterward (no negative signal values). Every file +has a `time_min,signal` header and reads directly with `DataImportWidget` +(first two columns, time already in minutes). + +## `example_uv_signal.csv` + +The Beer-Lambert calibration exercise: nothing about the underlying process +differs from the plain default configuration, only the *signal* is +transformed (`signal = concentration * extinction_coefficient * path_length`) +to simulate a raw UV280 detector trace instead of a concentration directly. +Pick **Calibration: Beer-Lambert**, enter `extinction_coefficient = 5000`, +`path_length = 1`, to convert it back and see it line up with the simulated +curve. Not meant for parameter fitting (nothing was perturbed to fit +*towards*) — it's the calibration-mechanism demo. + +## `example_raw_signal.csv` + +The simplest possible fitting exercise. `total_porosity` is the only thing +that differs from the default configuration (`0.60` vs. the default `0.72`); +`axial_dispersion` and the binding rates are untouched. Pick +**Calibration: None**, check only **Total porosity**, run — it recovers a +value close to `0.60`. + +## `example_binding_signal.csv` + +A genuine bind-and-elute scenario, four parameters away from the default +configuration: `total_porosity`, `axial_dispersion`, and Component 2's +`adsorption_rate`/`desorption_rate` (Component 1 is left non-binding, i.e. an +unretained tracer — like a salt front eluting near the void volume, ahead of +a retained protein peak). Signal is **Total** (both components summed, as a +non-selective detector would see them), no calibration. + +Verified end-to-end (fitting from the plain default configuration, starting +`total_porosity=0.5`, `adsorption_rate=0.1`, `desorption_rate=0.1`): + +| Parameter | True value | Recovered | +|---|---|---| +| `total_porosity` | 0.65 | 0.6509 | +| `adsorption_rate` (Component 2) | 0.3 | 0.2980 | +| `desorption_rate` (Component 2) | 0.05 | 0.0495 | + +These three recover cleanly and are the recommended checklist for a first +try. `axial_dispersion` (true `2e-8`) is deliberately *not* in that +recommended set — checking it too converges to a plausible but wrong value +(~`6e-8`) alongside the other three, because a single noisy Total-signal +trace doesn't carry enough independent information to separate axial +dispersion's effect from porosity's (see `ai-docs/ARCHITECTURE.md`'s +parameter-estimation section for the general point — this is a real +identifiability limitation, not a bug). Fitting it usefully needs either a +cleaner (lower-noise / higher-resolution) reference or fixing the other +parameters first from an independent measurement, same as in a real +experiment. From b62aa92340e03a573b3616d0d0aaf0348fa385f5 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 15 Sep 2026 13:26:14 +0200 Subject: [PATCH 065/158] Add live plot to parameter estimation widget --- cadetgui/cadetprocessadapter.py | 36 +- cadetgui/configuration_store.py | 19 + cadetgui/parameter_estimation.py | 367 +++++++++ .../widgets/composite/parameter_estimation.py | 726 +++++++++++++++++- cadetgui/widgets/composite/solution.py | 21 +- cadetgui/widgets/composite/workbench.py | 2 +- examples/configuration_and_solution.ipynb | 27 +- examples/data/example_binding_signal.csv | 202 +++++ examples/data/example_raw_signal.csv | 102 +++ examples/data/example_uv_signal.csv | 302 +++----- examples/webapp/README.md | 22 +- examples/webapp/app.ipynb | 2 +- tests/test_configuration_store.py | 31 + tests/test_parameter_estimation.py | 638 ++++++++++++++- tests/test_parameter_estimation_adapter.py | 330 ++++++++ tests/test_solution.py | 63 +- tests/test_workbench.py | 20 + 17 files changed, 2604 insertions(+), 306 deletions(-) create mode 100644 cadetgui/parameter_estimation.py create mode 100644 examples/data/example_binding_signal.csv create mode 100644 examples/data/example_raw_signal.csv create mode 100644 tests/test_parameter_estimation_adapter.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 110eda7..2181d33 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -476,6 +476,25 @@ def build_parameter_config_spec( names = _unique_preserve_order(list(req)) category, model_name = _category_and_model(obj) + # `obj.required_parameters` is a CADET-Process class-level property whose + # *order* is not stable across process runs: its metaclass builds it via + # `list(set(parameters))` (CADETProcess/dataStructure/dataStructure.py), + # so which parameter lands first depends on Python's per-process string + # hash seed -- confirmed by observing `total_porosity` and + # `axial_dispersion` swap which one is index 0 between separate `python` + # invocations of the identical code. The *set* of names is correct, only + # the order isn't. Re-order by this model's position in + # `parameters/interface.json` instead (a curated, deliberately-ordered + # schema) so the rendered field/checklist order is actually stable and + # doesn't reshuffle every time a user restarts their kernel. See + # ai-docs/UPSTREAM_ISSUES.md #4. + if category is not None: + try: + schema_order = list(_param_metadata_for(category, model_name)) + except KeyError: + schema_order = [] + names.sort(key=lambda n: schema_order.index(n) if n in schema_order else len(schema_order)) + # is_kinetic isn't in CADET-Process's own required_parameters, but every # binding model with a real isotherm needs it settable. `names` is only # non-empty for those (NoBinding's required_parameters is []). @@ -533,18 +552,25 @@ def classify_signal_ports(result: Any) -> list[tuple[str, tuple[str, str]]]: bookkeeping, not real signals -- identical to that same unit's other port for every current template. Only the real port is offered, labeled "Source"/"Sink" rather than the (there, meaningless) port name. + + Any "Sink" entry is sorted first -- comparing/fitting against the process + outlet is the common case (`ChoiceField.set_options(..., keep_value=True)` + defaults to index 0 when nothing was previously selected, so this is what + determines the signal picker's default in both `SolutionWidget` and + `ParameterEstimationWidget`). """ units = result.process.flow_sheet.units_dict - options: list[tuple[str, tuple[str, str]]] = [] + sinks: list[tuple[str, tuple[str, str]]] = [] + others: list[tuple[str, tuple[str, str]]] = [] for unit_name, ports in result.solution.items(): unit = units.get(unit_name) if isinstance(unit, Inlet): if "outlet" in ports: - options.append((f"{unit_name}: Source", (unit_name, "outlet"))) + others.append((f"{unit_name}: Source", (unit_name, "outlet"))) elif isinstance(unit, Outlet): if "inlet" in ports: - options.append((f"{unit_name}: Sink", (unit_name, "inlet"))) + sinks.append((f"{unit_name}: Sink", (unit_name, "inlet"))) else: for port in ports: - options.append((f"{unit_name}: {port}", (unit_name, port))) - return options + others.append((f"{unit_name}: {port}", (unit_name, port))) + return sinks + others diff --git a/cadetgui/configuration_store.py b/cadetgui/configuration_store.py index 4c44bc9..4c45519 100644 --- a/cadetgui/configuration_store.py +++ b/cadetgui/configuration_store.py @@ -19,6 +19,7 @@ "load_h5", "save_to_store", "load_from_store", + "list_store", ] @@ -156,3 +157,21 @@ def load_from_store( if not path.exists(): raise FileNotFoundError(f"No saved configuration with hash {hash_!r} in {store_dir}.") return load_h5(path) + + +def list_store(*, store_dir: Optional[Path] = None) -> List[Tuple[str, str]]: + """List every saved configuration as (name, hash) pairs, newest first. + + Silently skips any file that isn't a valid saved configuration (e.g. a + plain CADET-Core h5 someone dropped into the store directory by hand). + """ + store_dir = store_dir or default_store_dir() + paths = sorted(store_dir.glob("*.h5"), key=lambda p: p.stat().st_mtime, reverse=True) + entries = [] + for path in paths: + try: + name, _ = load_h5(path) + except Exception: # noqa: BLE001 + continue + entries.append((name, path.stem)) + return entries diff --git a/cadetgui/parameter_estimation.py b/cadetgui/parameter_estimation.py new file mode 100644 index 0000000..d7b39e9 --- /dev/null +++ b/cadetgui/parameter_estimation.py @@ -0,0 +1,367 @@ +from __future__ import annotations + +import copy +import threading +from dataclasses import dataclass +from typing import Any, Callable, Literal, Mapping, Optional, Sequence + +import numpy as np +import numpy.typing as npt +from CADETProcess.calibration import apply_beer_lambert, normalize_area +from CADETProcess.comparison import Comparator +from CADETProcess.comparison.difference import SSE +from CADETProcess.optimization import NelderMead, OptimizationProblem +from CADETProcess.processModel import ComponentSystem +from CADETProcess.reference import ReferenceIO +from CADETProcess.simulator import Cadet + +from .cadetprocessadapter import FieldSpec +from .simulation import run_process + +__all__ = [ + "FittableParameter", + "EstimationResult", + "list_fittable_parameters", + "build_reference", + "calibrate_reference", + "run_estimation", + "simulate_at", +] + +CalibrationMethod = Literal["none", "beer_lambert", "normalize_area"] + +_FITTABLE_KINDS = ("float", "float_list") + + +@dataclass(frozen=True) +class FittableParameter: + """One column/binding attribute (or one component of a per-component one) to fit.""" + + owner: Literal["column", "binding"] + name: str + label: str + component_index: Optional[int] + current_value: float + lb: float + ub: float + + +def _bounds(field: FieldSpec, current: float) -> tuple[float, float]: + lb = field.min if field.min is not None else 0.0 + ub = field.max if field.max is not None else (10.0 * current if current else 1.0) + return lb, ub + + +def list_fittable_parameters( + owner: Literal["column", "binding"], + fields: Sequence[FieldSpec], + values: Mapping[str, Any], +) -> list[FittableParameter]: + """List the fittable (float/float_list) fields, one entry per scalar/component. + + Non-numeric kinds ("bool", "text", "choice" -- e.g. `is_kinetic`) aren't + fittable and are skipped. + """ + params: list[FittableParameter] = [] + for field in fields: + if field.kind not in _FITTABLE_KINDS: + continue + if field.kind == "float": + current = float(values[field.name]) + lb, ub = _bounds(field, current) + label = field.label or field.name + params.append(FittableParameter(owner, field.name, label, None, current, lb, ub)) + continue + + for i, current in enumerate(values[field.name]): + current = float(current) + lb, ub = _bounds(field, current) + component = field.component_names[i] if field.component_names else str(i) + label = f"{field.label or field.name} — {component}" + params.append(FittableParameter(owner, field.name, label, i, current, lb, ub)) + return params + + +def build_reference( + label: str, + time_min: npt.ArrayLike, + signal: npt.ArrayLike, + *, + component_name: Optional[str] = None, +) -> ReferenceIO: + """Wrap an imported (time_min, signal) pair as a CADET-Process reference. + + Time is converted to seconds to match the simulation's own time grid. + `component_name`, when given, tags the reference as representing exactly + that one simulated component (see `run_estimation`'s `component_name`) -- + required for a single-channel detector signal that's only sensitive to one + molecule, the common case. Left `None`, the reference is unnamed and + `run_estimation` falls back to comparing against the summed total + concentration of every component (a blended/overlapping signal). + """ + component_system = ComponentSystem([component_name]) if component_name else None + return ReferenceIO( + label, np.asarray(time_min) * 60.0, np.asarray(signal), component_system=component_system + ) + + +def calibrate_reference( + reference: ReferenceIO, method: CalibrationMethod, **kwargs: float +) -> ReferenceIO: + """Convert a raw imported signal (e.g. UV mAU) to concentration-equivalent units. + + Thin wrapper over `CADETProcess.calibration` -- the actual conversions + (`apply_beer_lambert`, `normalize_area`) are native, not reimplemented here. + "none" (the default) returns `reference` unchanged, matching the previous + behavior of comparing the raw signal directly. + """ + if method == "none": + return reference + if method == "beer_lambert": + calibrated = apply_beer_lambert( + reference, kwargs["extinction_coefficient"], kwargs["path_length"] + ) + elif method == "normalize_area": + calibrated = normalize_area(reference, kwargs["target_area"]) + else: + raise ValueError(f"Unknown calibration method: {method!r}") + + # Neither native helper carries the input's component_system over onto the + # new ReferenceIO it builds -- reattach it, or a `component_name` passed to + # `build_reference` silently stops being respected by `run_estimation`. + return ReferenceIO( + calibrated.name, calibrated.time, calibrated.solution, calibrated.flow_rate, + component_system=reference.component_system, + ) + + +def _unit_name(process: Any, unit: Any) -> str: + return next(name for name, u in process.flow_sheet.units_dict.items() if u is unit) + + +def _parameter_path(process: Any, column: Any, param: FittableParameter) -> str: + unit_name = _unit_name(process, column) + if param.owner == "column": + return f"flow_sheet.{unit_name}.{param.name}" + return f"flow_sheet.{unit_name}.binding_model.{param.name}" + + +def _register_variables( + problem: OptimizationProblem, + working_process: Any, + working_column: Any, + params: Sequence[FittableParameter], + selected_indices: Sequence[int], +) -> None: + """Register one `add_variable` per selected parameter, in order. + + Shared between `run_estimation`'s real optimization problem and + `simulate_at`'s throwaway one -- both need the exact same variables + registered the exact same way for `problem.set_variables(values)` to + write `values` onto the right attributes. + """ + for idx in selected_indices: + param = params[idx] + kwargs: dict[str, Any] = {} + if param.component_index is not None: + kwargs["indices"] = (param.component_index,) + problem.add_variable( + name=f"var_{idx}", + parameter_path=_parameter_path(working_process, working_column, param), + lb=param.lb, + ub=param.ub, + # "auto" lets CADET-Process pick a sensible per-variable scaling + # (e.g. log for a wide-dynamic-range rate constant, linear + # otherwise) -- without it every variable is optimized in its own + # raw, wildly different units (e.g. porosity ~0.7 next to axial + # dispersion ~1e-8), which Nelder-Mead's simplex handles poorly. + normalization="auto", + **kwargs, + ) + + +def simulate_at( + process: Any, + column: Any, + params: Sequence[FittableParameter], + selected_indices: Sequence[int], + values: Sequence[float], +) -> Any: + """Simulate `process` with `values` written onto the selected parameters. + + Deep-copies `process` first -- never touches the caller's own object, and + in particular never touches any other deep copy an optimization run might + be actively mutating elsewhere (e.g. `run_estimation`'s own + `working_process`, which a background optimization thread writes to on + every objective evaluation -- reading or writing it concurrently from + here would be a real race). Meant for periodic "what does the process + look like at this candidate point" previews, e.g. a live progress plot, + fully decoupled from whatever optimization run produced `values`. + """ + working_process = copy.deepcopy(process) + working_column = working_process.flow_sheet.units_dict[_unit_name(process, column)] + + problem = OptimizationProblem("simulate_at") + problem.add_evaluation_object(working_process) + _register_variables(problem, working_process, working_column, params, selected_indices) + problem.set_variables(list(values)) + + return run_process(working_process) + + +class EstimationCancelled(Exception): + """Raised by the per-generation hook `_install_cancel_hook` installs. + + Triggered once a caller sets the `cancel_event` passed to + `run_estimation`, mid-run. + """ + + +def _install_cancel_hook(optimizer: Any, cancel_event: threading.Event) -> None: + """Make `optimizer.optimize()` raise `EstimationCancelled` once `cancel_event` is set. + + Verified (live test, not assumed) that this is the only reliable stop + point: raising from inside an evaluator or a `CADETProcess.optimization. + OptimizationProblem.add_callback()` callback does *not* abort the run -- + CADET-Process's evaluation pipeline deliberately catches exceptions from + both and converts them into a bad-score fallback (`EvaluationFailure`), + by design, so a single flaky simulation doesn't kill an entire + optimization. Mutating `optimizer.maxiter` after `.optimize()` has + started doesn't work either -- `SciPyInterface._run` reads it once into + a plain dict scipy owns from then on, not a live reference. + + What *does* work: `NelderMead.get_callback()` builds the plain function + object scipy calls directly after every generation -- outside the + evaluation pipeline's exception handling entirely, since scipy invokes + it itself, not through CADET-Process's DAG. Instance-patching this one + bound method (shadows the class method for this `optimizer` only) wraps + it with a check that raises before delegating to the original -- + confirmed this exception really does propagate out of `optimize()`. + + One sharp edge along the way: scipy's own `_wrap_callback` (`scipy/ + optimize/_optimize.py`) picks the calling convention by inspecting the + callback's *signature* -- `set(sig.parameters) == {"intermediate_result"}` + selects the modern `callback(intermediate_result=...)` form CADET- + Process's own callback expects; anything else (a generic `*args, + **kwargs` wrapper included) falls back to the legacy `callback(xk)` form, + silently passing a bare ndarray where CADET-Process's callback expects an + `OptimizeResult` and breaking it (confirmed: `'numpy.ndarray' object has + no attribute 'x'`). The wrapper below matches that exact signature. + """ + original_get_callback = optimizer.get_callback + + def _wrapped_get_callback(optimization_problem: Any) -> Callable: + inner = original_get_callback(optimization_problem) + + def _callback(intermediate_result: Any) -> Any: + if cancel_event.is_set(): + raise EstimationCancelled("Estimation cancelled by user.") + return inner(intermediate_result=intermediate_result) + + return _callback + + optimizer.get_callback = _wrapped_get_callback + + +@dataclass(frozen=True) +class EstimationResult: + """Outcome of `run_estimation`.""" + + fitted: dict[int, float] + objective: Optional[float] + success: bool + message: str + # The detached, fitted copy of `process` -- safe to simulate/plot from, but + # never the caller's own process (see `run_estimation`'s docstring). + fitted_process: Optional[Any] = None + cancelled: bool = False + + +def run_estimation( + process: Any, + column: Any, + params: Sequence[FittableParameter], + selected_indices: Sequence[int], + reference: ReferenceIO, + solution_path: str, + maxiter: int, + *, + starts: Sequence[float], + component_name: Optional[str] = None, + on_optimizer_ready: Optional[Callable[[Any], None]] = None, + cancel_event: Optional[threading.Event] = None, +) -> EstimationResult: + """Fit the selected parameters against `reference`, never touching `process`. + + Runs on a deep copy of `process` -- fitted values are only meant to reach + the real configuration through an explicit, user-approved write-back + (PRODUCT_VISION.md §16.4: never silently overwrite the source model). + + `starts` gives the optimizer's initial guess, positionally parallel to + `selected_indices` -- deliberately not implied by `params[i].current_value`, + since a starting guess is a property of the estimation run, not of the + live configuration (confirmed: `OptimizationProblem.add_variable()` has no + per-variable starting-value concept, only `optimize()`'s `x0`). + + `component_name`, when given, restricts the comparison to that one + simulated component (`SSE(..., components=[component_name])`) -- the right + choice whenever the measured signal is specific to one molecule, which is + the common case. Left `None`, every simulated component is summed first + (`use_total_concentration=True`) before differencing, appropriate only for + a genuinely blended/overlapping signal (e.g. a non-selective detector) -- + anything more specific (per-wavelength deconvolution) is out of scope here. + + `on_optimizer_ready`, when given, is called exactly once with the + constructed `NelderMead` instance, right before the blocking `.optimize()` + call. This is the hook a caller running this on a background thread needs + to obtain a live handle to `optimizer.results` (populated incrementally, + one generation at a time, regardless of `save_results`) and poll it from + elsewhere for progress reporting -- see `simulate_at` for how to safely + preview a candidate point without touching this run's own working copy. + + `cancel_event`, when given, is checked once per generation (right after + it finishes, via `_install_cancel_hook` -- see there for exactly why + this is the only point that actually works) -- the run stops there and + returns a cancelled result (`EstimationResult.cancelled=True`) instead + of a normal one. + """ + if not selected_indices: + return EstimationResult({}, None, False, "No parameters selected to fit.") + + working_process = copy.deepcopy(process) + working_column = working_process.flow_sheet.units_dict[_unit_name(process, column)] + + if component_name is not None: + metric = SSE(reference, components=[component_name]) + else: + metric = SSE(reference, use_total_concentration=True) + comparator = Comparator() + comparator.add_difference_metric(metric, solution_path) + + problem = OptimizationProblem("parameter_estimation") + problem.add_evaluation_object(working_process) + _register_variables(problem, working_process, working_column, params, selected_indices) + x0 = list(starts) + + simulator = Cadet() + problem.add_evaluator(simulator) + problem.add_objective(comparator, n_objectives=comparator.n_metrics, requires=[simulator]) + + optimizer = NelderMead(maxiter=maxiter) + if cancel_event is not None: + _install_cancel_hook(optimizer, cancel_event) + if on_optimizer_ready is not None: + on_optimizer_ready(optimizer) + + try: + results = optimizer.optimize(problem, x0=x0, save_results=False) + except EstimationCancelled: + return EstimationResult({}, None, False, "Estimation cancelled by user.", cancelled=True) + except Exception as exc: # noqa: BLE001 + return EstimationResult({}, None, False, str(exc)) + + problem.set_variables(results.x[0]) # write the best point onto working_process + fitted = dict(zip(selected_indices, (float(v) for v in results.x[0]))) + return EstimationResult( + fitted, float(results.f_best[0]), True, "Estimation finished.", working_process + ) diff --git a/cadetgui/widgets/composite/parameter_estimation.py b/cadetgui/widgets/composite/parameter_estimation.py index ee939d6..9d112a6 100644 --- a/cadetgui/widgets/composite/parameter_estimation.py +++ b/cadetgui/widgets/composite/parameter_estimation.py @@ -1,36 +1,750 @@ from __future__ import annotations -from typing import Optional +import threading +import time +from dataclasses import replace +from typing import Any, Optional import ipywidgets as W +import numpy as np +from CADETProcess.plotting import get_fig_size +from ... import configuration_store +from ...cadetprocessadapter import classify_signal_ports +from ...parameter_estimation import ( + CalibrationMethod, + EstimationResult, + FittableParameter, + build_reference, + calibrate_reference, + list_fittable_parameters, + run_estimation, + simulate_at, +) +from ...simulation import run_process from .._chrome import style_tag +from ..elements import ChoiceField from .data_import import DataImportWidget __all__ = ["ParameterEstimationWidget"] class ParameterEstimationWidget: - """Parameter estimation: fit a process's parameters against experimental data. + """Fit a bound configuration's column/binding parameters against experimental data. - Currently just houses experimental-data import (`DataImportWidget`) as its - first section -- the fitting workflow itself (PRODUCT_VISION.md §16) isn't - built yet; `.data` is exposed directly for other widgets (e.g. - `SolutionWidget.bind_to_data`) and scripting. + A deliberately narrow first slice of PRODUCT_VISION.md §16: one configuration, + one experimental dataset, one signal, SSE, Nelder-Mead. See + `cadetgui.parameter_estimation.run_estimation` for the actual fitting logic -- + this widget only collects inputs and renders results. Nests `DataImportWidget` + (`.data`) as its experimental-data source. + + Deliberately self-contained: it runs its own preview simulation (via + "Preview") to discover signal options and show the reference-vs-simulated + overlay, rather than reusing `SolutionWidget`'s last run -- the Simulation + tab shows only the raw simulation, this tab owns the comparison view. """ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self.data = data or DataImportWidget() + self._config_widget: Optional[Any] = None + self._params: list[FittableParameter] = [] + # Ordered keys ((owner, name, component_index), see `_param_key`) of + # the parameters currently added to the fit -- replaces a per-row + # checkbox with an explicit "Add parameter" picker (mirrors + # `ComponentListField`'s add/remove pattern), since picking from a + # long list of fittable parameters by scanning checkboxes doesn't + # scale once a model has many of them. + self._added_keys: list[tuple[str, str, Optional[int]]] = [] + # Per-parameter lb/ub/start, keyed the same way -- survives a row + # being removed and re-added, and survives `_on_config_changed` + # rebuilds (via `_snapshot_row_state`), same "don't silently reset + # what the user already typed" rule as everywhere else in this widget. + self._param_state: dict[tuple[str, str, Optional[int]], dict[str, float]] = {} + self._lb_fields: list[W.FloatText] = [] + self._ub_fields: list[W.FloatText] = [] + self._start_fields: list[W.FloatText] = [] + self._remove_buttons: list[W.Button] = [] + self._last_result: Optional[EstimationResult] = None + # The SimulationResults currently shown in the overlay -- the raw + # preview until a fit succeeds, then the fitted run, until the next + # "Preview" resets it. + self._display_result: Optional[Any] = None + # Live-progress state for a running fit -- see `_on_run`/`_tick_progress`. + self._run_done = threading.Event() + self._progress: dict[str, Any] = {"optimizer": None} + # Set by "Cancel" -- checked once per generation inside run_estimation + # (`cancel_event`), the only point that actually stops a running + # Nelder-Mead: see `cadetgui.parameter_estimation._install_cancel_hook` + # for why raising from an evaluator or an `add_callback` doesn't work. + self._cancel_event = threading.Event() + + self._base_process_picker = ChoiceField( + label="Base process:", options=[("Current configuration", None)] + ) + self._btn_refresh_store = W.Button(description="Refresh", icon="refresh") + self._btn_preview = W.Button(description="Preview", icon="eye") + self._dataset_picker = ChoiceField(label="Experimental dataset:", options=[]) + self._component_picker = ChoiceField(label="Signal represents:", options=[]) + self._signal_picker = ChoiceField(label="Signal:", options=[]) + # Matches CADET-Process's own NelderMead default (scipyAdapter.py) -- + # 50 was too low even for a single fitted parameter, let alone several. + self._maxiter_field = W.IntText(value=1000, description="Max iterations:") + self._calibration_picker = ChoiceField( + label="Calibration:", + options=[ + ("None (raw signal)", "none"), + ("Beer-Lambert (absorbance → concentration)", "beer_lambert"), + ("Normalize by injected amount", "normalize_area"), + ], + ) + self._extinction_field = W.FloatText(value=1.0, description="Extinction coeff.:") + self._path_length_field = W.FloatText(value=1.0, description="Path length (cm):") + self._target_area_field = W.FloatText(value=1.0, description="Injected amount:") + self._beer_lambert_box = W.HBox( + [self._extinction_field, self._path_length_field], + layout=W.Layout(display="none"), + ) + self._normalize_area_box = W.HBox( + [self._target_area_field], layout=W.Layout(display="none") + ) + self._param_add_picker = ChoiceField(label="Add parameter:", options=[]) + self._btn_add_param = W.Button(description="Add", icon="plus") + self._param_box = W.VBox([]) + self._btn_run = W.Button(description="Run estimation", icon="magic", button_style="success") + self._btn_cancel = W.Button( + description="Cancel", icon="stop", button_style="danger", + layout=W.Layout(display="none"), + ) + self._btn_accept = W.Button( + description="Accept fitted parameters", icon="check", + layout=W.Layout(display="none"), + ) + self._live_plot_checkbox = W.Checkbox( + description="Live plot", value=False, indent=False + ) + self._elapsed_label = W.HTML(value="") + # `W.Image` (a plain `.value` trait holding PNG bytes), not `W.Output` + # -- `Output`'s capture-based `display()` doesn't reliably route from + # a background thread in a real Jupyter kernel (confirmed: elapsed + # label/status/fit table, all direct trait assignments, updated fine + # from the ticker thread; every `Output`-based plot render silently + # never appeared). A direct trait assignment is the same proven + # mechanism as those, so it works from any thread the same way. + # `display="none"` until there's an actual image -- an empty/unset + # `Image.value` otherwise renders as the browser's broken-image icon. + # A fixed CSS `width` (not `max_width`/percentage, and not left + # unset) is what actually bounds the display size correctly both + # ways: unset let the (higher-dpi, "1_col"-sized) native pixel size + # overflow past a narrower panel; `max_width="100%"` on its own + # previously stretched a *smaller* (100dpi) source up to fill a + # *wider* container and went blurry. A fixed width does neither -- + # same displayed size regardless of native pixels or container width. + self._live_plot_out = W.Image( + format="png", layout=W.Layout(width="700px", display="none") + ) + self._live_plot_error = W.HTML(value="") + self._fit_table = W.HTML() + self._plot_out = W.Image( + format="png", layout=W.Layout(width="400px", display="none") + ) + self.status = W.HTML("Ready.") + self.status.add_class("cadetgui-status") + + self._btn_run.on_click(self._on_run) + self._btn_cancel.on_click(self._on_cancel) + self._btn_accept.on_click(self._on_accept) + self._btn_add_param.on_click(self._on_add_param) + self._btn_refresh_store.on_click(lambda _btn: self._refresh_store_options()) + self._btn_preview.on_click(self._on_preview) + self._base_process_picker.observe(self._on_base_process_change, names="selected_index") + self._signal_picker.observe(self._on_signal_change, names="selected_index") + self._calibration_picker.observe(self._on_calibration_change, names="selected_index") + self._dataset_picker.observe(self._on_reference_input_change, names="selected_index") + self._component_picker.observe(self._on_reference_input_change, names="selected_index") + for field in (self._extinction_field, self._path_length_field, self._target_area_field): + field.observe(self._on_reference_input_change, names="value") + self.data.add_listener(self._refresh_dataset_options) + self._refresh_dataset_options() + + base_process_row = W.HBox( + [self._base_process_picker, self._btn_refresh_store, self._btn_preview], + layout=W.Layout(flex_flow="row wrap"), + ) + base_process_row.add_class("cadetgui-toolbar") + + toolbar = W.HBox( + [ + self._dataset_picker, self._component_picker, + self._signal_picker, self._maxiter_field, self._live_plot_checkbox, + ], + layout=W.Layout(flex_flow="row wrap"), + ) + toolbar.add_class("cadetgui-toolbar") + + calibration_row = W.HBox( + [self._calibration_picker, self._beer_lambert_box, self._normalize_area_box], + layout=W.Layout(flex_flow="row wrap"), + ) + calibration_row.add_class("cadetgui-toolbar") + + add_param_row = W.HBox( + [self._param_add_picker, self._btn_add_param], + layout=W.Layout(flex_flow="row wrap"), + ) + add_param_row.add_class("cadetgui-toolbar") + + fit_section = W.VBox( + [ + W.HTML("
Fit parameters
"), + base_process_row, + toolbar, + calibration_row, + add_param_row, + self._param_box, + W.HBox([self._btn_run, self._btn_cancel, self._btn_accept, self._elapsed_label]), + self._live_plot_error, + self._live_plot_out, + self._fit_table, + self._plot_out, + self.status, + ] + ) + fit_section.add_class("cadetgui-panel") + fit_section.add_class("cadetgui-section") self.root = W.VBox( [ W.HTML(style_tag()), W.HTML("
Parameter estimation
"), self.data.root, + fit_section, ] ) self.root.add_class("cadetgui-panel") + def bind_to_config(self, config_widget: Any) -> None: + """Track a ConfigurationWidget's column/binding parameters to fit.""" + self._config_widget = config_widget + config_widget.add_listener(self._on_config_changed) + self._on_config_changed(config_widget.process) + self._refresh_store_options() + + def _refresh_dataset_options(self) -> None: + self._dataset_picker.set_options([(d.label, d) for d in self.data.datasets]) + + def _refresh_store_options(self) -> None: + store_dir = getattr(self._config_widget, "_store_dir", None) + saved = configuration_store.list_store(store_dir=store_dir) + options = [("Current configuration", None)] + [(name, hash_) for name, hash_ in saved] + self._base_process_picker.set_options(options, keep_value=True) + + def _on_base_process_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + hash_ = self._base_process_picker.value + if hash_ is not None and self._config_widget is not None: + self._config_widget.import_from_store(hash_) + self._on_preview(None) + + def _on_calibration_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + method = self._calibration_picker.value + self._beer_lambert_box.layout.display = "" if method == "beer_lambert" else "none" + self._normalize_area_box.layout.display = "" if method == "normalize_area" else "none" + self._redraw_overlay() + + def _on_reference_input_change(self, _change: dict) -> None: + self._redraw_overlay() + + def _calibration_kwargs(self) -> dict[str, float]: + method = self._calibration_picker.value + if method == "beer_lambert": + return { + "extinction_coefficient": self._extinction_field.value, + "path_length": self._path_length_field.value, + } + if method == "normalize_area": + return {"target_area": self._target_area_field.value} + return {} + + def _on_preview(self, _btn: Any) -> None: + """Simulate the current base process once: discover signal ports and overlay it.""" + if self._config_widget is None or self._config_widget.process is None: + self.status.value = "No configuration to preview." + return + self.status.value = "Simulating preview…" + self._display_result = run_process(self._config_widget.process) + options = classify_signal_ports(self._display_result) + self._signal_picker.set_options(options, keep_value=True) + self._redraw_overlay() + self.status.value = "Preview ready." + + def _on_signal_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + self._redraw_overlay() + + def _current_reference(self) -> tuple[Optional[Any], Optional[str]]: + """Return the calibrated reference for the picked dataset, or (None, None).""" + dataset = self._dataset_picker.value + if dataset is None: + return None, None + reference = build_reference( + dataset.label, dataset.time_min, dataset.signal, + component_name=self._component_picker.value, + ) + reference = calibrate_reference( + reference, self._calibration_picker.value, **self._calibration_kwargs() + ) + return reference, dataset.label + + @staticmethod + def _new_figure(**kwargs: Any) -> Any: + """Build a matplotlib Figure with its own Agg canvas -- never touches `pyplot`. + + `_redraw_overlay`/`_redraw_live_plot` can run on a background thread + (the ticker -- see `_on_run`), and `pyplot`'s figure/backend state is + global and generally not thread-safe (confirmed: a plain `plt. + subplots()` call from a non-main thread crashes under an interactive + backend like TkAgg, e.g. `RuntimeError: main thread is not in main + loop`). Building the Figure directly and attaching `FigureCanvasAgg` + sidesteps `pyplot` (and therefore the active backend) entirely -- + works the same regardless of thread or ambient backend. Must always + be paired with passing the resulting Axes into anything that would + otherwise create its own figure (e.g. `solution.plot(ax=...)`, never + bare `solution.plot()` -- the latter calls `plt.subplots()` internally). + """ + from matplotlib.backends.backend_agg import FigureCanvasAgg + from matplotlib.figure import Figure + + fig = Figure(**kwargs) + FigureCanvasAgg(fig) + return fig + + @staticmethod + def _display_figure(output: W.Image, fig: Any) -> None: + """Render `fig` into `output.value` as PNG bytes. + + A direct trait assignment, not `Output`'s capture-based `display()` -- + confirmed (real Jupyter kernel, not just this sandbox) that the latter + does not reliably route from a background thread: `_elapsed_label`/ + `status`/`_fit_table` (all plain trait updates) updated fine from the + ticker thread, but every `Output`-based plot render silently never + appeared. `W.Image.value` is a plain bytes trait -- the same kind of + update as those, so it works from any thread the same way. + """ + import io + + buf = io.BytesIO() + # No CSS width/max-width on the `Image` widgets (see the + # constructor's note) -- displayed size is exactly the PNG's own + # pixel dimensions, so dpi controls both sharpness and how big it + # actually appears. 150 keeps `_FIGSIZE` ("1_col", ~3.5x2.4in) at a + # normal embedded-plot size while staying sharp. + fig.savefig(buf, format="png", dpi=150, bbox_inches="tight") + output.value = buf.getvalue() + output.layout.display = "" # reveal it -- see the constructor's note on why + + # Matches CADET-Process's own "1_col" default (`CADETProcess.plotting. + # figure_layouts`) -- `solution.plot()` used this by default before this + # widget started always passing its own `ax` (required for thread safety, + # see `_new_figure`); without picking it explicitly here too, the figure + # silently grew to matplotlib's much larger default size instead. + _FIGSIZE = get_fig_size("1_col") + + def _redraw_overlay(self) -> None: + """Plot the current display result's signal, overlaid with the reference if picked.""" + if self._display_result is None or self._signal_picker.value is None: + return + unit, port = self._signal_picker.value + solution = self._display_result.solution[unit][port] + try: + reference, dataset_label = self._current_reference() + except Exception: # noqa: BLE001 + reference, dataset_label = None, None + + fig = self._new_figure(figsize=self._FIGSIZE) + ax = fig.add_subplot(111) + solution.plot(ax=ax) + if reference is not None: + label = f"{dataset_label} (measured)" + t_min = reference.time / 60.0 + # Explicit high-contrast color -- solution.plot()'s own component + # colors come from a separate cycle that can otherwise hand this + # line the same blue as the first (e.g. salt/non-binding) curve. + ax.plot( + t_min, reference.solution[:, 0], + linestyle="--", color="black", linewidth=2, label=label, + ) + ax.legend() + self._display_figure(self._plot_out, fig) + + def _on_config_changed(self, _process: Any) -> None: + cw = self._config_widget + if cw is None or cw._column_form is None or cw._binding_form is None: + new_params: list[FittableParameter] = [] + else: + new_params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + list_fittable_parameters( + "binding", cw._binding_form.spec.fields, cw._binding_form.collect_values() + ) + self._snapshot_row_state() + valid_keys = {self._param_key(p) for p in new_params} + # Drop any added parameter whose identity no longer exists (e.g. a + # binding model change removed it) -- everything else about the + # selection (order, lb/ub/start) survives via `_param_state`. + self._added_keys = [k for k in self._added_keys if k in valid_keys] + self._params = new_params + self._refresh_added_rows() + self._refresh_add_picker_options() + self._refresh_component_options() + + def _refresh_component_options(self) -> None: + cw = self._config_widget + components = list(cw._components.value) if cw is not None else [] + options = [(name, name) for name in components] + options.append(("Total (sum of all components)", None)) + # Skip re-selecting when the component list is unchanged -- both "Total" + # and "nothing selected yet" have value None, so a blind set_options() + # here would silently bounce a deliberate "Total" pick back to index 0 + # on every unrelated field edit (which also fires this refresh). + if [label for label, _ in options] == self._component_picker.option_labels: + return + self._component_picker.set_options(options, keep_value=True) + + @staticmethod + def _param_key(p: FittableParameter) -> tuple[str, str, Optional[int]]: + return (p.owner, p.name, p.component_index) + + def _params_by_key(self) -> dict[tuple[str, str, Optional[int]], FittableParameter]: + return {self._param_key(p): p for p in self._params} + + def _snapshot_row_state(self) -> None: + """Save each currently-rendered row's live field values into `_param_state`. + + Must run *before* `_added_keys` is mutated (append/remove/prune) -- + it zips the live fields against `_added_keys` as it stood when those + fields were last built, so mutating the list first would silently + pair each row's values with the wrong key. + """ + for key, lb, ub, start in zip( + self._added_keys, self._lb_fields, self._ub_fields, self._start_fields + ): + self._param_state[key] = {"lb": lb.value, "ub": ub.value, "start": start.value} + + def _refresh_add_picker_options(self) -> None: + options = [ + (f"{p.label} = {p.current_value:.4g}", key) + for key, p in self._params_by_key().items() + if key not in self._added_keys + ] + self._param_add_picker.set_options(options) + + def _refresh_added_rows(self) -> None: + """Rebuild the fit-parameter rows from `_added_keys` + `_param_state`.""" + by_key = self._params_by_key() + width = W.Layout(width="100px") + self._lb_fields = [] + self._ub_fields = [] + self._start_fields = [] + self._remove_buttons = [] + rows = [] + for key in self._added_keys: + p = by_key.get(key) + if p is None: # pragma: no cover -- already pruned by the caller + continue + state = self._param_state.setdefault( + key, {"lb": p.lb, "ub": p.ub, "start": p.current_value} + ) + lb_field = W.FloatText(value=state["lb"], layout=width) + ub_field = W.FloatText(value=state["ub"], layout=width) + start_field = W.FloatText(value=state["start"], layout=width) + remove_btn = W.Button(icon="times", layout=W.Layout(width="32px")) + remove_btn.on_click(self._make_remove_handler(key)) + self._lb_fields.append(lb_field) + self._ub_fields.append(ub_field) + self._start_fields.append(start_field) + self._remove_buttons.append(remove_btn) + rows.append( + W.HBox([ + W.Label(f"{p.label} = {p.current_value:.4g}"), + W.Label("start:"), start_field, + W.Label("lb:"), lb_field, W.Label("ub:"), ub_field, + remove_btn, + ]) + ) + self._param_box.children = tuple(rows) + + def _on_add_param(self, _btn: Any) -> None: + key = self._param_add_picker.value + if key is None or key in self._added_keys: + return + self._snapshot_row_state() + self._added_keys.append(key) + self._refresh_added_rows() + self._refresh_add_picker_options() + + def _make_remove_handler(self, key: tuple[str, str, Optional[int]]) -> Any: + def handler(_btn: Any) -> None: + self._snapshot_row_state() + if key in self._added_keys: + self._added_keys.remove(key) + self._param_state.pop(key, None) + self._refresh_added_rows() + self._refresh_add_picker_options() + + return handler + + def _validation_error(self) -> Optional[str]: + if self._config_widget is None or self._config_widget.process is None: + return "No configuration to fit." + if self._dataset_picker.value is None: + return "Import or select an experimental dataset first." + if self._signal_picker.value is None: + return "Preview the process to see available signals first." + if not self._added_keys: + return "Add at least one parameter to fit." + by_key = self._params_by_key() + for key, lb_field, ub_field, start_field in zip( + self._added_keys, self._lb_fields, self._ub_fields, self._start_fields + ): + start, lb, ub = start_field.value, lb_field.value, ub_field.value + if not (lb <= start <= ub): + return ( + f"Start value for {by_key[key].label} ({start:.4g}) must be " + f"within its bounds [{lb:.4g}, {ub:.4g}]." + ) + method: CalibrationMethod = self._calibration_picker.value + if method == "beer_lambert" and ( + self._extinction_field.value <= 0 or self._path_length_field.value <= 0 + ): + return "Enter a positive extinction coefficient and path length." + if method == "normalize_area" and self._target_area_field.value == 0: + return "Enter a nonzero injected amount to normalize against." + return None + + def _on_run(self, _btn: Any) -> None: + self._plot_out.value = b"" + self._plot_out.layout.display = "none" + self._live_plot_out.value = b"" + self._live_plot_out.layout.display = "none" + self._live_plot_error.value = "" + self._btn_accept.layout.display = "none" + self._last_result = None + self._elapsed_label.value = "" + error = self._validation_error() + if error: + self.status.value = f"{error}" + return + + unit, port = self._signal_picker.value + reference, _ = self._current_reference() + index_of = {self._param_key(p): i for i, p in enumerate(self._params)} + params = list(self._params) + selected = [] + starts = [] + for key, lb_field, ub_field, start_field in zip( + self._added_keys, self._lb_fields, self._ub_fields, self._start_fields + ): + idx = index_of[key] + params[idx] = replace(params[idx], lb=lb_field.value, ub=ub_field.value) + selected.append(idx) + starts.append(start_field.value) + process = self._config_widget.process + column = self._config_widget._column_form.built + + self._btn_run.disabled = True + self._btn_run.description = "Running..." + self._btn_cancel.layout.display = "" + self.status.value = "Fitting…" + + self._run_done.clear() + self._cancel_event.clear() + self._progress = {"optimizer": None, "result": None} + start_time = time.monotonic() + + # Run the (potentially long) fit on a background thread -- otherwise + # nothing (elapsed timer, live plot, the UI in general) could update + # at all until it finished, since Python/Jupyter is single-threaded + # for anything running inline in a button click handler. The ticker + # only ever touches an *independent* copy of the process (via + # `simulate_at`), never the one the worker thread is actively + # mutating. Worker starts first: it's what eventually sets + # `_run_done`, which the ticker's own loop is waiting on. + worker = threading.Thread( + target=self._run_estimation_worker, + args=(process, column, params, selected, reference, unit, port, starts), + daemon=True, + ) + ticker = threading.Thread( + target=self._tick_progress, + args=(start_time, process, column, params, selected, reference, unit, port), + daemon=True, + ) + worker.start() + ticker.start() + + def _run_estimation_worker( + self, process: Any, column: Any, params: list[FittableParameter], + selected: list[int], reference: Any, unit: str, port: str, + starts: list[float], + ) -> None: + try: + result = run_estimation( + process, column, params, selected, reference, + f"{unit}.{port}", self._maxiter_field.value, + starts=starts, component_name=self._component_picker.value, + on_optimizer_ready=lambda opt: self._progress.update(optimizer=opt), + cancel_event=self._cancel_event, + ) + except Exception as exc: # noqa: BLE001 -- run_estimation already catches its own + result = EstimationResult({}, None, False, str(exc)) + self._progress["result"] = result + self._run_done.set() + + def _tick_progress( + self, start_time: float, process: Any, column: Any, + params: list[FittableParameter], selected: list[int], + reference: Any, unit: str, port: str, + ) -> None: + last_n_gen = 0 + while not self._run_done.wait(timeout=0.5): + last_n_gen = self._progress_tick( + start_time, process, column, params, selected, + reference, unit, port, last_n_gen, + ) + + # Runs once the worker has set `_run_done` -- the one point the + # ticker and the (already-finished) worker are guaranteed not to be + # touching Output widgets at the same time. + self._finish_run(self._progress["result"], start_time) + + def _progress_tick( + self, start_time: float, process: Any, column: Any, + params: list[FittableParameter], selected: list[int], + reference: Any, unit: str, port: str, last_n_gen: int, + ) -> int: + """One tick's worth of progress reporting. Returns the new `last_n_gen`. + + Split out from `_tick_progress`'s loop so it's callable directly in + tests, without any real waiting/threading involved. + """ + elapsed = time.monotonic() - start_time + self._elapsed_label.value = f"{elapsed:.0f}s elapsed" + + optimizer = self._progress.get("optimizer") + if not self._live_plot_checkbox.value or optimizer is None: + return last_n_gen + n_gen = len(optimizer.results.populations) + if n_gen == 0 or n_gen == last_n_gen: + return last_n_gen + self._redraw_live_plot(optimizer, process, column, params, selected, reference, unit, port) + return n_gen + + def _redraw_live_plot( + self, optimizer: Any, process: Any, column: Any, + params: list[FittableParameter], selected: list[int], + reference: Any, unit: str, port: str, + ) -> None: + # A failure here must never be silent -- it previously was + # (bare `except: return`), which meant a real bug could make the + # live panel stay empty for an entire run with zero indication why. + # Show the actual error in the panel itself instead of guessing. + try: + results = optimizer.results + x_best = list(results.x[0]) + f_history = np.asarray(results.f_best_history).reshape(-1) + preview = simulate_at(process, column, params, selected, x_best) + + solution = preview.solution[unit][port] + width, height = self._FIGSIZE + fig = self._new_figure(figsize=(2 * width, height)) # two "1_col" panels side by side + ax1 = fig.add_subplot(1, 2, 1) + ax2 = fig.add_subplot(1, 2, 2) + solution.plot(ax=ax1) + if reference is not None: + ax1.plot( + reference.time / 60.0, reference.solution[:, 0], + linestyle="--", color="black", linewidth=2, label="measured", + ) + ax1.legend() + ax1.set_title("Current best vs. reference") + + ax2.plot(f_history) + ax2.set_xlabel("Generation") + ax2.set_ylabel("Objective (SSE)") + ax2.set_title("Objective history") + + fig.tight_layout() + self._display_figure(self._live_plot_out, fig) + self._live_plot_error.value = "" + except Exception as exc: # noqa: BLE001 -- best-effort per tick, but visibly + self._live_plot_error.value = ( + f"Live plot error: {exc}" + ) + + def _on_cancel(self, _btn: Any) -> None: + self._cancel_event.set() + self._btn_cancel.disabled = True + self._btn_cancel.description = "Cancelling…" + + def _finish_run(self, result: EstimationResult, start_time: float) -> None: + self._btn_run.disabled = False + self._btn_run.description = "Run estimation" + self._btn_cancel.layout.display = "none" + self._btn_cancel.disabled = False + self._btn_cancel.description = "Cancel" + self._elapsed_label.value = "" + elapsed = time.monotonic() - start_time + + if result.cancelled: + self.status.value = f"{result.message} ({elapsed:.0f}s)" + return + if not result.success: + self.status.value = f"{result.message}" + return + + self._last_result = result + self.status.value = ( + f"{result.message} Objective (SSE): {result.objective:.4g}. " + f"({elapsed:.0f}s)" + ) + self._render_fit_table(result) + # Show the fitted (still detached) process's own curve from here on, until + # the next "Preview" resets the overlay back to the unfitted baseline. + self._display_result = run_process(result.fitted_process) + self._redraw_overlay() + self._btn_accept.layout.display = "" + + def _render_fit_table(self, result: EstimationResult) -> None: + rows = "".join( + f"{self._params[idx].label}" + f"{self._params[idx].current_value:.4g}{value:.4g}" + for idx, value in result.fitted.items() + ) + self._fit_table.value = ( + "" + rows + "
ParameterBeforeFitted
" + ) + + def _on_accept(self, _btn: Any) -> None: + if self._last_result is None: + return + cw = self._config_widget + for idx, value in self._last_result.fitted.items(): + param = self._params[idx] + form = cw._column_form if param.owner == "column" else cw._binding_form + element = form.element(param.name) + if param.component_index is None: + element.value = value + else: + values = list(element.value) + values[param.component_index] = value + element.value = values + self.status.value = "Applied fitted parameters to the configuration." + self._btn_accept.layout.display = "none" + def display(self) -> None: """Render this widget in a Jupyter cell.""" from IPython.display import display as _display diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py index 02fcde7..e42b026 100644 --- a/cadetgui/widgets/composite/solution.py +++ b/cadetgui/widgets/composite/solution.py @@ -29,8 +29,8 @@ def __init__( self._runner = runner or _default_runner self.process = process self.result: Any = None - self._data_widget: Optional[Any] = None self._config_widget: Optional[Any] = None + self._listeners: list[Callable[[], None]] = [] self._process_label = W.HTML() self._btn_run = W.Button(description="Run simulation", icon="play", button_style="success") @@ -91,10 +91,13 @@ def bind_to_config(self, config_widget: Any) -> None: if getattr(config_widget, "process", None) is not None: self.set_process(config_widget.process) - def bind_to_data(self, data_widget: Any) -> None: - """Overlay a DataImportWidget's loaded datasets on this widget's plot.""" - self._data_widget = data_widget - data_widget.add_listener(self._plot_selected) + def add_listener(self, fn: Callable[[], None]) -> None: + """Register a callback fired (no args) whenever a new result is loaded.""" + self._listeners.append(fn) + + def _notify(self) -> None: + for fn in list(self._listeners): + fn() def _display_name(self) -> str: """Return the label to show/record for the current process. @@ -176,6 +179,7 @@ def _on_history_pick(self, run: RunRecord) -> None: if not run.ok: self.result = None self._signal_picker.set_options([]) + self._notify() self.status.value = f"Simulation failed: {run.error}" return self._load_result(run.result) @@ -185,11 +189,13 @@ def _load_result(self, result: Any) -> None: self.result = result self._signal_picker.set_options(classify_signal_ports(result), keep_value=True) self._plot_selected() + self._notify() def _on_clear(self, _btn: Any) -> None: self._plot_out.clear_output() self.result = None self._signal_picker.set_options([]) + self._notify() self.status.value = "Cleared." def _on_signal_change(self, change: dict) -> None: @@ -209,11 +215,6 @@ def _plot_selected(self) -> None: from IPython.display import display fig, ax = solution.plot() - datasets = self._data_widget.datasets if self._data_widget else [] - for ds in datasets: - ax.plot(ds.time_min, ds.signal, linestyle="--", label=f"{ds.label} (measured)") - if datasets: - ax.legend() display(fig) plt.close(fig) diff --git a/cadetgui/widgets/composite/workbench.py b/cadetgui/widgets/composite/workbench.py index 33bcefc..54fffc1 100644 --- a/cadetgui/widgets/composite/workbench.py +++ b/cadetgui/widgets/composite/workbench.py @@ -37,7 +37,7 @@ def __init__( self.parameter_estimation = parameter_estimation or ParameterEstimationWidget() self.solution.bind_to_config(self.configuration) - self.solution.bind_to_data(self.parameter_estimation.data) + self.parameter_estimation.bind_to_config(self.configuration) self._panes: Dict[str, W.Widget] = { "Configuration": self.configuration.root, diff --git a/examples/configuration_and_solution.ipynb b/examples/configuration_and_solution.ipynb index 02b8d87..de3ab48 100644 --- a/examples/configuration_and_solution.ipynb +++ b/examples/configuration_and_solution.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "id": "b4cb635e", "metadata": {}, - "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** — pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object. Includes Python-script export.\n- **`SolutionWidget`** — run that process through the CADET-Process simulator and plot the result, with built-in run history.\n- **`DataImportWidget`** — import a measured chromatogram and overlay it for comparison.\n\nAll are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting — the GUI never traps you inside it." + "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** — pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object. Includes Python-script export.\n- **`SolutionWidget`** — run that process through the CADET-Process simulator and plot the result, with built-in run history.\n- **`ParameterEstimationWidget`** — import a measured chromatogram, calibrate it, and preview it overlaid against a simulated signal.\n\nAll are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting — the GUI never traps you inside it." }, { "cell_type": "code", @@ -12,13 +12,7 @@ "id": "0a16422b", "metadata": {}, "outputs": [], - "source": [ - "from cadetgui.widgets.composite import (\n", - " ConfigurationWidget,\n", - " DataImportWidget,\n", - " SolutionWidget,\n", - ")" - ] + "source": "from cadetgui.widgets.composite import (\n ConfigurationWidget,\n ParameterEstimationWidget,\n SolutionWidget,\n)" }, { "cell_type": "markdown", @@ -59,7 +53,7 @@ "cell_type": "markdown", "id": "4ca74111", "metadata": {}, - "source": "## 3. Import experimental data and compare\n\n`DataImportWidget` imports a measured chromatogram (CSV, first two columns read as time/signal) and previews it. `SolutionWidget.bind_to_data(data)` overlays every loaded dataset on the simulation plot as a dashed line, and keeps it updated whenever you load or remove one.\n\nTry uploading `examples/data/example_uv_signal.csv` — a synthetic UV280 trace (one elution peak around t=45 min) generated for this example. Its time column is already in minutes, matching the default unit here." + "source": "## 3. Import experimental data and compare\n\n`ParameterEstimationWidget.bind_to_config(config)` tracks `config`'s built process for fitting. It nests a `DataImportWidget` (`.data`, CSV upload, first two columns read as time/signal) as its experimental-data source. This tab owns the comparison view — the Solution tab above only ever shows the raw simulation, never an overlay.\n\n1. Click **Preview** to simulate the current configuration once and populate the **Signal** dropdown (defaults to the process outlet — \"Sink\" — since that's what's usually fit against).\n2. Upload one of the three example datasets in `examples/data/`, or your own CSV.\n3. Check one or more parameters in the checklist, adjust each one's **Start** value if the config's current value isn't a good starting guess (it's a genuinely separate, editable field — not implied by the configuration), and click **Run estimation**.\n\nSee **`examples/EXAMPLE_DATA.md`** for exactly what configuration each example file was generated from (so you know the \"correct\" answer before fitting) and what to check in the parameter checklist for each:\n\n- `example_uv_signal.csv` — a synthetic UV280 trace requiring a **Calibration** step (Beer-Lambert) before it overlays the simulated curve.\n- `example_raw_signal.csv` — the simplest fitting exercise: one parameter (`total_porosity`), no calibration needed.\n- `example_binding_signal.csv` — a bind-and-elute scenario: 3-4 parameters (porosity, binding rates, optionally axial dispersion), no calibration needed." }, { "cell_type": "code", @@ -67,17 +61,13 @@ "id": "82102640", "metadata": {}, "outputs": [], - "source": [ - "data = DataImportWidget()\n", - "solution.bind_to_data(data)\n", - "data.display()" - ] + "source": "parameter_estimation = ParameterEstimationWidget()\nparameter_estimation.bind_to_config(config)\nparameter_estimation.display()" }, { "cell_type": "markdown", "id": "48885efa", "metadata": {}, - "source": "## 4. The underlying objects stay accessible\n\nNothing above is trapped inside the widgets. `config.process` is a plain CADET-Process object, and `solution.result` is a plain `SimulationResults` object — use them exactly as you would if you'd built everything by hand in a script, for anything the GUI doesn't cover. `solution.history.runs` and `data.datasets` are plain lists too." + "source": "## 4. The underlying objects stay accessible\n\nNothing above is trapped inside the widgets. `config.process` is a plain CADET-Process object, and `solution.result` is a plain `SimulationResults` object — use them exactly as you would if you'd built everything by hand in a script, for anything the GUI doesn't cover. `solution.history.runs` and `parameter_estimation.data.datasets` are plain lists too." }, { "cell_type": "code", @@ -85,12 +75,7 @@ "id": "2d59f4c0", "metadata": {}, "outputs": [], - "source": [ - "print(type(config.process))\n", - "print(type(solution.result))\n", - "print(list(solution.result.solution.keys())) # unit operation names\n", - "print(f\"{len(solution.history.runs)} run(s) recorded, {len(data.datasets)} dataset(s) loaded\")" - ] + "source": "print(type(config.process))\nprint(type(solution.result))\nprint(list(solution.result.solution.keys())) # unit operation names\nn_datasets = len(parameter_estimation.data.datasets)\nprint(f\"{len(solution.history.runs)} run(s) recorded, {n_datasets} dataset(s) loaded\")" } ], "metadata": { diff --git a/examples/data/example_binding_signal.csv b/examples/data/example_binding_signal.csv new file mode 100644 index 0000000..b90c6e1 --- /dev/null +++ b/examples/data/example_binding_signal.csv @@ -0,0 +1,202 @@ +time_min,signal +0.00,0.0246 +0.10,0.0672 +0.20,0.0314 +0.30,0.0888 +0.40,0.0490 +0.50,0.1583 +0.60,0.0000 +0.70,0.0796 +0.80,0.0000 +0.90,0.0209 +1.00,0.0000 +1.10,0.0000 +1.20,0.0000 +1.30,0.0549 +1.40,0.0000 +1.50,0.0801 +1.60,0.0000 +1.70,0.0479 +1.80,0.0087 +1.90,0.0407 +2.00,0.0314 +2.10,0.0000 +2.20,0.0680 +2.30,0.1457 +2.40,1.5960 +2.50,8.1918 +2.60,9.8408 +2.70,10.0592 +2.80,10.0231 +2.90,9.9425 +3.00,10.0782 +3.10,10.0847 +3.20,9.8244 +3.30,9.9407 +3.40,8.4908 +3.50,1.8128 +3.60,0.1607 +3.70,0.0313 +3.80,0.1137 +3.90,0.1109 +4.00,0.0000 +4.10,0.0000 +4.20,0.0000 +4.30,0.0321 +4.40,0.0109 +4.50,0.0000 +4.60,0.0000 +4.70,0.0116 +4.80,0.0000 +4.90,0.0000 +5.00,0.0923 +5.10,0.0000 +5.20,0.0747 +5.30,0.0897 +5.40,0.0000 +5.50,0.0558 +5.60,0.1180 +5.70,0.0878 +5.80,0.2033 +5.90,0.0357 +6.00,0.1024 +6.10,0.0969 +6.20,0.1719 +6.30,0.2147 +6.40,0.2292 +6.50,0.2418 +6.60,0.3396 +6.70,0.3476 +6.80,0.2960 +6.90,0.4843 +7.00,0.3868 +7.10,0.5362 +7.20,0.4302 +7.30,0.4679 +7.40,0.5861 +7.50,0.4938 +7.60,0.7142 +7.70,0.8270 +7.80,0.8424 +7.90,0.9110 +8.00,1.0119 +8.10,1.0292 +8.20,0.9252 +8.30,1.1678 +8.40,1.0886 +8.50,1.2667 +8.60,1.2770 +8.70,1.2679 +8.80,1.4237 +8.90,1.3877 +9.00,1.4507 +9.10,1.4383 +9.20,1.6438 +9.30,1.4612 +9.40,1.5259 +9.50,1.6924 +9.60,1.4821 +9.70,1.6292 +9.80,1.6964 +9.90,1.6462 +10.00,1.6869 +10.10,1.7606 +10.20,1.6771 +10.30,1.5837 +10.40,1.6892 +10.50,1.7338 +10.60,1.7976 +10.70,1.6429 +10.80,1.6414 +10.90,1.7939 +11.00,1.7263 +11.10,1.7664 +11.20,1.7441 +11.30,1.5847 +11.40,1.5992 +11.50,1.6254 +11.60,1.4819 +11.70,1.3681 +11.80,1.5745 +11.90,1.4676 +12.00,1.2713 +12.10,1.4011 +12.20,1.3005 +12.30,1.2649 +12.40,1.2899 +12.50,1.1462 +12.60,1.1255 +12.70,1.1755 +12.80,0.9734 +12.90,1.2102 +13.00,1.0788 +13.10,0.9436 +13.20,1.0166 +13.30,0.7669 +13.40,0.6642 +13.50,0.8410 +13.60,0.8720 +13.70,0.6474 +13.80,0.7081 +13.90,0.6730 +14.00,0.5485 +14.10,0.5332 +14.20,0.5820 +14.30,0.6281 +14.40,0.4884 +14.50,0.5675 +14.60,0.4470 +14.70,0.4443 +14.80,0.5016 +14.90,0.2464 +15.00,0.2658 +15.10,0.3309 +15.20,0.4260 +15.30,0.3441 +15.40,0.2630 +15.50,0.2108 +15.60,0.2448 +15.70,0.2664 +15.80,0.1348 +15.90,0.2640 +16.00,0.1896 +16.10,0.2404 +16.20,0.0948 +16.30,0.0629 +16.40,0.1818 +16.50,0.0071 +16.60,0.1020 +16.70,0.0144 +16.80,0.1115 +16.90,0.0365 +17.00,0.0662 +17.10,0.0750 +17.20,0.0000 +17.30,0.0482 +17.40,0.0790 +17.50,0.1089 +17.60,0.0000 +17.70,0.0947 +17.80,0.0370 +17.90,0.0000 +18.00,0.0000 +18.10,0.0020 +18.20,0.0000 +18.30,0.1201 +18.40,0.0836 +18.50,0.1783 +18.60,0.0308 +18.70,0.0000 +18.80,0.0282 +18.90,0.0000 +19.00,0.0000 +19.10,0.0660 +19.20,0.0000 +19.30,0.0000 +19.40,0.0388 +19.50,0.0000 +19.60,0.0616 +19.70,0.0000 +19.80,0.0756 +19.90,0.0000 +20.00,0.0385 diff --git a/examples/data/example_raw_signal.csv b/examples/data/example_raw_signal.csv new file mode 100644 index 0000000..eca5b41 --- /dev/null +++ b/examples/data/example_raw_signal.csv @@ -0,0 +1,102 @@ +time_min,signal +0.00,0.0441 +0.10,0.0000 +0.20,0.0055 +0.30,0.0000 +0.40,0.0150 +0.50,0.1124 +0.60,0.0000 +0.70,0.2431 +0.80,0.0000 +0.90,0.1088 +1.00,0.1245 +1.10,0.2655 +1.20,0.1014 +1.30,0.0000 +1.40,0.0000 +1.50,0.0532 +1.60,0.0000 +1.70,0.0649 +1.80,0.2884 +1.90,0.0982 +2.00,0.0000 +2.10,0.2183 +2.20,1.1801 +2.30,7.9484 +2.40,10.0445 +2.50,10.0082 +2.60,10.0825 +2.70,9.6497 +2.80,10.2333 +2.90,9.8778 +3.00,9.9455 +3.10,9.9317 +3.20,8.7358 +3.30,1.9668 +3.40,0.0000 +3.50,0.1201 +3.60,0.0268 +3.70,0.0000 +3.80,0.1062 +3.90,0.0000 +4.00,0.0000 +4.10,0.0000 +4.20,0.0000 +4.30,0.0000 +4.40,0.0000 +4.50,0.0336 +4.60,0.0000 +4.70,0.1754 +4.80,0.0000 +4.90,0.0000 +5.00,0.0470 +5.10,0.0000 +5.20,0.0000 +5.30,0.0000 +5.40,0.0999 +5.50,0.2454 +5.60,0.0452 +5.70,0.0000 +5.80,0.0000 +5.90,0.0546 +6.00,0.1533 +6.10,0.0000 +6.20,0.0000 +6.30,0.1075 +6.40,0.0572 +6.50,0.0000 +6.60,0.0000 +6.70,0.0000 +6.80,0.0447 +6.90,0.0490 +7.00,0.0000 +7.10,0.0000 +7.20,0.0153 +7.30,0.1387 +7.40,0.0000 +7.50,0.0667 +7.60,0.0000 +7.70,0.1723 +7.80,0.1003 +7.90,0.0000 +8.00,0.0000 +8.10,0.0332 +8.20,0.0000 +8.30,0.0000 +8.40,0.0128 +8.50,0.0000 +8.60,0.0000 +8.70,0.0000 +8.80,0.0242 +8.90,0.2287 +9.00,0.0075 +9.10,0.1882 +9.20,0.0000 +9.30,0.0000 +9.40,0.0228 +9.50,0.0000 +9.60,0.0502 +9.70,0.0000 +9.80,0.0000 +9.90,0.0000 +10.00,0.0000 diff --git a/examples/data/example_uv_signal.csv b/examples/data/example_uv_signal.csv index b817c78..b9296a7 100644 --- a/examples/data/example_uv_signal.csv +++ b/examples/data/example_uv_signal.csv @@ -1,202 +1,102 @@ time_min,UV280_mAU -0.0,2.366 -0.5,0.752 -1.0,2.901 -1.5,3.129 -2.0,0.0 -2.5,0.437 -3.0,2.153 -3.5,1.621 -4.0,1.98 -4.5,0.976 -5.0,3.055 -5.5,2.933 -6.0,2.079 -6.5,3.353 -7.0,2.561 -7.5,0.969 -8.0,2.443 -8.5,0.849 -9.0,3.054 -9.5,1.94 -10.0,1.778 -10.5,1.183 -11.0,3.467 -11.5,1.815 -12.0,1.486 -12.5,1.577 -13.0,2.639 -13.5,2.439 -14.0,2.495 -14.5,2.517 -15.0,4.57 -15.5,1.513 -16.0,1.386 -16.5,1.025 -17.0,2.741 -17.5,3.358 -18.0,1.868 -18.5,0.999 -19.0,1.021 -19.5,2.795 -20.0,2.912 -20.5,2.681 -21.0,1.242 -21.5,2.335 -22.0,2.217 -22.5,2.368 -23.0,3.19 -23.5,2.464 -24.0,3.077 -24.5,2.431 -25.0,2.811 -25.5,3.368 -26.0,1.049 -26.5,2.651 -27.0,2.769 -27.5,2.939 -28.0,3.837 -28.5,6.529 -29.0,4.389 -29.5,7.428 -30.0,5.253 -30.5,8.069 -31.0,10.083 -31.5,12.251 -32.0,14.33 -32.5,16.651 -33.0,17.822 -33.5,20.564 -34.0,25.382 -34.5,27.722 -35.0,30.391 -35.5,34.901 -36.0,39.855 -36.5,46.589 -37.0,51.504 -37.5,57.769 -38.0,62.248 -38.5,68.922 -39.0,75.534 -39.5,80.463 -40.0,87.346 -40.5,91.786 -41.0,97.653 -41.5,102.768 -42.0,106.465 -42.5,112.607 -43.0,114.952 -43.5,118.323 -44.0,120.922 -44.5,122.12 -45.0,122.798 -45.5,121.466 -46.0,119.837 -46.5,118.212 -47.0,113.49 -47.5,110.286 -48.0,106.312 -48.5,102.029 -49.0,98.568 -49.5,91.494 -50.0,86.344 -50.5,82.394 -51.0,74.356 -51.5,69.617 -52.0,61.64 -52.5,56.693 -53.0,50.193 -53.5,45.586 -54.0,41.967 -54.5,34.189 -55.0,32.444 -55.5,28.237 -56.0,23.639 -56.5,19.384 -57.0,18.327 -57.5,15.064 -58.0,13.755 -58.5,11.573 -59.0,11.81 -59.5,8.184 -60.0,6.044 -60.5,6.481 -61.0,5.692 -61.5,6.366 -62.0,5.17 -62.5,4.134 -63.0,5.089 -63.5,1.608 -64.0,2.03 -64.5,1.498 -65.0,1.996 -65.5,0.698 -66.0,3.025 -66.5,1.929 -67.0,0.379 -67.5,0.887 -68.0,2.454 -68.5,3.062 -69.0,4.436 -69.5,5.525 -70.0,2.518 -70.5,0.827 -71.0,0.0 -71.5,2.328 -72.0,1.029 -72.5,1.505 -73.0,1.268 -73.5,1.833 -74.0,3.28 -74.5,2.189 -75.0,1.81 -75.5,0.758 -76.0,0.0 -76.5,1.417 -77.0,1.936 -77.5,4.122 -78.0,2.156 -78.5,3.179 -79.0,1.401 -79.5,0.578 -80.0,0.842 -80.5,1.13 -81.0,4.554 -81.5,1.014 -82.0,3.006 -82.5,0.916 -83.0,3.118 -83.5,2.462 -84.0,1.812 -84.5,1.951 -85.0,1.214 -85.5,2.535 -86.0,1.454 -86.5,0.529 -87.0,0.466 -87.5,2.207 -88.0,3.895 -88.5,2.192 -89.0,1.858 -89.5,2.343 -90.0,3.567 -90.5,2.263 -91.0,1.507 -91.5,3.328 -92.0,2.515 -92.5,3.843 -93.0,2.22 -93.5,0.531 -94.0,0.358 -94.5,3.981 -95.0,4.068 -95.5,1.785 -96.0,1.54 -96.5,3.754 -97.0,0.672 -97.5,0.926 -98.0,2.772 -98.5,1.526 -99.0,1.994 -99.5,1.804 -100.0,2.405 +0.0,0.0 +0.1,1.223 +0.2,0.0 +0.3,0.0 +0.4,0.0 +0.5,0.563 +0.6,0.0 +0.7,0.0 +0.8,0.975 +0.9,0.0 +1.0,1.275 +1.1,0.0 +1.2,0.0 +1.3,1.648 +1.4,0.0 +1.5,0.0 +1.6,0.0 +1.7,1.694 +1.8,0.0 +1.9,0.611 +2.0,0.263 +2.1,0.0 +2.2,1.147 +2.3,0.444 +2.4,0.851 +2.5,1.719 +2.6,4.817 +2.7,41.538 +2.8,90.194 +2.9,103.065 +3.0,99.535 +3.1,102.161 +3.2,99.512 +3.3,100.319 +3.4,100.616 +3.5,100.187 +3.6,98.642 +3.7,56.355 +3.8,9.539 +3.9,0.887 +4.0,0.159 +4.1,1.187 +4.2,0.0 +4.3,0.0 +4.4,0.0 +4.5,0.75 +4.6,1.149 +4.7,0.264 +4.8,2.74 +4.9,1.518 +5.0,0.0 +5.1,0.0 +5.2,2.618 +5.3,0.0 +5.4,0.0 +5.5,3.148 +5.6,0.0 +5.7,0.213 +5.8,1.33 +5.9,0.0 +6.0,0.979 +6.1,0.0 +6.2,2.096 +6.3,0.874 +6.4,2.159 +6.5,0.0 +6.6,0.0 +6.7,0.0 +6.8,0.0 +6.9,0.0 +7.0,3.126 +7.1,0.0 +7.2,0.213 +7.3,0.0 +7.4,4.296 +7.5,1.126 +7.6,0.0 +7.7,0.0 +7.8,0.0 +7.9,0.0 +8.0,1.843 +8.1,0.179 +8.2,0.0 +8.3,0.0 +8.4,0.0 +8.5,0.0 +8.6,0.0 +8.7,1.161 +8.8,1.725 +8.9,1.447 +9.0,0.0 +9.1,0.0 +9.2,0.731 +9.3,0.399 +9.4,0.0 +9.5,0.0 +9.6,0.0 +9.7,0.0 +9.8,0.0 +9.9,0.227 +10.0,0.0 diff --git a/examples/webapp/README.md b/examples/webapp/README.md index 1eecc29..00dcd33 100644 --- a/examples/webapp/README.md +++ b/examples/webapp/README.md @@ -1,17 +1,19 @@ # CADET-GUI as a website `app.ipynb` renders `ConfigurationWidget`, `SolutionWidget` (with its built-in -run history), and `DataImportWidget` — the exact same widgets used in +run history), and `ParameterEstimationWidget` — the same widgets used in `examples/configuration_and_solution.ipynb` — composed into three tabs -(**Configuration** / **Solution** / **Analysis**), served via -[Voilà](https://voila.readthedocs.io/). `DataImportWidget` lives under -**Analysis**, not alongside Solution — that's a deliberate separation, not a -demotion: comparison/analysis is its own concern, distinct from running and -viewing a single simulation, even though it visually overlays onto Solution's -plot. Try uploading `examples/data/example_uv_signal.csv` (a synthetic UV trace -generated for these examples) there to see it overlaid on a simulation run — -switching tabs doesn't lose anything; a plot rendered on one tab is still there -when you switch back. +(**Configuration** / **Solution** / **Parameter Estimation**), served via +[Voilà](https://voila.readthedocs.io/). Comparison against measured data lives +under **Parameter Estimation**, not alongside Solution — that's a deliberate +separation, not a demotion: the Solution tab shows only the raw simulation; +importing a dataset, calibrating it, and overlaying it against a simulated +signal is its own concern, with its own "Preview" step. Try uploading one of +the three example datasets in `examples/data/` (see `examples/EXAMPLE_DATA.md` +for exactly what configuration each was generated from, and what to check in +the parameter checklist) and clicking "Preview" to see it overlaid — +switching tabs doesn't lose anything; a plot rendered on one tab is still +there when you switch back. ## Run it diff --git a/examples/webapp/app.ipynb b/examples/webapp/app.ipynb index a36ca81..1bbb1db 100644 --- a/examples/webapp/app.ipynb +++ b/examples/webapp/app.ipynb @@ -6,7 +6,7 @@ "id": "a9463514", "metadata": {}, "outputs": [], - "source": "import ipywidgets as W\nfrom cadetgui.widgets.composite import (\n ConfigurationWidget,\n DataImportWidget,\n SolutionWidget,\n)\nfrom IPython.display import display\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against \"\n \"measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\ndata = DataImportWidget()\nsolution.bind_to_data(data)\n\n\ndef tab_page(widget_root: W.Widget) -> W.VBox:\n \"\"\"Wrap a widget root in the shared tab-page padding class.\"\"\"\n page = W.VBox([widget_root])\n page.add_class(\"cadetgui-tab-page\")\n return page\n\n\ntabs = W.Tab(children=[tab_page(config.root), tab_page(solution.root), tab_page(data.root)])\ntabs.set_title(0, \"Configuration\")\ntabs.set_title(1, \"Solution\")\ntabs.set_title(2, \"Analysis\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, tabs])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)" + "source": "import ipywidgets as W\nfrom cadetgui.widgets.composite import (\n ConfigurationWidget,\n ParameterEstimationWidget,\n SolutionWidget,\n)\nfrom IPython.display import display\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against \"\n \"measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\nparameter_estimation = ParameterEstimationWidget()\nparameter_estimation.bind_to_config(config)\n\n\ndef tab_page(widget_root: W.Widget) -> W.VBox:\n \"\"\"Wrap a widget root in the shared tab-page padding class.\"\"\"\n page = W.VBox([widget_root])\n page.add_class(\"cadetgui-tab-page\")\n return page\n\n\ntabs = W.Tab(\n children=[\n tab_page(config.root),\n tab_page(solution.root),\n tab_page(parameter_estimation.root),\n ]\n)\ntabs.set_title(0, \"Configuration\")\ntabs.set_title(1, \"Solution\")\ntabs.set_title(2, \"Parameter Estimation\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, tabs])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)" } ], "metadata": { diff --git a/tests/test_configuration_store.py b/tests/test_configuration_store.py index 0e46afe..1c23adc 100644 --- a/tests/test_configuration_store.py +++ b/tests/test_configuration_store.py @@ -7,6 +7,7 @@ from cadetgui.configuration_store import ( ConfigurationState, compute_hash, + list_store, load_from_store, load_h5, save_h5, @@ -92,3 +93,33 @@ def test_save_to_store_is_idempotent_for_identical_content(tmp_path): name, loaded = load_from_store(compute_hash(state), store_dir=tmp_path) assert name == "Name B" # last write wins for the metadata, content unchanged assert loaded == state + + +def test_list_store_is_empty_for_a_fresh_store_dir(tmp_path): + assert list_store(store_dir=tmp_path) == [] + + +def test_list_store_lists_every_saved_configuration_as_name_hash_pairs(tmp_path): + state_a = _sample_state() + state_b = _sample_state(column_values={"length": 0.6, "diameter": 0.024}) + save_to_store(state_a, "Config A", store_dir=tmp_path) + save_to_store(state_b, "Config B", store_dir=tmp_path) + + entries = list_store(store_dir=tmp_path) + + assert {name for name, _ in entries} == {"Config A", "Config B"} + assert {hash_ for _, hash_ in entries} == {compute_hash(state_a), compute_hash(state_b)} + + +def test_list_store_skips_a_non_cadetgui_h5_file(tmp_path): + state = _sample_state() + save_to_store(state, "Config A", store_dir=tmp_path) + + h5 = H5() + h5.root.some_other_data = 1 + h5.filename = str(tmp_path / "not_a_config.h5") + h5.save() + + entries = list_store(store_dir=tmp_path) + + assert [name for name, _ in entries] == ["Config A"] diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py index 10ab8cc..976416b 100644 --- a/tests/test_parameter_estimation.py +++ b/tests/test_parameter_estimation.py @@ -1,6 +1,61 @@ from __future__ import annotations -from cadetgui.widgets.composite import DataImportWidget, ParameterEstimationWidget +import datetime as dt +import threading +import time +import warnings + +import cadetgui.configuration_store as configuration_store +import pytest +from cadetgui.parameter_estimation import EstimationResult +from cadetgui.widgets.composite import ( + ConfigurationWidget, + DataImportWidget, + ParameterEstimationWidget, +) + +warnings.filterwarnings("ignore", category=UserWarning) + + +@pytest.fixture(autouse=True) +def _isolated_store(tmp_path, monkeypatch): + """Redirect the configuration store to a tmp dir -- never touch the real one.""" + monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) + + +@pytest.fixture(autouse=True) +def _synchronous_threads(monkeypatch): + """Make `_on_run`'s background threads run synchronously and in order. + + `_on_run` starts a worker thread (runs the fit, sets `_run_done`) and a + ticker thread (waits on `_run_done`, then finalizes the UI) -- starting + the worker first means, with `start()` running its target inline, the + worker completes (and sets `_run_done`) before the ticker "starts," so + the ticker's wait-loop exits on its very first check with zero real + iterations. Net effect: `pw._on_run(None)` behaves fully synchronously, + exactly like the pre-threading version -- no sleeps, no flakiness. + """ + monkeypatch.setattr(threading.Thread, "start", lambda self: self.run()) + + +def upload_csv(widget: DataImportWidget, filename: str, csv_text: str) -> None: + content = memoryview(csv_text.encode("utf-8")) + widget._upload.value = ( + { + "name": filename, + "type": "text/csv", + "size": len(content), + "last_modified": dt.datetime.now(), + "content": content, + }, + ) + + +def _add_param(pw: ParameterEstimationWidget, index: int) -> None: + """Add `pw._params[index]` to the fit via the real Add-parameter flow.""" + key = pw._param_key(pw._params[index]) + pw._param_add_picker.value = key + pw._on_add_param(None) def test_parameter_estimation_widget_nests_a_data_import_widget(): @@ -15,3 +70,584 @@ def test_parameter_estimation_widget_accepts_a_prebuilt_data_widget(): pw = ParameterEstimationWidget(data=dw) assert pw.data is dw + + +def test_bind_to_config_populates_the_add_parameter_picker(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + + pw.bind_to_config(cw) + + assert len(pw._params) > 0 + assert len(pw._param_add_picker.option_labels) == len(pw._params) + assert pw._added_keys == [] # nothing added by default + + +def test_config_field_changes_rebuild_the_add_parameter_picker(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + before = len(pw._param_add_picker.option_labels) + + cw._model_form.element("flow_rate").value = 5e-6 # any committed change + + assert len(pw._param_add_picker.option_labels) == before # rebuilt, same shape, no crash + + +def test_adding_a_parameter_removes_it_from_the_add_picker_and_adds_a_row(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + before = len(pw._param_add_picker.option_labels) + + _add_param(pw, 0) + + assert pw._added_keys == [pw._param_key(pw._params[0])] + assert len(pw._param_box.children) == 1 + assert len(pw._param_add_picker.option_labels) == before - 1 + + +def test_removing_a_parameter_puts_it_back_in_the_add_picker(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + _add_param(pw, 0) + before = len(pw._param_add_picker.option_labels) + + pw._remove_buttons[0].click() + + assert pw._added_keys == [] + assert len(pw._param_box.children) == 0 + assert len(pw._param_add_picker.option_labels) == before + 1 + + +def test_unrelated_config_edits_preserve_edited_start_lb_ub_for_an_added_parameter(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + _add_param(pw, 0) + pw._start_fields[0].value = 0.123 + pw._lb_fields[0].value = 0.01 + pw._ub_fields[0].value = 0.99 + + cw._model_form.element("flow_rate").value = 5e-6 # unrelated committed change + + assert len(pw._added_keys) == 1 # still added + assert pw._start_fields[0].value == 0.123 + assert pw._lb_fields[0].value == 0.01 + assert pw._ub_fields[0].value == 0.99 + + +def test_start_field_defaults_to_the_current_config_value_for_a_new_parameter(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + + _add_param(pw, 0) + + assert pw._start_fields[0].value == pw._params[0].current_value + + +def test_bind_to_config_populates_the_component_picker_with_components_and_total(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + + pw.bind_to_config(cw) + + assert pw._component_picker.option_labels == [ + "Component 1", "Component 2", "Total (sum of all components)", + ] + assert pw._component_picker.value == "Component 1" # a real component, not Total + + +def test_unrelated_config_edits_do_not_reset_an_explicit_total_pick(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + pw._component_picker.value = None # "Total (sum of all components)" + + cw._model_form.element("flow_rate").value = 5e-6 # unrelated committed change + + assert pw._component_picker.value is None # still "Total", not bounced to index 0 + + +def test_bind_to_config_populates_the_base_process_picker_with_current_configuration_only(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + + pw.bind_to_config(cw) + + assert pw._base_process_picker.option_labels == ["Current configuration"] + + +def test_preview_populates_the_signal_picker_and_does_not_touch_the_configuration(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + + assert pw._signal_picker.option_labels == [] # nothing previewed yet + + before = cw._column_form.collect_values() + pw._on_preview(None) + + assert pw._signal_picker.option_labels # non-empty now + assert pw._display_result is not None + assert cw._column_form.collect_values() == before + + +def test_plot_widget_starts_hidden_and_is_shown_once_a_preview_is_drawn(): + # `W.Image` renders a broken-image icon when `.value` is unset -- must + # stay hidden until there's actually something to show. + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + + assert pw._plot_out.layout.display == "none" + + pw._on_preview(None) + + assert pw._plot_out.layout.display == "" + assert pw._plot_out.value # actual PNG bytes + + +def test_preview_defaults_the_signal_picker_to_the_sink(): + # Fitting against the process outlet is the common case -- it should be + # selected by default after Preview, not whichever unit happens first. + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + + pw._on_preview(None) + + assert pw._signal_picker.value == ("outlet", "inlet") + + +def test_preview_without_a_configuration_shows_a_guard_error(): + pw = ParameterEstimationWidget() + + pw._on_preview(None) + + assert "configuration" in pw.status.value.lower() + + +def test_uploading_a_dataset_populates_the_dataset_picker(): + pw = ParameterEstimationWidget() + + upload_csv(pw.data, "run1.csv", "time,signal\n0,0.0\n1,0.5\n2,1.0\n") + + assert pw._dataset_picker.option_labels == ["run1"] + + +def test_saving_a_configuration_and_refreshing_lists_it_as_a_base_process(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + cw._name_field.value = "Saved Base" + cw.persist_to_store() + + pw._refresh_store_options() + + assert pw._base_process_picker.option_labels == ["Current configuration", "Saved Base"] + + +def test_picking_a_saved_base_process_loads_it_into_the_configuration_and_previews(): + pw = ParameterEstimationWidget() + cw = ConfigurationWidget() + pw.bind_to_config(cw) + cw._name_field.value = "Saved Base" + saved_hash = cw.config_hash + cw.persist_to_store() + pw._refresh_store_options() + + cw._model_form.element("flow_rate").value = 9.9e-6 # diverge from the saved snapshot + assert cw.config_hash != saved_hash + + pw._base_process_picker.selected_index = 1 # "Saved Base" + + assert cw.config_hash == saved_hash # reloaded via ConfigurationWidget.import_from_store + assert pw._signal_picker.option_labels # auto-previewed + + +def _bound_widgets(): + cw = ConfigurationWidget() + pw = ParameterEstimationWidget() + pw.bind_to_config(cw) + return cw, pw + + +def _uploaded_measurement_from(result, unit: str, port: str) -> str: + sol = result.solution[unit][port] + total = sol.solution.sum(axis=1) + lines = ["time,signal"] + [ + f"{t / 60.0},{s * 1.05}" for t, s in zip(sol.time[::10], total[::10]) + ] + return "\n".join(lines) + + +def _ready_to_run(cw, pw): + pw._on_preview(None) + unit, port = pw._signal_picker.value + upload_csv(pw.data, "measured.csv", _uploaded_measurement_from(pw._display_result, unit, port)) + pw._dataset_picker.selected_index = 0 + pw._signal_picker.value = (unit, port) + _add_param(pw, 0) + pw._maxiter_field.value = 20 + + +def test_run_estimation_without_a_dataset_shows_a_guard_error(): + _, pw = _bound_widgets() + pw._on_preview(None) # signal available, but no dataset imported + + pw._on_run(None) + + assert "dataset" in pw.status.value.lower() + + +def test_run_estimation_without_a_preview_shows_a_guard_error(): + _, pw = _bound_widgets() + upload_csv(pw.data, "run1.csv", "time,signal\n0,0.0\n1,0.5\n2,1.0\n") + + pw._on_run(None) # never previewed -> no signal options + + assert "preview" in pw.status.value.lower() + + +def test_run_estimation_without_an_added_parameter_shows_a_guard_error(): + cw, pw = _bound_widgets() + pw._on_preview(None) + upload_csv(pw.data, "run1.csv", "time,signal\n0,0.0\n1,0.5\n2,1.0\n") + pw._dataset_picker.selected_index = 0 + pw._signal_picker.selected_index = 0 + + pw._on_run(None) # nothing added + + assert "parameter" in pw.status.value.lower() + + +def test_run_estimation_with_a_start_value_outside_its_bounds_shows_a_guard_error(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._lb_fields[0].value = 0.0 + pw._ub_fields[0].value = 1e-5 + pw._start_fields[0].value = 1.0000001 # far outside [0, 1e-5] + + pw._on_run(None) + + assert "bounds" in pw.status.value.lower() + assert pw._last_result is None + + +def test_run_estimation_end_to_end_populates_results_and_accept_is_hidden_before_run(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + + assert pw._btn_accept.layout.display == "none" + + pw._on_run(None) + + assert pw._last_result is not None + assert pw._last_result.success + assert pw._btn_accept.layout.display == "" + assert "Objective" in pw.status.value + assert pw._plot_out.layout.display == "" # final overlay shown + assert pw._plot_out.value + + +def test_accept_writes_fitted_values_into_the_live_configuration_only_on_click(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + + before = cw._column_form.collect_values() + pw._on_run(None) + assert cw._column_form.collect_values() == before # untouched until Accept + + pw._on_accept(None) + + fitted_name = pw._params[0].name # index 0 is always a scalar column field + assert cw._column_form.collect_values()[fitted_name] == pytest.approx( + pw._last_result.fitted[0] + ) + + +def test_picking_a_calibration_method_shows_only_its_own_fields(): + pw = ParameterEstimationWidget() + + assert pw._beer_lambert_box.layout.display == "none" + assert pw._normalize_area_box.layout.display == "none" + + pw._calibration_picker.value = "beer_lambert" + assert pw._beer_lambert_box.layout.display == "" + assert pw._normalize_area_box.layout.display == "none" + + pw._calibration_picker.value = "normalize_area" + assert pw._beer_lambert_box.layout.display == "none" + assert pw._normalize_area_box.layout.display == "" + + pw._calibration_picker.value = "none" + assert pw._beer_lambert_box.layout.display == "none" + assert pw._normalize_area_box.layout.display == "none" + + +def test_run_estimation_rejects_a_non_positive_beer_lambert_input(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._calibration_picker.value = "beer_lambert" + pw._extinction_field.value = 0.0 + + pw._on_run(None) + + assert "extinction" in pw.status.value.lower() + assert pw._last_result is None + + +def test_run_estimation_rejects_a_zero_target_area(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._calibration_picker.value = "normalize_area" + pw._target_area_field.value = 0.0 + + pw._on_run(None) + + assert "amount" in pw.status.value.lower() + assert pw._last_result is None + + +def test_run_estimation_succeeds_with_beer_lambert_calibration(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._calibration_picker.value = "beer_lambert" + pw._extinction_field.value = 2.0 + pw._path_length_field.value = 1.0 + + pw._on_run(None) + + assert pw._last_result is not None + assert pw._last_result.success + + +def test_run_estimation_succeeds_with_area_normalization_calibration(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._calibration_picker.value = "normalize_area" + pw._target_area_field.value = 1.0 + + pw._on_run(None) + + assert pw._last_result is not None + assert pw._last_result.success + + +def test_run_estimation_passes_the_start_fields_as_starts(monkeypatch): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._start_fields[0].value = 0.123 # deliberately not the config's current value + captured = {} + + def _fake_run_estimation(*args, **kwargs): + captured.update(kwargs) + return EstimationResult({}, None, False, "stopped for the test") + + monkeypatch.setattr(pe_widget, "run_estimation", _fake_run_estimation) + + pw._on_run(None) + + # If `_on_run` ever returns before calling `run_estimation` (e.g. a + # future regression re-introducing param-order instability -- see + # ai-docs/UPSTREAM_ISSUES.md #4 for the CADET-Process bug this caught, + # and cadetprocessadapter.py's `build_parameter_config_spec` for the fix), + # surface *why* via the guard-clause message instead of a bare KeyError. + assert "starts" in captured, ( + f"run_estimation was never called; pw.status was: {pw.status.value!r}" + ) + assert captured["starts"] == [0.123] + + +def test_run_estimation_with_total_selected_still_succeeds(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._component_picker.value = None # "Total (sum of all components)" + + pw._on_run(None) + + assert pw._last_result is not None + assert pw._last_result.success + + +def test_run_estimation_with_a_specific_component_selected_succeeds(): + cw, pw = _bound_widgets() + pw._on_preview(None) + unit, port = pw._signal_picker.value + sol = pw._display_result.solution[unit][port] + comp2 = sol.solution[:, 1] + lines = ["time,signal"] + [ + f"{t / 60.0},{s * 1.05}" for t, s in zip(sol.time[::10], comp2[::10]) + ] + upload_csv(pw.data, "measured.csv", "\n".join(lines)) + pw._dataset_picker.selected_index = 0 + pw._signal_picker.value = (unit, port) + pw._component_picker.value = "Component 2" + _add_param(pw, 0) + pw._maxiter_field.value = 15 + + pw._on_run(None) + + assert pw._last_result is not None + assert pw._last_result.success + + +def test_elapsed_label_is_cleared_after_a_run_finishes(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + + pw._on_run(None) + + # Cleared once finished -- the final elapsed time is folded into `status` instead. + assert pw._elapsed_label.value == "" + assert "s)" in pw.status.value # e.g. "... (0s)" + + +class _FakeResults: + def __init__(self, n_gen: int, x_best, f_best_history): + self.populations = [None] * n_gen + self._x_best = x_best + self.f_best_history = f_best_history + + @property + def x(self): + return [self._x_best] + + +class _FakeOptimizer: + def __init__(self, results): + self.results = results + + +def test_progress_tick_skips_the_live_plot_when_the_checkbox_is_off(monkeypatch): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + _, pw = _bound_widgets() + _add_param(pw, 0) + calls = [] + monkeypatch.setattr(pe_widget, "simulate_at", lambda *a, **k: calls.append(1)) + pw._progress["optimizer"] = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) + pw._live_plot_checkbox.value = False + + pw._progress_tick(0.0, None, None, pw._params, [0], None, "outlet", "inlet", 0) + + assert calls == [] + + +def test_progress_tick_redraws_the_live_plot_when_the_checkbox_is_on_and_a_generation_completed( + monkeypatch, +): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + cw, pw = _bound_widgets() + _add_param(pw, 0) + pw._on_preview(None) + unit, port = pw._signal_picker.value + calls = [] + monkeypatch.setattr( + pe_widget, "simulate_at", + lambda *a, **k: calls.append(1) or pw._display_result, + ) + pw._progress["optimizer"] = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) + pw._live_plot_checkbox.value = True + + last_n_gen = pw._progress_tick( + 0.0, cw.process, cw._column_form.built, pw._params, [0], None, unit, port, 0 + ) + + assert calls == [1] + assert last_n_gen == 1 + + +def test_progress_tick_does_not_redraw_twice_for_the_same_generation(monkeypatch): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + _, pw = _bound_widgets() + _add_param(pw, 0) + calls = [] + monkeypatch.setattr(pe_widget, "simulate_at", lambda *a, **k: calls.append(1)) + pw._progress["optimizer"] = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) + pw._live_plot_checkbox.value = True + + last_n_gen = pw._progress_tick(0.0, None, None, pw._params, [0], None, "outlet", "inlet", 1) + + assert calls == [] # n_gen (1) == last_n_gen (1) -- nothing new since last tick + assert last_n_gen == 1 + + +def test_redraw_live_plot_shows_the_error_instead_of_staying_silently_blank(monkeypatch): + # Regression: a bare `except: return` here used to make the live panel + # stay empty for an entire run with zero indication anything went wrong. + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + _, pw = _bound_widgets() + _add_param(pw, 0) + + def _boom(*a, **k): + raise RuntimeError("synthetic failure for the test") + + monkeypatch.setattr(pe_widget, "simulate_at", _boom) + optimizer = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) + + pw._redraw_live_plot(optimizer, None, None, pw._params, [0], None, "outlet", "inlet") + + assert "synthetic failure for the test" in pw._live_plot_error.value + + +def test_cancel_button_hidden_by_default_and_shown_while_a_fit_is_running(monkeypatch): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + seen_display_mid_run = {} + + def _fake_run_estimation(*args, **kwargs): + seen_display_mid_run["display"] = pw._btn_cancel.layout.display + return EstimationResult({}, None, False, "stopped for the test") + + monkeypatch.setattr(pe_widget, "run_estimation", _fake_run_estimation) + + assert pw._btn_cancel.layout.display == "none" + + pw._on_run(None) + + assert seen_display_mid_run["display"] == "" # shown while the (mocked) fit "ran" + assert pw._btn_cancel.layout.display == "none" # hidden again once finished + + +def test_clicking_cancel_sets_the_event_run_estimation_receives(monkeypatch): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + captured = {} + + def _fake_run_estimation(*args, **kwargs): + captured.update(kwargs) + pw._on_cancel(None) # simulate the user clicking Cancel mid-run + return EstimationResult({}, None, False, "Estimation cancelled by user.", cancelled=True) + + monkeypatch.setattr(pe_widget, "run_estimation", _fake_run_estimation) + + pw._on_run(None) + + assert captured["cancel_event"] is pw._cancel_event + assert pw._cancel_event.is_set() + + +def test_finish_run_shows_a_plain_message_for_a_cancelled_result_not_an_error(): + _, pw = _bound_widgets() + + pw._finish_run( + EstimationResult({}, None, False, "Estimation cancelled by user.", cancelled=True), + start_time=time.monotonic(), + ) + + assert "cancelled" in pw.status.value.lower() + assert "#b00020" not in pw.status.value # not styled as an error + assert pw._btn_cancel.layout.display == "none" diff --git a/tests/test_parameter_estimation_adapter.py b/tests/test_parameter_estimation_adapter.py new file mode 100644 index 0000000..42322ba --- /dev/null +++ b/tests/test_parameter_estimation_adapter.py @@ -0,0 +1,330 @@ +from __future__ import annotations + +import threading +import time +import warnings + +import numpy as np +import pytest +from cadetgui.cadetprocessadapter import FieldSpec +from cadetgui.parameter_estimation import ( + build_reference, + calibrate_reference, + list_fittable_parameters, + run_estimation, + simulate_at, +) +from cadetgui.simulation import run_process +from cadetgui.widgets.composite import ConfigurationWidget + +warnings.filterwarnings("ignore", category=UserWarning) + + +def built_widget() -> ConfigurationWidget: + return ConfigurationWidget() # auto-commits its defaults on construction + + +FIELDS = [ + FieldSpec("total_porosity", "float", "Total porosity", 0.72, min=0.0, max=1.0), + FieldSpec("is_kinetic", "bool", "Is kinetic", True), + FieldSpec( + "adsorption_rate", "float_list", "Adsorption rate", [1.0, 2.0], + min=0.0, component_names=("Salt", "Protein"), + ), +] +VALUES = {"total_porosity": 0.72, "is_kinetic": True, "adsorption_rate": [1.0, 2.0]} + + +def test_list_fittable_parameters_skips_non_numeric_kinds(): + params = list_fittable_parameters("column", FIELDS, VALUES) + + assert [p.name for p in params] == ["total_porosity", "adsorption_rate", "adsorption_rate"] + + +def test_list_fittable_parameters_expands_float_list_per_component(): + params = list_fittable_parameters("binding", FIELDS, VALUES) + rate_params = [p for p in params if p.name == "adsorption_rate"] + + assert [p.component_index for p in rate_params] == [0, 1] + assert [p.current_value for p in rate_params] == [1.0, 2.0] + assert "Salt" in rate_params[0].label + assert "Protein" in rate_params[1].label + + +def test_list_fittable_parameters_fills_in_missing_bounds(): + params = list_fittable_parameters("column", FIELDS, VALUES) + porosity = next(p for p in params if p.name == "total_porosity") + rate0 = next(p for p in params if p.component_index == 0) + + assert (porosity.lb, porosity.ub) == (0.0, 1.0) # registered bounds, kept as-is + assert rate0.lb == 0.0 + assert rate0.ub == 10.0 * rate0.current_value # no registered max -> 10x current + + +def test_calibrate_reference_none_returns_the_same_object(): + ref = build_reference("raw", [0.0, 1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0]) + + assert calibrate_reference(ref, "none") is ref + + +def test_calibrate_reference_beer_lambert_divides_by_extinction_times_path_length(): + ref = build_reference("uv", [0.0, 1.0, 2.0, 3.0], [10.0, 20.0, 30.0, 40.0]) + + calibrated = calibrate_reference( + ref, "beer_lambert", extinction_coefficient=2.0, path_length=5.0 + ) + + assert np.allclose(calibrated.solution[:, 0], ref.solution[:, 0] / 10.0) + + +def test_calibrate_reference_normalize_area_matches_the_target_area(): + t = np.linspace(0, 10, 50) + ref = build_reference("uv", t, np.exp(-((t - 5) ** 2))) + + calibrated = calibrate_reference(ref, "normalize_area", target_area=3.0) + + assert np.isclose(calibrated.fraction_mass()[0], 3.0) + + +def test_calibrate_reference_rejects_an_unknown_method(): + ref = build_reference("raw", [0.0, 1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0]) + + with pytest.raises(ValueError): + calibrate_reference(ref, "not_a_real_method") # type: ignore[arg-type] + + +def test_build_reference_without_a_component_name_is_unnamed(): + ref = build_reference("raw", [0.0, 1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0]) + + assert ref.n_comp == 1 + assert ref.component_system.names == ["0"] # CADET-Process's own auto-generated default + + +def test_build_reference_tags_the_named_component(): + ref = build_reference( + "raw", [0.0, 1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0], component_name="Component 2" + ) + + assert ref.component_system.names == ["Component 2"] + + +@pytest.mark.parametrize("method,kwargs", [ + ("beer_lambert", {"extinction_coefficient": 2.0, "path_length": 1.0}), + ("normalize_area", {"target_area": 3.0}), +]) +def test_calibrate_reference_preserves_the_component_name(method, kwargs): + # Regression: apply_beer_lambert/normalize_area build a fresh ReferenceIO + # internally and don't carry the input's component_system over -- a + # `component_name` set via build_reference must survive calibration. + ref = build_reference( + "raw", np.linspace(0, 10, 20), np.linspace(1, 2, 20), component_name="Component 2" + ) + + calibrated = calibrate_reference(ref, method, **kwargs) + + assert calibrated.component_system.names == ["Component 2"] + + +def test_run_estimation_with_no_selection_does_not_run(): + cw = built_widget() + process, column = cw.process, cw._column_form.built + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + + # `reference` is never touched when nothing is selected -- None is fine here. + result = run_estimation( + process, column, params, [], None, "outlet.inlet", maxiter=5, starts=[] + ) + + assert result.success is False + assert result.fitted == {} + + +def test_run_estimation_uses_explicit_starts_as_x0(monkeypatch): + import cadetgui.parameter_estimation as pe + + cw = built_widget() + process, column = cw.process, cw._column_form.built + reference = build_reference("raw", [0.0, 1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0]) + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + captured = {} + + class _FakeOptimizer: + def __init__(self, maxiter): + pass + + def optimize(self, problem, x0, **kwargs): + captured["x0"] = x0 + raise RuntimeError("stop before an actual solve") + + monkeypatch.setattr(pe, "NelderMead", _FakeOptimizer) + + starts = [0.42] + run_estimation( + process, column, params, [porosity_idx], reference, "outlet.inlet", + maxiter=5, starts=starts, + ) + + assert captured["x0"] == starts + + +def test_run_estimation_calls_on_optimizer_ready_before_optimizing(monkeypatch): + import cadetgui.parameter_estimation as pe + + cw = built_widget() + process, column = cw.process, cw._column_form.built + reference = build_reference("raw", [0.0, 1.0, 2.0, 3.0], [1.0, 2.0, 3.0, 4.0]) + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + seen = {} + + class _FakeOptimizer: + def __init__(self, maxiter): + self.results = "not-yet-populated-marker" + + def optimize(self, problem, x0, **kwargs): + # on_optimizer_ready must have already fired by the time we get here. + assert seen.get("optimizer") is self + raise RuntimeError("stop before an actual solve") + + monkeypatch.setattr(pe, "NelderMead", _FakeOptimizer) + + run_estimation( + process, column, params, [porosity_idx], reference, "outlet.inlet", + maxiter=5, starts=[0.5], on_optimizer_ready=lambda opt: seen.update(optimizer=opt), + ) + + assert isinstance(seen["optimizer"], _FakeOptimizer) + + +def test_simulate_at_writes_values_onto_an_independent_copy(): + cw = built_widget() + process, column = cw.process, cw._column_form.built + original_porosity = column.total_porosity + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + + result = simulate_at(process, column, params, [porosity_idx], [0.5]) + + assert column.total_porosity == original_porosity # caller's process untouched + assert result.solution.outlet.inlet.solution.shape[1] == len(cw._components.value) + + # Compare against a hand-built simulation at the same value -- same curve. + import copy as _copy + + from cadetgui.simulation import run_process + manual = _copy.deepcopy(process) + manual.flow_sheet.units_dict["column"].total_porosity = 0.5 + expected = run_process(manual) + + np.testing.assert_allclose( + result.solution.outlet.inlet.solution, expected.solution.outlet.inlet.solution + ) + + +@pytest.mark.slow +def test_run_estimation_recovers_a_perturbed_parameter_without_touching_the_original(): + cw = built_widget() + process, column = cw.process, cw._column_form.built + original_porosity = column.total_porosity + + baseline = run_process(process) + sol = baseline.solution.outlet.inlet + total = sol.solution.sum(axis=1) + reference = build_reference("measured", sol.time / 60.0, total) + + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + + result = run_estimation( + process, column, params, [porosity_idx], reference, "outlet.inlet", maxiter=30, + starts=[original_porosity], + ) + + assert result.success + assert np.isclose(result.fitted[porosity_idx], original_porosity, atol=0.05) + assert result.fitted_process is not process + assert column.total_porosity == original_porosity # the live object is untouched + + +@pytest.mark.slow +def test_run_estimation_with_a_component_name_ignores_other_components(): + # A reference built from just "Component 2" should recover the same fit + # whether "Component 1" is perturbed or not -- it's never looked at. + cw = built_widget() + process, column = cw.process, cw._column_form.built + original_porosity = column.total_porosity + + baseline = run_process(process) + sol = baseline.solution.outlet.inlet + comp2 = sol.solution[:, 1] + reference = build_reference( + "measured", sol.time / 60.0, comp2, component_name="Component 2" + ) + + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + + result = run_estimation( + process, column, params, [porosity_idx], reference, "outlet.inlet", + maxiter=30, starts=[original_porosity], component_name="Component 2", + ) + + assert result.success + assert np.isclose(result.fitted[porosity_idx], original_porosity, atol=0.05) + + +@pytest.mark.slow +def test_run_estimation_stops_early_when_cancelled(): + # Real optimize() call, real cancellation, no mocking -- confirms the + # cancel hook actually aborts scipy's Nelder-Mead loop rather than just + # being ignored (verified live: raising from inside an evaluator or an + # OptimizationProblem.add_callback() callback does *not* abort it -- + # CADET-Process's evaluation pipeline swallows those by design). + cw = built_widget() + process, column = cw.process, cw._column_form.built + + baseline = run_process(process) + sol = baseline.solution.outlet.inlet + total = sol.solution.sum(axis=1) + reference = build_reference("measured", sol.time / 60.0, total) + + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + + cancel_event = threading.Event() + + def _cancel_soon() -> None: + time.sleep(0.3) + cancel_event.set() + + threading.Thread(target=_cancel_soon, daemon=True).start() + + start_time = time.monotonic() + result = run_estimation( + process, column, params, [porosity_idx], reference, "outlet.inlet", + maxiter=500, # would run far longer than the cancel delay if not stopped + starts=[0.3], # deliberately far from the optimum, needs many iterations + cancel_event=cancel_event, + ) + elapsed = time.monotonic() - start_time + + assert result.cancelled + assert not result.success + assert "cancelled" in result.message.lower() + assert elapsed < 15 # stopped promptly, not after running the full 500 iterations + assert column.total_porosity == 0.72 # the live object is still untouched diff --git a/tests/test_solution.py b/tests/test_solution.py index 7f2df0e..b837df6 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -1,6 +1,5 @@ from __future__ import annotations -import datetime as dt import warnings import matplotlib @@ -10,11 +9,7 @@ import cadetgui.configuration_store as configuration_store from cadetgui.simulation import run_process as _default_runner -from cadetgui.widgets.composite import ( - ConfigurationWidget, - DataImportWidget, - SolutionWidget, -) +from cadetgui.widgets.composite import ConfigurationWidget, SolutionWidget warnings.filterwarnings("ignore", category=UserWarning) @@ -25,19 +20,6 @@ def _isolated_store(tmp_path, monkeypatch): monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) -def upload_csv(widget: DataImportWidget, filename: str, csv_text: str) -> None: - content = memoryview(csv_text.encode("utf-8")) - widget._upload.value = ( - { - "name": filename, - "type": "text/csv", - "size": len(content), - "last_modified": dt.datetime.now(), - "content": content, - }, - ) - - def built_process(): cw = ConfigurationWidget() # auto-commits its defaults on construction return cw.process @@ -126,13 +108,14 @@ def test_signal_list_collapses_inlet_and_outlet_units_to_one_entry_each(): sw._on_run(None) labels = sw._signal_picker.option_labels - assert labels == [ + assert set(labels) == { "feed: Source", "eluent: Source", "column: inlet", "column: outlet", "outlet: Sink", - ] + } + assert labels[0] == "outlet: Sink" # sorted first -- the common default signal def test_signal_list_source_and_sink_options_point_at_the_real_port(): @@ -144,6 +127,15 @@ def test_signal_list_source_and_sink_options_point_at_the_real_port(): assert options["outlet: Sink"] == ("outlet", "inlet") +def test_signal_picker_defaults_to_the_sink(): + # Comparing/fitting against the process outlet is the common case -- + # classify_signal_ports() sorts "Sink" first so it's index 0 by default. + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + + assert sw._signal_picker.value == ("outlet", "inlet") + + def test_classify_signal_ports_is_usable_standalone_from_the_adapter(): # SolutionWidget is a thin caller -- the classification itself lives in # cadetprocessadapter.py (framework-agnostic, no ipywidgets import). @@ -222,35 +214,6 @@ def test_solutionwidget_picking_a_failed_run_shows_its_error(): assert "Simulation failed" in sw.status.value -def test_solutionwidget_overlays_bound_experimental_data(): - sw = SolutionWidget(process=built_process()) - di = DataImportWidget() - sw.bind_to_data(di) - - upload_csv(di, "measured.csv", "time,signal\n0,0.0\n1,0.5\n") - sw._on_run(None) # no exception with data already loaded before the run - - unit, port = sw._signal_picker.value - solution = sw.result.solution[unit][port] - fig, ax = solution.plot() - for ds in di.datasets: - ax.plot(ds.time_min, ds.signal, linestyle="--", label=f"{ds.label} (measured)") - ax.legend() - labels = ax.get_legend_handles_labels()[1] - assert any("measured" in label for label in labels) - - -def test_solutionwidget_replots_when_data_uploaded_after_run(): - sw = SolutionWidget(process=built_process()) - di = DataImportWidget() - sw.bind_to_data(di) - - sw._on_run(None) # plot exists before any experimental data is loaded - upload_csv(di, "late.csv", "time,signal\n0,0.0\n1,1.0\n") # must not raise - - assert di.datasets # upload succeeded and triggered a listener-driven replot - - def test_solutionwidget_run_tags_history_with_config_name_and_hash(): cw = ConfigurationWidget() cw._name_field.value = "My Config" diff --git a/tests/test_workbench.py b/tests/test_workbench.py index a20902d..78415ee 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -2,11 +2,19 @@ import warnings +import cadetgui.configuration_store as configuration_store +import pytest from cadetgui.widgets.composite import WorkbenchWidget warnings.filterwarnings("ignore", category=UserWarning) +@pytest.fixture(autouse=True) +def _isolated_store(tmp_path, monkeypatch): + """Redirect the configuration store to a tmp dir -- never touch the real one.""" + monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) + + def test_workbench_builds_and_wires_the_three_widgets(): wb = WorkbenchWidget() @@ -14,6 +22,18 @@ def test_workbench_builds_and_wires_the_three_widgets(): assert wb.solution.process is wb.configuration.process # bind_to_config picked it up +def test_workbench_wires_parameter_estimation_to_configuration(): + wb = WorkbenchWidget() + + assert wb.parameter_estimation._param_add_picker.option_labels # bind_to_config populated it + assert wb.parameter_estimation._signal_picker.option_labels == [] # nothing previewed yet + + wb.parameter_estimation._on_preview(None) + + assert wb.parameter_estimation._signal_picker.option_labels + assert wb.solution.result is None # the Simulation tab's own run state is untouched + + def test_workbench_shows_only_the_configuration_pane_initially(): wb = WorkbenchWidget() From d4e3439e4600efa455562c799111624eecf9a172 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 15 Sep 2026 16:02:12 +0200 Subject: [PATCH 066/158] Add additional analysis data to parameter estimation widget --- cadetgui/parameter_estimation.py | 131 +++++++--- cadetgui/widgets/composite/data_import.py | 1 - .../widgets/composite/parameter_estimation.py | 243 +++++++++++++++--- examples/configuration_and_solution.ipynb | 2 +- tests/test_parameter_estimation.py | 140 +++++++++- tests/test_parameter_estimation_adapter.py | 91 ++++++- 6 files changed, 518 insertions(+), 90 deletions(-) diff --git a/cadetgui/parameter_estimation.py b/cadetgui/parameter_estimation.py index d7b39e9..00afdf8 100644 --- a/cadetgui/parameter_estimation.py +++ b/cadetgui/parameter_estimation.py @@ -10,7 +10,7 @@ from CADETProcess.calibration import apply_beer_lambert, normalize_area from CADETProcess.comparison import Comparator from CADETProcess.comparison.difference import SSE -from CADETProcess.optimization import NelderMead, OptimizationProblem +from CADETProcess.optimization import U_NSGA3, NelderMead, OptimizationProblem from CADETProcess.processModel import ComponentSystem from CADETProcess.reference import ReferenceIO from CADETProcess.simulator import Cadet @@ -21,6 +21,9 @@ __all__ = [ "FittableParameter", "EstimationResult", + "OptimizerKnob", + "OptimizerSpec", + "OPTIMIZERS", "list_fittable_parameters", "build_reference", "calibrate_reference", @@ -209,6 +212,54 @@ def simulate_at( return run_process(working_process) +@dataclass(frozen=True) +class OptimizerKnob: + """One optimizer-specific numeric setting, e.g. Nelder-Mead's `maxiter`.""" + + attr: str # kwarg name passed to the optimizer's constructor + label: str # widget field label + default: int + + +@dataclass(frozen=True) +class OptimizerSpec: + """One entry in `OPTIMIZERS` -- everything needed to build and configure it.""" + + factory: Callable[..., Any] + knobs: tuple[OptimizerKnob, ...] + # Mirrors the optimizer class's own `is_population_based` (`OptimizerBase` + # attribute) -- surfaced separately so callers don't need to construct an + # instance just to read it (e.g. for a "this may take a while to cancel" + # UX note: population-based optimizers evaluate a whole population before + # the per-generation cancellation check is next reached, see + # `_install_cancel_hook`). + is_population_based: bool + + +# Adding another optimizer later is one more entry here -- nothing else in +# this module or in the widget hardcodes "Nelder-Mead"/"U-NSGA-III"; both +# read `OPTIMIZERS` generically. `pop_size`/`n_max_gen` default to `0`, +# which is falsy -- `PymooInterface` (CADETProcess/optimization/ +# pymooAdapter.py) already treats an unset/falsy value as "size this +# automatically" via its own `scale_problem_size` heuristic, so `0` here +# means "let CADET-Process decide," not "population of zero." +OPTIMIZERS: dict[str, OptimizerSpec] = { + "Nelder-Mead": OptimizerSpec( + factory=NelderMead, + knobs=(OptimizerKnob("maxiter", "Max iterations", 1000),), + is_population_based=False, + ), + "U-NSGA-III": OptimizerSpec( + factory=U_NSGA3, + knobs=( + OptimizerKnob("pop_size", "Population size", 0), + OptimizerKnob("n_max_gen", "Max generations", 0), + ), + is_population_based=True, + ), +} + + class EstimationCancelled(Exception): """Raised by the per-generation hook `_install_cancel_hook` installs. @@ -230,37 +281,38 @@ def _install_cancel_hook(optimizer: Any, cancel_event: threading.Event) -> None: started doesn't work either -- `SciPyInterface._run` reads it once into a plain dict scipy owns from then on, not a live reference. - What *does* work: `NelderMead.get_callback()` builds the plain function - object scipy calls directly after every generation -- outside the - evaluation pipeline's exception handling entirely, since scipy invokes - it itself, not through CADET-Process's DAG. Instance-patching this one - bound method (shadows the class method for this `optimizer` only) wraps - it with a check that raises before delegating to the original -- - confirmed this exception really does propagate out of `optimize()`. - - One sharp edge along the way: scipy's own `_wrap_callback` (`scipy/ - optimize/_optimize.py`) picks the calling convention by inspecting the - callback's *signature* -- `set(sig.parameters) == {"intermediate_result"}` - selects the modern `callback(intermediate_result=...)` form CADET- - Process's own callback expects; anything else (a generic `*args, - **kwargs` wrapper included) falls back to the legacy `callback(xk)` form, - silently passing a bare ndarray where CADET-Process's callback expects an - `OptimizeResult` and breaking it (confirmed: `'numpy.ndarray' object has - no attribute 'x'`). The wrapper below matches that exact signature. + What *does* work, for *every* optimizer, not just scipy-based ones: + `OptimizerBase.run_post_processing` (defined once, shared by every + adapter) is called directly, as plain Python, once per generation -- + from inside scipy's own callback for `SciPyInterface` subclasses + (`NelderMead`, ...), and from inside CADET-Process's own hand-rolled + generation loop for `PymooInterface` subclasses (`U_NSGA3`, ...). + Confirmed by reading `OptimizerBase.optimize()`: nothing wraps the call + to `_run` in a try/except (a `log.log_exceptions(...)`-wrapped version + is constructed but its result is discarded -- dead code), so an + exception raised here propagates all the way out of `.optimize()` + regardless of which optimizer subclass is running. Verified live for + both `NelderMead` and `U_NSGA3`: this exact mechanism aborted a real + `.optimize()` call for each. Solver-agnostic by construction -- a future + optimizer added to `OPTIMIZERS` gets working cancellation for free as + long as it's an ordinary `OptimizerBase` subclass (true for every + built-in CADET-Process optimizer; `run_post_processing` isn't something + each adapter reimplements). + + (This replaces an earlier version that instance-patched the + `SciPyInterface`-only `get_callback()` method -- worked for NelderMead, + but `PymooInterface` has no such method at all, and it also required + matching scipy's own callback-signature-inspection exactly, a fragility + this simpler hook doesn't have.) """ - original_get_callback = optimizer.get_callback - - def _wrapped_get_callback(optimization_problem: Any) -> Callable: - inner = original_get_callback(optimization_problem) + original = optimizer.run_post_processing - def _callback(intermediate_result: Any) -> Any: - if cancel_event.is_set(): - raise EstimationCancelled("Estimation cancelled by user.") - return inner(intermediate_result=intermediate_result) + def _wrapped(*args: Any, **kwargs: Any) -> Any: + if cancel_event.is_set(): + raise EstimationCancelled("Estimation cancelled by user.") + return original(*args, **kwargs) - return _callback - - optimizer.get_callback = _wrapped_get_callback + optimizer.run_post_processing = _wrapped @dataclass(frozen=True) @@ -284,8 +336,9 @@ def run_estimation( selected_indices: Sequence[int], reference: ReferenceIO, solution_path: str, - maxiter: int, *, + optimizer_name: str, + optimizer_kwargs: Mapping[str, int], starts: Sequence[float], component_name: Optional[str] = None, on_optimizer_ready: Optional[Callable[[Any], None]] = None, @@ -297,11 +350,25 @@ def run_estimation( the real configuration through an explicit, user-approved write-back (PRODUCT_VISION.md §16.4: never silently overwrite the source model). + `optimizer_name` selects an entry from `OPTIMIZERS`; `optimizer_kwargs` + are passed straight to that entry's `factory(**optimizer_kwargs)` (e.g. + `{"maxiter": 1000}` for Nelder-Mead, `{"pop_size": 200, "n_max_gen": 50}` + for U-NSGA-III) -- this function itself is fully optimizer-agnostic + beyond this one construction step; `OptimizationProblem`/variable + registration/the `optimize()` call are identical regardless of which + optimizer runs (confirmed: `OptimizerBase.optimize()` is never + overridden by any concrete optimizer). + `starts` gives the optimizer's initial guess, positionally parallel to `selected_indices` -- deliberately not implied by `params[i].current_value`, since a starting guess is a property of the estimation run, not of the live configuration (confirmed: `OptimizationProblem.add_variable()` has no - per-variable starting-value concept, only `optimize()`'s `x0`). + per-variable starting-value concept, only `optimize()`'s `x0`). For a + population-based optimizer like U-NSGA-III, `x0` seeds one individual of + the initial population rather than a single starting point -- the rest is + filled in by CADET-Process's own `create_initial_values` polytope + sampling (confirmed by reading `PymooInterface._run`), so no special + handling is needed here for that case either. `component_name`, when given, restricts the comparison to that one simulated component (`SSE(..., components=[component_name])`) -- the right @@ -347,7 +414,7 @@ def run_estimation( problem.add_evaluator(simulator) problem.add_objective(comparator, n_objectives=comparator.n_metrics, requires=[simulator]) - optimizer = NelderMead(maxiter=maxiter) + optimizer = OPTIMIZERS[optimizer_name].factory(**optimizer_kwargs) if cancel_event is not None: _install_cancel_hook(optimizer, cancel_event) if on_optimizer_ready is not None: diff --git a/cadetgui/widgets/composite/data_import.py b/cadetgui/widgets/composite/data_import.py index b8b5a72..50808b6 100644 --- a/cadetgui/widgets/composite/data_import.py +++ b/cadetgui/widgets/composite/data_import.py @@ -75,7 +75,6 @@ def __init__(self) -> None: self.root = W.VBox( [ W.HTML(style_tag()), - W.HTML("
Experimental data
"), toolbar, self._preview_out, self.status, diff --git a/cadetgui/widgets/composite/parameter_estimation.py b/cadetgui/widgets/composite/parameter_estimation.py index 9d112a6..5a4ac46 100644 --- a/cadetgui/widgets/composite/parameter_estimation.py +++ b/cadetgui/widgets/composite/parameter_estimation.py @@ -12,6 +12,7 @@ from ... import configuration_store from ...cadetprocessadapter import classify_signal_ports from ...parameter_estimation import ( + OPTIMIZERS, CalibrationMethod, EstimationResult, FittableParameter, @@ -44,6 +45,10 @@ class ParameterEstimationWidget: tab shows only the raw simulation, this tab owns the comparison view. """ + _PARAM_NAME_WIDTH = "300px" + _PARAM_FIELD_WIDTH = "110px" + _PARAM_REMOVE_WIDTH = "36px" + def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self.data = data or DataImportWidget() self._config_widget: Optional[Any] = None @@ -74,8 +79,9 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self._progress: dict[str, Any] = {"optimizer": None} # Set by "Cancel" -- checked once per generation inside run_estimation # (`cancel_event`), the only point that actually stops a running - # Nelder-Mead: see `cadetgui.parameter_estimation._install_cancel_hook` - # for why raising from an evaluator or an `add_callback` doesn't work. + # optimizer for any of them (Nelder-Mead, U-NSGA-III, ...): see + # `cadetgui.parameter_estimation._install_cancel_hook` for why raising + # from an evaluator or an `add_callback` doesn't work. self._cancel_event = threading.Event() self._base_process_picker = ChoiceField( @@ -86,9 +92,26 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self._dataset_picker = ChoiceField(label="Experimental dataset:", options=[]) self._component_picker = ChoiceField(label="Signal represents:", options=[]) self._signal_picker = ChoiceField(label="Signal:", options=[]) - # Matches CADET-Process's own NelderMead default (scipyAdapter.py) -- - # 50 was too low even for a single fitted parameter, let alone several. - self._maxiter_field = W.IntText(value=1000, description="Max iterations:") + self._optimizer_picker = ChoiceField( + label="Optimizer:", options=[(name, name) for name in OPTIMIZERS] + ) + # One knob box per OPTIMIZERS entry, built generically from its + # `knobs` tuple -- adding another optimizer to the registry needs no + # change here, its fields just show up automatically. Only the + # selected optimizer's box is visible at a time (`_on_optimizer_change`), + # same show/hide pattern as the calibration-method fields below. + # Matches CADET-Process's own NelderMead default (`maxiter=1000`, + # `scipyAdapter.py`) -- 50 was too low even for a single fitted + # parameter, let alone several; `0` for a U-NSGA-III knob means "let + # CADET-Process size it automatically" (see `OPTIMIZERS`'s docstring). + self._knob_fields: dict[str, list[W.IntText]] = { + name: [W.IntText(value=knob.default, description=knob.label) for knob in spec.knobs] + for name, spec in OPTIMIZERS.items() + } + self._knob_boxes: dict[str, W.HBox] = { + name: W.HBox(fields, layout=W.Layout(display="none", flex_flow="row wrap")) + for name, fields in self._knob_fields.items() + } self._calibration_picker = ChoiceField( label="Calibration:", options=[ @@ -109,6 +132,20 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: ) self._param_add_picker = ChoiceField(label="Add parameter:", options=[]) self._btn_add_param = W.Button(description="Add", icon="plus") + # Fixed column widths -- every row (and the header) uses the exact + # same ones, so start/lb/ub actually line up regardless of how long + # a given parameter's own label is. Previously each row was a plain + # HBox sized to its own content, so longer parameter names pushed + # that row's fields out of line with every other row's. + self._param_header = W.HBox( + [ + W.HTML("Parameter", layout=W.Layout(width=self._PARAM_NAME_WIDTH)), + W.HTML("Start", layout=W.Layout(width=self._PARAM_FIELD_WIDTH)), + W.HTML("Lower bound", layout=W.Layout(width=self._PARAM_FIELD_WIDTH)), + W.HTML("Upper bound", layout=W.Layout(width=self._PARAM_FIELD_WIDTH)), + W.HTML("", layout=W.Layout(width=self._PARAM_REMOVE_WIDTH)), + ] + ) self._param_box = W.VBox([]) self._btn_run = W.Button(description="Run estimation", icon="magic", button_style="success") self._btn_cancel = W.Button( @@ -147,6 +184,19 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self._plot_out = W.Image( format="png", layout=W.Layout(width="400px", display="none") ) + # Post-run analytics, from CADET-Process's own OptimizationResults -- + # not something we compute ourselves. `plot_convergence` (best/avg + # objective vs. evaluations) always makes sense; `plot_pairwise` + # (histograms + scatter of the fitted variables across the final + # population) only if more than one parameter was fitted, same guard + # CADET-Process's own `results.plot_figures()` uses. + self._analytics_error = W.HTML(value="") + self._convergence_out = W.Image( + format="png", layout=W.Layout(width="400px", display="none") + ) + self._pairwise_out = W.Image( + format="png", layout=W.Layout(width="500px", display="none") + ) self.status = W.HTML("Ready.") self.status.add_class("cadetgui-status") @@ -158,6 +208,7 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self._btn_preview.on_click(self._on_preview) self._base_process_picker.observe(self._on_base_process_change, names="selected_index") self._signal_picker.observe(self._on_signal_change, names="selected_index") + self._optimizer_picker.observe(self._on_optimizer_change, names="selected_index") self._calibration_picker.observe(self._on_calibration_change, names="selected_index") self._dataset_picker.observe(self._on_reference_input_change, names="selected_index") self._component_picker.observe(self._on_reference_input_change, names="selected_index") @@ -172,14 +223,14 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: ) base_process_row.add_class("cadetgui-toolbar") - toolbar = W.HBox( - [ - self._dataset_picker, self._component_picker, - self._signal_picker, self._maxiter_field, self._live_plot_checkbox, - ], + # "Signal represents" and calibration are both about *interpreting + # the imported measurement* -- they belong with the data import, not + # mixed in among run controls (maxiter, live plot, ...). + dataset_row = W.HBox( + [self._dataset_picker, self._component_picker], layout=W.Layout(flex_flow="row wrap"), ) - toolbar.add_class("cadetgui-toolbar") + dataset_row.add_class("cadetgui-toolbar") calibration_row = W.HBox( [self._calibration_picker, self._beer_lambert_box, self._normalize_area_box], @@ -187,37 +238,78 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: ) calibration_row.add_class("cadetgui-toolbar") + data_section = W.VBox( + [ + W.HTML("
Experimental data
"), + self.data.root, + dataset_row, + calibration_row, + ] + ) + data_section.add_class("cadetgui-panel") + data_section.add_class("cadetgui-section") + add_param_row = W.HBox( [self._param_add_picker, self._btn_add_param], layout=W.Layout(flex_flow="row wrap"), ) add_param_row.add_class("cadetgui-toolbar") - fit_section = W.VBox( + param_space_section = W.VBox( [ - W.HTML("
Fit parameters
"), - base_process_row, - toolbar, - calibration_row, + W.HTML("
Configure parameter space
"), add_param_row, + self._param_header, self._param_box, + ] + ) + param_space_section.add_class("cadetgui-panel") + param_space_section.add_class("cadetgui-section") + + # Default-selected optimizer's knob box starts visible; the rest stay + # hidden until picked -- same as the calibration-method fields. + self._knob_boxes[self._optimizer_picker.value].layout.display = "" + + run_toolbar = W.HBox( + [self._signal_picker, self._live_plot_checkbox], + layout=W.Layout(flex_flow="row wrap"), + ) + run_toolbar.add_class("cadetgui-toolbar") + + optimizer_row = W.HBox( + [self._optimizer_picker, *self._knob_boxes.values()], + layout=W.Layout(flex_flow="row wrap"), + ) + optimizer_row.add_class("cadetgui-toolbar") + + run_section = W.VBox( + [ + W.HTML("
Run estimation
"), + base_process_row, + run_toolbar, + optimizer_row, W.HBox([self._btn_run, self._btn_cancel, self._btn_accept, self._elapsed_label]), self._live_plot_error, self._live_plot_out, self._fit_table, self._plot_out, + W.HTML("
Convergence & correlation
"), + self._analytics_error, + self._convergence_out, + self._pairwise_out, self.status, ] ) - fit_section.add_class("cadetgui-panel") - fit_section.add_class("cadetgui-section") + run_section.add_class("cadetgui-panel") + run_section.add_class("cadetgui-section") self.root = W.VBox( [ W.HTML(style_tag()), W.HTML("
Parameter estimation
"), - self.data.root, - fit_section, + data_section, + param_space_section, + run_section, ] ) self.root.add_class("cadetgui-panel") @@ -246,6 +338,13 @@ def _on_base_process_change(self, change: dict) -> None: self._config_widget.import_from_store(hash_) self._on_preview(None) + def _on_optimizer_change(self, change: dict) -> None: + if change.get("name") != "selected_index": + return + selected = self._optimizer_picker.value + for name, box in self._knob_boxes.items(): + box.layout.display = "" if name == selected else "none" + def _on_calibration_change(self, change: dict) -> None: if change.get("name") != "selected_index": return @@ -443,9 +542,18 @@ def _refresh_add_picker_options(self) -> None: self._param_add_picker.set_options(options) def _refresh_added_rows(self) -> None: - """Rebuild the fit-parameter rows from `_added_keys` + `_param_state`.""" + """Rebuild the fit-parameter rows from `_added_keys` + `_param_state`. + + Every row (and `_param_header`, built once in `__init__`) uses the + exact same fixed column widths, so start/lb/ub actually line up + regardless of how long any one parameter's own label is -- unlike a + plain HBox sized to its own content, which put each row's fields at + a different x position depending on that row's label length. + """ by_key = self._params_by_key() - width = W.Layout(width="100px") + name_layout = W.Layout(width=self._PARAM_NAME_WIDTH, overflow="hidden") + field_layout = W.Layout(width=self._PARAM_FIELD_WIDTH) + remove_layout = W.Layout(width=self._PARAM_REMOVE_WIDTH) self._lb_fields = [] self._ub_fields = [] self._start_fields = [] @@ -458,23 +566,17 @@ def _refresh_added_rows(self) -> None: state = self._param_state.setdefault( key, {"lb": p.lb, "ub": p.ub, "start": p.current_value} ) - lb_field = W.FloatText(value=state["lb"], layout=width) - ub_field = W.FloatText(value=state["ub"], layout=width) - start_field = W.FloatText(value=state["start"], layout=width) - remove_btn = W.Button(icon="times", layout=W.Layout(width="32px")) + lb_field = W.FloatText(value=state["lb"], layout=field_layout) + ub_field = W.FloatText(value=state["ub"], layout=field_layout) + start_field = W.FloatText(value=state["start"], layout=field_layout) + remove_btn = W.Button(icon="times", layout=remove_layout) remove_btn.on_click(self._make_remove_handler(key)) self._lb_fields.append(lb_field) self._ub_fields.append(ub_field) self._start_fields.append(start_field) self._remove_buttons.append(remove_btn) - rows.append( - W.HBox([ - W.Label(f"{p.label} = {p.current_value:.4g}"), - W.Label("start:"), start_field, - W.Label("lb:"), lb_field, W.Label("ub:"), ub_field, - remove_btn, - ]) - ) + name_label = W.Label(f"{p.label} = {p.current_value:.4g}", layout=name_layout) + rows.append(W.HBox([name_label, start_field, lb_field, ub_field, remove_btn])) self._param_box.children = tuple(rows) def _on_add_param(self, _btn: Any) -> None: @@ -531,6 +633,11 @@ def _on_run(self, _btn: Any) -> None: self._live_plot_out.value = b"" self._live_plot_out.layout.display = "none" self._live_plot_error.value = "" + self._convergence_out.value = b"" + self._convergence_out.layout.display = "none" + self._pairwise_out.value = b"" + self._pairwise_out.layout.display = "none" + self._analytics_error.value = "" self._btn_accept.layout.display = "none" self._last_result = None self._elapsed_label.value = "" @@ -555,6 +662,14 @@ def _on_run(self, _btn: Any) -> None: process = self._config_widget.process column = self._config_widget._column_form.built + optimizer_name = self._optimizer_picker.value + optimizer_kwargs = { + knob.attr: field.value + for knob, field in zip( + OPTIMIZERS[optimizer_name].knobs, self._knob_fields[optimizer_name] + ) + } + self._btn_run.disabled = True self._btn_run.description = "Running..." self._btn_cancel.layout.display = "" @@ -575,7 +690,10 @@ def _on_run(self, _btn: Any) -> None: # `_run_done`, which the ticker's own loop is waiting on. worker = threading.Thread( target=self._run_estimation_worker, - args=(process, column, params, selected, reference, unit, port, starts), + args=( + process, column, params, selected, reference, unit, port, starts, + optimizer_name, optimizer_kwargs, + ), daemon=True, ) ticker = threading.Thread( @@ -589,12 +707,12 @@ def _on_run(self, _btn: Any) -> None: def _run_estimation_worker( self, process: Any, column: Any, params: list[FittableParameter], selected: list[int], reference: Any, unit: str, port: str, - starts: list[float], + starts: list[float], optimizer_name: str, optimizer_kwargs: dict[str, int], ) -> None: try: result = run_estimation( - process, column, params, selected, reference, - f"{unit}.{port}", self._maxiter_field.value, + process, column, params, selected, reference, f"{unit}.{port}", + optimizer_name=optimizer_name, optimizer_kwargs=optimizer_kwargs, starts=starts, component_name=self._component_picker.value, on_optimizer_ready=lambda opt: self._progress.update(optimizer=opt), cancel_event=self._cancel_event, @@ -688,7 +806,15 @@ def _redraw_live_plot( def _on_cancel(self, _btn: Any) -> None: self._cancel_event.set() self._btn_cancel.disabled = True - self._btn_cancel.description = "Cancelling…" + optimizer_name = self._optimizer_picker.value + if OPTIMIZERS[optimizer_name].is_population_based: + # Population-based optimizers evaluate their whole population + # before the per-generation cancel check is next reached (see + # `_install_cancel_hook`'s docstring) -- set the right + # expectation instead of looking stuck. + self._btn_cancel.description = "Cancelling… (finishing generation)" + else: + self._btn_cancel.description = "Cancelling…" def _finish_run(self, result: EstimationResult, start_time: float) -> None: self._btn_run.disabled = False @@ -699,6 +825,10 @@ def _finish_run(self, result: EstimationResult, start_time: float) -> None: self._elapsed_label.value = "" elapsed = time.monotonic() - start_time + optimizer = self._progress.get("optimizer") + if optimizer is not None: + self._render_analytics(optimizer) + if result.cancelled: self.status.value = f"{result.message} ({elapsed:.0f}s)" return @@ -718,6 +848,41 @@ def _finish_run(self, result: EstimationResult, start_time: float) -> None: self._redraw_overlay() self._btn_accept.layout.display = "" + def _render_analytics(self, optimizer: Any) -> None: + """Show CADET-Process's own post-run analytics from `optimizer.results`. + + Not something computed here -- `OptimizationResults.plot_convergence`/ + `.plot_pairwise` (confirmed, not assumed: neither correlation, + confidence, nor uncertainty output exists anywhere else in + CADET-Process's optimization module, so these two are genuinely what + there is to surface). Best-effort: a failure here must be visible, + not swallowed -- same rule as `_redraw_live_plot`'s fix earlier. + """ + try: + results = optimizer.results + if len(results.populations) == 0: + return # nothing ran yet (e.g. cancelled before generation 1) + + fig1 = self._new_figure(figsize=self._FIGSIZE) + ax1 = fig1.subplots(nrows=1, ncols=1, squeeze=False).reshape(-1) + results.plot_convergence(ax=ax1) + self._display_figure(self._convergence_out, fig1) + + # Mirrors CADET-Process's own `results.plot_figures()` guard -- + # a single variable's pairwise grid is a degenerate 1x1 plot. + n_var = len(results.x[0]) + if n_var > 1: + width, _ = self._FIGSIZE + fig2 = self._new_figure(figsize=(width * n_var * 0.8, width * n_var * 0.8)) + ax2 = fig2.subplots(nrows=n_var, ncols=n_var, squeeze=False) + results.plot_pairwise(ax=ax2) + self._display_figure(self._pairwise_out, fig2) + self._analytics_error.value = "" + except Exception as exc: # noqa: BLE001 -- best-effort, but visibly + self._analytics_error.value = ( + f"Analytics error: {exc}" + ) + def _render_fit_table(self, result: EstimationResult) -> None: rows = "".join( f"{self._params[idx].label}" diff --git a/examples/configuration_and_solution.ipynb b/examples/configuration_and_solution.ipynb index de3ab48..e4fbe2f 100644 --- a/examples/configuration_and_solution.ipynb +++ b/examples/configuration_and_solution.ipynb @@ -53,7 +53,7 @@ "cell_type": "markdown", "id": "4ca74111", "metadata": {}, - "source": "## 3. Import experimental data and compare\n\n`ParameterEstimationWidget.bind_to_config(config)` tracks `config`'s built process for fitting. It nests a `DataImportWidget` (`.data`, CSV upload, first two columns read as time/signal) as its experimental-data source. This tab owns the comparison view — the Solution tab above only ever shows the raw simulation, never an overlay.\n\n1. Click **Preview** to simulate the current configuration once and populate the **Signal** dropdown (defaults to the process outlet — \"Sink\" — since that's what's usually fit against).\n2. Upload one of the three example datasets in `examples/data/`, or your own CSV.\n3. Check one or more parameters in the checklist, adjust each one's **Start** value if the config's current value isn't a good starting guess (it's a genuinely separate, editable field — not implied by the configuration), and click **Run estimation**.\n\nSee **`examples/EXAMPLE_DATA.md`** for exactly what configuration each example file was generated from (so you know the \"correct\" answer before fitting) and what to check in the parameter checklist for each:\n\n- `example_uv_signal.csv` — a synthetic UV280 trace requiring a **Calibration** step (Beer-Lambert) before it overlays the simulated curve.\n- `example_raw_signal.csv` — the simplest fitting exercise: one parameter (`total_porosity`), no calibration needed.\n- `example_binding_signal.csv` — a bind-and-elute scenario: 3-4 parameters (porosity, binding rates, optionally axial dispersion), no calibration needed." + "source": "## 3. Import experimental data and compare\n\n`ParameterEstimationWidget.bind_to_config(config)` tracks `config`'s built process for fitting. It nests a `DataImportWidget` (`.data`, CSV upload, first two columns read as time/signal) as its experimental-data source. This tab owns the comparison view — the Solution tab above only ever shows the raw simulation, never an overlay. It has three sections:\n\n- **Experimental data** — upload a CSV, pick which dataset, say what the signal represents (a specific simulated component, or the total of all of them), and calibrate it if needed (e.g. Beer-Lambert for a raw UV trace).\n- **Configure parameter space** — pick parameters to fit from the \"Add parameter\" dropdown; each added row gets its own Start/lower/upper-bound fields (aligned into columns, with a \"✕\" to remove a row).\n- **Run estimation** — pick a base process, click **Preview** to populate the **Signal** dropdown (defaults to the process outlet — \"Sink\" — since that's what's usually fit against), then **Run estimation**. An optional **Live plot** checkbox shows the fit converging in real time; **Cancel** stops a running fit early.\n\nWorkflow:\n\n1. Click **Preview**.\n2. Upload one of the three example datasets in `examples/data/`, or your own CSV, and set \"Signal represents\"/Calibration as needed.\n3. Add one or more parameters in \"Configure parameter space,\" adjust each one's **Start** value if the config's current value isn't a good starting guess (it's a genuinely separate, editable field — not implied by the configuration), and click **Run estimation**.\n\nSee **`examples/EXAMPLE_DATA.md`** for exactly what configuration each example file was generated from (so you know the \"correct\" answer before fitting) and which parameters to add for each:\n\n- `example_uv_signal.csv` — a synthetic UV280 trace requiring a **Calibration** step (Beer-Lambert) before it overlays the simulated curve.\n- `example_raw_signal.csv` — the simplest fitting exercise: one parameter (`total_porosity`), no calibration needed.\n- `example_binding_signal.csv` — a bind-and-elute scenario: 3-4 parameters (porosity, binding rates, optionally axial dispersion), no calibration needed." }, { "cell_type": "code", diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py index 976416b..78c7d90 100644 --- a/tests/test_parameter_estimation.py +++ b/tests/test_parameter_estimation.py @@ -62,7 +62,12 @@ def test_parameter_estimation_widget_nests_a_data_import_widget(): pw = ParameterEstimationWidget() assert isinstance(pw.data, DataImportWidget) - assert pw.data.root in pw.root.children + # Nested one level deep, inside the "Experimental data" section -- not a + # direct child of `pw.root` itself. + nested_children = [ + child for section in pw.root.children for child in getattr(section, "children", ()) + ] + assert pw.data.root in nested_children def test_parameter_estimation_widget_accepts_a_prebuilt_data_widget(): @@ -284,6 +289,11 @@ def _uploaded_measurement_from(result, unit: str, port: str) -> str: return "\n".join(lines) +def _set_maxiter(pw: ParameterEstimationWidget, value: int) -> None: + """Set Nelder-Mead's one knob field ("Max iterations") -- keeps tests fast.""" + pw._knob_fields["Nelder-Mead"][0].value = value + + def _ready_to_run(cw, pw): pw._on_preview(None) unit, port = pw._signal_picker.value @@ -291,7 +301,7 @@ def _ready_to_run(cw, pw): pw._dataset_picker.selected_index = 0 pw._signal_picker.value = (unit, port) _add_param(pw, 0) - pw._maxiter_field.value = 20 + _set_maxiter(pw, 20) def test_run_estimation_without_a_dataset_shows_a_guard_error(): @@ -489,7 +499,7 @@ def test_run_estimation_with_a_specific_component_selected_succeeds(): pw._signal_picker.value = (unit, port) pw._component_picker.value = "Component 2" _add_param(pw, 0) - pw._maxiter_field.value = 15 + _set_maxiter(pw, 15) pw._on_run(None) @@ -651,3 +661,127 @@ def test_finish_run_shows_a_plain_message_for_a_cancelled_result_not_an_error(): assert "cancelled" in pw.status.value.lower() assert "#b00020" not in pw.status.value # not styled as an error assert pw._btn_cancel.layout.display == "none" + + +def test_optimizer_picker_defaults_to_nelder_mead_and_switching_swaps_knob_boxes(): + pw = ParameterEstimationWidget() + + assert pw._optimizer_picker.value == "Nelder-Mead" + assert pw._knob_boxes["Nelder-Mead"].layout.display == "" + assert pw._knob_boxes["U-NSGA-III"].layout.display == "none" + + pw._optimizer_picker.value = "U-NSGA-III" + + assert pw._knob_boxes["Nelder-Mead"].layout.display == "none" + assert pw._knob_boxes["U-NSGA-III"].layout.display == "" + + +def test_on_run_passes_the_selected_optimizer_and_its_knob_values(monkeypatch): + import cadetgui.widgets.composite.parameter_estimation as pe_widget + + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + pw._optimizer_picker.value = "U-NSGA-III" + pop_size_field, n_max_gen_field = pw._knob_fields["U-NSGA-III"] + pop_size_field.value = 24 + n_max_gen_field.value = 7 + captured = {} + + def _fake_run_estimation(*args, **kwargs): + captured.update(kwargs) + return EstimationResult({}, None, False, "stopped for the test") + + monkeypatch.setattr(pe_widget, "run_estimation", _fake_run_estimation) + + pw._on_run(None) + + assert captured["optimizer_name"] == "U-NSGA-III" + assert captured["optimizer_kwargs"] == {"pop_size": 24, "n_max_gen": 7} + + +def test_cancel_description_mentions_generation_for_a_population_based_optimizer(): + _, pw = _bound_widgets() + + pw._optimizer_picker.value = "U-NSGA-III" + pw._on_cancel(None) + assert "generation" in pw._btn_cancel.description.lower() + + pw._btn_cancel.disabled = False + pw._optimizer_picker.value = "Nelder-Mead" + pw._on_cancel(None) + assert "generation" not in pw._btn_cancel.description.lower() + + +class _FakeAnalyticsResults: + def __init__(self, n_gen: int, n_var: int): + self.populations = [None] * n_gen + self._n_var = n_var + + def plot_convergence(self, ax): + ax[0].plot([1, 2, 3]) + + def plot_pairwise(self, ax): + pass + + @property + def x(self): + return [[0.0] * self._n_var] + + +def test_render_analytics_shows_convergence_and_hides_pairwise_for_one_parameter(): + _, pw = _bound_widgets() + optimizer = type("Opt", (), {"results": _FakeAnalyticsResults(3, 1)})() + + pw._render_analytics(optimizer) + + assert pw._convergence_out.layout.display == "" + assert pw._convergence_out.value + assert pw._pairwise_out.layout.display == "none" # 1 variable -- degenerate, skipped + assert pw._analytics_error.value == "" + + +def test_render_analytics_shows_pairwise_for_two_parameters(): + _, pw = _bound_widgets() + optimizer = type("Opt", (), {"results": _FakeAnalyticsResults(3, 2)})() + + pw._render_analytics(optimizer) + + assert pw._pairwise_out.layout.display == "" + assert pw._pairwise_out.value + + +def test_render_analytics_skips_silently_before_the_first_generation(): + _, pw = _bound_widgets() + optimizer = type("Opt", (), {"results": _FakeAnalyticsResults(0, 1)})() + + pw._render_analytics(optimizer) + + assert pw._convergence_out.layout.display == "none" + assert pw._convergence_out.value == b"" + + +def test_render_analytics_surfaces_errors_instead_of_staying_silent(): + _, pw = _bound_widgets() + + class _BoomResults(_FakeAnalyticsResults): + def plot_convergence(self, ax): + raise RuntimeError("synthetic analytics failure") + + optimizer = type("Opt", (), {"results": _BoomResults(2, 1)})() + + pw._render_analytics(optimizer) + + assert "synthetic analytics failure" in pw._analytics_error.value + + +@pytest.mark.slow +def test_finish_run_renders_analytics_after_a_real_run(): + cw, pw = _bound_widgets() + _ready_to_run(cw, pw) + + pw._on_run(None) + + assert pw._last_result is not None + assert pw._last_result.success + assert pw._convergence_out.layout.display == "" + assert pw._convergence_out.value diff --git a/tests/test_parameter_estimation_adapter.py b/tests/test_parameter_estimation_adapter.py index 42322ba..dad408a 100644 --- a/tests/test_parameter_estimation_adapter.py +++ b/tests/test_parameter_estimation_adapter.py @@ -134,7 +134,8 @@ def test_run_estimation_with_no_selection_does_not_run(): # `reference` is never touched when nothing is selected -- None is fine here. result = run_estimation( - process, column, params, [], None, "outlet.inlet", maxiter=5, starts=[] + process, column, params, [], None, "outlet.inlet", + optimizer_name="Nelder-Mead", optimizer_kwargs={"maxiter": 5}, starts=[], ) assert result.success is False @@ -161,12 +162,18 @@ def optimize(self, problem, x0, **kwargs): captured["x0"] = x0 raise RuntimeError("stop before an actual solve") - monkeypatch.setattr(pe, "NelderMead", _FakeOptimizer) + # `OPTIMIZERS["Nelder-Mead"].factory` already captured the real class by + # the time this test runs -- patching the module-level `pe.NelderMead` + # name wouldn't affect it, the registry entry itself must be replaced. + monkeypatch.setitem( + pe.OPTIMIZERS, "Nelder-Mead", + pe.OptimizerSpec(factory=_FakeOptimizer, knobs=(), is_population_based=False), + ) starts = [0.42] run_estimation( process, column, params, [porosity_idx], reference, "outlet.inlet", - maxiter=5, starts=starts, + optimizer_name="Nelder-Mead", optimizer_kwargs={"maxiter": 5}, starts=starts, ) assert captured["x0"] == starts @@ -193,11 +200,15 @@ def optimize(self, problem, x0, **kwargs): assert seen.get("optimizer") is self raise RuntimeError("stop before an actual solve") - monkeypatch.setattr(pe, "NelderMead", _FakeOptimizer) + monkeypatch.setitem( + pe.OPTIMIZERS, "Nelder-Mead", + pe.OptimizerSpec(factory=_FakeOptimizer, knobs=(), is_population_based=False), + ) run_estimation( process, column, params, [porosity_idx], reference, "outlet.inlet", - maxiter=5, starts=[0.5], on_optimizer_ready=lambda opt: seen.update(optimizer=opt), + optimizer_name="Nelder-Mead", optimizer_kwargs={"maxiter": 5}, starts=[0.5], + on_optimizer_ready=lambda opt: seen.update(optimizer=opt), ) assert isinstance(seen["optimizer"], _FakeOptimizer) @@ -247,7 +258,42 @@ def test_run_estimation_recovers_a_perturbed_parameter_without_touching_the_orig porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") result = run_estimation( - process, column, params, [porosity_idx], reference, "outlet.inlet", maxiter=30, + process, column, params, [porosity_idx], reference, "outlet.inlet", + optimizer_name="Nelder-Mead", optimizer_kwargs={"maxiter": 30}, + starts=[original_porosity], + ) + + assert result.success + assert np.isclose(result.fitted[porosity_idx], original_porosity, atol=0.05) + assert result.fitted_process is not process + assert column.total_porosity == original_porosity # the live object is untouched + + +@pytest.mark.slow +def test_run_estimation_recovers_a_parameter_with_u_nsga_iii(): + # Same recovery exercise as the Nelder-Mead version above, but through + # the population-based optimizer -- confirms run_estimation is genuinely + # optimizer-agnostic (same OptimizationProblem/variable registration/ + # optimize() call, only the OPTIMIZERS[...] factory differs) rather than + # something that happens to work for Nelder-Mead specifically. + cw = built_widget() + process, column = cw.process, cw._column_form.built + original_porosity = column.total_porosity + + baseline = run_process(process) + sol = baseline.solution.outlet.inlet + total = sol.solution.sum(axis=1) + reference = build_reference("measured", sol.time / 60.0, total) + + params = list_fittable_parameters( + "column", cw._column_form.spec.fields, cw._column_form.collect_values() + ) + porosity_idx = next(i for i, p in enumerate(params) if p.name == "total_porosity") + + result = run_estimation( + process, column, params, [porosity_idx], reference, "outlet.inlet", + optimizer_name="U-NSGA-III", + optimizer_kwargs={"pop_size": 16, "n_max_gen": 30}, starts=[original_porosity], ) @@ -279,7 +325,8 @@ def test_run_estimation_with_a_component_name_ignores_other_components(): result = run_estimation( process, column, params, [porosity_idx], reference, "outlet.inlet", - maxiter=30, starts=[original_porosity], component_name="Component 2", + optimizer_name="Nelder-Mead", optimizer_kwargs={"maxiter": 30}, + starts=[original_porosity], component_name="Component 2", ) assert result.success @@ -287,12 +334,28 @@ def test_run_estimation_with_a_component_name_ignores_other_components(): @pytest.mark.slow -def test_run_estimation_stops_early_when_cancelled(): +@pytest.mark.parametrize( + "optimizer_name,optimizer_kwargs,max_elapsed", + [ + # Nelder-Mead evaluates one candidate per iteration, so cancel fires + # within roughly one simulation. + ("Nelder-Mead", {"maxiter": 500}, 15), + # U-NSGA-III evaluates its whole population before the per-generation + # cancel check is next reached (confirmed: PymooInterface._run calls + # `algorithm.evaluator.eval(problem, pop)` for the entire population + # before `run_post_processing`) -- a small pop_size keeps this test + # fast while still exercising that real latency, not just Nelder-Mead's. + ("U-NSGA-III", {"pop_size": 8, "n_max_gen": 200}, 30), + ], +) +def test_run_estimation_stops_early_when_cancelled(optimizer_name, optimizer_kwargs, max_elapsed): # Real optimize() call, real cancellation, no mocking -- confirms the - # cancel hook actually aborts scipy's Nelder-Mead loop rather than just - # being ignored (verified live: raising from inside an evaluator or an - # OptimizationProblem.add_callback() callback does *not* abort it -- - # CADET-Process's evaluation pipeline swallows those by design). + # solver-agnostic cancel hook (patches `run_post_processing`, shared by + # every OptimizerBase subclass) actually aborts the run for *both* + # optimizer families, not just Nelder-Mead specifically. Raising from + # inside an evaluator or an OptimizationProblem.add_callback() callback + # does *not* abort either one -- CADET-Process's evaluation pipeline + # swallows those by design, confirmed separately. cw = built_widget() process, column = cw.process, cw._column_form.built @@ -317,7 +380,7 @@ def _cancel_soon() -> None: start_time = time.monotonic() result = run_estimation( process, column, params, [porosity_idx], reference, "outlet.inlet", - maxiter=500, # would run far longer than the cancel delay if not stopped + optimizer_name=optimizer_name, optimizer_kwargs=optimizer_kwargs, starts=[0.3], # deliberately far from the optimum, needs many iterations cancel_event=cancel_event, ) @@ -326,5 +389,5 @@ def _cancel_soon() -> None: assert result.cancelled assert not result.success assert "cancelled" in result.message.lower() - assert elapsed < 15 # stopped promptly, not after running the full 500 iterations + assert elapsed < max_elapsed # stopped promptly, not after the full run assert column.total_porosity == 0.72 # the live object is still untouched From 5d276da353200efe0e539d50a287d3d0aabcaa44 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 15 Sep 2026 16:53:32 +0200 Subject: [PATCH 067/158] Refactor, Naming conventions --- cadetgui/widgets/_mpl_figure.py | 47 +++ cadetgui/widgets/_settings_popover.py | 48 +++ cadetgui/widgets/composite/configuration.py | 316 ++++-------------- .../composite/configuration_persistence.py | 194 +++++++++++ .../widgets/composite/parameter_estimation.py | 271 +++------------ cadetgui/widgets/composite/parameter_space.py | 167 +++++++++ tests/test_configuration.py | 114 +++---- tests/test_parameter_estimation.py | 74 ++-- tests/test_solution.py | 12 +- tests/test_workbench.py | 2 +- 10 files changed, 675 insertions(+), 570 deletions(-) create mode 100644 cadetgui/widgets/_mpl_figure.py create mode 100644 cadetgui/widgets/_settings_popover.py create mode 100644 cadetgui/widgets/composite/configuration_persistence.py create mode 100644 cadetgui/widgets/composite/parameter_space.py diff --git a/cadetgui/widgets/_mpl_figure.py b/cadetgui/widgets/_mpl_figure.py new file mode 100644 index 0000000..cb2d21d --- /dev/null +++ b/cadetgui/widgets/_mpl_figure.py @@ -0,0 +1,47 @@ +from __future__ import annotations + +import io +from typing import Any + +import ipywidgets as W + +__all__ = ["new_figure", "display_figure"] + + +def new_figure(**kwargs: Any) -> Any: + """Build a matplotlib Figure with its own Agg canvas -- never touches `pyplot`. + + For rendering on a background thread: `pyplot`'s figure/backend state is + global and generally not thread-safe (confirmed: a plain `plt. + subplots()` call from a non-main thread crashes under an interactive + backend like TkAgg, e.g. `RuntimeError: main thread is not in main + loop`). Building the Figure directly and attaching `FigureCanvasAgg` + sidesteps `pyplot` (and therefore the active backend) entirely -- + works the same regardless of thread or ambient backend. Must always + be paired with passing the resulting Axes into anything that would + otherwise create its own figure (e.g. `solution.plot(ax=...)`, never + bare `solution.plot()` -- the latter calls `plt.subplots()` internally). + """ + from matplotlib.backends.backend_agg import FigureCanvasAgg + from matplotlib.figure import Figure + + fig = Figure(**kwargs) + FigureCanvasAgg(fig) + return fig + + +def display_figure(output: W.Image, fig: Any, *, dpi: int = 150) -> None: + """Render `fig` into `output.value` as PNG bytes and reveal `output`. + + A direct trait assignment, not `Output`'s capture-based `display()` -- + confirmed (real Jupyter kernel, not just a sandbox) that the latter does + not reliably route from a background thread, while a plain trait update + (like `Image.value`) does, from any thread. No CSS width/max-width should + be set on `output` by the caller -- displayed size is then exactly the + PNG's own pixel dimensions, so `dpi` controls both sharpness and how big + it actually appears. + """ + buf = io.BytesIO() + fig.savefig(buf, format="png", dpi=dpi, bbox_inches="tight") + output.value = buf.getvalue() + output.layout.display = "" diff --git a/cadetgui/widgets/_settings_popover.py b/cadetgui/widgets/_settings_popover.py new file mode 100644 index 0000000..80d2534 --- /dev/null +++ b/cadetgui/widgets/_settings_popover.py @@ -0,0 +1,48 @@ +from __future__ import annotations + +from typing import Any, List + +import ipywidgets as W + +__all__ = ["SettingsPopover", "toggle_box"] + + +def toggle_box(box: W.Widget) -> bool: + """Show/hide `box` (a `display: none` VBox); return whether it is now shown.""" + shown = box.layout.display == "none" + box.layout.display = "" if shown else "none" + return shown + + +class SettingsPopover: + """Gear-icon button that show/hides a settings box below a section header. + + Not a real floating popover, just a plain show/hide toggle -- matches + ARCHITECTURE.md's "no Modal element built yet" note. + """ + + def __init__(self, *, tooltip: str, children: List[Any], visible: bool = True) -> None: + self.button = W.Button( + icon="cog", tooltip=tooltip, + layout=W.Layout(width="36px", display="" if visible else "none"), + ) + self.box = W.VBox( + [W.HTML("
Settings
"), *children], + layout=W.Layout(display="none"), + ) + self.box.add_class("cadetgui-section") + self.box.add_class("cadetgui-settings-box") + self.button.on_click(self._on_click) + + def _on_click(self, _btn: Any) -> None: + toggle_box(self.box) + + @property + def visible(self) -> bool: + return self.button.layout.display != "none" + + @visible.setter + def visible(self, value: bool) -> None: + self.button.layout.display = "" if value else "none" + if not value: + self.box.layout.display = "none" diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index f9998d9..21da26d 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -18,22 +18,17 @@ lwe_spec, require_positive, ) -from ...configuration_store import ( - ConfigurationState, - compute_hash, - load_from_store, - load_h5, - save_to_store, -) +from ...configuration_store import ConfigurationState from .._chrome import style_tag +from .._settings_popover import SettingsPopover from ..elements import ( ChoiceField, ComponentListField, EventTimelineChart, FloatField, - TextField, ) from ..forms import FormRenderer +from .configuration_persistence import ConfigurationPersistence __all__ = ["ConfigurationWidget"] @@ -52,10 +47,7 @@ def _round_10sf(v: float) -> float: def _key_for_value(registry: Mapping[str, Any], value: Any) -> Optional[str]: """Reverse-lookup a registry's human label for one of its factory values.""" - for key, candidate in registry.items(): - if candidate == value: - return key - return None + return next((k for k, v in registry.items() if v == value), None) class ConfigurationWidget: @@ -86,15 +78,13 @@ def __init__( self._model_form: Optional[FormRenderer] = None self._event_sliders: Dict[str, W.FloatSlider] = {} self._cycle_time_minutes_element: Optional[FloatField] = None - self.config_name: str = _DEFAULT_CONFIG_NAME # Set around _apply_state()'s picker/component writes so each one's own # observer doesn't trigger its own full rebuild -- one rebuild for the # whole restored selection instead of one per field touched. self._suspend_rebuild = False - # None = use configuration_store.default_store_dir(); set via the - # "Storage folder" field below once the user picks one explicitly. - self._store_dir: Optional[Path] = None + # Column Model gear popover: "Show optional parameters" + one "Enable + # ... Multiplex" checkbox per multiplexable column parameter. self._multiplex_state: Dict[str, bool] = dict.fromkeys(MULTIPLEXABLE_COLUMN_PARAMS, False) self._multiplex_checkboxes: Dict[str, W.Checkbox] = { name: W.Checkbox( @@ -107,72 +97,42 @@ def __init__( for name, checkbox in self._multiplex_checkboxes.items(): checkbox.observe(self._make_on_multiplex_change(name), names="value") - self._show_optional_checkbox = W.Checkbox( + self._show_optional_column_checkbox = W.Checkbox( description="Show optional parameters", value=False, indent=False ) - self._show_optional_checkbox.observe(self._on_show_optional_change, names="value") + self._show_optional_column_checkbox.observe(self._on_show_optional_change, names="value") - self._btn_settings = W.Button( - icon="cog", tooltip="Column settings", - layout=W.Layout(width="36px"), + self._column_settings = SettingsPopover( + tooltip="Column settings", + children=[self._show_optional_column_checkbox, *self._multiplex_checkboxes.values()], ) - self._btn_settings.on_click(self._on_toggle_settings) - self._settings_box = W.VBox( - [ - W.HTML("
Settings
"), - self._show_optional_checkbox, - *self._multiplex_checkboxes.values(), - ], - layout=W.Layout(display="none"), - ) - self._settings_box.add_class("cadetgui-section") - self._settings_box.add_class("cadetgui-settings-box") + # Binding Model gear popover. self._show_optional_binding_checkbox = W.Checkbox( description="Show optional parameters", value=False, indent=False ) - self._show_optional_binding_checkbox.observe( - self._on_show_optional_binding_change, names="value" - ) - - self._btn_binding_settings = W.Button( - icon="cog", tooltip="Binding settings", - layout=W.Layout(width="36px"), + self._show_optional_binding_checkbox.observe(self._on_show_optional_change, names="value") + self._binding_settings = SettingsPopover( + tooltip="Binding settings", children=[self._show_optional_binding_checkbox] ) - self._btn_binding_settings.on_click(self._on_toggle_binding_settings) - self._binding_settings_box = W.VBox( - [ - W.HTML("
Settings
"), - self._show_optional_binding_checkbox, - ], - layout=W.Layout(display="none"), - ) - self._binding_settings_box.add_class("cadetgui-section") - self._binding_settings_box.add_class("cadetgui-settings-box") + # Process gear popover -- only shown for a template with a cycle_time + # field (see _rebuild_event_sliders). self._cycle_time_unit_checkbox = W.Checkbox( description="Show Cycle Time in Minutes", value=False, indent=False ) self._cycle_time_unit_checkbox.observe(self._on_cycle_time_unit_change, names="value") - - self._btn_process_settings = W.Button( - icon="cog", tooltip="Process display settings", - layout=W.Layout(width="36px", display="none"), + self._process_settings = SettingsPopover( + tooltip="Process display settings", + children=[self._cycle_time_unit_checkbox], + visible=False, ) - self._btn_process_settings.on_click(self._on_toggle_process_settings) - self._process_settings_box = W.VBox( - [ - W.HTML("
Settings
"), - self._cycle_time_unit_checkbox, - ], - layout=W.Layout(display="none"), - ) - self._process_settings_box.add_class("cadetgui-section") - self._process_settings_box.add_class("cadetgui-settings-box") + # "Components:" row editor in the Component System section. self._components = ComponentListField(label="Components:") self._component_note = W.HTML(layout=W.Layout(display="none")) self._component_note.add_class("cadetgui-note") + # The three dropdowns sitting above their own form, one per section. self._column_picker = ChoiceField( label="Column Model:", options=list(self._columns.items()), value=self._columns.get("Lumped Rate Model Without Pores (LRM)"), @@ -185,35 +145,32 @@ def __init__( label="Process Template:", options=list(self._registry.items()) ) + # Empty boxes filled in by _rebuild_forms() with each FormRenderer's + # rendered fields once a column/binding model/template is picked. self._column_form_box = W.VBox([]) self._binding_form_box = W.VBox([]) self._model_form_box = W.VBox([]) + # Right-hand column of the Process section: the interactive event/ + # flow-rate-over-time chart, redrawn on every slider move. self._event_plot_label = W.HTML("
Event Timeline
") self._event_chart = EventTimelineChart() + # Status line at the very bottom of the panel. self.status = W.HTML("Select a column and model.") self.status.add_class("cadetgui-status") + # "Export script" button + the generated-script textarea below it. self._btn_export = W.Button(description="Export script", icon="code") self._script_out = W.Textarea(layout=W.Layout(width="100%", height="220px", display="none")) self._script_out.add_class("cadetgui-script") - self._store_dir_field = TextField(label="Storage folder:", value="") - self._btn_set_store_dir = W.Button(description="Set folder", icon="folder-open") - self._store_dir_note = W.HTML( - "Leave blank to use the default (~/.cadetgui/configurations)." + # Renders as the "Save / Load Configuration" section at the top of the panel. + self.persistence = ConfigurationPersistence( + default_name=_DEFAULT_CONFIG_NAME, + snapshot=self._snapshot_state, + apply_state=self._apply_state, + get_process=lambda: self.process, + on_name_change=lambda _name: self._notify(), # e.g. the Simulation tab's process label ) - self._store_dir_note.add_class("cadetgui-note") - self._name_field = TextField(label="Configuration name:", value=_DEFAULT_CONFIG_NAME) - self._hash_display = W.HTML("No configuration built yet.") - self._btn_save = W.Button(description="Save", icon="save") - self._file_upload = W.FileUpload(description="Import file", accept=".h5", multiple=False) - self._import_hash_field = TextField(label="Import by hash:", value="") - self._btn_import_hash = W.Button(description="Import", icon="download") - self._btn_toggle_save_load_details = W.Button( - description="Show details", icon="chevron-down" - ) - self.save_status = W.HTML() - self.save_status.add_class("cadetgui-status") components_section = W.VBox( [ @@ -227,14 +184,14 @@ def __init__( column_header = W.HBox( [ W.HTML("
Column Model
"), - self._btn_settings, + self._column_settings.button, ], layout=W.Layout(justify_content="space-between", align_items="center"), ) column_section = W.VBox( [ column_header, - self._settings_box, + self._column_settings.box, self._column_picker, self._column_form_box, ] @@ -245,14 +202,14 @@ def __init__( binding_header = W.HBox( [ W.HTML("
Binding Model
"), - self._btn_binding_settings, + self._binding_settings.button, ], layout=W.Layout(justify_content="space-between", align_items="center"), ) binding_section = W.VBox( [ binding_header, - self._binding_settings_box, + self._binding_settings.box, self._binding_picker, self._binding_form_box, ] @@ -266,7 +223,7 @@ def __init__( process_header = W.HBox( [ W.HTML("
Process
"), - self._btn_process_settings, + self._process_settings.button, ], layout=W.Layout(justify_content="space-between", align_items="center"), ) @@ -283,41 +240,18 @@ def __init__( process_section = W.VBox( [ process_header, - self._process_settings_box, + self._process_settings.box, self._model_picker, process_columns, ] ) process_section.add_class("cadetgui-section") - self._save_load_details_box = W.VBox( - [ - self._hash_display, - W.HTML("
"), - W.HBox([self._store_dir_field, self._btn_set_store_dir]), - self._store_dir_note, - W.HTML("
"), - self._file_upload, - W.HBox([self._import_hash_field, self._btn_import_hash]), - ], - layout=W.Layout(display="none"), - ) - save_load_section = W.VBox( - [ - W.HTML("
Save / Load Configuration
"), - self._name_field, - W.HBox([self._btn_save, self._btn_toggle_save_load_details]), - self.save_status, - self._save_load_details_box, - ] - ) - save_load_section.add_class("cadetgui-section") - self.root = W.VBox( [ W.HTML(style_tag()), W.HTML("
Configuration
"), - save_load_section, + self.persistence.root, components_section, column_binding_row, process_section, @@ -333,12 +267,6 @@ def __init__( self._binding_picker.observe(self._on_selection_change, names="selected_index") self._model_picker.observe(self._on_model_selection_change, names="selected_index") self._btn_export.on_click(self._on_export) - self._name_field.observe(self._on_name_change, names="value") - self._btn_set_store_dir.on_click(self._on_set_store_dir) - self._btn_save.on_click(self._on_save) - self._file_upload.observe(self._on_file_upload_change, names="value") - self._btn_import_hash.on_click(self._on_import_hash_click) - self._btn_toggle_save_load_details.on_click(self._on_toggle_save_load_details) self._sync_component_minimum() if not self._maybe_autoadd_component(): @@ -426,25 +354,6 @@ def _maybe_autoadd_component(self) -> bool: return True return False - def _toggle_box(self, box: W.Widget) -> bool: - """Show/hide `box` (a `display: none` VBox); return whether it is now shown.""" - shown = box.layout.display == "none" - box.layout.display = "" if shown else "none" - return shown - - def _on_toggle_settings(self, _btn: Any) -> None: - self._toggle_box(self._settings_box) - - def _on_toggle_binding_settings(self, _btn: Any) -> None: - self._toggle_box(self._binding_settings_box) - - def _on_toggle_process_settings(self, _btn: Any) -> None: - self._toggle_box(self._process_settings_box) - - def _on_toggle_save_load_details(self, _btn: Any) -> None: - shown = self._toggle_box(self._save_load_details_box) - self._btn_toggle_save_load_details.description = "Hide details" if shown else "Show details" - def _make_on_multiplex_change(self, name: str) -> Callable[[dict], None]: def _on_change(change: dict) -> None: if change.get("name") != "value": @@ -459,14 +368,9 @@ def _on_show_optional_change(self, change: dict) -> None: return self._rebuild_forms() - def _on_show_optional_binding_change(self, change: dict) -> None: - if change.get("name") != "value": - return - self._rebuild_forms() - def _on_process_built(self, built: Any) -> None: self.process = built - self._refresh_hash_display() + self.persistence.refresh_hash_display() self._notify() self.status.value = "Process built." @@ -487,26 +391,40 @@ def _snapshot_state(self) -> ConfigurationState: binding_key=binding_key, template_key=template_key, multiplex_state=dict(self._multiplex_state), - show_optional_column=bool(self._show_optional_checkbox.value), + show_optional_column=bool(self._show_optional_column_checkbox.value), show_optional_binding=bool(self._show_optional_binding_checkbox.value), column_values=self._column_form.collect_values(), binding_values=self._binding_form.collect_values(), model_values=self._model_form.collect_values(), ) + @property + def config_name(self) -> str: + return self.persistence.config_name + + @config_name.setter + def config_name(self, value: str) -> None: + self.persistence.config_name = value + @property def config_hash(self) -> Optional[str]: """Content hash of the current configuration, or None if nothing is built yet.""" - try: - return compute_hash(self._snapshot_state()) - except RuntimeError: - return None + return self.persistence.config_hash - def _refresh_hash_display(self) -> None: - if self.config_hash is None: - self._hash_display.value = "No configuration built yet." - else: - self._hash_display.value = f"Hash: {self.config_hash}" + def name_error(self, action: str = "saving") -> Optional[str]: + """Error message if this configuration has no name yet for `action`, else None.""" + return self.persistence.name_error(action) + + def persist_to_store(self) -> Path: + """Snapshot and save the current configuration to the store. Returns its path. + + Raises RuntimeError if unnamed or nothing has been built yet. + """ + return self.persistence.persist_to_store() + + def import_from_store(self, hash_: str) -> None: + """Load a configuration previously saved to the local store, by its hash.""" + self.persistence.import_from_store(hash_) def _apply_state(self, name: str, state: ConfigurationState) -> None: """Reconstruct pickers/forms from a saved ConfigurationState.""" @@ -525,7 +443,7 @@ def _apply_state(self, name: str, state: ConfigurationState) -> None: checkbox = self._multiplex_checkboxes.get(param_name) if checkbox is not None: checkbox.value = enabled - self._show_optional_checkbox.value = state.show_optional_column + self._show_optional_column_checkbox.value = state.show_optional_column self._show_optional_binding_checkbox.value = state.show_optional_binding self._components.value = list(state.components) self._column_picker.value = column_factory @@ -539,19 +457,7 @@ def _apply_state(self, name: str, state: ConfigurationState) -> None: self._binding_form.set_values(state.binding_values) self._model_form.set_values(state.model_values) - self.config_name = name - self._name_field.value = name - self._refresh_hash_display() - - def import_from_store(self, hash_: str) -> None: - """Load a configuration previously saved to the local store, by its hash.""" - try: - name, state = load_from_store(hash_, store_dir=self._store_dir) - self._apply_state(name, state) - except Exception as exc: # noqa: BLE001 - self.save_status.value = f"{exc}" - return - self.save_status.value = f"Imported '{name}' ({hash_})." + self.persistence.set_name(name) def _rebuild_forms(self) -> None: if self._suspend_rebuild: @@ -564,7 +470,7 @@ def _rebuild_forms(self) -> None: self._binding_form_box.children = () self._model_form_box.children = () self._clear_event_section() - self._refresh_hash_display() + self.persistence.refresh_hash_display() return column_params = set(getattr(column, "required_parameters", None) or []) @@ -579,7 +485,7 @@ def _rebuild_forms(self) -> None: build_parameter_config_spec( column, multiplex=self._multiplex_state, - include_optional=self._show_optional_checkbox.value, + include_optional=self._show_optional_column_checkbox.value, ) ) self._column_form_box.children = (self._column_form.root,) @@ -603,7 +509,7 @@ def _attach_binding(built: Any, col: Any = column) -> None: # `self._model_form = ...` assignment has completed -- so that first # call sees a stale (pre-rebuild) _model_form and can't snapshot yet. # Refresh again now that all three forms are actually assigned. - self._refresh_hash_display() + self.persistence.refresh_hash_display() self.status.value = ( "Fields apply automatically as you edit them" @@ -631,9 +537,7 @@ def _rebuild_event_sliders(self) -> None: return has_cycle_time = any(f.name == "cycle_time" for f in self._model_form.spec.fields) - self._btn_process_settings.layout.display = "" if has_cycle_time else "none" - if not has_cycle_time: - self._process_settings_box.layout.display = "none" + self._process_settings.visible = has_cycle_time for f in self._model_form.spec.fields: if f.kind != "float": @@ -868,78 +772,6 @@ def _on_export(self, _btn: Any) -> None: self._script_out.layout.display = "" self.status.value = "Script generated below." - def _on_name_change(self, change: dict) -> None: - if change.get("name") != "value": - return - self.config_name = change["new"] - self._notify() # e.g. the Simulation tab's process label tracks this too - - def _on_set_store_dir(self, _btn: Any) -> None: - text = self._store_dir_field.value.strip() - if not text: - self._store_dir = None - self.save_status.value = "Using the default storage folder." - return - try: - path = Path(text).expanduser().resolve() - path.mkdir(parents=True, exist_ok=True) - except Exception as exc: # noqa: BLE001 - self.save_status.value = f"{exc}" - return - self._store_dir = path - self._store_dir_field.value = str(path) - self.save_status.value = f"Configurations will be saved to {path}." - - def name_error(self, action: str = "saving") -> Optional[str]: - """Error message if this configuration has no name yet for `action`, else None.""" - if self.config_name.strip(): - return None - return f"Give the configuration a name before {action}." - - def persist_to_store(self) -> Path: - """Snapshot and save the current configuration to the store. Returns its path. - - Raises RuntimeError if unnamed or nothing has been built yet. - """ - error = self.name_error() - if error: - raise RuntimeError(error) - state = self._snapshot_state() - return save_to_store( - state, self.config_name, process=self.process, store_dir=self._store_dir - ) - - def _on_save(self, _btn: Any) -> None: - try: - path = self.persist_to_store() - except Exception as exc: # noqa: BLE001 - self.save_status.value = f"{exc}" - return - self._refresh_hash_display() - self.save_status.value = f"Saved to {path}." - - def _on_file_upload_change(self, change: dict) -> None: - if change.get("name") != "value" or not self._file_upload.value: - return - item = self._file_upload.value[0] - try: - import tempfile - - with tempfile.TemporaryDirectory() as tmp_dir: - tmp_path = Path(tmp_dir) / item["name"] - tmp_path.write_bytes(bytes(item["content"])) - name, state = load_h5(tmp_path) - self._apply_state(name, state) - except Exception as exc: # noqa: BLE001 - self.save_status.value = f"{exc}" - return - finally: - self._file_upload.value = () - self.save_status.value = f"Imported '{name}' from {item['name']}." - - def _on_import_hash_click(self, _btn: Any) -> None: - self.import_from_store(self._import_hash_field.value.strip()) - def display(self) -> None: """Render this widget in a Jupyter cell.""" from IPython.display import display as _display diff --git a/cadetgui/widgets/composite/configuration_persistence.py b/cadetgui/widgets/composite/configuration_persistence.py new file mode 100644 index 0000000..aa357f8 --- /dev/null +++ b/cadetgui/widgets/composite/configuration_persistence.py @@ -0,0 +1,194 @@ +from __future__ import annotations + +from pathlib import Path +from typing import Any, Callable, Optional + +import ipywidgets as W + +from ...configuration_store import ConfigurationState, compute_hash, load_from_store, load_h5, save_to_store +from .._settings_popover import toggle_box +from ..elements import TextField + +__all__ = ["ConfigurationPersistence"] + + +class ConfigurationPersistence: + """Save/import-to-store panel for one `ConfigurationWidget`. + + Owns the name/hash/storage-folder UI and the actual save/import calls; + knows nothing about columns, binding models, or forms -- it reaches the + rest of the configuration only through the `snapshot`/`apply_state`/ + `get_process` callbacks handed in by its owner. + """ + + def __init__( + self, + *, + default_name: str, + snapshot: Callable[[], ConfigurationState], + apply_state: Callable[[str, ConfigurationState], None], + get_process: Callable[[], Any], + on_name_change: Callable[[str], None], + ) -> None: + self._snapshot = snapshot + self._apply_state = apply_state + self._get_process = get_process + self._on_name_change_cb = on_name_change + self.config_name: str = default_name + self.store_dir: Optional[Path] = None + + # Always-visible row: name field + Save/Show-details buttons. + self._name_field = TextField(label="Configuration name:", value=default_name) + self._btn_save = W.Button(description="Save", icon="save") + self._btn_toggle_save_load_details = W.Button( + description="Show details", icon="chevron-down" + ) + self.save_status = W.HTML() + self.save_status.add_class("cadetgui-status") + + # Collapsed by default under "Show details": hash + storage folder + import. + self._hash_display = W.HTML("No configuration built yet.") + self._store_dir_field = TextField(label="Storage folder:", value="") + self._btn_set_store_dir = W.Button(description="Set folder", icon="folder-open") + self._store_dir_note = W.HTML( + "Leave blank to use the default (~/.cadetgui/configurations)." + ) + self._store_dir_note.add_class("cadetgui-note") + self._file_upload = W.FileUpload(description="Import file", accept=".h5", multiple=False) + self._import_hash_field = TextField(label="Import by hash:", value="") + self._btn_import_hash = W.Button(description="Import", icon="download") + self._save_load_details_box = W.VBox( + [ + self._hash_display, + W.HTML("
"), + W.HBox([self._store_dir_field, self._btn_set_store_dir]), + self._store_dir_note, + W.HTML("
"), + self._file_upload, + W.HBox([self._import_hash_field, self._btn_import_hash]), + ], + layout=W.Layout(display="none"), + ) + self.root = W.VBox( + [ + W.HTML("
Save / Load Configuration
"), + self._name_field, + W.HBox([self._btn_save, self._btn_toggle_save_load_details]), + self.save_status, + self._save_load_details_box, + ] + ) + self.root.add_class("cadetgui-section") + + self._name_field.observe(self._on_name_change, names="value") + self._btn_set_store_dir.on_click(self._on_set_store_dir) + self._btn_save.on_click(self._on_save) + self._file_upload.observe(self._on_file_upload_change, names="value") + self._btn_import_hash.on_click(self._on_import_hash_click) + self._btn_toggle_save_load_details.on_click(self._on_toggle_save_load_details) + + @property + def config_hash(self) -> Optional[str]: + """Content hash of the current configuration, or None if nothing is built yet.""" + try: + return compute_hash(self._snapshot()) + except RuntimeError: + return None + + def refresh_hash_display(self) -> None: + if self.config_hash is None: + self._hash_display.value = "No configuration built yet." + else: + self._hash_display.value = f"Hash: {self.config_hash}" + + def set_name(self, name: str) -> None: + """Rename after restoring a saved configuration, and refresh the hash display.""" + self.config_name = name + self._name_field.value = name + self.refresh_hash_display() + + def name_error(self, action: str = "saving") -> Optional[str]: + """Error message if this configuration has no name yet for `action`, else None.""" + if self.config_name.strip(): + return None + return f"Give the configuration a name before {action}." + + def persist_to_store(self) -> Path: + """Snapshot and save the current configuration to the store. Returns its path. + + Raises RuntimeError if unnamed or nothing has been built yet. + """ + error = self.name_error() + if error: + raise RuntimeError(error) + state = self._snapshot() + return save_to_store( + state, self.config_name, process=self._get_process(), store_dir=self.store_dir + ) + + def import_from_store(self, hash_: str) -> None: + """Load a configuration previously saved to the local store, by its hash.""" + try: + name, state = load_from_store(hash_, store_dir=self.store_dir) + self._apply_state(name, state) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + self.save_status.value = f"Imported '{name}' ({hash_})." + + def _on_name_change(self, change: dict) -> None: + if change.get("name") != "value": + return + self.config_name = change["new"] + self._on_name_change_cb(self.config_name) + + def _on_set_store_dir(self, _btn: Any) -> None: + text = self._store_dir_field.value.strip() + if not text: + self.store_dir = None + self.save_status.value = "Using the default storage folder." + return + try: + path = Path(text).expanduser().resolve() + path.mkdir(parents=True, exist_ok=True) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + self.store_dir = path + self._store_dir_field.value = str(path) + self.save_status.value = f"Configurations will be saved to {path}." + + def _on_save(self, _btn: Any) -> None: + try: + path = self.persist_to_store() + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + self.refresh_hash_display() + self.save_status.value = f"Saved to {path}." + + def _on_file_upload_change(self, change: dict) -> None: + if change.get("name") != "value" or not self._file_upload.value: + return + item = self._file_upload.value[0] + try: + import tempfile + + with tempfile.TemporaryDirectory() as tmp_dir: + tmp_path = Path(tmp_dir) / item["name"] + tmp_path.write_bytes(bytes(item["content"])) + name, state = load_h5(tmp_path) + self._apply_state(name, state) + except Exception as exc: # noqa: BLE001 + self.save_status.value = f"{exc}" + return + finally: + self._file_upload.value = () + self.save_status.value = f"Imported '{name}' from {item['name']}." + + def _on_import_hash_click(self, _btn: Any) -> None: + self.import_from_store(self._import_hash_field.value.strip()) + + def _on_toggle_save_load_details(self, _btn: Any) -> None: + shown = toggle_box(self._save_load_details_box) + self._btn_toggle_save_load_details.description = "Hide details" if shown else "Show details" diff --git a/cadetgui/widgets/composite/parameter_estimation.py b/cadetgui/widgets/composite/parameter_estimation.py index 5a4ac46..dd44ebf 100644 --- a/cadetgui/widgets/composite/parameter_estimation.py +++ b/cadetgui/widgets/composite/parameter_estimation.py @@ -24,8 +24,10 @@ ) from ...simulation import run_process from .._chrome import style_tag +from .._mpl_figure import display_figure, new_figure from ..elements import ChoiceField from .data_import import DataImportWidget +from .parameter_space import ParameterSpaceEditor __all__ = ["ParameterEstimationWidget"] @@ -45,30 +47,13 @@ class ParameterEstimationWidget: tab shows only the raw simulation, this tab owns the comparison view. """ - _PARAM_NAME_WIDTH = "300px" - _PARAM_FIELD_WIDTH = "110px" - _PARAM_REMOVE_WIDTH = "36px" - def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self.data = data or DataImportWidget() self._config_widget: Optional[Any] = None - self._params: list[FittableParameter] = [] - # Ordered keys ((owner, name, component_index), see `_param_key`) of - # the parameters currently added to the fit -- replaces a per-row - # checkbox with an explicit "Add parameter" picker (mirrors - # `ComponentListField`'s add/remove pattern), since picking from a - # long list of fittable parameters by scanning checkboxes doesn't - # scale once a model has many of them. - self._added_keys: list[tuple[str, str, Optional[int]]] = [] - # Per-parameter lb/ub/start, keyed the same way -- survives a row - # being removed and re-added, and survives `_on_config_changed` - # rebuilds (via `_snapshot_row_state`), same "don't silently reset - # what the user already typed" rule as everywhere else in this widget. - self._param_state: dict[tuple[str, str, Optional[int]], dict[str, float]] = {} - self._lb_fields: list[W.FloatText] = [] - self._ub_fields: list[W.FloatText] = [] - self._start_fields: list[W.FloatText] = [] - self._remove_buttons: list[W.Button] = [] + # Owns the "Add parameter" picker + rows (each with its own start/lb/ub + # fields); its own row state survives a config edit or a row being + # removed and re-added -- see ParameterSpaceEditor.set_params. + self.param_space = ParameterSpaceEditor() self._last_result: Optional[EstimationResult] = None # The SimulationResults currently shown in the overlay -- the raw # preview until a fit succeeds, then the fitted run, until the next @@ -84,13 +69,16 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: # from an evaluator or an `add_callback` doesn't work. self._cancel_event = threading.Event() + # "Run estimation" section: base-process picker + Preview button. self._base_process_picker = ChoiceField( label="Base process:", options=[("Current configuration", None)] ) self._btn_refresh_store = W.Button(description="Refresh", icon="refresh") self._btn_preview = W.Button(description="Preview", icon="eye") + # "Experimental data" section: dataset picker + "Signal represents" row. self._dataset_picker = ChoiceField(label="Experimental dataset:", options=[]) self._component_picker = ChoiceField(label="Signal represents:", options=[]) + # "Run estimation" section: which simulated port to fit against. self._signal_picker = ChoiceField(label="Signal:", options=[]) self._optimizer_picker = ChoiceField( label="Optimizer:", options=[(name, name) for name in OPTIMIZERS] @@ -112,6 +100,8 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: name: W.HBox(fields, layout=W.Layout(display="none", flex_flow="row wrap")) for name, fields in self._knob_fields.items() } + # "Experimental data" section: calibration method + its own fields + # (only one of the two boxes below is shown at a time). self._calibration_picker = ChoiceField( label="Calibration:", options=[ @@ -130,23 +120,7 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self._normalize_area_box = W.HBox( [self._target_area_field], layout=W.Layout(display="none") ) - self._param_add_picker = ChoiceField(label="Add parameter:", options=[]) - self._btn_add_param = W.Button(description="Add", icon="plus") - # Fixed column widths -- every row (and the header) uses the exact - # same ones, so start/lb/ub actually line up regardless of how long - # a given parameter's own label is. Previously each row was a plain - # HBox sized to its own content, so longer parameter names pushed - # that row's fields out of line with every other row's. - self._param_header = W.HBox( - [ - W.HTML("Parameter", layout=W.Layout(width=self._PARAM_NAME_WIDTH)), - W.HTML("Start", layout=W.Layout(width=self._PARAM_FIELD_WIDTH)), - W.HTML("Lower bound", layout=W.Layout(width=self._PARAM_FIELD_WIDTH)), - W.HTML("Upper bound", layout=W.Layout(width=self._PARAM_FIELD_WIDTH)), - W.HTML("", layout=W.Layout(width=self._PARAM_REMOVE_WIDTH)), - ] - ) - self._param_box = W.VBox([]) + # Run/Cancel/Accept button row + the elapsed-time label next to it. self._btn_run = W.Button(description="Run estimation", icon="magic", button_style="success") self._btn_cancel = W.Button( description="Cancel", icon="stop", button_style="danger", @@ -160,6 +134,8 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: description="Live plot", value=False, indent=False ) self._elapsed_label = W.HTML(value="") + # Live-fit panel: current-best-vs-reference + objective-history plot, + # redrawn every tick while "Live plot" is checked (see _redraw_live_plot). # `W.Image` (a plain `.value` trait holding PNG bytes), not `W.Output` # -- `Output`'s capture-based `display()` doesn't reliably route from # a background thread in a real Jupyter kernel (confirmed: elapsed @@ -180,6 +156,8 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: format="png", layout=W.Layout(width="700px", display="none") ) self._live_plot_error = W.HTML(value="") + # Result table (parameter/before/fitted) + the reference-vs-simulated + # overlay plot, both shown after a Preview or a finished run. self._fit_table = W.HTML() self._plot_out = W.Image( format="png", layout=W.Layout(width="400px", display="none") @@ -197,13 +175,13 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: self._pairwise_out = W.Image( format="png", layout=W.Layout(width="500px", display="none") ) + # Status line at the bottom of the "Run estimation" section. self.status = W.HTML("Ready.") self.status.add_class("cadetgui-status") self._btn_run.on_click(self._on_run) self._btn_cancel.on_click(self._on_cancel) self._btn_accept.on_click(self._on_accept) - self._btn_add_param.on_click(self._on_add_param) self._btn_refresh_store.on_click(lambda _btn: self._refresh_store_options()) self._btn_preview.on_click(self._on_preview) self._base_process_picker.observe(self._on_base_process_change, names="selected_index") @@ -249,18 +227,10 @@ def __init__(self, *, data: Optional[DataImportWidget] = None) -> None: data_section.add_class("cadetgui-panel") data_section.add_class("cadetgui-section") - add_param_row = W.HBox( - [self._param_add_picker, self._btn_add_param], - layout=W.Layout(flex_flow="row wrap"), - ) - add_param_row.add_class("cadetgui-toolbar") - param_space_section = W.VBox( [ W.HTML("
Configure parameter space
"), - add_param_row, - self._param_header, - self._param_box, + self.param_space.root, ] ) param_space_section.add_class("cadetgui-panel") @@ -325,7 +295,7 @@ def _refresh_dataset_options(self) -> None: self._dataset_picker.set_options([(d.label, d) for d in self.data.datasets]) def _refresh_store_options(self) -> None: - store_dir = getattr(self._config_widget, "_store_dir", None) + store_dir = self._config_widget.persistence.store_dir if self._config_widget else None saved = configuration_store.list_store(store_dir=store_dir) options = [("Current configuration", None)] + [(name, hash_) for name, hash_ in saved] self._base_process_picker.set_options(options, keep_value=True) @@ -398,58 +368,11 @@ def _current_reference(self) -> tuple[Optional[Any], Optional[str]]: ) return reference, dataset.label - @staticmethod - def _new_figure(**kwargs: Any) -> Any: - """Build a matplotlib Figure with its own Agg canvas -- never touches `pyplot`. - - `_redraw_overlay`/`_redraw_live_plot` can run on a background thread - (the ticker -- see `_on_run`), and `pyplot`'s figure/backend state is - global and generally not thread-safe (confirmed: a plain `plt. - subplots()` call from a non-main thread crashes under an interactive - backend like TkAgg, e.g. `RuntimeError: main thread is not in main - loop`). Building the Figure directly and attaching `FigureCanvasAgg` - sidesteps `pyplot` (and therefore the active backend) entirely -- - works the same regardless of thread or ambient backend. Must always - be paired with passing the resulting Axes into anything that would - otherwise create its own figure (e.g. `solution.plot(ax=...)`, never - bare `solution.plot()` -- the latter calls `plt.subplots()` internally). - """ - from matplotlib.backends.backend_agg import FigureCanvasAgg - from matplotlib.figure import Figure - - fig = Figure(**kwargs) - FigureCanvasAgg(fig) - return fig - - @staticmethod - def _display_figure(output: W.Image, fig: Any) -> None: - """Render `fig` into `output.value` as PNG bytes. - - A direct trait assignment, not `Output`'s capture-based `display()` -- - confirmed (real Jupyter kernel, not just this sandbox) that the latter - does not reliably route from a background thread: `_elapsed_label`/ - `status`/`_fit_table` (all plain trait updates) updated fine from the - ticker thread, but every `Output`-based plot render silently never - appeared. `W.Image.value` is a plain bytes trait -- the same kind of - update as those, so it works from any thread the same way. - """ - import io - - buf = io.BytesIO() - # No CSS width/max-width on the `Image` widgets (see the - # constructor's note) -- displayed size is exactly the PNG's own - # pixel dimensions, so dpi controls both sharpness and how big it - # actually appears. 150 keeps `_FIGSIZE` ("1_col", ~3.5x2.4in) at a - # normal embedded-plot size while staying sharp. - fig.savefig(buf, format="png", dpi=150, bbox_inches="tight") - output.value = buf.getvalue() - output.layout.display = "" # reveal it -- see the constructor's note on why - # Matches CADET-Process's own "1_col" default (`CADETProcess.plotting. # figure_layouts`) -- `solution.plot()` used this by default before this # widget started always passing its own `ax` (required for thread safety, - # see `_new_figure`); without picking it explicitly here too, the figure - # silently grew to matplotlib's much larger default size instead. + # see `_mpl_figure.new_figure`); without picking it explicitly here too, + # the figure silently grew to matplotlib's much larger default size instead. _FIGSIZE = get_fig_size("1_col") def _redraw_overlay(self) -> None: @@ -463,7 +386,7 @@ def _redraw_overlay(self) -> None: except Exception: # noqa: BLE001 reference, dataset_label = None, None - fig = self._new_figure(figsize=self._FIGSIZE) + fig = new_figure(figsize=self._FIGSIZE) ax = fig.add_subplot(111) solution.plot(ax=ax) if reference is not None: @@ -477,7 +400,7 @@ def _redraw_overlay(self) -> None: linestyle="--", color="black", linewidth=2, label=label, ) ax.legend() - self._display_figure(self._plot_out, fig) + display_figure(self._plot_out, fig) def _on_config_changed(self, _process: Any) -> None: cw = self._config_widget @@ -489,15 +412,7 @@ def _on_config_changed(self, _process: Any) -> None: ) + list_fittable_parameters( "binding", cw._binding_form.spec.fields, cw._binding_form.collect_values() ) - self._snapshot_row_state() - valid_keys = {self._param_key(p) for p in new_params} - # Drop any added parameter whose identity no longer exists (e.g. a - # binding model change removed it) -- everything else about the - # selection (order, lb/ub/start) survives via `_param_state`. - self._added_keys = [k for k in self._added_keys if k in valid_keys] - self._params = new_params - self._refresh_added_rows() - self._refresh_add_picker_options() + self.param_space.set_params(new_params) self._refresh_component_options() def _refresh_component_options(self) -> None: @@ -513,92 +428,6 @@ def _refresh_component_options(self) -> None: return self._component_picker.set_options(options, keep_value=True) - @staticmethod - def _param_key(p: FittableParameter) -> tuple[str, str, Optional[int]]: - return (p.owner, p.name, p.component_index) - - def _params_by_key(self) -> dict[tuple[str, str, Optional[int]], FittableParameter]: - return {self._param_key(p): p for p in self._params} - - def _snapshot_row_state(self) -> None: - """Save each currently-rendered row's live field values into `_param_state`. - - Must run *before* `_added_keys` is mutated (append/remove/prune) -- - it zips the live fields against `_added_keys` as it stood when those - fields were last built, so mutating the list first would silently - pair each row's values with the wrong key. - """ - for key, lb, ub, start in zip( - self._added_keys, self._lb_fields, self._ub_fields, self._start_fields - ): - self._param_state[key] = {"lb": lb.value, "ub": ub.value, "start": start.value} - - def _refresh_add_picker_options(self) -> None: - options = [ - (f"{p.label} = {p.current_value:.4g}", key) - for key, p in self._params_by_key().items() - if key not in self._added_keys - ] - self._param_add_picker.set_options(options) - - def _refresh_added_rows(self) -> None: - """Rebuild the fit-parameter rows from `_added_keys` + `_param_state`. - - Every row (and `_param_header`, built once in `__init__`) uses the - exact same fixed column widths, so start/lb/ub actually line up - regardless of how long any one parameter's own label is -- unlike a - plain HBox sized to its own content, which put each row's fields at - a different x position depending on that row's label length. - """ - by_key = self._params_by_key() - name_layout = W.Layout(width=self._PARAM_NAME_WIDTH, overflow="hidden") - field_layout = W.Layout(width=self._PARAM_FIELD_WIDTH) - remove_layout = W.Layout(width=self._PARAM_REMOVE_WIDTH) - self._lb_fields = [] - self._ub_fields = [] - self._start_fields = [] - self._remove_buttons = [] - rows = [] - for key in self._added_keys: - p = by_key.get(key) - if p is None: # pragma: no cover -- already pruned by the caller - continue - state = self._param_state.setdefault( - key, {"lb": p.lb, "ub": p.ub, "start": p.current_value} - ) - lb_field = W.FloatText(value=state["lb"], layout=field_layout) - ub_field = W.FloatText(value=state["ub"], layout=field_layout) - start_field = W.FloatText(value=state["start"], layout=field_layout) - remove_btn = W.Button(icon="times", layout=remove_layout) - remove_btn.on_click(self._make_remove_handler(key)) - self._lb_fields.append(lb_field) - self._ub_fields.append(ub_field) - self._start_fields.append(start_field) - self._remove_buttons.append(remove_btn) - name_label = W.Label(f"{p.label} = {p.current_value:.4g}", layout=name_layout) - rows.append(W.HBox([name_label, start_field, lb_field, ub_field, remove_btn])) - self._param_box.children = tuple(rows) - - def _on_add_param(self, _btn: Any) -> None: - key = self._param_add_picker.value - if key is None or key in self._added_keys: - return - self._snapshot_row_state() - self._added_keys.append(key) - self._refresh_added_rows() - self._refresh_add_picker_options() - - def _make_remove_handler(self, key: tuple[str, str, Optional[int]]) -> Any: - def handler(_btn: Any) -> None: - self._snapshot_row_state() - if key in self._added_keys: - self._added_keys.remove(key) - self._param_state.pop(key, None) - self._refresh_added_rows() - self._refresh_add_picker_options() - - return handler - def _validation_error(self) -> Optional[str]: if self._config_widget is None or self._config_widget.process is None: return "No configuration to fit." @@ -606,16 +435,13 @@ def _validation_error(self) -> Optional[str]: return "Import or select an experimental dataset first." if self._signal_picker.value is None: return "Preview the process to see available signals first." - if not self._added_keys: + if not self.param_space: return "Add at least one parameter to fit." - by_key = self._params_by_key() - for key, lb_field, ub_field, start_field in zip( - self._added_keys, self._lb_fields, self._ub_fields, self._start_fields - ): - start, lb, ub = start_field.value, lb_field.value, ub_field.value + for idx, start, lb, ub in self.param_space.rows(): if not (lb <= start <= ub): + label = self.param_space.params[idx].label return ( - f"Start value for {by_key[key].label} ({start:.4g}) must be " + f"Start value for {label} ({start:.4g}) must be " f"within its bounds [{lb:.4g}, {ub:.4g}]." ) method: CalibrationMethod = self._calibration_picker.value @@ -628,15 +454,10 @@ def _validation_error(self) -> Optional[str]: return None def _on_run(self, _btn: Any) -> None: - self._plot_out.value = b"" - self._plot_out.layout.display = "none" - self._live_plot_out.value = b"" - self._live_plot_out.layout.display = "none" + for img in (self._plot_out, self._live_plot_out, self._convergence_out, self._pairwise_out): + img.value = b"" + img.layout.display = "none" self._live_plot_error.value = "" - self._convergence_out.value = b"" - self._convergence_out.layout.display = "none" - self._pairwise_out.value = b"" - self._pairwise_out.layout.display = "none" self._analytics_error.value = "" self._btn_accept.layout.display = "none" self._last_result = None @@ -648,17 +469,13 @@ def _on_run(self, _btn: Any) -> None: unit, port = self._signal_picker.value reference, _ = self._current_reference() - index_of = {self._param_key(p): i for i, p in enumerate(self._params)} - params = list(self._params) + params = list(self.param_space.params) selected = [] starts = [] - for key, lb_field, ub_field, start_field in zip( - self._added_keys, self._lb_fields, self._ub_fields, self._start_fields - ): - idx = index_of[key] - params[idx] = replace(params[idx], lb=lb_field.value, ub=ub_field.value) + for idx, start, lb, ub in self.param_space.rows(): + params[idx] = replace(params[idx], lb=lb, ub=ub) selected.append(idx) - starts.append(start_field.value) + starts.append(start) process = self._config_widget.process column = self._config_widget._column_form.built @@ -778,7 +595,7 @@ def _redraw_live_plot( solution = preview.solution[unit][port] width, height = self._FIGSIZE - fig = self._new_figure(figsize=(2 * width, height)) # two "1_col" panels side by side + fig = new_figure(figsize=(2 * width, height)) # two "1_col" panels side by side ax1 = fig.add_subplot(1, 2, 1) ax2 = fig.add_subplot(1, 2, 2) solution.plot(ax=ax1) @@ -796,7 +613,7 @@ def _redraw_live_plot( ax2.set_title("Objective history") fig.tight_layout() - self._display_figure(self._live_plot_out, fig) + display_figure(self._live_plot_out, fig) self._live_plot_error.value = "" except Exception as exc: # noqa: BLE001 -- best-effort per tick, but visibly self._live_plot_error.value = ( @@ -863,20 +680,20 @@ def _render_analytics(self, optimizer: Any) -> None: if len(results.populations) == 0: return # nothing ran yet (e.g. cancelled before generation 1) - fig1 = self._new_figure(figsize=self._FIGSIZE) + fig1 = new_figure(figsize=self._FIGSIZE) ax1 = fig1.subplots(nrows=1, ncols=1, squeeze=False).reshape(-1) results.plot_convergence(ax=ax1) - self._display_figure(self._convergence_out, fig1) + display_figure(self._convergence_out, fig1) # Mirrors CADET-Process's own `results.plot_figures()` guard -- # a single variable's pairwise grid is a degenerate 1x1 plot. n_var = len(results.x[0]) if n_var > 1: width, _ = self._FIGSIZE - fig2 = self._new_figure(figsize=(width * n_var * 0.8, width * n_var * 0.8)) + fig2 = new_figure(figsize=(width * n_var * 0.8, width * n_var * 0.8)) ax2 = fig2.subplots(nrows=n_var, ncols=n_var, squeeze=False) results.plot_pairwise(ax=ax2) - self._display_figure(self._pairwise_out, fig2) + display_figure(self._pairwise_out, fig2) self._analytics_error.value = "" except Exception as exc: # noqa: BLE001 -- best-effort, but visibly self._analytics_error.value = ( @@ -885,8 +702,8 @@ def _render_analytics(self, optimizer: Any) -> None: def _render_fit_table(self, result: EstimationResult) -> None: rows = "".join( - f"{self._params[idx].label}" - f"{self._params[idx].current_value:.4g}{value:.4g}" + f"{self.param_space.params[idx].label}" + f"{self.param_space.params[idx].current_value:.4g}{value:.4g}" for idx, value in result.fitted.items() ) self._fit_table.value = ( @@ -898,7 +715,7 @@ def _on_accept(self, _btn: Any) -> None: return cw = self._config_widget for idx, value in self._last_result.fitted.items(): - param = self._params[idx] + param = self.param_space.params[idx] form = cw._column_form if param.owner == "column" else cw._binding_form element = form.element(param.name) if param.component_index is None: diff --git a/cadetgui/widgets/composite/parameter_space.py b/cadetgui/widgets/composite/parameter_space.py new file mode 100644 index 0000000..e6ee31a --- /dev/null +++ b/cadetgui/widgets/composite/parameter_space.py @@ -0,0 +1,167 @@ +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Tuple + +import ipywidgets as W + +from ...parameter_estimation import FittableParameter +from ..elements import ChoiceField + +__all__ = ["ParameterSpaceEditor"] + +_Key = Tuple[str, str, Optional[int]] + + +class ParameterSpaceEditor: + """The "Configure parameter space" section: an "Add parameter" picker + rows. + + Each row holds one fittable parameter's start/lower/upper-bound fields. + + Row order and each row's own start/lb/ub survive a row being removed and + re-added, and survive the owner replacing `.params` wholesale (e.g. after + a configuration edit) as long as a parameter's identity key still exists + -- see `set_params`. + """ + + _NAME_WIDTH = "300px" + _FIELD_WIDTH = "110px" + _REMOVE_WIDTH = "36px" + + def __init__(self) -> None: + self.params: List[FittableParameter] = [] + self._added_keys: List[_Key] = [] + self._param_state: Dict[_Key, Dict[str, float]] = {} + self._lb_fields: List[W.FloatText] = [] + self._ub_fields: List[W.FloatText] = [] + self._start_fields: List[W.FloatText] = [] + self._remove_buttons: List[W.Button] = [] + + # "Add parameter" picker + button. + self._param_add_picker = ChoiceField(label="Add parameter:", options=[]) + self._btn_add_param = W.Button(description="Add", icon="plus") + self._btn_add_param.on_click(self._on_add_param) + + # Column header row above the added-parameter rows. Fixed column + # widths -- every row (and this header) uses the exact same ones, so + # start/lb/ub actually line up regardless of how long a given + # parameter's own label is. + self._param_header = W.HBox( + [ + W.HTML("Parameter", layout=W.Layout(width=self._NAME_WIDTH)), + W.HTML("Start", layout=W.Layout(width=self._FIELD_WIDTH)), + W.HTML("Lower bound", layout=W.Layout(width=self._FIELD_WIDTH)), + W.HTML("Upper bound", layout=W.Layout(width=self._FIELD_WIDTH)), + W.HTML("", layout=W.Layout(width=self._REMOVE_WIDTH)), + ] + ) + # Filled in by _refresh_added_rows() with one row per added parameter. + self._param_box = W.VBox([]) + + add_row = W.HBox( + [self._param_add_picker, self._btn_add_param], + layout=W.Layout(flex_flow="row wrap"), + ) + add_row.add_class("cadetgui-toolbar") + + self.root = W.VBox([add_row, self._param_header, self._param_box]) + + def __len__(self) -> int: + return len(self._added_keys) + + @staticmethod + def _param_key(p: FittableParameter) -> _Key: + return (p.owner, p.name, p.component_index) + + def _by_key(self) -> Dict[_Key, FittableParameter]: + return {self._param_key(p): p for p in self.params} + + def rows(self) -> List[Tuple[int, float, float, float]]: + """(index into `.params`, start, lower bound, upper bound) per added row, in add order.""" + index_of = {self._param_key(p): i for i, p in enumerate(self.params)} + return [ + (index_of[key], start.value, lb.value, ub.value) + for key, lb, ub, start in zip( + self._added_keys, self._lb_fields, self._ub_fields, self._start_fields + ) + ] + + def set_params(self, params: List[FittableParameter]) -> None: + """Replace the available parameter set, dropping any added row whose identity is gone.""" + self._snapshot_row_state() + valid_keys = {self._param_key(p) for p in params} + self._added_keys = [k for k in self._added_keys if k in valid_keys] + self.params = params + self._refresh_added_rows() + self._refresh_add_picker_options() + + def _snapshot_row_state(self) -> None: + """Save each currently-rendered row's live field values into `_param_state`. + + Must run *before* `_added_keys` is mutated (append/remove/prune) -- + it zips the live fields against `_added_keys` as it stood when those + fields were last built, so mutating the list first would silently + pair each row's values with the wrong key. + """ + for key, lb, ub, start in zip( + self._added_keys, self._lb_fields, self._ub_fields, self._start_fields + ): + self._param_state[key] = {"lb": lb.value, "ub": ub.value, "start": start.value} + + def _refresh_add_picker_options(self) -> None: + options = [ + (f"{p.label} = {p.current_value:.4g}", key) + for key, p in self._by_key().items() + if key not in self._added_keys + ] + self._param_add_picker.set_options(options) + + def _refresh_added_rows(self) -> None: + """Rebuild one row (name label + start/lb/ub fields + remove button) per added parameter.""" + by_key = self._by_key() + name_layout = W.Layout(width=self._NAME_WIDTH, overflow="hidden") + field_layout = W.Layout(width=self._FIELD_WIDTH) + remove_layout = W.Layout(width=self._REMOVE_WIDTH) + self._lb_fields = [] + self._ub_fields = [] + self._start_fields = [] + self._remove_buttons = [] + rows = [] + for key in self._added_keys: + p = by_key.get(key) + if p is None: # pragma: no cover -- already pruned by the caller + continue + state = self._param_state.setdefault( + key, {"lb": p.lb, "ub": p.ub, "start": p.current_value} + ) + lb_field = W.FloatText(value=state["lb"], layout=field_layout) + ub_field = W.FloatText(value=state["ub"], layout=field_layout) + start_field = W.FloatText(value=state["start"], layout=field_layout) + remove_btn = W.Button(icon="times", layout=remove_layout) + remove_btn.on_click(self._make_remove_handler(key)) + self._lb_fields.append(lb_field) + self._ub_fields.append(ub_field) + self._start_fields.append(start_field) + self._remove_buttons.append(remove_btn) + name_label = W.Label(f"{p.label} = {p.current_value:.4g}", layout=name_layout) + rows.append(W.HBox([name_label, start_field, lb_field, ub_field, remove_btn])) + self._param_box.children = tuple(rows) + + def _on_add_param(self, _btn: Any) -> None: + key = self._param_add_picker.value + if key is None or key in self._added_keys: + return + self._snapshot_row_state() + self._added_keys.append(key) + self._refresh_added_rows() + self._refresh_add_picker_options() + + def _make_remove_handler(self, key: _Key) -> Any: + def handler(_btn: Any) -> None: + self._snapshot_row_state() + if key in self._added_keys: + self._added_keys.remove(key) + self._param_state.pop(key, None) + self._refresh_added_rows() + self._refresh_add_picker_options() + + return handler diff --git a/tests/test_configuration.py b/tests/test_configuration.py index bfa81c2..e50c51f 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -311,7 +311,7 @@ def test_multiplex_checkboxes_hidden_for_column_without_any_applicable_param(): cw = ConfigurationWidget() cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] # The gear itself stays visible -- "Show optional parameters" always applies. - assert cw._btn_settings.layout.display != "none" + assert cw._column_settings.button.layout.display != "none" assert all(cb.layout.display == "none" for cb in cw._multiplex_checkboxes.values()) @@ -321,13 +321,13 @@ def test_show_optional_parameters_adds_and_removes_column_fields(): required_names = {f.name for f in cw._column_form.spec.fields} assert "c" not in required_names # optional fields hidden by default - cw._show_optional_checkbox.value = True + cw._show_optional_column_checkbox.value = True shown_names = {f.name for f in cw._column_form.spec.fields} assert {"c", "cp", "flow_direction", "pore_accessibility"} <= shown_names # still builds a real column with the optional fields' own defaults applied assert cw._get_column() is not None - cw._show_optional_checkbox.value = False + cw._show_optional_column_checkbox.value = False assert {f.name for f in cw._column_form.spec.fields} == required_names @@ -335,7 +335,7 @@ def test_show_optional_parameters_skips_none_valued_and_non_scalar_fields(): cw = ConfigurationWidget() cw._column_picker.value = cw._columns["General Rate Model (GRM)"] cw._binding_picker.value = cw._binding_registry["None"] # q stays unset without a real isotherm - cw._show_optional_checkbox.value = True + cw._show_optional_column_checkbox.value = True names = {f.name for f in cw._column_form.spec.fields} assert "q" not in names # None-valued (no bound states configured) @@ -346,7 +346,7 @@ def test_show_optional_parameters_skips_none_valued_and_non_scalar_fields(): def test_show_optional_parameters_does_not_apply_to_binding_form(): cw = ConfigurationWidget() cw._binding_picker.value = cw._binding_registry["Steric Mass Action (SMA)"] - cw._show_optional_checkbox.value = True + cw._show_optional_column_checkbox.value = True names = {f.name for f in cw._binding_form.spec.fields} assert "reference_liquid_phase_conc" not in names @@ -548,11 +548,11 @@ def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): def test_cycle_time_settings_gear_visible_only_when_cycle_time_exists(): cw = ConfigurationWidget() # defaults to Batch Elution, which has cycle_time - assert cw._btn_process_settings.layout.display == "" + assert cw._process_settings.button.layout.display == "" cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] # no cycle_time field - assert cw._btn_process_settings.layout.display == "none" - assert cw._process_settings_box.layout.display == "none" + assert cw._process_settings.button.layout.display == "none" + assert cw._process_settings.box.layout.display == "none" def test_cycle_time_minutes_toggle_swaps_visible_field_and_converts_value(): @@ -722,7 +722,7 @@ def test_snapshot_and_apply_state_round_trips_a_mutated_configuration(): cw2._apply_state("Imported", state) assert cw2.config_name == "Imported" - assert cw2._name_field.value == "Imported" + assert cw2.persistence._name_field.value == "Imported" assert cw2.config_hash == cw.config_hash assert type(cw2._get_column()).__name__ == "GeneralRateModel" assert type(cw2._get_binding_model()).__name__ == "Langmuir" @@ -742,11 +742,11 @@ def test_apply_state_rejects_an_unregistered_column_key(): def test_save_button_writes_to_the_store_and_shows_the_path(tmp_path): cw = ConfigurationWidget() - cw._name_field.value = "Saved Config" + cw.persistence._name_field.value = "Saved Config" - cw._on_save(None) + cw.persistence._on_save(None) - assert str(tmp_path) in cw.save_status.value + assert str(tmp_path) in cw.persistence.save_status.value name, state = configuration_store.load_from_store(cw.config_hash) assert name == "Saved Config" assert state == cw._snapshot_state() @@ -754,9 +754,9 @@ def test_save_button_writes_to_the_store_and_shows_the_path(tmp_path): def test_import_from_store_restores_a_previously_saved_configuration(): cw = ConfigurationWidget() - cw._name_field.value = "Saved Config" + cw.persistence._name_field.value = "Saved Config" cw._model_form.element("flow_rate").value = 7.7e-6 - cw._on_save(None) + cw.persistence._on_save(None) saved_hash = cw.config_hash cw2 = ConfigurationWidget() @@ -764,31 +764,31 @@ def test_import_from_store_restores_a_previously_saved_configuration(): assert cw2.config_name == "Saved Config" assert cw2.config_hash == saved_hash - assert "Imported" in cw2.save_status.value + assert "Imported" in cw2.persistence.save_status.value def test_import_from_store_with_unknown_hash_shows_an_error(): cw = ConfigurationWidget() cw.import_from_store("deadbeef") - assert "deadbeef" in cw.save_status.value + assert "deadbeef" in cw.persistence.save_status.value def test_import_hash_button_delegates_to_import_from_store(): cw = ConfigurationWidget() - cw._name_field.value = "Saved Config" - cw._on_save(None) + cw.persistence._name_field.value = "Saved Config" + cw.persistence._on_save(None) saved_hash = cw.config_hash cw2 = ConfigurationWidget() - cw2._import_hash_field.value = saved_hash - cw2._on_import_hash_click(None) + cw2.persistence._import_hash_field.value = saved_hash + cw2.persistence._on_import_hash_click(None) assert cw2.config_hash == saved_hash def test_file_upload_imports_an_exported_configuration(): cw = ConfigurationWidget() - cw._name_field.value = "Uploaded Config" + cw.persistence._name_field.value = "Uploaded Config" cw._model_form.element("flow_rate").value = 2.2e-6 import tempfile @@ -801,7 +801,7 @@ def test_file_upload_imports_an_exported_configuration(): content = memoryview(path.read_bytes()) cw2 = ConfigurationWidget() - cw2._file_upload.value = ( + cw2.persistence._file_upload.value = ( { "name": "exported.h5", "type": "application/x-hdf5", @@ -813,15 +813,15 @@ def test_file_upload_imports_an_exported_configuration(): assert cw2.config_name == "Uploaded Config" assert cw2.config_hash == cw.config_hash - assert cw2._file_upload.value == () # cleared so the same file can be re-uploaded + assert cw2.persistence._file_upload.value == () # cleared so the same file can be re-uploaded def test_store_dir_defaults_to_none_and_uses_the_default_store(tmp_path): cw = ConfigurationWidget() - cw._name_field.value = "Default Store Config" - assert cw._store_dir is None + cw.persistence._name_field.value = "Default Store Config" + assert cw.persistence.store_dir is None - cw._on_save(None) + cw.persistence._on_save(None) # default store dir is monkeypatched to tmp_path by the isolated_store fixture assert (tmp_path / f"{cw.config_hash}.h5").exists() @@ -829,33 +829,33 @@ def test_store_dir_defaults_to_none_and_uses_the_default_store(tmp_path): def test_setting_a_custom_store_dir_is_used_for_save_and_import(tmp_path): custom = tmp_path / "my_configs" / "nested" cw = ConfigurationWidget() - cw._name_field.value = "Custom Folder Config" - cw._store_dir_field.value = str(custom) + cw.persistence._name_field.value = "Custom Folder Config" + cw.persistence._store_dir_field.value = str(custom) - cw._on_set_store_dir(None) + cw.persistence._on_set_store_dir(None) - assert cw._store_dir == custom + assert cw.persistence.store_dir == custom assert custom.is_dir() # created on set, even before anything is saved - cw._on_save(None) + cw.persistence._on_save(None) assert (custom / f"{cw.config_hash}.h5").exists() cw2 = ConfigurationWidget() - cw2._store_dir_field.value = str(custom) - cw2._on_set_store_dir(None) + cw2.persistence._store_dir_field.value = str(custom) + cw2.persistence._on_set_store_dir(None) cw2.import_from_store(cw.config_hash) assert cw2.config_name == "Custom Folder Config" def test_blank_store_dir_field_resets_to_the_default(tmp_path): cw = ConfigurationWidget() - cw._store_dir_field.value = str(tmp_path / "custom") - cw._on_set_store_dir(None) - assert cw._store_dir is not None + cw.persistence._store_dir_field.value = str(tmp_path / "custom") + cw.persistence._on_set_store_dir(None) + assert cw.persistence.store_dir is not None - cw._store_dir_field.value = "" - cw._on_set_store_dir(None) - assert cw._store_dir is None + cw.persistence._store_dir_field.value = "" + cw.persistence._on_set_store_dir(None) + assert cw.persistence.store_dir is None def test_invalid_store_dir_shows_an_error_and_does_not_change_store_dir(tmp_path): @@ -863,34 +863,34 @@ def test_invalid_store_dir_shows_an_error_and_does_not_change_store_dir(tmp_path blocked.write_text("x") cw = ConfigurationWidget() - cw._store_dir_field.value = str(blocked / "sub") - cw._on_set_store_dir(None) + cw.persistence._store_dir_field.value = str(blocked / "sub") + cw.persistence._on_set_store_dir(None) - assert cw._store_dir is None - assert "span style" in cw.save_status.value + assert cw.persistence.store_dir is None + assert "span style" in cw.persistence.save_status.value def test_save_without_a_name_is_refused(tmp_path): cw = ConfigurationWidget() - cw._name_field.value = "" # cleared the default name - cw._on_save(None) + cw.persistence._name_field.value = "" # cleared the default name + cw.persistence._on_save(None) - assert "name" in cw.save_status.value.lower() + assert "name" in cw.persistence.save_status.value.lower() assert list(tmp_path.glob("*.h5")) == [] # nothing written to the store def test_save_load_details_are_collapsed_by_default_and_toggle(): cw = ConfigurationWidget() - assert cw._save_load_details_box.layout.display == "none" - assert cw._btn_toggle_save_load_details.description == "Show details" + assert cw.persistence._save_load_details_box.layout.display == "none" + assert cw.persistence._btn_toggle_save_load_details.description == "Show details" - cw._on_toggle_save_load_details(None) - assert cw._save_load_details_box.layout.display == "" - assert cw._btn_toggle_save_load_details.description == "Hide details" + cw.persistence._on_toggle_save_load_details(None) + assert cw.persistence._save_load_details_box.layout.display == "" + assert cw.persistence._btn_toggle_save_load_details.description == "Hide details" - cw._on_toggle_save_load_details(None) - assert cw._save_load_details_box.layout.display == "none" - assert cw._btn_toggle_save_load_details.description == "Show details" + cw.persistence._on_toggle_save_load_details(None) + assert cw.persistence._save_load_details_box.layout.display == "none" + assert cw.persistence._btn_toggle_save_load_details.description == "Show details" def test_save_load_section_is_the_first_section_in_the_panel(): @@ -905,14 +905,14 @@ def test_name_error_reflects_whether_the_configuration_is_named(): cw = ConfigurationWidget() assert cw.name_error() is None # has the default name - cw._name_field.value = "" + cw.persistence._name_field.value = "" error = cw.name_error("running a simulation") assert error == "Give the configuration a name before running a simulation." def test_persist_to_store_raises_without_a_name(): cw = ConfigurationWidget() - cw._name_field.value = "" + cw.persistence._name_field.value = "" try: cw.persist_to_store() assert False, "should have raised" @@ -922,7 +922,7 @@ def test_persist_to_store_raises_without_a_name(): def test_persist_to_store_saves_and_returns_the_path(tmp_path): cw = ConfigurationWidget() - cw._name_field.value = "Persisted Config" + cw.persistence._name_field.value = "Persisted Config" path = cw.persist_to_store() diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py index 78c7d90..b01b0cd 100644 --- a/tests/test_parameter_estimation.py +++ b/tests/test_parameter_estimation.py @@ -52,10 +52,10 @@ def upload_csv(widget: DataImportWidget, filename: str, csv_text: str) -> None: def _add_param(pw: ParameterEstimationWidget, index: int) -> None: - """Add `pw._params[index]` to the fit via the real Add-parameter flow.""" - key = pw._param_key(pw._params[index]) - pw._param_add_picker.value = key - pw._on_add_param(None) + """Add `pw.param_space.params[index]` to the fit via the real Add-parameter flow.""" + key = pw.param_space._param_key(pw.param_space.params[index]) + pw.param_space._param_add_picker.value = key + pw.param_space._on_add_param(None) def test_parameter_estimation_widget_nests_a_data_import_widget(): @@ -83,33 +83,33 @@ def test_bind_to_config_populates_the_add_parameter_picker(): pw.bind_to_config(cw) - assert len(pw._params) > 0 - assert len(pw._param_add_picker.option_labels) == len(pw._params) - assert pw._added_keys == [] # nothing added by default + assert len(pw.param_space.params) > 0 + assert len(pw.param_space._param_add_picker.option_labels) == len(pw.param_space.params) + assert pw.param_space._added_keys == [] # nothing added by default def test_config_field_changes_rebuild_the_add_parameter_picker(): pw = ParameterEstimationWidget() cw = ConfigurationWidget() pw.bind_to_config(cw) - before = len(pw._param_add_picker.option_labels) + before = len(pw.param_space._param_add_picker.option_labels) cw._model_form.element("flow_rate").value = 5e-6 # any committed change - assert len(pw._param_add_picker.option_labels) == before # rebuilt, same shape, no crash + assert len(pw.param_space._param_add_picker.option_labels) == before # rebuilt, same shape, no crash def test_adding_a_parameter_removes_it_from_the_add_picker_and_adds_a_row(): pw = ParameterEstimationWidget() cw = ConfigurationWidget() pw.bind_to_config(cw) - before = len(pw._param_add_picker.option_labels) + before = len(pw.param_space._param_add_picker.option_labels) _add_param(pw, 0) - assert pw._added_keys == [pw._param_key(pw._params[0])] - assert len(pw._param_box.children) == 1 - assert len(pw._param_add_picker.option_labels) == before - 1 + assert pw.param_space._added_keys == [pw.param_space._param_key(pw.param_space.params[0])] + assert len(pw.param_space._param_box.children) == 1 + assert len(pw.param_space._param_add_picker.option_labels) == before - 1 def test_removing_a_parameter_puts_it_back_in_the_add_picker(): @@ -117,13 +117,13 @@ def test_removing_a_parameter_puts_it_back_in_the_add_picker(): cw = ConfigurationWidget() pw.bind_to_config(cw) _add_param(pw, 0) - before = len(pw._param_add_picker.option_labels) + before = len(pw.param_space._param_add_picker.option_labels) - pw._remove_buttons[0].click() + pw.param_space._remove_buttons[0].click() - assert pw._added_keys == [] - assert len(pw._param_box.children) == 0 - assert len(pw._param_add_picker.option_labels) == before + 1 + assert pw.param_space._added_keys == [] + assert len(pw.param_space._param_box.children) == 0 + assert len(pw.param_space._param_add_picker.option_labels) == before + 1 def test_unrelated_config_edits_preserve_edited_start_lb_ub_for_an_added_parameter(): @@ -131,16 +131,16 @@ def test_unrelated_config_edits_preserve_edited_start_lb_ub_for_an_added_paramet cw = ConfigurationWidget() pw.bind_to_config(cw) _add_param(pw, 0) - pw._start_fields[0].value = 0.123 - pw._lb_fields[0].value = 0.01 - pw._ub_fields[0].value = 0.99 + pw.param_space._start_fields[0].value = 0.123 + pw.param_space._lb_fields[0].value = 0.01 + pw.param_space._ub_fields[0].value = 0.99 cw._model_form.element("flow_rate").value = 5e-6 # unrelated committed change - assert len(pw._added_keys) == 1 # still added - assert pw._start_fields[0].value == 0.123 - assert pw._lb_fields[0].value == 0.01 - assert pw._ub_fields[0].value == 0.99 + assert len(pw.param_space._added_keys) == 1 # still added + assert pw.param_space._start_fields[0].value == 0.123 + assert pw.param_space._lb_fields[0].value == 0.01 + assert pw.param_space._ub_fields[0].value == 0.99 def test_start_field_defaults_to_the_current_config_value_for_a_new_parameter(): @@ -150,7 +150,7 @@ def test_start_field_defaults_to_the_current_config_value_for_a_new_parameter(): _add_param(pw, 0) - assert pw._start_fields[0].value == pw._params[0].current_value + assert pw.param_space._start_fields[0].value == pw.param_space.params[0].current_value def test_bind_to_config_populates_the_component_picker_with_components_and_total(): @@ -247,7 +247,7 @@ def test_saving_a_configuration_and_refreshing_lists_it_as_a_base_process(): pw = ParameterEstimationWidget() cw = ConfigurationWidget() pw.bind_to_config(cw) - cw._name_field.value = "Saved Base" + cw.persistence._name_field.value = "Saved Base" cw.persist_to_store() pw._refresh_store_options() @@ -259,7 +259,7 @@ def test_picking_a_saved_base_process_loads_it_into_the_configuration_and_previe pw = ParameterEstimationWidget() cw = ConfigurationWidget() pw.bind_to_config(cw) - cw._name_field.value = "Saved Base" + cw.persistence._name_field.value = "Saved Base" saved_hash = cw.config_hash cw.persist_to_store() pw._refresh_store_options() @@ -337,9 +337,9 @@ def test_run_estimation_without_an_added_parameter_shows_a_guard_error(): def test_run_estimation_with_a_start_value_outside_its_bounds_shows_a_guard_error(): cw, pw = _bound_widgets() _ready_to_run(cw, pw) - pw._lb_fields[0].value = 0.0 - pw._ub_fields[0].value = 1e-5 - pw._start_fields[0].value = 1.0000001 # far outside [0, 1e-5] + pw.param_space._lb_fields[0].value = 0.0 + pw.param_space._ub_fields[0].value = 1e-5 + pw.param_space._start_fields[0].value = 1.0000001 # far outside [0, 1e-5] pw._on_run(None) @@ -373,7 +373,7 @@ def test_accept_writes_fitted_values_into_the_live_configuration_only_on_click() pw._on_accept(None) - fitted_name = pw._params[0].name # index 0 is always a scalar column field + fitted_name = pw.param_space.params[0].name # index 0 is always a scalar column field assert cw._column_form.collect_values()[fitted_name] == pytest.approx( pw._last_result.fitted[0] ) @@ -452,7 +452,7 @@ def test_run_estimation_passes_the_start_fields_as_starts(monkeypatch): cw, pw = _bound_widgets() _ready_to_run(cw, pw) - pw._start_fields[0].value = 0.123 # deliberately not the config's current value + pw.param_space._start_fields[0].value = 0.123 # deliberately not the config's current value captured = {} def _fake_run_estimation(*args, **kwargs): @@ -544,7 +544,7 @@ def test_progress_tick_skips_the_live_plot_when_the_checkbox_is_off(monkeypatch) pw._progress["optimizer"] = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) pw._live_plot_checkbox.value = False - pw._progress_tick(0.0, None, None, pw._params, [0], None, "outlet", "inlet", 0) + pw._progress_tick(0.0, None, None, pw.param_space.params, [0], None, "outlet", "inlet", 0) assert calls == [] @@ -567,7 +567,7 @@ def test_progress_tick_redraws_the_live_plot_when_the_checkbox_is_on_and_a_gener pw._live_plot_checkbox.value = True last_n_gen = pw._progress_tick( - 0.0, cw.process, cw._column_form.built, pw._params, [0], None, unit, port, 0 + 0.0, cw.process, cw._column_form.built, pw.param_space.params, [0], None, unit, port, 0 ) assert calls == [1] @@ -584,7 +584,7 @@ def test_progress_tick_does_not_redraw_twice_for_the_same_generation(monkeypatch pw._progress["optimizer"] = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) pw._live_plot_checkbox.value = True - last_n_gen = pw._progress_tick(0.0, None, None, pw._params, [0], None, "outlet", "inlet", 1) + last_n_gen = pw._progress_tick(0.0, None, None, pw.param_space.params, [0], None, "outlet", "inlet", 1) assert calls == [] # n_gen (1) == last_n_gen (1) -- nothing new since last tick assert last_n_gen == 1 @@ -604,7 +604,7 @@ def _boom(*a, **k): monkeypatch.setattr(pe_widget, "simulate_at", _boom) optimizer = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) - pw._redraw_live_plot(optimizer, None, None, pw._params, [0], None, "outlet", "inlet") + pw._redraw_live_plot(optimizer, None, None, pw.param_space.params, [0], None, "outlet", "inlet") assert "synthetic failure for the test" in pw._live_plot_error.value diff --git a/tests/test_solution.py b/tests/test_solution.py index b837df6..561edb3 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -216,7 +216,7 @@ def test_solutionwidget_picking_a_failed_run_shows_its_error(): def test_solutionwidget_run_tags_history_with_config_name_and_hash(): cw = ConfigurationWidget() - cw._name_field.value = "My Config" + cw.persistence._name_field.value = "My Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -229,7 +229,7 @@ def test_solutionwidget_run_tags_history_with_config_name_and_hash(): def test_solutionwidget_run_auto_saves_config_to_store(): cw = ConfigurationWidget() - cw._name_field.value = "Auto Saved Config" + cw.persistence._name_field.value = "Auto Saved Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -250,7 +250,7 @@ def test_solutionwidget_run_without_bound_config_leaves_history_untagged(): def test_solutionwidget_run_refuses_when_bound_config_has_no_name(): cw = ConfigurationWidget() - cw._name_field.value = "" # cleared the default name + cw.persistence._name_field.value = "" # cleared the default name sw = SolutionWidget() sw.bind_to_config(cw) @@ -274,14 +274,14 @@ def test_solutionwidget_process_label_shows_the_configuration_name_not_the_proce assert "New Experiment" in sw._process_label.value # the default name, not "Batch Elution" assert "Batch Elution" not in sw._process_label.value - cw._name_field.value = "My Named Config" + cw.persistence._name_field.value = "My Named Config" assert "My Named Config" in sw._process_label.value assert "Batch Elution" not in sw._process_label.value def test_solutionwidget_run_history_label_uses_the_configuration_name(): cw = ConfigurationWidget() - cw._name_field.value = "My Named Config" + cw.persistence._name_field.value = "My Named Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -299,7 +299,7 @@ def test_solutionwidget_load_config_button_hidden_without_a_hash(): def test_solutionwidget_load_config_button_reimports_the_run_configuration(): cw = ConfigurationWidget() - cw._name_field.value = "Reimport Test Config" + cw.persistence._name_field.value = "Reimport Test Config" sw = SolutionWidget() sw.bind_to_config(cw) sw._on_run(None) diff --git a/tests/test_workbench.py b/tests/test_workbench.py index 78415ee..3decf19 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -25,7 +25,7 @@ def test_workbench_builds_and_wires_the_three_widgets(): def test_workbench_wires_parameter_estimation_to_configuration(): wb = WorkbenchWidget() - assert wb.parameter_estimation._param_add_picker.option_labels # bind_to_config populated it + assert wb.parameter_estimation.param_space._param_add_picker.option_labels # bind_to_config populated it assert wb.parameter_estimation._signal_picker.option_labels == [] # nothing previewed yet wb.parameter_estimation._on_preview(None) From 225cc735cfaa0c095b508c748af50e7ab0f52dba Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 15 Sep 2026 16:59:44 +0200 Subject: [PATCH 068/158] Fix Ruff Errors --- cadetgui/widgets/composite/configuration.py | 1 + cadetgui/widgets/composite/configuration_persistence.py | 9 ++++++++- cadetgui/widgets/composite/parameter_space.py | 1 + tests/test_parameter_estimation.py | 6 ++++-- tests/test_workbench.py | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 21da26d..291f63d 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -400,6 +400,7 @@ def _snapshot_state(self) -> ConfigurationState: @property def config_name(self) -> str: + """Name shown in the Save/Load section and used as the save target.""" return self.persistence.config_name @config_name.setter diff --git a/cadetgui/widgets/composite/configuration_persistence.py b/cadetgui/widgets/composite/configuration_persistence.py index aa357f8..dd377f2 100644 --- a/cadetgui/widgets/composite/configuration_persistence.py +++ b/cadetgui/widgets/composite/configuration_persistence.py @@ -5,7 +5,13 @@ import ipywidgets as W -from ...configuration_store import ConfigurationState, compute_hash, load_from_store, load_h5, save_to_store +from ...configuration_store import ( + ConfigurationState, + compute_hash, + load_from_store, + load_h5, + save_to_store, +) from .._settings_popover import toggle_box from ..elements import TextField @@ -96,6 +102,7 @@ def config_hash(self) -> Optional[str]: return None def refresh_hash_display(self) -> None: + """Update the hash line to match the current `config_hash`.""" if self.config_hash is None: self._hash_display.value = "No configuration built yet." else: diff --git a/cadetgui/widgets/composite/parameter_space.py b/cadetgui/widgets/composite/parameter_space.py index e6ee31a..2d6e3dc 100644 --- a/cadetgui/widgets/composite/parameter_space.py +++ b/cadetgui/widgets/composite/parameter_space.py @@ -66,6 +66,7 @@ def __init__(self) -> None: self.root = W.VBox([add_row, self._param_header, self._param_box]) def __len__(self) -> int: + """Return the number of parameters currently added to the fit.""" return len(self._added_keys) @staticmethod diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py index b01b0cd..31e3d3c 100644 --- a/tests/test_parameter_estimation.py +++ b/tests/test_parameter_estimation.py @@ -96,7 +96,7 @@ def test_config_field_changes_rebuild_the_add_parameter_picker(): cw._model_form.element("flow_rate").value = 5e-6 # any committed change - assert len(pw.param_space._param_add_picker.option_labels) == before # rebuilt, same shape, no crash + assert len(pw.param_space._param_add_picker.option_labels) == before # rebuilt, no crash def test_adding_a_parameter_removes_it_from_the_add_picker_and_adds_a_row(): @@ -584,7 +584,9 @@ def test_progress_tick_does_not_redraw_twice_for_the_same_generation(monkeypatch pw._progress["optimizer"] = _FakeOptimizer(_FakeResults(1, [0.5], [[1.0]])) pw._live_plot_checkbox.value = True - last_n_gen = pw._progress_tick(0.0, None, None, pw.param_space.params, [0], None, "outlet", "inlet", 1) + last_n_gen = pw._progress_tick( + 0.0, None, None, pw.param_space.params, [0], None, "outlet", "inlet", 1 + ) assert calls == [] # n_gen (1) == last_n_gen (1) -- nothing new since last tick assert last_n_gen == 1 diff --git a/tests/test_workbench.py b/tests/test_workbench.py index 3decf19..79c62ab 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -25,7 +25,7 @@ def test_workbench_builds_and_wires_the_three_widgets(): def test_workbench_wires_parameter_estimation_to_configuration(): wb = WorkbenchWidget() - assert wb.parameter_estimation.param_space._param_add_picker.option_labels # bind_to_config populated it + assert wb.parameter_estimation.param_space._param_add_picker.option_labels # populated on bind assert wb.parameter_estimation._signal_picker.option_labels == [] # nothing previewed yet wb.parameter_estimation._on_preview(None) From 4131a86c0fc985fe8aa7f533783f5fc3e6b0d4ef Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 21 Sep 2026 11:09:52 +0200 Subject: [PATCH 069/158] Make sidebar configurable --- cadetgui/cadetprocessadapter.py | 5 +- cadetgui/parameters/__init__.py | 7 +- cadetgui/widgets/_sidebar_shell.py | 122 ++++++++++++++++++ cadetgui/widgets/composite/__init__.py | 5 +- cadetgui/widgets/composite/data_import.py | 3 +- cadetgui/widgets/composite/run_history.py | 6 +- cadetgui/widgets/composite/solution.py | 3 +- cadetgui/widgets/composite/workbench.py | 86 +++++++------ cadetgui/widgets/elements/__init__.py | 5 +- cadetgui/widgets/elements/base.py | 4 +- cadetgui/widgets/elements/choice_field.py | 3 +- cadetgui/widgets/forms/__init__.py | 5 +- examples/custom_sidebar.ipynb | 143 ++++++++++++++++++++++ tests/test_configuration.py | 2 +- tests/test_parameter_estimation.py | 6 +- tests/test_sidebar_shell.py | 116 ++++++++++++++++++ tests/test_workbench.py | 24 ++++ 17 files changed, 474 insertions(+), 71 deletions(-) create mode 100644 cadetgui/widgets/_sidebar_shell.py create mode 100644 examples/custom_sidebar.ipynb create mode 100644 tests/test_sidebar_shell.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index 2181d33..a5a3420 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -266,7 +266,7 @@ def _export(v: Mapping[str, Any]) -> list[str]: ) -# CLR/Flip-Flop/MRSSR: see ai-docs/REQUIREMENTS.md "Open decisions". +# CLR/Flip-Flop/MRSSR templates are intentionally not registered yet. MODEL_REGISTRY: dict[str, Callable[[Any], ModelSpec]] = { "Batch Elution": batch_elution_spec, "Load–Wash–Elute (LWE)": lwe_spec, @@ -486,8 +486,7 @@ def build_parameter_config_spec( # the order isn't. Re-order by this model's position in # `parameters/interface.json` instead (a curated, deliberately-ordered # schema) so the rendered field/checklist order is actually stable and - # doesn't reshuffle every time a user restarts their kernel. See - # ai-docs/UPSTREAM_ISSUES.md #4. + # doesn't reshuffle every time a user restarts their kernel. if category is not None: try: schema_order = list(_param_metadata_for(category, model_name)) diff --git a/cadetgui/parameters/__init__.py b/cadetgui/parameters/__init__.py index fd2ff24..7cb783e 100644 --- a/cadetgui/parameters/__init__.py +++ b/cadetgui/parameters/__init__.py @@ -1,9 +1,8 @@ """Loader for the parameter metadata ground truth (`interface.json`). -Framework-agnostic (no widget/CADET-Process imports) -- see -ai-docs/ARCHITECTURE.md's "Parameter metadata schema" for the design and -ai-docs/REQUIREMENTS.md item #5 for why this exists as one file rather than -scattered per-widget constants. +Framework-agnostic (no widget/CADET-Process imports) -- one file rather than +scattered per-widget constants, so every field's unit/min/max/kind has a +single source of truth. """ from __future__ import annotations diff --git a/cadetgui/widgets/_sidebar_shell.py b/cadetgui/widgets/_sidebar_shell.py new file mode 100644 index 0000000..0cb5075 --- /dev/null +++ b/cadetgui/widgets/_sidebar_shell.py @@ -0,0 +1,122 @@ +from __future__ import annotations + +from typing import Callable, Dict, List, Mapping, Optional, Sequence, Tuple, TypeVar + +import ipywidgets as W + +__all__ = ["SidebarShell", "validate_steps", "resolve_step", "collect_panes"] + +_T = TypeVar("_T") + + +class SidebarShell: + """A left-sidebar nav that shows exactly one pane at a time. + + Generic over its panes: takes `(label, widget)` pairs and does only the + nav/show-hide mechanics (single `ToggleButtons`, `layout.display` + toggling -- state on a hidden pane survives switching away from it, same + as `_settings_popover.toggle_box`). Wiring between panes + (`bind_to_config`, `add_listener`, ...) is the caller's job before + constructing this -- `WorkbenchWidget` is the reference example. + """ + + def __init__(self, panes: Sequence[Tuple[str, W.Widget]]) -> None: + if not panes: + raise ValueError("SidebarShell needs at least one pane") + labels = [label for label, _ in panes] + if len(set(labels)) != len(labels): + raise ValueError(f"Pane labels must be unique, got {labels!r}") + + self._order: List[str] = labels + self.panes: Dict[str, W.Widget] = dict(panes) + for widget in self.panes.values(): + widget.layout.display = "none" + + self.nav = W.ToggleButtons(options=self._order) + self.nav.add_class("cadetgui-sidebar-nav") + self.nav.observe(self._on_nav_change, names="index") + + content = W.VBox(list(self.panes.values())) + content.add_class("cadetgui-workbench-content") + + self.body = W.HBox([self.nav, content]) + self.body.add_class("cadetgui-workbench-body") + + self.show(self._order[0]) + + def show(self, label: str) -> None: + """Switch to the pane registered under `label`.""" + for name, widget in self.panes.items(): + widget.layout.display = "" if name == label else "none" + if self.nav.value != label: + self.nav.value = label + + def _on_nav_change(self, change: dict) -> None: + if change.get("name") != "index": + return + self.show(self._order[change["new"]]) + + def display(self) -> None: + """Render this widget in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.body) + + +def validate_steps(steps: Sequence[str], known: Sequence[str]) -> None: + """Raise ValueError if `steps` contains anything outside `known`. + + For validating an `include=(...)` argument against the fixed set of + steps a shell actually knows how to build -- see `resolve_step` for the + per-step half of the same pattern. + """ + unknown = set(steps) - set(known) + if unknown: + raise ValueError( + f"Unknown step(s) {sorted(unknown)!r}, expected a subset of {tuple(known)!r}" + ) + + +def resolve_step( + label: str, + given: Optional[_T], + *, + steps: Sequence[str], + factory: Callable[[], _T], +) -> Optional[_T]: + """Resolve one optional, possibly-excluded pane's widget. + + The recurring shape behind any `WorkbenchWidget`-style "build me a + sidebar over these steps, let the caller inject their own widget for + any of them" composer: + + - `given` (an explicit pre-built widget, or None) always wins. + - Otherwise, build a fresh default via `factory()` -- but only if + `label` is actually in `steps`; an excluded step resolves to `None` + rather than being built and then hidden, so skipping a step costs + nothing (no widget constructed, nothing to wire listeners to). + - Passing `given` for a `label` not in `steps` is a contradiction (you + supplied a widget for a step you also said to skip) and raises, + rather than silently building it anyway or silently dropping it. + + A shell with three optional steps calls this once per step: + + self.configuration = resolve_step( + "Configuration", configuration, steps=steps, factory=ConfigurationWidget + ) + """ + if given is not None and label not in steps: + raise ValueError(f"{label!r} widget was given but not in include={tuple(steps)!r}") + if given is not None: + return given + return factory() if label in steps else None + + +def collect_panes(order: Sequence[str], slots: Mapping[str, Optional[_T]]) -> List[Tuple[str, _T]]: + """Build `SidebarShell`'s pane list from a `{label: widget-or-None}` map. + + Keeps `order`'s ordering; drops any label whose slot is `None` -- the + "excluded via `include`" result `resolve_step` returns -- since + `SidebarShell` requires every pane it's given to be a real widget. + """ + return [(label, slots[label]) for label in order if slots.get(label) is not None] diff --git a/cadetgui/widgets/composite/__init__.py b/cadetgui/widgets/composite/__init__.py index eb9f82e..284717b 100644 --- a/cadetgui/widgets/composite/__init__.py +++ b/cadetgui/widgets/composite/__init__.py @@ -1,7 +1,4 @@ -"""Task widgets assembled from elements + forms. - -See ai-docs/ARCHITECTURE.md's "Composition, not inheritance-of-everything" note. -""" +"""Task widgets assembled from elements + forms.""" from .configuration import ConfigurationWidget from .data_import import DataImportWidget, ExperimentalDataset from .parameter_estimation import ParameterEstimationWidget diff --git a/cadetgui/widgets/composite/data_import.py b/cadetgui/widgets/composite/data_import.py index 50808b6..c4ecb10 100644 --- a/cadetgui/widgets/composite/data_import.py +++ b/cadetgui/widgets/composite/data_import.py @@ -44,7 +44,8 @@ class DataImportWidget: Assumes a header row and uses the file's first two columns as time/signal — full column mapping (PRODUCT_VISION.md §13) is bigger scope, not built yet. - `SolutionWidget.bind_to_data()` overlays loaded datasets on its plot. + `ParameterEstimationWidget` nests one (`.data`) as its experimental-data + source; see its docstring. """ def __init__(self) -> None: diff --git a/cadetgui/widgets/composite/run_history.py b/cadetgui/widgets/composite/run_history.py index afe546e..f5a7a36 100644 --- a/cadetgui/widgets/composite/run_history.py +++ b/cadetgui/widgets/composite/run_history.py @@ -33,9 +33,9 @@ class RunHistoryWidget: """Chronological list of run results; pick one to revisit. Reusable across anything that produces multiple results over time — forward - simulation runs today, estimation candidates / optimization solutions later - (see ai-docs/REQUIREMENTS.md's "Next widgets" gap analysis). Callers `record()` - a run and `add_listener()` to react when the user picks one to view. + simulation runs today, estimation candidates / optimization solutions later. + Callers `record()` a run and `add_listener()` to react when the user picks + one to view. """ def __init__(self) -> None: diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py index e42b026..5cfe26d 100644 --- a/cadetgui/widgets/composite/solution.py +++ b/cadetgui/widgets/composite/solution.py @@ -16,8 +16,7 @@ class SolutionWidget: """Run a CADET-Process process and plot its solution. - Plots via `SolutionIO.plot()` directly (CADET-Process already provides it — - see ai-docs/ARCHITECTURE.md's "no duplicated numerical engine" principle). + Plots via `SolutionIO.plot()` directly rather than reimplementing plotting. """ def __init__( diff --git a/cadetgui/widgets/composite/workbench.py b/cadetgui/widgets/composite/workbench.py index 54fffc1..d479de8 100644 --- a/cadetgui/widgets/composite/workbench.py +++ b/cadetgui/widgets/composite/workbench.py @@ -1,10 +1,11 @@ from __future__ import annotations -from typing import Dict, Optional +from typing import Optional, Sequence import ipywidgets as W from .._chrome import logo_data_uri, style_tag +from .._sidebar_shell import SidebarShell, collect_panes, resolve_step, validate_steps from .configuration import ConfigurationWidget from .parameter_estimation import ParameterEstimationWidget from .solution import SolutionWidget @@ -20,39 +21,63 @@ class WorkbenchWidget: Builds and wires a `ConfigurationWidget`, `SolutionWidget`, and `ParameterEstimationWidget` together (same bindings as examples/configuration_and_solution.ipynb), showing exactly one at a time - via a left sidebar instead of stacking all three inline. Each stays a - plain attribute (`.configuration`/`.solution`/`.parameter_estimation`) for - scripting — the shell is purely a navigation convenience, not a black box. + via `SidebarShell` (`widgets/_sidebar_shell.py`) instead of stacking all + three inline. Each stays a plain attribute + (`.configuration`/`.solution`/`.parameter_estimation`) for scripting — + this class is purely "the known three widgets, pre-wired, in a sidebar," + not a black box; a different combination of widgets is a different + `SidebarShell` call, not a change to this class. + + `include` narrows which steps are built and shown at all (default: all + three) — e.g. `WorkbenchWidget(include=("Configuration", "Simulation"))` + for a notebook that has no use for parameter estimation. Skipping a step + also skips its own construction and its `bind_to_config` wiring, so it + costs nothing (no widgets built, no listeners attached) rather than just + being hidden. Passing an explicit widget for a step not in `include` is + a contradiction and raises `ValueError` rather than silently dropping it. """ def __init__( self, *, + include: Optional[Sequence[str]] = None, configuration: Optional[ConfigurationWidget] = None, solution: Optional[SolutionWidget] = None, parameter_estimation: Optional[ParameterEstimationWidget] = None, ) -> None: - self.configuration = configuration or ConfigurationWidget() - self.solution = solution or SolutionWidget() - self.parameter_estimation = parameter_estimation or ParameterEstimationWidget() + steps = tuple(include) if include is not None else _STEPS + validate_steps(steps, _STEPS) - self.solution.bind_to_config(self.configuration) - self.parameter_estimation.bind_to_config(self.configuration) - - self._panes: Dict[str, W.Widget] = { - "Configuration": self.configuration.root, - "Simulation": self.solution.root, - "Parameter Estimation": self.parameter_estimation.root, - } - for root in self._panes.values(): - root.layout.display = "none" - - self._nav = W.ToggleButtons(options=list(_STEPS)) - self._nav.add_class("cadetgui-sidebar-nav") - self._nav.observe(self._on_nav_change, names="index") + self.configuration = resolve_step( + "Configuration", configuration, steps=steps, factory=ConfigurationWidget + ) + self.solution = resolve_step( + "Simulation", solution, steps=steps, factory=SolutionWidget + ) + self.parameter_estimation = resolve_step( + "Parameter Estimation", + parameter_estimation, + steps=steps, + factory=ParameterEstimationWidget, + ) - self._content = W.VBox(list(self._panes.values())) - self._content.add_class("cadetgui-workbench-content") + if self.configuration is not None: + for dependent in (self.solution, self.parameter_estimation): + if dependent is not None: + dependent.bind_to_config(self.configuration) + + panes = collect_panes( + _STEPS, + { + "Configuration": self.configuration.root if self.configuration else None, + "Simulation": self.solution.root if self.solution else None, + "Parameter Estimation": ( + self.parameter_estimation.root if self.parameter_estimation else None + ), + }, + ) + self._shell = SidebarShell(panes) + self._nav = self._shell.nav # exposed for scripting/tests, same name as before the split top_bar = W.HTML( "
" @@ -60,24 +85,11 @@ def __init__( "Workbench" "
" ) - body = W.HBox([self._nav, self._content]) - body.add_class("cadetgui-workbench-body") - self.root = W.VBox([W.HTML(style_tag()), top_bar, body]) + self.root = W.VBox([W.HTML(style_tag()), top_bar, self._shell.body]) self.root.add_class("cadetgui-panel") self.root.add_class("cadetgui-workbench") - self._show(_STEPS[0]) - - def _on_nav_change(self, change: dict) -> None: - if change.get("name") != "index": - return - self._show(_STEPS[change["new"]]) - - def _show(self, step: str) -> None: - for name, root in self._panes.items(): - root.layout.display = "" if name == step else "none" - def display(self) -> None: """Render this widget in a Jupyter cell.""" from IPython.display import display as _display diff --git a/cadetgui/widgets/elements/__init__.py b/cadetgui/widgets/elements/__init__.py index b0e5da8..97d46f6 100644 --- a/cadetgui/widgets/elements/__init__.py +++ b/cadetgui/widgets/elements/__init__.py @@ -1,7 +1,4 @@ -"""Atomic anywidget input controls — the target implementation. - -See ai-docs/ARCHITECTURE.md for the element contract these follow. -""" +"""Atomic anywidget input controls — the target implementation.""" from .base import Element from .bool_field import BoolField from .choice_field import ChoiceField diff --git a/cadetgui/widgets/elements/base.py b/cadetgui/widgets/elements/base.py index dac7026..a56e340 100644 --- a/cadetgui/widgets/elements/base.py +++ b/cadetgui/widgets/elements/base.py @@ -13,8 +13,8 @@ class Element(anywidget.AnyWidget): """Base for atomic input widgets: value + label + validation, synced to JS. - Implements the element contract from ai-docs/ARCHITECTURE.md: state via - `error`/`is_valid`, events via traitlets' own `.observe()`. Subclasses define + Implements the element contract (input/output/state/validation/events): state + via `error`/`is_valid`, events via traitlets' own `.observe()`. Subclasses define their own `value` — either a synced trait directly (`FloatField`, `TextField`, ...) for JSON-safe types, or a plain Python property backed by a different synced trait (`ChoiceField.selected_index`) when the true value isn't diff --git a/cadetgui/widgets/elements/choice_field.py b/cadetgui/widgets/elements/choice_field.py index c68865a..005f267 100644 --- a/cadetgui/widgets/elements/choice_field.py +++ b/cadetgui/widgets/elements/choice_field.py @@ -17,8 +17,7 @@ class ChoiceField(Element): `value` may be any Python object, not just JSON-serializable ones — only the option labels and the selected index cross the anywidget sync boundary; - the label -> value mapping stays server-side (see ai-docs/ARCHITECTURE.md's - Element contract for why). + the label -> value mapping stays server-side. """ option_labels = T.List(T.Unicode()).tag(sync=True) diff --git a/cadetgui/widgets/forms/__init__.py b/cadetgui/widgets/forms/__init__.py index 9c8a15d..3ef93b9 100644 --- a/cadetgui/widgets/forms/__init__.py +++ b/cadetgui/widgets/forms/__init__.py @@ -1,7 +1,4 @@ -"""Renders a ModelSpec into a form of anywidget Elements. - -See ai-docs/ARCHITECTURE.md's data-flow section for where this fits. -""" +"""Renders a ModelSpec into a form of anywidget Elements.""" from .renderer import FormRenderer, element_for_field __all__ = ["FormRenderer", "element_for_field"] diff --git a/examples/custom_sidebar.ipynb b/examples/custom_sidebar.ipynb new file mode 100644 index 0000000..8a68449 --- /dev/null +++ b/examples/custom_sidebar.ipynb @@ -0,0 +1,143 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# CADET-GUI: build your own sidebar combination\n", + "\n", + "`WorkbenchWidget` (see `examples/workbench.ipynb`) is a fixed convenience:\n", + "it always builds the same three widgets (`ConfigurationWidget`,\n", + "`SolutionWidget`, `ParameterEstimationWidget`) and its `include=` kwarg only\n", + "lets you turn individual ones of *those three* off -- it cannot add a\n", + "widget outside that set.\n", + "\n", + "The actual general-purpose building block is `SidebarShell`\n", + "(`cadetgui/widgets/_sidebar_shell.py`): it takes any `(label, widget)`\n", + "pairs and shows exactly one at a time. This notebook combines\n", + "`ConfigurationWidget` + `SolutionWidget` + a standalone `DataImportWidget`\n", + "-- a combination `WorkbenchWidget` cannot express, since `DataImportWidget`\n", + "isn't one of its three known steps." + ], + "id": "fa150e50" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from cadetgui.widgets._sidebar_shell import SidebarShell\n", + "from cadetgui.widgets.composite import ConfigurationWidget, DataImportWidget, SolutionWidget" + ], + "id": "b2c0379c" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Build whichever widgets you want, in any combination\n", + "\n", + "Nothing here is limited to a fixed set of names -- these are the same\n", + "widget classes `WorkbenchWidget` uses internally, constructed directly." + ], + "id": "fb0e188e" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "config = ConfigurationWidget()\n", + "solution = SolutionWidget()\n", + "data = DataImportWidget()" + ], + "id": "7e96d27f" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Wire whatever bindings the widgets you picked actually support\n", + "\n", + "`SidebarShell` knows nothing about `bind_to_config`/`add_listener` -- that\n", + "wiring is domain-specific to the widgets involved, so it happens here,\n", + "before the shell is built (same as `WorkbenchWidget.__init__` does\n", + "internally). `DataImportWidget` isn't wired to anything in this example --\n", + "it's just browsed alongside the simulation, not bound to it." + ], + "id": "ad978a67" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "solution.bind_to_config(config)" + ], + "id": "6a7a9f91" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Hand the panes to `SidebarShell`\n", + "\n", + "One `(label, widget)` pair per pane, in whatever order you want them to\n", + "appear -- no `include=`, no fixed step names, nothing to opt in or out of\n", + "beyond simply not listing a widget here." + ], + "id": "38257e74" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "shell = SidebarShell(\n", + " [\n", + " (\"Configuration\", config.root),\n", + " (\"Simulation\", solution.root),\n", + " (\"Experimental Data\", data.root),\n", + " ]\n", + ")\n", + "shell.display()" + ], + "id": "f929dd69" + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with every widget in `cadetgui.widgets.composite`, nothing is trapped\n", + "inside the shell -- `config`, `solution`, and `data` stay plain attributes\n", + "you can keep scripting against after the cell above renders." + ], + "id": "bf154f3a" + } + ], + "metadata": { + "kernelspec": { + "display_name": "cadet_dev", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/tests/test_configuration.py b/tests/test_configuration.py index e50c51f..298458d 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -246,7 +246,7 @@ def test_binding_model_scales_to_multiple_named_components(): # concentration defaults (e.g. c_feed=[10.0]) that CADET-Process rejects # for n_comp != 1. Pre-existing adapter-layer limitation, unrelated to # component naming; column/binding config already scale correctly, as - # this test shows. See ai-docs/REQUIREMENTS.md. + # this test shows. def test_binding_form_fields_get_component_names_matching_component_system(): diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py index 31e3d3c..5e10ce5 100644 --- a/tests/test_parameter_estimation.py +++ b/tests/test_parameter_estimation.py @@ -464,10 +464,8 @@ def _fake_run_estimation(*args, **kwargs): pw._on_run(None) # If `_on_run` ever returns before calling `run_estimation` (e.g. a - # future regression re-introducing param-order instability -- see - # ai-docs/UPSTREAM_ISSUES.md #4 for the CADET-Process bug this caught, - # and cadetprocessadapter.py's `build_parameter_config_spec` for the fix), - # surface *why* via the guard-clause message instead of a bare KeyError. + # future regression re-introducing param-order instability), surface + # *why* via the guard-clause message instead of a bare KeyError. assert "starts" in captured, ( f"run_estimation was never called; pw.status was: {pw.status.value!r}" ) diff --git a/tests/test_sidebar_shell.py b/tests/test_sidebar_shell.py new file mode 100644 index 0000000..bf976ce --- /dev/null +++ b/tests/test_sidebar_shell.py @@ -0,0 +1,116 @@ +from __future__ import annotations + +import ipywidgets as W +import pytest +from cadetgui.widgets._sidebar_shell import ( + SidebarShell, + collect_panes, + resolve_step, + validate_steps, +) + + +def _pane() -> W.Widget: + return W.HTML("pane") + + +def test_sidebar_shell_shows_only_the_first_pane_initially(): + a, b = _pane(), _pane() + shell = SidebarShell([("A", a), ("B", b)]) + + assert a.layout.display == "" + assert b.layout.display == "none" + assert shell.nav.index == 0 + + +def test_sidebar_shell_nav_click_switches_the_visible_pane(): + a, b = _pane(), _pane() + shell = SidebarShell([("A", a), ("B", b)]) + + shell.nav.index = 1 + + assert a.layout.display == "none" + assert b.layout.display == "" + + +def test_sidebar_shell_show_switches_the_visible_pane_and_the_nav(): + a, b = _pane(), _pane() + shell = SidebarShell([("A", a), ("B", b)]) + + shell.show("B") + + assert a.layout.display == "none" + assert b.layout.display == "" + assert shell.nav.value == "B" + + +def test_sidebar_shell_rejects_empty_panes(): + with pytest.raises(ValueError): + SidebarShell([]) + + +def test_sidebar_shell_rejects_duplicate_labels(): + with pytest.raises(ValueError): + SidebarShell([("A", _pane()), ("A", _pane())]) + + +def test_sidebar_shell_combines_arbitrary_widgets_not_just_composite_ones(): + """The whole point of the split: any (label, widget) pairs, not a fixed set.""" + picker = W.Dropdown(options=["x", "y"]) + plot_out = W.Output() + + shell = SidebarShell([("Pick", picker), ("Plot", plot_out)]) + + assert picker.layout.display == "" + assert plot_out.layout.display == "none" + + +def test_validate_steps_accepts_a_subset_of_known(): + validate_steps(("A",), known=("A", "B")) # no raise + + +def test_validate_steps_rejects_anything_outside_known(): + with pytest.raises(ValueError): + validate_steps(("A", "C"), known=("A", "B")) + + +def test_resolve_step_uses_the_given_widget_when_provided(): + widget = object() + + assert resolve_step("A", widget, steps=("A",), factory=object) is widget + + +def test_resolve_step_builds_a_default_when_included_and_nothing_given(): + sentinel = object() + + resolved = resolve_step("A", None, steps=("A", "B"), factory=lambda: sentinel) + + assert resolved is sentinel + + +def test_resolve_step_skips_construction_when_excluded(): + calls = [] + + resolved = resolve_step("A", None, steps=("B",), factory=lambda: calls.append(1)) + + assert resolved is None + assert calls == [] # factory never ran + + +def test_resolve_step_rejects_a_given_widget_for_an_excluded_step(): + with pytest.raises(ValueError): + resolve_step("A", object(), steps=("B",), factory=object) + + +def test_collect_panes_keeps_order_and_drops_none_slots(): + a, c = object(), object() + + panes = collect_panes(("A", "B", "C"), {"A": a, "B": None, "C": c}) + + assert panes == [("A", a), ("C", c)] + + +def test_collect_panes_tolerates_a_slot_missing_from_the_map(): + panes = collect_panes(("A", "B"), {"A": "x"}) + + assert panes == [("A", "x")] diff --git a/tests/test_workbench.py b/tests/test_workbench.py index 79c62ab..8091120 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -80,3 +80,27 @@ def test_workbench_accepts_prebuilt_widgets(): assert wb.solution is sw assert wb.parameter_estimation is pw assert sw.process is cw.process + + +def test_workbench_include_builds_only_the_requested_steps(): + wb = WorkbenchWidget(include=("Configuration", "Simulation")) + + assert wb.configuration is not None + assert wb.solution is not None + assert wb.parameter_estimation is None + assert list(wb._nav.options) == ["Configuration", "Simulation"] + assert wb.solution.process is wb.configuration.process + + +def test_workbench_include_rejects_unknown_step(): + with pytest.raises(ValueError): + WorkbenchWidget(include=("Configuration", "Not A Step")) + + +def test_workbench_include_rejects_widget_for_excluded_step(): + from cadetgui.widgets.composite import ParameterEstimationWidget + + with pytest.raises(ValueError): + WorkbenchWidget( + include=("Configuration",), parameter_estimation=ParameterEstimationWidget() + ) From 722f7e7f9a9b7afbb37506ccaae28da85af6e960 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Mon, 21 Sep 2026 11:11:02 +0200 Subject: [PATCH 070/158] Update gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 6897669..5fdeb03 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ results_* # AI-assisted development notes (local working docs, not for the repo yet) ai-docs/ + +presentations/ From 0731bcfc66b2f8def15a3141038805c7c7a10122 Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 22 Sep 2026 09:06:20 +0200 Subject: [PATCH 071/158] Add instruments and switch to phased process --- cadetgui/cadetprocessadapter.py | 346 ++++++------- cadetgui/configuration_store.py | 32 +- cadetgui/parameter_estimation.py | 2 +- cadetgui/run_store.py | 133 +++++ cadetgui/widgets/composite/__init__.py | 2 + cadetgui/widgets/composite/configuration.py | 338 +++++++------ cadetgui/widgets/composite/instrument.py | 302 ++++++++++++ .../widgets/composite/parameter_estimation.py | 2 +- cadetgui/widgets/composite/run_history.py | 123 ++++- cadetgui/widgets/composite/solution.py | 59 ++- cadetgui/widgets/composite/workbench.py | 46 +- examples/configuration_and_solution.ipynb | 78 ++- examples/custom_sidebar.ipynb | 13 +- examples/webapp/app.ipynb | 75 ++- tests/test_configuration.py | 459 ++++++++---------- tests/test_configuration_store.py | 18 +- tests/test_parameter_estimation.py | 40 +- tests/test_parameter_estimation_adapter.py | 8 +- tests/test_run_history.py | 78 +++ tests/test_run_store.py | 106 ++++ tests/test_solution.py | 113 ++++- tests/test_workbench.py | 37 +- 22 files changed, 1688 insertions(+), 722 deletions(-) create mode 100644 cadetgui/run_store.py create mode 100644 cadetgui/widgets/composite/instrument.py create mode 100644 tests/test_run_store.py diff --git a/cadetgui/cadetprocessadapter.py b/cadetgui/cadetprocessadapter.py index a5a3420..a252362 100644 --- a/cadetgui/cadetprocessadapter.py +++ b/cadetgui/cadetprocessadapter.py @@ -3,22 +3,26 @@ from dataclasses import dataclass, field from typing import Any, Callable, Dict, Literal, Mapping, Optional, Sequence -from CADETProcess.modelBuilder import LWE, BatchElution +from CADETProcess.instruments import ( + LWE, + Breakthrough, + LCFlowSheet, + PulseInjection, + Step, + StepElution, +) from CADETProcess.processModel import ( BindingBaseClass, ChromatographicColumnBase, ComponentSystem, Cstr, - FlowSheet, GeneralRateModel, Inlet, Langmuir, Linear, LumpedRateModelWithoutPores, LumpedRateModelWithPores, - NoBinding, Outlet, - Process, StericMassAction, ) @@ -70,41 +74,34 @@ def parse_float_list(v: Any) -> list[float]: # Units: mol/m^3_IV (inlet.rst CONST_COEFF), s (solver.rst SECTION_TIMES), # flow_rate m^3/s by consistency with CADET-Core's other flow-rate fields. # -# Concentration fields (c_feed, c_load, c_salt_low, c_salt_high, c_eluent) -# aren't here -- they're per-component (`Inlet.c`), built by -# `_concentration_field()` per model-spec call instead. +# Concentration fields (c_buffer_a, c_buffer_b, c_sample) aren't here -- +# they're per-component (`Inlet.c`), built by `_concentration_field()` per +# model-spec call instead. PARAMS: dict[str, FieldSpec] = { "flow_rate": FieldSpec( "flow_rate", "float", "Flow rate", 1.0e-6, validate=require_positive, units="m^3/s", ), - "feed_duration": FieldSpec( - "feed_duration", "float", "Feed duration", 60.0, - validate=require_positive, units="s", - ), - "load_duration": FieldSpec( - "load_duration", "float", "Load duration", 60.0, - validate=require_positive, units="s", + "flow_rate_wash": FieldSpec( + "flow_rate_wash", "float", "Flow rate", 1.0e-6, + validate=require_positive, units="m^3/s", ), "cycle_time": FieldSpec( "cycle_time", "float", "Cycle time", 6000.0, validate=require_positive, units="s", ), - "pulse_duration": FieldSpec( - "pulse_duration", "float", "Pulse duration", 60.0, + "delta_t_wash": FieldSpec( + "delta_t_wash", "float", "Wash duration", 600.0, validate=require_positive, units="s", ), - "wash_duration": FieldSpec( - "wash_duration", "float", "Wash duration", 10.0, + "delta_t_elute": FieldSpec( + "delta_t_elute", "float", "Elution duration", 1200.0, validate=require_positive, units="s", ), - "gradient_duration": FieldSpec( - "gradient_duration", "float", "Gradient duration", 10.0, + "delta_t_final_wash": FieldSpec( + "delta_t_final_wash", "float", "Final wash duration", 600.0, validate=require_positive, units="s", ), - "final_wash_duration": FieldSpec( - "final_wash_duration", "float", "Final wash duration", 10.0, units="s", - ), } @@ -115,12 +112,6 @@ class ModelSpec: title: str fields: list[FieldSpec] = field(default_factory=list) build: Callable[[Mapping[str, Any]], Any] | None = None - # Script lines constructing `process` from `column`/`component_system`, for - # export_script(). None means the default `Cls(column=column, **values)` - # pattern (true for a CADET-Process model-builder like BatchElution/LWE); - # a model that wires its own flow sheet instead (e.g. Pulse Feed) provides - # its own. - export: Callable[[Mapping[str, Any]], list[str]] | None = None def _pick(keys: Sequence[str]) -> list[FieldSpec]: @@ -128,10 +119,10 @@ def _pick(keys: Sequence[str]) -> list[FieldSpec]: def _concentration_field( - name: str, label: str, default_scalar: float, unit: Any + name: str, label: str, default_scalar: float, component_system: ComponentSystem ) -> FieldSpec: - """Per-component concentration field, sized/named from the unit's ComponentSystem.""" - names = tuple(unit.component_system.names) + """Per-component concentration field, sized/named from the given ComponentSystem.""" + names = tuple(component_system.names) n_comp = len(names) or 1 return FieldSpec( name, "float_list", label, [default_scalar] * n_comp, @@ -139,205 +130,168 @@ def _concentration_field( ) -def batch_elution_spec(column: ChromatographicColumnBase) -> ModelSpec: - """Build the Batch Elution model's ModelSpec for the given column.""" +def pulse_injection_spec(flow_sheet: LCFlowSheet) -> ModelSpec: + """Build the Pulse Injection template's ModelSpec for the given instrument.""" + cs = flow_sheet.component_system def _build(v: Mapping[str, Any]) -> Any: - return BatchElution( - column=column, - c_feed=v["c_feed"], - flow_rate=float(v["flow_rate"]), - feed_duration=float(v["feed_duration"]), + return PulseInjection( + "pulse_injection", flow_sheet, + c_buffer_a=v["c_buffer_a"], + c_sample=v["c_sample"], cycle_time=float(v["cycle_time"]), - c_eluent=v["c_eluent"], + flow_rate=float(v["flow_rate"]), ) fields = [ - _concentration_field("c_feed", "Feed concentration", 10.0, column), - *_pick(["flow_rate", "feed_duration", "cycle_time"]), - _concentration_field("c_eluent", "Eluent concentration", 0.0, column), + _concentration_field("c_buffer_a", "Buffer A concentration", 0.0, cs), + _concentration_field("c_sample", "Sample concentration", 10.0, cs), + *_pick(["cycle_time", "flow_rate"]), ] - return ModelSpec(title="Batch Elution", fields=fields, build=_build) + return ModelSpec(title="Pulse Injection", fields=fields, build=_build) -def lwe_spec(column: ChromatographicColumnBase) -> ModelSpec: - """Build the Load-Wash-Elute model's ModelSpec for the given column.""" +def step_spec(flow_sheet: LCFlowSheet) -> ModelSpec: + """Build the Step template's ModelSpec for the given instrument.""" + cs = flow_sheet.component_system def _build(v: Mapping[str, Any]) -> Any: - return LWE( - column=column, - c_load=v["c_load"], - c_salt_low=v["c_salt_low"], - c_salt_high=v["c_salt_high"], + return Step( + "step", flow_sheet, + c_buffer_a=v["c_buffer_a"], + c_buffer_b=v["c_buffer_b"], + cycle_time=float(v["cycle_time"]), flow_rate=float(v["flow_rate"]), - load_duration=float(v["load_duration"]), - wash_duration=float(v["wash_duration"]), - gradient_duration=float(v["gradient_duration"]), - final_wash_duration=float(v["final_wash_duration"]), ) fields = [ - _concentration_field("c_load", "Load concentration", 50.0, column), - _concentration_field("c_salt_low", "Low-salt buffer", 50.0, column), - _concentration_field("c_salt_high", "High-salt buffer", 500.0, column), - *_pick([ - "flow_rate", "load_duration", "wash_duration", "gradient_duration", - "final_wash_duration", - ]), + _concentration_field("c_buffer_a", "Buffer A concentration", 0.0, cs), + _concentration_field("c_buffer_b", "Buffer B concentration", 1000.0, cs), + *_pick(["cycle_time", "flow_rate"]), ] - return ModelSpec(title="Load–Wash–Elute (LWE)", fields=fields, build=_build) + return ModelSpec(title="Step", fields=fields, build=_build) -def pulse_feed_spec(unit: Any) -> ModelSpec: - """Build the Pulse Feed (Single Component) model's ModelSpec for the given unit. +def lwe_spec(flow_sheet: LCFlowSheet) -> ModelSpec: + """Build the Load-Wash-Elute template's ModelSpec for the given instrument. - Unlike Batch Elution/LWE, this isn't a CADET-Process model-builder class -- - there is no predefined one for a plain feed-into-unit setup -- so it wires - the flow sheet and events directly. Works with any unit operation, not - just a `ChromatographicColumnBase` (e.g. `Cstr`, which isn't one). + `flow_rate_elute`/`flow_rate_final_wash` aren't exposed separately here -- + both default to `flow_rate_wash` (CADET-Process's own default), a + deliberately narrower slice than the full three-flow-rate constructor. """ - names = tuple(unit.component_system.names) - - def _c_feed(v: Mapping[str, Any]) -> list[float]: - c_feed = [0.0] * (len(names) or 1) - if v["component"] in names: - c_feed[names.index(v["component"])] = float(v["concentration"]) - return c_feed + cs = flow_sheet.component_system def _build(v: Mapping[str, Any]) -> Any: - component_system = unit.component_system - feed = Inlet(component_system, name="feed") - feed.flow_rate = float(v["flow_rate"]) - outlet = Outlet(component_system, name="outlet") - - flow_sheet = FlowSheet(component_system) - flow_sheet.add_unit(feed, feed_inlet=True) - flow_sheet.add_unit(unit) - flow_sheet.add_unit(outlet, product_outlet=True) - flow_sheet.add_connection(feed, unit) - flow_sheet.add_connection(unit, outlet) - - process = Process(flow_sheet, "Pulse Feed") - process.cycle_time = float(v["cycle_time"]) - process.add_duration("pulse_duration", float(v["pulse_duration"])) - - c_feed = _c_feed(v) - process.add_event("pulse_on", "flow_sheet.feed.c", c_feed) - process.add_event("pulse_off", "flow_sheet.feed.c", [0.0] * len(c_feed)) - process.add_event_dependency("pulse_off", ["pulse_on", "pulse_duration"], [1, 1]) - return process - - def _export(v: Mapping[str, Any]) -> list[str]: - c_feed = _c_feed(v) - c_off = [0.0] * len(c_feed) - return [ - "", - "feed = Inlet(component_system, name='feed')", - f"feed.flow_rate = {float(v['flow_rate'])!r}", - "outlet = Outlet(component_system, name='outlet')", - "", - "flow_sheet = FlowSheet(component_system)", - "flow_sheet.add_unit(feed, feed_inlet=True)", - "flow_sheet.add_unit(column)", - "flow_sheet.add_unit(outlet, product_outlet=True)", - "flow_sheet.add_connection(feed, column)", - "flow_sheet.add_connection(column, outlet)", - "", - "process = Process(flow_sheet, 'Pulse Feed')", - f"process.cycle_time = {float(v['cycle_time'])!r}", - f"process.add_duration('pulse_duration', {float(v['pulse_duration'])!r})", - f"process.add_event('pulse_on', 'flow_sheet.feed.c', {c_feed!r})", - f"process.add_event('pulse_off', 'flow_sheet.feed.c', {c_off!r})", - "process.add_event_dependency('pulse_off', ['pulse_on', 'pulse_duration'], [1, 1])", - ] + return LWE( + "lwe", flow_sheet, + c_buffer_a=v["c_buffer_a"], + c_buffer_b=v["c_buffer_b"], + c_sample=v["c_sample"], + delta_t_wash=float(v["delta_t_wash"]), + delta_t_elute=float(v["delta_t_elute"]), + delta_t_final_wash=float(v["delta_t_final_wash"]), + flow_rate_wash=float(v["flow_rate_wash"]), + ) fields = [ - FieldSpec( - "component", "choice", "Component", names[0] if names else None, - options=tuple((n, n) for n in names), - ), - FieldSpec( - "concentration", "float", "Pulse concentration", 10.0, units=CONCENTRATION_UNITS, - ), - *_pick(["flow_rate", "pulse_duration", "cycle_time"]), + _concentration_field("c_buffer_a", "Buffer A concentration", 20.0, cs), + _concentration_field("c_buffer_b", "Buffer B concentration", 1000.0, cs), + _concentration_field("c_sample", "Sample concentration", 20.0, cs), + *_pick(["delta_t_wash", "delta_t_elute", "delta_t_final_wash", "flow_rate_wash"]), ] - return ModelSpec( - title="Pulse Feed (Single Component)", fields=fields, build=_build, export=_export - ) - - -# CLR/Flip-Flop/MRSSR templates are intentionally not registered yet. -MODEL_REGISTRY: dict[str, Callable[[Any], ModelSpec]] = { - "Batch Elution": batch_elution_spec, - "Load–Wash–Elute (LWE)": lwe_spec, - "Pulse Feed (Single Component)": pulse_feed_spec, -} + return ModelSpec(title="Load–Wash–Elute (LWE)", fields=fields, build=_build) -ColumnFactory = Callable[[ComponentSystem], ChromatographicColumnBase] +def step_elution_spec(flow_sheet: LCFlowSheet) -> ModelSpec: + """Build the Step Elution template's ModelSpec for the given instrument. -def make_grm(cs: ComponentSystem) -> ChromatographicColumnBase: - """Build a General Rate Model column for the given component system.""" - col = GeneralRateModel(cs, name="GRM") - return col + Same scope note as `lwe_spec`: only `flow_rate_wash` is exposed. + """ + cs = flow_sheet.component_system + def _build(v: Mapping[str, Any]) -> Any: + return StepElution( + "step_elution", flow_sheet, + c_buffer_a=v["c_buffer_a"], + c_buffer_b=v["c_buffer_b"], + c_sample=v["c_sample"], + delta_t_wash=float(v["delta_t_wash"]), + delta_t_elute=float(v["delta_t_elute"]), + delta_t_final_wash=float(v["delta_t_final_wash"]), + flow_rate_wash=float(v["flow_rate_wash"]), + ) -def make_lrmp(cs: ComponentSystem) -> ChromatographicColumnBase: - """Build a Lumped Rate Model With Pores column for the given component system.""" - col = LumpedRateModelWithPores(cs, name="LRMP") - return col + fields = [ + _concentration_field("c_buffer_a", "Buffer A concentration", 20.0, cs), + _concentration_field("c_buffer_b", "Buffer B concentration", 1000.0, cs), + _concentration_field("c_sample", "Sample concentration", 20.0, cs), + *_pick(["delta_t_wash", "delta_t_elute", "delta_t_final_wash", "flow_rate_wash"]), + ] + return ModelSpec(title="Step Elution", fields=fields, build=_build) -def make_lrm(cs: ComponentSystem) -> ChromatographicColumnBase: - """Build a Lumped Rate Model Without Pores column for the given component system.""" - col = LumpedRateModelWithoutPores(cs, name="LRM") - return col +def breakthrough_spec(flow_sheet: LCFlowSheet) -> ModelSpec: + """Build the Breakthrough template's ModelSpec for the given instrument.""" + cs = flow_sheet.component_system + def _build(v: Mapping[str, Any]) -> Any: + return Breakthrough( + "breakthrough", flow_sheet, + c_sample=v["c_sample"], + flow_rate=float(v["flow_rate"]), + cycle_time=float(v["cycle_time"]), + sample_buffer=v["sample_buffer"], + ) -def make_cstr(cs: ComponentSystem) -> ChromatographicColumnBase: - """Build a CSTR column for the given component system.""" - col = Cstr(cs, name="CSTR") - return col + fields = [ + _concentration_field("c_sample", "Sample concentration", 10.0, cs), + *_pick(["flow_rate", "cycle_time"]), + FieldSpec( + "sample_buffer", "choice", "Sample delivered via", "F", + options=( + ("Feed inlet (F)", "F"), ("Buffer A", "A"), ("Buffer B", "B"), + ("Buffer C", "C"), ("Buffer D", "D"), + ), + ), + ] + return ModelSpec(title="Breakthrough", fields=fields, build=_build) -# Dict keys double as the dropdown's option labels, written out in full. -DEFAULT_COLUMN_FACTORIES: Dict[str, ColumnFactory] = { - "General Rate Model (GRM)": make_grm, - "Lumped Rate Model With Pores (LRMP)": make_lrmp, - "Lumped Rate Model Without Pores (LRM)": make_lrm, - "Continuous Stirred Tank Reactor (CSTR)": make_cstr, +# PhasedProcess's fully generic phase-list composition is out of scope here -- +# see REQUIREMENTS.md's "generic user-authored event widget" open decision. +INSTRUMENT_TEMPLATES: dict[str, Callable[[LCFlowSheet], ModelSpec]] = { + "Pulse Injection": pulse_injection_spec, + "Step": step_spec, + "Load–Wash–Elute (LWE)": lwe_spec, + "Step Elution": step_elution_spec, + "Breakthrough": breakthrough_spec, } -BindingFactory = Callable[[ComponentSystem], BindingBaseClass] - - -def make_no_binding(cs: ComponentSystem) -> BindingBaseClass: - """Build a NoBinding model for the given component system.""" - return NoBinding(cs, name="NoBinding") - - -def make_linear_binding(cs: ComponentSystem) -> BindingBaseClass: - """Build a Linear binding model for the given component system.""" - return Linear(cs, name="Linear") - - -def make_langmuir_binding(cs: ComponentSystem) -> BindingBaseClass: - """Build a Langmuir binding model for the given component system.""" - return Langmuir(cs, name="Langmuir") - - -def make_sma_binding(cs: ComponentSystem) -> BindingBaseClass: - """Build a Steric Mass Action binding model for the given component system.""" - return StericMassAction(cs, name="StericMassAction") +# Units `LCFlowSheet(bypass_units=...)` accepts (CADET-Process's own +# `_BYPASSABLE` set, not exported -- mirrored here rather than reached into). +BYPASSABLE_UNITS: tuple[str, ...] = ( + "mixer", "tubing_pre_injection", "tubing_pre_column", + "column", "tubing_post_column", "tubing_detectors", +) +# `LCFlowSheet(ColumnModel=...)` takes the class itself -- it instantiates and +# names the column ("column") internally, so this is a plain class registry, +# not an instance-factory like the old `DEFAULT_COLUMN_FACTORIES`. CSTR isn't +# a `ChromatographicColumnBase` and doesn't fit LCFlowSheet's column slot -- +# it's not carried forward from the old "Pulse Feed" workaround, which is gone. +COLUMN_MODELS: Dict[str, type] = { + "General Rate Model (GRM)": GeneralRateModel, + "Lumped Rate Model With Pores (LRMP)": LumpedRateModelWithPores, + "Lumped Rate Model Without Pores (LRM)": LumpedRateModelWithoutPores, +} -# "None" first so a ChoiceField over this dict defaults to it, matching -# CADET-Process's own default (an unconfigured column already has NoBinding). -DEFAULT_BINDING_FACTORIES: Dict[str, BindingFactory] = { - "None": make_no_binding, - "Linear": make_linear_binding, - "Langmuir": make_langmuir_binding, - "Steric Mass Action (SMA)": make_sma_binding, +# "None" first so a ChoiceField over this dict defaults to it -- LCFlowSheet +# leaves the column's own default (NoBinding) in place when BindingModel=None. +BINDING_MODELS: Dict[str, Optional[type]] = { + "None": None, + "Linear": Linear, + "Langmuir": Langmuir, + "Steric Mass Action (SMA)": StericMassAction, } @@ -556,7 +510,10 @@ def classify_signal_ports(result: Any) -> list[tuple[str, tuple[str, str]]]: outlet is the common case (`ChoiceField.set_options(..., keep_value=True)` defaults to index 0 when nothing was previously selected, so this is what determines the signal picker's default in both `SolutionWidget` and - `ParameterEstimationWidget`). + `ParameterEstimationWidget`). An `LCFlowSheet` always has two Outlets + (`outlet`, the product; `waste`) -- the unit literally named `"outlet"` is + sorted first among sinks, not just "any Outlet", so `waste` stays a valid + but secondary choice rather than competing for the default. """ units = result.process.flow_sheet.units_dict sinks: list[tuple[str, tuple[str, str]]] = [] @@ -568,8 +525,9 @@ def classify_signal_ports(result: Any) -> list[tuple[str, tuple[str, str]]]: others.append((f"{unit_name}: Source", (unit_name, "outlet"))) elif isinstance(unit, Outlet): if "inlet" in ports: - sinks.append((f"{unit_name}: Sink", (unit_name, "inlet"))) + sinks.append((unit_name, f"{unit_name}: Sink", (unit_name, "inlet"))) else: for port in ports: others.append((f"{unit_name}: {port}", (unit_name, port))) - return sinks + others + sinks.sort(key=lambda entry: entry[0] != "outlet") + return [(label, value) for _, label, value in sinks] + others diff --git a/cadetgui/configuration_store.py b/cadetgui/configuration_store.py index 4c45519..366433a 100644 --- a/cadetgui/configuration_store.py +++ b/cadetgui/configuration_store.py @@ -12,6 +12,7 @@ from . import __version__ as _cadetgui_version __all__ = [ + "InstrumentState", "ConfigurationState", "compute_hash", "default_store_dir", @@ -24,12 +25,24 @@ @dataclass(frozen=True) -class ConfigurationState: - """The hashed, JSON-safe payload needed to reconstruct a ConfigurationWidget.""" +class InstrumentState: + """The hashed, JSON-safe payload needed to reconstruct an InstrumentWidget.""" components: List[str] column_key: str binding_key: str + include_sample_loop: bool = True + sample_loop_volume: float = 50e-9 + sample_loop_diameter_auto: bool = True + sample_loop_diameter: float = 0.75e-3 + bypass_units: List[str] = field(default_factory=list) + + +@dataclass(frozen=True) +class ConfigurationState: + """The hashed, JSON-safe payload needed to reconstruct a ConfigurationWidget.""" + + instrument: InstrumentState template_key: str multiplex_state: Dict[str, bool] = field(default_factory=dict) show_optional_column: bool = False @@ -118,10 +131,19 @@ def load_h5(path: "Path | str") -> Tuple[str, ConfigurationState]: raise ValueError(f"{path} has no 'cadetgui' group -- not a saved configuration.") payload = gui["state"] + instrument_payload = payload["instrument"] + instrument = InstrumentState( + components=instrument_payload["components"], + column_key=instrument_payload["column_key"], + binding_key=instrument_payload["binding_key"], + include_sample_loop=instrument_payload.get("include_sample_loop", True), + sample_loop_volume=instrument_payload.get("sample_loop_volume", 50e-9), + sample_loop_diameter_auto=instrument_payload.get("sample_loop_diameter_auto", True), + sample_loop_diameter=instrument_payload.get("sample_loop_diameter", 0.75e-3), + bypass_units=list(instrument_payload.get("bypass_units", [])), + ) state = ConfigurationState( - components=payload["components"], - column_key=payload["column_key"], - binding_key=payload["binding_key"], + instrument=instrument, template_key=payload["template_key"], multiplex_state=payload.get("multiplex_state", {}), show_optional_column=payload.get("show_optional_column", False), diff --git a/cadetgui/parameter_estimation.py b/cadetgui/parameter_estimation.py index 00afdf8..7a96e84 100644 --- a/cadetgui/parameter_estimation.py +++ b/cadetgui/parameter_estimation.py @@ -178,7 +178,7 @@ def _register_variables( # otherwise) -- without it every variable is optimized in its own # raw, wildly different units (e.g. porosity ~0.7 next to axial # dispersion ~1e-8), which Nelder-Mead's simplex handles poorly. - normalization="auto", + transform="auto", **kwargs, ) diff --git a/cadetgui/run_store.py b/cadetgui/run_store.py new file mode 100644 index 0000000..265be12 --- /dev/null +++ b/cadetgui/run_store.py @@ -0,0 +1,133 @@ +from __future__ import annotations + +import datetime as dt +import json +import uuid +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any, List, Optional + +from . import __version__ as _cadetgui_version + +__all__ = [ + "RunRecordState", + "default_run_store_dir", + "new_run_id", + "run_output_path", + "save_run", + "load_run", + "list_runs", + "load_run_results", +] + + +@dataclass(frozen=True) +class RunRecordState: + """Persisted run metadata. The raw CADET-Core output (if any) is a sibling `.h5`.""" + + run_id: str + label: str + timestamp: str + ok: bool + config_hash: Optional[str] = None + config_name: Optional[str] = None + error: Optional[str] = None + cadetgui_version: str = _cadetgui_version + + +def default_run_store_dir() -> Path: + """Local directory saved run records live in, if a caller doesn't pick one.""" + store_dir = Path.home() / ".cadetgui" / "runs" + store_dir.mkdir(parents=True, exist_ok=True) + return store_dir + + +def new_run_id() -> str: + """Return a fresh identifier for one run, shared by its manifest and raw-output file.""" + return uuid.uuid4().hex + + +def _manifest_path(run_id: str, store_dir: Path) -> Path: + return store_dir / f"{run_id}.json" + + +def run_output_path(run_id: str, *, store_dir: Optional[Path] = None) -> Path: + """Where a run's raw CADET-Core output h5 belongs, whether or not it exists yet. + + Only meaningful for the file-based simulator path (`Cadet(use_dll=False)`, + the default) -- a run made via the CAPI (`use_dll=True`) never writes one. + """ + store_dir = store_dir or default_run_store_dir() + return store_dir / f"{run_id}.h5" + + +def save_run( + run_id: str, + label: str, + *, + ok: bool, + config_hash: Optional[str] = None, + config_name: Optional[str] = None, + error: Optional[str] = None, + store_dir: Optional[Path] = None, +) -> RunRecordState: + """Write one run's metadata. + + The caller is responsible for the raw output file, if any -- it must + already sit at `run_output_path(run_id, store_dir=store_dir)` before this + is called with `ok=True`. + """ + store_dir = store_dir or default_run_store_dir() + store_dir.mkdir(parents=True, exist_ok=True) + state = RunRecordState( + run_id=run_id, + label=label, + timestamp=dt.datetime.now().isoformat(), + ok=ok, + config_hash=config_hash, + config_name=config_name, + error=error, + ) + _manifest_path(run_id, store_dir).write_text(json.dumps(asdict(state), indent=2)) + return state + + +def load_run(run_id: str, *, store_dir: Optional[Path] = None) -> RunRecordState: + """Read one run's metadata by id.""" + store_dir = store_dir or default_run_store_dir() + path = _manifest_path(run_id, store_dir) + if not path.exists(): + raise FileNotFoundError(f"No recorded run {run_id!r} in {store_dir}.") + return RunRecordState(**json.loads(path.read_text())) + + +def list_runs(*, store_dir: Optional[Path] = None) -> List[RunRecordState]: + """List every recorded run, newest first. Silently skips unreadable manifests.""" + store_dir = store_dir or default_run_store_dir() + paths = sorted(store_dir.glob("*.json"), key=lambda p: p.stat().st_mtime, reverse=True) + records = [] + for path in paths: + try: + records.append(RunRecordState(**json.loads(path.read_text()))) + except Exception: # noqa: BLE001 + continue + return records + + +def load_run_results( + run: RunRecordState, process: Any, *, store_dir: Optional[Path] = None +) -> Any: + """Reconstruct a real SimulationResults for a persisted run from its rebuilt Process. + + `process` must already reflect the same configuration the run was made + against (e.g. via `ConfigurationWidget.import_from_store(run.config_hash)`) + -- this only re-reads the stored solver output, it never re-simulates. + """ + if not run.ok: + raise ValueError(f"Run {run.run_id!r} recorded a failure, not a result.") + output_path = run_output_path(run.run_id, store_dir=store_dir) + if not output_path.exists(): + raise FileNotFoundError(f"No stored output for run {run.run_id!r} at {output_path}.") + from CADETProcess.simulator import Cadet + + return Cadet().load_simulation_results(process, output_path) diff --git a/cadetgui/widgets/composite/__init__.py b/cadetgui/widgets/composite/__init__.py index 284717b..06caea9 100644 --- a/cadetgui/widgets/composite/__init__.py +++ b/cadetgui/widgets/composite/__init__.py @@ -1,12 +1,14 @@ """Task widgets assembled from elements + forms.""" from .configuration import ConfigurationWidget from .data_import import DataImportWidget, ExperimentalDataset +from .instrument import InstrumentWidget from .parameter_estimation import ParameterEstimationWidget from .run_history import RunHistoryWidget, RunRecord from .solution import SolutionWidget from .workbench import WorkbenchWidget __all__ = [ + "InstrumentWidget", "ConfigurationWidget", "SolutionWidget", "RunHistoryWidget", diff --git a/cadetgui/widgets/composite/configuration.py b/cadetgui/widgets/composite/configuration.py index 291f63d..c353353 100644 --- a/cadetgui/widgets/composite/configuration.py +++ b/cadetgui/widgets/composite/configuration.py @@ -4,40 +4,42 @@ from typing import Any, Callable, Dict, List, Mapping, Optional import ipywidgets as W +from CADETProcess.instruments import LCFlowSheet from CADETProcess.processModel import ComponentSystem from ...cadetprocessadapter import ( + BYPASSABLE_UNITS, CONCENTRATION_UNITS, - DEFAULT_BINDING_FACTORIES, - DEFAULT_COLUMN_FACTORIES, - MODEL_REGISTRY, + INSTRUMENT_TEMPLATES, MULTIPLEXABLE_COLUMN_PARAMS, PARAMS, - batch_elution_spec, build_parameter_config_spec, lwe_spec, require_positive, + step_elution_spec, ) from ...configuration_store import ConfigurationState from .._chrome import style_tag from .._settings_popover import SettingsPopover from ..elements import ( ChoiceField, - ComponentListField, EventTimelineChart, FloatField, ) from ..forms import FormRenderer from .configuration_persistence import ConfigurationPersistence +from .instrument import InstrumentWidget __all__ = ["ConfigurationWidget"] _CYCLE_TIME_SLIDER_MAX_SECONDS = 300.0 * 60.0 _DEFAULT_CONFIG_NAME = "New Experiment" -# These templates model a buffer/salt gradient against a load, which is +# These templates model a buffer/salt gradient against a load/sample, which is # meaningless with a single component -- auto-add a second one on selection. -_TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS = frozenset({batch_elution_spec, lwe_spec}) +# Pulse Injection/Step/Breakthrough stay single-component-friendly on purpose +# (a non-binding tracer pulse is the standard characterization experiment). +_TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS = frozenset({lwe_spec, step_elution_spec}) def _round_10sf(v: float) -> float: @@ -51,9 +53,12 @@ def _key_for_value(registry: Mapping[str, Any], value: Any) -> Optional[str]: class ConfigurationWidget: - """Pick a unit operation + binding model + model-builder template, build a process. + """Pick a process template and configure it against a bound InstrumentWidget. - Rebuilds its forms whenever the component count, column, binding model, or + Column/binding *type* and topology live on the bound `InstrumentWidget` + (see `bind_to_instrument`); this widget renders their *parameter* forms + (against `instrument.flow_sheet.column`/`.column.binding_model`) plus the + process-template form. Rebuilds whenever the bound instrument or the process-template selection changes. `.process` holds the latest successfully-built object; `add_listener` registers a callback that fires with it on every successful build. @@ -62,15 +67,11 @@ class ConfigurationWidget: def __init__( self, *, - registry: Optional[Dict[str, Callable[[Any], Any]]] = None, - columns: Optional[Dict[str, Callable[[ComponentSystem], Any]]] = None, - binding_registry: Optional[Dict[str, Callable[[ComponentSystem], Any]]] = None, + instrument: Optional[InstrumentWidget] = None, + registry: Optional[Dict[str, Callable[[LCFlowSheet], Any]]] = None, ) -> None: - self._registry = registry or MODEL_REGISTRY - self._columns = columns or DEFAULT_COLUMN_FACTORIES - self._binding_registry = binding_registry or DEFAULT_BINDING_FACTORIES - self._column_cache: Dict[Any, Any] = {} - self._binding_cache: Dict[Any, Any] = {} + self._registry = registry or INSTRUMENT_TEMPLATES + self._instrument: Optional[InstrumentWidget] = None self._listeners: List[Callable[[Any], None]] = [] self.process: Any = None self._column_form: Optional[FormRenderer] = None @@ -78,9 +79,9 @@ def __init__( self._model_form: Optional[FormRenderer] = None self._event_sliders: Dict[str, W.FloatSlider] = {} self._cycle_time_minutes_element: Optional[FloatField] = None - # Set around _apply_state()'s picker/component writes so each one's own - # observer doesn't trigger its own full rebuild -- one rebuild for the - # whole restored selection instead of one per field touched. + # Set around _apply_state()'s picker writes so each one's own observer + # doesn't trigger its own full rebuild -- one rebuild for the whole + # restored selection instead of one per field touched. self._suspend_rebuild = False # Column Model gear popover: "Show optional parameters" + one "Enable @@ -128,25 +129,12 @@ def __init__( visible=False, ) - # "Components:" row editor in the Component System section. - self._components = ComponentListField(label="Components:") - self._component_note = W.HTML(layout=W.Layout(display="none")) - self._component_note.add_class("cadetgui-note") - # The three dropdowns sitting above their own form, one per section. - self._column_picker = ChoiceField( - label="Column Model:", options=list(self._columns.items()), - value=self._columns.get("Lumped Rate Model Without Pores (LRM)"), - ) - self._binding_picker = ChoiceField( - label="Binding Model:", options=list(self._binding_registry.items()), - value=self._binding_registry.get("Linear"), - ) self._model_picker = ChoiceField( label="Process Template:", options=list(self._registry.items()) ) # Empty boxes filled in by _rebuild_forms() with each FormRenderer's - # rendered fields once a column/binding model/template is picked. + # rendered fields once an instrument/template is available. self._column_form_box = W.VBox([]) self._binding_form_box = W.VBox([]) self._model_form_box = W.VBox([]) @@ -155,7 +143,7 @@ def __init__( self._event_plot_label = W.HTML("
Event Timeline
") self._event_chart = EventTimelineChart() # Status line at the very bottom of the panel. - self.status = W.HTML("Select a column and model.") + self.status = W.HTML("Bind an Instrument to get started.") self.status.add_class("cadetgui-status") # "Export script" button + the generated-script textarea below it. @@ -172,15 +160,6 @@ def __init__( on_name_change=lambda _name: self._notify(), # e.g. the Simulation tab's process label ) - components_section = W.VBox( - [ - W.HTML("
Component System
"), - self._components, - self._component_note, - ] - ) - components_section.add_class("cadetgui-section") - column_header = W.HBox( [ W.HTML("
Column Model
"), @@ -192,7 +171,6 @@ def __init__( [ column_header, self._column_settings.box, - self._column_picker, self._column_form_box, ] ) @@ -210,7 +188,6 @@ def __init__( [ binding_header, self._binding_settings.box, - self._binding_picker, self._binding_form_box, ] ) @@ -252,7 +229,6 @@ def __init__( W.HTML(style_tag()), W.HTML("
Configuration
"), self.persistence.root, - components_section, column_binding_row, process_section, self._btn_export, @@ -262,12 +238,16 @@ def __init__( ) self.root.add_class("cadetgui-panel") - self._components.observe(self._on_components_change, names="value") - self._column_picker.observe(self._on_selection_change, names="selected_index") - self._binding_picker.observe(self._on_selection_change, names="selected_index") self._model_picker.observe(self._on_model_selection_change, names="selected_index") self._btn_export.on_click(self._on_export) + if instrument is not None: + self.bind_to_instrument(instrument) + + def bind_to_instrument(self, instrument: InstrumentWidget) -> None: + """Track an InstrumentWidget's built flow sheet automatically.""" + self._instrument = instrument + instrument.add_listener(self._on_instrument_changed) self._sync_component_minimum() if not self._maybe_autoadd_component(): self._rebuild_forms() @@ -280,37 +260,30 @@ def _notify(self) -> None: for fn in list(self._listeners): fn(self.process) + @property + def flow_sheet(self) -> Optional[LCFlowSheet]: + """The bound instrument's current flow sheet, or None if unbound/unbuilt.""" + return self._instrument.flow_sheet if self._instrument is not None else None + + @property + def components(self) -> List[str]: + """The bound instrument's current component names, or [] if unbound.""" + return self._instrument.components if self._instrument is not None else [] + def _get_column(self) -> Any: - factory = self._column_picker.value - if factory is None: - return None - if factory not in self._column_cache: - cs = ComponentSystem(self._components.value) - self._column_cache[factory] = factory(cs) - return self._column_cache[factory] + flow_sheet = self.flow_sheet + return getattr(flow_sheet, "column", None) if flow_sheet is not None else None def _get_binding_model(self) -> Any: - factory = self._binding_picker.value column = self._get_column() - if factory is None or column is None: - return None - # Keyed by id(column): a binding model's component_system must be the same - # object as its column's, and each column gets its own. - cache_key = (factory, id(column)) - if cache_key not in self._binding_cache: - self._binding_cache[cache_key] = factory(column.component_system) - return self._binding_cache[cache_key] - - def _on_components_change(self, change: dict) -> None: - if change.get("name") != "value": - return - self._column_cache.clear() - self._binding_cache.clear() - self._rebuild_forms() + return getattr(column, "binding_model", None) if column is not None else None - def _on_selection_change(self, change: dict) -> None: - if change.get("name") != "selected_index": + def _on_instrument_changed(self, _flow_sheet: Any) -> None: + if self._suspend_rebuild: return + self._sync_component_minimum() + if self._maybe_autoadd_component(): + return # setting instrument.components already rebuilt the forms self._rebuild_forms() def _on_model_selection_change(self, change: dict) -> None: @@ -318,7 +291,7 @@ def _on_model_selection_change(self, change: dict) -> None: return self._sync_component_minimum() if self._maybe_autoadd_component(): - return # setting self._components.value already rebuilt the forms + return # setting instrument.components already rebuilt the forms self._rebuild_forms() def _required_min_components(self) -> int: @@ -326,28 +299,19 @@ def _required_min_components(self) -> int: return 2 if model_fn in _TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS else 1 def _sync_component_minimum(self) -> None: - """Raise/lower the component list's floor to match the selected template. - - Also drives the info note next to it and (via `min_components`) greys - out the list's remove button once the row count hits the floor. - """ - required = self._required_min_components() - self._components.min_components = required - if required > 1: - self._component_note.value = ( - "The process template you selected does not allow less than" - f" {required} components." - ) - self._component_note.layout.display = "" - else: - self._component_note.layout.display = "none" + """Raise/lower the bound instrument's component-list floor to match the template.""" + if self._instrument is None: + return + self._instrument.set_min_components(self._required_min_components()) def _maybe_autoadd_component(self) -> bool: """Add a second component when a gradient template needs one but only one exists.""" + if self._instrument is None: + return False required = self._required_min_components() - names = self._components.value + names = self._instrument.components if len(names) < required: - self._components.value = [ + self._instrument.components = [ *names, *(f"Component {i}" for i in range(len(names) + 1, required + 1)), ] @@ -375,26 +339,27 @@ def _on_process_built(self, built: Any) -> None: self.status.value = "Process built." def _snapshot_state(self) -> ConfigurationState: - """Capture the current selection + field values as the hashed save/import payload.""" - if self._column_form is None or self._binding_form is None or self._model_form is None: + """Capture the current selection + field values as the hashed save/import payload. + + `_column_form`/`_binding_form` are legitimately `None` when the + instrument bypasses the column entirely -- only `_model_form` (the + process itself) is required. + """ + if self._instrument is None or self._model_form is None: raise RuntimeError( - "Nothing built yet -- pick a column, binding model, and template first." + "Nothing built yet -- bind an Instrument and pick a template first." ) - column_key = _key_for_value(self._columns, self._column_picker.value) - binding_key = _key_for_value(self._binding_registry, self._binding_picker.value) template_key = _key_for_value(self._registry, self._model_picker.value) - if column_key is None or binding_key is None or template_key is None: + if template_key is None: raise RuntimeError("Current selection isn't in a known registry -- can't snapshot it.") return ConfigurationState( - components=list(self._components.value), - column_key=column_key, - binding_key=binding_key, + instrument=self._instrument.snapshot(), template_key=template_key, multiplex_state=dict(self._multiplex_state), show_optional_column=bool(self._show_optional_column_checkbox.value), show_optional_binding=bool(self._show_optional_binding_checkbox.value), - column_values=self._column_form.collect_values(), - binding_values=self._binding_form.collect_values(), + column_values=self._column_form.collect_values() if self._column_form else {}, + binding_values=self._binding_form.collect_values() if self._binding_form else {}, model_values=self._model_form.collect_values(), ) @@ -428,13 +393,13 @@ def import_from_store(self, hash_: str) -> None: self.persistence.import_from_store(hash_) def _apply_state(self, name: str, state: ConfigurationState) -> None: - """Reconstruct pickers/forms from a saved ConfigurationState.""" - column_factory = self._columns.get(state.column_key) - binding_factory = self._binding_registry.get(state.binding_key) + """Reconstruct the bound instrument/pickers/forms from a saved ConfigurationState.""" + if self._instrument is None: + raise RuntimeError("No Instrument bound -- call bind_to_instrument() first.") template_factory = self._registry.get(state.template_key) - if column_factory is None or binding_factory is None or template_factory is None: + if template_factory is None: raise ValueError( - "Saved configuration references a column, binding model, or template" + "Saved configuration references a process template" " that isn't registered here anymore." ) @@ -446,16 +411,16 @@ def _apply_state(self, name: str, state: ConfigurationState) -> None: checkbox.value = enabled self._show_optional_column_checkbox.value = state.show_optional_column self._show_optional_binding_checkbox.value = state.show_optional_binding - self._components.value = list(state.components) - self._column_picker.value = column_factory - self._binding_picker.value = binding_factory + self._instrument.apply_state(state.instrument) self._model_picker.value = template_factory finally: self._suspend_rebuild = False self._rebuild_forms() - self._column_form.set_values(state.column_values) - self._binding_form.set_values(state.binding_values) + if self._column_form is not None: + self._column_form.set_values(state.column_values) + if self._binding_form is not None: + self._binding_form.set_values(state.binding_values) self._model_form.set_values(state.model_values) self.persistence.set_name(name) @@ -466,7 +431,8 @@ def _rebuild_forms(self) -> None: column = self._get_column() binding_model = self._get_binding_model() model_fn = self._model_picker.value - if column is None or binding_model is None or model_fn is None: + flow_sheet = self.flow_sheet + if flow_sheet is None or model_fn is None: self._column_form_box.children = () self._binding_form_box.children = () self._model_form_box.children = () @@ -474,35 +440,41 @@ def _rebuild_forms(self) -> None: self.persistence.refresh_hash_display() return - column_params = set(getattr(column, "required_parameters", None) or []) - applicable = column_params & MULTIPLEXABLE_COLUMN_PARAMS - for name, checkbox in self._multiplex_checkboxes.items(): - checkbox.layout.display = "" if name in applicable else "none" - # "Show optional parameters" applies to every column model, unlike - # the multiplex checkboxes above -- the gear stays visible regardless - # of `applicable`. - - self._column_form = FormRenderer( - build_parameter_config_spec( - column, - multiplex=self._multiplex_state, - include_optional=self._show_optional_column_checkbox.value, + if column is not None: + column_params = set(getattr(column, "required_parameters", None) or []) + applicable = column_params & MULTIPLEXABLE_COLUMN_PARAMS + for name, checkbox in self._multiplex_checkboxes.items(): + checkbox.layout.display = "" if name in applicable else "none" + + self._column_form = FormRenderer( + build_parameter_config_spec( + column, + multiplex=self._multiplex_state, + include_optional=self._show_optional_column_checkbox.value, + ) ) - ) - self._column_form_box.children = (self._column_form.root,) + self._column_form_box.children = (self._column_form.root,) + else: + self._column_form = None + self._column_form_box.children = () - def _attach_binding(built: Any, col: Any = column) -> None: - col.binding_model = built + if binding_model is not None: - self._binding_form = FormRenderer( - build_parameter_config_spec( - binding_model, include_optional=self._show_optional_binding_checkbox.value - ), - on_built=_attach_binding, - ) - self._binding_form_box.children = (self._binding_form.root,) + def _attach_binding(built: Any, col: Any = column) -> None: + col.binding_model = built + + self._binding_form = FormRenderer( + build_parameter_config_spec( + binding_model, include_optional=self._show_optional_binding_checkbox.value + ), + on_built=_attach_binding, + ) + self._binding_form_box.children = (self._binding_form.root,) + else: + self._binding_form = None + self._binding_form_box.children = () - self._model_form = FormRenderer(model_fn(column), on_built=self._on_process_built) + self._model_form = FormRenderer(model_fn(flow_sheet), on_built=self._on_process_built) self._model_form_box.children = (self._model_form.root,) self._rebuild_event_sliders() # The model form's own on_built=_on_process_built fires from inside the @@ -666,7 +638,7 @@ def _redraw_event_plot(self) -> None: parts = name.split(".") unit_op = parts[-2] if len(parts) >= 2 else name display_name = unit_op.replace("_", " ").capitalize() - component_names = self._components.value + component_names = self._instrument.components if self._instrument else [] for col in range(n_cols): if n_cols == 1: label = display_name @@ -707,59 +679,81 @@ def export_script(self) -> str: """ if ( self.process is None - or self._column_form is None - or self._binding_form is None + or self._instrument is None + or self._instrument.flow_sheet is None or self._model_form is None ): raise RuntimeError( - "Nothing built yet — pick a column, binding model, and process template first." + "Nothing built yet — bind an Instrument and pick a process template first." ) + flow_sheet = self._instrument.flow_sheet column = self._get_column() binding_model = self._get_binding_model() cs_cls = ComponentSystem - col_cls = type(column) - bind_cls = type(binding_model) proc_cls = type(self.process) - model_spec = self._model_form.spec + state = self._instrument.snapshot() imports = [ f"from {cs_cls.__module__} import {cs_cls.__name__}", - f"from {col_cls.__module__} import {col_cls.__name__}", - f"from {bind_cls.__module__} import {bind_cls.__name__}", - f"from {proc_cls.__module__} import {proc_cls.__name__}", + f"from {LCFlowSheet.__module__} import LCFlowSheet", ] - if model_spec.export is not None: - imports.append("from CADETProcess.processModel import FlowSheet, Inlet, Outlet") + if column is not None: + col_cls = type(column) + imports.append(f"from {col_cls.__module__} import {col_cls.__name__}") + if binding_model is not None: + bind_cls = type(binding_model) + imports.append(f"from {bind_cls.__module__} import {bind_cls.__name__}") + imports.append(f"from {proc_cls.__module__} import {proc_cls.__name__}") lines = [ *imports, "", - f"component_system = {cs_cls.__name__}({self._components.value!r})", + f"component_system = {cs_cls.__name__}({state.components!r})", "", - f"column = {col_cls.__name__}(component_system, name={column.name!r})", ] - for name, value in self._column_form.collect_values().items(): - lines.append(f"column.{name} = {value!r}") - lines.append("") - lines.append( - f"column.binding_model = {bind_cls.__name__}(" - f"component_system, name={binding_model.name!r})" - ) - for name, value in self._binding_form.collect_values().items(): - lines.append(f"column.binding_model.{name} = {value!r}") + flow_sheet_kwargs = ["component_system"] + if state.include_sample_loop: + flow_sheet_kwargs.append(f"sample_loop_volume={state.sample_loop_volume!r}") + if not state.sample_loop_diameter_auto: + flow_sheet_kwargs.append(f"sample_loop_diameter={state.sample_loop_diameter!r}") + if column is not None: + flow_sheet_kwargs.append(f"ColumnModel={type(column).__name__}") + if binding_model is not None: + flow_sheet_kwargs.append(f"BindingModel={type(binding_model).__name__}") + if state.bypass_units: + flow_sheet_kwargs.append(f"bypass_units={state.bypass_units!r}") + lines.append("flow_sheet = LCFlowSheet(" + ", ".join(flow_sheet_kwargs) + ")") + + # Mixer/tubing dead-volume geometry has no parameter form (see + # instrument.py's seeding note) -- emit its live values directly. + for unit_name in BYPASSABLE_UNITS: + if unit_name == "column": + continue + unit = getattr(flow_sheet, unit_name, None) + if unit is None: + continue + lines.append("") + for pname in unit.required_parameters: + lines.append(f"flow_sheet.{unit_name}.{pname} = {getattr(unit, pname)!r}") - model_values = self._model_form.collect_values() - if model_spec.export is not None: - lines.extend(model_spec.export(model_values)) - else: + if column is not None: + lines.append("") + for name, value in self._column_form.collect_values().items(): + lines.append(f"flow_sheet.column.{name} = {value!r}") + + if binding_model is not None: lines.append("") - lines.append(f"process = {proc_cls.__name__}(") - lines.append(" column=column,") - for name, value in model_values.items(): - lines.append(f" {name}={value!r},") - lines.append(")") + for name, value in self._binding_form.collect_values().items(): + lines.append(f"flow_sheet.column.binding_model.{name} = {value!r}") + + model_values = self._model_form.collect_values() + lines.append("") + lines.append(f"process = {proc_cls.__name__}({self.process.name!r}, flow_sheet,") + for name, value in model_values.items(): + lines.append(f" {name}={value!r},") + lines.append(")") return "\n".join(lines) diff --git a/cadetgui/widgets/composite/instrument.py b/cadetgui/widgets/composite/instrument.py new file mode 100644 index 0000000..8ab6f07 --- /dev/null +++ b/cadetgui/widgets/composite/instrument.py @@ -0,0 +1,302 @@ +from __future__ import annotations + +from typing import Any, Callable, Dict, List, Optional + +import ipywidgets as W +from CADETProcess.instruments import LCFlowSheet +from CADETProcess.processModel import ComponentSystem + +from ...cadetprocessadapter import BINDING_MODELS, BYPASSABLE_UNITS, COLUMN_MODELS +from ...configuration_store import InstrumentState +from .._chrome import style_tag +from ..elements import ChoiceField, ComponentListField, FloatField + +__all__ = ["InstrumentWidget"] + + +def _key_for_value(registry: Dict[str, Any], value: Any) -> Optional[str]: + """Reverse-lookup a registry's human label for one of its values.""" + return next((k for k, v in registry.items() if v == value), None) + + +# Narrow, deliberate scope: mixer/tubing dead-volume geometry has no parameter +# form in this pass (unlike column/binding, which ConfigurationWidget still +# renders) -- seeded here with small, non-degenerate placeholder values so a +# fresh instrument is immediately simulatable. Real per-unit editing is future +# scope (REQUIREMENTS.md's "numerics/discretization exposure" item). +_TUBING_DIAMETER = 0.5e-3 +_TUBING_LENGTH = 0.1 +_TUBING_AXIAL_DISPERSION = 1e-7 +_MIXER_VOLUME = 1e-6 + + +def _seed_dead_volume_geometry(flow_sheet: LCFlowSheet, bypass: List[str]) -> None: + if "mixer" not in bypass: + flow_sheet.mixer.init_liquid_volume = _MIXER_VOLUME + for name in ( + "tubing_pre_injection", "tubing_pre_column", "tubing_post_column", "tubing_detectors", + ): + if name in flow_sheet: + unit = flow_sheet[name] + unit.diameter = _TUBING_DIAMETER + unit.length = _TUBING_LENGTH + unit.axial_dispersion = _TUBING_AXIAL_DISPERSION + + +class InstrumentWidget: + """Pick a component system, column/binding model type, and LC-system topology. + + Owns exactly what `LCFlowSheet` takes: component system, sample loop, + column/binding model *type* (not their parameter values -- that's + `ConfigurationWidget`'s job once bound, via `flow_sheet.column`/ + `.column.binding_model`), and which units are part of the experiment + (bypass units). Builds and exposes `.flow_sheet`, auto-committing on every + valid change; `add_listener` fires with it on every successful build. + """ + + def __init__( + self, + *, + columns: Optional[Dict[str, type]] = None, + binding_registry: Optional[Dict[str, Optional[type]]] = None, + ) -> None: + self._columns = columns or COLUMN_MODELS + self._binding_registry = binding_registry or BINDING_MODELS + self._listeners: List[Callable[[Any], None]] = [] + self.flow_sheet: Optional[LCFlowSheet] = None + # Set around apply_state()'s field writes so each one's own observer + # doesn't trigger its own rebuild -- one rebuild for the whole + # restored selection instead of one per field touched. + self._suspend_rebuild = False + + self._components = ComponentListField(label="Components:") + self._component_note = W.HTML(layout=W.Layout(display="none")) + self._component_note.add_class("cadetgui-note") + + self._include_loop_checkbox = W.Checkbox( + description="Include sample loop", value=True, indent=False + ) + self._loop_volume_field = FloatField( + label="Sample loop volume", value=50e-9, units="m^3", + ) + self._loop_diameter_auto_checkbox = W.Checkbox( + description="Auto-derive diameter from volume", value=True, indent=False + ) + self._loop_diameter_field = FloatField( + label="Sample loop diameter", value=0.75e-3, units="m", + ) + + self._column_picker = ChoiceField( + label="Column Model:", options=list(self._columns.items()), + value=self._columns.get("Lumped Rate Model Without Pores (LRM)"), + ) + self._binding_picker = ChoiceField( + label="Binding Model:", options=list(self._binding_registry.items()), + value=self._binding_registry.get("Linear"), + ) + + self._bypass_checkboxes: Dict[str, W.Checkbox] = { + name: W.Checkbox( + description=name.replace("_", " ").capitalize(), value=False, indent=False + ) + for name in BYPASSABLE_UNITS + } + + self.status = W.HTML("Select a column and binding model.") + self.status.add_class("cadetgui-status") + + loop_section = W.VBox( + [ + W.HTML("
Sample Loop
"), + self._include_loop_checkbox, + self._loop_volume_field, + self._loop_diameter_auto_checkbox, + self._loop_diameter_field, + ] + ) + loop_section.add_class("cadetgui-section") + + model_section = W.VBox( + [ + W.HTML("
Column / Binding Model
"), + self._column_picker, + self._binding_picker, + ] + ) + model_section.add_class("cadetgui-section") + + bypass_section = W.VBox( + [ + W.HTML("
Units In Flow Path
"), + W.HTML( + "Uncheck a unit to exclude it -- e.g. to characterize the " + "system before adding a column.", + layout=W.Layout(margin="0 0 4px 0"), + ), + *self._bypass_checkboxes.values(), + ] + ) + bypass_section.add_class("cadetgui-section") + + components_section = W.VBox( + [ + W.HTML("
Component System
"), + self._components, + self._component_note, + ] + ) + components_section.add_class("cadetgui-section") + + self.root = W.VBox( + [ + W.HTML(style_tag()), + W.HTML("
Instrument
"), + components_section, + loop_section, + model_section, + bypass_section, + self.status, + ] + ) + self.root.add_class("cadetgui-panel") + + self._components.observe(self._on_change, names="value") + self._include_loop_checkbox.observe(self._on_change, names="value") + self._loop_volume_field.observe(self._on_change, names="value") + self._loop_diameter_auto_checkbox.observe(self._on_change, names="value") + self._loop_diameter_field.observe(self._on_change, names="value") + self._column_picker.observe(self._on_change, names="selected_index") + self._binding_picker.observe(self._on_change, names="selected_index") + for checkbox in self._bypass_checkboxes.values(): + checkbox.observe(self._on_change, names="value") + + self._apply_loop_field_visibility() + self._rebuild() + + def add_listener(self, fn: Callable[[Any], None]) -> None: + """Register a callback fired with `.flow_sheet` on every successful build.""" + self._listeners.append(fn) + + @property + def components(self) -> List[str]: + """Current component names.""" + return list(self._components.value) + + @components.setter + def components(self, names: List[str]) -> None: + self._components.value = list(names) + + def set_min_components(self, minimum: int) -> None: + """Raise/lower the component list's floor (e.g. for a gradient-needing template). + + Also drives an info note next to it and, via `min_components`, greys + out the list's remove button once the row count hits the floor. + """ + self._components.min_components = minimum + if minimum > 1: + self._component_note.value = ( + "The process template you selected does not allow less than" + f" {minimum} components." + ) + self._component_note.layout.display = "" + else: + self._component_note.layout.display = "none" + + def _notify(self) -> None: + for fn in list(self._listeners): + fn(self.flow_sheet) + + def _on_change(self, change: dict) -> None: + if change.get("name") not in ("value", "selected_index"): + return + self._apply_loop_field_visibility() + if self._suspend_rebuild: + return + self._rebuild() + + def snapshot(self) -> InstrumentState: + """Capture the current selection as the hashed save/import payload.""" + column_key = _key_for_value(self._columns, self._column_picker.value) + binding_key = _key_for_value(self._binding_registry, self._binding_picker.value) + if column_key is None or binding_key is None: + raise RuntimeError("Current column/binding selection isn't in a known registry.") + return InstrumentState( + components=list(self._components.value), + column_key=column_key, + binding_key=binding_key, + include_sample_loop=bool(self._include_loop_checkbox.value), + sample_loop_volume=float(self._loop_volume_field.value), + sample_loop_diameter_auto=bool(self._loop_diameter_auto_checkbox.value), + sample_loop_diameter=float(self._loop_diameter_field.value), + bypass_units=self.bypass_units(), + ) + + def apply_state(self, state: InstrumentState) -> None: + """Reconstruct pickers/fields from a saved InstrumentState.""" + if state.column_key not in self._columns: + raise ValueError(f"Unknown column model {state.column_key!r}.") + if state.binding_key not in self._binding_registry: + raise ValueError(f"Unknown binding model {state.binding_key!r}.") + + self._suspend_rebuild = True + try: + self._components.value = list(state.components) + self._column_picker.value = self._columns[state.column_key] + self._binding_picker.value = self._binding_registry[state.binding_key] + self._include_loop_checkbox.value = state.include_sample_loop + self._loop_volume_field.value = state.sample_loop_volume + self._loop_diameter_auto_checkbox.value = state.sample_loop_diameter_auto + self._loop_diameter_field.value = state.sample_loop_diameter + for name, checkbox in self._bypass_checkboxes.items(): + checkbox.value = name in state.bypass_units + finally: + self._suspend_rebuild = False + + self._apply_loop_field_visibility() + self._rebuild() + + def _apply_loop_field_visibility(self) -> None: + include_loop = self._include_loop_checkbox.value + self._loop_volume_field.layout.display = "" if include_loop else "none" + self._loop_diameter_auto_checkbox.layout.display = "" if include_loop else "none" + auto = self._loop_diameter_auto_checkbox.value + self._loop_diameter_field.layout.display = "" if (include_loop and not auto) else "none" + + def bypass_units(self) -> List[str]: + """Currently-checked bypass unit names.""" + return [name for name, cb in self._bypass_checkboxes.items() if cb.value] + + def _rebuild(self) -> None: + try: + cs = ComponentSystem(list(self._components.value)) + bypass = self.bypass_units() + include_loop = bool(self._include_loop_checkbox.value) + loop_volume = float(self._loop_volume_field.value) if include_loop else None + loop_diameter = None + if include_loop and not self._loop_diameter_auto_checkbox.value: + loop_diameter = float(self._loop_diameter_field.value) + column_cls = None if "column" in bypass else self._column_picker.value + binding_cls = self._binding_picker.value + + flow_sheet = LCFlowSheet( + cs, + sample_loop_volume=loop_volume, + sample_loop_diameter=loop_diameter, + ColumnModel=column_cls, + BindingModel=binding_cls, + bypass_units=bypass or None, + ) + _seed_dead_volume_geometry(flow_sheet, bypass) + except Exception as exc: # noqa: BLE001 + self.status.value = f"{exc}" + return + + self.flow_sheet = flow_sheet + self.status.value = "Instrument built." + self._notify() + + def display(self) -> None: + """Render this widget in a Jupyter cell.""" + from IPython.display import display as _display + + _display(self.root) diff --git a/cadetgui/widgets/composite/parameter_estimation.py b/cadetgui/widgets/composite/parameter_estimation.py index dd44ebf..e99ba09 100644 --- a/cadetgui/widgets/composite/parameter_estimation.py +++ b/cadetgui/widgets/composite/parameter_estimation.py @@ -417,7 +417,7 @@ def _on_config_changed(self, _process: Any) -> None: def _refresh_component_options(self) -> None: cw = self._config_widget - components = list(cw._components.value) if cw is not None else [] + components = cw.components if cw is not None else [] options = [(name, name) for name in components] options.append(("Total (sum of all components)", None)) # Skip re-selecting when the component list is unchanged -- both "Total" diff --git a/cadetgui/widgets/composite/run_history.py b/cadetgui/widgets/composite/run_history.py index f5a7a36..9097d84 100644 --- a/cadetgui/widgets/composite/run_history.py +++ b/cadetgui/widgets/composite/run_history.py @@ -2,19 +2,26 @@ import datetime as dt from dataclasses import dataclass, field +from pathlib import Path from typing import Any, Callable, List, Optional import ipywidgets as W +from ... import run_store from .._chrome import style_tag -from ..elements import ChoiceField +from ..elements import ChoiceField, TextField __all__ = ["RunHistoryWidget", "RunRecord"] @dataclass class RunRecord: - """One entry in a RunHistoryWidget: a labeled result, or a labeled failure.""" + """One entry in a RunHistoryWidget: a labeled result, or a labeled failure. + + `result` is `None` both for a failure and for an `ok` entry reloaded from + a store that hasn't been hydrated back into a real result yet -- check + `ok` to tell those two apart, not `result is None`. + """ label: str result: Any = None @@ -22,6 +29,7 @@ class RunRecord: timestamp: dt.datetime = field(default_factory=dt.datetime.now) config_name: Optional[str] = None config_hash: Optional[str] = None + run_id: Optional[str] = None @property def ok(self) -> bool: @@ -36,18 +44,41 @@ class RunHistoryWidget: simulation runs today, estimation candidates / optimization solutions later. Callers `record()` a run and `add_listener()` to react when the user picks one to view. + + In-memory only unless `store_dir` is set (constructor kwarg, or the + "Storage folder" field): a run history is only as project-scoped as the + folder it's pointed at -- there is no other scoping concept, separating + projects means using separate folders. """ - def __init__(self) -> None: + def __init__(self, *, store_dir: "Path | str | None" = None) -> None: self.runs: List[RunRecord] = [] self._listeners: List[Callable[[RunRecord], None]] = [] + self._store_dir: Optional[Path] = None self._picker = ChoiceField(label="Run:", options=[]) self._picker.observe(self._on_pick, names="selected_index") - self.root = W.VBox([W.HTML(style_tag()), self._picker]) + self._store_dir_field = TextField(label="Storage folder:", value="") + self._btn_set_store_dir = W.Button(description="Set folder", icon="folder-open") + self._store_dir_note = W.HTML( + "Leave blank to keep history in memory only (lost on kernel restart)." + ) + self._store_dir_note.add_class("cadetgui-note") + self._btn_set_store_dir.on_click(self._on_set_store_dir) + + self.root = W.VBox( + [ + W.HTML(style_tag()), + self._picker, + W.HBox([self._store_dir_field, self._btn_set_store_dir]), + self._store_dir_note, + ] + ) self.root.add_class("cadetgui-panel") + self.store_dir = store_dir + def add_listener(self, fn: Callable[[RunRecord], None]) -> None: """Register a callback fired with the picked RunRecord on every selection.""" self._listeners.append(fn) @@ -60,20 +91,26 @@ def record( error: Optional[str] = None, config_name: Optional[str] = None, config_hash: Optional[str] = None, + run_id: Optional[str] = None, ) -> RunRecord: - """Add a run to the history and select it.""" + """Add a run to the history and select it. + + `run_id` should already be the id used to capture this run's raw + output (see `run_store.run_output_path`) whenever the caller wants + that output persisted too -- this only ever writes the metadata. + """ run = RunRecord( label=label, result=result, error=error, - config_name=config_name, config_hash=config_hash, + config_name=config_name, config_hash=config_hash, run_id=run_id, ) self.runs.append(run) - options = [(self._describe(r), r) for r in self.runs] - self._picker.set_options(options, keep_value=False) - self._picker.selected_index = len(self.runs) - 1 # newest, not set_options' default-first + self._refresh_picker(select_index=len(self.runs) - 1) + if self.store_dir is not None: + self._persist(run) return run def clear(self) -> None: - """Remove all recorded runs.""" + """Remove all recorded runs (in memory only -- does not touch the store).""" self.runs = [] self._picker.set_options([]) @@ -82,11 +119,77 @@ def selected(self) -> Optional[RunRecord]: """The currently picked run, if any.""" return self._picker.value + @property + def store_dir(self) -> Optional[Path]: + """The folder this history is scoped to, or None for in-memory only.""" + return self._store_dir + + @store_dir.setter + def store_dir(self, value: "Path | str | None") -> None: + """Point this history at a (new) folder, reloading its runs from it. + + Setting this has the exact same effect as the "Set folder" button -- + there is no separate scoping concept, a folder is a folder. + """ + path = Path(value).expanduser().resolve() if value else None + if path is not None: + path.mkdir(parents=True, exist_ok=True) + self._store_dir = path + self._store_dir_field.value = str(path) if path else "" + self.runs = [] + if path is not None: + self._load_from_store() + else: + self._picker.set_options([]) + def _describe(self, run: RunRecord) -> str: status = "ok" if run.ok else "failed" index = self.runs.index(run) + 1 return f"#{index} — {run.timestamp:%H:%M:%S} — {run.label} — {status}" + def _refresh_picker(self, *, select_index: Optional[int]) -> None: + options = [(self._describe(r), r) for r in self.runs] + self._picker.set_options(options, keep_value=False) + if select_index is not None and self.runs: + self._picker.selected_index = select_index + + def _persist(self, run: RunRecord) -> None: + """Best-effort: a store-write failure must never break recording in memory.""" + try: + state = run_store.save_run( + run.run_id or run_store.new_run_id(), + run.label, + ok=run.ok, + config_name=run.config_name, + config_hash=run.config_hash, + error=run.error, + store_dir=self.store_dir, + ) + run.run_id = state.run_id + except Exception: # noqa: BLE001 + pass + + def _load_from_store(self) -> None: + """Populate from `store_dir`'s existing manifests, oldest first, result unhydrated.""" + for state in reversed(run_store.list_runs(store_dir=self.store_dir)): + self.runs.append( + RunRecord( + label=state.label, + error=state.error, + timestamp=dt.datetime.fromisoformat(state.timestamp), + config_name=state.config_name, + config_hash=state.config_hash, + run_id=state.run_id, + ) + ) + self._refresh_picker(select_index=len(self.runs) - 1 if self.runs else None) + + def _on_set_store_dir(self, _btn: Any) -> None: + try: + self.store_dir = self._store_dir_field.value.strip() or None + except Exception: # noqa: BLE001 + pass + def _on_pick(self, change: dict) -> None: if change.get("name") != "selected_index": return diff --git a/cadetgui/widgets/composite/solution.py b/cadetgui/widgets/composite/solution.py index 5cfe26d..2438f49 100644 --- a/cadetgui/widgets/composite/solution.py +++ b/cadetgui/widgets/composite/solution.py @@ -4,6 +4,7 @@ import ipywidgets as W +from ... import run_store from ...cadetprocessadapter import classify_signal_ports from ...simulation import run_process as _default_runner from .._chrome import style_tag @@ -23,7 +24,7 @@ def __init__( self, *, process: Any = None, - runner: Optional[Callable[[Any], Any]] = None, + runner: Optional[Callable[..., Any]] = None, ) -> None: self._runner = runner or _default_runner self.process = process @@ -149,12 +150,22 @@ def _on_run(self, _btn: Any) -> None: self._btn_run.description = "Running..." self.status.value = "Running simulation…" config_name, config_hash = self._tag_current_config() + + run_id = None + runner_kwargs: dict[str, Any] = {} + if self.history.store_dir is not None: + run_id = run_store.new_run_id() + runner_kwargs["file_path"] = run_store.run_output_path( + run_id, store_dir=self.history.store_dir + ) + try: - result = self._runner(self.process) + result = self._runner(self.process, **runner_kwargs) except Exception as exc: # noqa: BLE001 self.result = None self.history.record( - label, error=str(exc), config_name=config_name, config_hash=config_hash + label, error=str(exc), config_name=config_name, config_hash=config_hash, + run_id=run_id, ) self.status.value = f"Simulation failed: {exc}" return @@ -162,7 +173,9 @@ def _on_run(self, _btn: Any) -> None: self._btn_run.disabled = False self._btn_run.description = "Run simulation" - self.history.record(label, result=result, config_name=config_name, config_hash=config_hash) + self.history.record( + label, result=result, config_name=config_name, config_hash=config_hash, run_id=run_id + ) self._load_result(result) self.status.value = "Simulation finished." @@ -181,9 +194,47 @@ def _on_history_pick(self, run: RunRecord) -> None: self._notify() self.status.value = f"Simulation failed: {run.error}" return + if run.result is None: + run.result = self._hydrate(run) + if run.result is None: + self.result = None + self._signal_picker.set_options([]) + self._notify() + return self._load_result(run.result) self.status.value = f"Viewing: {run.label}" + def _hydrate(self, run: RunRecord) -> Any: + """Reconstruct a persisted-but-not-yet-loaded run's result, best-effort. + + Rebuilds the run's own configuration first (`import_from_store`) so the + `Process` handed to `load_run_results` actually matches what was run -- + not whatever the bound ConfigurationWidget currently happens to hold. + """ + if run.run_id is None or self.history.store_dir is None: + self.status.value = ( + "" + "This run's result isn't available in this session." + "" + ) + return None + if self._config_widget is None or run.config_hash is None: + self.status.value = ( + "" + "No configuration bound to reload this run against." + "" + ) + return None + try: + state = run_store.load_run(run.run_id, store_dir=self.history.store_dir) + self._config_widget.import_from_store(run.config_hash) + return run_store.load_run_results( + state, self.process, store_dir=self.history.store_dir + ) + except Exception as exc: # noqa: BLE001 + self.status.value = f"Could not reload run: {exc}" + return None + def _load_result(self, result: Any) -> None: self.result = result self._signal_picker.set_options(classify_signal_ports(result), keep_value=True) diff --git a/cadetgui/widgets/composite/workbench.py b/cadetgui/widgets/composite/workbench.py index d479de8..438f370 100644 --- a/cadetgui/widgets/composite/workbench.py +++ b/cadetgui/widgets/composite/workbench.py @@ -7,40 +7,43 @@ from .._chrome import logo_data_uri, style_tag from .._sidebar_shell import SidebarShell, collect_panes, resolve_step, validate_steps from .configuration import ConfigurationWidget +from .instrument import InstrumentWidget from .parameter_estimation import ParameterEstimationWidget from .solution import SolutionWidget __all__ = ["WorkbenchWidget"] -_STEPS = ("Configuration", "Simulation", "Parameter Estimation") +_STEPS = ("Instrument", "Configuration", "Simulation", "Parameter Estimation") class WorkbenchWidget: - """Top-level shell: a sidebar-navigated Configuration/Simulation/Estimation page. - - Builds and wires a `ConfigurationWidget`, `SolutionWidget`, and - `ParameterEstimationWidget` together (same bindings as - examples/configuration_and_solution.ipynb), showing exactly one at a time - via `SidebarShell` (`widgets/_sidebar_shell.py`) instead of stacking all - three inline. Each stays a plain attribute - (`.configuration`/`.solution`/`.parameter_estimation`) for scripting — - this class is purely "the known three widgets, pre-wired, in a sidebar," - not a black box; a different combination of widgets is a different - `SidebarShell` call, not a change to this class. + """Top-level shell: a sidebar-navigated Instrument/Configuration/Simulation/Estimation page. + + Builds and wires an `InstrumentWidget`, `ConfigurationWidget`, + `SolutionWidget`, and `ParameterEstimationWidget` together (same bindings + as examples/configuration_and_solution.ipynb), showing exactly one at a + time via `SidebarShell` (`widgets/_sidebar_shell.py`) instead of stacking + all four inline. Each stays a plain attribute + (`.instrument`/`.configuration`/`.solution`/`.parameter_estimation`) for + scripting — this class is purely "the known widgets, pre-wired, in a + sidebar," not a black box; a different combination of widgets is a + different `SidebarShell` call, not a change to this class. `include` narrows which steps are built and shown at all (default: all - three) — e.g. `WorkbenchWidget(include=("Configuration", "Simulation"))` - for a notebook that has no use for parameter estimation. Skipping a step - also skips its own construction and its `bind_to_config` wiring, so it - costs nothing (no widgets built, no listeners attached) rather than just - being hidden. Passing an explicit widget for a step not in `include` is - a contradiction and raises `ValueError` rather than silently dropping it. + four) — e.g. `WorkbenchWidget(include=("Instrument", "Configuration", + "Simulation"))` for a notebook that has no use for parameter estimation. + Skipping a step also skips its own construction and its `bind_to_*` + wiring, so it costs nothing (no widgets built, no listeners attached) + rather than just being hidden. Passing an explicit widget for a step not + in `include` is a contradiction and raises `ValueError` rather than + silently dropping it. """ def __init__( self, *, include: Optional[Sequence[str]] = None, + instrument: Optional[InstrumentWidget] = None, configuration: Optional[ConfigurationWidget] = None, solution: Optional[SolutionWidget] = None, parameter_estimation: Optional[ParameterEstimationWidget] = None, @@ -48,6 +51,9 @@ def __init__( steps = tuple(include) if include is not None else _STEPS validate_steps(steps, _STEPS) + self.instrument = resolve_step( + "Instrument", instrument, steps=steps, factory=InstrumentWidget + ) self.configuration = resolve_step( "Configuration", configuration, steps=steps, factory=ConfigurationWidget ) @@ -61,6 +67,9 @@ def __init__( factory=ParameterEstimationWidget, ) + if self.instrument is not None and self.configuration is not None: + self.configuration.bind_to_instrument(self.instrument) + if self.configuration is not None: for dependent in (self.solution, self.parameter_estimation): if dependent is not None: @@ -69,6 +78,7 @@ def __init__( panes = collect_panes( _STEPS, { + "Instrument": self.instrument.root if self.instrument else None, "Configuration": self.configuration.root if self.configuration else None, "Simulation": self.solution.root if self.solution else None, "Parameter Estimation": ( diff --git a/examples/configuration_and_solution.ipynb b/examples/configuration_and_solution.ipynb index e4fbe2f..e0e7ac1 100644 --- a/examples/configuration_and_solution.ipynb +++ b/examples/configuration_and_solution.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "id": "b4cb635e", "metadata": {}, - "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** — pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object. Includes Python-script export.\n- **`SolutionWidget`** — run that process through the CADET-Process simulator and plot the result, with built-in run history.\n- **`ParameterEstimationWidget`** — import a measured chromatogram, calibrate it, and preview it overlaid against a simulated signal.\n\nAll are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting — the GUI never traps you inside it." + "source": "# CADET-GUI: Configuration + Solution widgets\n\nThis notebook walks through the widgets built so far in `cadetgui.widgets.composite`:\n\n- **`ConfigurationWidget`** \u2014 pick a unit operation (column) and a model-builder template (e.g. LWE), configure both, and build a real CADET-Process process object. Includes Python-script export.\n- **`SolutionWidget`** \u2014 run that process through the CADET-Process simulator and plot the result, with built-in run history.\n- **`ParameterEstimationWidget`** \u2014 import a measured chromatogram, calibrate it, and preview it overlaid against a simulated signal.\n\nAll are widgets: they render inline in this notebook, and the CADET-Process objects they build stay fully accessible afterwards for scripting \u2014 the GUI never traps you inside it." }, { "cell_type": "code", @@ -12,13 +12,29 @@ "id": "0a16422b", "metadata": {}, "outputs": [], - "source": "from cadetgui.widgets.composite import (\n ConfigurationWidget,\n ParameterEstimationWidget,\n SolutionWidget,\n)" + "source": [ + "from cadetgui.widgets.composite import (\n", + " ConfigurationWidget,\n", + " InstrumentWidget,\n", + " ParameterEstimationWidget,\n", + " SolutionWidget,\n", + ")" + ] }, { "cell_type": "markdown", "id": "3218f382", "metadata": {}, - "source": "## 1. Configure a process\n\nDisplaying `ConfigurationWidget` gives you three things to pick: the number of components, a column/unit operation type, and a model-builder template. Changing any of them rebuilds the two forms below it.\n\n1. Pick a column (e.g. `LRMP`) and a model (e.g. `Load–Wash–Elute (LWE)`).\n2. Edit the column's or model's fields directly — each change applies automatically as soon as it's valid, no Apply button needed. An invalid value (e.g. a negative length) is flagged inline and shown in that form's status line instead of being applied.\n\nOnce every field is valid, `config.process` already holds a real CADET-Process object." + "source": [ + "## 1. Configure a process\n", + "\n", + "Displaying `ConfigurationWidget` gives you three things to pick: the number of components, a column/unit operation type, and a model-builder template. Changing any of them rebuilds the two forms below it.\n", + "\n", + "1. Pick a column (e.g. `LRMP`) and a model (e.g. `Load\u2013Wash\u2013Elute (LWE)`).\n", + "2. Edit the column's or model's fields directly \u2014 each change applies automatically as soon as it's valid, no Apply button needed. An invalid value (e.g. a negative length) is flagged inline and shown in that form's status line instead of being applied.\n", + "\n", + "Once every field is valid, `config.process` already holds a real CADET-Process object." + ] }, { "cell_type": "code", @@ -27,7 +43,9 @@ "metadata": {}, "outputs": [], "source": [ - "config = ConfigurationWidget()\n", + "instrument = InstrumentWidget()\n", + "config = ConfigurationWidget(instrument=instrument)\n", + "instrument.display()\n", "config.display()" ] }, @@ -35,7 +53,13 @@ "cell_type": "markdown", "id": "ff4a37be", "metadata": {}, - "source": "## 2. Run and visualize the simulation\n\n`SolutionWidget.bind_to_config(config)` makes it track whatever process `config` builds — since fields apply automatically, this widget picks up every valid edit above right away, with no extra step.\n\nClick **Run simulation** below, then use the **Signal** dropdown to plot different unit/port combinations (feed, column outlet, ...). Every run (successful or not) is logged in the **Run:** picker above the signal dropdown — pick an older entry to go back and view it; a failed run shows its error instead of a broken plot." + "source": [ + "## 2. Run and visualize the simulation\n", + "\n", + "`SolutionWidget.bind_to_config(config)` makes it track whatever process `config` builds \u2014 since fields apply automatically, this widget picks up every valid edit above right away, with no extra step.\n", + "\n", + "Click **Run simulation** below, then use the **Signal** dropdown to plot different unit/port combinations (feed, column outlet, ...). Every run (successful or not) is logged in the **Run:** picker above the signal dropdown \u2014 pick an older entry to go back and view it; a failed run shows its error instead of a broken plot." + ] }, { "cell_type": "code", @@ -53,7 +77,27 @@ "cell_type": "markdown", "id": "4ca74111", "metadata": {}, - "source": "## 3. Import experimental data and compare\n\n`ParameterEstimationWidget.bind_to_config(config)` tracks `config`'s built process for fitting. It nests a `DataImportWidget` (`.data`, CSV upload, first two columns read as time/signal) as its experimental-data source. This tab owns the comparison view — the Solution tab above only ever shows the raw simulation, never an overlay. It has three sections:\n\n- **Experimental data** — upload a CSV, pick which dataset, say what the signal represents (a specific simulated component, or the total of all of them), and calibrate it if needed (e.g. Beer-Lambert for a raw UV trace).\n- **Configure parameter space** — pick parameters to fit from the \"Add parameter\" dropdown; each added row gets its own Start/lower/upper-bound fields (aligned into columns, with a \"✕\" to remove a row).\n- **Run estimation** — pick a base process, click **Preview** to populate the **Signal** dropdown (defaults to the process outlet — \"Sink\" — since that's what's usually fit against), then **Run estimation**. An optional **Live plot** checkbox shows the fit converging in real time; **Cancel** stops a running fit early.\n\nWorkflow:\n\n1. Click **Preview**.\n2. Upload one of the three example datasets in `examples/data/`, or your own CSV, and set \"Signal represents\"/Calibration as needed.\n3. Add one or more parameters in \"Configure parameter space,\" adjust each one's **Start** value if the config's current value isn't a good starting guess (it's a genuinely separate, editable field — not implied by the configuration), and click **Run estimation**.\n\nSee **`examples/EXAMPLE_DATA.md`** for exactly what configuration each example file was generated from (so you know the \"correct\" answer before fitting) and which parameters to add for each:\n\n- `example_uv_signal.csv` — a synthetic UV280 trace requiring a **Calibration** step (Beer-Lambert) before it overlays the simulated curve.\n- `example_raw_signal.csv` — the simplest fitting exercise: one parameter (`total_porosity`), no calibration needed.\n- `example_binding_signal.csv` — a bind-and-elute scenario: 3-4 parameters (porosity, binding rates, optionally axial dispersion), no calibration needed." + "source": [ + "## 3. Import experimental data and compare\n", + "\n", + "`ParameterEstimationWidget.bind_to_config(config)` tracks `config`'s built process for fitting. It nests a `DataImportWidget` (`.data`, CSV upload, first two columns read as time/signal) as its experimental-data source. This tab owns the comparison view \u2014 the Solution tab above only ever shows the raw simulation, never an overlay. It has three sections:\n", + "\n", + "- **Experimental data** \u2014 upload a CSV, pick which dataset, say what the signal represents (a specific simulated component, or the total of all of them), and calibrate it if needed (e.g. Beer-Lambert for a raw UV trace).\n", + "- **Configure parameter space** \u2014 pick parameters to fit from the \"Add parameter\" dropdown; each added row gets its own Start/lower/upper-bound fields (aligned into columns, with a \"\u2715\" to remove a row).\n", + "- **Run estimation** \u2014 pick a base process, click **Preview** to populate the **Signal** dropdown (defaults to the process outlet \u2014 \"Sink\" \u2014 since that's what's usually fit against), then **Run estimation**. An optional **Live plot** checkbox shows the fit converging in real time; **Cancel** stops a running fit early.\n", + "\n", + "Workflow:\n", + "\n", + "1. Click **Preview**.\n", + "2. Upload one of the three example datasets in `examples/data/`, or your own CSV, and set \"Signal represents\"/Calibration as needed.\n", + "3. Add one or more parameters in \"Configure parameter space,\" adjust each one's **Start** value if the config's current value isn't a good starting guess (it's a genuinely separate, editable field \u2014 not implied by the configuration), and click **Run estimation**.\n", + "\n", + "See **`examples/EXAMPLE_DATA.md`** for exactly what configuration each example file was generated from (so you know the \"correct\" answer before fitting) and which parameters to add for each:\n", + "\n", + "- `example_uv_signal.csv` \u2014 a synthetic UV280 trace requiring a **Calibration** step (Beer-Lambert) before it overlays the simulated curve.\n", + "- `example_raw_signal.csv` \u2014 the simplest fitting exercise: one parameter (`total_porosity`), no calibration needed.\n", + "- `example_binding_signal.csv` \u2014 a bind-and-elute scenario: 3-4 parameters (porosity, binding rates, optionally axial dispersion), no calibration needed." + ] }, { "cell_type": "code", @@ -61,13 +105,21 @@ "id": "82102640", "metadata": {}, "outputs": [], - "source": "parameter_estimation = ParameterEstimationWidget()\nparameter_estimation.bind_to_config(config)\nparameter_estimation.display()" + "source": [ + "parameter_estimation = ParameterEstimationWidget()\n", + "parameter_estimation.bind_to_config(config)\n", + "parameter_estimation.display()" + ] }, { "cell_type": "markdown", "id": "48885efa", "metadata": {}, - "source": "## 4. The underlying objects stay accessible\n\nNothing above is trapped inside the widgets. `config.process` is a plain CADET-Process object, and `solution.result` is a plain `SimulationResults` object — use them exactly as you would if you'd built everything by hand in a script, for anything the GUI doesn't cover. `solution.history.runs` and `parameter_estimation.data.datasets` are plain lists too." + "source": [ + "## 4. The underlying objects stay accessible\n", + "\n", + "Nothing above is trapped inside the widgets. `config.process` is a plain CADET-Process object, and `solution.result` is a plain `SimulationResults` object \u2014 use them exactly as you would if you'd built everything by hand in a script, for anything the GUI doesn't cover. `solution.history.runs` and `parameter_estimation.data.datasets` are plain lists too." + ] }, { "cell_type": "code", @@ -75,7 +127,13 @@ "id": "2d59f4c0", "metadata": {}, "outputs": [], - "source": "print(type(config.process))\nprint(type(solution.result))\nprint(list(solution.result.solution.keys())) # unit operation names\nn_datasets = len(parameter_estimation.data.datasets)\nprint(f\"{len(solution.history.runs)} run(s) recorded, {n_datasets} dataset(s) loaded\")" + "source": [ + "print(type(config.process))\n", + "print(type(solution.result))\n", + "print(list(solution.result.solution.keys())) # unit operation names\n", + "n_datasets = len(parameter_estimation.data.datasets)\n", + "print(f\"{len(solution.history.runs)} run(s) recorded, {n_datasets} dataset(s) loaded\")" + ] } ], "metadata": { @@ -91,4 +149,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/examples/custom_sidebar.ipynb b/examples/custom_sidebar.ipynb index 8a68449..87eb44d 100644 --- a/examples/custom_sidebar.ipynb +++ b/examples/custom_sidebar.ipynb @@ -28,7 +28,12 @@ "outputs": [], "source": [ "from cadetgui.widgets._sidebar_shell import SidebarShell\n", - "from cadetgui.widgets.composite import ConfigurationWidget, DataImportWidget, SolutionWidget" + "from cadetgui.widgets.composite import (\n", + " ConfigurationWidget,\n", + " DataImportWidget,\n", + " InstrumentWidget,\n", + " SolutionWidget,\n", + ")" ], "id": "b2c0379c" }, @@ -49,7 +54,8 @@ "metadata": {}, "outputs": [], "source": [ - "config = ConfigurationWidget()\n", + "instrument = InstrumentWidget()\n", + "config = ConfigurationWidget(instrument=instrument)\n", "solution = SolutionWidget()\n", "data = DataImportWidget()" ], @@ -99,6 +105,7 @@ "source": [ "shell = SidebarShell(\n", " [\n", + " (\"Instrument\", instrument.root),\n", " (\"Configuration\", config.root),\n", " (\"Simulation\", solution.root),\n", " (\"Experimental Data\", data.root),\n", @@ -140,4 +147,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/examples/webapp/app.ipynb b/examples/webapp/app.ipynb index 1bbb1db..733bccb 100644 --- a/examples/webapp/app.ipynb +++ b/examples/webapp/app.ipynb @@ -6,7 +6,78 @@ "id": "a9463514", "metadata": {}, "outputs": [], - "source": "import ipywidgets as W\nfrom cadetgui.widgets.composite import (\n ConfigurationWidget,\n ParameterEstimationWidget,\n SolutionWidget,\n)\nfrom IPython.display import display\n\nPAGE_CSS = \"\"\"\n\n\"\"\"\n\nheader = W.HTML(\n \"
\"\n \"

CADET-GUI

\"\n \"

Configure a standard chromatography process, run it, and compare against \"\n \"measured data — powered by CADET-Process.

\"\n \"
\"\n)\n\nconfig = ConfigurationWidget()\nsolution = SolutionWidget()\nsolution.bind_to_config(config)\n\nparameter_estimation = ParameterEstimationWidget()\nparameter_estimation.bind_to_config(config)\n\n\ndef tab_page(widget_root: W.Widget) -> W.VBox:\n \"\"\"Wrap a widget root in the shared tab-page padding class.\"\"\"\n page = W.VBox([widget_root])\n page.add_class(\"cadetgui-tab-page\")\n return page\n\n\ntabs = W.Tab(\n children=[\n tab_page(config.root),\n tab_page(solution.root),\n tab_page(parameter_estimation.root),\n ]\n)\ntabs.set_title(0, \"Configuration\")\ntabs.set_title(1, \"Solution\")\ntabs.set_title(2, \"Parameter Estimation\")\n\napp = W.VBox([W.HTML(PAGE_CSS), header, tabs])\napp.add_class(\"cadetgui-app\")\n\ndisplay(app)" + "source": [ + "import ipywidgets as W\n", + "from cadetgui.widgets.composite import (\n", + " ConfigurationWidget,\n", + " InstrumentWidget,\n", + " ParameterEstimationWidget,\n", + " SolutionWidget,\n", + ")\n", + "from IPython.display import display\n", + "\n", + "PAGE_CSS = \"\"\"\n", + "\n", + "\"\"\"\n", + "\n", + "header = W.HTML(\n", + " \"
\"\n", + " \"

CADET-GUI

\"\n", + " \"

Configure a standard chromatography process, run it, and compare against \"\n", + " \"measured data \u2014 powered by CADET-Process.

\"\n", + " \"
\"\n", + ")\n", + "\n", + "instrument = InstrumentWidget()\n", + "config = ConfigurationWidget(instrument=instrument)\n", + "solution = SolutionWidget()\n", + "solution.bind_to_config(config)\n", + "\n", + "parameter_estimation = ParameterEstimationWidget()\n", + "parameter_estimation.bind_to_config(config)\n", + "\n", + "\n", + "def tab_page(widget_root: W.Widget) -> W.VBox:\n", + " \"\"\"Wrap a widget root in the shared tab-page padding class.\"\"\"\n", + " page = W.VBox([widget_root])\n", + " page.add_class(\"cadetgui-tab-page\")\n", + " return page\n", + "\n", + "\n", + "tabs = W.Tab(\n", + " children=[\n", + " tab_page(instrument.root),\n", + " tab_page(config.root),\n", + " tab_page(solution.root),\n", + " tab_page(parameter_estimation.root),\n", + " ]\n", + ")\n", + "tabs.set_title(0, \"Instrument\")\n", + "tabs.set_title(1, \"Configuration\")\n", + "tabs.set_title(2, \"Solution\")\n", + "tabs.set_title(3, \"Parameter Estimation\")\n", + "\n", + "app = W.VBox([W.HTML(PAGE_CSS), header, tabs])\n", + "app.add_class(\"cadetgui-app\")\n", + "\n", + "display(app)" + ] } ], "metadata": { @@ -22,4 +93,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 298458d..40115e9 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -5,7 +5,7 @@ import cadetgui.configuration_store as configuration_store import pytest -from cadetgui.widgets.composite import ConfigurationWidget +from cadetgui.widgets.composite import ConfigurationWidget, InstrumentWidget warnings.filterwarnings("ignore", category=UserWarning) @@ -16,27 +16,33 @@ def _isolated_store(tmp_path, monkeypatch): monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) +def built(): + """A default InstrumentWidget + bound ConfigurationWidget pair.""" + iw = InstrumentWidget() + cw = ConfigurationWidget(instrument=iw) + return iw, cw + + def test_configuration_widget_renders_default_forms(): - cw = ConfigurationWidget() - assert cw._column_picker.option_labels == [ + iw, cw = built() + assert iw._column_picker.option_labels == [ "General Rate Model (GRM)", "Lumped Rate Model With Pores (LRMP)", "Lumped Rate Model Without Pores (LRM)", - "Continuous Stirred Tank Reactor (CSTR)", ] assert len(cw._column_form_box.children) == 1 assert len(cw._model_form_box.children) == 1 def test_configuration_widget_builds_process_automatically_with_defaults(): - cw = ConfigurationWidget() + _, cw = built() assert cw.process is not None - assert type(cw.process).__name__ == "BatchElution" + assert type(cw.process).__name__ == "PulseInjection" def test_configuration_widget_notifies_listeners_on_a_valid_field_change(): - cw = ConfigurationWidget() + _, cw = built() seen = [] cw.add_listener(seen.append) @@ -47,7 +53,7 @@ def test_configuration_widget_notifies_listeners_on_a_valid_field_change(): def test_configuration_widget_rebuilds_forms_on_model_change(): - cw = ConfigurationWidget() + _, cw = built() first_title = cw._model_form.spec.title cw._model_picker.selected_index = 1 @@ -56,24 +62,22 @@ def test_configuration_widget_rebuilds_forms_on_model_change(): def test_configuration_widget_rebuilds_column_on_component_change(): - cw = ConfigurationWidget() + iw, cw = built() original_column = cw._get_column() - assert original_column.n_comp == 2 # Batch Elution's auto-added default + assert original_column.n_comp == 1 # Pulse Injection stays single-component-friendly - cw._components.value = ["Salt", "Protein", "Impurity"] + iw.components = ["Salt", "Protein", "Impurity"] new_column = cw._get_column() assert new_column is not original_column assert new_column.n_comp == 3 assert list(new_column.component_system.names) == ["Salt", "Protein", "Impurity"] - # the stale 2-component column must not linger in the cache - assert original_column not in cw._column_cache.values() def test_export_script_raises_when_nothing_has_been_built(): # With auto-commit, this state isn't reachable through the default # registries (their defaults always build successfully) -- force it # directly to keep the guard clause itself covered. - cw = ConfigurationWidget() + _, cw = built() cw.process = None cw._column_form = None cw._binding_form = None @@ -82,33 +86,33 @@ def test_export_script_raises_when_nothing_has_been_built(): cw.export_script() assert False, "should have raised" except RuntimeError as exc: - assert "column" in str(exc).lower() + assert "instrument" in str(exc).lower() def test_export_script_button_shows_error_status_when_nothing_has_been_built(): - cw = ConfigurationWidget() + _, cw = built() cw.process = None cw._column_form = None cw._binding_form = None cw._model_form = None cw._on_export(None) - assert "column" in cw.status.value.lower() + assert "instrument" in cw.status.value.lower() assert cw._script_out.layout.display == "none" def test_export_script_produces_executable_equivalent_process(): import numpy as np - cw = ConfigurationWidget() + iw, cw = built() script = cw.export_script() ns = {} exec(compile(script, "", "exec"), ns) # noqa: S102 assert type(ns["process"]) is type(cw.process) - assert type(ns["column"]) is type(cw._get_column()) - assert ns["component_system"].n_comp == len(cw._components.value) - assert list(ns["component_system"].names) == cw._components.value + assert type(ns["flow_sheet"].column) is type(cw._get_column()) + assert ns["component_system"].n_comp == len(iw.components) + assert list(ns["component_system"].names) == iw.components from cadetgui.simulation import run_process @@ -122,7 +126,7 @@ def test_export_script_produces_executable_equivalent_process(): def test_export_script_button_populates_textarea_on_success(): - cw = ConfigurationWidget() + _, cw = built() cw._on_export(None) assert "process = " in cw._script_out.value @@ -131,17 +135,17 @@ def test_export_script_button_populates_textarea_on_success(): def test_binding_model_defaults_to_linear(): - cw = ConfigurationWidget() - assert cw._binding_picker.option_labels[0] == "None" # still first in the dropdown list - selected = cw._binding_picker.option_labels[cw._binding_picker.selected_index] + iw, cw = built() + assert iw._binding_picker.option_labels[0] == "None" # still first in the dropdown list + selected = iw._binding_picker.option_labels[iw._binding_picker.selected_index] assert selected == "Linear" names = {f.name for f in cw._binding_form.spec.fields} assert names == {"adsorption_rate", "desorption_rate", "is_kinetic"} def test_switching_binding_model_rebuilds_its_form(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Langmuir"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Langmuir"] assert {f.name for f in cw._binding_form.spec.fields} == { "adsorption_rate", "desorption_rate", @@ -151,8 +155,8 @@ def test_switching_binding_model_rebuilds_its_form(): def test_selecting_binding_model_attaches_it_to_the_column(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Linear"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Linear"] column = cw._get_column() assert type(column.binding_model).__name__ == "Linear" @@ -160,14 +164,13 @@ def test_selecting_binding_model_attaches_it_to_the_column(): def test_switching_column_type_keeps_binding_model_attachable(): """Regression test: binding model and column must share one ComponentSystem - instance (CADET-Process rejects a mismatch), and each column factory gets - its own fresh ComponentSystem — so a binding model cached against a - since-replaced column must not be reused as-is.""" - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Linear"] + instance (CADET-Process rejects a mismatch) -- LCFlowSheet gives each a + fresh, shared ComponentSystem on every rebuild.""" + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Linear"] # different column, different ComponentSystem - cw._column_picker.value = cw._columns["Lumped Rate Model With Pores (LRMP)"] + iw._column_picker.value = iw._columns["Lumped Rate Model With Pores (LRMP)"] assert cw._binding_form.built is not None assert cw._binding_form.status.value == "" @@ -180,15 +183,16 @@ def test_export_script_includes_binding_model_and_round_trips(): import numpy as np from cadetgui.simulation import run_process - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Linear"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Linear"] script = cw.export_script() - assert "column.binding_model = Linear(" in script + assert "BindingModel=Linear" in script + assert "flow_sheet.column.binding_model." in script ns = {} exec(compile(script, "", "exec"), ns) # noqa: S102 - assert type(ns["column"].binding_model).__name__ == "Linear" + assert type(ns["flow_sheet"].column.binding_model).__name__ == "Linear" res_widget = run_process(cw.process) res_script = run_process(ns["process"]) @@ -199,34 +203,33 @@ def test_export_script_includes_binding_model_and_round_trips(): ) -def test_components_field_defaults_to_two_named_components(): - # Batch Elution is the default template and needs a feed + eluent - # component, so construction auto-adds a second one (see - # _maybe_autoadd_component / _TEMPLATES_REQUIRING_MULTIPLE_COMPONENTS). - cw = ConfigurationWidget() - assert cw._components.value == ["Component 1", "Component 2"] - assert cw._get_column().n_comp == 2 - assert list(cw._get_column().component_system.names) == ["Component 1", "Component 2"] +def test_components_field_defaults_to_one_named_component(): + # Pulse Injection is the default template and stays single-component-friendly + # (a non-binding tracer pulse is the standard characterization experiment). + iw, cw = built() + assert iw.components == ["Component 1"] + assert cw._get_column().n_comp == 1 + assert list(cw._get_column().component_system.names) == ["Component 1"] def test_component_minimum_and_note_match_the_selected_template(): - cw = ConfigurationWidget() # defaults to Batch Elution - assert cw._components.min_components == 2 - assert cw._component_note.layout.display == "" - assert "2 components" in cw._component_note.value - - cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] - assert cw._components.min_components == 1 - assert cw._component_note.layout.display == "none" + iw, cw = built() # defaults to Pulse Injection + assert iw._components.min_components == 1 + assert iw._component_note.layout.display == "none" cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] - assert cw._components.min_components == 2 - assert cw._component_note.layout.display == "" + assert iw._components.min_components == 2 + assert iw._component_note.layout.display == "" + assert "2 components" in iw._component_note.value + + cw._model_picker.value = cw._registry["Step"] + assert iw._components.min_components == 1 + assert iw._component_note.layout.display == "none" def test_renaming_components_rebuilds_column_with_new_names(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein"] + iw, cw = built() + iw.components = ["Salt", "Protein"] column = cw._get_column() assert column.n_comp == 2 @@ -234,25 +237,19 @@ def test_renaming_components_rebuilds_column_with_new_names(): def test_binding_model_scales_to_multiple_named_components(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein"] - cw._binding_picker.value = cw._binding_registry["Linear"] + iw, cw = built() + iw.components = ["Salt", "Protein"] + iw._binding_picker.value = iw._binding_registry["Linear"] column = cw._get_column() assert column.binding_model.n_comp == 2 assert cw._binding_form.status.value == "" - # NOTE: applying the model form itself (batch_elution_spec/lwe_spec) is not - # exercised with >1 component here — those specs hard-code single-value - # concentration defaults (e.g. c_feed=[10.0]) that CADET-Process rejects - # for n_comp != 1. Pre-existing adapter-layer limitation, unrelated to - # component naming; column/binding config already scale correctly, as - # this test shows. def test_binding_form_fields_get_component_names_matching_component_system(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein"] - cw._binding_picker.value = cw._binding_registry["Linear"] + iw, cw = built() + iw.components = ["Salt", "Protein"] + iw._binding_picker.value = iw._binding_registry["Linear"] by_name = {f.name: f for f in cw._binding_form.spec.fields} assert by_name["adsorption_rate"].component_names == ("Salt", "Protein") @@ -260,8 +257,8 @@ def test_binding_form_fields_get_component_names_matching_component_system(): def test_binding_form_exposes_is_kinetic_defaulting_to_true(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Linear"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Linear"] element = cw._binding_form.element("is_kinetic") assert element.value is True # CADET-Process's own default @@ -269,8 +266,8 @@ def test_binding_form_exposes_is_kinetic_defaulting_to_true(): def test_unchecking_is_kinetic_commits_to_the_real_binding_model(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Langmuir"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Langmuir"] cw._binding_form.element("is_kinetic").value = False @@ -278,14 +275,14 @@ def test_unchecking_is_kinetic_commits_to_the_real_binding_model(): def test_no_binding_does_not_get_an_is_kinetic_field(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["None"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["None"] assert "is_kinetic" not in {f.name for f in cw._binding_form.spec.fields} def test_column_geometry_fields_default_to_scalar_non_multiplexed(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + iw, cw = built() + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] by_name = {f.name: f for f in cw._column_form.spec.fields} assert by_name["axial_dispersion"].kind == "float" @@ -294,9 +291,9 @@ def test_column_geometry_fields_default_to_scalar_non_multiplexed(): def test_enabling_multiplex_switches_field_to_per_component(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein"] - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + iw, cw = built() + iw.components = ["Salt", "Protein"] + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] cw._multiplex_checkboxes["axial_dispersion"].value = True @@ -307,17 +304,18 @@ def test_enabling_multiplex_switches_field_to_per_component(): assert by_name["film_diffusion"].kind == "float" -def test_multiplex_checkboxes_hidden_for_column_without_any_applicable_param(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - # The gear itself stays visible -- "Show optional parameters" always applies. - assert cw._column_settings.button.layout.display != "none" - assert all(cb.layout.display == "none" for cb in cw._multiplex_checkboxes.values()) +def test_multiplex_checkbox_visibility_matches_column_capabilities(): + iw, cw = built() + # LumpedRateModelWithoutPores: no particles + iw._column_picker.value = iw._columns["Lumped Rate Model Without Pores (LRM)"] + assert cw._multiplex_checkboxes["axial_dispersion"].layout.display == "" + assert cw._multiplex_checkboxes["film_diffusion"].layout.display == "none" + assert cw._multiplex_checkboxes["pore_diffusion"].layout.display == "none" def test_show_optional_parameters_adds_and_removes_column_fields(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + iw, cw = built() + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] required_names = {f.name for f in cw._column_form.spec.fields} assert "c" not in required_names # optional fields hidden by default @@ -332,9 +330,9 @@ def test_show_optional_parameters_adds_and_removes_column_fields(): def test_show_optional_parameters_skips_none_valued_and_non_scalar_fields(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] - cw._binding_picker.value = cw._binding_registry["None"] # q stays unset without a real isotherm + iw, cw = built() + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] + iw._binding_picker.value = iw._binding_registry["None"] # q stays unset without a real isotherm cw._show_optional_column_checkbox.value = True names = {f.name for f in cw._column_form.spec.fields} @@ -344,8 +342,8 @@ def test_show_optional_parameters_skips_none_valued_and_non_scalar_fields(): def test_show_optional_parameters_does_not_apply_to_binding_form(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Steric Mass Action (SMA)"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Steric Mass Action (SMA)"] cw._show_optional_column_checkbox.value = True names = {f.name for f in cw._binding_form.spec.fields} @@ -353,8 +351,8 @@ def test_show_optional_parameters_does_not_apply_to_binding_form(): def test_show_optional_binding_parameters_adds_sma_reference_concentrations(): - cw = ConfigurationWidget() - cw._binding_picker.value = cw._binding_registry["Steric Mass Action (SMA)"] + iw, cw = built() + iw._binding_picker.value = iw._binding_registry["Steric Mass Action (SMA)"] required_names = {f.name for f in cw._binding_form.spec.fields} cw._show_optional_binding_checkbox.value = True @@ -367,36 +365,27 @@ def test_show_optional_binding_parameters_adds_sma_reference_concentrations(): def test_show_optional_binding_parameters_does_not_apply_to_column_form(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + iw, cw = built() + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] cw._show_optional_binding_checkbox.value = True names = {f.name for f in cw._column_form.spec.fields} assert "c" not in names -def test_multiplex_checkbox_visibility_matches_column_capabilities(): - cw = ConfigurationWidget() - # LumpedRateModelWithoutPores: no particles - cw._column_picker.value = cw._columns["Lumped Rate Model Without Pores (LRM)"] - assert cw._multiplex_checkboxes["axial_dispersion"].layout.display == "" - assert cw._multiplex_checkboxes["film_diffusion"].layout.display == "none" - assert cw._multiplex_checkboxes["pore_diffusion"].layout.display == "none" - - def test_scalar_column_field_broadcasts_via_cadetprocess(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein", "Impurity"] - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + iw, cw = built() + iw.components = ["Salt", "Protein", "Impurity"] + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] column = cw._get_column() assert column.axial_dispersion == [column.axial_dispersion[0]] * 3 def test_multiplexed_column_field_keeps_distinct_per_component_values(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein"] - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] + iw, cw = built() + iw.components = ["Salt", "Protein"] + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] cw._multiplex_checkboxes["axial_dispersion"].value = True cw._column_form._elements["axial_dispersion"].value = [1e-8, 2e-8] @@ -406,19 +395,19 @@ def test_multiplexed_column_field_keeps_distinct_per_component_values(): def test_concentration_fields_are_sized_and_named_from_component_system(): - cw = ConfigurationWidget() - cw._components.value = ["Salt", "Protein", "Impurity"] - cw._model_picker.value = cw._registry["Batch Elution"] + iw, cw = built() + iw.components = ["Salt", "Protein", "Impurity"] + cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] by_name = {f.name: f for f in cw._model_form.spec.fields} - assert by_name["c_feed"].component_names == ("Salt", "Protein", "Impurity") - assert len(by_name["c_feed"].default) == 3 - assert by_name["c_eluent"].component_names == ("Salt", "Protein", "Impurity") + assert by_name["c_buffer_a"].component_names == ("Salt", "Protein", "Impurity") + assert len(by_name["c_buffer_a"].default) == 3 + assert by_name["c_sample"].component_names == ("Salt", "Protein", "Impurity") def test_export_script_reflects_a_renamed_single_component(): - cw = ConfigurationWidget() - cw._components.value = ["MyProtein"] # still one component, just renamed + iw, cw = built() + iw.components = ["MyProtein"] # still one component, just renamed script = cw.export_script() assert "component_system = ComponentSystem(['MyProtein'])" in script @@ -428,31 +417,45 @@ def test_export_script_reflects_a_renamed_single_component(): assert list(ns["component_system"].names) == ["MyProtein"] +def test_breakthrough_sample_buffer_choice_field_targets_the_selected_buffer(): + iw, cw = built() + cw._model_picker.value = cw._registry["Breakthrough"] + + sample_buffer = cw._model_form.element("sample_buffer") + assert sample_buffer.option_labels == [ + "Feed inlet (F)", "Buffer A", "Buffer B", "Buffer C", "Buffer D", + ] + assert sample_buffer.value == "F" + assert cw.process.flow_sheet.feed_inlet.flow_rate[0] > 0 + + sample_buffer.value = "A" + assert cw.process.flow_sheet.buffer_a.flow_rate[0] > 0 + + def test_event_sliders_cover_only_scalar_timing_fields_not_concentration_lists(): - cw = ConfigurationWidget() # defaults to Batch Elution - assert set(cw._event_sliders) == {"flow_rate", "feed_duration", "cycle_time"} + _, cw = built() # defaults to Pulse Injection + assert set(cw._event_sliders) == {"cycle_time", "flow_rate"} def test_event_sliders_change_when_process_template_changes(): - cw = ConfigurationWidget() + _, cw = built() cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] assert set(cw._event_sliders) == { - "flow_rate", "load_duration", "wash_duration", - "gradient_duration", "final_wash_duration", + "delta_t_wash", "delta_t_elute", "delta_t_final_wash", "flow_rate_wash", } def test_moving_event_slider_updates_the_linked_form_field(): - cw = ConfigurationWidget() - slider = cw._event_sliders["feed_duration"] + _, cw = built() + slider = cw._event_sliders["cycle_time"] slider.value = slider.value * 2 - assert cw._model_form.element("feed_duration").value == slider.value + assert cw._model_form.element("cycle_time").value == slider.value def test_editing_form_field_updates_the_linked_event_slider(): - cw = ConfigurationWidget() + _, cw = built() element = cw._model_form.element("flow_rate") element.value = element.value * 3 @@ -461,7 +464,7 @@ def test_editing_form_field_updates_the_linked_event_slider(): def test_moving_event_slider_rebuilds_a_preview_process(): - cw = ConfigurationWidget() + _, cw = built() seen = [] original_build = cw._model_form.spec.build @@ -474,21 +477,20 @@ def test_moving_event_slider_rebuilds_a_preview_process(): def test_moving_event_slider_with_invalid_column_field_does_not_crash(): - cw = ConfigurationWidget() + _, cw = built() cw._column_form._elements["length"].value = -1.0 # CADET-Process rejects this on setattr cw._event_sliders["cycle_time"].value += 1.0 # must not raise despite the column error -def test_event_chart_populates_series_from_parameter_timelines_on_construction(): - cw = ConfigurationWidget() # defaults to Batch Elution, valid out of the box +def test_event_chart_populates_series_from_parameter_timelines(): + _, cw = built() + cw._model_picker.value = cw._registry["Step"] # a clean, valve-event-free timeline set series = cw._event_chart.series assert len(series) == len(cw.process.parameter_timelines) - # display names are the unit-operation name, not the raw dotted - # CADET-Process path (e.g. "Eluent", not "flow_sheet.eluent.flow_rate") names = {s["name"] for s in series} - assert names == {"Eluent", "Feed"} + assert names == {"Buffer b"} for s in series: assert len(s["times"]) == len(s["values"]) == 300 assert s["times"][0] == 0.0 @@ -496,7 +498,8 @@ def test_event_chart_populates_series_from_parameter_timelines_on_construction() def test_event_chart_updates_when_a_field_changes(): - cw = ConfigurationWidget() + _, cw = built() + cw._model_picker.value = cw._registry["Step"] first_series = cw._event_chart.series cw._model_form.element("cycle_time").value = 7000.0 @@ -505,27 +508,24 @@ def test_event_chart_updates_when_a_field_changes(): assert cw._event_chart.series[0]["times"][-1] == 7000.0 / 60.0 -def test_event_chart_clears_when_nothing_is_selectable(): - cw = ConfigurationWidget() - assert cw._event_chart.series # non-empty to start - - cw._column_picker.value = None - +def test_event_chart_clears_when_no_instrument_is_bound(): + cw = ConfigurationWidget() # nothing bound at all assert cw._event_chart.series == [] def test_event_chart_y_label_is_flow_rate_quantity_and_unit(): - cw = ConfigurationWidget() # Batch Elution: every timeline is *.flow_rate + _, cw = built() + cw._model_picker.value = cw._registry["Step"] # every timeline is *.flow_rate assert cw._event_chart.y_label == "Flow rate / m^3/s" def test_cycle_time_slider_is_capped_at_300_minutes_by_default(): - cw = ConfigurationWidget() # default cycle_time (6000s = 100min) is under the cap + _, cw = built() # default cycle_time (6000s = 100min) is under the cap assert cw._event_sliders["cycle_time"].max == 300.0 * 60.0 def test_cycle_time_slider_cap_stretches_to_fit_an_existing_larger_value(): - cw = ConfigurationWidget() + _, cw = built() cw._model_form.element("cycle_time").value = 400.0 * 60.0 # 400 min is above the 300 min cap cw._rebuild_event_sliders() # normally triggered by a rebuild, called directly here @@ -535,10 +535,10 @@ def test_cycle_time_slider_cap_stretches_to_fit_an_existing_larger_value(): def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): - cw = ConfigurationWidget() + iw, cw = built() old_slider = cw._event_sliders["flow_rate"] - cw._column_picker.selected_index = 1 # switch column from GRM (default) to LRMP + iw._column_picker.selected_index = 1 # switch column from GRM (default) to LRMP new_slider = cw._event_sliders["flow_rate"] assert new_slider is not old_slider @@ -547,7 +547,7 @@ def test_switching_column_type_rebuilds_event_sliders_without_stale_links(): def test_cycle_time_settings_gear_visible_only_when_cycle_time_exists(): - cw = ConfigurationWidget() # defaults to Batch Elution, which has cycle_time + _, cw = built() # defaults to Pulse Injection, which has cycle_time assert cw._process_settings.button.layout.display == "" cw._model_picker.value = cw._registry["Load–Wash–Elute (LWE)"] # no cycle_time field @@ -556,7 +556,7 @@ def test_cycle_time_settings_gear_visible_only_when_cycle_time_exists(): def test_cycle_time_minutes_toggle_swaps_visible_field_and_converts_value(): - cw = ConfigurationWidget() + _, cw = built() seconds_element = cw._model_form.element("cycle_time") assert seconds_element.value == 6000.0 assert seconds_element.layout.display == "" @@ -570,7 +570,7 @@ def test_cycle_time_minutes_toggle_swaps_visible_field_and_converts_value(): def test_editing_cycle_time_in_minutes_updates_the_real_seconds_field(): - cw = ConfigurationWidget() + _, cw = built() cw._cycle_time_unit_checkbox.value = True cw._cycle_time_minutes_element.value = 150.0 @@ -581,10 +581,10 @@ def test_editing_cycle_time_in_minutes_updates_the_real_seconds_field(): def test_cycle_time_unit_checkbox_state_persists_across_a_rebuild(): - cw = ConfigurationWidget() + iw, cw = built() cw._cycle_time_unit_checkbox.value = True - cw._components.value = ["Salt", "Protein"] # triggers _rebuild_forms -> fresh elements + iw.components = ["Salt", "Protein"] # triggers _rebuild_forms -> fresh elements seconds_element = cw._model_form.element("cycle_time") assert seconds_element.layout.display == "none" @@ -592,7 +592,7 @@ def test_cycle_time_unit_checkbox_state_persists_across_a_rebuild(): def test_invalid_field_value_is_not_committed_and_shows_an_inline_error(): - cw = ConfigurationWidget() + _, cw = built() element = cw._model_form.element("flow_rate") # has validate=require_positive element.value = -1.0 @@ -604,7 +604,7 @@ def test_invalid_field_value_is_not_committed_and_shows_an_inline_error(): def test_invalid_field_value_leaves_the_last_good_process_in_place(): - cw = ConfigurationWidget() + _, cw = built() good_process = cw.process assert good_process is not None @@ -614,7 +614,7 @@ def test_invalid_field_value_leaves_the_last_good_process_in_place(): def test_cadetprocess_level_rejection_surfaces_as_a_status_error_without_crashing(): - cw = ConfigurationWidget() + _, cw = built() cw._column_form._elements["length"].value = -1.0 # no client-side validator for this field @@ -623,7 +623,7 @@ def test_cadetprocess_level_rejection_surfaces_as_a_status_error_without_crashin def test_fixing_an_invalid_value_recommits_automatically(): - cw = ConfigurationWidget() + _, cw = built() element = cw._model_form.element("flow_rate") element.value = -1.0 assert cw._model_form.built is None @@ -635,73 +635,21 @@ def test_fixing_an_invalid_value_recommits_automatically(): assert cw.process is cw._model_form.built -def test_pulse_feed_builds_a_process_for_a_cstr(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] - # Pulse Feed doesn't need the second component Batch Elution auto-added. - cw._components.value = ["Component 1"] - - assert type(cw.process).__name__ == "Process" - assert cw.process.cycle_time == 6000.0 - timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] - assert timeline.value([0.0]).flatten().tolist() == [10.0] - assert timeline.value([70.0]).flatten().tolist() == [0.0] # past the 60s pulse_duration +def test_bypassing_column_builds_a_process_with_no_column_at_all(): + iw, cw = built() + iw._bypass_checkboxes["column"].value = True + iw._bypass_checkboxes["tubing_pre_column"].value = True + iw._bypass_checkboxes["tubing_post_column"].value = True + iw._bypass_checkboxes["tubing_detectors"].value = True - -def test_pulse_feed_component_picker_targets_only_the_selected_component(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - cw._components.value = ["Salt", "Protein"] - cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] - - component = cw._model_form.element("component") - assert component.option_labels == ["Salt", "Protein"] - timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] - assert timeline.value([0.0]).flatten().tolist() == [10.0, 0.0] - - component.value = "Protein" - - timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] - assert timeline.value([0.0]).flatten().tolist() == [0.0, 10.0] - - -def test_pulse_feed_event_chart_shows_feed_concentration(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] - # Pulse Feed doesn't need the second component Batch Elution auto-added. - cw._components.value = ["Component 1"] - - assert [s["name"] for s in cw._event_chart.series] == ["Feed"] - assert cw._event_chart.y_label == "Concentration / mol/m^3_IV" - - -def test_pulse_feed_gets_sliders_for_its_scalar_fields_but_not_the_component_picker(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] - - assert set(cw._event_sliders) == {"concentration", "flow_rate", "pulse_duration", "cycle_time"} - - -def test_pulse_feed_export_script_round_trips(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["Continuous Stirred Tank Reactor (CSTR)"] - cw._model_picker.value = cw._registry["Pulse Feed (Single Component)"] - - script = cw.export_script() - ns: dict = {} - exec(compile(script, "", "exec"), ns) # noqa: S102 - - assert ns["process"].cycle_time == cw.process.cycle_time - exported_timeline = ns["process"].parameter_timelines["flow_sheet.feed.c"] - original_timeline = cw.process.parameter_timelines["flow_sheet.feed.c"] - assert exported_timeline.value([0.0]).tolist() == original_timeline.value([0.0]).tolist() + assert "column" not in [u.name for u in iw.flow_sheet.units] + assert cw._column_form is None + assert cw._binding_form is None + assert cw.process is not None # the process template itself needs no column def test_config_hash_is_set_after_construction_and_changes_with_field_edits(): - cw = ConfigurationWidget() + _, cw = built() assert cw.config_hash is not None first_hash = cw.config_hash @@ -710,15 +658,15 @@ def test_config_hash_is_set_after_construction_and_changes_with_field_edits(): def test_snapshot_and_apply_state_round_trips_a_mutated_configuration(): - cw = ConfigurationWidget() - cw._column_picker.value = cw._columns["General Rate Model (GRM)"] - cw._binding_picker.value = cw._binding_registry["Langmuir"] + iw, cw = built() + iw._column_picker.value = iw._columns["General Rate Model (GRM)"] + iw._binding_picker.value = iw._binding_registry["Langmuir"] cw._column_form.element("length").value = 0.42 cw._model_form.element("flow_rate").value = 4.4e-6 state = cw._snapshot_state() - cw2 = ConfigurationWidget() # a different widget entirely + _, cw2 = built() # a different widget entirely cw2._apply_state("Imported", state) assert cw2.config_name == "Imported" @@ -730,18 +678,31 @@ def test_snapshot_and_apply_state_round_trips_a_mutated_configuration(): assert cw2._model_form.collect_values() == cw._model_form.collect_values() -def test_apply_state_rejects_an_unregistered_column_key(): - cw = ConfigurationWidget() +def test_apply_state_rejects_an_unregistered_template_key(): + _, cw = built() state = cw._snapshot_state() bad_state = configuration_store.ConfigurationState( - **{**state.__dict__, "column_key": "Some Removed Column"} + **{**state.__dict__, "template_key": "Some Removed Template"} ) with pytest.raises(ValueError, match="isn't registered"): cw._apply_state("x", bad_state) +def test_apply_state_rejects_an_unregistered_column_key(): + iw, cw = built() + state = cw._snapshot_state() + bad_instrument = configuration_store.InstrumentState( + **{**state.instrument.__dict__, "column_key": "Some Removed Column"} + ) + bad_state = configuration_store.ConfigurationState( + **{**state.__dict__, "instrument": bad_instrument} + ) + with pytest.raises(ValueError, match="Unknown column model"): + cw._apply_state("x", bad_state) + + def test_save_button_writes_to_the_store_and_shows_the_path(tmp_path): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Saved Config" cw.persistence._on_save(None) @@ -753,13 +714,13 @@ def test_save_button_writes_to_the_store_and_shows_the_path(tmp_path): def test_import_from_store_restores_a_previously_saved_configuration(): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Saved Config" cw._model_form.element("flow_rate").value = 7.7e-6 cw.persistence._on_save(None) saved_hash = cw.config_hash - cw2 = ConfigurationWidget() + _, cw2 = built() cw2.import_from_store(saved_hash) assert cw2.config_name == "Saved Config" @@ -768,18 +729,18 @@ def test_import_from_store_restores_a_previously_saved_configuration(): def test_import_from_store_with_unknown_hash_shows_an_error(): - cw = ConfigurationWidget() + _, cw = built() cw.import_from_store("deadbeef") assert "deadbeef" in cw.persistence.save_status.value def test_import_hash_button_delegates_to_import_from_store(): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Saved Config" cw.persistence._on_save(None) saved_hash = cw.config_hash - cw2 = ConfigurationWidget() + _, cw2 = built() cw2.persistence._import_hash_field.value = saved_hash cw2.persistence._on_import_hash_click(None) @@ -787,7 +748,7 @@ def test_import_hash_button_delegates_to_import_from_store(): def test_file_upload_imports_an_exported_configuration(): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Uploaded Config" cw._model_form.element("flow_rate").value = 2.2e-6 @@ -800,7 +761,7 @@ def test_file_upload_imports_an_exported_configuration(): configuration_store.save_h5(state, "Uploaded Config", path, process=cw.process) content = memoryview(path.read_bytes()) - cw2 = ConfigurationWidget() + _, cw2 = built() cw2.persistence._file_upload.value = ( { "name": "exported.h5", @@ -817,7 +778,7 @@ def test_file_upload_imports_an_exported_configuration(): def test_store_dir_defaults_to_none_and_uses_the_default_store(tmp_path): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Default Store Config" assert cw.persistence.store_dir is None @@ -828,7 +789,7 @@ def test_store_dir_defaults_to_none_and_uses_the_default_store(tmp_path): def test_setting_a_custom_store_dir_is_used_for_save_and_import(tmp_path): custom = tmp_path / "my_configs" / "nested" - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Custom Folder Config" cw.persistence._store_dir_field.value = str(custom) @@ -840,7 +801,7 @@ def test_setting_a_custom_store_dir_is_used_for_save_and_import(tmp_path): cw.persistence._on_save(None) assert (custom / f"{cw.config_hash}.h5").exists() - cw2 = ConfigurationWidget() + _, cw2 = built() cw2.persistence._store_dir_field.value = str(custom) cw2.persistence._on_set_store_dir(None) cw2.import_from_store(cw.config_hash) @@ -848,7 +809,7 @@ def test_setting_a_custom_store_dir_is_used_for_save_and_import(tmp_path): def test_blank_store_dir_field_resets_to_the_default(tmp_path): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._store_dir_field.value = str(tmp_path / "custom") cw.persistence._on_set_store_dir(None) assert cw.persistence.store_dir is not None @@ -862,7 +823,7 @@ def test_invalid_store_dir_shows_an_error_and_does_not_change_store_dir(tmp_path blocked = tmp_path / "not_a_directory" blocked.write_text("x") - cw = ConfigurationWidget() + _, cw = built() cw.persistence._store_dir_field.value = str(blocked / "sub") cw.persistence._on_set_store_dir(None) @@ -871,7 +832,7 @@ def test_invalid_store_dir_shows_an_error_and_does_not_change_store_dir(tmp_path def test_save_without_a_name_is_refused(tmp_path): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "" # cleared the default name cw.persistence._on_save(None) @@ -880,7 +841,7 @@ def test_save_without_a_name_is_refused(tmp_path): def test_save_load_details_are_collapsed_by_default_and_toggle(): - cw = ConfigurationWidget() + _, cw = built() assert cw.persistence._save_load_details_box.layout.display == "none" assert cw.persistence._btn_toggle_save_load_details.description == "Show details" @@ -894,7 +855,7 @@ def test_save_load_details_are_collapsed_by_default_and_toggle(): def test_save_load_section_is_the_first_section_in_the_panel(): - cw = ConfigurationWidget() + _, cw = built() children = cw.root.children # index 0 is the injected style tag, index 1 the panel title save_load_section = children[2] @@ -902,7 +863,7 @@ def test_save_load_section_is_the_first_section_in_the_panel(): def test_name_error_reflects_whether_the_configuration_is_named(): - cw = ConfigurationWidget() + _, cw = built() assert cw.name_error() is None # has the default name cw.persistence._name_field.value = "" @@ -911,7 +872,7 @@ def test_name_error_reflects_whether_the_configuration_is_named(): def test_persist_to_store_raises_without_a_name(): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "" try: cw.persist_to_store() @@ -921,7 +882,7 @@ def test_persist_to_store_raises_without_a_name(): def test_persist_to_store_saves_and_returns_the_path(tmp_path): - cw = ConfigurationWidget() + _, cw = built() cw.persistence._name_field.value = "Persisted Config" path = cw.persist_to_store() @@ -931,7 +892,7 @@ def test_persist_to_store_saves_and_returns_the_path(tmp_path): def test_config_hash_is_computed_fresh_not_cached_stale(): - cw = ConfigurationWidget() + _, cw = built() first = cw.config_hash cw._model_form.element("flow_rate").value = 8.8e-6 assert cw.config_hash != first # no stale cached value survives a field edit diff --git a/tests/test_configuration_store.py b/tests/test_configuration_store.py index 1c23adc..f1b2e00 100644 --- a/tests/test_configuration_store.py +++ b/tests/test_configuration_store.py @@ -6,6 +6,7 @@ from cadet import H5 from cadetgui.configuration_store import ( ConfigurationState, + InstrumentState, compute_hash, list_store, load_from_store, @@ -17,12 +18,25 @@ warnings.filterwarnings("ignore", category=UserWarning) -def _sample_state(**overrides) -> ConfigurationState: +def _sample_instrument(**overrides) -> InstrumentState: defaults = dict( components=["Salt", "Protein"], column_key="Lumped Rate Model Without Pores (LRM)", binding_key="Linear", - template_key="Batch Elution", + include_sample_loop=True, + sample_loop_volume=50e-9, + sample_loop_diameter_auto=True, + sample_loop_diameter=0.75e-3, + bypass_units=[], + ) + defaults.update(overrides) + return InstrumentState(**defaults) + + +def _sample_state(*, instrument: InstrumentState | None = None, **overrides) -> ConfigurationState: + defaults = dict( + instrument=instrument or _sample_instrument(), + template_key="Load–Wash–Elute (LWE)", multiplex_state={"axial_dispersion": False}, show_optional_column=False, show_optional_binding=True, diff --git a/tests/test_parameter_estimation.py b/tests/test_parameter_estimation.py index 5e10ce5..29a8a77 100644 --- a/tests/test_parameter_estimation.py +++ b/tests/test_parameter_estimation.py @@ -11,12 +11,19 @@ from cadetgui.widgets.composite import ( ConfigurationWidget, DataImportWidget, + InstrumentWidget, ParameterEstimationWidget, ) warnings.filterwarnings("ignore", category=UserWarning) +def built_configuration() -> ConfigurationWidget: + """A default InstrumentWidget + bound ConfigurationWidget, auto-committed.""" + iw = InstrumentWidget() + return ConfigurationWidget(instrument=iw) + + @pytest.fixture(autouse=True) def _isolated_store(tmp_path, monkeypatch): """Redirect the configuration store to a tmp dir -- never touch the real one.""" @@ -79,7 +86,7 @@ def test_parameter_estimation_widget_accepts_a_prebuilt_data_widget(): def test_bind_to_config_populates_the_add_parameter_picker(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) @@ -90,7 +97,7 @@ def test_bind_to_config_populates_the_add_parameter_picker(): def test_config_field_changes_rebuild_the_add_parameter_picker(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) before = len(pw.param_space._param_add_picker.option_labels) @@ -101,7 +108,7 @@ def test_config_field_changes_rebuild_the_add_parameter_picker(): def test_adding_a_parameter_removes_it_from_the_add_picker_and_adds_a_row(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) before = len(pw.param_space._param_add_picker.option_labels) @@ -114,7 +121,7 @@ def test_adding_a_parameter_removes_it_from_the_add_picker_and_adds_a_row(): def test_removing_a_parameter_puts_it_back_in_the_add_picker(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) _add_param(pw, 0) before = len(pw.param_space._param_add_picker.option_labels) @@ -128,7 +135,7 @@ def test_removing_a_parameter_puts_it_back_in_the_add_picker(): def test_unrelated_config_edits_preserve_edited_start_lb_ub_for_an_added_parameter(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) _add_param(pw, 0) pw.param_space._start_fields[0].value = 0.123 @@ -145,7 +152,7 @@ def test_unrelated_config_edits_preserve_edited_start_lb_ub_for_an_added_paramet def test_start_field_defaults_to_the_current_config_value_for_a_new_parameter(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) _add_param(pw, 0) @@ -155,19 +162,19 @@ def test_start_field_defaults_to_the_current_config_value_for_a_new_parameter(): def test_bind_to_config_populates_the_component_picker_with_components_and_total(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) assert pw._component_picker.option_labels == [ - "Component 1", "Component 2", "Total (sum of all components)", + "Component 1", "Total (sum of all components)", ] assert pw._component_picker.value == "Component 1" # a real component, not Total def test_unrelated_config_edits_do_not_reset_an_explicit_total_pick(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) pw._component_picker.value = None # "Total (sum of all components)" @@ -178,7 +185,7 @@ def test_unrelated_config_edits_do_not_reset_an_explicit_total_pick(): def test_bind_to_config_populates_the_base_process_picker_with_current_configuration_only(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) @@ -187,7 +194,7 @@ def test_bind_to_config_populates_the_base_process_picker_with_current_configura def test_preview_populates_the_signal_picker_and_does_not_touch_the_configuration(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) assert pw._signal_picker.option_labels == [] # nothing previewed yet @@ -204,7 +211,7 @@ def test_plot_widget_starts_hidden_and_is_shown_once_a_preview_is_drawn(): # `W.Image` renders a broken-image icon when `.value` is unset -- must # stay hidden until there's actually something to show. pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) assert pw._plot_out.layout.display == "none" @@ -219,7 +226,7 @@ def test_preview_defaults_the_signal_picker_to_the_sink(): # Fitting against the process outlet is the common case -- it should be # selected by default after Preview, not whichever unit happens first. pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) pw._on_preview(None) @@ -245,7 +252,7 @@ def test_uploading_a_dataset_populates_the_dataset_picker(): def test_saving_a_configuration_and_refreshing_lists_it_as_a_base_process(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) cw.persistence._name_field.value = "Saved Base" cw.persist_to_store() @@ -257,7 +264,7 @@ def test_saving_a_configuration_and_refreshing_lists_it_as_a_base_process(): def test_picking_a_saved_base_process_loads_it_into_the_configuration_and_previews(): pw = ParameterEstimationWidget() - cw = ConfigurationWidget() + cw = built_configuration() pw.bind_to_config(cw) cw.persistence._name_field.value = "Saved Base" saved_hash = cw.config_hash @@ -274,7 +281,7 @@ def test_picking_a_saved_base_process_loads_it_into_the_configuration_and_previe def _bound_widgets(): - cw = ConfigurationWidget() + cw = built_configuration() pw = ParameterEstimationWidget() pw.bind_to_config(cw) return cw, pw @@ -485,6 +492,7 @@ def test_run_estimation_with_total_selected_still_succeeds(): def test_run_estimation_with_a_specific_component_selected_succeeds(): cw, pw = _bound_widgets() + cw._instrument.components = ["Component 1", "Component 2"] # needs a real 2nd component pw._on_preview(None) unit, port = pw._signal_picker.value sol = pw._display_result.solution[unit][port] diff --git a/tests/test_parameter_estimation_adapter.py b/tests/test_parameter_estimation_adapter.py index dad408a..c343ffa 100644 --- a/tests/test_parameter_estimation_adapter.py +++ b/tests/test_parameter_estimation_adapter.py @@ -15,13 +15,14 @@ simulate_at, ) from cadetgui.simulation import run_process -from cadetgui.widgets.composite import ConfigurationWidget +from cadetgui.widgets.composite import ConfigurationWidget, InstrumentWidget warnings.filterwarnings("ignore", category=UserWarning) def built_widget() -> ConfigurationWidget: - return ConfigurationWidget() # auto-commits its defaults on construction + iw = InstrumentWidget() + return ConfigurationWidget(instrument=iw) # auto-commits its defaults on construction FIELDS = [ @@ -226,7 +227,7 @@ def test_simulate_at_writes_values_onto_an_independent_copy(): result = simulate_at(process, column, params, [porosity_idx], [0.5]) assert column.total_porosity == original_porosity # caller's process untouched - assert result.solution.outlet.inlet.solution.shape[1] == len(cw._components.value) + assert result.solution.outlet.inlet.solution.shape[1] == len(cw.components) # Compare against a hand-built simulation at the same value -- same curve. import copy as _copy @@ -308,6 +309,7 @@ def test_run_estimation_with_a_component_name_ignores_other_components(): # A reference built from just "Component 2" should recover the same fit # whether "Component 1" is perturbed or not -- it's never looked at. cw = built_widget() + cw._instrument.components = ["Component 1", "Component 2"] # needs a real 2nd component process, column = cw.process, cw._column_form.built original_porosity = column.total_porosity diff --git a/tests/test_run_history.py b/tests/test_run_history.py index 87bba72..12e52e6 100644 --- a/tests/test_run_history.py +++ b/tests/test_run_history.py @@ -1,5 +1,6 @@ from __future__ import annotations +import cadetgui.run_store as run_store from cadetgui.widgets.composite import RunHistoryWidget @@ -79,3 +80,80 @@ def test_record_without_config_leaves_hash_none(): assert run.config_name is None assert run.config_hash is None + + +def test_default_store_dir_is_none_and_nothing_is_persisted(tmp_path, monkeypatch): + """No store_dir set -> plain in-memory history, matching the pre-persistence behavior.""" + monkeypatch.setattr(run_store, "default_run_store_dir", lambda: tmp_path) + h = RunHistoryWidget() + h.record("first", result="r1") + + assert h.store_dir is None + assert run_store.list_runs(store_dir=tmp_path) == [] + + +def test_record_persists_metadata_when_store_dir_is_set(tmp_path): + h = RunHistoryWidget(store_dir=tmp_path) + run = h.record("first", result="r1", config_name="Cfg", config_hash="abc") + + assert run.run_id is not None + persisted = run_store.list_runs(store_dir=tmp_path) + assert len(persisted) == 1 + assert persisted[0].run_id == run.run_id + assert persisted[0].label == "first" + assert persisted[0].ok is True + assert persisted[0].config_name == "Cfg" + assert persisted[0].config_hash == "abc" + + +def test_record_persists_a_failed_run_too(tmp_path): + h = RunHistoryWidget(store_dir=tmp_path) + run = h.record("bad", error="boom") + + persisted = run_store.list_runs(store_dir=tmp_path) + assert persisted[0].run_id == run.run_id + assert persisted[0].ok is False + assert persisted[0].error == "boom" + + +def test_construction_loads_existing_runs_from_store_dir(tmp_path): + id_a = run_store.new_run_id() + run_store.save_run(id_a, "Old Run", ok=True, store_dir=tmp_path) + + h = RunHistoryWidget(store_dir=tmp_path) + + assert [r.label for r in h.runs] == ["Old Run"] + assert h.runs[0].run_id == id_a + assert h.runs[0].result is None # not hydrated -- only metadata was ever stored + assert h.selected.label == "Old Run" + + +def test_loaded_run_is_ok_even_though_result_is_still_none(tmp_path): + run_id = run_store.new_run_id() + run_store.save_run(run_id, "Old Run", ok=True, store_dir=tmp_path) + + h = RunHistoryWidget(store_dir=tmp_path) + + assert h.runs[0].ok is True + assert h.runs[0].result is None + + +def test_setting_store_dir_via_the_ui_field_loads_that_folders_history(tmp_path): + run_store.save_run(run_store.new_run_id(), "From Folder", ok=True, store_dir=tmp_path) + + h = RunHistoryWidget() + h.record("In memory only", result="r1") + h._store_dir_field.value = str(tmp_path) + h._on_set_store_dir(None) + + assert [r.label for r in h.runs] == ["From Folder"] + assert h.store_dir == tmp_path.resolve() + + +def test_clearing_the_store_dir_field_reverts_to_in_memory_only(tmp_path): + h = RunHistoryWidget(store_dir=tmp_path) + h._store_dir_field.value = "" + h._on_set_store_dir(None) + + assert h.store_dir is None + assert h.runs == [] diff --git a/tests/test_run_store.py b/tests/test_run_store.py new file mode 100644 index 0000000..ad17953 --- /dev/null +++ b/tests/test_run_store.py @@ -0,0 +1,106 @@ +from __future__ import annotations + +import warnings + +import cadetgui.run_store as run_store +import pytest +from cadetgui.widgets.composite import ConfigurationWidget, InstrumentWidget + +warnings.filterwarnings("ignore", category=UserWarning) + + +def built_process(): + iw = InstrumentWidget() + cw = ConfigurationWidget(instrument=iw) # auto-commits its defaults on construction + return cw.process + + +def test_new_run_id_is_unique(): + assert run_store.new_run_id() != run_store.new_run_id() + + +def test_save_and_load_run_round_trips_metadata(tmp_path): + run_id = run_store.new_run_id() + saved = run_store.save_run( + run_id, "My Run", ok=True, config_hash="abc123", config_name="My Config", + store_dir=tmp_path, + ) + loaded = run_store.load_run(run_id, store_dir=tmp_path) + + assert loaded == saved + assert loaded.label == "My Run" + assert loaded.ok is True + assert loaded.config_hash == "abc123" + assert loaded.config_name == "My Config" + assert loaded.error is None + + +def test_save_run_records_an_error_for_a_failed_run(tmp_path): + run_id = run_store.new_run_id() + run_store.save_run(run_id, "Bad Run", ok=False, error="boom", store_dir=tmp_path) + loaded = run_store.load_run(run_id, store_dir=tmp_path) + + assert loaded.ok is False + assert loaded.error == "boom" + + +def test_load_run_raises_a_clear_error_for_an_unknown_id(tmp_path): + with pytest.raises(FileNotFoundError, match="deadbeef"): + run_store.load_run("deadbeef", store_dir=tmp_path) + + +def test_list_runs_is_empty_for_a_fresh_store_dir(tmp_path): + assert run_store.list_runs(store_dir=tmp_path) == [] + + +def test_list_runs_lists_every_saved_run_newest_first(tmp_path): + id_a = run_store.new_run_id() + run_store.save_run(id_a, "First", ok=True, store_dir=tmp_path) + id_b = run_store.new_run_id() + run_store.save_run(id_b, "Second", ok=True, store_dir=tmp_path) + + runs = run_store.list_runs(store_dir=tmp_path) + + assert [r.run_id for r in runs] == [id_b, id_a] + + +def test_run_output_path_is_scoped_to_the_given_store_dir(tmp_path): + run_id = run_store.new_run_id() + path = run_store.run_output_path(run_id, store_dir=tmp_path) + + assert path == tmp_path / f"{run_id}.h5" + + +def test_load_run_results_rejects_a_failed_run(tmp_path): + run_id = run_store.new_run_id() + run_store.save_run(run_id, "Bad Run", ok=False, error="boom", store_dir=tmp_path) + run = run_store.load_run(run_id, store_dir=tmp_path) + + with pytest.raises(ValueError, match="failure"): + run_store.load_run_results(run, process=None, store_dir=tmp_path) + + +def test_load_run_results_raises_when_the_output_file_is_missing(tmp_path): + run_id = run_store.new_run_id() + run_store.save_run(run_id, "No Output", ok=True, store_dir=tmp_path) + run = run_store.load_run(run_id, store_dir=tmp_path) + + with pytest.raises(FileNotFoundError): + run_store.load_run_results(run, process=built_process(), store_dir=tmp_path) + + +def test_load_run_results_reconstructs_a_real_simulation_result(tmp_path): + from cadetgui.simulation import run_process + + process = built_process() + run_id = run_store.new_run_id() + output_path = run_store.run_output_path(run_id, store_dir=tmp_path) + + live_result = run_process(process, file_path=output_path) + assert output_path.exists() # kept, unlike the simulator's own self-deleting tempfile + + run_store.save_run(run_id, "Real Run", ok=True, store_dir=tmp_path) + run = run_store.load_run(run_id, store_dir=tmp_path) + reloaded = run_store.load_run_results(run, process, store_dir=tmp_path) + + assert reloaded.solution.keys() == live_result.solution.keys() diff --git a/tests/test_solution.py b/tests/test_solution.py index 561edb3..22b7613 100644 --- a/tests/test_solution.py +++ b/tests/test_solution.py @@ -9,7 +9,11 @@ import cadetgui.configuration_store as configuration_store from cadetgui.simulation import run_process as _default_runner -from cadetgui.widgets.composite import ConfigurationWidget, SolutionWidget +from cadetgui.widgets.composite import ( + ConfigurationWidget, + InstrumentWidget, + SolutionWidget, +) warnings.filterwarnings("ignore", category=UserWarning) @@ -20,9 +24,14 @@ def _isolated_store(tmp_path, monkeypatch): monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) +def built_configuration(): + """A default InstrumentWidget + bound ConfigurationWidget, auto-committed.""" + iw = InstrumentWidget() + return ConfigurationWidget(instrument=iw) + + def built_process(): - cw = ConfigurationWidget() # auto-commits its defaults on construction - return cw.process + return built_configuration().process def test_solutionwidget_starts_with_no_process(): @@ -34,11 +43,11 @@ def test_solutionwidget_starts_with_no_process(): def test_solutionwidget_set_process_updates_label(): sw = SolutionWidget() sw.set_process(built_process()) - assert "Batch Elution" in sw._process_label.value + assert "pulse_injection" in sw._process_label.value def test_solutionwidget_bind_to_config_tracks_future_field_changes(): - cw = ConfigurationWidget() + cw = built_configuration() sw = SolutionWidget() sw.bind_to_config(cw) assert sw.process is cw.process # already auto-built by the time we bind @@ -50,7 +59,7 @@ def test_solutionwidget_bind_to_config_tracks_future_field_changes(): def test_solutionwidget_bind_to_config_picks_up_existing_process(): - cw = ConfigurationWidget() + cw = built_configuration() sw = SolutionWidget() sw.bind_to_config(cw) @@ -103,18 +112,19 @@ def test_solutionwidget_run_populates_signals_and_plots(): def test_signal_list_collapses_inlet_and_outlet_units_to_one_entry_each(): - # Batch Elution: two Inlet units (feed, eluent), one real column, one Outlet. + # An LCFlowSheet has many Inlet units (buffer_a..d, feed_inlet) and two + # Outlets (outlet, waste); non-Inlet/Outlet units (column, tubing, mixer) + # still expose both raw ports. sw = SolutionWidget(process=built_process()) sw._on_run(None) labels = sw._signal_picker.option_labels - assert set(labels) == { - "feed: Source", - "eluent: Source", - "column: inlet", - "column: outlet", - "outlet: Sink", - } + assert "outlet: Sink" in labels + assert "waste: Sink" in labels + assert "buffer_a: Source" in labels + assert "feed_inlet: Source" in labels + assert "column: inlet" in labels + assert "column: outlet" in labels assert labels[0] == "outlet: Sink" # sorted first -- the common default signal @@ -123,7 +133,7 @@ def test_signal_list_source_and_sink_options_point_at_the_real_port(): sw._on_run(None) options = dict(sw._signal_picker._options) - assert options["feed: Source"] == ("feed", "outlet") + assert options["feed_inlet: Source"] == ("feed_inlet", "outlet") assert options["outlet: Sink"] == ("outlet", "inlet") @@ -145,7 +155,7 @@ def test_classify_signal_ports_is_usable_standalone_from_the_adapter(): process = built_process() result = run_process(process) options = dict(classify_signal_ports(result)) - assert options["feed: Source"] == ("feed", "outlet") + assert options["feed_inlet: Source"] == ("feed_inlet", "outlet") assert options["column: inlet"] == ("column", "inlet") @@ -215,7 +225,7 @@ def test_solutionwidget_picking_a_failed_run_shows_its_error(): def test_solutionwidget_run_tags_history_with_config_name_and_hash(): - cw = ConfigurationWidget() + cw = built_configuration() cw.persistence._name_field.value = "My Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -228,7 +238,7 @@ def test_solutionwidget_run_tags_history_with_config_name_and_hash(): def test_solutionwidget_run_auto_saves_config_to_store(): - cw = ConfigurationWidget() + cw = built_configuration() cw.persistence._name_field.value = "Auto Saved Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -249,7 +259,7 @@ def test_solutionwidget_run_without_bound_config_leaves_history_untagged(): def test_solutionwidget_run_refuses_when_bound_config_has_no_name(): - cw = ConfigurationWidget() + cw = built_configuration() cw.persistence._name_field.value = "" # cleared the default name sw = SolutionWidget() sw.bind_to_config(cw) @@ -268,19 +278,19 @@ def test_solutionwidget_run_without_bound_config_does_not_require_a_name(): def test_solutionwidget_process_label_shows_the_configuration_name_not_the_process_name(): - cw = ConfigurationWidget() + cw = built_configuration() sw = SolutionWidget() sw.bind_to_config(cw) - assert "New Experiment" in sw._process_label.value # the default name, not "Batch Elution" - assert "Batch Elution" not in sw._process_label.value + assert "New Experiment" in sw._process_label.value # the default name, not "pulse_injection" + assert "pulse_injection" not in sw._process_label.value cw.persistence._name_field.value = "My Named Config" assert "My Named Config" in sw._process_label.value - assert "Batch Elution" not in sw._process_label.value + assert "pulse_injection" not in sw._process_label.value def test_solutionwidget_run_history_label_uses_the_configuration_name(): - cw = ConfigurationWidget() + cw = built_configuration() cw.persistence._name_field.value = "My Named Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -298,7 +308,7 @@ def test_solutionwidget_load_config_button_hidden_without_a_hash(): def test_solutionwidget_load_config_button_reimports_the_run_configuration(): - cw = ConfigurationWidget() + cw = built_configuration() cw.persistence._name_field.value = "Reimport Test Config" sw = SolutionWidget() sw.bind_to_config(cw) @@ -312,3 +322,56 @@ def test_solutionwidget_load_config_button_reimports_the_run_configuration(): sw._on_load_config(None) assert cw.config_hash == saved_hash + + +def test_solutionwidget_run_without_a_store_dir_reserves_no_run_id(): + """Default (no store_dir set): behaves exactly as before -- nothing written to disk.""" + sw = SolutionWidget(process=built_process()) + sw._on_run(None) + + assert sw.history.selected.run_id is None + + +def test_solutionwidget_run_with_a_store_dir_persists_the_run(tmp_path): + import cadetgui.run_store as run_store + + sw = SolutionWidget(process=built_process()) + sw.history.store_dir = tmp_path + sw._on_run(None) + + run = sw.history.selected + assert run.run_id is not None + persisted = run_store.list_runs(store_dir=tmp_path) + assert persisted[0].run_id == run.run_id + assert run_store.run_output_path(run.run_id, store_dir=tmp_path).exists() + + +def test_solutionwidget_reloads_a_persisted_run_in_a_fresh_instance(tmp_path): + """The real point of the store: a 'kernel restart' (fresh widgets, same folder) + can still view a previous run's actual result, not just its label.""" + cw = built_configuration() + cw.persistence._name_field.value = "Persisted Config" + cw.persistence.store_dir = tmp_path + + sw = SolutionWidget() + sw.bind_to_config(cw) + sw.history.store_dir = tmp_path + sw._on_run(None) + + original_run = sw.history.selected + assert original_run.result is not None + + # Fresh instances, same folder -- nothing carried over in memory. Pointing + # the history at the folder auto-selects (and so auto-hydrates) the + # newest run, the same as picking it by hand would. + cw2 = built_configuration() + cw2.persistence.store_dir = tmp_path + sw2 = SolutionWidget() + sw2.bind_to_config(cw2) + sw2.history.store_dir = tmp_path + + reloaded_run = sw2.history.selected + assert reloaded_run.label == "Persisted Config" + assert reloaded_run.result is not None + assert set(reloaded_run.result.solution.keys()) == set(original_run.result.solution.keys()) + assert sw2.result is not None diff --git a/tests/test_workbench.py b/tests/test_workbench.py index 8091120..67f3639 100644 --- a/tests/test_workbench.py +++ b/tests/test_workbench.py @@ -15,10 +15,11 @@ def _isolated_store(tmp_path, monkeypatch): monkeypatch.setattr(configuration_store, "default_store_dir", lambda: tmp_path) -def test_workbench_builds_and_wires_the_three_widgets(): +def test_workbench_builds_and_wires_the_four_widgets(): wb = WorkbenchWidget() - assert wb.configuration.process is not None # auto-committed on construction + assert wb.instrument.flow_sheet is not None # auto-committed on construction + assert wb.configuration.process is not None # bind_to_instrument picked it up assert wb.solution.process is wb.configuration.process # bind_to_config picked it up @@ -34,10 +35,11 @@ def test_workbench_wires_parameter_estimation_to_configuration(): assert wb.solution.result is None # the Simulation tab's own run state is untouched -def test_workbench_shows_only_the_configuration_pane_initially(): +def test_workbench_shows_only_the_instrument_pane_initially(): wb = WorkbenchWidget() - assert wb.configuration.root.layout.display == "" + assert wb.instrument.root.layout.display == "" + assert wb.configuration.root.layout.display == "none" assert wb.solution.root.layout.display == "none" assert wb.parameter_estimation.root.layout.display == "none" assert wb._nav.index == 0 @@ -46,13 +48,24 @@ def test_workbench_shows_only_the_configuration_pane_initially(): def test_workbench_nav_switches_the_visible_pane(): wb = WorkbenchWidget() - wb._nav.index = 1 # Simulation + wb._nav.index = 2 # Simulation + assert wb.instrument.root.layout.display == "none" assert wb.configuration.root.layout.display == "none" assert wb.solution.root.layout.display == "" assert wb.parameter_estimation.root.layout.display == "none" +def test_workbench_instrument_edits_flow_through_to_configuration_and_solution(): + wb = WorkbenchWidget() + first_process = wb.solution.process + + wb.instrument.components = ["Salt", "Protein"] + + assert wb.solution.process is wb.configuration.process + assert wb.solution.process is not first_process + + def test_workbench_config_edits_still_flow_through_to_solution(): wb = WorkbenchWidget() first_process = wb.solution.process @@ -79,19 +92,29 @@ def test_workbench_accepts_prebuilt_widgets(): assert wb.configuration is cw assert wb.solution is sw assert wb.parameter_estimation is pw + assert cw.process is not None # bound to WorkbenchWidget's own default Instrument assert sw.process is cw.process def test_workbench_include_builds_only_the_requested_steps(): - wb = WorkbenchWidget(include=("Configuration", "Simulation")) + wb = WorkbenchWidget(include=("Instrument", "Configuration", "Simulation")) + assert wb.instrument is not None assert wb.configuration is not None assert wb.solution is not None assert wb.parameter_estimation is None - assert list(wb._nav.options) == ["Configuration", "Simulation"] + assert list(wb._nav.options) == ["Instrument", "Configuration", "Simulation"] assert wb.solution.process is wb.configuration.process +def test_workbench_excluding_instrument_leaves_configuration_unbound(): + wb = WorkbenchWidget(include=("Configuration", "Simulation")) + + assert wb.instrument is None + assert wb.configuration.process is None # nothing to build against + assert wb.solution.process is None + + def test_workbench_include_rejects_unknown_step(): with pytest.raises(ValueError): WorkbenchWidget(include=("Configuration", "Not A Step")) From 3cc24a0898bdbf258e1d21b568420e5bf99cd61d Mon Sep 17 00:00:00 2001 From: Hannah Lanzrath Date: Tue, 22 Sep 2026 09:06:31 +0200 Subject: [PATCH 072/158] Add inno4vac examples --- .../2_A310_60_BM_160rpm_FlowStats_003.csv | 20559 ++++++++++++++++ .../2_A310_60_BM_160rpm_FlowStats_003.xlsx | Bin 0 -> 1840225 bytes examples/inno4vac/inno4vac_examples.ipynb | 7505 ++++++ pyproject.toml | 9 + 4 files changed, 28073 insertions(+) create mode 100644 examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.csv create mode 100644 examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.xlsx create mode 100644 examples/inno4vac/inno4vac_examples.ipynb diff --git a/examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.csv b/examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.csv new file mode 100644 index 0000000..51d462b --- /dev/null +++ b/examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.csv @@ -0,0 +1,20559 @@ +X [ m ], Y [ m ], Z [ m ], Area [ m^2 ], Gas.Volume Fraction.Trnavg, kla [ s^-1 ], Liquid.Velocity.Trnavg Axial [ m s^-1 ], Liquid.Velocity.Trnavg Radial [ m s^-1 ], Ostar [ kg m^-3 ], Radius [ m ] +0.0087283738,0.000365793938,-0.00872837473,0.00275103282,0.0162777174,0.00724251149,0.00261550304,0.00589244999,0.0200833771,0.0152923111 +0.00430194382,0.000392272486,-0.00430194475,0.00326001621,0.0162668303,0.00724070147,0.00261923531,0.00849633757,0.0200848617,0.0170242414 +0.0807510242,0.00348209729,-0.0807510242,0.00447714236,0.0162305646,0.00781707186,0.00023071497,0.049451828,0.0200948659,0.114443488 +-0.0817088336,0.00363417156,0.0817088336,0.00635355152,0.0158685632,0.00763992174,-0.00484669721,0.125769556,0.0201273523,0.144916832 +0.128352314,0.0056117489,-0.128352314,0.00192542525,0.0161895584,0.00813855883,-0.00120929116,0.0815422609,0.0201025065,0.183175057 +0.13040936,0.00574359158,-0.13040936,0.000203693198,0.0161936395,0.00815794244,-0.000785382232,0.0814269111,0.0201054811,0.185306042 +0.133524612,0.00607903255,-0.133524597,0.00480148941,0.0162089411,0.0081998948,-0.00119408628,0.0790076777,0.0201134421,0.18916069 +-0.166603386,0.00934592076,0.166603401,0.00400164491,0.0156886056,0.00833754707,0.00419698469,0.136498213,0.0203088187,0.242277935 +-0.189353302,0.011627865,0.189353317,0.00453956472,0.0157892574,0.00861692708,0.00698263897,0.139872789,0.0203734618,0.272459388 +0.254246503,0.0208003893,-0.254246503,0.00731944293,0.0165541396,0.00975475181,-0.00358536677,-0.00895235501,0.0204770211,0.371974826 +-0.291379154,0.0254464615,0.291379154,0.00356988306,0.0169095416,0.0104122199,0.012601831,-0.00849146768,0.0207675081,0.412078708 +-0.29211536,0.0255507771,0.29211536,3.5440622e-05,0.0169174634,0.0104248757,0.0126275411,-0.00960827712,0.0207704473,0.4131428 +-0.292219013,0.0255674105,0.292219013,3.22931919e-05,0.0169195756,0.0104269339,0.0126228454,-0.00981489103,0.020770859,0.413277805 +-0.292879254,0.0256986395,0.292879254,0.00325932889,0.01694135,0.0104439268,0.0125056943,-0.0109221796,0.0207734536,0.414196849 +0.326186687,0.0325431451,-0.326186687,0.00419405056,0.0176269263,0.0107880775,-0.0145458598,-0.154207647,0.0207665022,0.46663782 +0.367546558,0.0403340124,-0.367546558,0.00446812762,0.0184700899,0.0114966175,-0.0207298212,-0.220029771,0.0209447183,0.523649454 +-0.388662934,0.0450831689,0.388662964,0.00386604667,0.0200535841,0.0129763531,-0.00492688827,-0.180389613,0.0211665034,0.552003324 +-0.409907967,0.0500997454,0.409907967,0.00292671798,0.0211154297,0.0136670331,-0.00848101266,-0.199666813,0.0212322939,0.580989897 +0.450288594,0.0600118935,-0.450288594,0.00368818594,0.0219728015,0.0137196137,-0.0329260156,-0.314410388,0.0212805122,0.638784289 +0.471630365,0.0656781867,-0.471630365,0.00425475324,0.0231418256,0.0144013548,-0.0365709886,-0.328485638,0.0213586986,0.668991446 +-0.476916492,0.0675253347,0.476916492,0.00451861927,0.0249590948,0.0159833636,-0.0256261006,-0.257855237,0.0214278903,0.678394318 +-0.542696595,0.0869665965,0.542696595,0.0031468845,0.029083658,0.0182010923,-0.0246549938,-0.263768137,0.0215622745,0.768810928 +-0.567349136,0.0948222652,0.567349136,0.00238309847,0.0308156274,0.0190682951,-0.0248197727,-0.262663543,0.021608647,0.80446732 +0.570004344,0.0955196023,-0.570004284,0.00360061554,0.0291106347,0.017584255,-0.0322676115,-0.301383525,0.0216482151,0.806324542 +0.572277665,0.0962854698,-0.572277606,0.000588630559,0.0292549487,0.0176556744,-0.0320815109,-0.299333245,0.0216538049,0.809548318 +0.586259842,0.101380758,-0.586259842,0.00368342595,0.0298700649,0.0179336723,-0.0275346469,-0.277018219,0.0216810033,0.829121232 +0.00845838711,0.101843454,-0.00845838245,0.00586731918,0.059199214,0.027535839,-0.00359039265,0.00582453609,0.0200025644,0.0148555543 +0.00411137007,0.101908624,-0.00411137333,0.00689331023,0.0591869019,0.0275424868,-0.00338097941,0.00806895271,0.02000352,0.0165581014 +-0.609663188,0.109835282,0.609663188,0.00331033813,0.0330352262,0.0200676862,-0.0151074957,-0.211186275,0.0216710661,0.862696528 +-0.0792040899,0.11022,0.0792040899,0.0133748353,0.0578662083,0.0293547884,0.0185174029,0.114409313,0.0200308636,0.140391409 +0.0774328932,0.110455036,-0.0774328858,0.00945064239,0.0596082583,0.0304441731,0.0222750362,0.0552865006,0.0200028606,0.109753273 +-0.161588863,0.114795603,0.161588863,0.00836468674,0.0537367091,0.0299131498,0.054775551,0.148397103,0.020171525,0.234927073 +0.124261625,0.116344981,-0.124261633,0.00400701398,0.0597916059,0.0320820659,0.0403073095,0.0924594402,0.0200032089,0.177403703 +-0.183500081,0.116485886,0.183500081,0.00952692609,0.0534850843,0.0306003541,0.0631892085,0.156966135,0.0202279277,0.263998598 +0.126337886,0.116488419,-0.126337886,0.000429758569,0.059779048,0.0321495645,0.0413470753,0.0928881764,0.0200055353,0.179554194 +0.129477307,0.116945118,-0.129477307,0.0100728115,0.059874393,0.0323517211,0.0418716148,0.0914072543,0.0200127959,0.183438882 +-0.282520264,0.121043034,0.282520294,0.00756819453,0.0538903363,0.0344318189,0.0796776339,0.044867266,0.0206093695,0.39955616 +-0.283955097,0.12111973,0.283955127,0.000101859434,0.0538958199,0.0344834104,0.0799240321,0.043149583,0.0206150841,0.401629597 +-0.284157217,0.121126831,0.284157217,9.22676045e-05,0.0539030917,0.0344921835,0.0798819363,0.042784974,0.0206159391,0.401893079 +-0.285431057,0.121340327,0.285431057,0.00692137377,0.0540543608,0.0346077308,0.0793995857,0.0405799225,0.0206212867,0.403666198 +0.246445134,0.127816737,-0.246445149,0.0153780989,0.0582815334,0.0366063491,0.069957301,0.0621683411,0.020330891,0.360518545 +-0.659039378,0.128126115,0.659039378,0.00294038886,0.0356838852,0.0211480539,-0.00390061969,-0.157284126,0.021746017,0.934262455 +0.673876822,0.133797973,-0.673876882,0.0036926209,0.0338268541,0.0195900891,0.00039498182,-0.140180022,0.0218574479,0.954199791 +0.316354334,0.136149168,-0.316354305,0.00883228984,0.062066704,0.040558368,0.0486116037,-0.0639815331,0.0206113551,0.452557683 +-0.378420025,0.136377454,0.378420025,0.0081891939,0.064804554,0.0432182923,0.0432218611,-0.129577175,0.0210281648,0.537449539 +0.687295258,0.139305189,-0.687295258,0.00384056382,0.034306135,0.0197625943,0.00728225848,-0.113709599,0.0218765885,0.97290951 +0.356832057,0.140711963,-0.356832057,0.00943924673,0.0643024147,0.0425996445,0.0334722698,-0.12416932,0.0207919925,0.50837934 +-0.690331697,0.140875682,0.690331697,0.00340718986,0.0366257951,0.0214641877,0.013672661,-0.083422333,0.0217745434,0.977265954 +-0.399039268,0.14122881,0.399039268,0.00620735902,0.0684390888,0.0455942228,0.0293249916,-0.15128161,0.0210967381,0.565582335 +0.437434882,0.157335699,-0.437434882,0.00779354479,0.0754534677,0.0496431999,-0.0157504659,-0.225119129,0.021134844,0.620551348 +-0.463970721,0.160940409,0.463970721,0.00957090501,0.0823961496,0.0544769466,-0.0264800377,-0.218108922,0.0213050172,0.659983039 +0.458221465,0.162779406,-0.458221465,0.00896873418,0.0791592449,0.0517806672,-0.0324293822,-0.240136042,0.0212161224,0.64997524 +-0.752325058,0.167811513,0.752325058,0.00581529737,0.0385976136,0.0220253561,0.0519753918,0.0766551867,0.0218349472,1.06675911 +0.777687132,0.179923713,-0.777687132,0.00429725973,0.0370678268,0.0207533948,0.0783462822,0.110184282,0.0219763611,1.10153902 +-0.527548552,0.181806698,0.527548552,0.0066551934,0.0967391655,0.0629246011,-0.0861323774,-0.228701934,0.0214428045,0.747355759 +-0.55139488,0.19057548,0.55139488,0.00503519177,0.102816835,0.0664638057,-0.111508094,-0.229368791,0.0214901026,0.781852245 +0.803364336,0.192334056,-0.803364277,0.00393412728,0.0377898701,0.0210335907,0.10613811,0.177457631,0.0219928771,1.13752174 +0.553347707,0.192693412,-0.553347707,0.007572826,0.0996079817,0.0631787777,-0.119158104,-0.230433926,0.0215150602,0.782764435 +0.555552781,0.193510041,-0.555552781,0.0012694723,0.100161523,0.0634984002,-0.121572524,-0.228699028,0.0215208475,0.785891414 +0.568990767,0.19866547,-0.568990767,0.00760320993,0.102804363,0.0650475919,-0.132194236,-0.205430552,0.0215486493,0.804698348 +-0.592438459,0.206399456,0.592438459,0.00696950499,0.111832581,0.0717432126,-0.149028823,-0.175929472,0.0215493143,0.838323295 +-0.848623335,0.213707507,0.848623335,0.00353181758,0.0396380126,0.0222372245,0.160213396,0.348314136,0.0218671598,1.20014274 +-0.849031687,0.213907674,0.849031627,4.03052327e-05,0.0396429971,0.0222380664,0.160659313,0.349435329,0.0218673088,1.20073009 +-0.84929651,0.21404779,0.84929651,0.00363837765,0.0396415964,0.0222372711,0.161027893,0.350022614,0.0218673497,1.20109642 +0.0081798546,0.220238253,-0.00817986019,0.00343229435,0.193160087,0.106469609,0.0198994428,0.00259316387,0.0199225675,0.0148413572 +0.0034050066,0.220358461,-0.00340500614,0.00449210452,0.192992359,0.106451198,0.0205233451,0.00225280854,0.0199231468,0.0167220272 +-0.639976025,0.225405633,0.639976025,0.00607210258,0.122467101,0.0777314082,-0.192690477,-0.118600368,0.021620987,0.907234013 +0.0108232917,0.226326808,-0.0108232908,0.00564741949,0.198893502,0.110413477,0.0224943459,0.00343567482,0.0199191161,0.0171371773 +0.651188016,0.230633184,-0.651188016,0.00751548912,0.119250432,0.0744297057,-0.198645532,-0.0665187761,0.0217247624,0.922059834 +-0.275341064,0.23304227,0.275341034,2.54373044e-05,0.107506439,0.0778357461,0.232742846,-0.030278476,0.020423945,0.38939932 +-0.275292158,0.233046174,0.275292158,2.89461277e-05,0.1075105,0.0778372064,0.232772514,-0.0301828105,0.0204237252,0.38933599 +-0.274912685,0.233058244,0.274912685,0.00536351232,0.107622549,0.077892825,0.232623354,-0.0296049211,0.0204222836,0.388788134 +-0.275315851,0.233075723,0.275315851,2.74648393e-08,0.107520975,0.0778478384,0.232794583,-0.0302601997,0.0204237904,0.38936764 +-0.275645941,0.233081862,0.275645941,0.00439840509,0.107521594,0.0778533071,0.232514933,-0.0308243111,0.0204253718,0.389823645 +-0.275255531,0.233118564,0.275255531,0.00110190781,0.107555583,0.0778716132,0.23284322,-0.0301516205,0.0204234701,0.389277965 +0.883362591,0.233242214,-0.883362651,0.00428594463,0.0390518047,0.0216012355,0.220440358,0.399164915,0.022021139,1.25116837 +-0.077052854,0.233813226,0.0770528466,0.0103513291,0.17778337,0.106595196,0.100274436,0.0750197992,0.0199341718,0.136503085 +-0.275612503,0.234123111,0.275612533,0.00166644412,0.107907414,0.0782126933,0.233797863,-0.031648811,0.0204240177,0.389775544 +0.000335558318,0.234208137,-0.000335557153,0.00256374967,0.211138323,0.117516614,0.0232008658,0.006179424,0.0199141838,0.0190149155 +0.663335145,0.235798925,-0.663335145,0.00761092268,0.121104911,0.0755476579,-0.204081178,-0.0368983299,0.0217433982,0.938985348 +-0.155328527,0.235803783,0.155328512,0.00875263195,0.143371791,0.0922610834,0.181270942,0.116918549,0.0200148299,0.225619838 +0.082795158,0.235858649,-0.0827951506,0.00635010703,0.177138537,0.107738145,0.112775706,0.0491909757,0.0199128296,0.117347017 +-0.175441802,0.23678042,0.175441787,0.00600348599,0.134997278,0.0888660923,0.198337287,0.113963917,0.0200569574,0.252253771 +-0.668823242,0.237183467,0.668823242,0.00679722661,0.12678127,0.0801056027,-0.208032981,-0.0407687426,0.0216470547,0.946811557 +-0.366430074,0.243312776,0.366430104,0.00706699584,0.110736899,0.0823452845,0.162754193,-0.203280866,0.020868754,0.520457447 +0.120647088,0.243800744,-0.120647088,0.00192799594,0.168509051,0.106561795,0.161203176,0.0756220222,0.0199080762,0.17200467 +0.12234772,0.243922859,-0.12234772,0.0002085249,0.167997032,0.106406227,0.163096175,0.076112166,0.0199093856,0.173758954 +0.124909066,0.244391784,-0.124909058,0.00867588725,0.167478338,0.10646189,0.16477786,0.0739202425,0.0199136958,0.176921397 +0.123423606,0.246135473,-0.123423599,0.000727282604,0.168853939,0.107314639,0.166017026,0.0757905617,0.0199089516,0.174975723 +-0.165774569,0.247305945,0.165774554,0.00138982281,0.144864231,0.0950971916,0.20227389,0.121835276,0.0200217254,0.240608186 +-0.386686087,0.248034477,0.386686087,0.00468244776,0.114084333,0.0845192447,0.139145181,-0.21988067,0.0209457092,0.548084497 +0.121250115,0.248623163,-0.121250115,0.00491654687,0.173358679,0.109829932,0.161980942,0.0772827566,0.0199053697,0.171862945 +0.238175288,0.251682371,-0.238175288,0.0138570499,0.121664852,0.0881377757,0.257538497,0.00904930383,0.0201486591,0.348609626 +0.920178056,0.253733337,-0.920178056,0.00370893022,0.0392006934,0.0216978453,0.269806504,0.476804227,0.0220224056,1.30284238 +0.305435896,0.256361902,-0.305435896,0.00736938417,0.118369639,0.0884633511,0.207452133,-0.128845647,0.0204049218,0.437048435 +0.344691098,0.2576828,-0.344691098,0.00713278027,0.117416665,0.0885413811,0.172951803,-0.190636531,0.0205870476,0.491165727 +-0.370360613,0.261073112,0.370360613,0.00243473472,0.117031679,0.0881383494,0.172817513,-0.217945665,0.020868443,0.525434256 +-0.724998295,0.262417376,0.724998355,0.0113200229,0.136078313,0.0853502154,-0.236425132,0.125174597,0.0216985382,1.02801108 +-0.948328614,0.269589841,0.948328674,0.00459195487,0.0382819325,0.0217807405,0.305980027,0.556823015,0.0218827054,1.34282374 +-0.448015034,0.269726694,0.448015034,0.0065953033,0.127812833,0.0934440866,0.0572037362,-0.267774642,0.0211675502,0.637292206 +0.422315508,0.270620078,-0.422315508,0.00549380481,0.126992866,0.0939201266,0.076263912,-0.280440092,0.0209448785,0.599164724 +-0.191219136,0.270640612,0.191219136,0.00433061505,0.147491187,0.101803914,0.241914794,0.0892143175,0.020061817,0.271590054 +-0.172591031,0.271638632,0.172591031,0.00133764674,0.157789052,0.106108896,0.231078863,0.121206366,0.0200101268,0.246522427 +0.745497584,0.272528082,-0.745497584,0.00846287701,0.132050648,0.0823189542,-0.21518293,0.208996654,0.0218445994,1.05592 +-0.385330319,0.274078131,0.385330319,0.00170282263,0.122328848,0.0923089981,0.153783172,-0.226656049,0.0209212732,0.545854926 +0.442501485,0.275726885,-0.442501515,0.00533930259,0.130591601,0.0956640989,0.0474603027,-0.291352451,0.0210341718,0.627744317 +0.76819706,0.283293456,-0.768197,0.00770616718,0.134051457,0.0836413354,-0.203673109,0.280865192,0.0218624864,1.08771098 +0.435538888,0.283481359,-0.435538888,0.000591983029,0.132644892,0.0982241035,0.0606954582,-0.294377089,0.0209983662,0.618389547 +-0.980443478,0.289260536,0.980443418,0.00307018869,0.0377501175,0.0215953141,0.34754312,0.590319872,0.0218906403,1.38828599 +-0.509360671,0.291971922,0.509360671,0.0045093419,0.142274797,0.101666667,-0.0414315127,-0.257893801,0.0213196203,0.721580386 +0.985101283,0.292127073,-0.985101223,0.00418182742,0.0384559929,0.0214344431,0.36413008,0.590943575,0.0220123846,1.3952508 +0.448008001,0.299704671,-0.448008001,0.00275028846,0.138476819,0.102620676,0.0429103784,-0.291659147,0.0210360531,0.634773493 +-0.810191631,0.301190078,0.810191631,0.00685459562,0.140860811,0.0874945074,-0.185119569,0.401533127,0.021733366,1.14581311 +-0.531633139,0.30136016,0.531633139,0.00308825588,0.148230374,0.104974322,-0.0839068666,-0.251722872,0.0213704146,0.753803015 +-0.811547697,0.301838309,0.811547756,0.000177893569,0.140942782,0.0875311121,-0.184416562,0.405950427,0.0217339657,1.14776647 +-0.812473476,0.302243888,0.812473476,0.00706169428,0.140888274,0.0874888822,-0.182914242,0.408210993,0.0217342731,1.14904583 +0.533470273,0.304723024,-0.533470273,0.00422175229,0.15058282,0.105459072,-0.0971295238,-0.270143151,0.0213720929,0.754693925 +0.536018908,0.305731952,-0.536018908,0.000760241004,0.151257545,0.10581544,-0.102492712,-0.267778128,0.0213799421,0.758307636 +0.535672247,0.30815661,-0.535672247,0.0013011446,0.151886821,0.106436864,-0.102575317,-0.267944485,0.0213773288,0.757693172 +0.532849967,0.308318585,-0.532849967,0.00266244193,0.151585907,0.106513664,-0.0954263136,-0.270559281,0.0213666186,0.753716469 +0.551837444,0.311876267,-0.551837444,0.00498394715,0.154744536,0.107693836,-0.136874139,-0.236788318,0.0214180164,0.780443311 +0.336197615,0.312381744,-0.336197615,0.00250273012,0.13728492,0.108374655,0.24266398,-0.216241404,0.0204847101,0.477206349 +0.42636472,0.312599063,-0.42636469,0.00188973802,0.141315877,0.107403882,0.0940325633,-0.294182897,0.0209289975,0.603884339 +0.400432885,0.314157724,-0.400432885,0.00183671375,0.140873522,0.10898219,0.141731724,-0.285809636,0.0207977742,0.566616833 +-0.441688836,0.315640539,0.441688806,0.00275569619,0.142262071,0.107604831,0.0830892771,-0.274270386,0.0211087726,0.626313031 +-0.0593884662,0.315822184,0.0593884662,0.00734752556,0.300422698,0.181702629,0.080440104,0.0663739592,0.0198719688,0.0957008228 +-0.489454687,0.316211939,0.489454657,0.00174927921,0.147984207,0.109028846,0.000828750432,-0.264673948,0.021242151,0.692737401 +-0.570986986,0.317178041,0.570986986,0.00528743304,0.157811761,0.110378206,-0.168066517,-0.196581677,0.0214366224,0.807960153 +0.84133327,0.317493469,-0.84133333,0.00836497359,0.136610165,0.0853213519,-0.118200384,0.514196396,0.0219015311,1.19161093 +0.364784241,0.318338007,-0.364784241,0.00177064887,0.140032351,0.109921396,0.194331929,-0.251150161,0.0206235219,0.516567707 +-0.516081929,0.321658969,0.51608187,0.00182019349,0.152291819,0.110506169,-0.0531401411,-0.253303617,0.0213158391,0.730725169 +0.280162901,0.324049175,-0.280162901,0.00542071741,0.144787401,0.113483265,0.328214079,-0.116535991,0.0202311184,0.401869297 +-0.228851467,0.324170411,0.228851467,0.00538095925,0.161235631,0.120133631,0.322517693,0.0160821825,0.0201287474,0.327487946 +1.03918731,0.326389939,-1.03918731,0.00309359375,0.0368384719,0.0207674298,0.424476415,0.607156038,0.0220001731,1.47091794 +-0.530281782,0.326712936,0.530281782,0.00149032532,0.154937565,0.111472026,-0.0880266279,-0.237455457,0.0213499926,0.751101136 +-1.04140341,0.327198207,1.04140341,0.00238609174,0.0357588045,0.0206865333,0.435667068,0.620446861,0.0219209492,1.47336447 +-0.30578056,0.329354972,0.30578053,0.00259819906,0.142983645,0.112732984,0.321097553,-0.166987434,0.0204665624,0.433183849 +0.533478022,0.331388712,-0.533478022,0.000912403397,0.157463938,0.112321444,-0.102351628,-0.257008314,0.0213555098,0.754475236 +0.873792112,0.333960742,-0.873792052,0.00723013747,0.136445433,0.0851209611,-0.0659141093,0.59644258,0.0219096225,1.23714876 +-0.308216333,0.334644169,0.308216363,0.00276929745,0.14483051,0.114525571,0.322354555,-0.173058972,0.0204728339,0.436434448 +-0.292526484,0.334837496,0.292526513,0.00301603507,0.148404196,0.116483085,0.330262691,-0.138149649,0.0203962643,0.414044589 +-0.303124934,0.334991693,0.303124934,0.000379551522,0.145122424,0.114809066,0.32984066,-0.166812494,0.0204474982,0.429518789 +-0.617497146,0.336394489,0.617497146,0.00436409749,0.16940096,0.116358377,-0.271107405,-0.134977341,0.0215163752,0.875374079 +-0.304293811,0.341017634,0.304293811,0.00150318863,0.14705345,0.116792515,0.336980492,-0.168816581,0.0204450134,0.430790812 +0.372867107,0.341100454,-0.372867137,0.00115591928,0.148489937,0.11831364,0.203856066,-0.278176814,0.0206449907,0.528262377 +-0.434221685,0.341553003,0.434221685,0.00241279602,0.149756655,0.115507163,0.107486479,-0.277164191,0.0210607778,0.615311146 +0.628598094,0.34205687,-0.628598094,0.00420419732,0.171884581,0.116196968,-0.306407452,-0.088693969,0.0216095336,0.890054047 +-1.06238699,0.342198104,1.06238699,0.00173456082,0.0347474851,0.0200727135,0.454512417,0.606617868,0.0219333787,1.50265026 +-0.902696252,0.344177127,0.902696252,0.00894453004,0.133197069,0.0816275626,-0.0121376943,0.619150877,0.0217649695,1.27820754 +0.383111268,0.34529838,-0.383111268,0.00104744534,0.150273517,0.119417474,0.189128041,-0.286378086,0.0206899662,0.542551875 +-0.380893052,0.346556246,0.380893052,0.0029895755,0.146989077,0.116792053,0.219714552,-0.268145323,0.0208370984,0.540727139 +-0.0422118343,0.346650809,0.0422118269,0.0100302799,0.342384279,0.206860989,0.0626925454,0.0532740504,0.0198482182,0.0781540945 +-0.644432664,0.3466838,0.644432664,0.00551251322,0.174547032,0.118918315,-0.324359477,-0.0640719309,0.021544477,0.912282765 +0.639512956,0.346715242,-0.639513016,0.00461989641,0.173921436,0.11733944,-0.32482329,-0.0600315332,0.02162854,0.905244589 +-0.602642,0.349728525,0.602642,0.00313551375,0.171658158,0.120196708,-0.246648431,-0.151250884,0.0214821491,0.853496075 +-0.396941602,0.350320041,0.396941602,0.00244474062,0.149170369,0.118000522,0.191269323,-0.271606863,0.0209028684,0.562496126 +-0.295276552,0.351331681,0.295276552,0.0016253792,0.154147834,0.122301571,0.358340144,-0.14423196,0.0203862693,0.417878836 +1.07817209,0.35253799,-1.07817209,0.00285919383,0.0353210457,0.0199877713,0.466455698,0.597235918,0.0219875071,1.5267086 +0.0283596274,0.353570998,-0.0283596255,0.00715187006,0.320763052,0.200075567,0.0852260441,0.061606016,0.0198471732,0.103904709 +0.346635789,0.355048686,-0.346635759,0.00234577619,0.153043076,0.124245703,0.269564778,-0.261945546,0.0205012374,0.492664665 +0.086812146,0.355053842,-0.0868121386,0.0106430361,0.297253311,0.190464571,0.132778257,0.10811691,0.0198490787,0.137994125 +-0.131414831,0.357948422,0.131414816,0.00390974106,0.259731889,0.173696458,0.215529963,0.134794965,0.0198724121,0.192561641 +-0.933631539,0.358450115,0.933631539,0.00620658137,0.129047781,0.0786967948,0.0573416278,0.654646754,0.0217767209,1.32203555 +0.621624708,0.358842313,-0.621624768,0.0034344024,0.175553292,0.120327771,-0.311509132,-0.0884307772,0.0215827059,0.879624903 +-0.457600236,0.360124707,0.457600236,0.00191098021,0.157225519,0.120790668,0.0676808059,-0.258986712,0.021126302,0.64771235 +-0.239062339,0.360637367,0.239062339,0.00294822827,0.174433902,0.133662358,0.380536675,-0.00568602467,0.0201185085,0.340302229 +0.319908381,0.361118078,-0.319908381,0.0025673653,0.156197429,0.126933649,0.327225417,-0.210980743,0.0203678217,0.454433978 +0.934191227,0.363852859,-0.934191227,0.00816616602,0.132166773,0.0818832889,0.0637786239,0.71917057,0.0219146311,1.32312632 +0.2107279,0.366791666,-0.2107279,0.00631879736,0.197580904,0.148982748,0.376865447,0.0737527385,0.019963881,0.300330102 +-0.175298199,0.367108375,0.175298199,0.00284441235,0.237372085,0.168268666,0.272504419,0.101055101,0.0199554209,0.249327928 +-0.564241827,0.368616104,0.564241827,0.00241302862,0.171883076,0.124457881,-0.161716029,-0.177378237,0.0213902816,0.798325419 +-0.696315765,0.369393736,0.696315765,0.0105014257,0.18609333,0.124807477,-0.431218207,0.0864025503,0.0215970594,0.987351418 +0.468890727,0.369672298,-0.468890727,0.00394036667,0.162882566,0.123962037,0.0323301479,-0.299431741,0.0210735612,0.665132225 +-1.10297608,0.371812671,1.10297608,0.00226752949,0.0325042009,0.0186679624,0.489691257,0.578147888,0.0219599716,1.56077337 +0.644234359,0.372105509,-0.644234359,0.00377857126,0.180570304,0.123019725,-0.388039768,-0.0142865106,0.0216243509,0.911569595 +0.290489793,0.372953624,-0.290489793,0.00355534069,0.161804289,0.131196126,0.386877358,-0.152677089,0.0202232972,0.414672554 +0.406340182,0.375100285,-0.406340182,0.00228423206,0.160719112,0.128044441,0.162502438,-0.300265014,0.0207866225,0.57679379 +-0.476720482,0.375680357,0.476720512,0.00184754678,0.163642496,0.125308186,0.0294557642,-0.246367976,0.0211728197,0.675087273 +0.435968459,0.376871169,-0.435968459,0.00180639292,0.163111657,0.127572894,0.104256436,-0.301732868,0.0209206305,0.618062198 +0.502299368,0.378938645,-0.502299309,0.00222063414,0.16844964,0.125749663,-0.0440816246,-0.275995314,0.0212074909,0.712907791 +-0.141203091,0.379066467,0.141203091,0.00144700368,0.269471884,0.184012145,0.240944743,0.141430914,0.0198700577,0.20669353 +0.714175105,0.37933445,-0.714175165,0.00521528115,0.187158227,0.125036344,-0.421112657,0.184493914,0.0217362605,1.01154935 +-0.997766316,0.38037163,0.997766376,0.00487615541,0.113601372,0.0687394068,0.223525897,0.693024337,0.0218163393,1.41162384 +-0.114659742,0.380456179,0.114659742,0.00416677818,0.294694036,0.19622162,0.195540488,0.121421233,0.0198536217,0.174418047 +-0.515936434,0.382173896,0.515936434,0.00140683004,0.169813633,0.127087444,-0.0620718189,-0.222336829,0.0212780647,0.73034656 +0.178028882,0.382399201,-0.178028896,0.00556621002,0.233297363,0.171540231,0.33719337,0.0959175974,0.0199040119,0.254646719 +0.202753216,0.38411665,-0.202753216,0.00218154676,0.208876655,0.158028394,0.393642604,0.0876440704,0.019930426,0.290277421 +0.984187126,0.387680173,-0.984187126,0.00609409064,0.124084428,0.0759429634,0.171142414,0.74718827,0.0219148472,1.39305627 +-0.151801288,0.388225883,0.151801288,0.00441490766,0.267201245,0.185741439,0.267113119,0.138189211,0.0198772978,0.217534453 +0.734324694,0.388671041,-0.734324694,0.00691356789,0.189854369,0.126738161,-0.428439617,0.255829573,0.021755008,1.03974485 +0.219461605,0.389038026,-0.219461605,0.00176486478,0.203371122,0.15675725,0.403685778,0.0458989516,0.0199737195,0.311953068 +-0.468668342,0.391334474,0.468668342,0.00138286024,0.167123258,0.129787609,0.0547896624,-0.23092021,0.0211372897,0.66366744 +-1.0182749,0.391935289,1.0182749,0.00359557103,0.109768316,0.0660808533,0.26350373,0.684170723,0.0218267683,1.4402566 +-0.527897716,0.392041266,0.527897716,0.00214868505,0.173667803,0.129517093,-0.0923189521,-0.206103683,0.0213033669,0.747494578 +-0.222540781,0.392498761,0.222540781,0.00231934362,0.201435119,0.15427652,0.408003777,0.0184266269,0.0200472102,0.319518477 +0.38080439,0.394343227,-0.38080442,0.000587591785,0.1656854,0.135886014,0.23294729,-0.286497653,0.0206443239,0.538622975 +1.12434554,0.394508183,-1.12434554,0.00232550967,0.0330526084,0.0187300798,0.519507051,0.515155196,0.0219590086,1.59056771 +0.564855993,0.394952655,-0.564855993,0.00324821915,0.178995609,0.128715679,-0.233318299,-0.175806701,0.0214223638,0.801268339 +-0.135599881,0.395038843,0.135599881,0.00393211655,0.288476527,0.19665435,0.239572555,0.150125504,0.0198523179,0.199501321 +-0.368803442,0.39576456,0.368803412,0.000800159876,0.162501872,0.133070916,0.279528052,-0.251342803,0.0207323395,0.521628082 +-0.367355317,0.395993948,0.367355317,0.00106961525,0.162492618,0.1331449,0.282514453,-0.250875264,0.0207257997,0.519634247 +-0.367743194,0.396842659,0.367743164,1.26707209e-06,0.162782118,0.13342081,0.282237113,-0.2508986,0.0207270812,0.520201266 +-0.367121875,0.396922946,0.367121875,1.36538222e-06,0.162781179,0.133453891,0.283611,-0.250820071,0.0207239464,0.519335866 +-0.366043657,0.397047967,0.366043657,0.00116047054,0.1628858,0.133554861,0.286169052,-0.249361873,0.0207176358,0.517760038 +-0.368944824,0.39744246,0.368944824,0.000214658576,0.163021669,0.133590832,0.279842377,-0.250071853,0.0207319409,0.521819949 +-0.367784411,0.397714406,0.367784411,2.81361145e-06,0.163086846,0.133730412,0.282228738,-0.250097364,0.0207268018,0.52022922 +-0.425467193,0.398631781,0.425467193,0.0016885018,0.1659787,0.132870823,0.151243746,-0.235817671,0.0209844168,0.602226496 +-0.366853029,0.398955286,0.366853058,0.00114414771,0.163477272,0.134225354,0.285977632,-0.250425071,0.0207211152,0.518865407 +-0.441241413,0.400403738,0.441241413,0.00110437453,0.167822614,0.133292556,0.119538039,-0.231643543,0.0210373327,0.624248385 +0.630603671,0.400420994,-0.630603671,0.00230800756,0.185318068,0.129806787,-0.41940248,-0.0180373006,0.0215828773,0.89210856 +-0.369478971,0.400700629,0.369479001,0.000913003751,0.164251626,0.134845197,0.278280675,-0.247294158,0.0207335874,0.522546768 +-0.772131503,0.401712745,0.772131503,0.00396176986,0.19634977,0.129447699,-0.44799155,0.336821973,0.0216354337,1.0920068 +-0.774199784,0.402663887,0.774199784,0.000136524148,0.196653366,0.129581884,-0.448837847,0.343886554,0.0216365494,1.09498978 +0.112678483,0.402761966,-0.112678483,0.00481425272,0.306451589,0.209330186,0.226014048,0.113528527,0.0198406558,0.175611526 +-0.775681257,0.40316242,0.775681257,0.00411872147,0.196669579,0.129570797,-0.446310073,0.347498268,0.0216371156,1.09703565 +-0.772393048,0.406057626,0.772393048,0.00290741585,0.197350875,0.130312517,-0.457927346,0.343151093,0.0216333661,1.09236538 +1.02246141,0.406567633,-1.02246141,0.00582488067,0.116178252,0.0702555403,0.259575725,0.748642623,0.0219116416,1.44782019 +0.37685442,0.407492518,-0.37685442,0.000725426187,0.169942245,0.14059186,0.252258509,-0.284709036,0.0206141882,0.533183515 +-1.1400696,0.409578919,1.1400696,0.00172551244,0.030616831,0.0174698457,0.529675364,0.49691245,0.0219973233,1.61256361 +-0.424730182,0.410217226,0.424730182,0.000568979187,0.169489145,0.13651529,0.157325834,-0.227447435,0.0209739879,0.601113677 +0.385106832,0.410992473,-0.385106832,0.00058984611,0.171140403,0.141309351,0.236827493,-0.289390504,0.0206545144,0.544852138 +-0.778381586,0.411321938,0.778381586,0.00326253008,0.198250771,0.130753458,-0.450229555,0.358746231,0.0216343552,1.1008153 +0.589697361,0.411588818,-0.589697361,0.00381875201,0.186254695,0.133053064,-0.319346726,-0.110525221,0.0214870535,0.836413264 +0.442129433,0.413388461,-0.442129433,0.000955852855,0.173686132,0.138700932,0.103435904,-0.26766929,0.0209223069,0.625677943 +-0.250841737,0.413906634,0.250841737,0.00294524198,0.192128301,0.152867243,0.470896184,-0.0324519053,0.020099381,0.356685489 +0.193540052,0.414238393,-0.193540052,0.00366015546,0.239856616,0.180812344,0.39292568,0.104966849,0.0198908094,0.275097311 +0.429881811,0.415039331,-0.429881811,0.000773036794,0.173361376,0.13964577,0.128257737,-0.264796942,0.0208651852,0.60855484 +-0.31245935,0.415504873,0.31245935,0.00163765694,0.170905933,0.14195402,0.429678768,-0.188170418,0.0204103086,0.442583531 +0.711696923,0.415797949,-0.711696923,0.00557020074,0.196073115,0.13330321,-0.509864628,0.225117177,0.0217149779,1.00738144 +0.382715106,0.41611746,-0.382715076,0.000515438966,0.172769397,0.143311784,0.244316742,-0.287780702,0.0206401814,0.54154563 +0.481891215,0.41633746,-0.481891215,0.00188223599,0.175949097,0.137276441,0.018081896,-0.246240318,0.0210920423,0.683289945 +-0.429802716,0.416568995,0.429802716,0.000343138177,0.172184229,0.138848856,0.148264676,-0.211150393,0.0209877528,0.60836482 +0.800744772,0.41684708,-0.800744772,0.00708797295,0.195325166,0.130285978,-0.385657877,0.478414446,0.0217995346,1.13411117 +0.224829853,0.417095453,-0.224829853,0.00343545037,0.210536242,0.165888414,0.459679395,0.0382467061,0.019958714,0.318699121 +-1.05799663,0.41718179,1.05799663,0.00470866729,0.102470949,0.0608607531,0.337175786,0.663481712,0.0218470935,1.49713659 +0.525729954,0.417761832,-0.525729954,0.00124898064,0.179119661,0.134897247,-0.105717644,-0.220866114,0.02127501,0.74390173 +0.398624897,0.418327928,-0.398624897,0.000792697945,0.173666239,0.14289619,0.207741857,-0.278321385,0.0207129121,0.563804626 +1.15064108,0.41849497,-1.15064108,0.00162526662,0.0317805223,0.0180279911,0.553147793,0.472263575,0.021940222,1.62809122 +0.325536579,0.41934377,-0.325536549,0.00204858766,0.17381826,0.146411374,0.394717067,-0.238200858,0.0203511529,0.461314142 +-0.496046215,0.419406891,0.496046215,0.000999325421,0.176784173,0.137307525,0.00438564457,-0.185282588,0.0211961456,0.701702476 +-0.513329327,0.4196136,0.513329327,0.00112295849,0.178842157,0.137405142,-0.0372646675,-0.177917793,0.0212443974,0.726096511 +0.341314167,0.42040801,-0.341314137,0.00126175105,0.173384219,0.146380231,0.366898358,-0.269573838,0.0204264149,0.483790874 +0.371122569,0.421039343,-0.371122569,0.000846369425,0.174080774,0.145438835,0.285237312,-0.284056485,0.0205754619,0.524950445 +-0.298827797,0.421958506,0.298827797,0.00184708997,0.178330064,0.14724347,0.449754596,-0.151322424,0.0203310866,0.423053265 +0.53607291,0.42331627,-0.53607291,0.00228230399,0.181424469,0.13610746,-0.141161293,-0.198264703,0.0213073604,0.758514941 +0.273949981,0.424804032,-0.273949981,0.00282780384,0.188420832,0.15495944,0.484894276,-0.0943479985,0.0201095287,0.38908115 +-0.320952982,0.42561844,0.320952952,0.00102035166,0.173885062,0.145415664,0.418718576,-0.198698387,0.0204520822,0.454320014 +-0.415582001,0.425862134,0.415582001,0.000990801258,0.175036252,0.143080413,0.175218701,-0.21666944,0.0209305082,0.587926984 +0.435011029,0.427149504,-0.435010999,0.000555095205,0.177177668,0.14325878,0.122752123,-0.256670088,0.0208815541,0.615851045 +0.381616861,0.427199066,-0.381616831,0.000800579961,0.177715376,0.149227828,0.249996364,-0.293913066,0.0206292421,0.53981632 +0.528124034,0.427748263,-0.528124094,0.000526837073,0.181422502,0.137378678,-0.114616588,-0.20778513,0.0212785713,0.74735868 +0.0653683841,0.427937895,-0.0653683841,0.00452544633,0.395289958,0.251218706,0.113964677,0.0823259801,0.0198072847,0.104680687 +0.516573489,0.428414971,-0.516573489,0.000874262012,0.181039721,0.138524294,-0.0785563216,-0.214206755,0.0212280881,0.730838776 +0.829304695,0.430227697,-0.829304695,0.00937743206,0.196345389,0.130808219,-0.337884963,0.552653909,0.0218099374,1.17415357 +0.448132873,0.431322306,-0.448132843,0.00097816519,0.178744882,0.143816188,0.0957757905,-0.246760041,0.0209337696,0.63411653 +-1.16076696,0.431652904,1.16076696,0.00144537468,0.0294774175,0.0167491864,0.55506891,0.451256782,0.022016447,1.64217341 +-0.503544211,0.432513326,0.503544211,0.000302466651,0.181053936,0.14110285,-0.00553392759,-0.165864259,0.0212087538,0.712491155 +-0.42594102,0.432851195,0.42594105,0.000694032235,0.179974467,0.147796914,0.144494921,-0.18788287,0.0209657717,0.602602541 +-0.8576895,0.433680415,0.8576895,0.00655189482,0.196420744,0.128106743,-0.271888018,0.536268175,0.0216723029,1.21448123 +-0.509300411,0.4358899,0.509300351,0.000573522295,0.182477653,0.141974553,-0.0212839805,-0.15989022,0.0212222319,0.720781684 +-0.450253904,0.436466783,0.450253904,0.000678707554,0.180206373,0.145523772,0.113803193,-0.156253159,0.0210373309,0.636830568 +0.0190041345,0.437001824,-0.0190041326,0.00687466934,0.42640698,0.265219361,0.0760556161,0.0442165732,0.0198000427,0.0747393668 +-0.561944783,0.437390715,0.561944783,0.00135275908,0.187526196,0.141023487,-0.210738346,-0.138172001,0.0213584639,0.79472816 +-0.208366662,0.437629759,0.208366662,0.00313619128,0.232213393,0.179374799,0.461722642,0.0614085048,0.0199599583,0.301748842 +1.07067418,0.437918097,-1.07067418,0.00475674821,0.104310997,0.0621370487,0.36434412,0.675643325,0.0218968727,1.51463842 +-0.621927261,0.438318074,0.621927261,0.00287096994,0.195181146,0.140408799,-0.436472833,-0.0305892583,0.0214703176,0.87959528 +-0.311895847,0.43913281,0.311895847,0.000742396223,0.179003894,0.150990248,0.472183585,-0.189320236,0.0203831885,0.441291273 +-0.564299822,0.439374119,0.564299822,0.00107628922,0.188238308,0.141548559,-0.218460053,-0.134676084,0.0213628765,0.798097908 +-0.563723207,0.440671057,0.563723207,0.000230769161,0.188489199,0.141890138,-0.21684666,-0.133558735,0.021360755,0.797294021 +-0.564944088,0.440853804,0.564944088,1.7049817e-05,0.188649043,0.141891733,-0.222224504,-0.131858259,0.021363169,0.799034297 +0.52229923,0.442521542,-0.52229923,0.00108631002,0.185542002,0.143275365,-0.0916372687,-0.185256556,0.02124249,0.738845825 +-0.562855601,0.443126112,0.562855601,0.00111267273,0.189102679,0.142768949,-0.211676612,-0.129674241,0.021356605,0.796025276 +-0.580944359,0.443213075,0.580944359,0.00111221254,0.19123131,0.142332375,-0.286873519,-0.100613847,0.0213916823,0.821582079 +-0.88689667,0.443570495,0.88689661,0.00675845612,0.194645107,0.126438156,-0.181217641,0.571383059,0.0216836073,1.25589597 +-0.564474404,0.443600327,0.564474344,0.00085099315,0.189319879,0.142757982,-0.221109807,-0.129481629,0.0213602912,0.798320174 +0.334776551,0.444919527,-0.334776551,0.00211134367,0.181172147,0.155109346,0.415448308,-0.26614207,0.0203758925,0.4743523 +-0.482626438,0.445255339,0.482626438,0.000658680394,0.18469286,0.147152826,0.0448075943,-0.133880943,0.0211330727,0.682593167 +0.348752856,0.445277214,-0.348752856,0.00093268411,0.181704298,0.155092999,0.36906144,-0.274100155,0.020448016,0.493916571 +-0.270207942,0.445463538,0.270207942,0.00168996409,0.19619897,0.161423758,0.513864279,-0.0833454132,0.020160608,0.384487361 +-0.464846551,0.446855932,0.464846522,0.000758114678,0.184749573,0.148926735,0.0854097977,-0.126582593,0.0210777149,0.657659054 +-0.625087082,0.447021097,0.625087082,0.00291375653,0.197733879,0.142585844,-0.454410553,-0.0143021466,0.0214698147,0.884158075 +-0.246019229,0.447389483,0.246019229,0.00238143932,0.211076766,0.169697687,0.516831636,-0.0121481027,0.0200498551,0.350913882 +0.442514479,0.44741267,-0.442514449,0.000744210731,0.187331885,0.154469222,0.102598101,-0.211756825,0.0208964143,0.626082182 +-0.621528685,0.44823119,0.621528685,0.000125590712,0.197626114,0.142763823,-0.451068878,-0.0221090019,0.0214645639,0.879156172 +-0.396850914,0.448565155,0.396850914,0.00107556151,0.18252477,0.152333289,0.214821845,-0.203022972,0.0208484214,0.562001884 +-1.09550023,0.449034393,1.09550023,0.00354353129,0.0947706252,0.055721432,0.408054948,0.592508078,0.0218733344,1.54952252 +-0.952784777,0.449323386,0.952784777,0.00436913827,0.183645517,0.118372597,0.054480698,0.629532218,0.02172173,1.34798324 +-0.619872153,0.449842781,0.619872212,5.51199046e-05,0.197710752,0.143159017,-0.446412981,-0.0231679939,0.0214604251,0.876805067 +0.481873482,0.450146854,-0.481873482,0.00140471733,0.186052442,0.148752242,0.0221919529,-0.196686089,0.021063963,0.68236351 +-0.512498617,0.451036513,0.512498617,0.00103852944,0.186996698,0.14696531,-0.0207236819,-0.133064717,0.0212189723,0.724990368 +-0.62262696,0.451473951,0.62262696,0.00087397726,0.19843863,0.143465608,-0.460021555,-0.0157164261,0.0214644615,0.88068372 +-0.460971892,0.451880395,0.460971892,0.000425773789,0.186266109,0.150893643,0.094339937,-0.11710196,0.0210617017,0.652136207 +0.426904738,0.452719688,-0.426904738,0.000853593112,0.189601779,0.158483863,0.128091395,-0.236950219,0.0208296366,0.603843808 +0.884629726,0.452798069,-0.884629786,0.0101249777,0.195010781,0.129300371,-0.190939128,0.657133579,0.0218210313,1.25292063 +1.17063212,0.452835172,-1.17063212,0.00184423639,0.0310571175,0.0177818462,0.598284125,0.398278177,0.0219037123,1.65578651 +-0.619410098,0.453421652,0.619410098,0.00150436943,0.198449656,0.144185171,-0.445973963,-0.0200976897,0.0214574002,0.876093268 +-0.501959741,0.454862416,0.501959682,0.000599717314,0.18857035,0.149825335,0.016354505,-0.115681618,0.0211835857,0.709967136 +1.09847057,0.454939306,-1.09847045,0.00331815705,0.0970072001,0.0573179573,0.427627295,0.637322426,0.0218882039,1.55426168 +-0.468060315,0.456715494,0.468060315,0.000407603773,0.188312292,0.15257819,0.0836688206,-0.104611106,0.0210791789,0.662142575 +-0.972856879,0.457350463,0.972856879,0.00301168393,0.179975197,0.11543119,0.114571527,0.620645165,0.0217302423,1.37601626 +-0.711656213,0.457800269,0.711656213,0.00603395654,0.206843942,0.142209679,-0.62563628,0.242763266,0.021562241,1.00848389 +-0.348735094,0.457837105,0.348735094,0.00184033997,0.183405995,0.15699175,0.379009128,-0.239798993,0.0205986779,0.494357824 +-0.375941813,0.459384888,0.375941813,0.000432471628,0.187973768,0.161785945,0.270441443,-0.242357686,0.0207553525,0.531662822 +-0.623527467,0.459594697,0.623527408,0.00312326429,0.200165063,0.14532724,-0.482244462,0.000229129568,0.0214601085,0.881880403 +0.285895437,0.460449159,-0.285895467,0.00194254704,0.198896855,0.167496532,0.515280306,-0.130681828,0.020139711,0.405946642 +-0.403845221,0.46209079,0.403845251,0.000633076532,0.190172702,0.160642862,0.186027572,-0.17643249,0.0208720062,0.571609974 +-0.431215286,0.464274645,0.431215286,0.0006565433,0.193232909,0.16160357,0.124682531,-0.125134498,0.0209653843,0.610508323 +-0.458137721,0.464850217,0.458137721,0.000374348368,0.194107652,0.160343125,0.0895977765,-0.0885190964,0.0210426599,0.647999227 +-0.465441167,0.46559763,0.465441197,0.000388042972,0.194673404,0.160308659,0.087895751,-0.0767470449,0.0210618973,0.658372283 +0.415095091,0.46652925,-0.415095091,0.000563150563,0.196209878,0.167264104,0.147816092,-0.231516629,0.020769285,0.587561429 +0.264497608,0.466562659,-0.264497608,0.00299983821,0.206043929,0.17235437,0.567979455,-0.0699584186,0.0200405251,0.375869095 +-1.11592305,0.467284709,1.11592317,0.00291188387,0.0906165838,0.0529516563,0.447754353,0.55354166,0.021885138,1.57872689 +0.929523706,0.46830219,-0.929523706,0.00502023101,0.190661043,0.125363618,-0.039801836,0.679982185,0.0218225103,1.3156755 +-0.323715627,0.469121754,0.323715627,0.00084994809,0.188628703,0.162331462,0.48275739,-0.209532052,0.0204312503,0.45834136 +0.377993941,0.470784158,-0.377993941,0.000917755766,0.195263773,0.169920668,0.27281037,-0.304032534,0.020595016,0.535484552 +-1.18081331,0.470873445,1.18081331,0.00151139521,0.0288842283,0.016425319,0.602558374,0.372620344,0.0220133197,1.67005205 +0.419145942,0.471933067,-0.419145972,0.000382000115,0.199095294,0.170368239,0.134569228,-0.223505139,0.0207853578,0.593133092 +-0.307371259,0.4723382,0.307371229,0.00133514858,0.191162616,0.164288312,0.536952496,-0.185927197,0.0203290433,0.435858458 +0.497920156,0.47325623,-0.497920126,0.00121431914,0.193722695,0.156184569,-0.01775744,-0.145111814,0.0211160984,0.704795957 +0.467194498,0.474235594,-0.467194527,0.00104822405,0.199333757,0.166198194,0.0450868234,-0.145701289,0.0209810007,0.661372721 +0.407785982,0.474745542,-0.407785982,0.000978385331,0.199713558,0.172385097,0.173285902,-0.250688076,0.0207300931,0.576916039 +0.430535376,0.475696325,-0.430535406,0.000730382279,0.201349363,0.172102183,0.111832581,-0.190759227,0.0208276268,0.60904932 +-0.419237852,0.476707041,0.419237852,0.00124912977,0.199497402,0.17010659,0.138074428,-0.126675934,0.0209226236,0.593446314 +0.105901353,0.476940513,-0.105901353,0.00361121097,0.386529922,0.268084168,0.237168938,0.0995317325,0.0197965764,0.158297718 +-1.01185703,0.477669179,1.01185703,0.00394460559,0.172940135,0.109621674,0.2285496,0.594577432,0.0217440668,1.43185818 +-0.493297637,0.477935165,0.493297637,0.000608131231,0.196409807,0.159673065,0.0546139963,-0.0609043427,0.0211377665,0.697956443 +0.162774757,0.478024006,-0.162774757,0.00464598229,0.309651911,0.23042582,0.383953065,0.132809624,0.0198192373,0.240389198 +0.56294167,0.478497267,-0.56294167,0.00168380584,0.197045609,0.15021944,-0.279505491,-0.0829880536,0.0213695969,0.796452463 +0.0400270894,0.479971886,-0.0400270894,0.00609366177,0.461526304,0.292486101,0.0998624116,0.0615281798,0.0197780356,0.0850375742 +0.34537077,0.480213076,-0.34537077,0.000859284075,0.195323646,0.173716858,0.437298536,-0.323456377,0.0204105023,0.488631964 +0.966004431,0.480285645,-0.966004431,0.00605279254,0.185437545,0.120958604,0.0911372676,0.680254221,0.0218206346,1.36787486 +0.182729691,0.480431169,-0.182729691,0.00190835283,0.288998902,0.221131667,0.427709252,0.104374401,0.019848492,0.266108036 +-0.504214168,0.481672704,0.504214168,0.000499219925,0.197190747,0.159519702,0.023303913,-0.0617911816,0.0211675521,0.713456035 +0.383218765,0.482163668,-0.383218765,0.00106628623,0.201738134,0.177427649,0.247494116,-0.304587662,0.0206150953,0.542538881 +-0.195550293,0.482311666,0.195550278,0.00132527237,0.293487161,0.223771781,0.438789546,0.0658784211,0.0198975801,0.277576268 +1.1209954,0.483080447,-1.12099552,0.00380684854,0.0922944844,0.0542771518,0.489213407,0.563132286,0.0218617674,1.58557606 +0.556460321,0.483329445,-0.556460321,0.000458949042,0.197315201,0.151622176,-0.258705854,-0.089307718,0.0213455167,0.787359834 +-0.436119348,0.483535498,0.436119318,0.00077209645,0.205055445,0.175149858,0.105890527,-0.0707786083,0.0209634248,0.617057621 +0.454767048,0.485334337,-0.454767048,0.00133153144,0.206889406,0.176700503,0.0646314919,-0.121871531,0.0209183339,0.643595397 +-0.379795343,0.48543331,0.379795313,0.000325360103,0.198455498,0.173838243,0.26441893,-0.238373131,0.0207693372,0.537136018 +-0.0591396615,0.485453159,0.0591396615,0.00556126796,0.484239459,0.300641507,0.0886107981,0.0481776521,0.0197753701,0.0861301273 +-0.378912598,0.485491157,0.378912598,0.000642009778,0.198416933,0.173841745,0.267561942,-0.238774523,0.0207646247,0.5358814 +-0.346130371,0.485737503,0.346130371,0.000811134465,0.193436444,0.17104587,0.433883429,-0.265030921,0.0205780547,0.490291119 +-0.380277812,0.485863745,0.380277783,0.000688805594,0.198734254,0.174118862,0.262581021,-0.236751094,0.0207711216,0.537809134 +-0.166817307,0.48588559,0.166817322,0.00243251049,0.322033167,0.236776441,0.395776927,0.117287725,0.0198216848,0.238350391 +-0.379477084,0.486088902,0.379477084,2.0942085e-05,0.198723063,0.174200654,0.265380055,-0.23885411,0.0207678247,0.536683917 +-0.378608942,0.486868918,0.378608942,0.000506068347,0.19883956,0.174499884,0.271555185,-0.240786761,0.0207624231,0.535446703 +-0.276001692,0.48743701,0.276001692,0.00119381701,0.210130095,0.176906258,0.598736703,-0.0815657079,0.0201364588,0.392809808 +0.54681313,0.487823367,-0.54681319,0.000792501029,0.198506549,0.154770702,-0.215584919,-0.0877391174,0.0213027745,0.773481965 +-0.486674666,0.487998486,0.486674666,0.0005106483,0.204440832,0.169894487,0.0639475137,-0.0266814716,0.0211065952,0.688482523 +-0.0622086003,0.490337878,0.0622086003,0.00302666053,0.486638039,0.303591251,0.0952517539,0.052439224,0.0197736174,0.0893896818 +-0.250952363,0.490635633,0.250952393,0.00261021266,0.226033673,0.18626827,0.604238212,-0.00730085,0.0200203285,0.35804981 +0.617947638,0.490983665,-0.617947638,0.00306545896,0.20533286,0.151301607,-0.55844909,0.052448675,0.0215119589,0.875388145 +0.515629768,0.491106093,-0.515629768,0.00129778078,0.199420288,0.161248893,-0.0667269304,-0.106659338,0.0211775228,0.729775846 +-0.0577468574,0.491174936,0.0577468574,0.00106495304,0.48916772,0.304390073,0.0915835202,0.0502679534,0.0197724439,0.0874983594 +-0.453752875,0.492863119,0.453752875,0.000581673055,0.211127758,0.180810764,0.0895799398,-0.0152040953,0.0210008845,0.641905069 +0.560775518,0.493077397,-0.560775518,0.000608115864,0.200107992,0.154247642,-0.283682942,-0.0697038546,0.0213544071,0.793478668 +-0.326231301,0.493275225,0.326231301,0.000823571114,0.1966732,0.174157947,0.517750859,-0.245520294,0.0204405971,0.461746275 +-0.303925067,0.493770748,0.303925067,0.000997784548,0.200245559,0.173936188,0.589620709,-0.16590786,0.0202874653,0.430680066 +-0.0632753298,0.495312124,0.0632753298,0.00342939585,0.48996982,0.306431592,0.0977722183,0.0517672971,0.0197709836,0.0904397368 +-0.503475666,0.495931447,0.503475666,0.000472792977,0.203785017,0.167628452,0.0437174737,-0.0308642518,0.0211536642,0.712268949 +-0.531632364,0.496023774,0.531632423,0.00138545316,0.200976133,0.161174268,-0.0600689016,-0.056337446,0.0212388542,0.752782881 +0.359684616,0.496949762,-0.359684616,0.000893854129,0.203665212,0.183439136,0.396589577,-0.344034731,0.0204801615,0.508926451 +-0.0595610999,0.497282505,0.0595610999,0.0045019486,0.497192234,0.308924913,0.0961040705,0.0496883132,0.0197695065,0.0859854668 +0.555321932,0.49813658,-0.555321872,0.00139499968,0.202603549,0.158534721,-0.248998687,-0.0631323308,0.021330785,0.785687387 +0.574105561,0.49828881,-0.574105501,0.00233309693,0.202232361,0.15469861,-0.358781636,-0.0334111676,0.021387089,0.812102914 +-0.687063932,0.498438001,0.687063992,0.00296055479,0.213104337,0.150783002,-0.673196793,0.223829687,0.0215109456,0.973705709 +1.19540179,0.499375015,-1.19540179,0.00186620303,0.0299888104,0.0173634682,0.660054684,0.295276642,0.0218548272,1.69134963 +-0.465111136,0.500048518,0.465111107,0.000837297295,0.21568127,0.185200021,0.0867129713,0.0201140177,0.0210244022,0.658065438 +1.01527059,0.500178695,-1.01527059,0.00407707086,0.174669772,0.112330303,0.244863018,0.622151494,0.0218131021,1.43625891 +-1.13630414,0.501266897,1.13630414,0.00304706628,0.0888950229,0.0516842902,0.501318991,0.477166414,0.0218859725,1.6071012 +0.668566644,0.501624048,-0.668566644,0.00639329385,0.211538196,0.151502371,-0.687809944,0.206967652,0.021612091,0.946997881 +-1.04933834,0.503020644,1.04933834,0.00271207094,0.164750278,0.103612661,0.332599223,0.52502507,0.0217608716,1.48422968 +-0.153915718,0.50329119,0.153915718,0.00357278157,0.347565204,0.253527939,0.385729581,0.125659287,0.0197927188,0.224462807 +0.349574029,0.504395187,-0.349574029,0.000593345088,0.204790309,0.186209515,0.464055777,-0.356111825,0.0204225648,0.494770706 +-1.19725919,0.504737437,1.19725919,0.00109540683,0.0283663739,0.0161512177,0.642454267,0.302843064,0.0220112577,1.69369245 +-0.545535803,0.505153537,0.545535803,0.00108197052,0.203743935,0.162549064,-0.134683281,-0.0415073149,0.0212680344,0.772575736 +-0.850324154,0.506730556,0.850324154,0.00598221319,0.213279903,0.14133653,-0.389913201,0.572622776,0.0216276217,1.20300543 +-0.197078288,0.506767511,0.197078288,0.00148781319,0.303574979,0.235101447,0.48477453,0.0703368112,0.0198779069,0.279778838 +0.484918565,0.507645011,-0.484918535,0.00042623718,0.218948081,0.189539701,0.0362885743,-0.0303956307,0.0210226569,0.685824096 +0.48269707,0.508381069,-0.48269707,0.000468343205,0.219528511,0.190461725,0.0392988585,-0.0299195088,0.021012662,0.682669163 +1.04407668,0.50969255,-1.04407668,0.00256959815,0.167712763,0.106925696,0.333931148,0.593362987,0.0218103807,1.47728801 +0.487145603,0.509720206,-0.487145573,0.000476405141,0.21955964,0.190084547,0.030065991,-0.0260702185,0.0210305527,0.688967645 +0.415478349,0.509767056,-0.415478349,0.000365873886,0.24546805,0.231029525,0.021980891,-0.226413131,0.0207524467,0.587806106 +0.485024124,0.510344863,-0.485024095,4.09884524e-05,0.220602602,0.191591009,0.0369006731,-0.0223604236,0.0210206006,0.685995877 +-0.415920794,0.51118803,0.415920794,0.00112146314,0.241494179,0.225000858,0.0264538229,-0.147462636,0.0209032111,0.5887537 +0.408277184,0.511642516,-0.408277184,0.000740189746,0.244729683,0.23210068,0.0609088615,-0.269597739,0.020719029,0.577526689 +-0.165741414,0.511680365,0.165741414,0.00153267768,0.340436161,0.252385557,0.419144362,0.124022163,0.0197974425,0.237346604 +0.423008263,0.511843503,-0.423008233,0.000787095341,0.247883067,0.233160526,0.0108970031,-0.181920648,0.0207782611,0.598335505 +-0.490119994,0.51235193,0.490119994,0.000373535557,0.221280009,0.189934984,0.0889587849,0.0495404303,0.0210923813,0.693168759 +0.317750394,0.512354434,-0.317750424,0.001394336,0.205177009,0.18443352,0.640295148,-0.254945219,0.020238515,0.449879348 +-0.345548719,0.512747884,0.345548749,0.00128405262,0.202551663,0.184163436,0.484988779,-0.300230265,0.020565467,0.489239275 +0.487534225,0.512919009,-0.487534225,0.000587767863,0.220941991,0.191799983,0.0286160484,-0.0198383108,0.0210302342,0.689522505 +0.486318171,0.513816893,-0.486318201,0.000399875309,0.223311543,0.195167899,0.0375720486,-0.0139647322,0.0210248493,0.687799215 +0.332013488,0.51501292,-0.332013488,0.000750489533,0.207339257,0.188197285,0.575787783,-0.302873611,0.0203146487,0.469654709 +0.307965785,0.515095711,-0.307965815,0.000774313929,0.208430141,0.186875522,0.664212167,-0.227148026,0.0201932043,0.4361265 +-0.431532383,0.515578032,0.431532383,0.000692979898,0.252249539,0.236025408,-0.00824503228,-0.0652679279,0.0209376439,0.610568166 +0.383149803,0.517330766,-0.383149803,0.000997650437,0.242699116,0.235922873,0.18379882,-0.420166492,0.0206062198,0.542410791 +-1.0693562,0.517337322,1.0693562,0.00168417161,0.160240322,0.100298643,0.388954163,0.487847686,0.0217674058,1.5128454 +0.524376333,0.51746124,-0.524376333,0.00122250139,0.209740371,0.172988534,-0.0909499675,-0.054036729,0.0211976543,0.742715597 +-0.525017917,0.517574847,0.525017917,0.00111399603,0.211499631,0.1748541,-0.00892596971,-0.00458098948,0.0212012138,0.743077159 +-0.483364314,0.517765224,0.483364314,0.000412062829,0.22596319,0.196203157,0.0978768468,0.0694185123,0.0210649297,0.683628559 +-0.274613142,0.518691421,0.274613142,0.00152602745,0.221796006,0.190490291,0.672439575,-0.0637142882,0.0200963467,0.390209526 +-0.727204144,0.518913627,0.727204144,0.00837063137,0.219672561,0.152649224,-0.744676828,0.369965851,0.0215430688,1.02999258 +0.449046552,0.519131362,-0.449046552,0.00130675221,0.256248385,0.24074465,-0.022799477,-0.0256027728,0.020868808,0.635498762 +0.133576185,0.519390047,-0.133576185,0.00320635131,0.40138489,0.286438137,0.301827967,0.121179104,0.0197797418,0.193148047 +-0.966187954,0.519833922,0.966187835,0.00414658152,0.197099686,0.127512023,0.0710354298,0.584120035,0.0216911845,1.36669469 +-0.492942154,0.520119488,0.492942125,0.000294139114,0.225973025,0.195396215,0.0841454268,0.0689673796,0.0210933555,0.697204888 +-0.380190223,0.520354927,0.380190194,0.000802200171,0.232819349,0.224418432,0.208548382,-0.346023411,0.0207808055,0.537688196 +-0.379302591,0.520635068,0.379302621,3.72081049e-05,0.232546657,0.224311531,0.213546455,-0.350716531,0.0207774192,0.536441505 +-0.378471762,0.521494389,0.378471762,0.000658823759,0.232266262,0.224363804,0.223016068,-0.354379207,0.0207716785,0.535256207 +0.315553218,0.521768689,-0.315553218,9.55291907e-05,0.208522588,0.188550085,0.668769836,-0.255134076,0.0202225652,0.447226197 +0.750838459,0.522076607,-0.750838399,0.00305436132,0.221620709,0.154609844,-0.738393426,0.502333939,0.02171655,1.06208801 +-1.02222407,0.522152305,1.02222407,0.00401389226,0.180013195,0.11426951,0.280315042,0.51445967,0.0217250083,1.44623935 +-0.487943321,0.522234917,0.487943321,0.000135928829,0.228521481,0.198964342,0.101177469,0.0823812932,0.0210754592,0.690189183 +1.1496774,0.522568822,-1.14967728,0.00387384137,0.0860831961,0.0502911136,0.573340476,0.457080781,0.0218252651,1.62665761 +-0.447887659,0.523168027,0.447887659,0.000586093287,0.262341738,0.246401295,-0.010750602,0.024518773,0.0209711939,0.633608997 +0.319481939,0.523246825,-0.319481939,0.000156723487,0.209403574,0.190174296,0.656925201,-0.26991421,0.0202405397,0.452425241 +0.636854172,0.523629546,-0.636854172,0.0042277514,0.212973952,0.15748924,-0.674098492,0.14596495,0.0215366278,0.901552796 +0.756960511,0.523719668,-0.756960511,0.003397536,0.221571922,0.154485747,-0.725587964,0.516784191,0.0217193961,1.07069099 +-0.570986509,0.524103045,0.570986569,0.00431633135,0.210064664,0.166150868,-0.287095785,-0.0230243355,0.0213176124,0.808846116 +-0.153708145,0.524425328,0.15370813,0.00482237479,0.369595617,0.269486457,0.381306112,0.118808724,0.0197801366,0.22187075 +0.241226941,0.524836361,-0.241226941,0.00284027425,0.254345834,0.211552486,0.61366874,0.0271270908,0.0199243259,0.34161824 +0.744379103,0.525324047,-0.744379044,0.00367971882,0.222330451,0.155566022,-0.750796497,0.486989945,0.0217071064,1.05288696 +-0.328834772,0.52575165,0.328834772,0.000958080171,0.208910316,0.189892605,0.583508849,-0.250148326,0.0204300974,0.465772063 +0.0103439428,0.526047945,-0.0103439391,0.0036549794,0.524252832,0.327853084,0.131159112,0.0554282665,0.0197558552,0.0745109469 +0.278457761,0.526516497,-0.278457761,0.0015941232,0.223347306,0.196624517,0.728147089,-0.0977057293,0.0200465973,0.394343585 +-0.49210012,0.527251601,0.49210012,0.000240021182,0.229731321,0.20019263,0.0942751616,0.0809288025,0.0210855994,0.696024418 +-1.20441079,0.528478622,1.20441079,0.00140891562,0.0283674765,0.0162591618,0.673671365,0.254549921,0.0219965409,1.70358121 +-0.934864223,0.529175103,0.934864163,0.0040252097,0.208165959,0.135977477,-0.030651236,0.584737897,0.021665737,1.32294524 +0.750943661,0.529228449,-0.750943661,0.000580738764,0.223389134,0.156145751,-0.752876997,0.512311876,0.0217137728,1.06232679 +-0.458924115,0.529745102,0.458924115,0.000643754262,0.268050253,0.252583772,0.00686875219,0.0879469067,0.0209946726,0.649314761 +-0.490234077,0.529812813,0.490234077,0.000421682606,0.23513557,0.207815737,0.110088274,0.0954110771,0.0210806616,0.693368673 +1.06888866,0.530702829,-1.06888866,0.00297121448,0.161092818,0.101899944,0.408904791,0.52852726,0.0217931904,1.51187205 +-1.15348959,0.53117162,1.15348959,0.00221379311,0.0877770334,0.0508458018,0.54771769,0.408470243,0.0218866449,1.63177776 +0.341456831,0.531303108,-0.341456831,0.000579883053,0.217166036,0.207749322,0.633755684,-0.357787639,0.0203599036,0.483083248 +0.167767495,0.532560825,-0.167767495,0.00310152909,0.350614607,0.26782012,0.399563193,0.111877754,0.0197876021,0.242107779 +0.219276488,0.532773256,-0.219276488,0.00308756181,0.280451655,0.228424951,0.577975094,0.0761637837,0.0198701397,0.311037183 +-0.540881574,0.532817245,0.540881634,0.000867562776,0.217031285,0.179227173,-0.103568815,0.0133594237,0.0212287866,0.765652835 +-0.187395275,0.53316927,0.187395275,0.00182327093,0.326521903,0.254081517,0.508644402,0.109029226,0.0198207535,0.266271621 +0.0457316339,0.53366679,-0.0457316302,0.00232625287,0.532010376,0.334155828,0.127163529,0.0266773123,0.0197532792,0.0781978518 +-1.06336224,0.534647346,1.06336224,0.00119625626,0.167145014,0.104858555,0.382796496,0.461762667,0.0217512678,1.5041002 +0.746887147,0.535079122,-0.746887147,0.00465263147,0.224706084,0.157813847,-0.777271807,0.515045166,0.021707166,1.0564841 +0.364799678,0.535214245,-0.364799678,0.000697133655,0.239123821,0.240478992,0.39114514,-0.515811622,0.0204934552,0.516261041 +0.413360745,0.537504077,-0.413360745,0.000136032395,0.378659397,0.424800038,-0.113234632,-0.526906908,0.0207188372,0.58480835 +0.3041237,0.53790319,-0.30412367,0.000846748357,0.218319237,0.197495103,0.734652996,-0.199368522,0.0201534703,0.430264354 +-0.413538367,0.53877306,0.413538367,0.000467210426,0.369719326,0.41296643,-0.118827611,-0.469939768,0.0208722446,0.585382819 +0.420360565,0.539377928,-0.420360565,0.000318854931,0.388371438,0.435427994,-0.125332832,-0.466627926,0.0207476076,0.59458971 +-0.237086058,0.539402366,0.237086058,0.00272853416,0.263095498,0.219245836,0.659562647,0.059642747,0.0199237689,0.338968635 +0.406790286,0.539458692,-0.406790286,0.0002978837,0.371365756,0.424428731,-0.0619712994,-0.576202393,0.0206854772,0.575422406 +0.084228918,0.53997457,-0.084228918,0.00263180863,0.476984739,0.321439803,0.201891124,0.0950898752,0.0197555367,0.139973715 +0.315465003,0.540658116,-0.315465003,0.000458211842,0.218343899,0.203794181,0.7536273,-0.255729675,0.0202088766,0.446350724 +0.477722019,0.540701449,-0.477722019,0.000304685673,0.268317133,0.254435301,0.0309757777,0.12092007,0.0209814273,0.675601244 +-0.297099292,0.540817082,0.297099292,0.00184040563,0.219578207,0.196714684,0.718487024,-0.134823784,0.0201997068,0.421750128 +-0.42803818,0.541332424,0.42803818,0.000290477154,0.395138264,0.441984475,-0.16391702,-0.362092137,0.0209124181,0.605625272 +0.476738274,0.543724418,-0.476738274,0.000385160907,0.273229659,0.261055022,0.0299198553,0.13485384,0.0209764671,0.674213767 +0.987922072,0.543901503,-0.987922072,0.00364116789,0.193458676,0.126873076,0.19639039,0.573183537,0.0217625126,1.39808714 +0.476948768,0.543920279,-0.476948768,1.73169155e-06,0.273358971,0.261212528,0.0303616263,0.136098996,0.0209772997,0.674514651 +0.477141768,0.544173241,-0.477141768,0.000352836592,0.273459554,0.261333019,0.0307839364,0.136144251,0.020978054,0.674784005 +-0.677155316,0.544295311,0.677155316,0.00481472444,0.221668378,0.162607089,-0.777257323,0.276576817,0.021468224,0.958666325 +-0.334363669,0.545227408,0.334363699,0.00043902421,0.216809481,0.209602639,0.688398898,-0.299625099,0.0204622913,0.473264575 +0.383377135,0.545445442,-0.383377135,0.000418554991,0.34655425,0.415757775,0.111815035,-0.749214053,0.0205703713,0.54273349 +-1.0899353,0.545776308,1.0899353,0.00216064276,0.155561358,0.0964256823,0.44643569,0.412223458,0.0217683557,1.54152083 +0.444681883,0.546236396,-0.444681883,0.000580929685,0.422570288,0.471799284,-0.165415272,-0.251668602,0.0208486784,0.629321456 +0.355413675,0.546365201,-0.355413675,0.000543274335,0.238777846,0.245423764,0.505330145,-0.579320431,0.0204305314,0.503176451 +-0.815587938,0.546836138,0.815587938,0.00818116125,0.223457545,0.150962457,-0.556475282,0.552996695,0.0215846766,1.15424943 +-0.890424788,0.546910882,0.890424788,0.0040718643,0.217510164,0.143950492,-0.241094485,0.580996037,0.0216296911,1.25949061 +0.229762048,0.547260463,-0.229762048,0.000218670873,0.274729222,0.227741435,0.627844751,0.0610140488,0.0198824797,0.326975048 +-0.443555057,0.547640324,0.443555057,0.000250015903,0.420085877,0.472424775,-0.158444285,-0.23592481,0.0209551267,0.627480865 +-0.476608574,0.547720373,0.476608574,0.000515090593,0.278149933,0.264793247,0.0829389393,0.174946755,0.0210405272,0.67407316 +-0.380587339,0.547927082,0.380587339,0.000334895245,0.326494634,0.387886941,0.145973355,-0.676793754,0.0207347404,0.538248777 +-0.379817396,0.5481987,0.379817396,1.53889578e-05,0.32537505,0.387041986,0.152515501,-0.681332886,0.0207313169,0.537167966 +-0.379081488,0.5489856,0.379081488,0.000276843202,0.324190706,0.385977149,0.164123073,-0.685437024,0.0207264647,0.536117494 +-0.523094177,0.549319327,0.523094177,0.000959233963,0.227473676,0.195112243,0.0310255401,0.0446814559,0.0211727265,0.740432143 +1.21124971,0.549919963,-1.21124971,0.00106680265,0.0300533026,0.017645726,0.732930779,0.191749632,0.0217992049,1.71303785 +0.682973087,0.550026894,-0.682973027,0.00335966516,0.222307503,0.162419677,-0.862264156,0.347755879,0.02162214,0.967859864 +-0.351097345,0.550143003,0.351097345,0.000989073538,0.226205051,0.229388565,0.511257291,-0.501734257,0.0205872133,0.497143418 +0.236043692,0.550744295,-0.236043692,0.000775911089,0.27042985,0.226238951,0.652957261,0.0561737232,0.0198943336,0.335067242 +1.02543616,0.551073432,-1.02543616,0.00193314534,0.183274776,0.119077109,0.308092684,0.568450153,0.0217648353,1.45053005 +-0.941959798,0.551182568,0.941959858,0.00406629499,0.211453989,0.138298154,-0.00547698885,0.571122289,0.0216567088,1.33287537 +-0.480813324,0.551968634,0.480813324,0.000173726745,0.280566752,0.267803758,0.1019333,0.197697788,0.0210521445,0.680099308 +0.221910253,0.551996112,-0.221910253,0.00121828332,0.291715086,0.239596859,0.596252561,0.0672046319,0.0198691227,0.315913141 +-1.16108966,0.552456975,1.16108966,0.00278330711,0.0867246464,0.0500308461,0.578944504,0.361027062,0.0218808949,1.64230692 +0.910809457,0.55290854,-0.910809457,0.00526428595,0.213716254,0.144358128,-0.121971026,0.684066176,0.021756446,1.28860068 +0.288749665,0.552988827,-0.288749665,0.000245648203,0.228326499,0.205701619,0.80131191,-0.126436248,0.0200732034,0.409842581 +-0.454250157,0.553724945,0.454250157,0.000280032109,0.43236056,0.488697499,-0.128354639,-0.150284261,0.0209862981,0.642703235 +-0.483955026,0.555509031,0.483955026,0.000448715989,0.280610979,0.268178701,0.11100886,0.194574609,0.0210603084,0.684485912 +0.474675328,0.555522501,-0.474675298,0.000229469209,0.34644717,0.359645307,-0.0056858249,0.0592217557,0.0209717862,0.671292305 +-0.308922052,0.556037784,0.308922052,0.000813258812,0.22372739,0.210333735,0.783572555,-0.19447118,0.0202718154,0.438304782 +-0.603417993,0.556609154,0.603417993,0.00333258091,0.220000625,0.172012627,-0.542678237,0.110523291,0.0213510785,0.854337931 +-0.511969209,0.557259679,0.511969209,0.000500885479,0.249766305,0.227018699,0.102680393,0.107846588,0.0211427007,0.724565566 +0.532670856,0.557261229,-0.532670856,0.00228062016,0.225685,0.19245179,-0.120190322,0.0193982832,0.0212096814,0.754613757 +-0.842745185,0.557546377,0.842745185,0.00438350393,0.22406818,0.150294438,-0.464777857,0.595579147,0.0216001756,1.19285262 +0.282000363,0.557918131,-0.282000363,0.00083679182,0.234462023,0.210208148,0.805040002,-0.0956401825,0.0200427324,0.40030393 +0.341624498,0.558909178,-0.341624498,0.00057973637,0.236579299,0.241255581,0.698154807,-0.465722978,0.0203464106,0.483395875 +0.231791273,0.559980035,-0.231791288,0.00239687646,0.282141209,0.236007661,0.642653644,0.0710588843,0.0198763348,0.329081595 +1.10128355,0.561368823,-1.10128355,0.00271447725,0.15219143,0.0952451751,0.512298644,0.434560269,0.0217682514,1.55818796 +0.643400609,0.56150043,-0.643400609,0.00378986727,0.220972627,0.166096345,-0.799105227,0.240680799,0.0215346087,0.911091805 +-0.264635026,0.561613679,0.264635026,0.00207494129,0.252617478,0.2192408,0.723693132,-0.0114735886,0.020020619,0.376450717 +0.364785731,0.561760485,-0.364785731,0.000263197086,0.318470061,0.396702021,0.395506501,-0.830540299,0.0204690341,0.516182661 +-0.335747153,0.561954618,0.335747153,0.000481848518,0.225876093,0.227664009,0.713742554,-0.377213478,0.0204664674,0.475248694 +1.04811645,0.563195944,-1.04811645,0.00167004589,0.176381558,0.113264292,0.388093948,0.481194407,0.0217520408,1.48258519 +0.306556523,0.563683629,-0.306556523,0.000627273868,0.233011141,0.223594725,0.849924028,-0.231352851,0.0201567635,0.433805704 +0.114570469,0.563709855,-0.114570469,0.00392183801,0.465860307,0.327130377,0.265198916,0.112118572,0.0197501574,0.170153439 +0.288996547,0.56409061,-0.288996547,0.000446334976,0.234575152,0.214180663,0.848616242,-0.110214412,0.0200669821,0.409838796 +1.21580207,0.564959049,-1.21580207,0.000585265283,0.0300657768,0.0177143924,0.755281568,0.162006438,0.0217824392,1.71957254 +-0.549347878,0.566676319,0.549347878,0.00134919013,0.235228404,0.201289639,-0.114205487,0.0268831551,0.0212313533,0.777742565 +1.1710546,0.566859484,-1.1710546,0.00220557023,0.0807369575,0.0469506122,0.655864418,0.342683017,0.0217787661,1.65619087 +0.244725734,0.568055868,-0.244725734,0.00109831081,0.272267669,0.233304322,0.718786836,0.0553152412,0.0199097991,0.346473813 +0.928920805,0.569979012,-0.928920805,0.00236807368,0.213619858,0.144174501,-0.0588024966,0.684718788,0.0217472985,1.31447923 +0.355370522,0.570751905,-0.355370522,0.000154495559,0.306470931,0.388413101,0.544139504,-0.886036217,0.0204230994,0.503051102 +0.471312433,0.570766509,-0.471312433,0.000226250748,0.444007248,0.499282092,-0.0551818758,-0.0460933819,0.0209630616,0.66654104 +0.471627772,0.571062982,-0.471627772,2.51329243e-06,0.444279373,0.499648362,-0.0537801012,-0.043626748,0.0209644437,0.666991889 +-1.10762084,0.571136117,1.10762084,0.00134677847,0.151686743,0.0932235643,0.496965587,0.345711976,0.0217690617,1.56689382 +0.586528838,0.571203887,-0.586528838,0.00254663033,0.221819863,0.177137673,-0.515899718,0.0838208273,0.0213834029,0.829607785 +0.471847922,0.571534514,-0.471847922,0.000166216196,0.444315314,0.499905199,-0.0501403883,-0.0411414318,0.0209663901,0.667296469 +0.322294265,0.571570516,-0.322294235,0.00168748142,0.235414863,0.235334888,0.894194603,-0.312771827,0.0202322602,0.456142426 +-0.471259564,0.572299242,0.471259564,0.000226215052,0.440095097,0.499101371,-0.00229402632,-0.0395296626,0.0210419837,0.666508317 +-0.321717829,0.572507858,0.321717829,0.000996829127,0.229685947,0.229563102,0.861750424,-0.274083078,0.0203583799,0.455782413 +0.516736865,0.572535574,-0.516736865,0.000853712554,0.26208806,0.242679805,-0.0041914694,0.098154366,0.0211377311,0.731422424 +0.578179598,0.573731184,-0.578179598,0.000461833086,0.221987605,0.178657651,-0.476275802,0.0681865439,0.0213600267,0.817955017 +-0.753429532,0.574621856,0.753429532,0.00425855629,0.229759872,0.160533056,-0.849844992,0.542949617,0.0215279069,1.06699312 +1.07091701,0.574879169,-1.07091689,0.00166959234,0.169187486,0.107956469,0.440650165,0.454804987,0.021748364,1.51501942 +0.0782234818,0.575218201,-0.0782234818,0.00343560125,0.539564967,0.355892479,0.201376766,0.0535266958,0.019737957,0.119354889 +-1.08841276,0.575300336,1.08841264,0.00191091141,0.161862701,0.100396156,0.457666069,0.360381067,0.0217479318,1.53955078 +0.573855579,0.575320542,-0.573855579,0.00104617397,0.223219573,0.181115568,-0.446726441,0.0694222003,0.0213430412,0.811787248 +0.279817939,0.575826287,-0.279817939,0.000866693852,0.246043205,0.221899763,0.840246201,-0.0566115901,0.0200213082,0.396156251 +-0.35146907,0.576050282,0.35146904,0.000334825716,0.282729983,0.346615225,0.54760623,-0.834995866,0.0205582622,0.497671843 +0.505178094,0.576487958,-0.505178094,0.00245955773,0.279076666,0.268134356,0.07064908,0.139361754,0.0210877769,0.715013146 +-0.475345939,0.576690912,0.475345939,7.11248867e-05,0.44216603,0.501674771,0.0286141653,-0.0116032558,0.0210564416,0.67236501 +-1.04298031,0.576872349,1.04298031,0.00361676887,0.185517699,0.117400311,0.359021783,0.407733738,0.0217054263,1.47569108 +-0.504392803,0.577109694,0.504392803,0.00127721159,0.278716952,0.26632911,0.166086912,0.174113274,0.0211143997,0.713772893 +1.17676568,0.580099046,-1.17676568,0.00117679406,0.0796414241,0.0462426245,0.679987431,0.310596257,0.0217645038,1.66436052 +-0.18403165,0.580412745,0.184031665,0.00146303768,0.36043638,0.280426413,0.488955796,0.138583004,0.0197826624,0.266146094 +-0.477130651,0.580806375,0.477130622,0.000185041223,0.443226069,0.509300709,0.0607797541,0.00592366513,0.0210684389,0.674812734 +0.350061297,0.582004189,-0.350061268,0.000218556757,0.295395523,0.381984472,0.79993695,-0.744287133,0.0203728415,0.495195508 +-0.529512763,0.582402587,0.529512763,0.00121465093,0.245386928,0.21721746,0.0324565619,0.059987314,0.0211703833,0.749612927 +0.580578029,0.583689928,-0.580578029,0.00146602164,0.225014731,0.181998432,-0.511262655,0.0862667337,0.0213602614,0.821354985 +-1.10513115,0.584739029,1.10513103,0.000969361863,0.15527226,0.095442079,0.500657558,0.314302325,0.0217567477,1.563416 +-0.347149998,0.585469306,0.347149998,0.000218648929,0.271498948,0.34277004,0.75888443,-0.725453019,0.0204861425,0.491466582 +0.575010419,0.585622489,-0.575010419,0.00117494387,0.227659822,0.186785534,-0.452349842,0.0788827688,0.0213408656,0.813348234 +-0.636705339,0.586194158,0.636705339,0.00580076873,0.228576228,0.175906643,-0.822081566,0.239440605,0.0213925038,0.902140975 +-0.516779184,0.586901069,0.516779184,0.000886139693,0.267152548,0.249167547,0.109259717,0.125979289,0.021138411,0.731449008 +-1.22039008,0.587108135,1.22038996,0.00190233462,0.0283017233,0.0165403131,0.744229674,0.135129482,0.0219658483,1.72677112 +1.0958581,0.588735461,-1.09585798,0.0020655503,0.161246777,0.101306543,0.515467644,0.374936432,0.0217360202,1.55020761 +0.623198032,0.589695573,-0.623198032,0.00254354673,0.227328926,0.178734809,-0.819674134,0.217465281,0.0214735772,0.882238626 +1.21940517,0.59008646,-1.21940506,0.00093233987,0.0301825814,0.0181520451,0.791832805,0.118960716,0.0217556506,1.72453034 +-1.1161691,0.590088844,1.11616898,0.00229053944,0.148795396,0.0907686874,0.522176027,0.293818682,0.0217689388,1.57876158 +0.912307501,0.591401577,-0.912307501,0.0031976907,0.222023547,0.151145369,-0.123848692,0.686688662,0.0217294227,1.29145479 +0.040314693,0.591858923,-0.0403146967,0.00552835781,0.601691365,0.373233855,0.173711002,0.0383811705,0.0197259188,0.0799653456 +-0.00462543732,0.59269011,0.00462543964,0.00835844222,0.604383826,0.371910393,0.186916023,0.0761857107,0.0197242741,0.0756959617 +-0.242796555,0.592706442,0.24279654,0.00329603348,0.285898536,0.245546818,0.74352181,0.0787095204,0.019893067,0.346124649 +0.542224765,0.594372988,-0.542224765,0.00108237949,0.240268931,0.2098158,-0.184065372,0.0580848679,0.0212207306,0.767734706 +0.156454876,0.59472698,-0.156454891,0.00523340935,0.414115071,0.318645895,0.390025377,0.0966230929,0.0197525192,0.231345475 +0.343744516,0.594848394,-0.343744516,0.000424094964,0.284341693,0.36129415,1.01711547,-0.621320903,0.0203237943,0.486316919 +-0.212537855,0.595919132,0.212537855,0.00275211222,0.334094524,0.273493558,0.608240247,0.111965463,0.0198220629,0.303120673 +0.947551072,0.597156525,-0.947551131,0.00326282554,0.214746684,0.144724101,0.026828073,0.617791474,0.021721296,1.34047055 +1.12822104,0.597343206,-1.12822092,0.00170822965,0.142447397,0.0880265236,0.594812572,0.326428115,0.0217343178,1.59561169 +0.483436763,0.597473919,-0.483436763,0.000723720994,0.448512554,0.528795063,0.153967902,0.0903278142,0.021067502,0.683992147 +0.817146003,0.59759742,-0.817145944,0.00691087171,0.233646944,0.163161188,-0.640534639,0.755448461,0.0217243712,1.15585279 +0.526471615,0.597669244,-0.526471615,0.000897799619,0.262352109,0.242925167,-0.0810511783,0.11077024,0.0211545061,0.745362043 +-0.328395635,0.597803831,0.328395605,0.000687958032,0.261575133,0.290209532,0.980402291,-0.25504601,0.0203464571,0.464926898 +-0.48416847,0.598656118,0.48416847,0.000557579799,0.446285039,0.53649658,0.206879318,0.0926182568,0.0211190507,0.685003757 +-0.341343582,0.598865509,0.341343582,0.000255573192,0.264378428,0.333569497,0.973629951,-0.5987252,0.0203994289,0.483316541 +0.294366837,0.600944757,-0.294366837,0.000699098047,0.25748691,0.247523755,0.990100265,-0.0650176182,0.0200707559,0.416483283 +0.920363724,0.602050602,-0.920363665,0.00124785339,0.222053081,0.151337236,-0.0740324259,0.667853475,0.0217189863,1.30251145 +1.18140817,0.602723002,-1.18140817,0.00186537753,0.0791882426,0.0458999611,0.714071751,0.267473221,0.0217401255,1.67079377 +-0.292988628,0.60296762,0.292988658,0.000887315371,0.254768848,0.241173178,0.94215095,-0.036443051,0.0201004706,0.414655894 +-1.17871261,0.603874326,1.17871261,0.00369210378,0.0832719207,0.0475457422,0.651757956,0.245545834,0.0218683369,1.66779637 +-0.163708493,0.604132354,0.163708493,0.00272691506,0.411286294,0.312755227,0.425356597,0.129943252,0.019752413,0.24014014 +-0.574792743,0.604996502,0.574792743,0.00202424801,0.235800236,0.197409838,-0.40499264,0.0625399351,0.021246681,0.813237667 +0.837063849,0.606282055,-0.837063789,0.00404082611,0.233329818,0.162495658,-0.542532206,0.747841775,0.0217193123,1.18385208 +-0.97553587,0.606535316,0.975535929,0.00290557556,0.20826906,0.136110187,0.181489363,0.451733887,0.0216438212,1.37971365 +0.811615884,0.606842756,-0.811615884,0.000727374398,0.236298069,0.165534839,-0.671708941,0.757626295,0.0217175409,1.14821398 +-0.296547621,0.607020438,0.296547621,0.000531177793,0.25573054,0.245005593,0.959811449,-0.0550075173,0.0201227572,0.41964978 +0.272132158,0.607100964,-0.272132188,0.00109557109,0.268099785,0.245137393,0.913012743,0.0155757777,0.0199768618,0.386735797 +1.13506198,0.608273208,-1.13506198,0.000644221378,0.140512213,0.0865980536,0.618064582,0.294624954,0.0217234734,1.60537505 +-0.28807357,0.61139375,0.288073599,0.00151873054,0.263051957,0.248846442,0.950881302,-0.0145361889,0.0200702623,0.407810152 +-0.749186754,0.611597061,0.749186754,0.00216845237,0.234702289,0.166774303,-0.951049089,0.624349713,0.0215023253,1.06210911 +0.80473119,0.611680031,-0.80473125,0.00343049271,0.237527564,0.167353645,-0.704362392,0.753438652,0.0217092596,1.13834393 +-0.186500177,0.611701012,0.186500162,0.00119784835,0.375797719,0.297751784,0.521514058,0.143093199,0.0197681431,0.272163391 +0.305074453,0.611751437,-0.305074453,0.000827076554,0.262426376,0.260512143,1.04210746,-0.107458092,0.0201186705,0.431678057 +0.811798394,0.612494946,-0.811798394,7.47433805e-05,0.237427875,0.166602343,-0.680167198,0.76921165,0.0217144489,1.14857459 +-0.874519467,0.612528086,0.874519467,0.00429472048,0.226855248,0.152948573,-0.278251797,0.609074712,0.0215827469,1.23698878 +-0.338571846,0.612733066,0.338571817,0.000160793075,0.284331858,0.357866198,1.03947794,-0.419957876,0.020365281,0.479424417 +-0.561740875,0.613063514,0.561740875,0.000700086122,0.241954237,0.207461327,-0.304483235,0.0812764838,0.0212090146,0.79475081 +-0.293677479,0.613201022,0.293677479,8.99177539e-05,0.260131955,0.248742267,0.979313254,-0.0275157262,0.0200946108,0.415786356 +-0.527660191,0.61443305,0.527660131,0.00121118943,0.274332047,0.256490082,0.0993694663,0.0827240795,0.0211534109,0.746875644 +1.00636411,0.614844561,-1.00636399,0.00503873173,0.204104036,0.135444209,0.296697885,0.498663783,0.0216963105,1.42395091 +0.815514803,0.615158677,-0.815514803,0.000668678782,0.237294659,0.166388944,-0.657117009,0.770296335,0.0217125453,1.15363741 +-0.301288486,0.616241038,0.301288486,0.000752566848,0.268529534,0.274102002,1.00735569,-0.0610620379,0.0201331731,0.426253855 +1.13056695,0.617144465,-1.13056707,0.000917222933,0.145128101,0.089537099,0.609595776,0.275818259,0.0217122082,1.59892571 +0.19065094,0.617505848,-0.19065094,0.00238441513,0.377989352,0.311770678,0.545476913,0.107173592,0.0197809711,0.276783407 +0.691175103,0.618831873,-0.691175103,0.00502644572,0.238217756,0.178484052,-1.05522132,0.516190171,0.0216106251,0.980049193 +0.807759106,0.620903015,-0.807759047,0.00185932114,0.239046976,0.169001579,-0.715828776,0.788564026,0.0216980912,1.14268816 +-0.703310072,0.621586561,0.703310072,0.00228173146,0.237737745,0.176680416,-1.06725729,0.551024318,0.0214566905,0.995097816 +-0.682138026,0.623576999,0.682138085,0.00289303088,0.236929163,0.178806394,-1.05138433,0.489723414,0.0214299224,0.965006173 +-1.00234127,0.625146627,1.00234127,0.0036108559,0.202938408,0.131858021,0.296918154,0.393923104,0.0216492526,1.41771364 +-0.585974813,0.625458241,0.585974813,0.00196418352,0.241984218,0.203239024,-0.51347369,0.114809126,0.0212507937,0.829297006 +0.547777057,0.626696348,-0.547777057,0.00156525697,0.255078614,0.228162408,-0.232098117,0.0961312577,0.0212261025,0.775798917 +1.1410619,0.627471447,-1.1410619,0.00127634127,0.138591021,0.0847831517,0.638433158,0.248935789,0.0217035078,1.61373472 +0.336041033,0.627814651,-0.336041033,0.000160405165,0.299619019,0.375432789,1.13776577,-0.320803761,0.0202766433,0.475287259 +0.330564141,0.628525019,-0.330564171,0.000504899886,0.288904369,0.340561241,1.13175249,-0.203537136,0.0202504098,0.467577398 +0.297447383,0.630034864,-0.297447383,0.000571210054,0.274907053,0.272754908,1.10291004,-0.0306434687,0.0200714469,0.42149058 +-0.293567657,0.631018817,0.293567687,0.000796317356,0.274183989,0.264334023,1.01440585,0.00743669271,0.0200780537,0.415250778 +-0.574621975,0.631467998,0.574621975,0.000344137195,0.244806796,0.208750308,-0.427517861,0.0885378867,0.0212204047,0.813332319 +-0.558882356,0.631586134,0.558882356,0.000805459451,0.260329485,0.23276177,-0.244711369,0.0944497287,0.0211963169,0.79065752 +1.04038179,0.63211596,-1.04038191,0.00370058301,0.193579793,0.126372293,0.416002363,0.369553387,0.0216781013,1.47202539 +1.22555733,0.632675886,-1.22555733,0.000767478778,0.0303466655,0.0187701974,0.854327679,0.045026809,0.0217100773,1.73347461 +0.261623025,0.633152843,-0.261623025,0.00102918188,0.295279175,0.269340992,0.878477573,0.0721220225,0.0199247021,0.370592654 +-1.13557613,0.633231044,1.13557613,0.00292354263,0.141239747,0.0847075582,0.582101285,0.176796377,0.0217676368,1.60673499 +-0.0850080028,0.634123087,0.0850079954,0.00650054868,0.57164073,0.371932089,0.25084123,0.0699494928,0.0197070986,0.131330937 +-0.990039051,0.634430885,0.990038991,0.000726044411,0.207477033,0.135714695,0.267060012,0.401995361,0.021635782,1.4005022 +0.164793655,0.634828687,-0.16479367,0.00264174608,0.439949393,0.345621169,0.420533597,0.104032546,0.0197379235,0.237936497 +-0.109997928,0.636137962,0.109997928,0.00576693751,0.535636127,0.360846043,0.276622504,0.0845485106,0.0197096597,0.162806317 +0.813495517,0.636262059,-0.813495517,0.00452053314,0.240202636,0.169299379,-0.668880522,0.802032292,0.0216741152,1.15058398 +0.928519189,0.63708508,-0.92851913,0.003013195,0.223696426,0.1537195,0.0162673295,0.635167122,0.0216814838,1.31342983 +-0.175260827,0.638270974,0.175260827,0.00174390932,0.422595084,0.327626318,0.465836287,0.151835322,0.019742541,0.253370523 +-0.698072433,0.6390118,0.698072374,0.003485044,0.240190044,0.180097282,-1.12138498,0.582485199,0.0214418285,0.988040507 +-0.332633168,0.639073968,0.332633168,0.00125554868,0.303261638,0.367515922,1.1337533,-0.185536355,0.0202855337,0.471066892 +0.29909125,0.639266372,-0.29909122,0.00083915377,0.281946748,0.282663822,1.1306746,-0.0112752281,0.0200745203,0.423495203 +0.284224063,0.641219854,-0.284224063,0.000797758461,0.290890396,0.283001035,1.03256357,0.0178269185,0.0200136416,0.402219504 +1.18914938,0.64208293,-1.18914938,0.00153332867,0.078735292,0.045474004,0.773103833,0.192143634,0.021697592,1.68198097 +0.321048498,0.642260253,-0.321048498,0.000782389659,0.296449423,0.343869925,1.17921567,-0.113164052,0.0201916825,0.454093277 +-0.529952645,0.644446015,0.529952586,0.000970221707,0.289414644,0.275505811,0.1010589,0.0842543393,0.0211328845,0.750138402 +-0.578330636,0.64460057,0.578330636,0.00116215134,0.248443872,0.212986425,-0.508546174,0.117964104,0.0212111287,0.818538189 +-0.567721128,0.645044208,0.567721128,0.00121039199,0.255435616,0.223807454,-0.350336075,0.0814763084,0.0211868472,0.803203404 +1.07180667,0.645233989,-1.07180667,0.00190154568,0.182716638,0.117132373,0.50635314,0.279628873,0.0216675419,1.51635599 +-1.00118816,0.645707846,1.00118804,0.00268799416,0.204539508,0.133521631,0.325097769,0.343761116,0.0216337331,1.41610289 +-1.06515849,0.645742953,1.06515861,0.00281878957,0.180555001,0.113121904,0.466365635,0.199837089,0.0216749664,1.50663745 +0.331339419,0.646250963,-0.331339389,8.59727734e-05,0.306252509,0.374115407,1.21143723,-0.159338176,0.0202470627,0.468812585 +-0.964119434,0.646640778,0.964119494,0.00282281009,0.214282691,0.141822323,0.151009619,0.471530676,0.0216141623,1.36356568 +1.22659755,0.648344755,-1.22659755,0.000837963657,0.0304106437,0.0192531887,0.876680076,0.0221058987,0.0216937307,1.73484993 +-0.916242719,0.648522615,0.916242659,0.00397267658,0.225586027,0.151858643,-0.0702078789,0.613247991,0.0215858538,1.29647315 +-0.786806583,0.648591578,0.786806583,0.00300517096,0.238152042,0.167246401,-0.80398345,0.733412504,0.0214945599,1.11354709 +0.249420866,0.648690045,-0.249420881,0.00207645586,0.319837958,0.290696055,0.832224131,0.102840006,0.0198809002,0.354778647 +1.10397911,0.649638534,-1.10397911,0.00180447323,0.168915123,0.105571106,0.563042819,0.218509734,0.0216682516,1.56167066 +-0.690137029,0.650359988,0.690137029,0.00159055239,0.242700458,0.185325772,-1.16675079,0.598753214,0.021417981,0.976557434 +0.496430069,0.652059913,-0.496430069,0.000825855066,0.416151017,0.489952773,0.355323792,0.139802933,0.0211214758,0.702069879 +0.4959988,0.652636707,-0.4959988,0.000137370982,0.419938147,0.496441483,0.357293218,0.13844043,0.0211210586,0.701461792 +-0.496530801,0.652758837,0.496530771,0.000229372774,0.410036266,0.47328493,0.392183781,0.106558852,0.0211202186,0.702210009 +-1.2273109,0.652819574,1.2273109,0.000974351191,0.028683437,0.0182002001,0.811716318,0.0183679312,0.0219141804,1.73575234 +-0.496044964,0.65311718,0.496044964,0.000128585991,0.413749129,0.479439378,0.392779976,0.104867667,0.0211202446,0.70152241 +-0.496933848,0.653593659,0.496933848,0.000500081631,0.410441726,0.47396493,0.391532928,0.104373977,0.021121135,0.702783048 +0.259550214,0.65367049,-0.259550214,0.000537694781,0.312274367,0.288623363,0.893072367,0.0963175967,0.0199111626,0.368803322 +0.496235549,0.653719366,-0.496235549,4.55308618e-05,0.419131309,0.495027333,0.361499399,0.139621109,0.0211219955,0.701805294 +-0.496341616,0.654503047,0.496341646,6.84710926e-07,0.412989944,0.47811079,0.39776513,0.105148301,0.0211204756,0.701951921 +-0.496994853,0.654650629,0.496994883,0.000523043564,0.411040843,0.47482416,0.39176175,0.104439341,0.0211204067,0.702869654 +0.496114761,0.65493834,-0.496114761,0.000405666331,0.420334935,0.495619535,0.369675577,0.133662507,0.021118952,0.701623499 +0.332112849,0.655082285,-0.332112849,0.000565296854,0.323402584,0.387272745,1.20091212,-0.131451488,0.0202441085,0.469806522 +-0.496234298,0.655371249,0.496234298,8.45147006e-05,0.414249361,0.47900483,0.40579915,0.100431554,0.0211181976,0.701791704 +1.19150448,0.656455517,-1.19150448,0.00168749131,0.0776479542,0.0448791124,0.795330524,0.168737561,0.0216822997,1.6852175 +0.610934615,0.656898618,-0.610934615,0.00335056405,0.244862407,0.203056812,-0.92971468,0.287134558,0.0214031003,0.866003633 +-0.49724853,0.657529891,0.49724853,0.000512343249,0.40998137,0.472235173,0.394518018,0.0942363739,0.0211130772,0.70321995 +0.217729717,0.657843113,-0.217729703,0.00313903159,0.365237415,0.318318844,0.669029474,0.115018994,0.0197986756,0.313135743 +-1.09146965,0.657932043,1.09146965,0.00234590005,0.167997062,0.103692897,0.526130795,0.141517863,0.0216961037,1.54380798 +-0.655005813,0.658564806,0.655005813,0.00144287234,0.247438639,0.198370457,-1.08138108,0.46488446,0.0213505365,0.926374555 +-0.305782467,0.659488618,0.305782467,0.00101658911,0.301350385,0.32260105,1.10029316,-0.00477105379,0.0201205555,0.432747841 +-1.22799933,0.660402,1.22799945,0.000203006377,0.0287197921,0.0183678474,0.82013917,0.00508384919,0.021908544,1.73676562 +0.66549015,0.660660803,-0.66549015,0.00270634098,0.247821957,0.195134342,-1.19316065,0.546177864,0.021535214,0.942051172 +-1.19086468,0.660846174,1.19086468,0.00185488747,0.0781758502,0.0445076339,0.721989453,0.134033173,0.0218456816,1.68420696 +-0.122635841,0.661782503,0.122635856,0.00411123736,0.537152112,0.374221504,0.318484485,0.105038047,0.019704299,0.1782507 +0.862768412,0.661923647,-0.862768412,0.00262755225,0.237533599,0.166238114,-0.353841484,0.759250283,0.0216686409,1.2201519 +1.15110695,0.662420154,-1.15110695,0.000862192712,0.135951877,0.0821522996,0.675699353,0.163310215,0.0216670483,1.62817705 +0.53239131,0.662977099,-0.53239125,0.000832459307,0.295788378,0.286406845,-0.0237612557,0.117543191,0.0211590063,0.752935529 +-0.631808579,0.663230181,0.631808579,0.00194765115,0.249596626,0.205152258,-1.03348672,0.388744652,0.0213077925,0.893825293 +-1.07756603,0.663354278,1.07756603,0.000987292966,0.176872864,0.110082865,0.506964922,0.13713026,0.0216738041,1.52438474 +-0.207421452,0.664207458,0.207421452,0.00144410657,0.392609715,0.328039557,0.600735188,0.154140875,0.0197577104,0.293842345 +0.187951997,0.664789855,-0.187951982,0.00189293677,0.424999624,0.353003114,0.526764095,0.110388704,0.0197551902,0.269361615 +0.534074306,0.665434718,-0.534074306,0.000809403253,0.294968605,0.2850492,-0.0344401002,0.115477443,0.021164095,0.755322874 +0.315828443,0.665448308,-0.315828443,0.000644548447,0.316953868,0.36503619,1.15756059,-0.0626065731,0.0201601554,0.446707428 +-0.215797037,0.665524364,0.215797037,0.00123690255,0.380909294,0.322727174,0.638681412,0.146125987,0.0197756588,0.305680454 +0.970361173,0.665601015,-0.970361114,0.00291988649,0.218046218,0.149096683,0.235055327,0.543025255,0.0216469914,1.37281203 +0.532744586,0.666085899,-0.532744586,6.12771182e-05,0.298673928,0.291050315,-0.0202811286,0.116796575,0.0211606361,0.753453851 +0.533472896,0.66669476,-0.533472896,0.000492433319,0.296506077,0.287154168,-0.0264098682,0.115692385,0.0211613178,0.75450021 +-0.292298019,0.666867018,0.292298019,0.000307626178,0.302426726,0.296632826,1.08358502,0.0750678852,0.0200459547,0.414301515 +-0.811551094,0.666881561,0.811551034,0.0033973502,0.239865601,0.167903259,-0.731771827,0.789223969,0.0215031207,1.14873636 +-1.19215024,0.667515814,1.19215024,0.000403693179,0.077565141,0.0441396646,0.730619431,0.121246427,0.0218431149,1.68606377 +0.533298612,0.667548656,-0.533298612,0.000254038692,0.296947092,0.287745565,-0.0248761773,0.11243543,0.0211593006,0.754249573 +0.531748414,0.667928874,-0.531748414,0.000659357465,0.303353965,0.295644313,0.00209909864,0.106977202,0.0211545397,0.752025604 +-0.541926384,0.668316841,0.541926384,0.00144514418,0.28407985,0.264880061,-0.0420239009,0.0614612773,0.0211107004,0.767187953 +-0.334895819,0.668538451,0.334895819,0.000307633192,0.379991949,0.433998734,1.13938046,-0.0546626002,0.0202577394,0.474151641 +-1.22810161,0.668990076,1.22810161,0.000707019819,0.0287619792,0.0189164374,0.829447567,-0.00373041211,0.0219012033,1.73684072 +-0.190876707,0.669429064,0.190876693,0.00146739976,0.42647019,0.348322302,0.551994383,0.140844077,0.0197461285,0.270518154 +-0.901801884,0.669888437,0.901801884,0.00137694413,0.230378658,0.15624924,-0.122777879,0.635729432,0.021561861,1.27662647 +-0.0968544483,0.670274913,0.0968544483,0.00510729896,0.585389376,0.382444799,0.282353491,0.0724717602,0.0196943022,0.14493145 +1.11766243,0.670732975,-1.11766243,0.00156520354,0.16235052,0.0999561921,0.585759997,0.139402986,0.0216479655,1.58095884 +-0.25215435,0.671536207,0.25215432,0.00246862927,0.331447482,0.302930385,0.833965302,0.1090656,0.0198706761,0.357982039 +1.14530468,0.672397614,-1.14530468,0.000986761879,0.141594633,0.085630022,0.657236457,0.133882225,0.0216539148,1.61987031 +0.258241177,0.673314154,-0.258241177,0.000645250955,0.329465866,0.308813155,0.889861524,0.0942944139,0.0198998619,0.366589814 +-0.213307187,0.673652828,0.213307187,5.08087505e-05,0.390072882,0.330903351,0.633847713,0.152331725,0.0197638571,0.302735537 +-0.986269832,0.67391634,0.986269832,0.00235541048,0.211027831,0.140250191,0.344764113,0.356016815,0.0216006488,1.39485204 +-0.62752986,0.674278796,0.627529919,0.000837459695,0.25331378,0.210941389,-1.03180265,0.391151905,0.0212851968,0.887803257 +-1.06512058,0.674444735,1.06512058,0.00296954624,0.182200655,0.114897966,0.509171963,0.12628077,0.0216543153,1.50661349 +-1.0761795,0.674569726,1.0761795,0.000989788561,0.177630112,0.110817738,0.513772964,0.0969546363,0.0216638725,1.52233398 +0.645732284,0.674616218,-0.645732284,0.00250097015,0.250497162,0.203051448,-1.16963506,0.494125783,0.0214824565,0.913894773 +1.1554116,0.674966514,-1.15541172,0.00139703811,0.133283943,0.0799973384,0.686908782,0.141576365,0.0216545314,1.63417172 +-1.19432616,0.675598979,1.19432628,0.00146314537,0.0752356648,0.0430344865,0.745913625,0.110216051,0.021840794,1.6890738 +0.569841743,0.676062882,-0.569841802,0.00100854237,0.257920623,0.228190675,-0.568044901,0.144251883,0.0212605074,0.805927277 +-0.85592854,0.676814079,0.855928481,0.00523377024,0.236170813,0.163351074,-0.436924338,0.723373652,0.0215255171,1.21070075 +-0.633123994,0.676907122,0.633123994,0.00102596008,0.252873629,0.209385574,-1.09048915,0.436141282,0.0212949608,0.895698607 +-0.219114512,0.677266359,0.219114497,0.000344796455,0.386690646,0.332403272,0.663739681,0.150617272,0.0197802,0.310345739 +0.571513236,0.677659035,-0.571513176,0.00118350121,0.257809192,0.227708369,-0.589913785,0.148241699,0.0212647989,0.808331311 +-0.27975598,0.678428411,0.27975601,0.000946990214,0.318675399,0.307142586,1.00790095,0.0894031972,0.0199821517,0.395938337 +0.569635868,0.678533614,-0.569635868,0.000517180713,0.259743303,0.230480373,-0.566630542,0.145315915,0.0212579127,0.805685639 +0.722355902,0.678724349,-0.722355902,0.00672361208,0.251321018,0.188694641,-1.17223287,0.796646237,0.021579951,1.02383196 +-1.15379,0.679060459,1.15379,0.0019277446,0.130151242,0.0761851817,0.626906991,0.0846451521,0.0217713658,1.6317749 +0.0999671519,0.679091275,-0.0999671444,0.00186315167,0.613226354,0.40599671,0.317842364,0.0950801224,0.0196933318,0.141468197 +0.570615053,0.679091632,-0.570615053,7.0510745e-05,0.258471757,0.228750736,-0.583369195,0.146223605,0.0212605279,0.807082713 +-0.295181066,0.679991663,0.295181066,0.000633414311,0.314593434,0.310964614,1.09043968,0.079067409,0.0200568903,0.417835563 +0.0991168469,0.680303633,-0.0991168544,0.00249141222,0.615428388,0.406882882,0.317966014,0.0949835554,0.0196926817,0.140581131 +0.100774035,0.680467784,-0.100774042,0.00154227973,0.613027751,0.406905383,0.320840657,0.0946430936,0.01969303,0.142601684 +-0.212697491,0.680498004,0.212697491,0.00111584482,0.396733284,0.337136865,0.629430413,0.152682543,0.019756807,0.301369399 +0.52756846,0.681197882,-0.52756846,0.000621061423,0.311222434,0.306670159,0.0532322675,0.0474654809,0.0211140681,0.746097803 +0.570708036,0.681354821,-0.570707977,0.000629517657,0.259215564,0.229827523,-0.594929755,0.150438741,0.0212576054,0.807168424 +0.0992761999,0.681400657,-0.0992761999,0.000378551456,0.615848601,0.407352,0.319232941,0.0942566022,0.0196922477,0.141087621 +-0.788175583,0.681471407,0.788175583,0.00389904249,0.242363364,0.172142908,-0.863478899,0.809189081,0.0214740001,1.11612201 +0.0999205261,0.681501508,-0.0999205261,0.000216695829,0.615484416,0.407402903,0.319639236,0.094494544,0.0196922887,0.141537085 +0.100742429,0.682072341,-0.100742429,0.00260121888,0.614449859,0.407985628,0.32182017,0.0947201177,0.0196923669,0.142563805 +-0.645563126,0.682171822,0.645563126,0.00107946876,0.252441585,0.206650108,-1.11533809,0.502542555,0.0213030633,0.913116455 +0.0994723141,0.682259679,-0.0994723216,0.00249927281,0.616508424,0.407651752,0.320352823,0.0939069092,0.0196919758,0.141011745 +0.573336303,0.682765484,-0.573336244,0.000795545289,0.259223759,0.229375482,-0.629220545,0.171122774,0.0212643258,0.81085521 +1.09135711,0.683585882,-1.09135711,0.00108521618,0.175106496,0.111377954,0.576575041,0.105465963,0.0216239169,1.54361153 +1.00571895,0.683770478,-1.00571895,0.00207885914,0.206627697,0.140335068,0.428968728,0.343392283,0.0216148458,1.42262673 +-1.15588975,0.684887588,1.15588975,0.00022981115,0.128793642,0.0751547292,0.632320404,0.0732572228,0.0217718817,1.63479316 +1.0678817,0.685725152,-1.0678817,0.00193152775,0.18529363,0.120056488,0.540577888,0.129502386,0.0216167904,1.51050425 +0.276212215,0.68609184,-0.276212215,0.00132112729,0.330830902,0.317927927,0.99898243,0.108148322,0.0199627522,0.390870631 +0.166495159,0.689029634,-0.166495159,0.00330609595,0.482171118,0.382952809,0.459216833,0.107142545,0.0197165962,0.240792289 +0.893500805,0.690314889,-0.893500865,0.00154274143,0.237494245,0.165910602,-0.156916961,0.752606988,0.0216420498,1.2638402 +-0.587628126,0.691225529,0.587628126,0.00140760595,0.261596024,0.230118468,-0.793196321,0.271267265,0.0211712942,0.831133008 +-1.1597749,0.691613972,1.1597749,0.00115918089,0.125279263,0.0729716271,0.645870864,0.0723493919,0.0217756815,1.64021182 +0.895463526,0.691754818,-0.895463526,0.000400243152,0.237356484,0.165813565,-0.145556569,0.747813463,0.0216405485,1.26655078 +0.68351531,0.692570448,-0.68351531,0.00297209201,0.25478965,0.200533301,-1.25382912,0.700536907,0.0215204805,0.967418909 +-0.910252094,0.692624688,0.910252154,0.00476980675,0.230791092,0.157116458,-0.0268838555,0.61411202,0.0215395242,1.28765357 +-0.550876379,0.693785071,0.550876379,0.00169303734,0.281230509,0.260258853,-0.259186029,0.0646654963,0.0210840087,0.779682219 +0.891397119,0.694041431,-0.891397119,0.00225231634,0.23815687,0.166579217,-0.169266105,0.758501112,0.0216381084,1.2608726 +0.28829217,0.694154024,-0.28829217,0.000756101159,0.331297874,0.327017546,1.08294809,0.100938231,0.0200082362,0.408183277 +-1.1502775,0.694274664,1.1502775,0.00111130707,0.133850902,0.0784248263,0.607774973,0.0400665179,0.0217590872,1.62676895 +1.02760375,0.694333076,-1.02760363,0.00184893771,0.199838698,0.134423316,0.504655421,0.261580825,0.0216037799,1.45355773 +0.893833995,0.694500148,-0.893834054,1.98763682e-05,0.237868086,0.16632545,-0.150278464,0.751675725,0.0216376632,1.26431394 +-0.799081683,0.694770157,0.799081683,0.00631545763,0.243570507,0.172592878,-0.822545171,0.848565578,0.0214644726,1.13131261 +-0.201406509,0.694850445,0.201406509,0.00172551291,0.427982092,0.354720771,0.595079839,0.150254682,0.0197403859,0.285272717 +0.899599969,0.694876969,-0.899599969,0.00197299407,0.236676589,0.165398091,-0.114963323,0.732712567,0.0216358975,1.27228391 +0.0194288585,0.695280612,-0.0194288623,0.00589415943,0.694571614,0.404372573,0.348150998,0.0085587427,0.0196854006,0.0407393277 +-0.335565954,0.695548713,0.335565954,0.000541993475,0.441350192,0.474987119,1.15006471,0.0653436333,0.0202231295,0.475191981 +0.335589409,0.696659923,-0.335589409,0.000427547697,0.408356398,0.444299549,1.17418396,-0.00668021804,0.0202291142,0.475249052 +-0.0329320654,0.696674943,0.0329320692,0.0042295428,0.655349314,0.402399451,0.349645078,0.0199646875,0.0196840111,0.0810548663 +-0.490343809,0.697275937,0.490343809,0.000395019044,0.482898295,0.52580446,0.824672461,-0.152579203,0.0210102946,0.693891585 +-0.617254972,0.697620749,0.617254913,0.00112216012,0.261106074,0.224226877,-1.05631351,0.407326341,0.0212309584,0.872981548 +-1.09922791,0.698081315,1.09922791,0.00186503562,0.166868448,0.101909637,0.507911026,0.0251532234,0.021687096,1.55464935 +0.489928663,0.698724329,-0.489928663,0.00114443863,0.461859345,0.503478348,0.687208951,-0.102950469,0.0210013818,0.693307877 +-0.260304302,0.698994756,0.260304332,0.00125095516,0.344374061,0.322814912,0.89462781,0.119123124,0.0198823437,0.36945644 +0.893402994,0.700564444,-0.893402934,0.00196707831,0.238253653,0.16675581,-0.142146319,0.754031539,0.0216275118,1.26356125 +0.284328461,0.701374173,-0.284328461,8.89300791e-05,0.337989688,0.330586463,1.05907118,0.116765544,0.0199905634,0.403000712 +1.07931733,0.70313859,-1.07931733,0.000344096392,0.181111738,0.116500184,0.570542455,0.0458517559,0.0215966683,1.52692521 +1.22847652,0.703507602,-1.22847652,0.000770834682,0.0304926001,0.0219529308,0.954487324,-0.0436972789,0.0216359086,1.73771739 +0.657393813,0.703768194,-0.657393813,0.00269235228,0.258241415,0.211366683,-1.34777379,0.658737421,0.0214721505,0.9306494 +-0.315336466,0.706232309,0.315336466,0.000498823763,0.362824947,0.378392756,1.1420213,0.067116648,0.0201489739,0.445978969 +-0.245426357,0.706605792,0.245426357,0.00202407292,0.367719829,0.338058859,0.815111041,0.123860642,0.0198279731,0.348648816 +0.289866209,0.706712842,-0.289866209,0.000997264287,0.341532439,0.338606507,1.07856143,0.11112377,0.0200131983,0.410226226 +0.318235815,0.706952453,-0.318235815,0.000848714844,0.378552675,0.398611903,1.14677429,0.0385053381,0.0201497599,0.450723737 +-0.289505959,0.707897305,0.289505959,0.00089109753,0.342065871,0.337788641,1.04846144,0.103956364,0.0200223606,0.411209047 +1.20211387,0.708010614,-1.20211387,0.00159032573,0.0682479739,0.040041212,0.896025896,0.0899381563,0.0216290094,1.70042753 +-0.315671682,0.708195388,0.315671682,0.000390805479,0.368884504,0.382208049,1.14243364,0.0762109756,0.0201477259,0.446448356 +-0.523367703,0.708333015,0.523367703,0.00116133585,0.330935597,0.326407671,0.22196728,-0.0830903947,0.0209961738,0.740412891 +-0.314135283,0.708956718,0.314135313,0.00065789331,0.364777237,0.376873791,1.14110708,0.0775232315,0.0201415848,0.444288075 +-0.31477493,0.709294021,0.314774901,3.84252562e-05,0.36636427,0.378786296,1.14040387,0.0760432631,0.0201449171,0.445227027 +0.281572044,0.711637735,-0.281572044,0.00115821906,0.345885873,0.339886189,1.04383874,0.1056474,0.0199777521,0.398675501 +-0.50732553,0.712872148,0.50732553,0.000706638501,0.394885063,0.409229636,0.502432883,-0.147241458,0.0209765211,0.717655897 +0.952562451,0.713411331,-0.952562451,0.00384474033,0.225622296,0.157172874,0.251172662,0.536571503,0.0215979889,1.34772718 +-0.515598178,0.714166939,0.515598238,0.000390882458,0.347861975,0.349699706,0.342175692,-0.105535738,0.0209763627,0.729588389 +0.614750862,0.714335799,-0.614750862,0.00216119457,0.263337612,0.228354111,-1.19379699,0.4618541,0.0213491879,0.870184243 +1.12451005,0.716077447,-1.12451005,0.00128386309,0.159250975,0.096828118,0.565701365,-0.0087351352,0.0215964876,1.5906558 +1.06038082,0.716826141,-1.06038082,0.00104019104,0.187601328,0.123991981,0.592262387,0.0566646494,0.0215751063,1.49998116 +1.17315018,0.716835499,-1.17315018,0.00152278633,0.117771462,0.0692437962,0.758587122,0.0970057696,0.0216133352,1.65945792 +1.09602809,0.717957139,-1.09602809,0.00111352152,0.173007756,0.109199472,0.561306119,-0.00667523406,0.0215847213,1.55022454 +1.0760957,0.717976809,-1.0760957,0.000444932695,0.181130677,0.117909163,0.587806702,-0.0222093705,0.0215759166,1.52226782 +0.232453689,0.718023717,-0.232453689,0.00125755556,0.395311832,0.362389833,0.782992363,0.109539613,0.0198033974,0.328919351 +1.0095309,0.718065977,-1.0095309,0.000412026362,0.206511497,0.141412839,0.510003626,0.259035707,0.0215734132,1.42839956 +-0.714559913,0.718536973,0.714559913,0.00283355592,0.252788901,0.194016531,-1.32913578,0.913236022,0.02135312,1.01283145 +0.328628421,0.718692303,-0.328628421,0.000465907651,0.405698478,0.427617401,1.08691716,0.0330664292,0.0201917905,0.465286583 +-0.978139818,0.718815267,0.978139818,0.000702951977,0.215868711,0.145978808,0.41772294,0.311209887,0.0215578172,1.38377559 +0.993767619,0.721264303,-0.993767619,0.00210696901,0.211887836,0.146000475,0.450554878,0.328937054,0.0215757731,1.40578198 +0.015153016,0.721427679,-0.015153016,0.00186989433,0.711826265,0.41497159,0.379618615,-0.0163125619,0.0196749773,0.0422819555 +1.14091182,0.721778512,-1.14091182,0.00105847442,0.145781651,0.0875478536,0.612900257,-0.000216171145,0.0215957258,1.61387122 +0.544319153,0.72350347,-0.544319093,0.000550869154,0.290348291,0.276195973,-0.37094456,0.0670219436,0.0211222284,0.770154834 +-1.22839928,0.72473371,1.22839928,0.000752090127,0.0292535145,0.0217937455,0.889192581,-0.0636967421,0.0218514521,1.73756552 +-0.264235646,0.72502017,0.264235646,0.00164307002,0.36224407,0.34771201,0.913734555,0.0860024765,0.0198952314,0.374580681 +-0.96286881,0.72542721,0.96286881,0.00262164744,0.220612019,0.149988711,0.349832356,0.379116535,0.0215380415,1.36192298 +-1.12442243,0.725871682,1.12442243,0.000846478622,0.155462533,0.0926762894,0.518220782,-0.0747614056,0.021705959,1.59048355 +0.547401547,0.726179361,-0.547401547,0.000126743704,0.286310315,0.270708919,-0.427307129,0.0690308213,0.0211294051,0.774561882 +1.01660442,0.726769447,-1.01660442,0.00166481547,0.203401744,0.139598995,0.55438292,0.198273525,0.0215601847,1.43809021 +0.313279986,0.727533162,-0.313280016,0.000675234827,0.379202217,0.386984229,1.06379223,0.0727140456,0.0201216862,0.4435969 +1.22858942,0.727856278,-1.22858942,0.000506629585,0.0307664219,0.0235665794,0.995276034,-0.0570412688,0.0216094498,1.7377851 +0.543151319,0.728213787,-0.543151319,0.000507208111,0.29310751,0.279911637,-0.358376026,0.0475108325,0.0211102366,0.768474996 +-0.349725991,0.728616714,0.349725991,0.000288631476,0.534336448,0.554469228,0.818524957,-0.0924292505,0.0202697702,0.494617462 +-0.584033668,0.728626072,0.584033668,0.00119060779,0.27663365,0.250875264,-0.860935211,0.311887115,0.0211136863,0.826148331 +-1.20745373,0.728788972,1.20745385,0.00160520012,0.0613111779,0.0360375904,0.842374861,0.0347361341,0.0218247157,1.70793808 +-0.476400256,0.729171813,0.476400256,0.000299139036,0.50053066,0.558149159,0.969011009,-0.587992609,0.0207917336,0.673796952 +-0.978995442,0.7299577,0.978995442,0.000560903456,0.215704978,0.146486118,0.456590265,0.28605935,0.0215455983,1.38484716 +-0.52867949,0.730308056,0.52867949,0.000991007895,0.326758325,0.321721047,0.0299404413,-0.0503496341,0.0209652763,0.747783184 +-0.652271807,0.730447292,0.652271807,0.00397230359,0.261180699,0.21765466,-1.41007864,0.748654008,0.0212722253,0.925597191 +-0.509120703,0.730642974,0.509120703,0.00136422948,0.362205297,0.368926316,0.389814198,-0.209562749,0.0209029187,0.720256925 +-0.350749731,0.731060028,0.350749731,7.41673139e-05,0.541860044,0.560810506,0.794728816,-0.104597129,0.0202725735,0.496104836 +0.548886299,0.73155272,-0.548886299,0.000859214517,0.287454844,0.272286892,-0.474689484,0.0873270109,0.0211260002,0.776489615 +1.20813394,0.731801152,-1.20813394,0.00110094505,0.0612512827,0.0366224647,0.957077861,0.0649571568,0.0216043033,1.70885253 +0.502066135,0.732000709,-0.502066135,0.000799265224,0.382823676,0.40222913,0.416521609,-0.201622188,0.0209415983,0.710105896 +0.351792961,0.732297003,-0.351792991,0.000208727288,0.542757988,0.57511133,0.838270366,-0.158908784,0.020232575,0.49755168 +-0.549125433,0.732319772,0.549125373,0.000968095614,0.292619646,0.276742488,-0.378968716,0.0616491996,0.0210057981,0.776860356 +0.222839266,0.732385039,-0.222839266,0.00134569989,0.418284476,0.381040215,0.740340054,0.113266654,0.0197724346,0.315644979 +-0.352246523,0.732632756,0.352246523,0.000105084422,0.547105432,0.568875611,0.775793374,-0.144726247,0.020272145,0.498182565 +-0.350439847,0.73330313,0.350439847,0.000456362963,0.538704097,0.557788193,0.797522187,-0.112559885,0.0202740412,0.495646656 +-0.593526483,0.733598948,0.593526542,0.000531536411,0.274344057,0.246845469,-1.02058709,0.386487603,0.0211329777,0.839978993 +-0.695053935,0.733635902,0.695053935,0.00553058647,0.256748825,0.203583896,-1.40316772,0.907979906,0.0213116519,0.984489202 +-1.1823194,0.733655334,1.1823194,0.00150072656,0.105416223,0.0606592298,0.72185421,0.0600663088,0.0217979457,1.67238545 +0.519638658,0.734244823,-0.519638658,0.000830744975,0.339384526,0.343414277,0.0804535151,-0.114159361,0.0209999736,0.734901547 +0.352654934,0.734326184,-0.352654934,8.92748631e-07,0.551068425,0.582751691,0.819973946,-0.167042553,0.0202325601,0.498797506 +-0.473915458,0.734529793,0.473915458,9.39163965e-06,0.503867626,0.564185441,0.991249204,-0.660357058,0.0207524374,0.670346022 +-1.16102493,0.734859586,1.16102493,0.00108619104,0.125338614,0.0727044493,0.625472486,0.00158207677,0.021771539,1.64218926 +-0.60420835,0.734968722,0.60420835,0.00179997552,0.272593588,0.242845312,-1.10023308,0.455495775,0.0211524777,0.85494858 +-1.13253248,0.735045671,1.13253248,0.00167489168,0.150841504,0.0890939236,0.515727699,-0.0818529353,0.0217228942,1.60182285 +0.351720393,0.735047817,-0.351720393,0.000363936153,0.545131147,0.575878978,0.825657308,-0.163008943,0.0202308986,0.497459918 +0.353389859,0.735117018,-0.353389859,0.000350362068,0.552026391,0.584548712,0.811028898,-0.184509575,0.0202328563,0.499839544 +0.731477439,0.735663891,-0.731477439,0.00548246317,0.260953367,0.199621722,-1.27828074,0.994047105,0.0215066038,1.03725588 +0.543362856,0.735864878,-0.543362916,0.000773228181,0.292475045,0.280080289,-0.417680711,0.0532861389,0.0210977029,0.768683851 +1.13706756,0.735903978,-1.13706756,0.000413688307,0.151754737,0.090592891,0.570239782,-0.0248281527,0.0215791948,1.60842156 +-0.731526315,0.736060083,0.731526256,0.00266961078,0.25420323,0.194301873,-1.26073003,0.96526289,0.0213429183,1.03648198 +1.18359733,0.736532092,-1.18359733,0.0010222143,0.1069078,0.0624997392,0.814044595,0.111594647,0.0215938669,1.67414713 +0.472476006,0.736569285,-0.472476006,0.000113150119,0.504342675,0.576470673,0.896540761,-0.664966404,0.0207101367,0.668189049 +1.11670578,0.736827075,-1.11670566,0.00133681693,0.162862822,0.100207165,0.53718996,-0.11490804,0.0215680432,1.57942176 +-0.47601223,0.737065911,0.47601226,0.000668477034,0.49094969,0.545856893,0.939724624,-0.629637837,0.0207547713,0.673269272 +0.472190499,0.737169921,-0.472190499,7.65305e-07,0.50508368,0.577744603,0.900285184,-0.674336135,0.020705821,0.66779238 +0.505074203,0.73721081,-0.505074203,0.000304237125,0.366725296,0.381552756,0.34936744,-0.207755879,0.0209351312,0.714431643 +0.474887222,0.737223089,-0.474887192,0.000281898247,0.493588358,0.560923278,0.855271459,-0.635637999,0.0207244828,0.67159313 +0.471743464,0.737604082,-0.471743464,8.99220177e-05,0.506015539,0.579232991,0.899154961,-0.684163094,0.0207002647,0.66715312 +0.501501381,0.737626374,-0.501501381,7.86817182e-05,0.380854368,0.400789738,0.415351897,-0.252022475,0.0209113788,0.709385931 +0.472383112,0.737659335,-0.472383112,0.000251800229,0.503623366,0.575696409,0.893209875,-0.671735883,0.0207062513,0.668059349 +0.0230204705,0.738215327,-0.0230204761,0.00490508974,0.721898675,0.418816417,0.401148975,-0.0190674644,0.0196698681,0.0449212231 +-0.207597554,0.738407135,0.207597554,0.00243946305,0.444314718,0.384183764,0.645261109,0.145975411,0.0197318532,0.298393369 +0.263466299,0.738430262,-0.263466299,0.0015853995,0.371242583,0.366578698,0.956368089,0.079584904,0.0199075285,0.375240445 +-0.290028036,0.738467813,0.290028036,0.00120241847,0.364294767,0.36605072,1.0492475,0.0656158105,0.0200175624,0.411346912 +-0.352536291,0.739106655,0.352536291,0.000323876913,0.53642118,0.55706507,0.783031046,-0.162383243,0.0202792175,0.498576492 +-0.322549522,0.739238977,0.322549522,0.000529466895,0.420798421,0.433976024,1.03219151,0.0360194929,0.0202020146,0.456249028 +0.471652508,0.739414752,-0.471652478,0.000376849552,0.502819896,0.574652851,0.885256886,-0.677477717,0.020698892,0.667020798 +-0.469159007,0.739416003,0.469159007,0.000323392509,0.515192032,0.582347512,0.984568,-0.760366559,0.0206927676,0.663540065 +0.168927312,0.740309834,-0.168927312,0.00493637705,0.516771197,0.41734013,0.517866373,0.108870164,0.0196975302,0.247057498 +0.325918794,0.740466058,-0.325918794,0.000899112783,0.41310823,0.423587143,1.00398612,0.0161964744,0.0201740675,0.461590409 +0.218793824,0.740483522,-0.218793839,0.0023180712,0.431907147,0.391713828,0.731025636,0.112575486,0.0197636578,0.310253024 +0.224499702,0.7409392,-0.224499702,3.90382847e-05,0.421840191,0.387271523,0.758984923,0.112336062,0.0197737925,0.318530262 +0.230138823,0.741106749,-0.230138808,0.00116239989,0.415392965,0.385608226,0.784929991,0.107920632,0.0197916869,0.325799406 +-1.07031965,0.741606951,1.07031965,0.00111022952,0.1777367,0.114735633,0.588943005,-0.156108618,0.0216023754,1.51390815 +1.07240999,0.7422328,-1.07240999,0.000947685796,0.179096952,0.119339183,0.644373655,-0.137926564,0.0215387624,1.51670766 +-1.01384974,0.742657542,1.01384974,0.00167700509,0.202292189,0.136219651,0.602584004,0.080105193,0.0215552803,1.4338249 +0.502342105,0.74305892,-0.502342165,0.00049481832,0.370814413,0.388207942,0.352923989,-0.240868419,0.0209071245,0.710526526 +0.601375103,0.743515611,-0.601375103,0.00174038415,0.274596155,0.24654229,-1.20279408,0.465859443,0.0212794188,0.85118407 +-0.316811502,0.744076192,0.316811472,0.000405194529,0.40739879,0.415085077,1.02051413,0.0389347002,0.0201806296,0.448188424 +0.928827703,0.744464993,-0.928827643,0.00232339464,0.233330175,0.164000139,0.175490186,0.624521792,0.0215532426,1.31415105 +-0.544305623,0.744616389,0.544305563,0.000346593384,0.299494505,0.287317812,-0.363648534,0.0406780466,0.0209798906,0.770483375 +-1.07986784,0.745043039,1.07986784,0.00076830847,0.173675716,0.11133153,0.596764684,-0.19475089,0.0216078311,1.52747631 +-1.09922945,0.745449424,1.09922945,0.00144132483,0.165282726,0.103355885,0.567502916,-0.173811942,0.0216446668,1.55463123 +0.579084456,0.745667338,-0.579084456,0.00152985984,0.279247493,0.257118553,-0.976133347,0.313313156,0.0212049279,0.820222855 +-1.02809215,0.745692134,1.02809215,0.00266543031,0.196905777,0.131932318,0.656726062,0.00563094812,0.0215604603,1.45403516 +-0.593212724,0.745779037,0.593212724,0.00176265812,0.278291523,0.253469765,-1.08136654,0.426386923,0.0211203117,0.839180231 +0.223677501,0.747030079,-0.223677516,0.00108929072,0.427387595,0.392523676,0.764849842,0.108688459,0.0197696742,0.31702581 +-0.00502490625,0.747244775,0.00502490439,0.00460458314,0.723162293,0.415336281,0.396319062,-0.0132130524,0.0196670741,0.0492387116 +1.05001295,0.747608423,-1.05001295,0.000753696833,0.187138125,0.127154917,0.625421166,-0.0670719743,0.021530712,1.48503995 +-0.322282225,0.747689545,0.322282225,0.000127643143,0.429211348,0.43882966,0.988071442,0.0157701932,0.0202020742,0.455995053 +0.508344889,0.748054385,-0.508344889,0.000499227492,0.358700275,0.371828467,0.203991517,-0.179882541,0.0209311023,0.718948066 +-0.319730252,0.748289406,0.319730252,8.80740263e-05,0.417495251,0.426255852,1.00797212,0.0296112578,0.0201978348,0.452470809 +0.298947692,0.750620067,-0.298947692,0.000640753773,0.37470144,0.386069983,1.07236874,0.0279602874,0.0200645328,0.423232615 +0.623152971,0.75113976,-0.623152971,0.00302457996,0.273423344,0.240784451,-1.38922286,0.635077477,0.0213200971,0.882363915 +-1.03321004,0.751550794,1.03321004,0.000353496813,0.194209412,0.130159631,0.668290794,-0.0385564454,0.0215580873,1.46123767 +-1.02681112,0.751916707,1.02681112,0.000800039736,0.197266594,0.132767558,0.67634809,-0.00647157338,0.0215526409,1.45224857 +-0.314487636,0.751950324,0.314487636,0.00060328265,0.414013058,0.421906799,1.00721991,0.0285799522,0.0201693401,0.444961935 +1.16516995,0.751974225,-1.16517007,0.000423673977,0.134388328,0.079120189,0.642817378,0.0964251384,0.0215754379,1.64786875 +-0.318143368,0.752265334,0.318143368,7.34869973e-05,0.416366935,0.425698251,1.01419759,0.0222178791,0.0201923288,0.450264335 +1.08819997,0.752712488,-1.08819997,0.000908164307,0.171821475,0.112473153,0.621196747,-0.198720127,0.0215316024,1.53901792 +-0.546092749,0.753184259,0.546092749,0.000142215198,0.300823361,0.289917558,-0.452013224,0.0914277136,0.0209801756,0.773122728 +-0.874491692,0.753274858,0.874491692,0.00334240193,0.242089182,0.168638483,-0.196553737,0.806378245,0.0213755462,1.23689103 +1.15265262,0.753510475,-1.1526525,0.000494054053,0.142431661,0.0849496871,0.610005438,0.0396398269,0.0215677526,1.63012683 +-0.322402418,0.753530562,0.322402418,0.00069576333,0.424155116,0.434417665,0.98922956,-0.011320455,0.0202087853,0.45610258 +-0.557545781,0.754195571,0.557545781,0.00149338576,0.296126366,0.282279938,-0.612925708,0.183184788,0.0210045036,0.78883934 +-0.158412531,0.754352808,0.158412531,0.00342693832,0.547041416,0.413186163,0.466677248,0.138005376,0.0196816679,0.228513896 +-1.07735229,0.754943609,1.07735229,0.00104603253,0.173721179,0.112671278,0.621290505,-0.237281069,0.0215929169,1.52376008 +-0.933392644,0.755302906,0.933392644,0.00262917066,0.230015934,0.158540532,0.281087846,0.500924885,0.0214792136,1.32115221 +-0.905250669,0.755312622,0.905250609,0.00280948868,0.2364389,0.163240671,0.0572088584,0.647710979,0.0214452147,1.28189039 +1.16396928,0.755828619,-1.16396928,0.00030961333,0.136131078,0.0800094604,0.630610824,0.0890120342,0.0215708576,1.64616847 +1.16856313,0.756810069,-1.16856313,0.000409895729,0.130601093,0.0767574981,0.663113475,0.100834809,0.0215707608,1.65265107 +0.78032136,0.7572999,-0.78032136,0.00552046625,0.258040667,0.190765202,-0.899694085,0.977146745,0.0214770511,1.10463536 +0.991788387,0.757815719,-0.991788447,0.0018327029,0.210921049,0.148864508,0.583336651,0.227980882,0.0215207823,1.40309608 +-0.374257952,0.757832229,0.374257952,0.000367235858,0.63847661,0.704523683,0.478514493,-0.725938678,0.0202764142,0.529804349 +-0.449166417,0.759863853,0.449166417,0.000723826408,0.561865032,0.659138799,0.971983194,-1.18534207,0.0204595402,0.635637164 +0.552265525,0.760239542,-0.552265525,0.000806179945,0.29530552,0.285784751,-0.694426179,0.216796011,0.0210950896,0.781076908 +0.445801198,0.762115955,-0.445801198,0.000478562695,0.566351652,0.676129282,0.87183553,-1.27557087,0.0203884449,0.630888402 +-1.02961385,0.762266874,1.02961397,0.000822850096,0.194421947,0.132096708,0.730002403,-0.0456484519,0.0215344932,1.4561342 +-0.131430373,0.762688994,0.131430373,0.00335784862,0.597119093,0.430238396,0.428345084,0.103986979,0.0196713973,0.193621546 +0.382232815,0.762767255,-0.382232815,0.000337104895,0.618848205,0.704849541,0.48610732,-1.00925756,0.0202274621,0.540681005 +-0.0615194291,0.7630952,0.0615194365,0.00503765512,0.698734164,0.418080926,0.354204208,0.0229019709,0.0196636841,0.101749845 +0.384159744,0.763427794,-0.384159714,6.32807132e-05,0.618960083,0.707565188,0.48944664,-1.04643762,0.020227598,0.543386877 +-0.97236985,0.763543725,0.97236979,0.00171525346,0.218425483,0.150108457,0.546243727,0.297293246,0.0214906298,1.37523675 +0.288540035,0.76356858,-0.288540035,0.00105393585,0.385372609,0.394753903,1.02272844,0.00884718727,0.0200217757,0.408787876 +1.16857266,0.763664842,-1.16857266,0.000582776382,0.13327153,0.0794857517,0.673230171,0.129828632,0.0215636622,1.65266204 +0.308543891,0.763929844,-0.308543891,0.000835552404,0.403583765,0.417834252,1.02148271,-0.0250144191,0.020104507,0.436898172 +-0.389206916,0.765048444,0.389206886,0.000274616294,0.64258492,0.73365128,0.450446188,-1.09374738,0.0202762317,0.550814331 +0.382346392,0.765344858,-0.382346421,0.000509650505,0.613785207,0.698762834,0.494619161,-1.01078355,0.020230474,0.540852249 +1.01888311,0.76547873,-1.01888311,0.00213742536,0.200800747,0.141214147,0.710855603,0.0695245266,0.0215005651,1.44143152 +-1.22875273,0.765918732,1.22875273,0.000262668036,0.0306147896,0.0262853764,0.959703147,-0.0562527105,0.0218065456,1.73778117 +-0.436168402,0.765941262,0.436168402,0.00015098018,0.594672263,0.708563685,0.850286484,-1.33906817,0.0203653108,0.616988778 +1.06944251,0.766392529,-1.06944251,0.00115295104,0.176755324,0.120201617,0.704803765,-0.249647826,0.0215026326,1.51256728 +-1.02265024,0.766807258,1.02265024,0.00104340154,0.198153824,0.134417474,0.729970813,0.00701370928,0.0215257015,1.44628751 +0.819197178,0.767558157,-0.819197178,0.00561308954,0.256106704,0.184834823,-0.621014237,0.976868153,0.0214694832,1.16087246 +1.0540632,0.76770407,-1.0540632,0.000897910097,0.184463546,0.126774758,0.705476761,-0.151377097,0.0214999933,1.4907974 +-1.21560073,0.767737567,1.21560073,0.000568521733,0.0520421863,0.0322827585,0.951167226,0.0305057112,0.0217967946,1.7191813 +-1.13175058,0.76837343,1.13175058,0.00130525825,0.145040736,0.0918048099,0.328026056,-0.174098432,0.0217328612,1.60071826 +-0.774758875,0.768502235,0.774758816,0.00304232654,0.252750903,0.188546211,-1.04781783,1.09060526,0.021277165,1.09587705 +0.387710869,0.769701242,-0.387710869,0.000407690008,0.602207839,0.686461031,0.498412371,-1.03203106,0.0202430468,0.548337638 +-0.490718454,0.769707739,0.490718424,0.00116480608,0.393294513,0.414648443,0.438821077,-0.427047521,0.0207592919,0.694939852 +-1.1997447,0.769934118,1.1997447,0.000591655495,0.088881284,0.0525705628,0.867192686,0.127010703,0.0217880141,1.69675708 +-0.422825873,0.770273268,0.422825903,0.000166991667,0.618600249,0.741478741,0.728136539,-1.43673396,0.0202905368,0.598262131 +1.11936951,0.770405054,-1.11936951,0.0010352548,0.151334986,0.0984497741,0.368398398,-0.332071364,0.0215293206,1.58320725 +-0.404455215,0.770492315,0.404455185,0.000238302717,0.641168535,0.753748953,0.51587379,-1.38054538,0.0202657785,0.572474957 +0.299551427,0.770599008,-0.299551427,0.000408772641,0.389619231,0.403559327,1.04984045,-0.0120750125,0.0200706981,0.42457819 +0.419974029,0.770750463,-0.419974029,0.000202185474,0.619533181,0.749462545,0.667006552,-1.48109686,0.0202388652,0.593960166 +0.418026686,0.771326661,-0.418026686,4.68265353e-05,0.622698486,0.75346148,0.653084099,-1.4929297,0.0202294402,0.591237903 +-0.170510009,0.771646619,0.170510009,0.00297506619,0.537909448,0.422469974,0.523954511,0.139517486,0.0196826551,0.244359374 +-0.27605617,0.772456408,0.27605617,0.00265074288,0.387525052,0.388993472,0.994532645,0.0235947184,0.0199451186,0.391995817 +0.239983857,0.773342609,-0.239983857,0.00123405852,0.423875213,0.408532411,0.89311111,0.0631627515,0.0198239163,0.339474976 +-0.473557651,0.773453116,0.473557681,0.000344033702,0.44766289,0.490551502,0.647989988,-0.601133347,0.020670576,0.669719815 +0.417948604,0.774659872,-0.417948574,0.000455140515,0.612137854,0.7371369,0.647664428,-1.45421791,0.0202388261,0.591086566 +0.604250312,0.775547564,-0.604250312,0.00159385009,0.282947302,0.262704343,-1.40984678,0.6442312,0.0212306809,0.855647683 +-1.22876334,0.775727749,1.22876334,7.89895275e-05,0.0309542827,0.0271906443,0.977182627,-0.0545817055,0.0217945799,1.73783123 +-1.17798448,0.775758147,1.17798448,0.000735476031,0.125211135,0.0744987279,0.674189329,0.140670776,0.0218030922,1.66592193 +-1.1780318,0.775767684,1.17803168,0.000158973766,0.125171512,0.0744746104,0.674394965,0.140827447,0.0218031537,1.6659888 +-1.17803156,0.775811374,1.17803156,5.69751876e-07,0.125187114,0.0744874105,0.674401939,0.140941948,0.0218031593,1.6659888 +-1.17814541,0.775818169,1.17814553,0.000304752757,0.125006229,0.0743784308,0.675386906,0.140909508,0.0218030792,1.6661495 +0.700657368,0.775826931,-0.700657308,0.00313664135,0.269146055,0.218921319,-1.54998887,1.11715698,0.0213663466,0.991293311 +-1.17805684,0.775879264,1.17805696,0.000301814434,0.125175521,0.0745093897,0.675032794,0.141238824,0.0218030196,1.66602433 +0.346120894,0.776135683,-0.346120894,0.000915403129,0.467209756,0.492786497,0.83339119,-0.330107599,0.0202359632,0.489833653 +-1.06470537,0.776651919,1.06470537,0.00132223871,0.176585898,0.118585356,0.754183471,-0.228381127,0.0215401109,1.50582671 +-1.21752179,0.777179062,1.21752179,0.000172651489,0.0496763103,0.0312083475,0.978201747,0.0289615951,0.0217888579,1.72193313 +1.14713097,0.777233243,-1.14713097,0.000660806894,0.144104287,0.0916123465,0.412320375,-0.000430114567,0.021541018,1.62232947 +1.22879779,0.777542591,-1.22879779,0.000243281218,0.0320353135,0.028958289,1.12085879,-0.0463799685,0.0215548314,1.73779452 +-1.10742688,0.777907133,1.10742688,0.000919026439,0.148600653,0.0996314809,0.456997812,-0.403727353,0.0216336772,1.56622446 +1.15803075,0.778239131,-1.15803063,0.000265859882,0.141383246,0.0884365812,0.418907791,0.131478071,0.0215488281,1.63779271 +1.19813275,0.778374672,-1.19813275,0.000285564951,0.0924670845,0.0552635379,0.980011225,0.164104104,0.0215509534,1.69441783 +0.510773659,0.778756022,-0.510773659,0.000565144175,0.347456485,0.36078459,-0.102542795,-0.194479257,0.020879725,0.72263515 +-1.20403194,0.778920531,1.20403194,0.000244742376,0.0845218748,0.0502781644,0.90465486,0.143112078,0.0217840374,1.70285547 +1.21785688,0.778995514,-1.217857,0.000525497424,0.0495254621,0.0317895189,1.13518405,0.0513050929,0.0215526726,1.72232151 +0.487188935,0.779914618,-0.487188935,0.00142373145,0.390456527,0.421862602,0.304130018,-0.462556213,0.0207412541,0.689749241 +0.355175287,0.780250549,-0.355175316,0.000502634211,0.499647439,0.534031093,0.750313878,-0.468363822,0.020247642,0.502771616 +1.22878909,0.780281901,-1.22878909,1.78090268e-05,0.0320984907,0.0291800648,1.12717795,-0.0464180335,0.0215518568,1.73779404 +-0.397369385,0.780594051,0.397369385,0.000665995118,0.606744528,0.696444929,0.479940116,-1.2224046,0.0202949252,0.562808096 +1.20475698,0.78073293,-1.20475709,0.000430532265,0.0835836008,0.0500830971,1.05019617,0.176583275,0.021549141,1.70379496 +1.21836698,0.781531096,-1.21836686,3.7759557e-05,0.0488852747,0.0314715207,1.14400089,0.0499887168,0.0215499252,1.72305393 +0.521645367,0.782059193,-0.521645367,0.0010221086,0.325557172,0.330272228,-0.333127975,-0.0542554855,0.020935161,0.738179088 +-0.313429534,0.782282591,0.313429534,0.000580333406,0.414580494,0.429961473,1.06615067,-0.0510722846,0.0201641433,0.443282008 +1.22879827,0.782405853,-1.22879827,0.000159844087,0.0321810097,0.0294723306,1.13875782,-0.0447729826,0.0215493627,1.737795 +-0.533551574,0.782406688,0.533551574,0.00157771865,0.315354347,0.313888103,-0.431814432,0.0859332979,0.0209205728,0.754734635 +0.951385438,0.782642484,-0.951385438,0.00265096663,0.225740194,0.159583762,0.457434058,0.455560595,0.0214942247,1.3459177 +1.20518374,0.782859087,-1.20518363,6.92915683e-06,0.0833603591,0.0499944165,1.05405223,0.179668859,0.0215469711,1.70440853 +1.2058605,0.783030212,-1.2058605,2.08581405e-05,0.0823486373,0.0493915491,1.0614413,0.179413706,0.0215468463,1.70536613 +1.21856356,0.783555329,-1.21856356,0.000349293288,0.0485870503,0.0313721858,1.15826881,0.0508285239,0.0215475578,1.72332048 +0.349926174,0.78366214,-0.349926174,5.7433459e-05,0.47786355,0.50669831,0.798415005,-0.401093215,0.0202473197,0.495618731 +1.09832036,0.783668876,-1.09832048,0.000838635606,0.152948886,0.106632397,0.543082476,-0.518422306,0.0214890968,1.55333316 +0.438331604,0.784493804,-0.438331604,0.00053377985,0.523358941,0.609598219,0.704127491,-1.13702416,0.0203820784,0.620289445 +1.16370893,0.784557939,-1.16370893,0.000455986708,0.140146345,0.0902812853,0.485855818,0.220580518,0.0215430278,1.64580059 +-0.342026889,0.784730315,0.342026919,0.00178375491,0.473594069,0.495212942,0.843853533,-0.290201187,0.0203039702,0.484893352 +1.20526147,0.784841061,-1.20526147,0.000304741669,0.0843297914,0.0510268807,1.06284404,0.191826195,0.0215447843,1.70450509 +0.684673071,0.784841835,-0.684673071,0.00255496823,0.271655023,0.226039231,-1.61601627,1.1008687,0.0213323347,0.968787193 +1.20626724,0.784936905,-1.20626712,0.000238623703,0.0818902105,0.0493524075,1.07877684,0.182322323,0.0215446465,1.70593035 +0.0427448973,0.785392821,-0.042744901,0.0036564616,0.737845302,0.419057667,0.450342357,0.0322478674,0.0196583625,0.0650369674 +-1.22879362,0.785638928,1.22879374,0.000159464194,0.031369742,0.0285864994,1.02191198,-0.0452768728,0.0217780583,1.7378273 +-1.09134459,0.786116719,1.09134459,0.000709342887,0.150399238,0.104602873,0.566092968,-0.549301624,0.0215651188,1.54355073 +-0.614884138,0.786218405,0.614884138,0.00186545635,0.276150167,0.253841966,-1.42922807,0.808297276,0.0210839566,0.869671345 +-0.367822975,0.786413908,0.367823005,0.000504279335,0.542190969,0.582560658,0.630689025,-0.614584446,0.0203162264,0.520428956 +-1.21857846,0.786910951,1.21857846,0.000347911962,0.0481810458,0.0307453573,1.03666365,0.03766682,0.0217727292,1.72338057 +-0.430538416,0.787279129,0.430538416,0.000316499441,0.544179797,0.63316834,0.691923976,-1.20965576,0.0203502364,0.608974814 +-0.142703488,0.787449956,0.142703474,0.00243200501,0.593733072,0.435005993,0.474013835,0.119641133,0.0196655486,0.210151866 +0.118609004,0.788355052,-0.118609004,0.000619188824,0.655163527,0.442317545,0.455034435,0.13751848,0.0196612142,0.171531618 +0.848419428,0.788363636,-0.848419428,0.00454157963,0.252356619,0.181439385,-0.3521716,0.897913277,0.0214475356,1.20081854 +-1.20633221,0.78843528,1.20633209,0.000333886303,0.0818037018,0.049581036,0.980775356,0.167033657,0.0217687767,1.70606172 +0.305812895,0.788717806,-0.305812895,0.00140677276,0.398822218,0.417320371,1.07751513,-0.0681753606,0.0200947523,0.433233887 +-0.378215939,0.788870573,0.378215939,0.000429973123,0.55268383,0.610451818,0.599856198,-0.866500556,0.0203128904,0.535062551 +0.355172247,0.789301932,-0.355172247,0.00098660402,0.48064208,0.512109935,0.783186972,-0.465759993,0.0202582087,0.502808571 +0.452910751,0.789883196,-0.452910751,0.0005512801,0.481691122,0.550671697,0.603350103,-0.938355327,0.0204682909,0.640723825 +0.129341483,0.790597022,-0.129341483,0.00325644831,0.638146043,0.447230279,0.478749692,0.138360217,0.0196640585,0.184569314 +-0.421487987,0.791148067,0.421487987,0.000369817717,0.54101181,0.616952419,0.559782982,-1.12683368,0.020348886,0.596245706 +-1.17115307,0.791444719,1.17115307,0.000527662749,0.131349131,0.0853218287,0.512507915,0.28585729,0.0218254775,1.65626061 +-1.17116618,0.791454375,1.17116618,3.68577361e-07,0.131345019,0.0853208527,0.512586117,0.286018103,0.0218255017,1.65627921 +-1.17117488,0.791471779,1.17117488,0.000324047753,0.13134487,0.0853342116,0.512820542,0.286113024,0.0218254477,1.65629137 +-0.437608182,0.792151392,0.437608182,0.000487408426,0.498047709,0.565570652,0.711926699,-1.04035282,0.0204127431,0.619145751 +-0.226584852,0.792341471,0.226584867,0.00185000512,0.451793224,0.412587315,0.801501989,0.0891204625,0.019740371,0.321464986 +0.898967981,0.792752087,-0.898967981,0.00445079105,0.242047369,0.171903849,0.0888500363,0.725157499,0.0214794334,1.27232003 +-1.20232618,0.793140233,1.20232618,0.00041925718,0.0941994116,0.059937086,0.971939802,0.214895546,0.0217695683,1.70038342 +0.567595899,0.793808579,-0.567595899,0.00102989096,0.299680412,0.292954266,-1.10836482,0.432996035,0.0210964456,0.802979708 +-1.13265288,0.794232965,1.13265288,0.000489455124,0.158948243,0.122153275,0.0241664834,-0.362308502,0.0217461158,1.60199547 +1.08435869,0.794330657,-1.08435869,0.000970219029,0.153875023,0.111846238,0.689249992,-0.615081191,0.0214586873,1.53366292 +0.346681535,0.794816136,-0.346681535,0.00151052466,0.468060136,0.497849464,0.861106098,-0.381732106,0.0202377792,0.49075529 +-0.359855294,0.795053482,0.359855294,0.000700025645,0.492977738,0.522204816,0.72679323,-0.516665578,0.0203215051,0.509284735 +-0.0685633123,0.795371115,0.0685633123,0.00255071581,0.705417216,0.429217458,0.40555945,0.034429118,0.0196552314,0.113240182 +1.12302864,0.796149611,-1.12302864,0.00037364848,0.162291363,0.121538229,0.0739071816,-0.573065221,0.0215056967,1.58838272 +0.542874336,0.796505809,-0.542874396,0.000971570378,0.315776527,0.317266613,-0.748919904,0.21521242,0.0209987573,0.767843843 +0.111556157,0.797112644,-0.111556165,0.00339304563,0.669389486,0.445107669,0.462479651,0.127847314,0.019657325,0.163079724 +1.15359712,0.797757804,-1.15359712,0.000106110034,0.172548532,0.138247862,0.0478205979,0.0574749038,0.0215360615,1.63152218 +1.145123,0.797840893,-1.145123,0.000248056749,0.17011109,0.134637237,0.064769417,-0.118139669,0.0215253774,1.61948955 +-0.242100343,0.798155904,0.242100358,0.00168253656,0.440204144,0.415721655,0.875189245,0.0644308403,0.0197976716,0.342964381 +-0.741974294,0.798248589,0.741974294,0.00438493444,0.258793652,0.199964032,-1.27160215,1.1802268,0.0211945027,1.04964268 +-0.471399307,0.798423231,0.471399307,0.000588537776,0.418878675,0.455106884,0.446184158,-0.608185649,0.0206019804,0.666731477 +-1.16803634,0.798587084,1.16803646,0.000154139634,0.149747163,0.120704263,0.324911922,0.287555069,0.0218415614,1.65185285 +-0.368884295,0.798611879,0.368884295,0.000304089423,0.50747025,0.543432653,0.673597515,-0.647916138,0.0203323476,0.522129536 +0.463946968,0.798734367,-0.463946939,0.00126447179,0.426476508,0.471658498,0.408029526,-0.689366579,0.0205614045,0.656405866 +0.708901227,0.799922943,-0.708901286,0.00409725541,0.27123636,0.220879674,-1.49180806,1.15889621,0.0212999135,1.00306964 +0.515816331,0.800512373,-0.515816331,0.000983334845,0.333189875,0.345234662,-0.372380167,-0.00943301991,0.020885,0.729765594 +-0.474188745,0.800828278,0.474188775,0.000369738118,0.406476676,0.437843382,0.393456519,-0.553747535,0.0206189658,0.670691788 +0.275446951,0.80093205,-0.275446951,0.000961092243,0.41228649,0.423257262,1.07089913,-0.0107550323,0.0199604202,0.389714092 +-0.207083985,0.800958872,0.207083985,0.00172410579,0.494088411,0.434061855,0.725962698,0.0932375193,0.0197165832,0.293626904 +1.15882444,0.80128026,-1.15882444,0.00018807911,0.177390903,0.150232211,0.130072102,0.174930677,0.0215321071,1.63889253 +-0.927733064,0.801319003,0.927733123,0.00278457417,0.233252823,0.16172865,0.389715701,0.51931417,0.021380838,1.31254077 +0.455750167,0.801415443,-0.455750167,0.000240711335,0.443057567,0.495246202,0.482223809,-0.794118047,0.0204981137,0.645018578 +-0.47167173,0.801508963,0.47167173,0.000106665058,0.411235541,0.444826216,0.415156662,-0.583818495,0.0206042975,0.667150199 +0.694199622,0.801579177,-0.694199622,0.000645518652,0.272143066,0.22574091,-1.63296723,1.19908392,0.0212882534,0.982583106 +-0.509266615,0.801637173,0.509266615,0.00152420695,0.3584387,0.373350441,-0.119146675,-0.0769143924,0.0208214298,0.720591187 +-0.435752958,0.801674306,0.435752928,0.000245929346,0.479621828,0.539926648,0.632612348,-0.996190429,0.0204049274,0.616647005 +-1.11420536,0.802031398,1.11420536,0.000317084225,0.160463288,0.124223754,0.206138879,-0.664975345,0.0216120686,1.57581091 +-1.08201981,0.802459359,1.08201981,0.000916165242,0.151454449,0.110037655,0.7522012,-0.534866691,0.0215015579,1.53031373 +0.123282604,0.803621233,-0.123282611,0.00131801807,0.65822196,0.448193997,0.481923997,0.144311979,0.0196572822,0.176956281 +-0.4721784,0.803706765,0.4721784,0.00056135963,0.40747416,0.439431757,0.394601375,-0.553770483,0.0206070952,0.667892396 +0.447690964,0.803894043,-0.447690964,0.000725504942,0.455811501,0.511924207,0.50034982,-0.857091665,0.0204613954,0.633325636 +-1.16543102,0.804488838,1.16543102,0.000145546699,0.164979309,0.146657661,0.169492826,0.288544923,0.0218548048,1.64816844 +-1.16544461,0.804492354,1.16544461,4.87040737e-08,0.164982468,0.14666684,0.169537395,0.28881976,0.0218548514,1.64818776 +-1.16545725,0.804508388,1.16545725,0.000101349586,0.165007532,0.1467226,0.169914529,0.289001465,0.0218548011,1.64820564 +-0.479585648,0.805186927,0.479585618,0.000603235676,0.397815019,0.426789969,0.276025593,-0.467213124,0.020644078,0.67827028 +-0.380623311,0.805272937,0.380623341,0.000873499608,0.492707849,0.529039741,0.656477153,-0.677000403,0.0203454923,0.538508534 +0.261874199,0.805402398,-0.261874199,0.000947360648,0.416916072,0.423129529,1.06463218,0.00729195261,0.0198979694,0.37099731 +1.19216228,0.805839777,-1.19216228,0.000678441778,0.118465394,0.0784226283,1.01033306,0.360051543,0.0215211529,1.68616772 +0.421388566,0.805866063,-0.421388566,0.000667075277,0.499098957,0.566949904,0.574167728,-1.04758644,0.0203488301,0.596186221 +1.1068995,0.806498826,-1.1068995,0.000292999175,0.162414551,0.127256662,0.30859527,-0.812447548,0.0214620512,1.56546605 +0.637325108,0.806502283,-0.637325108,0.00158105278,0.280795842,0.258455008,-1.72233355,1.00731075,0.0212094747,0.901462555 +0.559886336,0.806656659,-0.559886336,0.000401244179,0.306590229,0.304554731,-1.087852,0.42813462,0.0210514553,0.792424083 +-0.570853353,0.807033181,0.570853353,0.00304641551,0.302559018,0.29820323,-1.15664375,0.527670979,0.0209928751,0.808050036 +0.408878922,0.807111144,-0.408878922,0.000892717391,0.506820083,0.570271969,0.582046032,-1.02411103,0.0203224793,0.578566313 +0.808693886,0.807286143,-0.808693886,0.00626415899,0.261132181,0.191008613,-0.687915802,1.04959047,0.0213470552,1.14510512 +-0.427294791,0.807605386,0.427294791,0.000614181918,0.480570763,0.536160409,0.612807512,-0.959339023,0.0203840863,0.60449791 +0.931239367,0.807767868,-0.931239367,0.00274291006,0.232287467,0.165340707,0.389369786,0.531767666,0.0214580949,1.31742096 +-1.10211444,0.808531344,1.10211444,0.000240936934,0.162227392,0.127109542,0.351027787,-0.849106491,0.0215184689,1.55878282 +1.04088426,0.808795691,-1.04088426,0.000938234443,0.182653144,0.13291423,0.965096891,-0.223340586,0.0214296822,1.47206545 +-0.436068535,0.809015036,0.436068535,0.000579198473,0.46968776,0.525008202,0.572342098,-0.9117046,0.0204066243,0.617190182 +1.04550874,0.809058368,-1.04550874,0.000601894339,0.180196986,0.130898416,0.969153285,-0.255457401,0.0214293562,1.47861028 +0.954243422,0.809247136,-0.954243422,0.00108112476,0.224050581,0.159604058,0.563916564,0.395964384,0.0214510877,1.35029173 +-0.47396639,0.809969604,0.47396639,0.00066273968,0.402616858,0.43552801,0.331635416,-0.482536197,0.0206164271,0.670336366 +0.39054361,0.811122537,-0.39054358,0.00108295376,0.499927163,0.549687266,0.633270741,-0.865708411,0.0203073733,0.553627789 +0.662229598,0.8112275,-0.662229657,0.00165767572,0.278622359,0.249380052,-1.76152134,1.14623475,0.0212356821,0.936600208 +-0.978130579,0.811546683,0.978130579,0.00136046612,0.216235369,0.150829896,0.735164165,0.206793368,0.0214259513,1.38374865 +-0.227095887,0.811876297,0.227095887,0.00123016047,0.462863564,0.425923288,0.835551798,0.0726516843,0.0197350588,0.322578251 +-0.839994133,0.812570095,0.839994133,0.00416839728,0.251479656,0.179146841,-0.36328423,0.955183625,0.0212386139,1.18887079 +-1.04069996,0.813034177,1.04069996,0.00190146046,0.182335168,0.129027873,0.971182108,-0.233140886,0.0214508325,1.4719404 +-0.302904308,0.813347995,0.302904338,0.00101610529,0.408434868,0.428134531,1.11335647,-0.120417602,0.0201035775,0.428586721 +0.565968454,0.813634455,-0.565968454,0.00211452856,0.305914491,0.304381758,-1.19919276,0.515556276,0.0210568067,0.800830126 +1.04295921,0.814028025,-1.04295921,0.00110275042,0.180688918,0.131943405,0.998300552,-0.246151134,0.0214202721,1.47500813 +1.18565154,0.81412673,-1.18565154,0.000395103998,0.136566266,0.101454139,0.872864246,0.562040329,0.0215127878,1.67695928 +1.09626961,0.814774096,-1.09626961,0.00033720088,0.163959503,0.133140251,0.496811569,-0.942688525,0.0214292724,1.5505079 +-0.963849247,0.814804494,0.963849247,0.00145739771,0.221897855,0.155031279,0.681934059,0.29450801,0.0214143731,1.36360538 +-0.405969501,0.815030456,0.405969501,0.000708394567,0.484968752,0.530504823,0.582912743,-0.869864404,0.0203631092,0.575175881 +-0.310837001,0.815044761,0.31083703,0.000962047372,0.419221759,0.441463888,1.09431624,-0.157645747,0.0201506112,0.439773053 +0.609458268,0.81753099,-0.609458268,0.00122650096,0.292889118,0.280731469,-1.53487539,0.847783148,0.021127725,0.861963093 +0.262608767,0.817548573,-0.262608767,0.000584876572,0.424016833,0.432921648,1.08475268,-0.00679572998,0.0199010689,0.372204661 +0.495679677,0.817614198,-0.495679677,0.0014756273,0.366188824,0.394567907,-0.159082115,-0.144787475,0.0207489543,0.701760173 +-0.515833139,0.818495274,0.515833139,0.00041126943,0.338117212,0.348803878,-0.386179507,0.0450953059,0.0208345503,0.730324388 +0.104611814,0.818503499,-0.104611814,0.00260761171,0.694622159,0.444698364,0.484805286,0.130518317,0.0196516588,0.149070337 +0.552736282,0.818775535,-0.552736282,0.00132103625,0.313878059,0.318490148,-1.05844927,0.42696774,0.0210138708,0.781897724 +-0.65931803,0.819358706,0.65931797,0.00324436603,0.271962196,0.246426344,-1.77026296,1.22657573,0.0211044718,0.932702661 +-0.0507731773,0.820572793,0.0507731773,0.00422951207,0.74895978,0.417622179,0.485550255,0.0756945238,0.0196472704,0.0830715448 +-1.09503293,0.820870757,1.09503305,0.000311739743,0.173293799,0.142106488,0.560726762,-0.822369456,0.0214405656,1.5487175 +1.18022561,0.821035743,-1.18022561,0.000160342839,0.203581244,0.210802481,0.625036955,0.61790812,0.0215077195,1.66928494 +-0.307191908,0.821534693,0.307191908,0.000717673393,0.412315398,0.434981912,1.13402212,-0.147661105,0.0201301593,0.434733719 +-0.851669431,0.821565151,0.851669431,0.00296929898,0.251519531,0.178461716,-0.245990306,0.932743251,0.02123194,1.20522392 +0.644151747,0.821845055,-0.644151747,0.000167558755,0.282484859,0.261801511,-1.83363807,1.13189304,0.0211879872,0.911435187 +-0.758766115,0.82197535,0.758766115,0.00121366931,0.259541243,0.198997602,-1.1844492,1.25870705,0.0211455356,1.07439458 +0.276307881,0.822167277,-0.276307881,0.000905306544,0.422654331,0.438658714,1.11690843,-0.0541188642,0.0199638531,0.390983075 +0.639040112,0.822267175,-0.639040112,0.000387829961,0.284002364,0.265014768,-1.80121803,1.09500456,0.0211753342,0.9041453 +1.20437205,0.822301149,-1.20437205,0.000306828268,0.096199818,0.0643980578,1.2871139,0.327355921,0.0215007216,1.70339775 +1.01533055,0.822410703,-1.01533055,0.000544395763,0.195599943,0.141810149,0.950730264,-0.0300002396,0.0214130674,1.43589604 +-0.168853104,0.822659016,0.168853104,0.00335150072,0.572565854,0.444798619,0.606183648,0.131938115,0.0196644831,0.241629303 +-1.22865987,0.823221326,1.22865987,0.000163786492,0.0325640179,0.0329002663,1.19677508,-0.0136528928,0.0217112079,1.737813 +-1.22221863,0.823640466,1.22221875,0.000357331184,0.0423192978,0.0284892805,1.26439703,0.0626769364,0.0217062812,1.72870231 +-0.221430555,0.824005246,0.221430555,0.00182128069,0.479589075,0.43445912,0.833570004,0.0856208056,0.0197238792,0.314691067 +-1.21448779,0.82414341,1.21448779,0.000325390283,0.0725150853,0.0470057987,1.28348255,0.232799411,0.0217033494,1.7177676 +0.999504268,0.824245334,-0.999504209,0.000999949523,0.203908592,0.147212848,0.911541522,0.0965723321,0.0214132983,1.41353977 +1.00177824,0.825051785,-1.00177824,0.000529411831,0.203048706,0.146560207,0.92298615,0.0830539167,0.0214113444,1.41675591 +-1.02204108,0.825223088,1.0220412,0.00113862148,0.192332223,0.135603219,0.971193016,-0.0920746997,0.0214272365,1.4455564 +0.00453816634,0.825362027,-0.00453816541,0.00339894602,0.772025824,0.415266544,0.554705083,-0.023242468,0.0196472593,0.0205675643 +0.440828562,0.825707555,-0.440828532,0.00088835822,0.432593197,0.477022082,0.47378248,-0.632397473,0.0204421114,0.623562694 +0.264539719,0.825855911,-0.264539719,0.000765111588,0.425911248,0.436220527,1.1183691,-0.0130113447,0.0199083649,0.375025809 +-0.800547838,0.826473832,0.800547838,0.00351700187,0.256164014,0.190496594,-0.763734162,1.12321854,0.0211712196,1.13229656 +1.06666243,0.826720715,-1.06666231,0.000696935691,0.15549393,0.123732641,1.08704615,-0.597143054,0.0213949066,1.50852609 +1.00042939,0.82693553,-1.00042939,0.000274558697,0.203458086,0.147011533,0.926499903,0.0866726339,0.0214087423,1.41486788 +-1.2074151,0.827126563,1.2074151,0.000287846138,0.0928495079,0.063835077,1.22218251,0.324029386,0.021704128,1.70772386 +1.00196445,0.827354014,-1.00196433,4.82111063e-05,0.202648759,0.146487311,0.934280992,0.0753111392,0.0214076973,1.41701913 +1.19846511,0.827983141,-1.19846511,0.000254679733,0.114127204,0.0837696418,1.29397714,0.402823776,0.0214935932,1.69505215 +-0.532996833,0.828028679,0.532996833,0.00193377363,0.327025414,0.336290449,-0.718700409,0.274473429,0.0208804272,0.754140377 +0.704273582,0.828929722,-0.704273582,0.00295395707,0.273767471,0.226843402,-1.57224965,1.26418436,0.0212003458,0.996195853 +1.00067961,0.829301834,-1.00067973,0.00124635489,0.203188792,0.146843329,0.936488569,0.0838120282,0.0214047711,1.41521323 +1.22864938,0.829410076,-1.22864938,0.000180071147,0.0336428955,0.0349504389,1.40770841,-0.0147021376,0.0214935895,1.73779333 +0.195041537,0.829617262,-0.195041537,0.00316854124,0.533685625,0.460191697,0.772775054,0.112616092,0.0196964834,0.277990401 +1.22263908,0.829761982,-1.22263908,0.00039364869,0.0420373902,0.0288737509,1.49956918,0.061762847,0.0214925688,1.72929239 +-1.06408226,0.829876184,1.06408226,0.0012598302,0.152855352,0.117707081,1.06214929,-0.543369949,0.0213931706,1.50501275 +-0.751538694,0.829948843,0.751538694,0.00194935594,0.261029422,0.20263876,-1.25171375,1.29795957,0.021115981,1.06394207 +1.21542645,0.830184221,-1.21542645,0.000440426578,0.0711535662,0.0469275042,1.50558758,0.246026069,0.0214911662,1.71909094 +0.417504728,0.830241919,-0.417504728,0.000720922952,0.466464818,0.518597662,0.533247292,-0.765432179,0.020343611,0.590619564 +-1.19909298,0.830544829,1.19909298,0.000698999967,0.116311185,0.0836955532,1.16581249,0.396432698,0.0217160191,1.69590735 +0.241374582,0.83054769,-0.241374582,0.00163549406,0.463891745,0.453321755,1.00139177,0.0357325301,0.0198280346,0.341608226 +1.0649128,0.830734134,-1.0649128,0.000798693334,0.155961499,0.124993347,1.12878704,-0.582767427,0.0213867053,1.50605404 +-0.304116219,0.830937982,0.304116219,0.000929261209,0.415098667,0.437634557,1.17012537,-0.137722328,0.020099666,0.430274397 +0.394607455,0.831689358,-0.394607484,0.000436889008,0.467290938,0.51435703,0.740934312,-0.723741531,0.0203122105,0.558183432 +-0.640043914,0.831743896,0.640043974,0.00217077346,0.275758982,0.256124824,-1.82987952,1.22542989,0.0210594609,0.905765176 +-0.281122506,0.831768751,0.281122535,0.000623098633,0.422617912,0.435872644,1.1278013,-0.0889853016,0.019958837,0.397585541 +-0.512003124,0.831971049,0.512003183,0.00160254748,0.340688229,0.355217785,-0.415741622,0.0894881785,0.0208044462,0.724553645 +-0.981893718,0.83205843,0.981893659,0.00201780628,0.212886155,0.149621949,0.855264664,0.178141937,0.0213944186,1.3887713 +0.127704859,0.832146227,-0.127704844,0.00253816741,0.67081672,0.455946088,0.525105536,0.149565205,0.019652769,0.181323558 +1.19276881,0.832847893,-1.19276881,0.000203675096,0.135565743,0.113106236,1.19520998,0.589444637,0.021488376,1.68699574 +-0.259196818,0.833100259,0.259196818,0.000768363534,0.434873521,0.435286492,1.0703882,-0.0322563127,0.0198384989,0.366616607 +-0.428822458,0.833148599,0.428822458,0.000709710759,0.439533293,0.476681828,0.453894854,-0.620595872,0.0204021279,0.607018113 +-0.953945756,0.833258033,0.953945756,0.00189288228,0.225682363,0.157842517,0.672874868,0.348403096,0.0213623177,1.3493222 +0.314750671,0.833328366,-0.314750671,0.00197928655,0.418870091,0.449934334,1.18181264,-0.178299829,0.0201334525,0.446121871 +0.644523501,0.833731174,-0.644523501,0.00271089515,0.283017695,0.26681155,-1.88573623,1.20386004,0.021157667,0.911703169 +-0.266843706,0.83398217,0.266843706,0.000640260521,0.425961971,0.432944328,1.11608315,-0.0520559326,0.0198670495,0.377514392 +-1.19378805,0.834591866,1.19378817,0.000375546806,0.131240189,0.106886022,1.09226918,0.573296666,0.0217207205,1.6884042 +-0.35683769,0.83520627,0.35683769,0.000485693017,0.445962936,0.473849267,0.952718735,-0.41804713,0.0203020629,0.504658699 +-0.879733801,0.835444927,0.879733801,0.00246812939,0.245688677,0.173643604,0.0479419827,0.777659714,0.021242369,1.24438012 +-0.345281035,0.83561641,0.345281035,0.000456320908,0.433269888,0.459556252,1.01689065,-0.341863364,0.0202627573,0.488308847 +-0.406387031,0.835808873,0.406387031,0.00123693026,0.451060116,0.486124873,0.642765284,-0.657488227,0.0203544572,0.575127125 +-1.00173819,0.836265922,1.00173819,0.00113340269,0.20314756,0.14347434,0.984051347,0.045276206,0.0214007013,1.41713631 +0.340483189,0.836411357,-0.340483189,0.00113756943,0.432511777,0.464242607,1.06297481,-0.327734947,0.0202197973,0.483711869 +0.942583799,0.836793721,-0.942583799,0.00258373003,0.228194386,0.162381366,0.57764411,0.430996984,0.021398453,1.33371377 +1.18802238,0.836900651,-1.18802238,8.6694803e-05,0.232973546,0.276002944,1.02021098,0.627288461,0.0214851443,1.68028283 +-0.267716974,0.836934328,0.267716974,2.76429673e-05,0.427947909,0.43588078,1.12442303,-0.0590379983,0.0198724531,0.378836364 +1.20867622,0.837106407,-1.20867622,0.000225693526,0.0918373764,0.0676800534,1.51879084,0.333655953,0.0214824863,1.70955551 +1.00496387,0.837264419,-1.00496399,0.000960377627,0.199508801,0.144972801,0.993373096,0.0636110604,0.0213895887,1.42123771 +-0.35521403,0.837787807,0.355214,0.000389151188,0.440521806,0.467738122,0.980703294,-0.392355472,0.0202990789,0.502395511 +-0.127076179,0.837809086,0.127076179,0.00232197274,0.659990668,0.452234,0.518298388,0.114918031,0.019646408,0.180802673 +-1.18936706,0.837966025,1.18936718,0.00016268644,0.220384672,0.256266683,0.934725761,0.599919915,0.0217197165,1.6821512 +-0.265547693,0.838010788,0.265547663,4.39115174e-05,0.429038525,0.435955524,1.12185907,-0.0556402393,0.0198598541,0.375965476 +0.254684985,0.838421702,-0.254684985,0.000800090667,0.444912821,0.447751135,1.11041689,0.0142142065,0.0198674258,0.360611916 +0.959538043,0.83896488,-0.959538102,0.00177909946,0.219766706,0.157031417,0.703336,0.34606424,0.0214005746,1.35763824 +1.08238673,0.839251399,-1.08238661,0.000238698252,0.193648338,0.173242241,0.973837137,-0.892643273,0.0213664677,1.53076339 +-0.355582178,0.839754522,0.355582178,7.22222467e-06,0.438968718,0.466303498,0.986132622,-0.394998252,0.0202982612,0.502982736 +-0.358557254,0.840448916,0.358557254,0.000703816011,0.438486308,0.465843648,0.967437863,-0.401475251,0.0203007236,0.507100403 +-0.354491323,0.84125334,0.354491323,0.000608089438,0.438214362,0.465671867,0.999239326,-0.387101173,0.0202919077,0.501373112 +-0.267324626,0.841319561,0.267324626,0.00068863068,0.429000944,0.437183708,1.13920069,-0.0597018674,0.0198640116,0.378261447 +-1.08107233,0.841820955,1.08107233,0.00042283925,0.189103395,0.164765745,0.92484653,-0.817840993,0.0213033687,1.52904367 +-0.356178343,0.841947794,0.356178343,0.000683649792,0.437887192,0.465460658,0.988236606,-0.385533243,0.0202931464,0.503762603 +1.08111548,0.842291474,-1.08111548,0.000262841,0.198350444,0.178828746,1.02098536,-0.873109698,0.0213587731,1.52896786 +0.518517852,0.842382669,-0.518517792,0.00174071046,0.339374959,0.362239659,-0.716877103,0.244348601,0.0208494272,0.733879805 +0.0778217316,0.842443705,-0.0778217316,0.00114610931,0.735447168,0.434733003,0.502863705,0.0986108333,0.0196449887,0.11826621 +0.379524142,0.84454,-0.379524112,0.00079279975,0.446413159,0.480368376,0.836051702,-0.514612019,0.0203004424,0.537235498 +0.623007357,0.844660759,-0.623007357,0.00208811322,0.292103469,0.290998876,-1.82726252,1.14112699,0.0211348943,0.881152153 +-0.633162856,0.844777346,0.633162856,0.0005273727,0.27997157,0.264386237,-1.8457824,1.24291658,0.021016093,0.896251202 +-0.614447117,0.845249534,0.614447176,0.00240754196,0.289012671,0.279688209,-1.67454433,1.08845735,0.0209888313,0.869247675 +0.205908611,0.84573102,-0.205908611,0.00178525492,0.524648845,0.467554122,0.850676417,0.103725627,0.0197093822,0.29306978 +-0.0976927876,0.846422195,0.0976927951,0.00195467076,0.709055841,0.446061641,0.497769177,0.0826348811,0.0196404103,0.141391397 +-0.399212271,0.84678638,0.399212271,0.000385076302,0.436778784,0.465713054,0.694780648,-0.530283332,0.0203445535,0.565676987 +0.471241057,0.846888006,-0.471241057,0.000760422728,0.383986771,0.420835078,-0.0493558794,-0.19771184,0.0205783267,0.666452885 +-0.639698267,0.847051322,0.639698267,0.000149565516,0.277961135,0.261042178,-1.90049529,1.30621231,0.0210251026,0.905818403 +-0.759951532,0.847606599,0.759951532,0.00340603595,0.262209237,0.201911658,-1.13475478,1.29245925,0.0210748389,1.07523286 +0.370254219,0.848078728,-0.370254219,0.00127354939,0.435132265,0.467297554,0.911470532,-0.429583251,0.0202787109,0.524080992 +-0.561324775,0.848079085,0.561324775,0.00246963091,0.313744605,0.32786116,-1.29025364,0.709263504,0.0209541358,0.795228362 +-0.448836029,0.848889351,0.448836029,0.00108445249,0.395328522,0.424231917,0.286399662,-0.3483302,0.0204605348,0.636123836 +0.38665849,0.84936142,-0.38665849,0.000470030645,0.43799147,0.471699297,0.795102477,-0.495445579,0.0203107968,0.547188759 +0.190726995,0.849760413,-0.190726995,0.00141080492,0.55480957,0.474612206,0.794839799,0.119193569,0.0196891855,0.273224473 +-0.736044645,0.850383282,0.736044645,0.00288412697,0.262744099,0.217924222,-1.4154644,1.40521312,0.021054931,1.04138136 +0.297117829,0.850543201,-0.297117829,0.00131080381,0.428236574,0.455471128,1.25278926,-0.117636368,0.0200504232,0.421242028 +-0.261216372,0.850599349,0.261216372,0.000803785108,0.440197945,0.441838264,1.13424861,-0.0362531506,0.0198359638,0.369464904 +-0.647709608,0.850917935,0.647709608,0.00176671648,0.276960254,0.257989883,-1.87196398,1.33617711,0.0210173409,0.91692245 +-0.837387681,0.852495492,0.837387681,0.00466283644,0.255355537,0.183058158,-0.317364752,0.995814204,0.0211308375,1.18475676 +0.472647727,0.852846146,-0.472647756,5.27494331e-06,0.377585381,0.413162798,-0.115886375,-0.127015412,0.0205856897,0.66850692 +0.418782651,0.85372752,-0.418782651,0.00167672348,0.425809324,0.462405324,0.497043133,-0.474271119,0.0203583911,0.592794716 +0.474036962,0.853783011,-0.474036962,5.76559341e-06,0.373995781,0.40840584,-0.136950776,-0.102112174,0.0205928981,0.670484781 +-1.2287724,0.853850186,1.2287724,7.82782736e-05,0.0314026475,0.0334878676,1.43383753,-0.0164340828,0.0215527862,1.73781383 +-1.22367847,0.854043961,1.22367847,0.000171425389,0.0380815342,0.026637692,1.54508984,0.0402451679,0.0215424299,1.73060966 +0.475688487,0.854226947,-0.475688517,0.000918170379,0.372470587,0.40659672,-0.163865492,-0.0821349472,0.0206018072,0.672768891 +-1.21756685,0.854276299,1.21756685,0.000154466397,0.068766281,0.0481895953,1.63053143,0.210384786,0.0215258598,1.72196603 +-1.21426797,0.854378343,1.21426797,0.000245672418,0.0780416802,0.0556922816,1.58879542,0.25222823,0.0215334911,1.71728826 +0.471282065,0.854393721,-0.471282065,0.000512273633,0.376677752,0.411394924,-0.111424752,-0.115546577,0.020581102,0.666566372 +0.473050088,0.854610801,-0.473050088,1.00251436e-05,0.374816746,0.409445763,-0.130751491,-0.103123613,0.0205874871,0.669106245 +0.473995745,0.855790377,-0.473995775,1.91743457e-05,0.37362209,0.4088175,-0.149485573,-0.0834118798,0.0205911901,0.670444012 +1.20412683,0.856173873,-1.20412695,0.000277107698,0.108413383,0.087464489,1.67804682,0.375272453,0.0214583669,1.70306206 +1.19943976,0.857650101,-1.19943976,0.000153901914,0.135886684,0.128083497,1.61866117,0.49932766,0.0214560498,1.69643271 +-0.928344965,0.857940912,0.928344965,0.00310010789,0.23464331,0.164177164,0.571444631,0.503794432,0.021265883,1.31378341 +1.19553399,0.85888052,-1.19553399,6.59141224e-05,0.289082766,0.383937865,1.51222897,0.497732282,0.0214542504,1.69090867 +-1.20335197,0.858932555,1.20335197,0.000246231444,0.107569396,0.0846131891,1.50207448,0.325820208,0.0214746688,1.70195127 +0.0781896561,0.8599388,-0.0781896636,0.000832687714,0.746395767,0.436506748,0.529214501,0.101717129,0.0196409002,0.118229195 +-0.996727467,0.860004544,0.996727467,0.00221840176,0.203662381,0.143902093,1.05363786,0.097647652,0.0213512387,1.40990901 +1.22879183,0.860391676,-1.22879183,7.32049957e-05,0.0325539336,0.0352299884,1.66766191,-0.0176227484,0.0214550365,1.73781848 +-0.635314703,0.860409021,0.635314703,0.000916670135,0.280689359,0.272168666,-1.95223618,1.36017132,0.0209895317,0.898972034 +-1.19863677,0.860542059,1.19863677,0.000154363981,0.139202058,0.130344003,1.44327378,0.407915324,0.0214506052,1.6952827 +1.22381067,0.860545397,-1.22381067,0.000160484415,0.0385606736,0.0271307342,1.81209624,0.0374870598,0.0214542504,1.73077381 +1.21783185,0.860730112,-1.21783185,0.000132707602,0.0668582097,0.0470747314,1.86550963,0.191271111,0.0214532353,1.72231841 +-0.322096407,0.860990882,0.322096407,0.0010687582,0.4186517,0.44648239,1.25050318,-0.197464421,0.0201377217,0.457361281 +0.47546345,0.86103183,-0.47546345,0.000601800857,0.371967614,0.411322355,-0.199281946,-0.0215471908,0.0206008926,0.672431469 +-0.114724979,0.861672163,0.114724979,0.000250049139,0.693053246,0.455664486,0.533051789,0.103725515,0.0196371917,0.165986151 +-1.19470763,0.861883163,1.19470763,6.65903499e-05,0.293537617,0.382112294,1.34308469,0.400529385,0.0214221291,1.68972564 +0.0600440055,0.861956298,-0.0600440092,0.00329891453,0.763706028,0.424474865,0.53645575,0.0967342407,0.0196392443,0.0973240137 +0.533938289,0.863077164,-0.533938289,0.00132411742,0.330625683,0.364888787,-1.08595181,0.572584271,0.0209242795,0.756108403 +0.201188654,0.863224685,-0.201188654,0.00134552154,0.54349941,0.47677353,0.873067141,0.113190502,0.0196958128,0.286439598 +1.21551847,0.863366842,-1.21551847,0.000161748685,0.0739716589,0.0539376624,1.87295461,0.22111553,0.0214499328,1.71904922 +-0.398900807,0.863493145,0.398900807,0.00134251174,0.423413873,0.454095036,0.707115889,-0.391039908,0.0203192141,0.565217853 +-0.106735714,0.863819718,0.106735714,0.000150262291,0.704356611,0.452573061,0.525904596,0.101453111,0.0196360406,0.15763624 +-0.486017555,0.864174366,0.486017585,0.00162692694,0.357435644,0.389600873,-0.227389395,0.105495587,0.0206767414,0.687959194 +-0.411143124,0.86421746,0.411143124,0.000848280732,0.415996492,0.449252069,0.569238245,-0.332936317,0.0203471612,0.582100272 +0.223038271,0.864605188,-0.223038271,0.00111051172,0.512333155,0.477801681,1.0003686,0.0740134791,0.0197617728,0.316443563 +0.467233241,0.864691019,-0.467233241,0.000730966334,0.375633866,0.414605528,-0.0853381082,-0.0453087538,0.0205526464,0.660781741 +0.380729735,0.864755988,-0.380729735,0.00113575684,0.430749774,0.46570462,0.876359582,-0.370645911,0.0202874728,0.538664103 +-1.22877264,0.864871264,1.22877264,7.04370686e-05,0.0311184563,0.0335547887,1.50985026,-0.0195263419,0.0214922782,1.73781002 +-0.466170907,0.864897013,0.466170937,0.00109403103,0.374848783,0.4092094,0.00357265025,-0.0576084405,0.0205597337,0.659770191 +-1.22396469,0.864982367,1.22396469,0.000154579931,0.0368189923,0.0259036385,1.63933778,0.0288500562,0.0214813575,1.73101008 +-1.21819425,0.865115583,1.21819425,0.00013065926,0.0661675557,0.0468243547,1.73564136,0.182628527,0.0214623008,1.72284901 +-1.21534574,0.865632057,1.21534574,0.000162705401,0.075949654,0.0558928512,1.70227098,0.210266948,0.0214424226,1.71881092 +-0.648312449,0.86566627,0.648312449,0.00355614396,0.276298344,0.260810167,-1.92953706,1.42321503,0.0209781006,0.917241991 +0.504725754,0.868072271,-0.504725754,0.00123343524,0.349558413,0.393324137,-0.686694324,0.327431321,0.020780636,0.714892983 +-0.441166818,0.868656278,0.441166818,0.00145107019,0.391564935,0.426472217,0.307241142,-0.196120426,0.0204061531,0.624836266 +-1.03155279,0.869192123,1.03155279,0.000949172128,0.181823015,0.131419048,1.20422351,-0.0633466914,0.0213272572,1.4589082 +1.22878146,0.869511366,-1.22878158,7.72350322e-05,0.0322164148,0.0351479612,1.73685253,-0.0197567474,0.0214431826,1.73783064 +-0.871996164,0.869590521,0.871996164,0.00299872085,0.247532696,0.174526632,0.0811790973,0.797098875,0.0211375281,1.23344564 +1.22400701,0.869639874,-1.22400701,0.000169561303,0.0377813317,0.0266623963,1.89747953,0.0282417331,0.021442445,1.73107827 +1.21827757,0.86979413,-1.21827745,0.000149216357,0.0655832961,0.0467641912,1.96354163,0.166187108,0.021441482,1.72297525 +0.561102986,0.869825125,-0.561102986,0.00115392823,0.31867981,0.345725179,-1.46231472,0.849231005,0.0209932588,0.793827295 +-0.613480568,0.870354354,0.613480568,0.00133330852,0.292454034,0.302968055,-1.84790277,1.27617061,0.0209757909,0.867797613 +0.174630433,0.87058866,-0.174630433,0.00183475565,0.603683352,0.489023328,0.748457313,0.133804321,0.0196733195,0.247820199 +-1.05737638,0.87095964,1.05737627,0.000936593686,0.164509237,0.132308826,1.28751278,-0.270562679,0.0212753322,1.49543095 +-1.07602715,0.872632325,1.07602715,0.000312557415,0.243991539,0.221477255,1.10606313,-0.457369655,0.0211848598,1.52180827 +0.854097128,0.872832596,-0.854097128,0.00308955368,0.255282223,0.182087287,-0.0612175465,0.799168825,0.0212096293,1.20819092 +1.21497273,0.87301451,-1.21497285,0.00015699942,0.076625444,0.0582151376,1.96412051,0.168153882,0.021437047,1.71826041 +0.405948192,0.873271763,-0.405948222,0.0009285126,0.418205798,0.455813169,0.650617957,-0.313598812,0.0203202702,0.574432433 +1.05538476,0.873716354,-1.05538476,0.000986756058,0.167242289,0.138890222,1.40224969,-0.271486282,0.021304626,1.49264681 +-0.0508897901,0.873782396,0.0508897901,0.00286040339,0.775098622,0.419632524,0.574595451,0.112040311,0.0196339265,0.0857202858 +-0.100453697,0.874132931,0.100453697,0.00191416976,0.719637692,0.45135501,0.542354107,0.100945741,0.0196334384,0.14605698 +1.02500987,0.87440145,-1.02500987,0.00130740693,0.182466939,0.135591626,1.25117886,-0.0470413491,0.0213181209,1.44967818 +-0.116144761,0.874981999,0.116144754,0.00194215251,0.701613724,0.456188083,0.545652449,0.107767403,0.019633621,0.166052371 +1.07492912,0.875690818,-1.07492912,0.000316221587,0.263910949,0.246360779,1.27330542,-0.470756233,0.0212868303,1.52028739 +-1.02059245,0.876363575,1.02059245,0.00138666912,0.187694073,0.135394648,1.20428395,0.0195396785,0.0213133674,1.44341016 +0.581580281,0.876382589,-0.581580281,0.00227765902,0.308985174,0.333876431,-1.76427972,1.084216,0.0210469365,0.823114693 +0.880089402,0.876579285,-0.880089343,0.00263623986,0.250053644,0.177209377,0.169841319,0.70892936,0.0212217476,1.24494565 +0.32858783,0.876962423,-0.32858783,0.00170199841,0.424378395,0.459173173,1.30657995,-0.164611027,0.0201551057,0.465812325 +1.20527601,0.878558159,-1.20527601,0.000252520607,0.107115939,0.0902496651,1.91555047,0.228920504,0.0214287136,1.70462465 +1.20084941,0.878634095,-1.20084941,0.000126622428,0.161505759,0.165163189,1.84454894,0.260735363,0.021428002,1.69836426 +1.19716072,0.878697395,-1.19716072,5.50672339e-05,0.395827711,0.550059795,1.76206613,0.203227848,0.0214271247,1.69314742 +0.937155843,0.879130006,-0.937155843,0.00346311205,0.228542089,0.162499249,0.697304189,0.403705478,0.0213104095,1.32758927 +-0.0137275606,0.879803002,0.0137275588,0.0025880374,0.796936274,0.412040681,0.63800621,0.014559187,0.0196329039,0.0282595772 +1.02354169,0.881334782,-1.02354169,0.000508378609,0.182627201,0.135760605,1.27473068,-0.0253453739,0.0213068612,1.44770265 +-1.19767547,0.881459475,1.19767547,8.07278702e-05,0.370969534,0.5060516,1.61105967,0.200739041,0.0212056413,1.69391763 +-1.20131278,0.881569862,1.20131266,0.000187198471,0.154274598,0.15447998,1.68034852,0.239466816,0.021248905,1.69906211 +-1.20567763,0.881702304,1.20567751,0.00032089054,0.102949016,0.0842283294,1.73336172,0.239764333,0.0212906897,1.70523524 +0.788663268,0.882792592,-0.788663268,0.00632528355,0.269991159,0.201422408,-0.741699457,1.14032114,0.0210606921,1.11755919 +-0.533863068,0.883502483,0.533863068,0.00121976493,0.328777671,0.371361971,-1.08048046,0.733361423,0.0209126268,0.755275071 +-0.333080471,0.884607852,0.333080471,0.00215376122,0.419246793,0.449614555,1.28189051,-0.1852974,0.0201449245,0.472780049 +1.07498956,0.884836316,-1.07498956,0.000350781047,0.278317451,0.25952366,1.25081348,-0.349929214,0.021270331,1.52036774 +-1.07452214,0.885017335,1.07452202,0.000170604268,0.266794533,0.245130599,1.15619123,-0.305313319,0.0211439822,1.51972163 +1.0553273,0.885940731,-1.0553273,0.00110813929,0.172862291,0.143804163,1.41436791,-0.177266106,0.0212842096,1.49256027 +-0.307907254,0.886548758,0.307907224,0.00126309646,0.427336454,0.453674138,1.35596919,-0.151269764,0.0200264361,0.436575443 +-0.106916904,0.887286961,0.106916904,0.00133514265,0.718054831,0.452332199,0.514400244,0.115412459,0.0196300857,0.15394336 +-1.05540204,0.887318492,1.05540192,0.00050666614,0.169954181,0.138626307,1.36135435,-0.153824762,0.0212327354,1.49267924 +-0.238239914,0.887499452,0.238239914,0.000911071256,0.483066022,0.45503217,1.12435412,0.0472245477,0.0197327808,0.338194728 +0.000190811232,0.888516665,-0.000190812862,0.00270484271,0.801507711,0.412852675,0.64915055,-0.00518662576,0.0196310468,0.0230314434 +1.02501297,0.888961017,-1.02501297,0.00146793132,0.182385609,0.135412976,1.28387046,-0.00333957002,0.021294415,1.44967544 +0.431210488,0.889112711,-0.431210458,0.00105956092,0.397727132,0.448219746,0.282067388,-0.0560866073,0.0203727148,0.609933972 +-0.516654909,0.88931638,0.516654968,0.00118152087,0.340084344,0.388426393,-0.848362923,0.602678001,0.0208516959,0.731019318 +-1.02897894,0.89065069,1.02897894,0.000782769988,0.18130891,0.131836832,1.28776526,0.00620376039,0.0212827399,1.45530629 +0.278210044,0.891217947,-0.278210044,0.00251827738,0.444762051,0.46500501,1.39300251,-0.0424548984,0.0199497677,0.397636175 +0.560977399,0.89294529,-0.560977399,0.00124084915,0.321076512,0.361732006,-1.60185766,1.03464413,0.0209779311,0.793937802 +0.141613275,0.893016815,-0.141613275,0.00258171349,0.680264831,0.478604585,0.646257341,0.14778313,0.0196447559,0.202766836 +-0.186115712,0.893329918,0.186115697,0.00377450441,0.575702131,0.470128536,0.821928382,0.132281274,0.0196563862,0.269110858 +-0.479446411,0.8940593,0.479446411,0.00135272136,0.356228501,0.407580853,-0.313099772,0.325372249,0.0206469838,0.67841506 +-1.21197069,0.894160926,1.21197057,0.000379548612,0.0836396217,0.0640440956,1.84705305,0.135749042,0.0212930739,1.71416104 +0.308998078,0.894762576,-0.308998078,0.00174619607,0.43448621,0.465093046,1.38124847,-0.0986366048,0.0200638697,0.438167512 +-1.22866488,0.895302773,1.22866488,0.000107928558,0.0308712609,0.0336592048,1.67565906,-0.0307131261,0.0213502049,1.73780513 +-1.22394848,0.895356894,1.22394848,0.000237052183,0.0355338007,0.0247352012,1.85765088,-0.00363521744,0.0213423371,1.73113441 +-1.2182883,0.895421863,1.2182883,0.000235032901,0.0616078079,0.0435821936,1.93695378,0.0652034581,0.0213263221,1.72312868 +-1.07740116,0.895823836,1.07740128,0.000329630333,0.272132605,0.246250242,1.00927889,-0.196883395,0.0211444665,1.52376366 +-0.288412273,0.89590776,0.288412273,0.00247756881,0.433544695,0.456134945,1.40300953,-0.104168713,0.0199300498,0.41002357 +0.577369213,0.89627856,-0.577369213,0.00137301045,0.312595487,0.350518376,-1.83958864,1.19784987,0.0210376531,0.817094326 +0.694310904,0.896316528,-0.694310904,0.00293818722,0.280534565,0.256081671,-1.72344005,1.4926064,0.0209867526,0.982553661 +-0.156544641,0.896546364,0.156544641,0.00246474682,0.637515068,0.47682634,0.685548902,0.12128517,0.0196423046,0.226145223 +-0.570119083,0.896631956,0.570119083,0.0021421616,0.315503389,0.358382791,-1.70676136,1.15283406,0.0209355988,0.807280183 +0.721343338,0.897461951,-0.721343338,0.00113777677,0.277311832,0.23312217,-1.50856149,1.46751881,0.0209781732,1.02184582 +-0.254367769,0.897486687,0.254367769,0.00104635302,0.470945776,0.46039328,1.232602,0.00540373474,0.0197915509,0.36018917 +-0.241836667,0.897772431,0.241836667,0.000388256536,0.4828161,0.458604068,1.17830467,0.0426809788,0.0197391734,0.343296111 +-0.232938632,0.898011923,0.232938617,0.00185585977,0.498269886,0.463175833,1.12010264,0.0593595505,0.019722525,0.330813468 +0.332349449,0.898638487,-0.332349449,0.00100980524,0.425622225,0.463118106,1.36471105,-0.137512922,0.0201453641,0.471398532 +0.355166465,0.899236321,-0.355166465,0.00135847728,0.419191062,0.457861722,1.16373193,-0.120179206,0.0201960169,0.502868474 +1.19582295,0.899641454,-1.19582295,5.98545012e-05,0.51339376,0.700325608,1.64650619,-0.120986558,0.0214015096,1.69125152 +1.19974446,0.900796711,-1.19974446,0.000137990297,0.225699335,0.236349747,1.83024859,-0.00136351585,0.0214007292,1.69679737 +0.248342335,0.900871992,-0.248342335,0.00227843458,0.486827433,0.483353198,1.27838266,0.0372020677,0.019830972,0.353052437 +0.376890808,0.901136816,-0.376890779,0.000532106671,0.413636535,0.453485519,0.977866411,-0.110652611,0.0202505086,0.534810424 +-1.0591774,0.901596904,1.05917728,0.000986882485,0.182624847,0.147116721,1.26829529,-0.0469234735,0.0212192889,1.49799001 +-0.358946264,0.901746929,0.358946264,0.00140585238,0.411353409,0.443712384,1.1309942,-0.133664683,0.0201476105,0.509631634 +1.20445001,0.902182579,-1.20445001,0.000190130115,0.125032902,0.107373737,1.98652172,0.0556409582,0.0213990826,1.70345259 +1.21282732,0.902369976,-1.21282744,0.000233769068,0.0821389705,0.064226605,2.10928917,0.0704743266,0.021399511,1.71525192 +0.743374527,0.902943134,-0.743374586,0.00469318777,0.275584936,0.223270863,-1.24098778,1.35797727,0.0209710523,1.05209267 +0.0363480747,0.90300101,-0.0363480709,0.00231952802,0.790396035,0.421545744,0.619095206,0.0628034174,0.019629743,0.0767187253 +-0.54076606,0.903475165,0.54076606,0.000933527132,0.328167766,0.380783498,-1.30162692,0.944874942,0.0209077131,0.764959931 +-0.523532748,0.903725505,0.523532748,0.000403373066,0.335206598,0.390718102,-1.0549109,0.796437919,0.0208848026,0.741027772 +0.43732813,0.903821886,-0.43732813,0.000243967283,0.385161757,0.440473676,0.176946715,0.123419091,0.0203821901,0.61896652 +0.390529364,0.904192626,-0.390529335,0.00176406512,0.407269806,0.450355411,0.816396177,-0.0541075692,0.0202735756,0.55332613 +-0.379642904,0.904354692,0.379642904,0.00243010372,0.403606713,0.439131677,0.930259943,-0.0955375731,0.0201927237,0.539093673 +-0.42634064,0.904590249,0.42634064,0.00119083468,0.383408427,0.429198205,0.375847638,0.0667395964,0.0202952083,0.603568912 +-0.00297573814,0.904815495,0.00297573768,0.00193633337,0.806468725,0.407128215,0.610052228,0.00432837382,0.0196272284,0.0204918049 +0.218778774,0.905150712,-0.218778759,0.00156181969,0.530874193,0.494306028,1.1292901,0.0917280316,0.0197404474,0.312785625 +-0.461709857,0.905288279,0.461709857,0.00102479244,0.365408003,0.42210874,-0.140410736,0.312154442,0.0205396134,0.653661609 +1.22870207,0.905717313,-1.22870207,8.68745847e-05,0.0317454748,0.0349490941,1.91494524,-0.035171289,0.0213964451,1.73778129 +1.22373688,0.905750811,-1.22373688,0.000190773077,0.0380653851,0.0263335183,2.1064074,-0.0140911192,0.0213961527,1.73075914 +1.21777844,0.905790985,-1.21777844,0.000191803323,0.0650947168,0.0464811437,2.1522131,0.0375993066,0.0213956703,1.722332 +0.882424891,0.906210542,-0.882424891,0.00294225849,0.24912937,0.176424265,0.28316015,0.655345261,0.0211496148,1.24841666 +0.868742466,0.906887174,-0.868742526,0.000622775638,0.254377484,0.180169225,0.163254917,0.725228667,0.0211187396,1.22910357 +0.521730781,0.90755415,-0.521730781,0.00188142236,0.340799034,0.404586732,-1.20674777,0.831376791,0.0208624881,0.739742637 +-0.507109642,0.907587171,0.507109642,0.00116843765,0.341843218,0.400416553,-0.816870093,0.689384162,0.0208029356,0.717375398 +-0.237585694,0.90760231,0.237585694,0.000630337396,0.493117213,0.462584049,1.17475653,0.0633226931,0.0197249446,0.33722803 +0.0917876735,0.908095062,-0.0917876735,0.00113933266,0.759704053,0.4396891,0.572748542,0.122497901,0.0196325388,0.129895598 +0.439612418,0.908368468,-0.439612448,0.000971042959,0.382095218,0.439739078,0.129545346,0.185513958,0.02038748,0.62224108 +0.432631254,0.908583581,-0.432631224,0.00103109854,0.385847837,0.441829175,0.234256148,0.149125814,0.0203689411,0.612187982 +-0.956722021,0.908610404,0.956722021,0.00183635904,0.219344929,0.153287128,0.959267735,0.316326201,0.0211938675,1.35303187 +-0.416292608,0.909266412,0.416292608,0.000968637818,0.386374563,0.431886643,0.48604393,0.0627850667,0.0202607028,0.589780688 +-1.03405917,0.909385085,1.03405917,0.00154185051,0.18457216,0.132732883,1.2554096,0.074024193,0.0212612059,1.46246469 +0.0941176564,0.909455776,-0.0941176564,0.00176537607,0.757293761,0.442702472,0.57679677,0.124419235,0.0196326505,0.133150011 +0.170837909,0.909827352,-0.170837909,0.0010708929,0.635861993,0.492310196,0.821351349,0.174798816,0.0196615327,0.241964415 +-0.0210646503,0.909959316,0.0210646503,0.00128741132,0.802995622,0.408975244,0.59552896,0.0490842015,0.0196253862,0.037023522 +0.0923171341,0.909968078,-0.092317149,9.18427247e-07,0.759656727,0.440410107,0.574897051,0.122794881,0.0196322277,0.130944952 +0.0928704217,0.910057068,-0.0928704217,1.43088812e-06,0.759138823,0.440949351,0.575858235,0.123575673,0.0196323004,0.131504178 +0.0916426852,0.910148323,-0.0916426852,0.00102134049,0.760433197,0.439976394,0.575873792,0.121939369,0.0196321346,0.129858062 +0.851344824,0.910406828,-0.851344824,0.00446834881,0.258134753,0.185256943,-0.0106011331,0.806491613,0.0210799035,1.20448053 +-0.950241625,0.911184967,0.950241625,0.00103142962,0.222157866,0.155070305,0.925139248,0.355343938,0.0211812016,1.34387827 +0.0927289948,0.911198914,-0.0927289873,0.00121311564,0.759874105,0.440312088,0.572929144,0.12359526,0.019632021,0.131243259 +0.661891043,0.911403954,-0.661891103,0.00201370777,0.280514061,0.27644828,-2.03234029,1.6263485,0.0209734309,0.937129498 +0.493249476,0.911529481,-0.493249476,0.00155386818,0.353796571,0.42471242,-0.759445548,0.616912723,0.0207132939,0.698167324 +0.482679129,0.912669599,-0.482679158,0.00114881678,0.358546972,0.4290227,-0.591810465,0.541805863,0.0206375383,0.683616996 +0.182044938,0.913337946,-0.182044938,0.000853883626,0.614552855,0.494436741,0.889650881,0.172694623,0.0196695384,0.258201927 +0.620008647,0.914523065,-0.620008707,0.00203176169,0.292757452,0.319374859,-2.14624691,1.5595119,0.020997012,0.876900315 +-0.952610493,0.915118158,0.952610433,0.000136609757,0.220799088,0.154151991,0.95667702,0.340627939,0.0211753398,1.34729397 +-0.599934042,0.915663958,0.599934042,0.00118437374,0.299849987,0.340310246,-2.06592917,1.51129627,0.0209165104,0.848618329 +-0.951895714,0.916577876,0.951895714,8.63020432e-06,0.221072778,0.154282093,0.955960751,0.343777448,0.0211709011,1.34629416 +0.999737203,0.916815519,-0.999737263,0.000999311334,0.196301401,0.14114961,1.20675957,0.108319655,0.021259727,1.41384792 +0.438882291,0.917355418,-0.438882321,0.00101769879,0.379477173,0.451961249,0.0999193788,0.26067692,0.0203817375,0.620999932 +1.2121017,0.917627692,-1.21210182,0.000222143222,0.0993459374,0.074447006,1.96889603,-0.00900807977,0.0213784333,1.71425784 +-0.953844488,0.917737365,0.953844488,0.00120872934,0.220101923,0.153549433,0.966961384,0.340035379,0.0211723708,1.34900415 +0.335678935,0.918277562,-0.335678905,0.00126225629,0.421369672,0.467510104,1.32505941,-0.048984196,0.0201266035,0.475960732 +-0.948762059,0.918281615,0.948762059,0.00220463541,0.222500622,0.155229136,0.933225453,0.358701468,0.0211596638,1.34178722 +1.19129741,0.918688536,-1.19129741,8.58154526e-05,0.536937714,0.646838546,0.784315109,-0.185468063,0.0213753693,1.6849097 +1.22871482,0.918960094,-1.22871482,0.000102761434,0.0327455923,0.0356472321,1.94386244,-0.0364734828,0.0213781688,1.73776984 +-0.615943313,0.918961763,0.615943253,0.000767187623,0.29125008,0.32529816,-2.21893477,1.65060711,0.0209128521,0.871519804 +1.22312593,0.918979883,-1.22312593,0.000225664713,0.0404695496,0.0275703426,2.11312222,-0.0236219838,0.0213780552,1.72986567 +1.2164166,0.919003963,-1.2164166,0.000198060603,0.0694502592,0.0493156686,2.12407398,-0.000217145309,0.0213776119,1.72037673 +-1.19075727,0.919587135,1.19075739,7.19764648e-05,0.498982042,0.560964286,0.408115387,-0.0917861015,0.0211792216,1.68401051 +0.875568271,0.91972357,-0.875568211,0.00308138737,0.252126426,0.177801415,0.268771231,0.660415173,0.0211037025,1.23883486 +0.177024588,0.91985029,-0.177024588,0.000315192854,0.628230214,0.494044989,0.858527184,0.179405928,0.0196634885,0.251294702 +0.638390541,0.920562148,-0.638390541,0.00133364333,0.284857452,0.306603938,-2.26980925,1.70921195,0.0209861547,0.903002381 +1.19583762,0.921465695,-1.19583762,0.000202150288,0.295250356,0.29391557,1.32907164,-0.133644134,0.0213721152,1.69133127 +1.081949,0.921620131,-1.081949,0.000373958203,0.296143442,0.261912882,0.801510096,0.0774057955,0.0212153289,1.53023362 +-0.62833178,0.921798587,0.62833178,0.0013270285,0.286933362,0.315015018,-2.1896739,1.6981082,0.020905029,0.888940752 +-0.560653687,0.921911359,0.560653746,0.00107229466,0.320623398,0.393756986,-1.74816155,1.29328704,0.0209482238,0.793642461 +-0.914541245,0.922029853,0.914541245,0.00237691565,0.237940222,0.165703878,0.640546083,0.536441147,0.0210703462,1.29428601 +0.182049483,0.922149062,-0.182049483,0.000937031524,0.619688988,0.495478034,0.897223711,0.179126352,0.0196671076,0.257943749 +-1.19510734,0.922503054,1.19510746,0.000165689504,0.290397167,0.275951087,1.03290904,-0.105296865,0.0211997032,1.69016266 +0.582914531,0.923330724,-0.582914472,0.00130811031,0.30930683,0.36964792,-2.04791117,1.44142282,0.0210445449,0.824579597 +-0.24928084,0.923923135,0.24928084,0.00111349998,0.483240724,0.468299091,1.28435588,0.0502971262,0.0197365265,0.352823555 +-1.18950927,0.924709797,1.18950927,1.99507886e-05,0.506798148,0.544667125,0.218563661,-0.111867048,0.0211809184,1.68226683 +1.20128536,0.924796224,-1.20128536,0.000341789506,0.161274225,0.135549337,1.74742913,-0.0660993606,0.0213676784,1.6990366 +0.265220374,0.925062239,-0.265220344,0.00145087228,0.470929205,0.482007265,1.44257736,0.025634367,0.0198778287,0.377640903 +-1.20032609,0.925997317,1.2003262,0.00026858176,0.168291137,0.136314899,1.46621168,-0.0496907681,0.0212269649,1.69754326 +-0.69611299,0.926360488,0.69611299,0.0041195848,0.267250687,0.243965134,-1.77482486,1.70950198,0.0208489634,0.986020446 +-0.431371093,0.92644763,0.431371093,0.000984418206,0.373257011,0.447932899,0.193710268,0.290364683,0.0203105304,0.610773683 +0.990429759,0.926583827,-0.990429759,0.00207403745,0.20156233,0.143292308,1.16962147,0.158054382,0.0212461855,1.40073919 +0.992331922,0.926738799,-0.992331922,0.0013041558,0.200619787,0.142690361,1.18347228,0.148560479,0.0212465916,1.40342391 +0.368356645,0.926860988,-0.368356645,0.0013873009,0.412563026,0.460772783,1.03970182,0.00398192555,0.0202056617,0.521825194 +-0.529768288,0.927158117,0.529768288,0.00115209143,0.333393395,0.415941477,-1.31284714,1.03637183,0.0209175218,0.749393761 +-1.21551239,0.927228451,1.21551239,0.000318900071,0.0701729804,0.0490145348,1.89973021,-0.0190755203,0.0212928746,1.71906018 +-1.22275269,0.927242041,1.22275269,0.000202776544,0.0396491997,0.0265834536,1.90686953,-0.0210190602,0.0213038214,1.72929978 +-1.22878528,0.927253544,1.22878528,9.23317129e-05,0.0323772356,0.0343022235,1.76534534,-0.0338304639,0.0213088784,1.73783135 +0.99385196,0.927298665,-0.99385196,4.61612108e-05,0.199840635,0.142291799,1.19114685,0.145939082,0.0212454423,1.40556002 +-0.787198305,0.927686393,0.787198305,0.00572106661,0.267906547,0.201584056,-0.656999409,1.23346233,0.0208729021,1.1149435 +-0.745163739,0.927977562,0.745163798,0.00308225886,0.266523719,0.218359306,-1.1876545,1.49004889,0.0208721068,1.05559623 +-1.19398844,0.928105474,1.19398856,4.86619538e-05,0.308066398,0.288962215,0.916127622,-0.140237719,0.0211978871,1.68860173 +0.712083578,0.928370476,-0.712083578,0.00248781499,0.276428789,0.245138243,-1.56487048,1.54063785,0.0209302641,1.00755668 +-1.18660188,0.928426266,1.18660188,0.000104735002,0.476687998,0.504148066,0.163283199,-0.0765382797,0.0211897977,1.67813301 +0.862990439,0.928645611,-0.862990499,0.00129439437,0.256232917,0.180942431,0.17953001,0.680334866,0.0210740641,1.22124052 +0.458222568,0.928716898,-0.458222568,0.000724553305,0.370120019,0.461324483,-0.283537507,0.505282402,0.0204948839,0.648126721 +-1.08479035,0.929416656,1.08479035,0.000390605419,0.287736923,0.248108819,0.577242792,0.146336213,0.0211394578,1.53429079 +0.991825759,0.92949152,-0.991825759,0.000292381621,0.200828895,0.142664596,1.18554676,0.149556458,0.021242626,1.40271282 +-0.469350815,0.929603219,0.469350815,0.00126698043,0.353088617,0.437741339,-0.372673094,0.574761868,0.0205708221,0.664572477 +0.631441951,0.930005789,-0.631441951,0.000681291684,0.287229985,0.319350988,-2.29404306,1.74086905,0.0209846031,0.893232942 +-0.610198677,0.930449545,0.610198677,0.000546662195,0.293965936,0.340223819,-2.25359035,1.69750178,0.020899564,0.863399267 +-0.142615199,0.930574775,0.142615199,0.00146181474,0.683950543,0.474497527,0.655594945,0.128564551,0.0196225177,0.207406133 +1.08630145,0.931219876,-1.08630145,0.000369297515,0.287812382,0.247998446,0.622224212,0.141403109,0.0212075878,1.5363822 +-0.169789881,0.931342721,0.169789881,0.00130407303,0.629117727,0.482246488,0.75954783,0.139597312,0.0196342655,0.243687242 +-0.298016936,0.931585729,0.298016936,0.00129433582,0.434820175,0.464844763,1.4816854,-0.0588105321,0.0198848583,0.422499299 +-1.19936442,0.932182074,1.19936442,0.000151365937,0.178520843,0.144227132,1.41138029,-0.0863296017,0.0212227497,1.6962049 +0.646752596,0.93233633,-0.646752536,0.000380272802,0.283152908,0.302039057,-2.19394803,1.72208905,0.0209642947,0.914789557 +0.99341476,0.932535052,-0.99341476,0.00182200759,0.200247169,0.142063528,1.19009066,0.148351058,0.0212404411,1.40492892 +-1.20359695,0.933085084,1.20359695,0.000300494168,0.149118453,0.116810203,1.54950285,-0.0768066496,0.0212379172,1.70215285 +-1.19120097,0.933232367,1.19120097,0.000250793295,0.308445215,0.284376055,0.797605574,-0.106682315,0.021203788,1.68463707 +0.212577939,0.933563471,-0.212577939,0.00103642431,0.56078577,0.506089807,1.11197591,0.125155121,0.0197209958,0.302759022 +1.00146055,0.934083104,-1.00146055,0.000787673867,0.198467195,0.141096115,1.19298589,0.161815286,0.0212358199,1.41628706 +1.06404686,0.935081959,-1.06404686,0.00112715201,0.203687385,0.162775546,1.17279506,0.193840668,0.0212149266,1.50491428 +-0.414357543,0.936135173,0.414357543,0.000927554036,0.373417944,0.450883597,0.408938706,0.243528157,0.0202097297,0.586344242 +0.637111187,0.936295211,-0.637111187,0.000583326677,0.281946898,0.312516183,-2.3206048,1.79011202,0.0209661629,0.901087821 +0.789760709,0.93765378,-0.789760709,0.00593004888,0.272920012,0.202018693,-0.560097873,1.03172529,0.0209433995,1.11991477 +-0.623200178,0.938346863,0.623200178,0.000841822475,0.283848703,0.324448794,-2.31305814,1.81372881,0.0208822936,0.881493092 +-0.580457926,0.938431501,0.580457926,0.00105362758,0.310079932,0.382746667,-2.08190489,1.5406065,0.0209472608,0.821132183 +-1.19672382,0.93903029,1.19672382,0.000453419925,0.184336051,0.146750748,1.28376687,-0.0769272,0.0212269071,1.6924479 +-1.21416223,0.939939857,1.21416211,0.000339817809,0.0754261985,0.0523075052,1.85840154,-0.0584955588,0.0212805904,1.71720386 +-1.22211528,0.939997196,1.22211516,0.000330721261,0.0421411023,0.0278025549,1.90833187,-0.029965207,0.021290563,1.72845197 +0.491266489,0.940027475,-0.491266489,0.00109526841,0.351272464,0.457716584,-0.880930543,0.850488186,0.0206864607,0.69494313 +-1.22874236,0.940045059,1.22874236,0.000150395004,0.0332175754,0.034646064,1.78965116,-0.0352981873,0.0212951582,1.73782504 +1.18058598,0.940163314,-1.18058598,0.000117728225,0.367267609,0.354063332,-0.245871052,0.10110487,0.0213404242,1.66973782 +-0.319011807,0.940674663,0.319011807,0.00141458667,0.429114521,0.463690758,1.44326758,-0.0680624694,0.0199606977,0.452730358 +0.238204151,0.942227364,-0.238204151,0.00106676994,0.518047571,0.5012995,1.34368944,0.0946827531,0.0197778847,0.337869287 +-0.0622877181,0.942513704,0.0622877181,0.00252281385,0.791752219,0.413665175,0.487692237,0.17634128,0.0196168628,0.097532928 +-0.392491758,0.942838669,0.392491758,0.00107322435,0.378774583,0.462919474,0.638253927,0.216225609,0.0201523434,0.555833578 +-1.09609437,0.942870021,1.09609437,0.000314011093,0.258106291,0.2120478,0.300260156,0.151260465,0.0211623292,1.5502286 +-1.00193703,0.945649266,1.00193703,0.00162915862,0.196174458,0.136178523,1.27692163,0.204557851,0.0211964082,1.41695309 +-1.00322425,0.945928216,1.00322425,0.000772612169,0.195524722,0.135756046,1.28409684,0.200102165,0.0211975425,1.41877365 +-1.06986463,0.946095765,1.06986463,0.00116186868,0.221245617,0.172362611,1.00962949,0.286381006,0.0211741161,1.51317978 +-1.00303745,0.94621557,1.00303745,0.000526060699,0.195630401,0.135788128,1.28388357,0.20134455,0.0211971086,1.41851008 +-0.672782838,0.946217,0.672782779,0.00208145147,0.264164805,0.26705271,-2.07654023,1.91843438,0.0208349638,0.951881588 +-1.00304902,0.946290672,1.00304902,3.33835217e-08,0.195620328,0.135778487,1.28408885,0.201412752,0.02119698,1.4185276 +-1.00308704,0.946294427,1.00308704,2.58889692e-08,0.195606202,0.135772899,1.28417218,0.201377198,0.0211969819,1.41858065 +-1.00302649,0.946329057,1.00302649,0.000115153656,0.195630014,0.135783538,1.28403509,0.20149523,0.0211968664,1.41849613 +-1.00305963,0.946375608,1.00305951,0.00118934992,0.195617944,0.13577202,1.28413713,0.201463044,0.0211968813,1.41854167 +-1.00321949,0.946388423,1.00321949,0.000803134404,0.195618615,0.135776773,1.28372645,0.201731324,0.0211969484,1.41876709 +-0.48835668,0.946643114,0.48835668,0.00127981324,0.345524222,0.457588345,-0.767370939,0.87536341,0.0207562651,0.690832376 +1.18605542,0.946993947,-1.18605554,0.000282142486,0.319068491,0.273783267,0.305009663,0.00293594226,0.0213317312,1.67747343 +-0.267618507,0.947481573,0.267618477,0.000972737093,0.469342917,0.476442993,1.4480803,0.0178480633,0.0197791439,0.37974143 +-0.119257696,0.947638988,0.119257703,0.000983329257,0.729019701,0.455211639,0.50969094,0.172220975,0.0196148064,0.170641452 +1.06983376,0.947875619,-1.06983376,0.00110303448,0.214425057,0.167179137,1.01907587,0.262434393,0.0212032199,1.51309204 +0.146762982,0.94910717,-0.146762982,0.00146001275,0.702483892,0.477225602,0.6293841,0.182536304,0.0196333379,0.207886383 +1.20561326,0.949906051,-1.20561326,0.00038627896,0.128094226,0.096938394,1.75578499,-0.100815341,0.0213361289,1.70514536 +0.534152329,0.95054388,-0.534152329,0.00157284271,0.336070716,0.440385967,-1.65670443,1.28292477,0.0209656134,0.755930185 +0.687590837,0.951298594,-0.687590837,0.00275060651,0.27523613,0.262152642,-1.80131996,1.67637444,0.0209019613,0.97326833 +0.407085508,0.951661348,-0.407085538,0.000661115046,0.381467372,0.47206828,0.433231711,0.346319735,0.0202649552,0.575724304 +-0.840402246,0.951934218,0.840402305,0.00873127487,0.25726068,0.184541136,-0.00473567843,0.91143477,0.0208818465,1.1901474 +-0.204753116,0.952207744,0.204753116,0.00123994541,0.574665725,0.486329556,1.05955219,0.171023905,0.0196551625,0.291340113 +1.17081618,0.952477217,-1.17081618,0.000198100475,0.2662009,0.229464412,-0.410413384,0.193214685,0.0213116445,1.65591812 +-0.901638389,0.953158736,0.901638389,0.00605166843,0.242652595,0.16884695,0.618098438,0.5797019,0.0209676381,1.27595675 +1.03992426,0.954138339,-1.03992426,0.00163061544,0.187437534,0.134371653,1.24832952,0.190982163,0.0212030187,1.47079682 +0.548532248,0.954141974,-0.548532307,0.000766159093,0.328642547,0.430358201,-1.87000227,1.4316082,0.0210189205,0.776243269 +1.21141291,0.954333425,-1.21141303,0.000304401852,0.0866946504,0.0606902204,1.96588123,-0.094896704,0.0213317592,1.7133764 +1.22083926,0.954435229,-1.22083926,0.000355142052,0.0492193326,0.0320790149,2.06711292,-0.0425304919,0.0213328078,1.72670841 +0.64902997,0.954458952,-0.64902997,0.000981817837,0.275032461,0.3056238,-2.25686216,1.8624531,0.0209287405,0.918311357 +1.22869396,0.954520106,-1.22869396,0.000161566015,0.0360943861,0.0369339809,1.96502435,-0.0329283476,0.0213323608,1.73781788 +0.0490646213,0.954544663,-0.0490646213,0.000740820949,0.805181384,0.403246462,0.450721055,0.0351195447,0.0196194593,0.071816951 +1.19262052,0.955197573,-1.19262064,0.000430802291,0.215077043,0.168191656,1.03810334,-0.080152005,0.0213231985,1.68675864 +-1.16744781,0.955825686,1.16744781,0.000199505477,0.248018607,0.213712424,-0.431874216,0.239733934,0.0212604459,1.65117097 +1.10566401,0.956251979,-1.10566401,0.000386774365,0.241463065,0.188676238,0.114016153,0.181357354,0.0212007686,1.56378412 +0.396907568,0.958221018,-0.396907598,0.000869789859,0.383750558,0.478464961,0.548262537,0.350589603,0.0202342141,0.561369956 +-0.65601927,0.959117055,0.65601927,0.000979253207,0.266229481,0.291334122,-2.24514675,1.99636793,0.0208262019,0.927937806 +-1.10870719,0.959283113,1.10870731,0.000306663103,0.22889033,0.17590265,-0.000483588316,0.163898423,0.0211870261,1.56815004 +-0.355159074,0.960321069,0.355159104,0.00120386132,0.398104459,0.455777645,1.13516569,0.0967232287,0.0200024731,0.502431571 +-0.357627928,0.961154163,0.357627928,0.000364183652,0.397050738,0.455166221,1.11093283,0.10336946,0.0200066417,0.505930007 +1.11461055,0.961926579,-1.11461055,0.00036252875,0.227478817,0.173138857,-0.0215342976,0.172945738,0.0212055966,1.57642233 +0.0562569723,0.962076724,-0.0562569723,0.00102518045,0.80484277,0.40294677,0.428942055,0.0434778631,0.0196182169,0.0801149607 +-1.15471113,0.962542892,1.15471113,0.000225953874,0.216009647,0.175254717,-0.357607603,0.212446719,0.0212610289,1.63324022 +0.298377126,0.963236988,-0.298377126,0.00122823589,0.451371491,0.487263173,1.56968272,0.0455635078,0.019972235,0.421990305 +-1.08481836,0.963494658,1.08481836,0.000909567869,0.24442637,0.181671157,0.684176922,0.318292648,0.021184314,1.53428078 +0.298909903,0.963504076,-0.298909873,0.000239409434,0.451201946,0.487279713,1.56976557,0.0449983813,0.019973956,0.422745764 +0.538071096,0.963943005,-0.538071096,0.000446368736,0.313538641,0.428475231,-1.55698287,0.52694732,0.0209493488,0.761133194 +0.591200829,0.963943005,-0.591200769,0.000542046677,0.289036363,0.36095202,-2.15818357,1.1302942,0.0209776014,0.836750388 +0.386951387,0.963943005,-0.386951387,0.00050525408,0.381797612,0.458358794,1.41574228,0.2271,0.0202095006,0.548021495 +0.279443383,0.963943005,-0.279443353,0.000263736467,0.466928482,0.47879076,1.71007323,0.13511619,0.0199001841,0.395276606 +-0.090463914,0.963943005,0.090463914,0.000325810863,0.77349937,0.43115893,0.431660354,0.192835763,0.01961587,0.131192476 +-0.139167354,0.963943005,0.139167368,7.48706734e-05,0.713988662,0.474371314,0.619589448,0.225865886,0.0196189526,0.196928293 +-0.25297901,0.963943005,0.25297901,0.00020892614,0.506187737,0.489666313,1.524966,0.147285163,0.0197308939,0.358016729 +-0.196012646,0.963943005,0.196012646,0.00018947685,0.60268712,0.496273905,1.04674089,0.236588895,0.0196497478,0.277491361 +-0.326033771,0.963943005,0.326033771,0.000270786695,0.425385028,0.467385352,1.77758408,0.0727948323,0.019901488,0.461142957 +-0.463567317,0.963943005,0.463567317,0.00106789113,0.342622221,0.467434376,0.237118602,0.196169734,0.0203657411,0.656420588 +-0.428110272,0.963943005,0.428110242,0.000439516531,0.362523884,0.469324887,0.947197199,0.23058103,0.0202134568,0.605623782 +-0.51557672,0.963943005,0.51557672,0.000316615973,0.318300605,0.439333439,-1.0238955,0.366261184,0.0208235774,0.729241729 +-0.547735035,0.963943005,0.547735035,0.000305728929,0.307180345,0.410682827,-1.71420944,0.679245114,0.0210286155,0.775287747 +0.230851457,0.963943005,-0.230851442,0.000369383662,0.544263363,0.513018966,1.33249557,0.117371768,0.0197530556,0.32811439 +0.142846867,0.963943005,-0.142846882,0.000777197769,0.713796556,0.475050598,0.609654248,0.182734638,0.0196293835,0.202739179 +-0.157901913,0.963943005,0.157901913,0.000908330549,0.670642853,0.484979451,0.736396194,0.147147208,0.0196159519,0.227679878 +-0.0742698684,0.963943005,0.0742698684,0.00127889472,0.787546992,0.419998497,0.440317094,0.199905246,0.0196113829,0.112193063 +-0.232714891,0.963943005,0.232714891,0.000596348778,0.532310605,0.494324148,1.2671628,0.123858571,0.0196933653,0.329498351 +-0.308835566,0.963943005,0.308835596,0.000655426818,0.432461888,0.471553713,1.51754141,-0.00634206273,0.0198802073,0.438232183 +-0.608380914,0.963943005,0.608380914,0.000367320521,0.291005641,0.360246062,-2.36936426,1.89199424,0.0209061094,0.86058557 +0.464422405,0.963943064,-0.464422405,0.000373179821,0.344462872,0.476590842,0.327725381,0.131296828,0.0204103515,0.656809688 +0.506468952,0.963943064,-0.506468952,0.000809436548,0.324679971,0.458871305,-0.798488975,0.26432687,0.0207492113,0.717028975 +0.466990829,0.963943064,-0.466990829,0.000450735068,0.343136907,0.476211518,0.271584451,0.129193738,0.0204245578,0.660449982 +0.466019958,0.963943064,-0.466019958,1.61740036e-06,0.343675673,0.476831615,0.296429843,0.128543913,0.0204159785,0.659098864 +0.548324466,0.963943064,-0.548324466,5.26002514e-05,0.308143675,0.417867392,-1.79359519,0.630015612,0.0210410878,0.775809646 +0.617828727,0.963943064,-0.617828727,0.00080478692,0.280486822,0.336725295,-2.160887,1.31336761,0.020871412,0.873952091 +0.561121762,0.963943064,-0.561121762,0.000528586446,0.30239296,0.401587337,-1.90462768,0.764164209,0.0210243445,0.793679059 +0.636023045,0.963943064,-0.636023045,0.000102717182,0.274745882,0.32229495,-2.18197012,1.4566288,0.0207994208,0.899999976 +0.40844512,0.963943064,-0.40844512,0.000575006707,0.374694109,0.473042428,1.25472581,0.245633155,0.0202611852,0.578113794 +0.346744746,0.963943064,-0.346744776,0.000376722659,0.40438503,0.453444391,1.70188487,0.118877858,0.0201154929,0.4910236 +0.360589892,0.963943064,-0.360589892,0.000543915725,0.394972503,0.456281871,1.60986805,0.162567466,0.020146912,0.51050359 +0.31573686,0.963943064,-0.31573686,0.000283932313,0.429922312,0.46637693,1.79299951,0.111049414,0.0200177412,0.447093427 +0.305328339,0.963943064,-0.305328339,0.000310630072,0.439484566,0.468288511,1.80587173,0.100633077,0.0199875124,0.432540923 +0.236401513,0.963943064,-0.236401513,0.000307230919,0.52437669,0.491142362,1.42425323,0.202577233,0.0197750516,0.335146427 +0.264991641,0.963943064,-0.264991641,0.00022760102,0.482731253,0.4835895,1.64171565,0.151592597,0.0198522024,0.374958009 +0.269676715,0.963943064,-0.269676715,1.45652093e-05,0.476323307,0.48180449,1.67135155,0.141323417,0.019867314,0.381674528 +0.218108147,0.963943064,-0.218108147,0.000304771995,0.563026607,0.497383684,1.27222776,0.228212714,0.0197314397,0.30894646 +0.203643799,0.963943064,-0.203643799,0.00024911025,0.591378272,0.497425795,1.13537049,0.240775734,0.0197004303,0.28892675 +0.172416523,0.963943064,-0.172416523,7.46507867e-05,0.653335273,0.490074396,0.853078365,0.258289784,0.0196593218,0.243954241 +0.0981111079,0.963943064,-0.0981111079,0.000273775368,0.770037055,0.439199001,0.442644089,0.192840874,0.019625973,0.142296284 +0.119212598,0.963943064,-0.119212598,0.000466808124,0.743121862,0.460243523,0.530449152,0.219436675,0.0196325891,0.169876903 +0.166976348,0.963943064,-0.166976348,8.52770681e-05,0.6636585,0.489036053,0.811603546,0.255739808,0.019655453,0.236226648 +0.170633987,0.963943064,-0.170634001,6.94210257e-06,0.656749547,0.489247203,0.837111473,0.258109689,0.019657474,0.241528839 +0.0317770764,0.963943064,-0.0317770801,0.000500933151,0.805566788,0.394715458,0.380392998,0.107357904,0.0196175184,0.0542940795 +-0.0504949875,0.963943064,0.0504949875,0.000184698583,0.800280094,0.398974717,0.392059386,0.129522011,0.0196157414,0.0736238882 +0.0613207743,0.963943064,-0.0613207743,0.00019227789,0.797166765,0.412671417,0.396573186,0.147895396,0.0196199547,0.0901746079 +-0.0551032461,0.963943064,0.0551032461,0.00016983728,0.798223019,0.401878536,0.394113302,0.137490109,0.0196157768,0.0788221061 +-0.103235424,0.963943064,0.103235424,0.000600406842,0.760362506,0.44198674,0.468847394,0.202990234,0.0196157563,0.148279235 +-0.234533742,0.963943064,0.234533727,0.000224848365,0.529725373,0.491588384,1.38141882,0.198952764,0.0196992811,0.332528949 +-0.141340837,0.963943064,0.141340852,0.000139235897,0.710123122,0.476778775,0.632836044,0.226017028,0.0196197312,0.199929193 +-0.139979184,0.963943064,0.139979184,6.44155898e-06,0.712740302,0.475087792,0.623512566,0.225488409,0.0196190868,0.198062792 +-0.265712082,0.963943064,0.265712082,0.000231874321,0.48701942,0.48546204,1.61892009,0.104733616,0.0197578892,0.37635541 +-0.330718845,0.963943064,0.330718815,6.90943307e-06,0.421394467,0.465601325,1.77558422,0.0723756477,0.0199160706,0.467860371 +-0.333291441,0.963943064,0.333291411,8.75917831e-05,0.419554025,0.464459926,1.77117753,0.0768932849,0.019924188,0.471437275 +-0.409928173,0.963943064,0.409928173,0.000340918603,0.369423747,0.462580949,1.20374227,0.231627986,0.0201326907,0.579848886 +-0.42122978,0.963943064,0.42122978,4.7462323e-05,0.365576208,0.467948109,1.06191707,0.24808073,0.0201756619,0.596075416 +-0.573893905,0.963943064,0.573893905,0.000549852208,0.298472285,0.380883634,-1.93925726,0.990864635,0.020997785,0.811824799 +-0.61105752,0.963943064,0.61105752,0.000729027262,0.285947323,0.348826617,-2.12554479,1.36683023,0.020907592,0.864336371 +-0.635968864,0.963943064,0.635968864,0.000189045953,0.278027833,0.327222377,-2.14635253,1.5817163,0.0208160561,0.899999976 +-0.591122091,0.963943064,0.591122091,0.000183141557,0.292468399,0.363978565,-2.08918524,1.19974828,0.0209814291,0.836483657 +-0.0481153876,0.963943064,0.0481153876,0.000892166165,0.807531953,0.398678154,0.402198106,0.156950295,0.0196122453,0.0734152198 +0.0567953885,0.963943064,-0.0567953885,1.61573951e-06,0.804788053,0.403043568,0.420996279,0.044267945,0.0196178462,0.0810552761 +0.0551186875,0.963943064,-0.0551186837,0.000361394166,0.805562556,0.401923329,0.420033693,0.0431677215,0.0196177196,0.0792138949 +0.0587917082,0.963943064,-0.0587917082,0.000614313525,0.803360403,0.404986262,0.423720211,0.0475081615,0.0196180772,0.0833785087 +0.398571163,0.963943064,-0.398571163,2.91190408e-05,0.380763113,0.479534656,0.505893826,0.397675544,0.0202312246,0.563805103 +0.401828468,0.963943064,-0.401828438,0.000322712644,0.379299372,0.480261624,0.453864604,0.42145884,0.0202436522,0.568343341 +0.396057278,0.963943064,-0.396057278,0.000224519608,0.382336885,0.479726106,0.542068958,0.384251595,0.0202257689,0.560238361 +0.49585551,0.963943064,-0.49585551,0.000208056139,0.346402138,0.477810293,-1.11366272,1.10324109,0.0207157992,0.701726913 +0.481283158,0.963943064,-0.481283158,0.000669267203,0.349688411,0.479521275,-0.850426614,0.997110188,0.0206093006,0.681063294 +0.448689431,0.963943064,-0.448689431,0.00103717309,0.357266486,0.485088736,-0.301056266,0.761674762,0.0204005111,0.635869622 +0.612927437,0.963943064,-0.612927437,0.000377810822,0.29003942,0.35469678,-2.36589956,1.86249781,0.0209895782,0.867031872 +0.635758758,0.963943064,-0.635758758,0.00033820502,0.275026679,0.31832841,-2.38720989,1.91588247,0.0209411737,0.899744272 +0.518192291,0.963943064,-0.518192291,0.000505396572,0.339800537,0.461813033,-1.46199095,1.2734561,0.0208534095,0.732992291 +0.541223645,0.963943064,-0.541223705,0.000158296476,0.332820117,0.449064493,-1.84826672,1.45712936,0.0210063998,0.765930295 +0.561196685,0.963943064,-0.561196685,0.000586634094,0.321408033,0.423283905,-2.05417776,1.59505701,0.0210301783,0.793842435 +0.299015254,0.963943064,-0.299015254,0.000614475051,0.451079279,0.48739779,1.56864536,0.0470536537,0.0199736115,0.422892094 +0.154452488,0.963943064,-0.154452488,0.00049891026,0.694489181,0.487503231,0.67860055,0.187158421,0.0196355842,0.218868703 +0.298567921,0.963943064,-0.298567921,2.85710144e-07,0.45140788,0.487463921,1.57150924,0.0461976491,0.019972425,0.422277182 +0.247860402,0.963943064,-0.247860402,0.000887377479,0.512005866,0.504872203,1.46073174,0.0951861739,0.0198011808,0.351878524 +0.297589928,0.963943064,-0.297589958,0.000181996962,0.452680409,0.488071412,1.56898499,0.047281161,0.0199692491,0.420867741 +0.14863424,0.963943064,-0.148634225,0.000288806186,0.705743134,0.478581458,0.633496106,0.187799916,0.0196308251,0.211044729 +-0.361884713,0.963943064,0.361884713,0.000392928283,0.392808855,0.458656758,1.040133,0.147163048,0.0200139806,0.511839628 +-0.356199771,0.963943064,0.356199741,8.16493048e-06,0.396658063,0.456352413,1.1204257,0.115313493,0.0199988242,0.503948569 +-0.448056161,0.963943064,0.448056191,0.000930306502,0.34921205,0.477279574,-0.237957031,0.712050676,0.0203939807,0.634537041 +-0.424230635,0.963943064,0.424230635,0.000387062493,0.356332839,0.473945349,0.127124161,0.537993312,0.0202572681,0.600382566 +-0.47833997,0.963943064,0.47833997,0.000289132033,0.343435585,0.474832505,-0.710603476,0.950118601,0.0206737462,0.676690996 +-0.194193408,0.963943064,0.194193408,0.000638315163,0.601683021,0.493953049,0.998292565,0.169838011,0.019644184,0.275749624 +-0.109375358,0.963943064,0.109375358,0.000981036574,0.747968137,0.447317928,0.474329293,0.183136746,0.0196102094,0.157694116 +-0.210335851,0.963943064,0.210335851,0.000658603327,0.568561435,0.488720924,1.12572634,0.176043317,0.0196579676,0.299045116 +-0.260417759,0.963943064,0.260417759,0.000443506666,0.481743693,0.482293159,1.46179867,0.0543328933,0.0197303072,0.369735986 +-0.353242666,0.963943064,0.353242666,0.000137187119,0.398876905,0.457010865,1.14948213,0.105493605,0.0199891254,0.499714583 +-0.278731644,0.963943064,0.278731644,0.000589539995,0.463389099,0.480156928,1.49760962,0.0278991759,0.0197747815,0.39480713 +-0.566219866,0.963943064,0.566219866,0.000411483634,0.316812217,0.416853577,-2.06133771,1.61947107,0.0209567491,0.800979972 +-0.58678776,0.963943064,0.58678776,0.000615908881,0.306150019,0.392469645,-2.31764078,1.77885485,0.020936355,0.830427468 +-0.493164659,0.963943064,0.493164629,0.000127201696,0.341087639,0.471990258,-0.950598121,1.06679296,0.0207982026,0.697920442 +-0.509534776,0.963943064,0.509534776,0.000733882189,0.337686002,0.463774741,-1.22445738,1.19118094,0.020862503,0.720759451 +-0.635884583,0.963943064,0.635884583,0.000470825617,0.271180868,0.316703677,-2.42832041,2.03881693,0.0208437797,0.899986148 +0.426276088,0.963943124,-0.426276088,0.00034213427,0.367274255,0.479490697,1.04817629,0.234541595,0.020294711,0.603605151 +0.0761642531,0.963943124,-0.0761642531,0.000404345512,0.787855089,0.424447715,0.413015783,0.162421748,0.019622324,0.108889341 +0.136520892,0.963943124,-0.136520892,0.000390001485,0.718442559,0.472718984,0.607183754,0.238564581,0.0196378287,0.194638014 +0.00991154835,0.963943124,-0.00991154835,0.00078868214,0.809311867,0.38900578,0.376008272,0.0926938653,0.019616507,0.038802132 +-0.0162147824,0.963943124,0.0162147842,0.000507051591,0.808168054,0.391532212,0.377322555,0.0964333788,0.0196161661,0.0455011949 +-0.212991029,0.963943124,0.212991014,0.000204049938,0.570502281,0.496976197,1.18581128,0.224663347,0.0196708869,0.301388264 +-0.172610894,0.963943124,0.172610879,0.000394298637,0.650214493,0.492500544,0.851537108,0.242657602,0.019631952,0.24540779 +-0.203519061,0.963943124,0.203519046,3.41558043e-05,0.587102473,0.495257467,1.10873997,0.231871814,0.0196558237,0.288352817 +-0.367184848,0.963943124,0.367184877,0.000247610529,0.389247417,0.456523538,1.632936,0.19232738,0.0199929886,0.519869149 +-0.277701825,0.963943124,0.277701795,0.000220202113,0.473903716,0.482671916,1.67896891,0.0892236829,0.019784661,0.39297241 +-0.297371626,0.963943124,0.297371626,0.000487264071,0.449058205,0.475832343,1.77663326,0.059418954,0.0198244117,0.421215713 +-0.378689051,0.963943124,0.378689051,0.00020375388,0.381132483,0.453723669,1.53605163,0.2229366,0.0200293157,0.53653878 +-0.497871906,0.963943124,0.497871935,0.000428380386,0.326376379,0.452711701,-0.622278929,0.249798313,0.0206805486,0.704265356 +-0.50545758,0.963943124,0.50545752,3.41440536e-05,0.323057353,0.450138211,-0.814328611,0.278973401,0.0207457449,0.715115726 +0.00592147093,0.963943124,-0.00592146628,0.00119277427,0.813688278,0.393633395,0.412550271,0.0721690282,0.019614175,0.0492480174 +-0.0231253393,0.963943124,0.0231253356,0.000870632939,0.8138237,0.393097609,0.39591825,0.10140378,0.0196131971,0.0523678549 +0.587350607,0.963943124,-0.587350607,0.00108222361,0.306350976,0.391314179,-2.32867432,1.78745174,0.0210439973,0.831308544 +0.348418236,0.963943124,-0.348418236,0.00145345321,0.412553132,0.473391205,1.19831657,0.151699066,0.0201184172,0.494618177 +0.195979208,0.963943124,-0.195979208,0.00100807077,0.609219074,0.509106636,1.0441134,0.165632427,0.019671496,0.28049165 +0.103267327,0.963943124,-0.103267327,0.00104496675,0.764719903,0.444624215,0.466960549,0.146669388,0.0196224879,0.150173962 +-0.128267467,0.963943124,0.128267467,0.000292665703,0.719954014,0.46728164,0.558423042,0.179612935,0.019611815,0.182876468 +-0.40276286,0.963943124,0.40276283,0.000469048857,0.364455462,0.464067727,0.440928787,0.382130772,0.0201148968,0.570580482 +-0.539185226,0.963943124,0.539185286,0.000997748692,0.330693692,0.447787136,-1.73806572,1.43667281,0.0209633727,0.763219476 +-1.12291098,0.964226723,1.12291098,0.000285080634,0.214009404,0.161645696,-0.114855371,0.153232351,0.0212167408,1.58815551 +1.17696333,0.964357734,-1.17696333,0.000501733914,0.317107677,0.24095957,-0.110318571,0.0953802094,0.0212989505,1.66461277 +1.15121436,0.964437187,-1.15121436,0.00028150843,0.217128873,0.16851978,-0.332079232,0.173257545,0.0212625656,1.62817752 +-0.672361672,0.964545131,0.672361672,0.00145797769,0.262261361,0.268944532,-2.04939795,1.94237947,0.0208188891,0.951403499 +0.466588438,0.964988351,-0.466588438,0.000445274956,0.344244897,0.4786852,0.276905,0.127124637,0.0204196982,0.659886897 +-0.13931261,0.965855479,0.13931261,0.000373537681,0.715055764,0.4743644,0.617443562,0.226424456,0.0196186006,0.197065592 +-0.329239875,0.966186821,0.329239875,9.99131153e-05,0.42243427,0.466327757,1.78259647,0.0832872093,0.0199095346,0.465733439 +0.465549827,0.966415524,-0.465549797,0.00046147214,0.346174151,0.481691122,0.319258988,0.134677738,0.0204142053,0.658400297 +0.272324443,0.967052281,-0.272324413,0.000263401249,0.473591328,0.481643111,1.68208182,0.150353834,0.0198764727,0.38537246 +0.169029489,0.967154264,-0.169029504,0.000357998157,0.662283421,0.489278585,0.823236585,0.261214435,0.0196558088,0.239120781 +0.17248635,0.967414916,-0.172486335,0.000507384888,0.655730844,0.489483893,0.853478789,0.26843363,0.0196583252,0.244006231 +-1.17311573,0.967489243,1.17311573,0.000485915923,0.318766236,0.239238709,-0.216031849,0.152381718,0.0212518759,1.65918684 +0.267986238,0.96751219,-0.267986238,0.000103499566,0.479558945,0.483425707,1.6634469,0.153089494,0.0198605731,0.379262507 +-0.0528871343,0.967584372,0.0528871343,3.36395533e-05,0.800489187,0.399823487,0.386883825,0.132286653,0.0196151547,0.0764912218 +1.13889992,0.967635036,-1.1388998,0.000371892151,0.209167406,0.156520352,-0.263031721,0.16100964,0.0212370232,1.61079299 +-0.331710875,0.968034387,0.331710905,0.000696260715,0.41965729,0.46487543,1.79164648,0.101391159,0.0199162588,0.469184697 +-0.693853378,0.968109548,0.693853378,0.000833416299,0.264955938,0.255471498,-1.75031662,1.7842834,0.0208156388,0.981398821 +-1.13785446,0.968190551,1.13785434,0.000287099043,0.197527394,0.149688259,-0.239391416,0.151987702,0.0212484039,1.60935521 +-0.509105086,0.968975484,0.509105086,0.000293619756,0.322058588,0.449115276,-0.941103637,0.326871634,0.0207970534,0.720237851 +-1.05013132,0.9701159,1.05013132,0.00216653221,0.195042893,0.135520011,1.17466903,0.290797949,0.0211914834,1.48526812 +0.544902563,0.970119178,-0.544902563,0.000314908364,0.315275162,0.431372166,-1.77992392,0.623756051,0.0210140273,0.77097404 +1.03736913,0.970129371,-1.03736913,0.0012832426,0.189167917,0.133328706,1.23259902,0.206812322,0.0211889092,1.46716666 +-0.4238545,0.970484853,0.42385447,0.000215581735,0.369533062,0.483354092,1.08167267,0.256590486,0.0201737992,0.599683166 +-0.26113674,0.970644712,0.26113674,0.000229789715,0.49591279,0.489107579,1.59688973,0.135608256,0.019743884,0.369792134 +1.04724884,0.970871329,-1.04724884,0.00159521413,0.192149088,0.134854764,1.15273488,0.233947664,0.021188587,1.4811554 +-0.503222167,0.971304297,0.503222167,0.000639846199,0.329046726,0.461713314,-0.78814292,0.29396984,0.0207248926,0.711873114 +0.93662405,0.971707344,-0.936623991,0.00297514303,0.227208823,0.157409012,0.927995503,0.273371309,0.0211290903,1.32488096 +0.553027272,0.972007096,-0.553027213,0.000698196876,0.305408716,0.413287431,-1.90892816,0.6975981,0.0210698526,0.78244698 +-0.737332582,0.972034633,0.737332642,0.00153186545,0.267585695,0.227409527,-1.15992856,1.48275161,0.0208106879,1.0432291 +-0.71860218,0.972178578,0.71860224,0.00159943744,0.266969949,0.232916668,-1.39634597,1.59706795,0.0208103154,1.01678383 +-0.144546837,0.972345054,0.144546822,0.00022266357,0.710329771,0.478264093,0.648246944,0.233659148,0.0196186434,0.204427078 +-0.202525467,0.972478151,0.202525467,0.000313676865,0.595244348,0.496665061,1.10207939,0.250654459,0.0196522959,0.286609322 +0.230937853,0.973068953,-0.230937853,0.000320469291,0.539196014,0.495781392,1.38407254,0.218024015,0.019758733,0.327628016 +-0.0465752706,0.973257959,0.0465752706,0.000639215228,0.803956032,0.396868348,0.368312776,0.115519762,0.0196143165,0.0673795566 +-0.0569273531,0.97365272,0.0569273531,0.000589355943,0.800915956,0.40146181,0.377746612,0.135570943,0.0196141098,0.0809378773 +-0.419032186,0.974138021,0.419032156,0.000520926144,0.370954156,0.481799752,1.20302463,0.301004827,0.0201479364,0.592770219 +-0.176005036,0.975432396,0.176005036,0.000461631367,0.649623215,0.493166268,0.888290286,0.258303106,0.0196307823,0.250458479 +0.686121702,0.975457668,-0.686121643,0.00150394707,0.271781385,0.262774289,-1.75308514,1.69026685,0.0208949577,0.972030282 +0.269807398,0.976231456,-0.269807398,0.000365115382,0.479522586,0.484706551,1.69170606,0.20439437,0.0198650975,0.381689012 +-0.372643679,0.9770962,0.37264365,0.00103867077,0.381896347,0.454256237,1.65617466,0.297396332,0.020009242,0.527722836 +0.0657291859,0.977266192,-0.0657291859,0.000640861923,0.800338626,0.412561148,0.370995015,0.150925845,0.0196181331,0.0942818075 +1.20596743,0.977650166,-1.20596743,0.000437199167,0.110454157,0.0764297992,1.70436954,-0.117367454,0.0213035066,1.70561683 +1.2183876,0.977772236,-1.21838748,0.000397933589,0.0593901612,0.0379021987,1.96551573,-0.0505680367,0.021307962,1.72318292 +1.22872615,0.977874458,-1.22872615,0.000180959672,0.0388474539,0.0371154472,1.91276991,-0.0333889574,0.0213083755,1.73780489 +1.18398786,0.978051305,-1.18398786,0.000596939877,0.237112954,0.173060834,0.552845538,-0.062469244,0.02128754,1.67454886 +-0.226185501,0.978230178,0.226185501,0.000549327757,0.554047227,0.496445805,1.32786191,0.267507046,0.0196832139,0.320388734 +-0.265130103,0.979569495,0.265130103,0.000395759358,0.492192835,0.488781095,1.64875388,0.189070165,0.0197479837,0.375191987 +0.210678667,0.979840636,-0.210678667,0.000474565837,0.586828768,0.497955859,1.22252297,0.302270174,0.0197089054,0.298644274 +-0.386963606,0.980151057,0.386963606,0.000883259869,0.377959639,0.46053046,1.58975232,0.33230263,0.0200460423,0.547731161 +-0.357250929,0.980506301,0.357250929,0.000680969621,0.392826647,0.459144324,1.73022151,0.279463083,0.0199537091,0.505698144 +0.198137462,0.98069489,-0.198137462,0.00055963255,0.614530444,0.499505788,1.08448088,0.292998016,0.0196879338,0.280762434 +0.353100508,0.980997741,-0.353100508,0.000722531695,0.394881964,0.456588179,1.79700613,0.281949013,0.0201243814,0.49978745 +-1.15942883,0.981016695,1.15942895,0.000580705469,0.307477295,0.214744508,-0.19068858,0.187164754,0.0212499294,1.63991177 +1.19408131,0.981117368,-1.19408131,0.00032213208,0.190780193,0.138293341,1.05131328,-0.0976766199,0.021293303,1.68879759 +1.09567142,0.981134772,-1.09567142,0.00114457484,0.246976584,0.173796028,0.441866547,0.337071121,0.0211886745,1.54965067 +-1.17991948,0.981512308,1.17991948,0.000975488219,0.237611562,0.166794255,0.366723478,-0.0204271898,0.0212577842,1.66880941 +-0.114481166,0.982189178,0.114481166,0.000586923794,0.757818878,0.450730681,0.489738047,0.214596599,0.0196132995,0.162938744 +0.933381379,0.982340455,-0.933381319,0.00294945575,0.228669778,0.157857165,0.934266448,0.26735127,0.0210979339,1.32036722 +0.0462833308,0.9833951,-0.0462833345,0.000675556425,0.807903409,0.399436176,0.347468078,0.122855291,0.0196155272,0.0700914785 +-1.10148787,0.983720064,1.10148787,0.000876529492,0.271943957,0.18948777,0.318638206,0.362037957,0.021196926,1.55793929 +-1.20450914,0.984145463,1.20450914,0.000365292886,0.117322773,0.0789701268,1.44359243,-0.112728491,0.021294646,1.70343542 +-1.21777499,0.984257519,1.21777499,0.000375585601,0.0614802316,0.0386200249,1.74413466,-0.0525133461,0.0213018712,1.72219622 +-1.22882318,0.98435092,1.22882318,0.00017079871,0.0382990204,0.0348055176,1.72764838,-0.04470082,0.0213069674,1.73782086 +0.942488551,0.984703422,-0.942488551,0.00067259348,0.224114656,0.154687226,0.996746182,0.236617789,0.0211128742,1.33317375 +-0.588618577,0.984850705,0.588618517,0.00114351499,0.289130986,0.363096029,-2.28304434,1.10802925,0.0210430287,0.832578719 +0.149809763,0.984945595,-0.149809763,0.000412228925,0.709700048,0.478603899,0.682331383,0.274292201,0.0196400639,0.213376209 +-0.24036175,0.984951973,0.240361735,0.000401402649,0.529996455,0.492597371,1.4871695,0.298419863,0.0196982864,0.340194583 +0.132479429,0.985608518,-0.132479414,0.000561222841,0.739233613,0.467610657,0.562637389,0.244854659,0.0196326897,0.18813774 +-0.777427971,0.985637665,0.777427971,0.00580947893,0.26910907,0.204067394,-0.562154233,1.07688296,0.0208123978,1.10121369 +-0.54402256,0.986185014,0.54402256,0.000928735069,0.311401039,0.424441576,-1.88086724,0.585865021,0.021060707,0.769610226 +0.318504095,0.987107992,-0.318504065,0.000569134078,0.422609031,0.462578267,1.92085981,0.279265463,0.0200244505,0.45057857 +1.15513659,0.987326145,-1.15513659,0.000736819929,0.291864663,0.196358353,-0.156689376,0.158556655,0.0212450624,1.63372481 +-1.20351255,0.987367153,1.20351255,6.48135683e-05,0.122526623,0.0825597197,1.40191114,-0.11753457,0.0212946851,1.70203507 +0.298956066,0.987730801,-0.298956037,0.000590407813,0.44723928,0.471562833,1.89474237,0.273033053,0.0199604519,0.422983289 +0.636246979,0.98789525,-0.636246979,0.000812310376,0.269293815,0.314480215,-2.30840302,1.40485001,0.0208525043,0.900000036 +-1.20370758,0.987900555,1.2037077,2.30635451e-05,0.121021844,0.0812422931,1.40759504,-0.117955089,0.0212956071,1.70231152 +-1.2174027,0.988053977,1.21740282,4.1455547e-05,0.0631678402,0.0394905694,1.73021245,-0.054596249,0.0213026125,1.72167957 +-1.22881448,0.98818177,1.22881448,1.89290549e-05,0.0387446322,0.0346314535,1.72261572,-0.0455476269,0.0213077739,1.73781848 +-1.20275247,0.988263309,1.20275259,0.000574283826,0.124964356,0.0839123651,1.3686018,-0.114560299,0.0212946013,1.70095491 +1.1075412,0.988318861,-1.10754108,0.00105630863,0.256640166,0.174626008,0.253995419,0.314419568,0.0211914238,1.56642354 +-0.0851770639,0.988482058,0.0851770639,0.00082577992,0.787224889,0.424638391,0.379788458,0.172495186,0.0196116325,0.121882007 +0.3345837,0.98859489,-0.33458373,0.000469449238,0.409043103,0.45560962,1.88233995,0.294077814,0.0200750139,0.473331332 +-1.20331025,0.988793135,1.20331025,0.000329107192,0.122001298,0.0817981288,1.39354527,-0.116788268,0.0212958604,1.70174885 +-1.21722174,0.988950491,1.21722174,0.000551942619,0.0636981502,0.0397847891,1.72490895,-0.054276526,0.0213030092,1.72142279 +-1.22881377,0.989075959,1.22881389,0.000256485888,0.0388384238,0.034614902,1.72084951,-0.0455388948,0.0213082656,1.73781681 +-1.11955476,0.989179015,1.11955476,0.000769019185,0.283831298,0.191897646,0.108900949,0.308252752,0.0212157406,1.58340883 +0.428214192,0.989874244,-0.428214192,0.00129935821,0.379793912,0.507611156,1.1953249,0.355291992,0.0203231499,0.60591054 +0.954850674,0.990044892,-0.954850674,0.00142318185,0.218949243,0.150802061,1.03793991,0.221161023,0.0211200807,1.35050321 +-0.288560003,0.990921319,0.288560003,0.000353892858,0.461648464,0.479398817,1.84843087,0.26480943,0.0197843667,0.408134848 +0.101519242,0.990925074,-0.101519242,0.000806603173,0.779933691,0.436335444,0.41731596,0.210841566,0.0196213666,0.144602522 +0.25227949,0.991731942,-0.25227952,0.000237236978,0.512832761,0.490062684,1.59552884,0.32002461,0.0198087282,0.356813312 +-1.07039046,0.991851687,1.07039046,0.00126166956,0.20503363,0.136627749,0.873309791,0.295658648,0.021203585,1.51387477 +-0.723533094,0.99194032,0.723533034,0.00103662279,0.267466009,0.230735064,-1.25807989,1.49962914,0.0207906384,1.02387083 +-1.13925195,0.992426693,1.13925195,0.000741306343,0.295989215,0.194238305,-0.113320142,0.245151743,0.0212373883,1.61133158 +0.251987994,0.992504418,-0.251987994,9.25275745e-05,0.513789117,0.490469486,1.59367168,0.321702331,0.019807782,0.356411248 +0.252743393,0.992673397,-0.252743393,4.4360615e-05,0.512491822,0.490225613,1.59931219,0.321838081,0.019809952,0.357481301 +-0.286253393,0.992829919,0.286253393,0.000115547184,0.464144975,0.480250537,1.84501994,0.281208694,0.0197774805,0.404946089 +-0.194315672,0.992964983,0.194315672,0.000718116993,0.624572039,0.500060201,1.04189336,0.28671965,0.0196398553,0.275925726 +0.54648757,0.993117332,-0.54648757,0.00133849354,0.318517506,0.44828698,-2.021245,0.753406644,0.0211120993,0.77296567 +0.252407521,0.993665457,-0.252407521,0.000108889239,0.513599873,0.490786642,1.59738028,0.32590884,0.0198086705,0.356992245 +0.253484219,0.993937373,-0.253484219,0.000555269944,0.511718035,0.490492135,1.60679746,0.328793854,0.0198120885,0.358502597 +-0.206952095,0.994087636,0.206952095,0.000563169888,0.599618912,0.498225808,1.17423105,0.315791547,0.0196489673,0.293230772 +0.24986057,0.994323432,-0.249860555,0.000210720726,0.518746197,0.492259353,1.5762918,0.329949856,0.0198017657,0.353364348 +-0.288791835,0.99439913,0.288791865,7.69125618e-05,0.461545646,0.479663521,1.85685945,0.285176873,0.0197835118,0.408507168 +1.13993955,0.994421244,-1.13993955,0.00104301679,0.278070271,0.180759862,-0.0916662216,0.204031125,0.0212190263,1.6122632 +-0.160025254,0.994669914,0.160025254,0.000289054209,0.697544813,0.488047332,0.737871647,0.257668585,0.0196184702,0.226500541 +-0.287378013,0.99504447,0.287378013,8.52938501e-06,0.463168591,0.480377853,1.85347712,0.288789392,0.0197792333,0.406532615 +-0.284540206,0.995549738,0.284540236,0.0002317342,0.467464179,0.481935799,1.83746564,0.294353724,0.0197729301,0.402451336 +-0.0143970158,0.995975554,0.014397013,0.00134277937,0.818125546,0.385189474,0.300674677,0.0595379025,0.0196111221,0.0335947201 +-0.309694141,0.996077299,0.309694141,0.000447451661,0.434524983,0.470518321,1.94637644,0.306681305,0.0198212638,0.438040078 +-0.636254787,0.996139407,0.636254787,0.000845068425,0.26756838,0.312734544,-2.37839556,1.40615654,0.0208591167,0.899999976 +0.231234819,0.99628216,-0.231234819,0.000348367845,0.553324401,0.500437737,1.41008902,0.3330248,0.0197529923,0.327197909 +0.944093347,0.997546673,-0.944093287,0.000728413579,0.223466873,0.15351437,1.00954986,0.210301638,0.0210996866,1.33539259 +0.636071324,0.99759388,-0.636071324,0.000714108814,0.263157964,0.306144029,-2.2979641,1.95901966,0.0209470764,0.899735808 +-0.160514504,0.997608185,0.160514504,0.00063287816,0.698248744,0.48806113,0.743564904,0.261200637,0.0196179915,0.227225453 +-0.245389283,0.997613072,0.245389283,0.000241834321,0.525816798,0.494767815,1.55146599,0.327407926,0.0197028909,0.347557873 +0.024384534,0.997696519,-0.024384534,0.00105989457,0.817758143,0.386737078,0.300461024,0.0840803981,0.0196117461,0.039502345 +0.153367102,0.997917533,-0.153367102,0.000404626189,0.712184906,0.482355744,0.694396913,0.272488117,0.0196400154,0.21823585 +-0.157339141,0.998135924,0.157339126,0.000315125944,0.7041924,0.48654142,0.717173517,0.256499857,0.0196169671,0.222828895 +-0.707413793,0.99897933,0.707413793,0.00140746881,0.262034357,0.240674123,-1.44130623,1.61439514,0.0208005775,1.00076997 +1.01667631,0.998989463,-1.01667631,0.00203017541,0.192218512,0.131775737,1.25523758,0.155169755,0.0211711675,1.43816543 +0.933708429,0.999159396,-0.933708429,0.00211049337,0.228089467,0.156468809,0.969979882,0.214030042,0.0210758504,1.32073331 +-0.286905348,0.999173999,0.286905348,0.00034790099,0.464485705,0.481495708,1.86050844,0.318672448,0.0197758246,0.405785114 +-0.636154652,0.999487042,0.636154652,0.000616852485,0.258310825,0.305886567,-2.35508871,2.086689,0.0208382923,0.899913728 +0.39938882,0.999695063,-0.39938882,0.000707571628,0.376569211,0.479784548,1.61276388,0.490292013,0.020254733,0.564990222 +0.518103182,0.999866009,-0.518103182,0.000685561448,0.349582881,0.506889284,-1.33103049,0.400834173,0.020820789,0.732729971 +-0.478214771,1.00024819,0.4782148,0.000780192204,0.360452801,0.521629155,-0.170711458,0.210956544,0.0204289556,0.676470459 +0.325934052,1.00039828,-0.325934052,0.00015871205,0.412565172,0.458383679,1.95190859,0.358908981,0.0200499762,0.461269021 +-0.159478307,1.00040138,0.159478307,9.38383382e-05,0.70227468,0.487204403,0.733986259,0.264125913,0.0196168963,0.225772306 +-0.132362098,1.00085318,0.132362098,0.00076568732,0.745105326,0.463187754,0.548623741,0.239477605,0.0196107514,0.189093232 +-0.311755061,1.00113237,0.311755061,0.000192560838,0.432139128,0.469830692,1.96571302,0.3372536,0.0198231861,0.441015184 +0.142289937,1.00120866,-0.142289937,0.000473221386,0.732840896,0.473544955,0.618041635,0.271288693,0.0196343232,0.201968491 +-0.103174061,1.0012418,0.103174061,0.000377473712,0.777971685,0.439723372,0.413202524,0.188973695,0.0196093414,0.147487983 +1.18503785,1.00125873,-1.18503785,0.000675165735,0.201081634,0.135990396,0.672846794,-0.074244231,0.0212662909,1.6761446 +-0.252687931,1.00134063,0.252687931,0.000387228909,0.515933752,0.494472653,1.61404991,0.343612701,0.0197154097,0.357617557 +-0.315037727,1.00178504,0.315037727,0.000377486664,0.428823143,0.468315363,1.96846128,0.34696731,0.0198335741,0.445611238 +0.0665621087,1.0024178,-0.0665621087,0.000996099669,0.807124853,0.407863051,0.318886787,0.15979895,0.0196135696,0.0982775763 +-1.16597295,1.00285327,1.16597295,0.000799680711,0.229208604,0.148340285,0.174781218,0.0382391661,0.0212605949,1.64916682 +1.19835496,1.00289106,-1.19835496,0.000682464102,0.143241674,0.0965976939,1.32332993,-0.119840831,0.0212761983,1.69493198 +1.2148844,1.00313008,-1.2148844,0.000729805033,0.0729386583,0.0453747399,1.83339524,-0.0554458909,0.0212850235,1.71831095 +1.22865701,1.0033294,-1.22865701,0.000337088568,0.041449897,0.0360498019,1.85029519,-0.0348088816,0.021286875,1.73779082 +0.0897784308,1.00349021,-0.0897784308,0.000720429933,0.793063641,0.426205128,0.374033332,0.197070062,0.0196171086,0.128158152 +0.387987018,1.00359297,-0.387987047,0.000671563612,0.380215526,0.474255621,1.72981763,0.507986665,0.0202289857,0.548978686 +-0.540315688,1.00376463,0.540315688,0.000826704141,0.316740096,0.439502865,-1.99679565,0.578697979,0.0210854467,0.764715314 +-0.437704057,1.00391042,0.437704057,0.000905785069,0.372409761,0.511356771,1.0737648,0.417048335,0.0202212296,0.619315207 +0.167582557,1.00402725,-0.167582557,0.000219679539,0.69232899,0.489994287,0.796327829,0.316907644,0.0196481328,0.237001508 +0.292683303,1.00429451,-0.292683333,0.000365415995,0.452499717,0.475333065,1.91626334,0.363337815,0.0199375413,0.414495975 +-0.155902743,1.00432742,0.155902728,0.000360391365,0.710477114,0.48603645,0.702309132,0.260198116,0.0196152925,0.220601901 +0.59233439,1.00449729,-0.59233439,0.00119498943,0.279671073,0.354981393,-2.51312327,1.03991127,0.021093823,0.83781749 +-0.563991427,1.00470722,0.563991427,0.0011316071,0.299648404,0.399459451,-2.2499218,0.770200372,0.0210985392,0.797772765 +0.334153593,1.00488281,-0.334153593,0.000448046019,0.405392587,0.456484377,1.95720387,0.412985682,0.0200793482,0.47276181 +0.186912984,1.00500059,-0.186912984,0.000782473595,0.652036905,0.49624911,0.976340413,0.337311178,0.0196651872,0.265371978 +0.199310496,1.00507736,-0.199310511,0.000371323578,0.625825703,0.502919257,1.09194946,0.35106352,0.0196855236,0.282496393 +-1.03833663,1.00522339,1.03833675,0.00148211268,0.19371514,0.130594477,1.15905809,0.261460543,0.0211662799,1.46849549 +-0.312267333,1.00548196,0.312267333,0.000350228423,0.431205541,0.470206082,1.9765352,0.370738804,0.0198231954,0.441701442 +-0.526618958,1.00588775,0.526618958,0.00115799392,0.330788016,0.464917958,-1.62358367,0.496688634,0.0209240522,0.745233417 +0.114649147,1.00608516,-0.114649147,0.00059039233,0.772530079,0.449257612,0.457064658,0.233152509,0.0196227133,0.162778392 +0.10248284,1.00614262,-0.10248284,0.000210150567,0.784968615,0.435674965,0.405358523,0.218727767,0.0196189079,0.147239223 +0.232972026,1.00614905,-0.232972026,0.000127201798,0.555259645,0.501018584,1.44450271,0.38064453,0.0197539888,0.329762578 +-0.240328431,1.0064193,0.240328431,0.000526245276,0.540622711,0.499066442,1.51501846,0.3648296,0.0196900759,0.340277344 +0.228408694,1.00647199,-0.228408694,0.000382565748,0.564596415,0.50253135,1.39461207,0.377350897,0.0197431669,0.323282391 +-0.306630343,1.00651288,0.306630343,0.000275951315,0.439379036,0.474031597,1.95768666,0.374430835,0.0198086128,0.433693886 +-0.587210357,1.00682402,0.587210298,0.000378876372,0.284788251,0.359894067,-2.47522521,1.01045108,0.0210931338,0.830957174 +-0.223029941,1.00686979,0.223029926,0.000636073004,0.574227691,0.504198372,1.33199167,0.353885353,0.0196683891,0.316161394 +0.130485132,1.00702024,-0.130485132,0.000231582031,0.754124463,0.462992907,0.534736753,0.252519995,0.0196277369,0.186525434 +0.317449301,1.00738037,-0.317449301,0.000417608622,0.42169565,0.464168131,1.96446192,0.398192167,0.0200200137,0.449157178 +-0.267278314,1.00748825,0.267278314,0.000523316325,0.493069619,0.489365011,1.75872457,0.378711551,0.0197319165,0.378459156 +0.213142425,1.00785542,-0.21314241,0.000504049181,0.59738487,0.503158391,1.24337113,0.369988561,0.0197079871,0.302227944 +-0.112509489,1.00788212,0.112509489,0.000553409627,0.771858037,0.448411137,0.443175137,0.201782167,0.0196087658,0.159819067 +0.507243276,1.00863874,-0.507243276,0.000729220337,0.360494792,0.531855822,-1.13223708,0.320311368,0.0207514986,0.71744293 +-0.893153489,1.00928044,0.893153548,0.00600622548,0.245316446,0.169178054,0.680921674,0.48532033,0.0208561048,1.26427913 +0.354948103,1.00933528,-0.354948103,0.000810892729,0.386282414,0.45629856,1.92010903,0.494966328,0.0201392043,0.502508521 +-0.482746154,1.00938666,0.482746154,0.00114875054,0.364726216,0.533956587,-0.318424523,0.254026443,0.0204624478,0.682921052 +-0.404988855,1.00965643,0.404988825,0.000817924272,0.383745402,0.510256112,1.67373967,0.53094697,0.0200655162,0.573420107 +0.75238502,1.00983775,-0.75238508,0.00495154411,0.275110483,0.215223595,-0.758986354,0.982676029,0.020885542,1.06461811 +0.65531826,1.01017344,-0.65531826,0.00180309347,0.25928703,0.287139297,-2.03290606,1.87759376,0.0209368523,0.92713058 +-0.476621717,1.01086795,0.476621687,0.000147920015,0.36882472,0.538273275,-0.111485273,0.268052608,0.0204227436,0.674340844 +0.324059188,1.01087093,-0.324059188,0.000391263835,0.412798047,0.460834503,1.98085916,0.432221413,0.0200461354,0.458551794 +-0.0680151358,1.01115918,0.0680151433,0.00130296638,0.807025731,0.407299459,0.312356263,0.141680986,0.0196079109,0.099005498 +0.294506758,1.01170421,-0.294506788,0.000552584534,0.450204849,0.475222975,1.9418,0.41204977,0.0199447237,0.416781962 +-0.461098969,1.01187849,0.461098969,0.000658759789,0.371440947,0.531666398,0.366371036,0.321960032,0.0203380063,0.652157366 +0.381337374,1.01201725,-0.381337374,0.000617357029,0.38112855,0.473482817,1.84300327,0.562487125,0.0202090032,0.539511859 +0.389238179,1.01263833,-0.389238179,0.000297662802,0.380116969,0.48280552,1.80352056,0.585860431,0.020227341,0.550743937 +0.506381094,1.01290917,-0.506381094,0.000786395802,0.364612967,0.54123795,-1.13269269,0.315661877,0.020738909,0.716245234 +-0.099351801,1.01305234,0.099351801,0.000124116181,0.788100839,0.43337667,0.382677972,0.183576524,0.0196072645,0.142784238 +-0.0353298113,1.01314187,0.0353298075,0.00104026066,0.817439914,0.391951621,0.275996149,0.0770339519,0.0196080394,0.0565056652 +0.442723453,1.01336575,-0.442723453,0.00109970116,0.394678712,0.561479568,1.03926682,0.372508168,0.0203698408,0.626366317 +-0.088259995,1.01342487,0.088259995,0.000666333828,0.79635179,0.423928887,0.351670951,0.166810304,0.019607326,0.125839368 +0.283852696,1.01344705,-0.283852696,0.00065298297,0.467750281,0.48325175,1.88551378,0.418517917,0.0199040323,0.401711643 +0.509819448,1.01347852,-0.509819448,0.000526262447,0.361257464,0.534210145,-1.25057459,0.338512778,0.0207704511,0.721096873 +0.0980549455,1.01400661,-0.0980549455,0.000367356261,0.791610718,0.431609094,0.381097883,0.211701244,0.0196166188,0.140303969 +0.480745256,1.01516092,-0.480745256,0.00104208197,0.386441588,0.573986113,-0.217143089,0.286939561,0.0205180347,0.680838346 +1.16028452,1.01548123,-1.16028452,0.000960848411,0.220756322,0.138949841,0.114898205,0.0144747794,0.0212311633,1.64099836 +0.462288767,1.01551461,-0.462288767,0.000873232144,0.396123886,0.5796929,0.505579352,0.32678172,0.0204120073,0.654175043 +0.725168705,1.01580644,-0.725168705,0.00327767897,0.275877178,0.236214757,-1.09565234,1.18717372,0.0208638161,1.02592373 +-0.609187663,1.01596379,0.609187663,0.00121631206,0.272843391,0.332123399,-2.52673602,1.11832917,0.0210124478,0.861691952 +1.08358395,1.01608622,-1.08358395,0.00169562222,0.208655417,0.133040771,0.617280722,0.27167809,0.021177737,1.53256249 +0.0370966047,1.01621675,-0.0370966047,0.000741444645,0.818976402,0.39242506,0.267803967,0.107451141,0.0196094066,0.0571425967 +-0.0156531148,1.01637566,0.0156531148,0.000403715123,0.82194531,0.385569394,0.258364201,0.0578369573,0.0196080506,0.0411900431 +-0.431825191,1.01679504,0.431825191,0.000933517003,0.383898556,0.535498857,1.28974736,0.470214754,0.0201607067,0.611129999 +-0.423805356,1.01707816,0.423805356,0.000540316163,0.384412497,0.528348863,1.44634581,0.512317955,0.0201238766,0.599630952 +-0.579788685,1.01821721,0.579788685,0.00113373157,0.284591615,0.371124774,-2.60475206,0.905947268,0.0211499073,0.820335031 +-1.09336066,1.01835084,1.09336066,0.00186811283,0.216118932,0.135170147,0.532056689,0.306043178,0.0212192237,1.54643512 +0.236108959,1.01867914,-0.236108944,0.000303684676,0.556699455,0.505380392,1.49614573,0.452904701,0.0197571646,0.333993554 +0.024798004,1.01906538,-0.0247980021,0.000296604849,0.822459877,0.386321068,0.253962904,0.0904849619,0.0196084008,0.0452318266 +0.00653712172,1.01935911,-0.00653712312,0.00117376377,0.823748112,0.383786649,0.24938032,0.0607332326,0.0196080729,0.0357633606 +-0.194513187,1.01954722,0.194513187,0.000148764069,0.645876825,0.503576577,1.05973887,0.350954026,0.0196344033,0.275084674 +-1.14278483,1.01956677,1.14278483,0.00143755449,0.224813268,0.133245081,0.0285483841,0.160197675,0.0212511141,1.61632633 +-1.11717308,1.01966226,1.11717296,0.00104002515,0.221478999,0.135021776,0.27102834,0.244228601,0.0212336779,1.58004093 +0.400458544,1.02010298,-0.400458544,0.000646693283,0.391181678,0.520816743,1.78003109,0.59890753,0.020260904,0.566473961 +-0.13547197,1.02056241,0.135471955,0.000619191909,0.753071964,0.464457542,0.552431941,0.257133424,0.0196071453,0.192340642 +-0.197150424,1.02073073,0.197150424,0.000232331411,0.641390979,0.503755271,1.08395052,0.356667787,0.0196357854,0.278818965 +-0.970342457,1.02074778,0.970342457,0.00205022399,0.210769534,0.14396067,1.18104553,0.211490288,0.02102907,1.37227201 +0.133652434,1.02094769,-0.133652434,0.00074542535,0.758535624,0.464811414,0.541977882,0.268109858,0.0196259152,0.189872921 +-0.197031707,1.02103913,0.197031707,6.47191939e-07,0.641857743,0.503751814,1.08312643,0.357138634,0.0196356121,0.278663248 +-0.197432101,1.02110064,0.197432101,0.000216872097,0.64105767,0.504137993,1.08673942,0.357607126,0.0196361206,0.279218853 +-0.197123826,1.02112424,0.197123826,7.33631822e-08,0.641720235,0.503844619,1.08387887,0.357119083,0.0196356848,0.278792828 +-0.339520484,1.02116895,0.339520514,0.000786268909,0.401562601,0.466950387,2.05946279,0.573668301,0.0198683795,0.480308056 +-0.197001278,1.02124107,0.197001293,4.72867614e-05,0.642076194,0.503824532,1.08258855,0.35709542,0.0196355581,0.278615355 +-0.196404964,1.02130878,0.196404964,0.00016336597,0.643350661,0.50383848,1.07684195,0.356259078,0.0196351577,0.277762443 +-0.278928787,1.02133572,0.278928816,0.00045006015,0.477994263,0.488493621,1.8628993,0.471182287,0.0197482482,0.394845545 +-0.197193995,1.0214051,0.19719398,0.000232938532,0.641799688,0.50399518,1.08430672,0.357639998,0.0196357332,0.278881192 +0.427378416,1.02145791,-0.427378416,0.000983251259,0.401537627,0.564680636,1.48280072,0.530412257,0.0203266367,0.604671597 +0.591292083,1.02175689,-0.591292083,0.00078889553,0.277548045,0.356468916,-2.65519214,1.03565633,0.0211551413,0.836558521 +-0.171480224,1.02202797,0.171480209,0.000293268764,0.693799198,0.495175838,0.829840541,0.30012241,0.0196181778,0.243135586 +0.605179012,1.02219927,-0.605179071,0.00121431774,0.271644413,0.339659005,-2.62353277,1.10172188,0.0210832953,0.855981827 +0.164161369,1.02261925,-0.164161369,0.000267720461,0.712014198,0.486937165,0.763651609,0.34060654,0.019642733,0.232203826 +-0.103855975,1.02280092,0.103855975,0.00070248259,0.789457738,0.436946601,0.387805223,0.186394483,0.0196055695,0.147717386 +0.165652767,1.02291703,-0.165652767,0.000163288598,0.70976299,0.48768267,0.773795187,0.34254536,0.0196434259,0.23434402 +0.16661571,1.02297366,-0.16661571,0.000262069952,0.707937241,0.488680512,0.781405509,0.343535185,0.019644253,0.235681653 +-0.680881321,1.0229938,0.680881321,0.00152989523,0.254119247,0.254694492,-1.69110012,1.73994088,0.020791674,0.964181423 +0.270701498,1.02312303,-0.270701498,0.000444848352,0.490927219,0.493270695,1.81975412,0.482349783,0.0198583286,0.383588374 +0.507523775,1.02313447,-0.507523775,0.000781043433,0.377058983,0.573370457,-1.21014714,0.424299151,0.0207663998,0.717781007 +-0.344266474,1.02330458,0.344266474,0.000712927314,0.397858143,0.465868801,2.05779672,0.606514156,0.0198836494,0.487097055 +0.635910511,1.02360904,-0.635910511,0.000551014615,0.260794461,0.30257231,-2.50340438,1.29133904,0.0209161509,0.900000036 +0.166077688,1.02393997,-0.166077688,2.18082077e-05,0.709679484,0.488193274,0.776174784,0.343288869,0.0196436122,0.234937027 +1.09924412,1.02440643,-1.09924412,0.00141365442,0.210525841,0.129974008,0.408319682,0.23284699,0.0211813375,1.55468822 +0.220701069,1.02463341,-0.220701069,0.000443716533,0.592499852,0.510416985,1.3203454,0.419658363,0.0197195131,0.312771648 +-1.03592277,1.02477157,1.03592277,0.000144392267,0.194894627,0.128699899,1.12144208,0.256741315,0.021156976,1.46526372 +1.15267575,1.02505004,-1.15267587,0.000193202315,0.214139432,0.128012702,0.0266967546,0.037514884,0.0212164111,1.63041723 +0.165335089,1.02505565,-0.165335089,0.000369306974,0.711651862,0.487933159,0.769176722,0.342587888,0.0196429398,0.233863294 +-1.02661037,1.02523696,1.02661037,0.00181487133,0.192897335,0.12777476,1.17625737,0.242103279,0.0211444255,1.45206022 +-1.04778922,1.0259192,1.04778922,0.00151109626,0.199083939,0.129372314,0.981593668,0.261901557,0.0211697035,1.48190546 +-0.485051215,1.02594686,0.485051215,0.000820664689,0.384186894,0.581112266,-0.399521112,0.516774297,0.0205149259,0.686074972 +-0.227802187,1.02617538,0.227802187,0.000627195986,0.578615069,0.509298921,1.41007996,0.433723092,0.0196678359,0.322555333 +0.173377454,1.02626276,-0.173377454,0.000255217281,0.696529925,0.495791793,0.845754743,0.362039536,0.0196506139,0.245198041 +-0.6467489,1.0264492,0.6467489,0.00132425025,0.249378443,0.289645255,-2.1643033,2.06401706,0.02083515,0.915374815 +0.110839911,1.02649736,-0.110839911,0.000479326845,0.787369668,0.44116661,0.415422499,0.241216242,0.0196168609,0.157068074 +-0.63598156,1.0265547,0.635981619,0.000384724524,0.258014768,0.30005762,-2.58666039,1.2685461,0.0208923128,0.899999976 +0.595602095,1.02666378,-0.595602095,0.000584328722,0.272399962,0.347497195,-2.67766762,1.0474813,0.0211411323,0.842593551 +0.98914206,1.02667856,-0.98914206,0.00309035811,0.202284411,0.137236193,1.22570777,0.0958807021,0.0211230312,1.39931452 +-0.334872007,1.02773774,0.334872037,0.000386917993,0.405516475,0.470735282,2.07415032,0.616622329,0.019850567,0.473748803 +1.14306808,1.0282073,-1.14306808,0.00138880953,0.212134808,0.125938118,0.0531047583,0.0731367767,0.0212067347,1.61667728 +0.0326497592,1.02857292,-0.0326497629,0.000419359247,0.823723137,0.389531314,0.246749729,0.0955566689,0.0196070727,0.0520051271 +-0.168893501,1.02879798,0.168893486,0.000203308562,0.703706026,0.493593544,0.805985391,0.307162344,0.01961549,0.239505991 +-0.410403609,1.02898598,0.410403609,0.0004587078,0.389369309,0.528301775,1.66583693,0.671743453,0.0200644694,0.580535591 +-0.391724229,1.02971554,0.391724229,0.000657404424,0.391265154,0.515617549,1.91866827,0.759067178,0.0199981295,0.554314613 +-1.18206048,1.03031075,1.18206048,0.000707659521,0.179114059,0.111051001,0.544775844,-0.0195933655,0.0213026404,1.67173672 +-0.342525065,1.03037369,0.342525065,0.000401100842,0.398715109,0.470122397,2.08697343,0.663018584,0.0198778026,0.484559894 +-0.468090206,1.03040445,0.468090177,0.000601094682,0.400228411,0.601632476,0.337704182,0.412000507,0.0203491673,0.66201973 +-0.257655174,1.03044403,0.257655174,0.000204272917,0.520083666,0.501108229,1.71496332,0.535290658,0.0197075065,0.364390075 +0.194758385,1.03054464,-0.194758385,0.000311897747,0.655700564,0.506098807,1.0496192,0.406978637,0.0196711365,0.275536239 +0.305990756,1.03083873,-0.305990756,0.000521888665,0.432924956,0.477198899,2.05503345,0.591849387,0.0199791081,0.433209121 +0.346753895,1.03105092,-0.346753925,0.000556642481,0.392998815,0.471494108,2.07444096,0.703874171,0.0201178677,0.490777194 +0.635746777,1.03113651,-0.635746837,0.000970370776,0.25271374,0.295266807,-2.20176172,1.9874177,0.0209502112,0.899722099 +0.575755835,1.03121006,-0.575755835,0.0012434267,0.297218442,0.404842198,-2.5923748,1.01213562,0.0211774148,0.814354599 +-0.258731753,1.03155804,0.258731753,0.000179053895,0.518688321,0.501022756,1.72690129,0.542274535,0.0197083913,0.365920037 +-0.056473095,1.03169036,0.0564730912,0.000635762815,0.816249609,0.402046323,0.271002084,0.118897647,0.0196049269,0.0824879333 +-0.159308121,1.03194213,0.159308121,0.00030112415,0.721306682,0.489768565,0.723240376,0.290403068,0.0196122639,0.225622565 +-0.256623268,1.03195167,0.256623268,0.000228810124,0.523138642,0.502534926,1.70619082,0.540345669,0.0197057053,0.362931103 +-0.25813669,1.03195238,0.25813669,1.33643141e-06,0.519874692,0.501386344,1.72233963,0.543977737,0.0197075512,0.365096539 +0.197951093,1.03216064,-0.197951093,0.000229004741,0.64989388,0.508060277,1.08484793,0.413643301,0.0196760632,0.280073494 +-0.258338898,1.03246093,0.258338928,1.35969799e-06,0.51970154,0.501601219,1.72632277,0.54768461,0.0197074749,0.365376711 +-0.259247482,1.03283668,0.259247482,0.000252047466,0.518073916,0.501569748,1.73507607,0.552641213,0.0197085664,0.366643339 +0.253648937,1.03286147,-0.253648937,0.000518392189,0.530591488,0.507261455,1.66878438,0.530451775,0.0198033303,0.358955026 +-0.257566839,1.03290129,0.257566839,0.000108781009,0.521764874,0.502400875,1.71742499,0.547478974,0.019706618,0.364271849 +-0.381079704,1.03295839,0.381079674,0.000899939972,0.395851195,0.518716931,2.00790453,0.780268848,0.0199639443,0.539433897 +-0.293929577,1.03313589,0.293929577,0.000520702277,0.455295742,0.485678524,1.99914885,0.588999093,0.019762041,0.415886402 +0.377892196,1.03344214,-0.377892196,0.00049325201,0.385496616,0.49588418,2.00360441,0.80059576,0.0202112794,0.534491301 +0.0748264641,1.03376269,-0.0748264641,0.000444699894,0.814185381,0.410324782,0.29009369,0.170091838,0.0196085926,0.106288612 +-1.0326333,1.03396487,1.0326333,0.000176857415,0.192278445,0.126501009,1.13331461,0.233341679,0.0211508274,1.46072912 +-0.175573558,1.0342989,0.175573543,0.000296508748,0.695402503,0.498264641,0.865869761,0.336088777,0.0196177904,0.248521253 +0.196084127,1.03449249,-0.196084112,1.28124539e-05,0.655514181,0.507309914,1.06621885,0.4172602,0.0196720529,0.277508855 +0.168730527,1.03453755,-0.168730542,0.000308764458,0.711757064,0.494140327,0.79032886,0.35987854,0.0196446627,0.238627821 +-0.335385263,1.03475702,0.335385263,0.000351163559,0.404941171,0.472929269,2.08721447,0.677742243,0.0198523048,0.474454761 +-0.258118898,1.03481174,0.258118927,0.00022341685,0.521574378,0.503572762,1.72617102,0.560338616,0.0197071619,0.365042567 +-0.635782719,1.03487277,0.635782719,0.000247112912,0.245793998,0.295549631,-2.28365541,2.13039351,0.0208411273,0.899850547 +0.24482578,1.03487837,-0.24482578,0.000338487414,0.548104465,0.510073781,1.59822464,0.52877754,0.0197743103,0.34660238 +-0.0277107432,1.03490949,0.0277107432,0.00104460178,0.825826168,0.386846423,0.236886188,0.0620130897,0.0196048133,0.0449768007 +0.194595188,1.03523481,-0.194595203,0.00037298238,0.659238875,0.507468939,1.04882753,0.414364755,0.0196701791,0.275415719 +-0.217676193,1.0353359,0.217676193,0.000348400994,0.607393265,0.513774395,1.30550671,0.428198755,0.0196528547,0.308172286 +-0.708637953,1.03562617,0.708637953,0.00266370852,0.257769048,0.240059271,-1.26221275,1.43477738,0.020792,1.00333023 +-0.748450696,1.03565979,0.748450696,0.00599031337,0.26899305,0.212236255,-0.732280016,1.07125235,0.0207637884,1.06076384 +-0.622020721,1.03589284,0.622020721,0.00147857575,0.26164341,0.31627962,-2.65082455,1.24615669,0.0209977236,0.880155683 +1.09052932,1.03593707,-1.09052932,0.00128175225,0.202210337,0.125918671,0.511607409,0.195582733,0.0211809929,1.54241908 +-1.17095101,1.03598726,1.17095101,0.000353495707,0.180180192,0.107474588,0.458687246,0.0372387953,0.0212959796,1.65601563 +0.0655692965,1.03631556,-0.065569289,0.000350551563,0.81738317,0.405879378,0.276227444,0.153867885,0.0196075961,0.0935437158 +0.235836864,1.03646719,-0.235836864,0.000327933871,0.568972051,0.513237894,1.50896871,0.520960927,0.0197508875,0.333741456 +0.198345557,1.03672218,-0.198345572,0.000124372906,0.652265728,0.509485424,1.09593701,0.434139937,0.0196751487,0.280616969 +1.04400837,1.03688014,-1.04400837,0.000790697348,0.190448597,0.12552771,1.05135834,0.146176189,0.0211734101,1.4764924 +0.0255350005,1.03712392,-0.0255350005,0.000656611111,0.826988518,0.386666954,0.22499828,0.0805285871,0.0196057186,0.0426804796 +-0.307005942,1.03750849,0.307005942,0.000484914955,0.435639918,0.478196859,2.06623387,0.637843847,0.0197920557,0.43452704 +-1.1794945,1.03756714,1.1794945,5.92462093e-05,0.173062876,0.103774674,0.529930949,-0.00153320283,0.0213065296,1.66815543 +0.742013931,1.03771996,-0.742013991,0.000656757853,0.277103513,0.219918996,-0.780984879,0.953890264,0.0208575819,1.05004191 +0.836902201,1.03780437,-0.836902201,0.00476342021,0.263699025,0.182195708,0.23923631,0.403776467,0.0208799224,1.18397868 +-0.515153348,1.03793585,0.515153348,0.000662164646,0.346695185,0.5193187,-1.56553245,0.615592062,0.0209392514,0.728558302 +-0.2820068,1.03793907,0.2820068,0.000402702222,0.476801276,0.493984848,1.93908429,0.604034185,0.0197443664,0.399073184 +-0.126657099,1.03807676,0.126657099,0.000663726882,0.77223748,0.457558244,0.494359612,0.242102593,0.0196034424,0.180031478 +-0.138221368,1.03830934,0.138221368,0.000162368699,0.758104622,0.468106031,0.560441971,0.260094523,0.0196040608,0.197186857 +1.04864907,1.03853309,-1.04864907,0.000884775829,0.191834688,0.125928923,1.01133227,0.157369554,0.0211729575,1.48306167 +0.121920809,1.03880441,-0.121920809,0.000416780851,0.781082392,0.452302545,0.461103678,0.263945639,0.0196179152,0.172823533 +1.15114951,1.03921676,-1.15114951,0.000726977538,0.20209536,0.118617289,0.0479984656,0.0143371876,0.0212108064,1.62818956 +0.315628618,1.03944314,-0.315628618,0.000439807249,0.419451743,0.473138511,2.09311628,0.671561122,0.0200177208,0.446947664 +-1.18375838,1.03951621,1.18375838,0.000547240605,0.163230658,0.0982934982,0.633205116,-0.0248609558,0.0213132184,1.67418337 +-1.20683515,1.03954482,1.20683503,0.000843124813,0.0928364992,0.0555120111,1.39793277,-0.017922869,0.0213241726,1.70682168 +-1.22867584,1.03955066,1.22867584,0.000405537838,0.0435167588,0.0325177722,1.6280272,-0.0362380072,0.0213334318,1.73771071 +-0.145562738,1.04005897,0.145562738,0.000501607778,0.748838544,0.477295935,0.604804039,0.267606258,0.0196056459,0.206880808 +-0.973165214,1.04020095,0.973165274,0.00239744969,0.20910722,0.142243683,1.21874881,0.189884499,0.0210008249,1.37627673 +0.0773305669,1.0402267,-0.0773305669,0.000326886598,0.814977884,0.41204983,0.287489593,0.174482197,0.0196078178,0.109968215 +0.394216835,1.04035008,-0.394216835,0.000483765645,0.398601115,0.541261792,1.98750639,0.864491343,0.0202596914,0.557562709 +0.0903431475,1.04036355,-0.0903431475,0.000440707488,0.806197762,0.425330549,0.332701206,0.201647133,0.0196103416,0.12788634 +-0.974216044,1.04046655,0.974216104,0.00118332566,0.208656296,0.141897634,1.22526217,0.186366126,0.0210029483,1.37775946 +-0.973802507,1.04049635,0.973802507,0.000262162066,0.208818898,0.142024681,1.22412205,0.186572954,0.0210019313,1.37718463 +0.754992783,1.04053557,-0.754992783,0.00214537117,0.274769843,0.213942766,-0.62568897,0.860715032,0.0208587125,1.06863844 +0.362505913,1.04070449,-0.362505913,0.000445461512,0.38999936,0.497598529,2.10957718,0.861313224,0.0201751981,0.512839615 +0.281267196,1.04079819,-0.281267196,0.000264368922,0.479820162,0.495089322,1.94142091,0.642684579,0.0198910292,0.397854 +-0.973977327,1.04087722,0.973977387,2.68291188e-07,0.208752647,0.141966939,1.22487438,0.185717478,0.0210020002,1.37743223 +0.0731427073,1.04095185,-0.0731427073,0.000366613036,0.816738248,0.409266919,0.278309852,0.167133376,0.0196072757,0.104386255 +0.419524074,1.04108357,-0.419524074,0.00109627564,0.412900001,0.589363515,1.76137781,0.733412862,0.0203294326,0.593634844 +0.27720663,1.0411756,-0.2772066,0.000333844102,0.486423999,0.49753207,1.91922772,0.642778933,0.0198755544,0.392112404 +0.221163109,1.04123235,-0.221163124,0.000453937624,0.603355408,0.516931951,1.35014093,0.492586315,0.0197144393,0.313351959 +-0.973770261,1.04131114,0.973770261,0.00141050445,0.208827496,0.142010063,1.22462487,0.184639096,0.0210011844,1.37713397 +-0.973188341,1.0415417,0.973188281,0.00191549456,0.209091455,0.142173439,1.22182786,0.184803516,0.0209997948,1.37630665 +-0.974562466,1.04160988,0.974562466,0.00155812863,0.208523273,0.141795963,1.22402728,0.183651656,0.0210028682,1.37824607 +0.11631652,1.04169905,-0.116316527,5.60071276e-05,0.788070202,0.445967883,0.4267326,0.253943652,0.019615151,0.165706486 +-0.184170231,1.04192722,0.184170246,0.000175753928,0.683129191,0.504870296,0.940431118,0.355470181,0.0196208321,0.261265963 +1.17224705,1.04212308,-1.17224705,0.000747748069,0.18142131,0.110109568,0.4651981,-0.037580356,0.0212289933,1.65783858 +0.197482616,1.04240608,-0.197482616,0.000231872749,0.658889115,0.511902869,1.077564,0.443926334,0.0196727719,0.27932024 +0.112162434,1.04243875,-0.112162426,0.000406883657,0.791623116,0.44332993,0.407369763,0.243828565,0.0196141265,0.159996778 +0.685320079,1.04246354,-0.68532002,0.002183103,0.263321161,0.257047355,-1.46976352,1.39507127,0.020905938,0.96952486 +-0.384875834,1.04248536,0.384875834,0.000137651732,0.395883888,0.526081026,2.02260017,0.87199676,0.0199763197,0.544954896 +-0.229811624,1.04262185,0.229811624,0.000414679467,0.586394727,0.519426286,1.42690325,0.491170764,0.0196689256,0.325221419 +1.18563199,1.04286993,-1.18563199,0.000740977819,0.163273573,0.101976089,0.787204921,-0.0878645927,0.0212431662,1.67680669 +-0.422206223,1.04297972,0.422206223,0.000698502408,0.408971071,0.589237332,1.67575383,0.787703156,0.0200927593,0.597212434 +0.54272902,1.04305243,-0.54272908,0.00152718835,0.333617687,0.497336,-2.43941975,0.877622783,0.0212196074,0.768098712 +1.2073977,1.04312122,-1.2073977,0.000706030405,0.0933616087,0.0565509126,1.58092999,-0.0414333828,0.0212606639,1.7075901 +1.22877002,1.04313564,-1.2287699,0.000344325323,0.0444760099,0.0340887085,1.7622925,-0.0275854561,0.021266995,1.73781621 +-0.0825949609,1.04319251,0.0825949609,0.000475575129,0.809662938,0.421236217,0.297524244,0.141537473,0.019602282,0.117159486 +0.331989437,1.04321706,-0.331989437,0.000501319591,0.403511345,0.481673717,2.12390566,0.763904631,0.0200689919,0.470021188 +1.03897941,1.04329777,-1.03897941,0.000962591555,0.192458138,0.126431748,1.0411123,0.133935675,0.0211636685,1.46939158 +0.589644969,1.0433073,-0.589644969,0.00112577085,0.268528283,0.352618188,-2.71155763,1.14101565,0.0212669317,0.8340137 +0.2411367,1.043396,-0.241136715,0.000109068613,0.56231761,0.517831326,1.55556118,0.55051744,0.0197629128,0.341277182 +-0.166546091,1.04359651,0.166546091,0.000268331438,0.717520118,0.494859219,0.770273805,0.324175835,0.0196116176,0.235764697 +0.076049298,1.04376018,-0.076049298,0.000390236906,0.816240549,0.411569893,0.279882967,0.171867177,0.0196071118,0.108481959 +-0.193298861,1.0437634,0.193298861,0.00026445309,0.665778279,0.513620973,1.02703774,0.374763489,0.0196296424,0.273792386 +-0.535707593,1.04432428,0.535707593,0.000910009257,0.332609981,0.496326834,-2.24997258,0.77628839,0.0211905334,0.757650673 +-0.373319685,1.04445779,0.373319685,0.000636546523,0.397644699,0.519288361,2.06664872,0.860042691,0.0199433342,0.528291285 +-0.300475955,1.04530096,0.300475955,0.0003791161,0.446013927,0.486807108,2.04149055,0.674100399,0.0197715405,0.425410837 +0.0107862419,1.04545462,-0.0107862437,0.000899940846,0.829342961,0.385289311,0.209068507,0.0561310425,0.0196042955,0.030966023 +1.04642868,1.04546607,-1.04642868,0.000456450274,0.190157518,0.124548212,1.02416158,0.133187115,0.0211723708,1.47993803 +-1.0284313,1.0457468,1.0284313,0.00123452046,0.191862106,0.127173007,1.15914738,0.191897422,0.0211321581,1.45456409 +0.280665338,1.0459199,-0.280665308,0.000262590911,0.481291294,0.498338431,1.94686401,0.679131508,0.0198888816,0.396991014 +0.276978374,1.04611993,-0.276978374,0.000119369208,0.488643408,0.500901103,1.91900432,0.667086542,0.019874312,0.391842663 +0.143912971,1.04642439,-0.143912971,0.000623513944,0.757881463,0.478779554,0.584989309,0.284008503,0.0196269322,0.204434395 +1.0505805,1.04669952,-1.0505805,0.000970671128,0.188977018,0.123153932,0.978971899,0.125453562,0.0211741142,1.4858042 +-0.647073984,1.04690564,0.647073984,0.000767474237,0.245381981,0.283635497,-2.05102849,1.92755651,0.0208343789,0.915851831 +0.0509219989,1.04719079,-0.0509219989,0.000625521177,0.824285328,0.398913741,0.239540875,0.127172902,0.0196051635,0.0815130547 +-1.04215252,1.04724216,1.04215252,0.00129518332,0.188113719,0.122667074,1.02862418,0.178836241,0.0211634096,1.47395122 +0.133662611,1.04737341,-0.133662626,0.000355576893,0.771149278,0.465620905,0.516114295,0.276150048,0.0196208563,0.190203875 +-0.452946782,1.04742551,0.452946782,0.000575736689,0.430015385,0.657797635,0.956366062,0.580885112,0.0202345401,0.640843391 +-1.1843915,1.04746401,1.1843915,0.00084252184,0.158561796,0.0944606513,0.648352087,-0.0169090051,0.0213148873,1.67506909 +-1.22868884,1.04750979,1.22868884,0.000380292564,0.0439416021,0.0328489579,1.61933422,-0.0336704291,0.0213341024,1.73771906 +-1.20715511,1.04751527,1.20715511,0.000793140614,0.0920577943,0.0551306158,1.39120972,-0.0113320276,0.0213250257,1.7072643 +-1.14584327,1.0475719,1.14584327,0.0013492119,0.198247671,0.114279836,0.0703518838,0.0694422796,0.0212653577,1.6208185 +-0.340807825,1.04767883,0.340807796,0.000201618663,0.400792718,0.481134951,2.13973665,0.853290915,0.0198629051,0.482025504 +0.118042931,1.04816484,-0.118042931,0.000447171653,0.788886964,0.447840542,0.429546893,0.262873948,0.0196141824,0.167777002 +-1.17628944,1.04834676,1.17628944,0.000717145856,0.164061531,0.0970568061,0.538483441,-0.0133623574,0.0213077907,1.66360235 +0.30187425,1.04847074,-0.30187422,0.000425598933,0.441811979,0.48881793,2.0629909,0.715582609,0.0199644305,0.427314937 +-0.392012864,1.0487293,0.392012864,0.000478632923,0.400197387,0.541275322,2.00266433,0.956031322,0.0199891943,0.554911613 +-0.308953881,1.0488224,0.308953881,0.000483340613,0.433500022,0.482919514,2.08831453,0.738864183,0.0197972488,0.437241435 +-0.0713112727,1.04896426,0.0713112652,0.00032921083,0.818001032,0.411492914,0.265628606,0.123310693,0.0196014028,0.101932362 +-0.206629783,1.04967189,0.206629783,0.000308124232,0.641181707,0.5179708,1.18614256,0.438980997,0.0196377765,0.293007523 +0.270430952,1.04977238,-0.270430952,0.000370705529,0.504817247,0.509044051,1.8571285,0.668486476,0.0198526606,0.382486731 +0.341805816,1.05015588,-0.341805816,0.000578759995,0.394180775,0.481738091,2.14301395,0.861380816,0.02011282,0.483999074 +-0.106185809,1.05070305,0.106185809,0.000676784664,0.797908723,0.439479113,0.370240927,0.189520672,0.0196003392,0.151447445 +0.247878015,1.05118191,-0.247878015,0.000437380164,0.551952481,0.521757841,1.62583649,0.610417128,0.0197817106,0.350667715 +-0.182214648,1.05173266,0.182214648,0.000485267636,0.694129705,0.507464528,0.908684194,0.361487597,0.0196183249,0.25820303 +1.18411183,1.05193794,-1.18411171,0.000685504987,0.162827402,0.0996273458,0.718390882,-0.079507269,0.0212375093,1.67469227 +-0.575353265,1.05198479,0.575353205,0.0015001914,0.276658773,0.37546736,-2.86930656,0.930042207,0.0212430265,0.814752221 +1.20655847,1.05228782,-1.20655847,0.000485531811,0.0953749493,0.057565093,1.54209566,-0.0368417092,0.0212564878,1.70643973 +1.2287401,1.05230236,-1.2287401,0.000240660505,0.0450163707,0.0336795636,1.74359679,-0.0260744356,0.0212636814,1.73781109 +0.857090473,1.0523026,-0.857090473,0.00317090657,0.258791953,0.175328195,0.493160844,0.25722611,0.0208903439,1.21260953 +-0.533362448,1.05230522,0.533362448,8.3861225e-05,0.33741042,0.511903465,-2.26900768,0.805662334,0.0211973153,0.754499435 +-0.460369527,1.05253589,0.460369527,0.000512287021,0.435836256,0.680521786,0.666822433,0.553545952,0.0202931594,0.651237011 +0.208444074,1.05257964,-0.208444089,0.000215570355,0.64192152,0.523400843,1.18770266,0.488411546,0.0196904372,0.294965744 +0.366550237,1.05263042,-0.366550267,0.000358320685,0.388730705,0.50688678,2.14767599,0.990646243,0.0201975238,0.518725395 +0.361431479,1.05290246,-0.361431479,0.000445249141,0.390343189,0.505344331,2.15341496,0.970769763,0.0201788172,0.511423111 +-0.215613008,1.05318737,0.215612993,0.000191163999,0.626011789,0.524563909,1.26663184,0.472221076,0.0196488649,0.305053771 +-0.453621686,1.05327904,0.453621656,7.69995531e-05,0.440780818,0.685359597,0.97367698,0.60047555,0.0202303473,0.641867161 +-0.681688905,1.05338907,0.681688905,0.00259244279,0.248219714,0.245058194,-1.5181179,1.53388631,0.0207901113,0.965354204 +-0.284280598,1.05367494,0.284280598,0.000371069065,0.47554183,0.50088048,1.96107125,0.706189096,0.0197475068,0.40260908 +-0.537313044,1.05384147,0.537313044,0.000711367757,0.331845999,0.498770118,-2.36713076,0.821884096,0.0212192368,0.759978592 +0.972334504,1.05425787,-0.972334504,0.00189459615,0.208749861,0.140098736,1.20682716,0.0370337553,0.0210749134,1.37587368 +0.726985216,1.05426586,-0.726985157,0.00194857013,0.272428393,0.230847478,-0.885475516,0.976967573,0.0208606273,1.02882242 +-0.0409067348,1.05428946,0.0409067348,0.000688158965,0.827743709,0.393484473,0.219865724,0.0876421034,0.0196016878,0.0636334121 +-0.385448396,1.05432105,0.385448396,0.000460405892,0.39797157,0.536420882,2.05529761,1.0204289,0.0199780203,0.545523882 +-0.528776288,1.05449235,0.528776288,0.000511459773,0.347703934,0.533605516,-2.1060493,0.782157719,0.0211351514,0.747900248 +0.739552081,1.05481625,-0.73955214,0.00123782409,0.27611497,0.217866644,-0.729090691,0.840582907,0.0208543912,1.04687166 +0.292468905,1.0556047,-0.292468905,0.00035477971,0.458804667,0.4979783,2.03911972,0.756014287,0.0199306794,0.414297611 +-0.535311401,1.05595362,0.535311341,2.2860213e-05,0.334679216,0.507504404,-2.36016941,0.823472261,0.021221526,0.757232547 +-0.532925487,1.05595529,0.532925487,1.31713768e-05,0.341375709,0.523374736,-2.29812503,0.819561303,0.0211986937,0.753890872 +-0.350823313,1.05606556,0.350823313,0.000500867143,0.398988485,0.507737696,2.1736784,0.992779016,0.019871667,0.496909291 +0.465126574,1.05619776,-0.465126604,0.000417903066,0.460807264,0.723862112,0.612615108,0.683236599,0.0204316303,0.657822788 +-0.6362468,1.05619967,0.6362468,0.000733384979,0.243516028,0.283179641,-2.57877779,1.10525084,0.0208951123,0.900000036 +0.231406271,1.0569092,-0.231406271,0.000241373215,0.59395659,0.52900064,1.44766712,0.574396491,0.0197368711,0.327320874 +-0.0649660826,1.05710495,0.0649660751,0.000694483228,0.822091341,0.408411771,0.247111857,0.112577975,0.0196002927,0.0929808766 +-0.234486938,1.05711234,0.234486938,0.000709860935,0.58588171,0.526841879,1.49294686,0.566413283,0.0196706448,0.331965476 +-1.11968946,1.05726123,1.11968946,0.000777535955,0.195859283,0.114833236,0.206960961,0.101691335,0.0212511793,1.58355308 +-0.0743250921,1.05731642,0.0743250847,0.000139961543,0.819162786,0.414047807,0.260586053,0.124748051,0.0195998717,0.106444038 +-0.143080145,1.05779755,0.143080145,0.000377134827,0.762590647,0.475862056,0.562440813,0.274380028,0.0196018014,0.202901334 +0.551779926,1.05800772,-0.551779866,0.000901063089,0.317142844,0.46720171,-2.64612436,0.980426133,0.0212975759,0.780909002 +0.461523056,1.05801737,-0.461523056,0.000579850923,0.462305516,0.724794924,0.716445982,0.719518661,0.0204214826,0.652728438 +0.0378738083,1.05802917,-0.0378738046,0.000621619052,0.829205811,0.393838614,0.207178116,0.100445077,0.0196033251,0.0637483224 +0.314417899,1.0581727,-0.314417899,0.000382358674,0.423204422,0.486936152,2.11708713,0.839307964,0.0200229026,0.445116103 +-0.159797952,1.05870044,0.159797937,0.0002737451,0.73851341,0.490759522,0.701426148,0.328179479,0.0196054857,0.226754338 +0.402151436,1.05887294,-0.402151465,0.00047231777,0.412886262,0.585068703,2.0524559,1.03226984,0.020295877,0.568859458 +-0.120188221,1.05895126,0.120188221,0.000398502219,0.789644897,0.453035831,0.428499341,0.22474663,0.0195989367,0.17082715 +0.46768412,1.05906141,-0.46768412,0.00049361377,0.464196891,0.733479857,0.528066099,0.703640282,0.0204465594,0.661485195 +0.947675228,1.05914092,-0.947675228,0.0041550626,0.219689414,0.146837696,1.1144129,0.0430743098,0.0210167691,1.34107542 +-0.200467497,1.05954051,0.200467497,0.000277645682,0.663177609,0.525633633,1.09262288,0.442186236,0.0196343064,0.283680141 +-0.439945519,1.05962157,0.439945519,0.000648585963,0.437274873,0.667559445,1.34275603,0.797386646,0.0201625377,0.622254968 +-0.321251631,1.05994153,0.321251631,0.000803901639,0.417010188,0.489754021,2.14419556,0.876320243,0.0198009331,0.45501405 +0.636018276,1.06001043,-0.636018276,0.000530637335,0.245056123,0.293854237,-2.06101894,1.85501933,0.0209785253,0.899725199 +0.523136377,1.06017888,-0.523136377,0.000881739077,0.391192257,0.626571417,-1.85761273,0.922384739,0.0210330561,0.740006089 +-0.0809736177,1.06031895,0.0809736252,0.000545748568,0.816714406,0.419488698,0.276452422,0.13719219,0.0195991453,0.11502628 +0.393532366,1.06034982,-0.393532366,0.000288455922,0.408488095,0.573759019,2.10058093,1.06011093,0.0202744752,0.556818247 +0.204051852,1.06036866,-0.204051852,0.000110936286,0.657629907,0.525812805,1.13483858,0.492221773,0.0196806043,0.288866222 +-0.532875121,1.06074727,0.532875121,0.000734690868,0.340612918,0.524491072,-2.31480479,0.966558576,0.0212237798,0.753702462 +0.329191804,1.06080449,-0.329191804,0.000447837461,0.408705115,0.493045121,2.14381838,0.915566921,0.0200688355,0.465956688 +0.199539125,1.06097162,-0.19953914,0.000121311255,0.667616367,0.52276057,1.09167302,0.480961114,0.0196731333,0.282606721 +-0.541341066,1.06131411,0.541341007,0.00068231544,0.322820842,0.482752144,-2.42158246,0.873329282,0.0212356821,0.765631318 +0.397087842,1.06148529,-0.397087812,9.09726805e-05,0.410173446,0.579886258,2.09097195,1.08494389,0.0202888455,0.561883509 +0.466925859,1.06166208,-0.466925889,1.69133382e-05,0.470082372,0.747672379,0.561833322,0.719286799,0.0204373077,0.660437822 +0.464906394,1.06174946,-0.464906424,2.54691513e-05,0.470468462,0.745960712,0.645125985,0.73716557,0.0204274282,0.65756762 +0.472293735,1.06212997,-0.472293764,0.000754648354,0.463708431,0.73929584,0.309230685,0.746199787,0.0204953235,0.667948186 +-0.455985248,1.06236625,0.455985218,0.000684454979,0.455826163,0.723775208,0.881541491,0.749570727,0.0202479288,0.645014763 +-1.10270834,1.06256092,1.10270834,0.00148622377,0.187678456,0.111762121,0.387034714,0.12313623,0.0212435313,1.55958128 +0.506105661,1.06263518,-0.506105661,0.000642231316,0.431523532,0.708504856,-1.28598166,0.843685389,0.0208080243,0.716217875 +0.366113842,1.0627507,-0.366113842,0.000568991643,0.391184777,0.516438425,2.17562318,1.11336267,0.0202131234,0.517944634 +-0.275410235,1.06276274,0.275410235,0.000647957844,0.498469293,0.515806377,1.8963356,0.736430705,0.0197277851,0.389810324 +1.05016625,1.06323802,-1.05016637,0.000557550229,0.185239732,0.121278711,0.988108575,0.0555159822,0.0211813934,1.48517537 +1.10847092,1.06364965,-1.10847092,0.000729503809,0.183368176,0.108619824,0.305676967,0.0367846973,0.0211910494,1.56763625 +0.845746875,1.06377959,-0.845746875,0.00311379763,0.262513697,0.177881896,0.422882676,0.262774527,0.0208587404,1.19673049 +-0.0218612663,1.06384623,0.0218612663,0.00100549567,0.832069039,0.388476133,0.191828549,0.0567853898,0.019600654,0.0392836966 +0.224316999,1.06386256,-0.224316999,0.000194604363,0.614142299,0.533808649,1.3676672,0.575863957,0.0197185259,0.317405552 +0.636288524,1.06396759,-0.636288583,0.000536275911,0.240297019,0.277937919,-2.49603844,1.02987504,0.0209867917,0.900000036 +0.153084666,1.06421244,-0.153084666,0.000721672201,0.753358841,0.487825662,0.642345786,0.320387095,0.0196280759,0.2178967 +0.216289267,1.06429195,-0.216289282,0.000212059327,0.63309896,0.534352243,1.27116346,0.551467061,0.0197038688,0.305934697 +0.253572315,1.06455994,-0.253572285,0.000288097013,0.546984494,0.530993342,1.7046771,0.696606874,0.0197950993,0.358886451 +-0.216293901,1.06509781,0.216293886,0.000287915755,0.632771671,0.531395733,1.28348708,0.520811021,0.0196464509,0.306092262 +0.467490196,1.06542313,-0.467490196,0.000265395414,0.474286586,0.761187851,0.528179348,0.847015798,0.0204523671,0.661184609 +0.0937268212,1.06551051,-0.0937268212,0.000428393367,0.812267184,0.429974377,0.306442559,0.199276745,0.0196056161,0.132591084 +-0.168312669,1.06553745,0.168312669,0.000447513157,0.727872968,0.503136277,0.762051225,0.342790246,0.0196089093,0.238552034 +-0.246828541,1.06560588,0.246828541,0.000315996498,0.5631634,0.5328511,1.64206028,0.670933306,0.0196871404,0.349223077 +0.458134115,1.06581354,-0.458134115,0.000591680873,0.469931275,0.742555916,0.863018513,0.845036566,0.0204170663,0.647919238 +0.465187997,1.06596506,-0.465187967,0.000440635864,0.476874143,0.762913644,0.651681483,0.831140995,0.0204355679,0.657913446 +-0.209104046,1.06600118,0.209104046,0.000281673972,0.649462938,0.529407561,1.19152689,0.490663052,0.019639641,0.296035826 +-0.25513038,1.06607056,0.25513038,0.000128758256,0.544094265,0.529623687,1.72965324,0.705238998,0.0197004396,0.361092985 +1.12677956,1.06657434,-1.12677956,0.00112947624,0.183084235,0.106312945,0.156307861,-0.0355868861,0.0212018117,1.59353018 +0.671017051,1.06675911,-0.671017051,0.000968328619,0.257675529,0.267614722,-1.5507704,1.43156195,0.0209142473,0.949547291 +-0.491533995,1.06708956,0.491533995,0.00165197544,0.438386738,0.718957186,-0.695086241,0.960165977,0.0206197165,0.695625722 +0.389981359,1.06818533,-0.389981359,0.000450676336,0.408284217,0.573832035,2.13026619,1.15796208,0.0202789027,0.551662743 +0.202328533,1.06856632,-0.202328533,0.000427760824,0.667416155,0.531687796,1.10080397,0.496143878,0.0196774583,0.286412179 +0.499307096,1.06965506,-0.499307096,0.000249629811,0.44164288,0.727624476,-1.02481484,0.998037875,0.0207766201,0.706623971 +0.998139024,1.06996226,-0.998139024,0.00192864379,0.199000299,0.132878453,1.16718507,-0.00296199322,0.0211106353,1.41199338 +-0.154277682,1.07018137,0.154277697,0.000442279881,0.753170669,0.487883449,0.641215622,0.320144355,0.0196020957,0.218589798 +-0.338057816,1.07030725,0.338057816,0.000302312546,0.403519332,0.495142162,2.20921326,1.08953524,0.0198457614,0.478330791 +0.86126411,1.07037508,-0.86126411,0.0036287168,0.256566882,0.17250438,0.560560465,0.189511806,0.0208723117,1.21838188 +0.228754535,1.0705502,-0.22875452,0.000262016896,0.608959377,0.541989923,1.42476606,0.632062495,0.0197276566,0.323618352 +-0.412469357,1.07073808,0.412469327,0.000624213717,0.431935877,0.641342342,2.00081563,1.13188767,0.0200399123,0.58379662 +0.186310604,1.07080293,-0.186310604,0.000284064008,0.70144999,0.520325363,0.936291695,0.4489052,0.0196572021,0.263530165 +0.542914331,1.07101715,-0.542914331,0.00100253825,0.329882562,0.512323022,-2.57889891,1.27581143,0.0213879813,0.76825428 +0.247902453,1.07146943,-0.247902438,0.000441343989,0.565039992,0.540845513,1.63532686,0.711743832,0.0197785944,0.350791693 +-0.0021099709,1.07173455,0.00210997323,0.000423718593,0.834560513,0.38754341,0.172230482,0.0440080836,0.0196003374,0.0311571248 +-0.106719851,1.07228875,0.106719859,0.000547284901,0.804875791,0.442819834,0.350289822,0.186296284,0.0195965972,0.152345836 +0.178881019,1.07234418,-0.178881019,0.000394219387,0.717024505,0.514517546,0.85163641,0.415345699,0.0196485594,0.253240347 +-0.259899199,1.07258892,0.259899199,0.000393585215,0.537497997,0.534170806,1.76391065,0.754747808,0.019708734,0.367737442 +-0.366161019,1.07265747,0.366161019,0.000397187949,0.404619157,0.548207343,2.23350954,1.26237988,0.0199081376,0.518070221 +-0.343198001,1.07330215,0.343198001,0.000370842405,0.402590692,0.506513417,2.22166824,1.15651917,0.0198481176,0.485599548 +-0.636085272,1.07384729,0.636085272,0.000456058828,0.230234742,0.278105587,-2.03350735,1.90290868,0.0208508018,0.899768949 +0.398580134,1.07412028,-0.398580134,0.000482951145,0.415979803,0.600703299,2.09913564,1.30512929,0.0203172732,0.563779593 +-0.208725095,1.07413554,0.208725095,0.000201303599,0.656438828,0.535647154,1.18225968,0.521587074,0.019638557,0.295432448 +0.180030093,1.07415152,-0.180030093,8.03098646e-06,0.715915143,0.515962541,0.866292655,0.424645662,0.0196493026,0.254866242 +-0.253918767,1.07436168,0.253918767,0.000101467369,0.552570403,0.538756609,1.70415413,0.732983768,0.0196981207,0.359328836 +-0.0707269013,1.07445455,0.0707269013,0.000635436911,0.823499084,0.414669037,0.229428917,0.112488747,0.0195971765,0.100494042 +0.420092881,1.0745126,-0.420092881,0.000789617363,0.455645263,0.69532454,1.97280216,1.18396354,0.0203415863,0.594287276 +1.19097185,1.07452345,-1.19097197,0.000585458707,0.142727152,0.0867957622,0.933338642,-0.0465740301,0.0212367922,1.68430793 +-0.404851168,1.07455873,0.404851198,0.000453067361,0.427674234,0.63015002,2.05092216,1.18113971,0.0200258698,0.572926998 +-0.136783451,1.07457483,0.136783451,0.000520818925,0.777852178,0.473724633,0.503161252,0.258060008,0.0195980538,0.19396624 +-0.0809061378,1.07466054,0.0809061378,0.000449492392,0.81962955,0.423054069,0.257036567,0.134627134,0.0195966829,0.114847593 +1.21045816,1.07487214,-1.21045804,0.000650607282,0.0861030072,0.0534360074,1.57048333,-0.0212964788,0.0212530531,1.71186614 +1.2287991,1.07488334,-1.2287991,0.000313963799,0.04516197,0.036071118,1.72053218,-0.0225326847,0.0212591495,1.73780453 +0.223600298,1.07493436,-0.223600298,0.000212771673,0.624834061,0.545135856,1.34935522,0.620401084,0.0197168458,0.31628564 +0.176342994,1.07501769,-0.176342979,0.000346761226,0.723019838,0.514573574,0.824515522,0.409171224,0.0196462553,0.249630183 +0.303323627,1.07558095,-0.303323656,0.000351483468,0.448781043,0.513970613,2.1228776,1.02186823,0.0199726969,0.429105401 +-0.901076198,1.0759325,0.901076198,0.00482634502,0.241476238,0.163118184,0.873792171,0.217531115,0.0208192896,1.27525878 +0.320996493,1.07687294,-0.320996493,0.000270939316,0.420326948,0.512112617,2.1881671,1.10189724,0.0200409833,0.454692513 +0.179053724,1.0768944,-0.179053739,5.8124002e-05,0.719714344,0.516666293,0.851218879,0.427645743,0.0196479801,0.25343591 +-0.41937381,1.07734132,0.41937384,0.000882144552,0.442128301,0.669832289,1.90010357,1.28158379,0.0200673435,0.59346813 +-0.121335439,1.07759452,0.121335439,0.00060843135,0.795119107,0.456659377,0.414543033,0.223774254,0.0195957068,0.172549441 +0.102345183,1.07781231,-0.102345183,0.000252856058,0.810362995,0.438522488,0.318434894,0.211816028,0.0196046513,0.145147189 +0.63176775,1.07804406,-0.631767809,0.000628216425,0.234508023,0.27474007,-2.53187823,0.951512039,0.0210335292,0.893792272 +0.75955534,1.07810724,-0.75955534,0.00309021398,0.276565671,0.208186179,-0.43385309,0.575924575,0.0208474435,1.07444572 +1.11712682,1.0782938,-1.11712694,0.00011322886,0.174567416,0.100644633,0.204894036,-0.047021836,0.0211964231,1.57995605 +-0.355046958,1.07835031,0.355046958,0.000254326878,0.404988945,0.533179045,2.24419069,1.27401328,0.0198779423,0.502187788 +-0.197994918,1.07883334,0.197994918,0.000278870342,0.680698991,0.534762323,1.04685891,0.465577453,0.0196292847,0.28011018 +-0.84509635,1.07920241,0.84509635,0.00473652268,0.259932518,0.176566452,0.426149964,0.31119144,0.0207831375,1.19575608 +0.10439153,1.07933128,-0.104391538,0.000327941001,0.809261501,0.440390646,0.326699436,0.218445897,0.0196047723,0.147874236 +1.16435409,1.07962859,-1.16435397,0.00103766087,0.16970928,0.09803617,0.260175705,-0.0196240377,0.0212080702,1.64667416 +0.10270936,1.07973421,-0.10270936,7.33690558e-06,0.810490966,0.439234734,0.317700446,0.212124452,0.0196043998,0.145777538 +0.175700068,1.08006978,-0.175700068,0.000213712556,0.726956487,0.515325427,0.811848104,0.418421805,0.019644713,0.248582304 +0.511590004,1.08053088,-0.511590004,0.000760181749,0.426084399,0.70966363,-1.51780987,1.40581894,0.0209944081,0.723723412 +0.0275216457,1.08058846,-0.0275216494,0.00101016706,0.835160851,0.392391503,0.16063416,0.0707682669,0.0195998307,0.0461217538 +0.0113140866,1.08078396,-0.0113140885,0.000778533285,0.836042345,0.389777541,0.156493261,0.0465791449,0.0195994861,0.0328742005 +0.680324614,1.08100247,-0.680324674,0.00290510803,0.258179754,0.254897237,-1.34533215,1.24305594,0.0209100917,0.962745547 +-0.16204837,1.08116782,0.162048355,0.000458408205,0.746283531,0.50300616,0.683008254,0.327585548,0.0196036398,0.22975862 +0.272925586,1.08131409,-0.272925586,0.000282045396,0.514690101,0.537849188,1.8920114,0.913629949,0.0198595989,0.385987282 +-1.1159451,1.08141994,1.1159451,0.00159599294,0.17453818,0.100479871,0.271673471,0.0383308753,0.0212589819,1.57832241 +0.0932520926,1.08167768,-0.0932520926,0.000400520221,0.815303266,0.432771921,0.285719603,0.192403883,0.0196032133,0.131951869 +0.276570231,1.08177686,-0.276570261,0.000304096029,0.507193685,0.535333872,1.92470276,0.931121826,0.0198723897,0.391150564 +0.309800267,1.08188689,-0.309800267,0.000291155855,0.439628363,0.513512254,2.15348458,1.10031712,0.020002963,0.438283324 +0.0625060946,1.08222699,-0.0625060946,0.000575363403,0.828507423,0.408371031,0.199033171,0.13074939,0.0196002685,0.0898480862 +-0.374973118,1.08226919,0.374973118,0.000507346122,0.405371904,0.562388182,2.23677564,1.41463518,0.0199322812,0.530586958 +0.158656538,1.08239865,-0.158656538,0.000366700056,0.75512135,0.498472661,0.663740516,0.375775814,0.0196294077,0.22500135 +1.1200279,1.08252752,-1.1200279,0.000940107857,0.170818448,0.0978487283,0.19583644,-0.068803072,0.0211977456,1.58402658 +0.275265664,1.08275115,-0.275265664,6.78191063e-05,0.510244787,0.537201464,1.91506755,0.933588207,0.0198672265,0.389325798 +0.13617748,1.08282006,-0.13617748,0.000258143729,0.783847928,0.474852979,0.488297969,0.298147112,0.0196144953,0.192598566 +-0.183785841,1.08284199,0.183785841,0.000405077328,0.711400032,0.525002182,0.893337607,0.41976878,0.0196154285,0.260218471 +0.101182573,1.0829165,-0.10118258,0.000247483928,0.811838508,0.438907862,0.306661487,0.2077308,0.0196037591,0.143263221 +0.185189337,1.08329856,-0.185189337,0.000281802029,0.7128613,0.529314876,0.907812357,0.477952182,0.0196556114,0.261946797 +0.275933087,1.08333552,-0.275933057,5.98424995e-05,0.509031951,0.537354708,1.91853964,0.939384341,0.0198701303,0.390267611 +0.636103749,1.08341789,-0.636103749,0.000116198702,0.229934141,0.266696244,-2.48337674,0.941530943,0.0210076738,0.899999976 +0.303669065,1.08356786,-0.303669065,0.000141131284,0.450582981,0.521627009,2.11718559,1.08262885,0.0199747309,0.429715335 +-0.650663197,1.08362091,0.650663197,0.00173546316,0.227969795,0.263860017,-1.76373053,1.70077729,0.0208327342,0.92052722 +0.10578201,1.08367312,-0.105782017,0.000388300832,0.809400141,0.443018824,0.325849712,0.223877013,0.0196043104,0.149690583 +0.274498105,1.08379912,-0.274498075,0.000185036217,0.512738049,0.539037943,1.90562367,0.934418023,0.0198647063,0.388228446 +0.275326282,1.08380842,-0.275326252,2.425221e-06,0.51072073,0.538482428,1.91258097,0.938216507,0.0198676325,0.389411986 +1.11189651,1.08383036,-1.11189651,0.00114076096,0.171727866,0.0998834372,0.2637133,-0.0639330745,0.0211971812,1.57252741 +-0.0354515649,1.08383942,0.0354515687,0.000632677518,0.834072828,0.396086961,0.15943861,0.059161149,0.0195973497,0.051225502 +-0.368786395,1.08392847,0.368786395,0.000231652433,0.404349357,0.556508839,2.2435708,1.40013766,0.0199155882,0.521806121 +1.0313164,1.08436751,-1.03131652,0.00177463703,0.188006133,0.123971343,1.09577155,-0.0236615483,0.021148717,1.4590174 +0.130412206,1.08459949,-0.130412206,0.000228890451,0.78915596,0.470591307,0.456517816,0.282938004,0.019612344,0.184435248 +0.495770127,1.08474672,-0.495770097,0.000641286082,0.455054402,0.763882101,-0.854497612,1.52245951,0.0207847692,0.701365829 +0.276450872,1.08482921,-0.276450872,0.000210300437,0.508877516,0.53971839,1.91727889,0.952494383,0.0198729783,0.390979707 +-0.582568049,1.08500946,0.582568049,0.00177900551,0.252345711,0.342746615,-2.97011137,1.12460423,0.0213081464,0.824500322 +0.138180315,1.08529067,-0.138180315,0.000282234367,0.782544553,0.477453381,0.497165233,0.300937951,0.0196148939,0.195444763 +-0.294128448,1.0853231,0.294128448,0.000192239779,0.469981849,0.525478482,2.05577397,1.00730526,0.0197604988,0.41596055 +-0.294120133,1.08532977,0.294120103,0.000185647921,0.469997823,0.52548933,2.05573535,1.0073415,0.0197604857,0.415948778 +-0.294130117,1.08533549,0.294130117,0.000130971122,0.46998328,0.525492668,2.05578923,1.00741947,0.0197604932,0.415962964 +-0.29412514,1.08534098,0.29412514,1.79644133e-10,0.469992161,0.525497913,2.05578852,1.00745833,0.0197604857,0.415955931 +-0.294117332,1.08534431,0.294117332,0.000168898056,0.470011622,0.525507987,2.05572462,1.00744927,0.0197604839,0.415944815 +-0.294124097,1.0853467,0.294124097,2.11226911e-10,0.469998986,0.525510013,2.05577946,1.00752866,0.0197604857,0.415954471 +-0.294148713,1.08534992,0.294148743,0.000218637084,0.469960183,0.525516152,2.05592847,1.00773478,0.0197605193,0.41598919 +-0.294130445,1.08535147,0.294130445,0.000113359769,0.469990432,0.525516748,2.0558176,1.0076282,0.0197604913,0.415963352 +-0.294118613,1.08540583,0.294118643,0.000150185835,0.470058292,0.525618017,2.05557084,1.00804925,0.0197604913,0.415946573 +0.137567863,1.0855341,-0.137567848,9.41855906e-05,0.783421278,0.476600438,0.492809892,0.300572217,0.0196144897,0.194589466 +0.662643552,1.08570015,-0.662643552,0.00122171361,0.249125049,0.277013391,-1.57529283,1.44079041,0.0209501777,0.937353969 +0.423801124,1.08574474,-0.423801124,0.000300869287,0.469678938,0.733561873,1.94364154,1.38456976,0.0203619804,0.599692702 +-0.271664321,1.08583105,0.271664321,0.000551576202,0.51891464,0.545094788,1.88410616,0.909655213,0.0197216216,0.384500057 +0.137861237,1.08610666,-0.137861222,6.339273e-07,0.783270955,0.477265209,0.493906051,0.300211459,0.0196145326,0.19502379 +-0.480371803,1.08626151,0.480371803,0.00069245277,0.479247868,0.805950522,-0.159822941,1.33439159,0.0205042157,0.679773152 +0.138697222,1.08667839,-0.138697237,0.000134232076,0.782467067,0.478965342,0.49877736,0.30275774,0.0196150467,0.196169123 +-0.246724933,1.08668315,0.246724933,0.000240344147,0.579893887,0.55766654,1.61327553,0.775181115,0.0196865033,0.348965764 +-0.332705289,1.0868752,0.332705289,0.000304494402,0.415239006,0.516159296,2.24344659,1.27955031,0.0198286809,0.470570445 +-1.09888387,1.08692145,1.09888399,0.00197216193,0.175446838,0.10459514,0.413425505,0.0283984728,0.0212397669,1.55419147 +0.137446404,1.08692849,-0.137446404,0.000193715125,0.783921838,0.477027714,0.489950746,0.299550951,0.0196141601,0.194408268 +0.618098617,1.08703935,-0.618098617,0.00152086234,0.237383962,0.295169085,-2.59815812,1.07575309,0.0211965162,0.874275327 +0.274750948,1.08739316,-0.274750948,0.000142006043,0.515041709,0.545042574,1.89375317,0.959289551,0.0198665,0.388566166 +-0.0117072565,1.08815789,0.0117072565,0.000791260041,0.836635113,0.391447127,0.149110973,0.031916365,0.0195976086,0.029034093 +0.855188608,1.08825624,-0.855188608,0.00338982395,0.25761646,0.171652317,0.536297858,0.130197734,0.0208577458,1.20985079 +0.0662206858,1.08845007,-0.0662206858,0.000501856382,0.82837975,0.411926955,0.197287202,0.135825247,0.0195996668,0.0951053351 +0.310052395,1.08846092,-0.310052395,0.000307624548,0.441933304,0.52203083,2.13505554,1.16717434,0.0200110022,0.438699841 +0.0554633662,1.08854985,-0.0554633699,0.000402748468,0.830997705,0.406409681,0.181146353,0.115231037,0.0195992105,0.0796922296 +0.238141,1.08855021,-0.238141,0.000356867444,0.599757373,0.564653814,1.50591016,0.727073371,0.0197500549,0.337043285 +0.246934026,1.08872461,-0.246934026,0.00036596827,0.57844162,0.56161809,1.60159802,0.780477881,0.0197756272,0.349707484 +0.178185314,1.088925,-0.178185314,0.000276226609,0.727418423,0.524684906,0.816072583,0.443499058,0.0196459424,0.252060294 +0.827325821,1.08920979,-0.827325821,0.00325097819,0.266998947,0.180903926,0.32526195,0.173181906,0.0208494011,1.1702069 +-0.635944486,1.08932734,0.635944486,0.000589885749,0.228174835,0.265020221,-2.58054709,0.840973675,0.0209157858,0.900000095 +0.580198884,1.08946812,-0.580198884,0.00143516215,0.254274547,0.35541597,-2.92649412,1.27096975,0.0215193853,0.821203053 +-0.323756278,1.0894841,0.323756278,0.000410987355,0.425459415,0.523370266,2.23130202,1.27153325,0.0198036619,0.458017886 +0.220783725,1.08954537,-0.220783725,6.18652703e-05,0.641906321,0.562121749,1.29752207,0.648978591,0.0197106842,0.312675714 +-0.504515886,1.09001517,0.504515886,0.000998296426,0.417106211,0.692838192,-1.37805259,1.62736821,0.0209134221,0.714022219 +-0.25151062,1.09002352,0.25151062,0.000179801107,0.571109593,0.559478998,1.65685797,0.809759021,0.0196943898,0.355740488 +-0.227943599,1.09057963,0.227943584,0.000262026908,0.626812935,0.559729218,1.37120283,0.667297482,0.0196610987,0.322392106 +-0.191765949,1.09077024,0.191765964,0.000168674509,0.700709641,0.541972637,0.951929152,0.446058303,0.0196228269,0.271540254 +-0.407543123,1.09078383,0.407543123,0.000562770176,0.434618592,0.656646073,2.06019878,1.52339268,0.0200295132,0.576491475 +1.08454251,1.09079671,-1.08454251,0.00152072543,0.173869684,0.107209757,0.568928599,-0.0545279607,0.0211957581,1.53433394 +-0.374200106,1.09085417,0.374200106,0.000320529594,0.405882299,0.569750011,2.21790504,1.53822136,0.019932285,0.529458404 +0.301823914,1.09094799,-0.301823914,0.000272825651,0.459122837,0.533665895,2.07929516,1.12491989,0.0199722182,0.426970124 +-0.249219835,1.09102547,0.249219835,7.79844777e-05,0.577152371,0.561292112,1.63346672,0.803270102,0.0196903404,0.352515221 +-0.226775393,1.09119797,0.226775393,5.02530966e-05,0.629893959,0.560644567,1.35518849,0.664108098,0.0196600575,0.320758224 +-0.208919376,1.09126282,0.208919376,0.00031523878,0.667077601,0.552078843,1.15419447,0.546887636,0.0196367055,0.296316773 +-0.186793357,1.09128141,0.186793357,0.000110016648,0.710513949,0.534066737,0.906143248,0.426892191,0.0196168628,0.264634371 +-1.03220153,1.09149945,1.03220153,0.00232063653,0.187924266,0.124814421,1.09650266,0.0552767217,0.0211087316,1.46042013 +0.227504432,1.09157348,-0.227504417,0.000197183865,0.627948284,0.568070352,1.36331475,0.685904503,0.0197271165,0.321894526 +-0.0366127826,1.09218001,0.0366127826,3.19038554e-05,0.834903836,0.399301708,0.148168236,0.0566378459,0.0195959974,0.0539058894 +0.215362877,1.09230793,-0.215362877,0.000362599269,0.656274199,0.561761081,1.23612738,0.633834243,0.0197002795,0.304913342 +0.139353603,1.09231472,-0.139353603,0.000221383729,0.783348501,0.482291013,0.492602944,0.30776912,0.0196143035,0.197081059 +0.413865775,1.09241486,-0.413865805,0.000514862477,0.45555079,0.703819156,2.03961658,1.51640344,0.0203644726,0.58543849 +-0.234548673,1.09245384,0.234548688,0.000183584198,0.612796485,0.564252257,1.45255589,0.719230294,0.019669963,0.331705749 +-0.22649917,1.09253919,0.22649917,0.000207211531,0.631511271,0.561691761,1.35147858,0.668326259,0.0196596105,0.320357144 +-0.227729723,1.09254694,0.227729723,2.6333224e-05,0.628682435,0.561894357,1.36834455,0.675501406,0.0196607243,0.322114885 +-1.06534159,1.09261703,1.06534159,0.00131996407,0.179030925,0.1140659,0.782729745,0.0310479272,0.0211859737,1.5072155 +0.341699779,1.09293568,-0.341699809,0.000438797084,0.410554588,0.531897664,2.26022458,1.44677818,0.0201328062,0.483444303 +-1.22867751,1.09309506,1.22867751,0.000335011107,0.0450528227,0.0366985612,1.58896315,-0.0236300491,0.0213334281,1.73776901 +-0.248354346,1.09320509,0.248354346,0.000179379509,0.580812395,0.565012455,1.61767316,0.801808834,0.0196888112,0.351299077 +-1.21408331,1.09329021,1.21408343,0.000726422295,0.0752782151,0.0469790325,1.47438908,0.0165313091,0.0213239882,1.71712768 +-1.19657004,1.09352446,1.19656992,0.000790620164,0.11987415,0.0706880465,1.01622748,0.0305785928,0.0213158634,1.69235754 +-0.609812081,1.09357905,0.609812081,0.00136266148,0.234761029,0.300386816,-2.7977767,1.00208855,0.0211042017,0.862682462 +-0.385487854,1.09413958,0.385487854,0.000323192769,0.41747424,0.60485965,2.19379902,1.64560008,0.0199610889,0.545271635 +0.0722151846,1.09419167,-0.0722151846,0.00034526558,0.826428771,0.420357943,0.205496296,0.14304094,0.0195994526,0.102838084 +-0.179541677,1.09443378,0.179541662,0.000266092859,0.724393308,0.527875662,0.838638484,0.410173833,0.0196117461,0.254259825 +0.335463732,1.09456992,-0.335463732,0.000328494993,0.416353077,0.534226477,2.25065589,1.42382598,0.0201093275,0.47455889 +0.0610290281,1.09481239,-0.0610290281,0.000231444748,0.830141544,0.411100417,0.180084035,0.125664264,0.0195986331,0.088270992 +-0.226597592,1.09495366,0.226597592,0.000245778327,0.632973671,0.564542234,1.34754455,0.678901017,0.0196597036,0.320483416 +-0.461465418,1.09501195,0.461465418,0.000827949785,0.509122729,0.862873375,0.65091753,1.45642734,0.0203052815,0.653297663 +-0.032167688,1.09514701,0.032167688,0.000728111307,0.836081684,0.397794574,0.139750034,0.0490913577,0.0195958782,0.0477942154 +-0.449695289,1.09607816,0.449695259,0.000941637496,0.495470166,0.824402452,1.00642037,1.46092868,0.0202379059,0.636750817 +-1.16117764,1.09642649,1.16117764,0.00165785733,0.15476723,0.0865079015,0.279386371,0.0296887569,0.0212945044,1.64229488 +-0.0437526181,1.09647477,0.0437526181,0.00065444113,0.834048748,0.403815687,0.153022274,0.0647938102,0.0195948817,0.0624005422 +0.066041261,1.09661353,-0.066041261,0.000328194816,0.829088748,0.414773524,0.184326723,0.133213848,0.0195986181,0.0944145024 +0.22116074,1.0966996,-0.22116074,0.000110694833,0.646469891,0.572138488,1.27805448,0.658714652,0.0197122525,0.313205868 +-1.17376304,1.09674239,1.17376304,0.000625130429,0.145513743,0.0822976157,0.448083252,0.0255034138,0.0213055275,1.66010976 +0.366632611,1.09686029,-0.366632611,0.000909377937,0.409078956,0.575087845,2.28570604,1.64174092,0.020230975,0.518781364 +-0.325926006,1.09694195,0.325926006,5.08711346e-05,0.424269199,0.529895842,2.22900987,1.35138679,0.0198092647,0.461186677 +0.305704981,1.09709632,-0.305704981,0.000236464213,0.456378162,0.54111594,2.06872034,1.2024405,0.0199967083,0.43247208 +0.430344015,1.09718752,-0.430343986,0.000658557692,0.479303122,0.768250346,1.75001788,1.72258878,0.0204023309,0.608720541 +-0.321986169,1.09729028,0.321986169,0.000103161816,0.430414975,0.533737004,2.21208191,1.32731152,0.0197952669,0.455620795 +0.589175224,1.09737504,-0.589175224,0.000382860948,0.24167791,0.324854314,-2.79397416,1.22987854,0.021465579,0.8339324 +-0.810476303,1.09751642,0.810476303,0.00443976978,0.266440272,0.188244805,0.119066447,0.403117865,0.0207451284,1.14686656 +0.200188994,1.09774303,-0.200188994,0.000381557853,0.693092942,0.55412817,1.03912902,0.565553784,0.0196743459,0.283398837 +0.346827894,1.0977838,-0.346827924,0.000408298103,0.40974614,0.53909272,2.26995325,1.52452159,0.0201632008,0.490622759 +0.340202421,1.09830046,-0.340202421,3.20769577e-05,0.412498206,0.537279546,2.2592721,1.49359155,0.0201325826,0.481391609 +-0.352105677,1.09837461,0.352105677,0.000284499954,0.408565193,0.550687432,2.2828517,1.57353985,0.0198633075,0.497978717 +0.635664523,1.09842551,-0.635664523,0.000547995209,0.234377354,0.288320363,-1.86427557,1.67584085,0.0210207105,0.899729192 +-0.330749869,1.09849358,0.330749869,0.000307964627,0.420873076,0.531578898,2.24510098,1.40754294,0.0198233724,0.467846245 +-0.103636518,1.09857976,0.103636518,0.000699356431,0.811856866,0.446812809,0.304368436,0.175716102,0.0195921399,0.147720516 +-0.252785504,1.09870124,0.252785504,0.000241876231,0.575008512,0.575303614,1.64039063,0.86578083,0.0196971074,0.357514054 +0.260396898,1.09925199,-0.260396898,0.000299453881,0.555907249,0.573240757,1.74623859,0.962275028,0.0198133085,0.368778348 +0.3963238,1.09971571,-0.3963238,0.000478029804,0.434431016,0.658086777,2.13682604,1.78953528,0.0203285813,0.560996592 +0.636256695,1.09978247,-0.636256695,0.00088995113,0.219510168,0.253159732,-2.36600041,0.851671278,0.0210199282,0.899999976 +-0.277899027,1.0999763,0.277899027,0.000377036806,0.513629019,0.560480297,1.89438653,1.02596891,0.0197363477,0.393313885 +0.163549542,1.10035586,-0.163549542,0.000595949066,0.756416678,0.51135987,0.670443535,0.392772138,0.0196301378,0.231786013 +1.17303848,1.10077941,-1.17303848,0.000479274226,0.148461282,0.0850762725,0.433898121,-0.05346407,0.0212094616,1.65902543 +1.2287209,1.10113156,-1.2287209,0.000202525334,0.0452062227,0.0382127091,1.69128978,-0.0180221274,0.0212534871,1.73779726 +-0.184067667,1.10113573,0.184067681,0.000222492687,0.721024871,0.537882566,0.855790555,0.431090236,0.019614879,0.2605564 +1.2149229,1.10124922,-1.2149229,0.000441303593,0.0749807581,0.0477076843,1.6051985,-0.00135724724,0.0212484449,1.71828222 +0.567703426,1.10138845,-0.567703366,0.00133579201,0.274162322,0.413154632,-2.82605457,1.57878983,0.0216019433,0.803390741 +1.19836068,1.10139012,-1.19836068,0.000373791816,0.119463071,0.0716556758,1.1620754,-0.00928525627,0.0212348681,1.69485807 +0.337516308,1.10155106,-0.337516308,0.000320229738,0.416835457,0.541657269,2.24049497,1.50861251,0.0201243069,0.477515817 +-0.144072831,1.1015625,0.144072831,0.000260674016,0.78020227,0.488483757,0.511756003,0.295044839,0.0195948128,0.203837097 +-0.562540352,1.10161233,0.562540293,0.0011563818,0.281709492,0.412827253,-2.77372909,1.60898995,0.0213476531,0.796000957 +-0.118756294,1.10193396,0.118756294,0.000442338816,0.80364424,0.461560875,0.363581002,0.220024347,0.019591745,0.16872856 +-0.192497641,1.10244489,0.192497641,0.0002030178,0.707742929,0.553487539,0.933451295,0.470338106,0.0196234547,0.272352159 +0.382181466,1.10248983,-0.382181466,0.000454785768,0.420523733,0.614979744,2.22133636,1.8072288,0.0202939492,0.540689588 +0.341664344,1.10252964,-0.341664374,0.000100465259,0.412484437,0.541319609,2.25054979,1.54882908,0.0201474484,0.483373016 +-0.321874082,1.10257089,0.321874082,0.000276184932,0.434012473,0.540321529,2.19243598,1.37861085,0.0197996367,0.455326021 +-0.231827319,1.10277152,0.231827289,0.00018420619,0.627561688,0.581389546,1.38324749,0.747186542,0.0196666773,0.327856958 +1.16681314,1.10291255,-1.16681314,0.00091347954,0.15085347,0.0855223536,0.338302195,-0.0557778925,0.0212048758,1.65020835 +-0.165883571,1.10334814,0.165883571,0.000435565307,0.750503302,0.515909135,0.690936327,0.363286972,0.0196015202,0.235825837 +-0.0689992979,1.10372651,0.0689992979,0.00069407362,0.827955067,0.420432627,0.194219559,0.107090116,0.0195924621,0.100004569 +-0.140418574,1.10405612,0.140418574,0.000246579468,0.784944177,0.48605004,0.488712758,0.288237512,0.0195939858,0.198756218 +0.0392513983,1.1045959,-0.0392513983,0.000673588132,0.834794402,0.405659527,0.138329446,0.0879467353,0.019597102,0.0594911426 +0.24450697,1.10479236,-0.244506955,0.000289938762,0.597475231,0.591429293,1.50458813,0.816988468,0.0197716951,0.346159518 +1.18366098,1.10484803,-1.18366098,0.00061364373,0.134297103,0.0784214735,0.744099736,-0.03116435,0.0212189369,1.6739676 +0.196263671,1.1049335,-0.196263656,0.000344335422,0.704964519,0.556024134,0.986079812,0.556724131,0.0196680296,0.277874172 +-0.748031616,1.10514355,0.748031616,0.00417479686,0.26881218,0.20294039,-0.484561652,0.548154712,0.0207568463,1.06029916 +0.527130604,1.10532939,-0.527130604,0.00121391786,0.377360553,0.625473857,-2.13417101,2.10449028,0.0213761628,0.746046782 +-0.831223786,1.10542619,0.831223786,0.000520208385,0.26440227,0.179170683,0.372529328,0.25233534,0.0207495429,1.17695379 +-0.63572824,1.10570621,0.63572818,0.00108558708,0.217479974,0.263130456,-1.8251617,1.71449959,0.0208554044,0.899695635 +-0.356867462,1.1059413,0.356867433,0.000128847139,0.409256637,0.564291477,2.29286575,1.70394421,0.0198746044,0.504775465 +-0.582624137,1.10607195,0.582624137,0.000981440418,0.239078581,0.327332258,-2.87703133,1.29087591,0.0213057008,0.824689806 +-0.145746991,1.10657895,0.145746991,0.000313158293,0.779758692,0.494081408,0.516446829,0.295761526,0.0195948426,0.206238449 +-0.353783965,1.10695481,0.353783965,0.000160417039,0.410933226,0.563184142,2.28960061,1.69254756,0.0198652223,0.500372529 +-0.403480411,1.10708058,0.403480411,0.000130296728,0.447307646,0.695143938,2.09841228,1.86588287,0.0200165194,0.571101308 +-0.0627256855,1.10728121,0.0627256855,0.000295798789,0.830031276,0.417167515,0.177132517,0.101146199,0.0195922032,0.0931790024 +-0.142017618,1.10732353,0.142017618,0.000121130295,0.784218431,0.488346189,0.492477834,0.291350424,0.0195935499,0.201102778 +-1.22871435,1.10745299,1.22871435,0.000222806062,0.0448831655,0.0381219126,1.59979558,-0.020765312,0.0213247519,1.73779225 +-0.143506154,1.10748529,0.143506169,1.72371292e-05,0.782851815,0.49038738,0.499905527,0.291886896,0.0195937324,0.203199163 +-1.20118821,1.107517,1.20118821,0.000376378914,0.110189281,0.0662926957,1.15329671,0.0546112508,0.021309711,1.69886446 +-1.21616232,1.10760581,1.21616232,0.000488709018,0.0710307211,0.045319207,1.5183531,0.023443304,0.0213158466,1.72003961 +-0.201776043,1.10799289,0.201776057,0.000267427793,0.693388879,0.564530015,1.03057349,0.53393209,0.0196309779,0.285642952 +-0.0931975618,1.10839188,0.0931975618,0.000732692773,0.819297671,0.439555824,0.255500078,0.159484059,0.0195905976,0.134403422 +-0.359008133,1.10878634,0.359008163,0.000318030303,0.409886479,0.569719553,2.28269672,1.76028204,0.0198811945,0.507800817 +-1.19528413,1.10889208,1.19528413,0.000435509224,0.117886096,0.0705267936,0.981467724,0.0660284162,0.0213090703,1.6905154 +1.1979363,1.10902083,-1.1979363,0.000199989852,0.11795827,0.0712618306,1.14471948,0.0122079002,0.0212270617,1.69426394 +0.501820982,1.10915208,-0.501821041,0.000532013772,0.471247792,0.824467659,-1.0898875,2.32858562,0.0209784508,0.710183024 +0.291665494,1.10919929,-0.291665494,0.000407805113,0.490856439,0.571835637,1.9829365,1.24073458,0.0199343711,0.412766814 +-0.53020221,1.10962796,0.53020227,0.00169864355,0.350573063,0.576422691,-2.38805723,2.21889353,0.021323707,0.750565886 +0.214565739,1.10988092,-0.214565754,0.000203818941,0.671291649,0.58457756,1.16609442,0.663477421,0.0197006632,0.30354327 +0.464466691,1.10997319,-0.464466661,0.000631856266,0.521280289,0.896119237,0.646487951,2.14618254,0.0205432549,0.657221675 +-0.355031818,1.11011827,0.355031788,5.98506012e-05,0.411599755,0.569000721,2.27738237,1.73621321,0.019868033,0.502190411 +-0.357109845,1.11038435,0.357109874,8.27972108e-05,0.410166621,0.569234252,2.27917409,1.76117694,0.0198753327,0.50511384 +-0.32592538,1.11059713,0.32592538,0.00018845484,0.434167713,0.552535594,2.17290998,1.4987421,0.0198144298,0.461018384 +-0.266984969,1.11063087,0.266984969,0.00036611149,0.550217927,0.589200854,1.74916983,1.01888061,0.0197179448,0.377700686 +1.17293978,1.11099577,-1.17293966,0.000602396205,0.14541778,0.0835315362,0.43187201,-0.0329428427,0.0212026741,1.65886784 +-0.145370603,1.11130142,0.145370603,0.000139701908,0.781681478,0.49698171,0.50265038,0.296863645,0.0195943005,0.205685496 +0.125206977,1.11130726,-0.125206977,0.000720434764,0.800568938,0.472131252,0.378276885,0.267141223,0.0196044184,0.177746773 +0.447084218,1.11139703,-0.447084218,0.00101193832,0.511689067,0.862048447,1.27203977,2.04605436,0.0204714295,0.632514715 +0.205101103,1.11178279,-0.205101103,0.000164180427,0.693130851,0.580238044,1.04835558,0.618026853,0.0196843371,0.290144324 +0.225463256,1.11202919,-0.225463271,0.000193333268,0.649023652,0.598462582,1.27283502,0.739152312,0.0197249111,0.318934619 +-0.396014601,1.11227942,0.396014571,0.000576799794,0.435682714,0.667517424,2.16280127,2.01956916,0.01998787,0.560228944 +-1.17342758,1.11234689,1.17342758,0.000933881674,0.142373368,0.0820827186,0.436932504,0.0620378107,0.0212990157,1.65961075 +-0.492241859,1.11248147,0.49224183,0.000204022843,0.458684564,0.791154623,-0.840650916,2.63252091,0.0207722597,0.696248174 +0.115791939,1.1126436,-0.115791939,0.000577596133,0.80678004,0.460933775,0.335739076,0.255022585,0.0196018778,0.165015042 +0.26849547,1.11271238,-0.26849547,0.000254421146,0.548872173,0.59289217,1.75279593,1.09266174,0.019847855,0.379884928 +0.514211178,1.11302912,-0.514211178,0.000410115579,0.421138942,0.729190409,-1.73869622,2.6611352,0.0212487224,0.727974176 +0.34988755,1.11339986,-0.34988758,0.000232247447,0.414083391,0.565612853,2.2360363,1.782655,0.0201981924,0.494851917 +-0.1213779,1.11340714,0.1213779,0.000261751702,0.803741574,0.468409747,0.358995676,0.221348301,0.0195898544,0.172831416 +0.40833047,1.11357927,-0.40833047,0.000534683757,0.455594242,0.723741114,2.0301702,2.10895181,0.0203732569,0.57763207 +-0.344350666,1.11357927,0.344350666,0.00019926361,0.421448141,0.572202265,2.24827337,1.74959743,0.0198413096,0.487221599 +0.31692031,1.11367655,-0.31692031,0.000271793368,0.45003581,0.563275456,2.10776997,1.52679515,0.0200542994,0.448218346 +0.982771158,1.11394751,-0.982771158,0.00141930685,0.201287687,0.133347616,1.21830869,-0.140248507,0.0210429467,1.38990831 +0.231833607,1.11403203,-0.231833607,0.0001872211,0.635145485,0.601962984,1.34612691,0.775541306,0.019739069,0.327997237 +1.05031121,1.1140517,-1.05031121,0.00119563495,0.175076738,0.114893839,0.953147292,-0.160603344,0.0211875532,1.4854939 +0.27679944,1.11442792,-0.27679947,0.000217188353,0.531264722,0.594627082,1.82985091,1.17332828,0.0198764745,0.391592592 +1.2287612,1.11465704,-1.22876132,0.000189638886,0.0448319577,0.0397102758,1.69950175,-0.014724154,0.0212456379,1.73779941 +0.917084813,1.11468613,-0.917084813,0.00391102117,0.230419919,0.149789587,1.02078176,-0.115636759,0.0209038779,1.29846263 +1.21681881,1.1147356,-1.21681881,0.000417658419,0.0711617619,0.0464257784,1.64323056,0.00744236866,0.0212410279,1.72090936 +0.256040812,1.11474192,-0.256040782,0.000266501709,0.57894516,0.602569699,1.62482965,0.976325154,0.0198041238,0.362492085 +-0.176631331,1.11480975,0.176631331,0.00025108282,0.740067363,0.540855289,0.746329665,0.410475492,0.0196090788,0.250691414 +1.20247579,1.11482882,-1.20247579,0.00040115873,0.110957742,0.0676400661,1.28439689,0.02152518,0.0212282874,1.70062447 +0.0926509351,1.11486292,-0.0926509425,0.00101568247,0.819640517,0.444438785,0.232168972,0.172905833,0.0195982996,0.132972002 +0.0138221681,1.11542368,-0.013822169,0.000623519765,0.838445783,0.400631487,0.103965268,0.0319560617,0.0195952561,0.0214795843 +1.0641669,1.11549807,-1.0641669,0.00163469219,0.171185195,0.110694781,0.827325821,-0.162643731,0.0212053712,1.50510728 +0.478216171,1.11564505,-0.478216171,0.00115059782,0.514686108,0.908536851,-0.100017577,2.5092442,0.0206665322,0.676825285 +-0.35518977,1.11578834,0.3551898,0.000152997352,0.414687157,0.577134967,2.2410388,1.81317568,0.0198733248,0.502359271 +-0.140177965,1.11583126,0.140177965,0.000239555215,0.787198961,0.491251141,0.460772216,0.283237696,0.0195922218,0.198291168 +-0.384936392,1.116202,0.384936392,0.000431313034,0.427813172,0.648606777,2.18242264,2.0440011,0.0199595578,0.544808805 +-0.19732371,1.11626136,0.19732371,7.63421558e-05,0.706469536,0.570951283,0.955102324,0.522682309,0.019627234,0.279560179 +-0.262131393,1.11648595,0.262131393,0.000172330037,0.566786885,0.603490353,1.67563438,1.02764904,0.0197123103,0.370958358 +-0.311628282,1.11694503,0.311628282,0.000596014375,0.457744777,0.566511571,2.10873604,1.46379185,0.0197820868,0.441002786 +0.17173332,1.11724579,-0.17173332,0.000331181305,0.75181663,0.536809862,0.70765698,0.456639767,0.0196358301,0.243198752 +-0.450678587,1.11731756,0.450678587,0.00057822949,0.482497513,0.818572283,0.744164348,2.29251623,0.0202709455,0.637880862 +-1.11974049,1.11756182,1.11974049,0.00106428808,0.145851701,0.0873797238,0.177838176,-0.225883037,0.0212604683,1.5836885 +1.1217736,1.11760104,-1.1217736,0.000889067771,0.14112778,0.0846503675,0.157291412,-0.343052089,0.02122977,1.58647144 +0.426365137,1.11780417,-0.426365137,0.000524247182,0.481238246,0.791457713,1.71789885,2.30558491,0.0204137508,0.603112578 +-0.48840636,1.11796331,0.48840636,0.000434362359,0.472181886,0.819515586,-0.65407902,2.72086573,0.0207291283,0.690810144 +-0.205082402,1.1182394,0.205082417,0.000352350704,0.693611383,0.581773341,1.04757202,0.60183394,0.0196347106,0.290226221 +0.989581525,1.11826265,-0.989581525,0.000617554935,0.1989557,0.131412044,1.20413351,-0.148435265,0.0210494231,1.39955282 +0.360413074,1.11828864,-0.360413074,0.00031904917,0.415244609,0.59031266,2.23199916,1.92689121,0.0202425811,0.509775877 +0.328066051,1.11830974,-0.328066051,0.000241047179,0.439405203,0.569074214,2.15222168,1.65687227,0.0200998187,0.46397692 +1.11781442,1.11901188,-1.11781442,0.00101730903,0.141582042,0.0859156027,0.193543345,-0.35976541,0.0212349836,1.58086729 +-0.853031754,1.11926961,0.853031754,0.00356538873,0.256574571,0.171976328,0.567820549,0.144201815,0.020762939,1.20686162 +-1.06125951,1.11971927,1.06125939,0.00122800679,0.172846258,0.113513231,0.845321059,-0.0824415907,0.0211621821,1.50097895 +-1.04738963,1.11991048,1.04738975,0.000759888091,0.176392213,0.117796093,0.977220297,-0.0751184672,0.0211295094,1.48138273 +0.285027415,1.12023926,-0.285027415,0.00015497244,0.516134262,0.59880513,1.87184525,1.29371381,0.0199132059,0.403361976 +-0.496361256,1.12038338,0.496361256,0.00074783637,0.452236593,0.783365488,-1.05890942,2.86747599,0.020867398,0.702080369 +-0.240270302,1.12049365,0.240270302,0.000176614485,0.621956468,0.611006141,1.42359293,0.870649457,0.0196789131,0.339861691 +0.297464669,1.12059712,-0.297464669,0.000407159328,0.488335669,0.587408304,1.95915055,1.37708449,0.0199726522,0.421000659 +0.0800413787,1.1206398,-0.0800413787,0.000427530031,0.825131536,0.435814083,0.187675789,0.152757972,0.0195964817,0.115832962 +0.985616088,1.12116814,-0.985616028,3.74987358e-05,0.19972682,0.132107347,1.22058845,-0.1621622,0.0210418142,1.39399409 +-0.245808452,1.12117302,0.245808452,0.000250126235,0.609634101,0.613604546,1.47730458,0.919824302,0.0196884107,0.3476457 +0.272905558,1.12142408,-0.272905558,0.000213254636,0.546524882,0.610537648,1.76213193,1.20936894,0.0198643412,0.386078656 +0.00445897132,1.12166452,-0.00445897086,0.000835597806,0.838912666,0.40224877,0.0960849896,0.0245089121,0.0195940863,0.0188373253 +-0.416650832,1.12175322,0.416650802,0.000458178867,0.462311238,0.745768189,1.8690027,2.33792186,0.020074714,0.589295924 +-0.0473615825,1.12181592,0.0473615825,0.000540475885,0.833800912,0.415435672,0.131863654,0.0673131943,0.0195911899,0.0678821206 +-0.239226699,1.12184811,0.239226699,2.30362821e-05,0.625232339,0.612827718,1.40797079,0.866743863,0.0196770113,0.338413298 +0.211656943,1.12192702,-0.211656943,0.000144175763,0.685829282,0.601299644,1.10289371,0.686039448,0.0196948741,0.29970178 +0.264189005,1.12196219,-0.264189005,0.000206481869,0.566959381,0.614667475,1.66211653,1.12092924,0.0198371671,0.373804152 +-0.335634142,1.12200749,0.335634172,0.000178330665,0.43377772,0.577818573,2.1932528,1.77815616,0.0198324397,0.474794745 +0.242654026,1.12229383,-0.242654026,0.000309207564,0.616253614,0.620006561,1.43320537,0.909574151,0.0197681766,0.343678504 +1.00551319,1.12249994,-1.00551319,0.00114019995,0.191750407,0.126382798,1.12724113,-0.174568519,0.0210849084,1.42202902 +-1.10736883,1.12251914,1.10736883,0.00106478855,0.147440597,0.0918482095,0.289759338,-0.287627578,0.0212463103,1.56619024 +-0.492981821,1.12251949,0.492981821,4.80606395e-05,0.466016233,0.816050828,-0.921345532,2.96495533,0.0208154228,0.697379231 +0.192294836,1.12258458,-0.192294836,0.000255210471,0.720364332,0.573001444,0.902994394,0.572743893,0.0196610801,0.273014486 +0.151757732,1.12277436,-0.151757732,0.000301049993,0.777377844,0.509474337,0.530308366,0.364497244,0.0196167268,0.214729115 +-0.289280266,1.1227777,0.289280266,0.000265845621,0.509395301,0.596150219,1.91981888,1.32980752,0.0197574999,0.409169108 +-0.236642718,1.12286592,0.236642718,0.000226395729,0.631536007,0.613289416,1.37715757,0.850904167,0.0196740162,0.334708691 +0.20769392,1.12288606,-0.20769392,0.000194682827,0.694083869,0.597198188,1.04244423,0.655119956,0.019689288,0.294029742 +-0.162036493,1.12296474,0.162036493,0.000264170405,0.763352871,0.525512397,0.60609591,0.373865426,0.0196001045,0.229736909 +-0.425375521,1.12296677,0.425375521,0.000557046558,0.473750144,0.776750803,1.73263955,2.42908216,0.0201069396,0.601744235 +-0.240718573,1.1230166,0.240718558,3.29871982e-05,0.622726917,0.615836978,1.41324949,0.878494382,0.0196804646,0.340512216 +0.230065942,1.12306333,-0.230065942,0.000259197142,0.646761715,0.616779804,1.30091095,0.817050576,0.0197351202,0.325547576 +0.2270125,1.12309361,-0.2270125,0.000106640742,0.653184533,0.616034389,1.25841844,0.786367059,0.01972894,0.321350276 +0.339087665,1.12319565,-0.339087665,0.000181900337,0.427063644,0.575244427,2.1868403,1.82444191,0.0201580152,0.479549766 +0.0092175873,1.12331283,-0.00921758823,2.86992581e-05,0.838918328,0.403067738,0.0931157172,0.0259030741,0.0195941702,0.0186142325 +-0.570695579,1.1233716,0.570695579,0.00066431961,0.240401149,0.346557468,-2.70646572,1.79866743,0.0213660672,0.807317078 +-0.282081991,1.12343645,0.282081991,0.000203689604,0.527157068,0.605599999,1.84770441,1.26946235,0.0197449941,0.39895165 +-1.15537453,1.12368536,1.15537453,0.000913474651,0.138177529,0.0809247121,0.144763634,0.00942797773,0.0212805998,1.63408685 +0.180037424,1.12370849,-0.180037439,0.000391611655,0.741531789,0.55571872,0.760989666,0.481474608,0.0196450837,0.255025655 +-0.2390742,1.12374139,0.2390742,7.26334983e-05,0.626854539,0.615907729,1.39551282,0.866392851,0.0196776204,0.338177919 +-0.193859339,1.1237936,0.193859339,0.000250850833,0.716513753,0.573793292,0.89535588,0.531572461,0.019624725,0.274314284 +-0.267356336,1.123909,0.267356336,0.000306475675,0.562231123,0.617686152,1.70365214,1.14535856,0.0197211709,0.378245473 +0.980358899,1.12419057,-0.980358899,0.00181231264,0.201832592,0.13314867,1.21075106,-0.170838073,0.021028934,1.38654518 +-0.112720229,1.12452888,0.112720229,0.00040215734,0.80994606,0.465181738,0.300249875,0.200752556,0.0195879992,0.159916997 +0.989298761,1.12454069,-0.989298761,0.000142051547,0.197710291,0.130788222,1.20777082,-0.174711466,0.0210491307,1.39916074 +-0.293636292,1.12461579,0.293636292,0.000440142758,0.501898229,0.59541887,1.94238496,1.38100791,0.0197678339,0.415326685 +0.0131947789,1.12478161,-0.0131947789,0.000460927316,0.838684559,0.404484004,0.0924651548,0.0300680716,0.0195941962,0.0213277023 +0.316657722,1.12488925,-0.316657722,0.000162138676,0.459059089,0.582675338,2.0805614,1.65345776,0.0200588889,0.44788146 +0.320894271,1.12506235,-0.320894271,4.97385699e-05,0.451231927,0.57988131,2.10826731,1.6951232,0.0200759359,0.453896612 +-0.833426178,1.12510002,0.833426118,0.000638152706,0.263601243,0.176802099,0.437176466,0.149066344,0.0207466036,1.1801486 +-0.261862308,1.12523985,0.261862308,0.000193961139,0.575622022,0.621003449,1.63246262,1.09511042,0.0197168831,0.370485604 +0.143313974,1.12530172,-0.143313974,0.000248994067,0.786954284,0.5030334,0.463100344,0.33235389,0.01961134,0.202812761 +-0.0997585952,1.12549734,0.0997585952,0.000518659072,0.817472041,0.454175889,0.243114233,0.162514418,0.0195877086,0.141839325 +-0.215506017,1.1256001,0.215506017,0.000512905477,0.677256286,0.601248205,1.12912583,0.683647692,0.0196482725,0.305073261 +-0.616072297,1.12612414,0.616072297,0.00100616459,0.206377566,0.24887234,-2.41409063,0.932278872,0.0210410636,0.871452451 +-0.422452927,1.12613237,0.422452927,2.59101344e-05,0.470628917,0.772954702,1.75049639,2.49999404,0.0201033689,0.597689867 +0.356339693,1.12660897,-0.356339693,0.000176459042,0.418911994,0.59715718,2.2074945,2.05652618,0.0202336293,0.50410223 +0.338807821,1.12668931,-0.338807821,9.26072687e-07,0.429390192,0.582039952,2.17474842,1.87307203,0.0201593991,0.479189247 +0.172590375,1.12672424,-0.17259039,0.000231511935,0.753278375,0.544903159,0.698597908,0.46130687,0.019634949,0.244701281 +0.98526907,1.12692213,-0.98526907,0.000550059194,0.199204609,0.13152945,1.22160363,-0.17847538,0.0210374091,1.39347363 +-0.289754242,1.12692773,0.289754242,5.02998373e-05,0.511890471,0.603480816,1.89918125,1.35913837,0.0197601523,0.409858137 +-0.63627708,1.12701392,0.63627708,0.000391695299,0.210423648,0.237644851,-2.22330427,0.593770504,0.0209120773,0.900000095 +-0.0314027071,1.12704504,0.0314027034,0.000697811076,0.836710453,0.410764784,0.106418654,0.0450104922,0.0195916053,0.0480248295 +0.33837834,1.12730145,-0.33837834,3.83103652e-05,0.430065304,0.582619011,2.17332506,1.88007581,0.0201583058,0.478582352 +0.36002633,1.12734306,-0.36002633,0.000330610696,0.419994175,0.607417226,2.19793034,2.09909105,0.0202471185,0.509267807 +0.00820198189,1.12735677,-0.00820198283,4.49549261e-05,0.838696897,0.405313969,0.0878528133,0.0242398083,0.0195936318,0.0182625726 +0.0475107059,1.12748289,-0.0475107059,0.000897769292,0.834040344,0.417734414,0.118551195,0.104660898,0.0195947532,0.0741199031 +0.321886182,1.12752509,-0.321886182,7.41921685e-05,0.452295125,0.586878002,2.10228419,1.74254894,0.0200780947,0.455339313 +0.339120418,1.12754178,-0.339120388,8.30718855e-05,0.429912984,0.584401369,2.17369032,1.89291644,0.0201607645,0.479621023 +0.408654451,1.12755644,-0.408654451,0.000312019431,0.457370013,0.743633926,1.86010385,2.38777256,0.0204160381,0.578247309 +1.16023064,1.12756753,-1.16023064,0.000806653989,0.132443309,0.078474842,0.159349963,-0.0666337162,0.0211854391,1.64090085 +-0.482406735,1.12757254,0.482406735,0.000313630793,0.478711486,0.841057658,-0.468253791,3.11898637,0.0206608605,0.682248592 +-0.319548309,1.12767017,0.319548309,0.000236092936,0.454593122,0.583035409,2.08962321,1.64293027,0.0198081657,0.452120572 +-0.345056772,1.12774312,0.345056772,0.000189317274,0.428127348,0.597572446,2.18718934,1.93117237,0.01984182,0.488490045 +0.156281024,1.12820768,-0.156281024,0.000214701795,0.773639143,0.522818685,0.558096945,0.394477367,0.0196203087,0.221088201 +0.338659823,1.12835157,-0.338659823,0.000105095743,0.430814147,0.584942043,2.16784692,1.89894342,0.0201604348,0.478953838 +0.789951682,1.12839592,-0.789951682,0.00296696718,0.275528193,0.186867848,0.0981314108,0.0543720648,0.0208309982,1.11860418 +-0.385982454,1.12846828,0.385982484,0.000399104611,0.427514613,0.656954169,2.11405039,2.27245426,0.0199703258,0.546034098 +0.149058595,1.12848246,-0.149058595,0.000128316417,0.782095671,0.509744048,0.496329278,0.35506773,0.0196134299,0.211105406 +-0.466999948,1.12860489,0.466999948,0.000299587671,0.498204887,0.87821126,0.177252576,3.04961419,0.0204435997,0.66059643 +0.382587641,1.12869334,-0.382587641,8.68938587e-05,0.427020669,0.653308153,2.12530279,2.31658578,0.0203436855,0.541062295 +0.382731289,1.1287142,-0.382731289,0.000284081791,0.427119017,0.653613269,2.12482047,2.31751299,0.0203442108,0.541264892 +0.382308602,1.12878609,-0.382308602,0.000155369329,0.426959485,0.652845204,2.1258769,2.3153069,0.0203427821,0.540666461 +0.382617027,1.12881148,-0.382617027,2.18364189e-08,0.427066833,0.653521836,2.12474298,2.31863379,0.0203440282,0.541104913 +0.382675767,1.12887657,-0.382675767,0.000187979531,0.4270702,0.653645694,2.12348342,2.3205359,0.0203445368,0.541187465 +-0.169961721,1.12888193,0.169961721,0.000275280792,0.754683733,0.54288739,0.653888702,0.405726492,0.0196055379,0.240780607 +0.382613152,1.12888539,-0.382613152,6.0326208e-08,0.427076459,0.653578281,2.12404442,2.31955791,0.0203442443,0.541098833 +0.382673562,1.1290133,-0.382673591,0.000167386723,0.427084416,0.653817117,2.12158608,2.32268262,0.020345049,0.541183233 +-0.427262306,1.12905538,0.427262336,0.000337616744,0.470363915,0.777830243,1.59102643,2.67277908,0.0201272592,0.604355693 +0.382384181,1.12934542,-0.382384181,0.000140700358,0.427197218,0.653801084,2.11945891,2.32417607,0.0203446671,0.540773273 +-1.01256549,1.12935233,1.01256561,0.00168602506,0.190395296,0.129096195,1.23055696,-0.084291324,0.021029735,1.4321394 +0.0611249506,1.12963009,-0.0611249469,0.000576866616,0.831103325,0.425974399,0.133738965,0.125213996,0.0195949972,0.0906300247 +0.212269768,1.12982392,-0.212269768,0.000218483328,0.690059721,0.615907788,1.06996882,0.729736686,0.0196982846,0.300371319 +0.225475252,1.12982583,-0.225475252,0.000122914862,0.661280096,0.625863552,1.20870829,0.810953557,0.0197273176,0.319013387 +-0.493683696,1.12985659,0.493683666,0.000643562293,0.451167494,0.788462043,-1.00090027,3.36388993,0.0208348352,0.698236287 +0.248926759,1.12991524,-0.248926759,0.000337134756,0.608728111,0.637855828,1.47561288,1.02216625,0.0197864119,0.352447867 +0.543360829,1.13007379,-0.543360829,0.00158043497,0.293679982,0.475079954,-2.42122602,2.62298536,0.0216423701,0.769483209 +0.324470997,1.13013577,-0.324470997,0.00012275287,0.451643556,0.592942357,2.09662127,1.80557656,0.0200925823,0.45891881 +-0.184379876,1.13016462,0.184379876,0.000308788207,0.735499918,0.565244555,0.78923595,0.507807851,0.0196150411,0.261071086 +-0.127223164,1.13022149,0.127223164,0.000344031549,0.801099181,0.486075461,0.350700736,0.23681356,0.019588571,0.180159047 +-0.240540266,1.13035214,0.240540266,0.000126616331,0.629171848,0.630138457,1.37016416,0.904908419,0.0196847655,0.34019357 +0.319790334,1.13036311,-0.319790304,0.000174182569,0.458488941,0.592194557,2.07491207,1.75520778,0.0200741552,0.452327609 +0.132339373,1.13056946,-0.132339373,0.000285682472,0.79598999,0.492180049,0.37817651,0.300116211,0.0196045842,0.187854379 +-0.37289232,1.13105929,0.37289232,0.000199039729,0.423608631,0.631837606,2.15835309,2.26244545,0.0199266002,0.527548552 +0.17702733,1.13165998,-0.177027345,0.000252341124,0.748701096,0.55951947,0.712389708,0.464822799,0.019639276,0.250928938 +0.290163904,1.13181734,-0.290163875,0.000268290576,0.51527983,0.616572499,1.84226346,1.427351,0.0199485067,0.410656154 +0.586583972,1.13191795,-0.586583972,0.00107786304,0.212020516,0.286318779,-2.52753687,1.3641088,0.0215371605,0.829654276 +-0.247374609,1.13194036,0.247374609,0.00013688927,0.615872681,0.637561679,1.42800999,0.988642097,0.0196969826,0.349852145 +-0.42365849,1.13214469,0.42365852,0.000113948139,0.461953968,0.762822628,1.5868001,2.72285199,0.0201187786,0.599274218 +-0.811166406,1.13214803,0.811166406,0.00392681593,0.266315669,0.18172273,0.251620859,0.139482424,0.0207414869,1.14788151 +0.439600348,1.13224983,-0.439600348,0.000581254484,0.483185768,0.826810479,1.13964057,2.95142126,0.0205004048,0.621834755 +1.16581678,1.13230753,-1.16581678,0.000558026659,0.130207658,0.0785995573,0.214032665,-0.00773539953,0.021175798,1.64879417 +0.517293453,1.13233769,-0.517293513,0.000762320124,0.369718254,0.629478276,-1.85578084,3.42485929,0.0213630889,0.731955886 +0.415192962,1.13245213,-0.415192962,0.000367817061,0.454061836,0.749965429,1.65535474,2.68749833,0.0204497837,0.587347984 +0.146159604,1.13245463,-0.146159604,0.000259400607,0.785097063,0.509045124,0.464357316,0.345227987,0.0196115058,0.206836358 +-0.550318241,1.13262415,0.550318241,0.000638175698,0.279564261,0.439178646,-2.43437147,2.24367714,0.0213531647,0.778661788 +-0.635929585,1.13292813,0.635929585,0.000881005428,0.210587025,0.251259208,-1.61736548,1.36080551,0.0208397657,0.899610639 +-1.16636467,1.13313615,1.16636467,0.000627738365,0.133550584,0.0817655623,0.242884144,0.109868705,0.0212840308,1.64962351 +-0.931283355,1.13354206,0.931283355,0.00339428661,0.224532127,0.149484321,1.08496809,-0.0437692963,0.0208419412,1.31785846 +0.497896731,1.13367891,-0.497896731,0.000483877258,0.44441843,0.785940647,-1.04752707,3.51984596,0.0210494846,0.704480052 +-0.223009557,1.13368249,0.223009557,0.000189651677,0.667632103,0.627574861,1.18623805,0.790928602,0.019658925,0.315761566 +-0.333743453,1.13376963,0.333743453,0.000103105638,0.441589475,0.597269833,2.13746428,1.90739155,0.0198303759,0.472274363 +0.342524469,1.13381147,-0.342524469,7.79696202e-05,0.431280851,0.598008335,2.13268757,2.01710033,0.0201883819,0.48440516 +-0.0684304982,1.13384271,0.0684304982,0.000454162306,0.828551471,0.433431238,0.146764398,0.0980861932,0.0195879098,0.097175546 +1.05403316,1.13384795,-1.05403316,0.00190575339,0.169807211,0.111500353,0.94599247,-0.226453379,0.0211937167,1.49075365 +0.00477718795,1.13387585,-0.00477718841,0.000506316544,0.837750912,0.409071803,0.0788604841,0.0229383521,0.0195926372,0.0173878632 +-0.3688474,1.13392806,0.3688474,0.00013177791,0.423956484,0.63022542,2.15321755,2.25631785,0.0199140701,0.521821499 +0.281129956,1.13403273,-0.281129986,0.00020255585,0.536556125,0.628818989,1.75603366,1.35138154,0.0199046489,0.397898465 +0.185822457,1.13409102,-0.185822457,0.000148585677,0.737090826,0.585446298,0.772075951,0.518946767,0.0196538549,0.263044298 +-0.899088264,1.13449001,0.899088264,0.0032416496,0.239977241,0.158233553,0.933474302,-0.0292948466,0.0207899213,1.27223611 +-0.286772639,1.13465834,0.286772639,0.000137095922,0.527391791,0.624483645,1.81459308,1.38164103,0.0197617896,0.405580282 +-0.0372824967,1.13512039,0.0372824967,0.000677333621,0.835710287,0.417106926,0.100721225,0.049598515,0.0195900649,0.0552590191 +-0.462488919,1.13557446,0.462488949,0.000264688802,0.488357484,0.859466732,0.238547072,3.29336619,0.0204229187,0.654181182 +0.708768368,1.13565743,-0.708768308,0.00261833519,0.263485998,0.223119035,-0.72802484,0.455114365,0.0208665896,1.00297093 +-0.376385391,1.13586235,0.376385391,0.00017890014,0.424381912,0.641560793,2.11797309,2.3653965,0.0199414715,0.532370389 +0.322641343,1.13600779,-0.322641343,0.000123425154,0.459776014,0.605221212,2.0393858,1.85122228,0.0200946499,0.456311643 +-0.466857523,1.13604867,0.466857523,6.64443432e-05,0.487739712,0.863521338,0.0451102108,3.39515591,0.020459475,0.660497069 +0.0118829291,1.13625014,-0.0118829301,0.000487817684,0.837266207,0.411764234,0.076442562,0.0279492363,0.0195928309,0.0189492218 +-0.292933822,1.13630462,0.292933822,0.000161022297,0.5147264,0.622242808,1.85213184,1.46996903,0.0197747331,0.414285183 +-0.329427719,1.13635087,0.329427719,0.000328532915,0.449975967,0.603016615,2.10466957,1.87959504,0.0198209379,0.466009796 +-0.1594235,1.13668656,0.1594235,0.00059581449,0.770932555,0.531656384,0.554133654,0.370653808,0.0195979103,0.225935459 +-1.00212097,1.13677442,1.00212097,0.00177662307,0.193858728,0.131525517,1.24388242,-0.105407976,0.0209991429,1.41756487 +-0.187501132,1.13698757,0.187501132,0.000109715969,0.732240736,0.582684457,0.791083574,0.502592444,0.0196180809,0.265704095 +-0.954672992,1.13707423,0.954673052,0.00301968516,0.213317335,0.142388657,1.20835018,-0.0911914036,0.0208877865,1.35130215 +-0.0772362426,1.13711286,0.0772362426,0.00042121124,0.825421453,0.440748245,0.16667065,0.11674802,0.0195869952,0.109588191 +0.083387889,1.13718247,-0.083387889,0.00052587816,0.822202206,0.448716968,0.167374343,0.156818241,0.0195948165,0.119471416 +-0.141827956,1.13826549,0.141827956,0.000270660385,0.788098574,0.509768128,0.434853196,0.310977966,0.0195915997,0.200792074 +0.305236518,1.13847256,-0.305236518,0.000383128587,0.490707695,0.626090944,1.9222219,1.6804862,0.020011602,0.432084143 +-0.348433048,1.13878131,0.348433048,0.000271633791,0.432105541,0.612532735,2.10976028,2.09397578,0.0198646281,0.492989689 +0.198470697,1.13936698,-0.198470697,0.000257234613,0.718521118,0.607450306,0.885621071,0.609821558,0.0196710806,0.281328678 +-1.04964066,1.13940775,1.04964066,0.00140100566,0.172639251,0.116093554,0.986129761,-0.14014782,0.021120375,1.48452854 +0.742589831,1.13988924,-0.742589831,0.00244487822,0.269218445,0.204973325,-0.347901136,0.200342596,0.0208532084,1.05041933 +-0.363321722,1.13990724,0.363321722,0.000333946577,0.429957151,0.635135591,2.10422444,2.26840496,0.0199038126,0.513916433 +0.506773353,1.14008582,-0.506773353,0.00103330857,0.402502,0.707655311,-1.53533947,3.94080305,0.0212651901,0.717216492 +-0.131907523,1.14018142,0.131907523,0.00014332174,0.797826946,0.496024042,0.359312505,0.257080376,0.0195877999,0.187226892 +0.351734877,1.1402775,-0.351734877,0.000148047868,0.429219693,0.615652919,2.09930897,2.20372391,0.0202416163,0.497439921 +0.154269546,1.14032114,-0.154269546,0.000211498889,0.77823019,0.529867053,0.499042213,0.39317134,0.0196158756,0.218209356 +-0.338703275,1.14063954,0.338703275,0.000110880967,0.441612482,0.609274387,2.09089327,2.0331955,0.0198497623,0.479131699 +-0.426028728,1.14083123,0.426028728,0.000344735483,0.443187028,0.738170028,1.15001619,3.11290836,0.0201423857,0.60256505 +-0.369775146,1.14139438,0.369775146,0.000269332901,0.426364988,0.640369415,2.0710268,2.35530949,0.0199247375,0.523082435 +-0.204809725,1.14150977,0.20480974,0.000265661394,0.705748975,0.612968922,0.953805447,0.639935136,0.0196394864,0.28975746 +0.718636811,1.14185286,-0.718636811,0.00124898984,0.266128629,0.211716399,-0.578282952,0.29755792,0.0208614785,1.01716638 +-0.231040746,1.14188206,0.231040746,0.000222656759,0.655493855,0.649730861,1.2171576,0.851157904,0.019672567,0.327390552 +0.271432489,1.14206505,-0.271432489,0.000222500254,0.568733096,0.654417276,1.61078429,1.30180645,0.0198728591,0.383990347 +-0.467852473,1.14241564,0.467852443,0.000484315329,0.467088699,0.822118342,-0.179963276,3.75349379,0.0204652678,0.661751628 +0.227510095,1.14280593,-0.22751008,0.000131508888,0.666028619,0.651983619,1.17075884,0.85205096,0.019735327,0.321959287 +-0.128039643,1.14281797,0.128039658,6.53358147e-05,0.800297856,0.494626373,0.331235796,0.237897307,0.0195873324,0.181969345 +-0.564871013,1.14282417,0.564870954,0.00072451937,0.231489897,0.341814041,-2.54732323,2.09622574,0.0214019064,0.799372911 +0.117545612,1.14310515,-0.117545612,0.000294926169,0.803519368,0.483454585,0.275989175,0.240846008,0.0195993073,0.166856751 +-0.526341081,1.14338267,0.526341021,0.000858590705,0.331480324,0.555752873,-2.05096221,3.39351273,0.0212995522,0.744630754 +0.635826826,1.14347744,-0.635826826,0.000891560805,0.190739751,0.215682641,-2.07329988,0.5900172,0.0210587122,0.899999976 +-0.196814567,1.14350104,0.196814567,0.000249629287,0.721080542,0.607235432,0.85302043,0.586499691,0.0196319483,0.278428972 +0.134600103,1.14367867,-0.134600103,0.00027670592,0.794743776,0.500957429,0.366430134,0.309618652,0.0196035597,0.191715777 +-0.445467561,1.14377308,0.445467591,0.000504313037,0.465789735,0.801170766,0.672679722,3.59236288,0.0202686507,0.630280137 +-0.0284178499,1.143942,0.0284178499,0.000650467584,0.835222542,0.419047505,0.0813182294,0.0413393825,0.0195897277,0.0439111516 +0.59711951,1.14415812,-0.59711951,0.00155573606,0.197571114,0.258659542,-2.35858035,1.22682023,0.0214371737,0.844581723 +0.262860656,1.1442287,-0.262860656,0.000352418778,0.59032011,0.663658023,1.50173604,1.22337592,0.0198471807,0.37191844 +1.12546194,1.14474189,-1.12546206,0.000316329999,0.189692229,0.131972983,-0.00456522685,-0.586602747,0.0212493911,1.59168851 +0.581534147,1.14496279,-0.581534147,0.000750062056,0.209751606,0.288978934,-2.3612268,1.66073048,0.0215410553,0.822615325 +0.99823916,1.14506459,-0.99823916,0.00116015261,0.190311074,0.125650615,1.20882499,-0.216216534,0.0210609753,1.41174042 +-1.12372136,1.14532709,1.12372136,0.000377165619,0.186487377,0.129877701,0.0101028979,-0.481310248,0.021251142,1.58931744 +-0.0664717257,1.14537263,0.0664717257,0.000329028611,0.828640044,0.438118607,0.129441798,0.0932386965,0.0195864309,0.0953749493 +0.588304162,1.14539468,-0.588304162,0.000229540339,0.199082687,0.2662597,-2.37557673,1.39477277,0.0215184558,0.832250834 +1.08184767,1.14552283,-1.08184755,0.00118893886,0.146494567,0.0998843461,0.679784536,-0.475615263,0.0212875996,1.53007007 +-0.40987134,1.14566457,0.40987134,0.000226297532,0.448333621,0.73911339,1.67802978,2.9552958,0.0200721957,0.579649687 +-1.21001744,1.14581239,1.21001744,0.000460227573,0.0928200483,0.0586550534,1.4150548,0.108387724,0.0212813262,1.71141398 +0.349330246,1.1458317,-0.349330217,3.71448587e-05,0.433748484,0.624297738,2.04982018,2.25507426,0.0202406514,0.494079053 +1.1224035,1.1458832,-1.12240362,0.000349423412,0.19226864,0.134109929,0.0301305726,-0.613873601,0.0212622322,1.587358 +-1.22869253,1.14592814,1.22869253,0.000188673788,0.043766506,0.0411366634,1.661273,-0.0114907809,0.0212883856,1.73782277 +-0.312770844,1.14597285,0.312770844,0.000230399237,0.485399783,0.630577624,1.91930938,1.79283142,0.0198122393,0.442365527 +-1.22033572,1.14606142,1.22033572,0.000418872689,0.0622821786,0.0419785976,1.65777516,0.0401082039,0.0212820023,1.72600329 +0.636125028,1.14613557,-0.636125028,0.00059680111,0.223694861,0.257589728,-1.45386064,1.09499288,0.0210321099,0.89976126 +-1.15105689,1.1462369,1.151057,0.000333981705,0.16734466,0.125730217,-0.0749403909,-0.0976916999,0.0212671962,1.62798071 +0.470156252,1.14630365,-0.470156252,0.000305766385,0.43771103,0.75739044,-0.429826915,4.29812288,0.0207280237,0.66492337 +1.19830418,1.14645684,-1.19830406,0.000418384152,0.116076082,0.0754116774,1.18652308,0.138698533,0.0211717784,1.69466972 +-0.406982392,1.14664328,0.406982422,0.000275797211,0.444159776,0.729995012,1.69463766,2.97230887,0.0200622566,0.575572193 +0.068705067,1.14674783,-0.068705067,0.000367351488,0.826570272,0.443926126,0.121250629,0.135322839,0.0195933897,0.0997920036 +0.0357125588,1.14676166,-0.0357125588,0.000351911003,0.833504081,0.426263303,0.0803759396,0.0755825266,0.0195923205,0.0510351546 +0.347088307,1.14676929,-0.347088337,0.000107834683,0.437438399,0.626687348,2.03534508,2.23763943,0.0202306826,0.490876168 +-0.119759232,1.14686465,0.119759232,0.000434926711,0.804515064,0.490479499,0.288357794,0.210317105,0.0195864663,0.169744313 +-0.292245179,1.14698422,0.29224515,7.67477759e-05,0.527185261,0.647122502,1.76336408,1.55210054,0.0197834428,0.413376957 +-0.180649549,1.14706063,0.180649549,0.000231036858,0.746142507,0.579067588,0.695096493,0.496155798,0.0196143091,0.255588084 +0.337165594,1.14722133,-0.337165594,0.000231543818,0.448701918,0.626675904,2.00153732,2.11431861,0.0201796088,0.476953685 +-0.263311744,1.14728475,0.263311744,0.000167530787,0.593018591,0.665096462,1.51255119,1.22152972,0.0197290126,0.372461975 +-1.08010316,1.14748466,1.08010316,0.00108476973,0.150558457,0.104335465,0.700419843,-0.391008317,0.0211781878,1.52762699 +-1.20218515,1.14749873,1.20218515,0.00052895688,0.1030505,0.0647148266,1.18709385,0.123291537,0.0212805774,1.70033789 +0.207372025,1.14751768,-0.20737204,0.000330466282,0.707828283,0.636783957,0.956946611,0.736530542,0.0196885951,0.293650597 +-0.172482893,1.14755654,0.172482893,0.000227177778,0.75741148,0.5693627,0.614238799,0.439382613,0.0196090471,0.244078696 +0.47161606,1.14758217,-0.47161603,0.000268370175,0.435402066,0.755504251,-0.524355233,4.37650681,0.0207437761,0.666996479 +-0.314773023,1.14766812,0.314773023,0.000194516455,0.48356384,0.63226229,1.92137873,1.82690835,0.0198178571,0.445185006 +-0.278900325,1.14767289,0.278900325,0.000317519851,0.558943152,0.661558867,1.64893341,1.39681911,0.0197593886,0.39454776 +1.15506458,1.14773786,-1.15506446,0.000291643082,0.158126816,0.120944016,-0.0907131284,-0.147503421,0.0211395714,1.63359451 +-0.202425733,1.14779758,0.202425733,0.00011011411,0.713439107,0.621429503,0.899459541,0.642359018,0.0196385738,0.286482811 +-0.071278438,1.14798546,0.071278438,0.000101020691,0.827043533,0.442375422,0.134196132,0.102300525,0.0195857678,0.101878166 +-0.40782547,1.14799464,0.40782547,3.53904238e-06,0.445457041,0.734711647,1.67294347,3.01131082,0.0200667251,0.576779187 +1.22867465,1.14807653,-1.22867477,0.000179931609,0.0439821221,0.0420017317,1.71677566,-0.00575252296,0.0212245993,1.737818 +-0.0994607061,1.14815044,0.0994607061,0.000802441617,0.816359639,0.468508184,0.200547874,0.156092972,0.0195848104,0.141414553 +1.22040081,1.14819825,-1.22040081,0.000396168354,0.063788563,0.0435132645,1.72224283,0.0305693075,0.0212203749,1.72611535 +-0.259746015,1.1482079,0.259746015,0.000260141911,0.601764917,0.667770267,1.46598053,1.18921721,0.0197262578,0.367425442 +-0.597083986,1.14822698,0.597083986,0.000762607495,0.199048996,0.251382887,-2.33142996,1.13271856,0.0211754702,0.844926357 +-0.581732333,1.14829946,0.581732333,0.000567617477,0.214259773,0.294514686,-2.37640786,1.62543619,0.0212732144,0.82285744 +1.21047163,1.1483444,-1.21047163,0.000463951408,0.0935842991,0.0589202084,1.52479196,0.0955825001,0.021208249,1.7120719 +-0.408077449,1.1483475,0.408077419,3.68281712e-06,0.445616364,0.735818207,1.66358566,3.02330875,0.0200688578,0.57713145 +0.349739581,1.14835382,-0.349739581,9.41277976e-05,0.435341179,0.629228592,2.01661682,2.2799859,0.0202502795,0.494639337 +-1.01743662,1.14846921,1.01743662,0.00085848337,0.185542032,0.126504302,1.22082067,-0.149707347,0.0210278537,1.43898964 +0.472190976,1.14851189,-0.472190946,0.000171597494,0.430602491,0.74643594,-0.570374966,4.43670559,0.0207629614,0.667824984 +0.470756292,1.14852417,-0.470756322,3.70808084e-06,0.434462935,0.753426194,-0.501958251,4.42397881,0.0207381826,0.665805995 +0.267019629,1.14859152,-0.267019629,0.000100574543,0.584911168,0.673716724,1.521909,1.30814481,0.0198616348,0.377886146 +0.429181516,1.14866984,-0.429181516,0.000456408365,0.455216557,0.784446597,1.0246942,3.40290499,0.020545233,0.607137203 +0.467872024,1.14867687,-0.467871994,0.000433387322,0.435523838,0.754829407,-0.385332167,4.37152863,0.0207229499,0.661684334 +0.222663328,1.14871061,-0.222663328,0.000354171119,0.680492401,0.659844756,1.07950556,0.842646182,0.0197267383,0.315056801 +0.934835196,1.14895868,-0.934835196,0.0028856718,0.219714671,0.140821069,1.11863136,-0.246373519,0.0209146645,1.32388556 +-0.408808231,1.14898455,0.408808231,0.000116903982,0.444506109,0.735035241,1.61866415,3.06366515,0.0200740118,0.578155637 +-1.11457813,1.14909077,1.11457813,0.000363186293,0.193878531,0.136093244,0.113506116,-0.574082255,0.0212388542,1.57638538 +-0.306950212,1.14921391,0.306950212,0.000158699811,0.499960721,0.642654955,1.85520554,1.74881411,0.0198053923,0.434102356 +-0.134123653,1.14924288,0.134123653,0.000357061392,0.795671344,0.507483423,0.348952174,0.278551698,0.0195879657,0.189906806 +-0.296454847,1.14935684,0.296454817,6.76468117e-05,0.520334005,0.65096283,1.78401124,1.62462401,0.0197881218,0.419385552 +0.438259214,1.14960241,-0.438259214,0.000529353973,0.449601442,0.781800747,0.688064218,3.69944382,0.0205755569,0.620025277 +-0.34776482,1.14969635,0.34776482,0.000228077348,0.440700144,0.635372818,2.02458501,2.26604652,0.0198758189,0.492132127 +-0.312765151,1.14983594,0.312765151,1.33328331e-05,0.488743395,0.638460398,1.88833594,1.82054615,0.0198148247,0.442383409 +-0.245651618,1.14996004,0.245651618,0.000167380189,0.63293314,0.670973063,1.32163048,1.03492963,0.019703757,0.347540319 +0.10757564,1.14996922,-0.107575633,0.000592589844,0.809723139,0.476233125,0.218936801,0.225097209,0.0195960738,0.153280586 +0.194039583,1.15005207,-0.194039583,0.000274922495,0.730462551,0.611921549,0.796885252,0.61492759,0.0196642745,0.27470547 +1.15988123,1.15006447,-1.15988111,0.000228749908,0.15305239,0.120945528,-0.0567245856,-0.0631009489,0.021124335,1.64039946 +-0.239730805,1.15008283,0.239730805,0.000192571126,0.645670056,0.669291675,1.24771893,0.96785605,0.0196954831,0.339191437 +-0.0771130919,1.15009117,0.0771130919,0.000342580228,0.82476604,0.450357854,0.142399594,0.113159277,0.0195853338,0.109412879 +-0.294710487,1.15019751,0.294710457,5.96289065e-05,0.524846375,0.653369069,1.76273417,1.61104524,0.0197891127,0.416930765 +0.471129626,1.15022099,-0.471129626,0.000374964613,0.428578407,0.742292762,-0.573482215,4.53400517,0.0207495168,0.666304648 +0.35460338,1.15030766,-0.35460338,0.000110187575,0.433606327,0.637133241,1.97925544,2.37661552,0.0202820394,0.501494646 +-0.407979608,1.15038753,0.407979608,0.000166169368,0.443591416,0.734184146,1.60239732,3.07865715,0.0200725272,0.576977313 +0.403545618,1.15050459,-0.403545618,0.000236135209,0.441858649,0.733006895,1.61076367,3.04821754,0.0204717182,0.570885062 +-0.404181242,1.15052176,0.404181242,0.000130482164,0.442356527,0.726418197,1.67479968,3.0127635,0.0200579669,0.571600914 +0.273730814,1.15066302,-0.273730844,0.000131624547,0.573550224,0.677706063,1.56528234,1.4104495,0.0198887512,0.387254834 +-1.16059041,1.15078378,1.16059041,0.000253021135,0.161657736,0.130482554,-0.0035052523,0.0544907078,0.0212709419,1.64145684 +-0.838128269,1.15094066,0.838128209,0.00463773683,0.260208547,0.171010107,0.47967875,0.00834564865,0.0207488425,1.18603289 +-0.31387049,1.15094757,0.31387046,0.000141067518,0.488118678,0.640137553,1.88101614,1.84227943,0.0198196899,0.443915933 +0.408639729,1.15117192,-0.408639699,0.000360149337,0.441408217,0.738100648,1.49935532,3.17657948,0.0204883665,0.578004897 +0.287409097,1.15155065,-0.287409097,0.000206597833,0.543179393,0.667344213,1.65834284,1.53212607,0.0199516229,0.406555623 +-0.535261869,1.15162945,0.535261869,0.000619312224,0.300036341,0.489106894,-2.10592604,3.36873865,0.0213313624,0.757333338 +0.161465406,1.15171897,-0.161465406,0.000149987303,0.77134794,0.549830377,0.51887989,0.429664403,0.0196196809,0.228661478 +-0.690121174,1.15218627,0.690121233,0.00234588119,0.241511807,0.213806704,-0.912812829,0.540701389,0.0207658969,0.976058602 +-0.280625284,1.15241313,0.280625284,8.34204911e-05,0.559938312,0.674806893,1.63225377,1.4606328,0.0197642706,0.397090524 +0.186650664,1.15241337,-0.186650664,0.000260300527,0.741573691,0.598585606,0.736784816,0.584065259,0.0196509976,0.264637232 +0.313263774,1.15242553,-0.313263774,0.000297051622,0.489335686,0.647527158,1.85091627,1.87781525,0.0200735442,0.443441868 +-0.311993212,1.15278196,0.311993212,0.000151138418,0.493839741,0.646456659,1.84914732,1.82878494,0.0198179521,0.44125101 +-0.636035681,1.15324879,0.636035681,0.00036484134,0.199522227,0.221613839,-1.95516455,0.445313811,0.0209014155,0.899999976 +-1.00616026,1.15330219,1.00616038,0.00105074921,0.190560162,0.129020914,1.25339043,-0.153341502,0.0210015606,1.42308164 +0.475834489,1.15344667,-0.475834459,0.00042126159,0.415145397,0.717300415,-0.691800237,4.59529495,0.0208126642,0.672940493 +-0.221101806,1.15363884,0.22110182,0.000113473485,0.684071541,0.65835464,1.04233944,0.818989038,0.0196677186,0.312704593 +0.240081206,1.15377498,-0.240081206,0.00022469979,0.648481309,0.683291972,1.21316421,1.01731491,0.0197763555,0.339615047 +-0.175004408,1.15387344,0.175004408,4.68745748e-05,0.754974663,0.578825533,0.61565727,0.456693709,0.0196111239,0.247886077 +-0.146968871,1.15388501,0.146968871,0.000330688985,0.783171654,0.530169606,0.417059243,0.318569124,0.019592084,0.208331943 +0.330933899,1.15404391,-0.330933899,0.000164358848,0.464213282,0.642611384,1.91875434,2.1272645,0.020163551,0.468086123 +-0.218246669,1.15420473,0.218246669,0.00013739182,0.689478278,0.656646669,1.01361144,0.795935452,0.0196638685,0.308654964 +-0.333274662,1.1543566,0.333274662,0.000128073923,0.462177962,0.642515481,1.93766987,2.13014197,0.0198590066,0.471322477 +0.16397208,1.15451825,-0.16397208,0.000214604894,0.768763959,0.559065938,0.526629627,0.431644142,0.0196221266,0.232179686 +-0.337095618,1.15452826,0.337095648,9.20168823e-05,0.456549227,0.640697479,1.95343947,2.17911506,0.0198653582,0.476729333 +0.589665294,1.15455365,-0.589665294,0.00121949764,0.194170833,0.256232262,-2.22749424,1.269889,0.0214808714,0.834080637 +-0.607112288,1.15457094,0.607112288,0.000452288077,0.192656815,0.234902948,-2.20153332,0.914810002,0.0210848507,0.859167516 +-0.388922334,1.1546309,0.388922334,0.000246717042,0.431407452,0.69103533,1.77135837,2.87183738,0.0200130716,0.550052106 +-0.337584645,1.15468812,0.337584645,2.52130012e-05,0.456320614,0.64148432,1.95188332,2.18507767,0.0198664386,0.477423668 +-0.264196485,1.15481055,0.264196485,0.000143312238,0.599113822,0.684507728,1.45713234,1.29040432,0.0197395422,0.373676181 +-0.0720965043,1.15481472,0.0720965043,0.000222131872,0.824445844,0.450255871,0.121626794,0.103913948,0.0195849705,0.102543995 +-0.22173278,1.15491474,0.22173278,4.61763811e-05,0.683508754,0.661234915,1.04083121,0.824942648,0.0196691342,0.313609719 +0.399943858,1.15499103,-0.399943888,0.000255834602,0.440238297,0.729191661,1.58392954,3.05401587,0.0204808582,0.565693676 +-0.224229693,1.15505266,0.224229693,0.000100089273,0.678907394,0.664661527,1.06421351,0.848428965,0.0196735729,0.317116469 +-0.178755179,1.1551187,0.178755179,6.835768e-05,0.750419497,0.588568091,0.649214447,0.501594126,0.0196140464,0.253169358 +-0.259576619,1.15519392,0.259576619,0.000150903812,0.608148575,0.683143437,1.41149163,1.23578048,0.019732995,0.36716485 +0.2418558,1.15519834,-0.2418558,0.000243285205,0.645735204,0.686562181,1.22945333,1.04590821,0.0197811816,0.342105836 +-0.33748135,1.15530729,0.33748135,7.18507436e-05,0.456885517,0.642788291,1.94682848,2.19378042,0.0198669787,0.477280259 +-0.337159067,1.15549684,0.337159067,4.1410618e-05,0.457416743,0.642998397,1.94385839,2.19209075,0.0198671427,0.476822257 +-0.221166447,1.15559578,0.221166462,6.55650583e-05,0.684939265,0.661716282,1.03351033,0.821593404,0.0196683928,0.312809795 +-0.337585658,1.15581596,0.337585628,0.000115761031,0.457277268,0.644042015,1.93976533,2.20156503,0.0198687017,0.477424264 +0.366685033,1.15593398,-0.366685033,0.000323493936,0.432950079,0.66349566,1.86283207,2.57693934,0.0203550477,0.518666387 +-0.455765307,1.15596175,0.455765277,0.000537532382,0.427803546,0.736461759,-0.102562308,4.42014027,0.0203505866,0.644811153 +0.708076239,1.1561501,-0.708076239,0.00234685396,0.259476244,0.211634859,-0.621982813,0.240987539,0.0208714418,1.0019567 +1.07502842,1.15624642,-1.07502842,0.0010471131,0.148429841,0.102941036,0.803345323,-0.480018348,0.0212800745,1.52042127 +-0.515861869,1.1562556,0.515861869,0.000592074008,0.352184772,0.605180562,-1.75969958,4.19542599,0.0211594459,0.729678273 +-0.221998394,1.15625751,0.221998394,8.1069993e-05,0.68372041,0.664338589,1.03496432,0.828785062,0.0196705721,0.313980937 +0.237130105,1.15633988,-0.237130105,0.000166332087,0.656505287,0.687518954,1.16521823,1.00606596,0.0197703894,0.335421979 +0.294041425,1.15638685,-0.294041425,0.000263349153,0.534498692,0.676957548,1.67810893,1.65726602,0.0199807193,0.415967703 +0.0524551123,1.15642595,-0.0524551123,0.00043519176,0.830357254,0.436303049,0.0810400248,0.110558189,0.0195916705,0.0747541934 +0.32289654,1.15652537,-0.32289654,0.000151804474,0.479222417,0.65418303,1.86154723,2.05568743,0.0201229732,0.456802368 +0.161212206,1.15657079,-0.161212206,9.20673847e-05,0.771992147,0.55415082,0.50208956,0.428392887,0.0196185485,0.228330076 +0.641524851,1.15707338,-0.641524911,0.0017126957,0.223714113,0.244673133,-1.27556252,0.885743022,0.0210249219,0.90762949 +-0.296065778,1.15716934,0.296065778,0.000166180485,0.531022906,0.670949399,1.69677901,1.68190992,0.0198025033,0.418734729 +-0.277308434,1.15746427,0.277308464,0.000155020738,0.572942376,0.686020315,1.55225778,1.45612121,0.0197678208,0.392240912 +0.24007237,1.15749061,-0.24007237,8.90284809e-06,0.651102364,0.691742897,1.19349372,1.04087222,0.0197775234,0.339672327 +0.115795568,1.15754294,-0.115795568,0.000271938014,0.804327607,0.48965618,0.240308404,0.23421824,0.019597102,0.164935499 +-0.20411253,1.15755284,0.204112515,0.000191037805,0.713547707,0.642029703,0.860147715,0.693914354,0.0196480118,0.288730472 +0.212663919,1.1578809,-0.212663919,0.000241520727,0.701207757,0.662876725,0.947496712,0.757871866,0.0197003949,0.301250935 +-0.390597761,1.15800798,0.390597761,2.57245138e-05,0.432552844,0.698774815,1.69840407,2.96598768,0.0200253054,0.552480996 +0.13716349,1.15815258,-0.13716349,0.000417282805,0.791805863,0.517688692,0.336475194,0.317181885,0.0196033455,0.194484353 +-0.693615377,1.15831792,0.693615377,0.00192828407,0.241916627,0.209840298,-0.834976196,0.452903211,0.0207613595,0.981069863 +0.258595556,1.15863252,-0.258595556,0.000168903396,0.612336695,0.697320282,1.34729242,1.215716,0.0198421702,0.365965307 +-0.221820906,1.15863514,0.221820906,0.00011857308,0.684788704,0.668472111,1.01774836,0.83540982,0.0196724124,0.313713074 +-0.196463674,1.15870333,0.196463659,0.000170847561,0.72533679,0.626300931,0.782413185,0.622491479,0.0196367521,0.277878046 +0.24094227,1.15877664,-0.240942284,5.741726e-06,0.65041095,0.695856214,1.19451189,1.06426764,0.0197806191,0.340862304 +-0.043695014,1.1588695,0.043695014,0.000527262688,0.82805264,0.438890249,0.0698671639,0.0556771383,0.0195865352,0.0625881553 +0.155534521,1.15893734,-0.155534521,0.000391681009,0.776700258,0.546586633,0.459288299,0.413347006,0.0196148865,0.220116556 +-0.389349669,1.15895295,0.389349669,9.57665179e-06,0.432311296,0.697419703,1.70036626,2.95426869,0.0200200006,0.550707519 +-0.386844277,1.1591152,0.386844277,0.000160855925,0.433042914,0.695253849,1.71572697,2.91438651,0.0200115517,0.547138572 +0.28989625,1.15912437,-0.28989625,0.000171767068,0.546360135,0.684480309,1.62162685,1.63162756,0.0199677274,0.41008392 +-0.246450722,1.1592499,0.246450722,0.000168301456,0.639266312,0.693300188,1.25870061,1.10894656,0.0197144747,0.348638654 +0.0813125819,1.15945339,-0.0813125819,0.000601200096,0.820882499,0.459041238,0.129036099,0.156190827,0.0195924491,0.117861323 +-0.241458133,1.15988922,0.241458118,0.000181165175,0.648149073,0.691710711,1.19901645,1.05372596,0.019707799,0.3416152 +0.166263327,1.15991294,-0.166263327,0.000228738514,0.766563296,0.57363081,0.519915402,0.449210644,0.0196245015,0.23528114 +0.269243628,1.15997648,-0.269243628,0.000146906954,0.592117369,0.701381862,1.43325019,1.40804887,0.0198829155,0.38085413 +0.369878769,1.16003501,-0.369878769,0.000262185291,0.435522884,0.677754998,1.79002023,2.69462252,0.0203780085,0.523175418 +0.0551517271,1.16016197,-0.0551517308,0.000259152701,0.829002142,0.440620989,0.081525594,0.115104988,0.0195913538,0.0785506889 +0.386532009,1.16022956,-0.386532009,0.000405920757,0.433109164,0.704720914,1.63176203,2.97013617,0.0204586778,0.546903729 +0.243005544,1.16034675,-0.243005544,0.000124549202,0.647714138,0.699571669,1.20025873,1.09339237,0.0197886731,0.343701154 +0.362528473,1.16044116,-0.362528473,0.00014633259,0.436824173,0.664988399,1.83060372,2.61051559,0.0203474388,0.512751698 +-0.0640877932,1.16057789,0.0640877932,0.000429186446,0.824661851,0.447587281,0.0993619412,0.08705616,0.0195846893,0.0909912661 +-0.391331732,1.16061974,0.391331732,0.000147209692,0.429046631,0.696387768,1.58058715,3.04148269,0.0200315043,0.553510249 +0.049311664,1.16064012,-0.049311664,0.000296975049,0.830198228,0.437828779,0.0729668885,0.104740709,0.0195912514,0.0714359134 +-0.286992788,1.16075134,0.286992788,0.000145358907,0.556492567,0.692325294,1.58918357,1.60193396,0.0197898,0.405923069 +-0.627453208,1.16077042,0.627453208,0.000488811813,0.195756495,0.222587362,-1.86398077,0.585891366,0.0209303219,0.887820721 +-0.687686443,1.16133535,0.687686443,0.000584843801,0.239182115,0.215487078,-0.892721474,0.493805349,0.0207692888,0.972684145 +-0.370694846,1.1613518,0.370694846,0.000229527024,0.436377585,0.677574813,1.79240036,2.7119894,0.019963203,0.524524629 +-0.439442933,1.16148353,0.439442933,0.000503247604,0.418711126,0.722630143,0.0869423151,4.17628193,0.020265542,0.621640921 +0.239784762,1.16148686,-0.239784762,0.000199298156,0.654025316,0.699419975,1.15721428,1.06483805,0.0197793879,0.339169145 +0.718559146,1.16165841,-0.718559206,0.00223520445,0.263131499,0.205261484,-0.517933786,0.143073261,0.0208594743,1.01679444 +-0.100337818,1.1618402,0.100337818,0.000379155856,0.813386679,0.482077926,0.179133922,0.148584992,0.0195830632,0.143641427 +0.338994384,1.16188025,-0.338994384,0.000120221513,0.461589634,0.662296653,1.84004462,2.3015821,0.0202227756,0.479444385 +-1.07188666,1.16196978,1.07188666,0.00104708597,0.1526981,0.10876669,0.861615062,-0.401418269,0.0211381298,1.51599002 +0.366684735,1.16205692,-0.366684705,5.52691345e-05,0.435974419,0.674498141,1.78334868,2.69247103,0.0203716327,0.518664837 +0.0529316179,1.16210401,-0.0529316254,7.34246569e-05,0.828998029,0.441060692,0.0740813538,0.110455431,0.0195911676,0.0757421255 +-0.185676426,1.16217852,0.185676426,0.000243340168,0.742331028,0.613430679,0.672143042,0.564962447,0.0196253564,0.262631834 +0.326226473,1.16225779,-0.326226473,0.000141101686,0.479461074,0.665202439,1.80306149,2.11942077,0.0201550145,0.461501479 +-0.323515087,1.16243219,0.323515087,0.000140618256,0.485839278,0.666365981,1.77150726,2.06767154,0.0198592618,0.457523614 +0.186106786,1.1625936,-0.186106786,0.000248242402,0.743212938,0.610704362,0.681258738,0.584325016,0.0196493287,0.263537705 +0.295662075,1.16263807,-0.295662075,0.000156504757,0.539508045,0.693229973,1.62549698,1.74022484,0.0199987609,0.418203592 +-0.598579407,1.16277409,0.598579407,0.000702312391,0.18873708,0.233836293,-2.09416914,1.05470312,0.0211109947,0.847052276 +0.404859573,1.1630187,-0.404859573,0.000215489184,0.424913019,0.718240142,1.08049512,3.35619354,0.0205456503,0.572635353 +-0.388272643,1.16304469,0.388272643,0.000112531066,0.433161616,0.700432777,1.62647378,2.98010349,0.0200234558,0.549134195 +-0.690558732,1.16319668,0.690558732,2.49246696e-05,0.240407079,0.210111633,-0.847289622,0.438480288,0.0207630862,0.976856828 +0.0986227766,1.16325057,-0.0986227766,0.000427360967,0.812874556,0.475957394,0.170034721,0.206483573,0.0195936188,0.140400529 +0.352111816,1.16325831,-0.352111846,0.000152462395,0.446629405,0.666261315,1.82218921,2.48058867,0.020293165,0.498157322 +-0.48305732,1.16384315,0.48305732,0.000571522629,0.381302834,0.663034081,-1.30978537,5.06403399,0.0207296927,0.683449745 +-0.271999031,1.1640296,0.271999002,7.1293558e-05,0.590011299,0.704873323,1.45180333,1.42942142,0.0197622478,0.384959608 +-0.0100371884,1.16428435,0.0100371903,0.000674440409,0.833181143,0.427635729,0.0445766114,0.0244313963,0.0195886251,0.0288853478 +-1.20149887,1.16461229,1.20149887,0.000148253239,0.107058108,0.0730508119,1.24825573,0.214687884,0.0212502815,1.69929647 +0.320032537,1.1649251,-0.320032507,7.21901961e-05,0.495004922,0.677562475,1.74469852,2.07561493,0.0201259833,0.452621102 +-0.391889602,1.16503906,0.391889572,0.000122360027,0.423777878,0.693108499,1.37166417,3.13195562,0.0200406611,0.554252505 +-0.693241656,1.16529942,0.693241715,0.00173674058,0.241442427,0.208991006,-0.810709953,0.400119811,0.0207593851,0.980576038 +-0.140820846,1.16542447,0.140820846,0.000510480604,0.788465977,0.530256629,0.347946256,0.307170987,0.0195885487,0.199785188 +0.00939001795,1.16546631,-0.00939001795,0.000346395303,0.832693636,0.430587441,0.0438707843,0.0363383852,0.0195896979,0.030938942 +0.904339433,1.1655128,-0.904339433,0.00426169066,0.231568307,0.145887166,0.985030234,-0.294330835,0.0208667982,1.28067422 +0.316741616,1.16553557,-0.316741645,0.000117615178,0.501130998,0.680711627,1.71729696,2.03007126,0.0201127976,0.448013008 +-1.19584739,1.1657871,1.19584739,0.00046853596,0.11443229,0.077812396,1.08356762,0.225219056,0.0212498158,1.69130445 +1.19619787,1.16580737,-1.19619787,0.000433896173,0.117160521,0.0778904259,1.13098538,0.19909662,0.0211434159,1.69173193 +1.19938564,1.16584289,-1.19938564,0.000179978088,0.112533011,0.0748513713,1.22736692,0.195835322,0.0211488139,1.69622326 +0.283566475,1.16591775,-0.283566475,0.000178059476,0.566556573,0.705332637,1.4986974,1.59614766,0.0199507494,0.401089609 +-0.170049638,1.16598737,0.170049638,0.000204446493,0.760740876,0.583076,0.530943394,0.463101387,0.019608641,0.240520865 +0.0494219176,1.16600192,-0.0494219176,0.000324232853,0.828142107,0.442959011,0.06489335,0.102614954,0.0195907168,0.0703406259 +0.107966438,1.16605163,-0.107966438,0.000324132561,0.808116138,0.487223893,0.18735759,0.215298921,0.0195943471,0.153668106 +0.635951579,1.16606498,-0.635951519,6.37356789e-05,0.218898207,0.244269967,-1.27960289,0.852723122,0.0210368875,0.899775028 +1.09494638,1.16608477,-1.09494638,0.000396692776,0.22100319,0.165722668,0.509185612,-0.747892976,0.0213704668,1.54859519 +-0.683878779,1.16623378,0.683878779,0.00167413091,0.235273018,0.217537895,-0.893197536,0.467290461,0.0207705125,0.967213094 +-0.690069735,1.16638124,0.690069675,2.73880341e-05,0.239790976,0.2089127,-0.836010158,0.405817062,0.0207622666,0.976110637 +0.263519496,1.16645968,-0.263519496,9.67731758e-05,0.608255148,0.715055645,1.35231531,1.32725382,0.01986067,0.373054117 +0.123620376,1.16654384,-0.123620376,0.000366701977,0.798867106,0.509759843,0.250233769,0.263142556,0.0195987988,0.175282955 +0.0194005445,1.16659474,-0.0194005426,0.00052963302,0.832103968,0.432431877,0.044569239,0.0497502014,0.0195899997,0.0362403691 +0.342099816,1.16665173,-0.342099845,0.000104378618,0.461727083,0.67203474,1.78120983,2.37942147,0.0202533081,0.483860403 +-0.359317482,1.16683567,0.359317482,0.000100056568,0.444910496,0.672771037,1.77596784,2.60567594,0.0199467521,0.508152843 +-0.358983874,1.16738141,0.358983874,9.63114144e-05,0.445308596,0.673324406,1.77002549,2.61027408,0.0199468434,0.507683456 +-0.359090567,1.16738641,0.359090567,4.19471533e-08,0.445300311,0.673553348,1.76945603,2.61121297,0.0199470874,0.507836103 +-0.359226584,1.16745484,0.359226555,8.17541732e-05,0.445280552,0.67379427,1.7679404,2.61464405,0.0199476685,0.508025348 +-0.359080493,1.16749704,0.359080493,4.16973194e-08,0.445370227,0.673750043,1.7679925,2.61323857,0.0199473649,0.507821441 +-1.2287221,1.16751647,1.2287221,0.000120869401,0.0427594781,0.0422327891,1.74079156,-0.00781043712,0.0212396123,1.73781729 +-1.21368611,1.16752589,1.21368611,0.00029535676,0.0864132792,0.0567367971,1.60900187,0.127418071,0.021231683,1.71654701 +-0.358941734,1.16753018,0.358941734,7.97402536e-05,0.445502698,0.673670411,1.76799667,2.61166453,0.0199471973,0.5076226 +-1.22196794,1.1675787,1.22196794,0.000267800264,0.058525309,0.0406169407,1.78108382,0.0422933772,0.0212339107,1.72826481 +0.812099218,1.16761565,-0.812099218,0.00339901238,0.265365392,0.172291622,0.3256495,-0.192238018,0.0208259728,1.14889598 +-0.526639104,1.16763103,0.526639104,0.000649324211,0.301078439,0.504094362,-1.83381605,3.93210912,0.0213255491,0.74491787 +0.33771044,1.16773546,-0.33771044,9.07336798e-05,0.469624668,0.678234935,1.76280165,2.32599735,0.0202278104,0.477662176 +-1.09414589,1.16775084,1.09414589,0.000364768086,0.216977715,0.163657054,0.531213641,-0.688348114,0.0211755447,1.54748583 +-0.16469498,1.16778803,0.164694965,0.000244776718,0.7665326,0.576565444,0.484244347,0.446093887,0.0196045842,0.233027443 +-0.359250069,1.16790891,0.359250069,9.19435988e-05,0.445541739,0.674681425,1.75887609,2.61956286,0.0199490692,0.508057177 +0.394445628,1.16804099,-0.394445628,0.000213953026,0.435786605,0.73173362,1.31745064,3.26043987,0.0205223262,0.55809325 +0.340332717,1.16873074,-0.340332717,9.52662376e-05,0.466131479,0.677935481,1.75011241,2.3612752,0.0202477463,0.481370211 +0.315731555,1.16881275,-0.315731525,0.000119296506,0.507480621,0.690612435,1.67908502,2.05056453,0.0201125871,0.446552843 +0.50744319,1.1688447,-0.50744319,0.000834788079,0.339883953,0.583541572,-1.65218091,4.97848368,0.02125898,0.717735052 +-0.749668241,1.16958869,0.749668241,0.00422040187,0.266731441,0.189421058,-0.207771271,0.0306612253,0.0207366962,1.06318378 +-0.192136496,1.16967773,0.192136496,0.000151404223,0.733559251,0.634780884,0.692323267,0.611254156,0.0196346939,0.271940142 +0.3635225,1.16972744,-0.3635225,0.000180408795,0.444689006,0.688061535,1.65931368,2.70517921,0.0203872435,0.514137745 +-0.357419431,1.16984499,0.357419461,4.60073024e-05,0.449503958,0.679119349,1.72842157,2.6043396,0.0199487228,0.505467653 +-0.254677236,1.16986895,0.254677236,0.000102171041,0.62881285,0.717630208,1.25823379,1.24497175,0.0197373666,0.360568881 +0.641619325,1.17023206,-0.641619325,0.00213360484,0.22142759,0.239837542,-1.20213842,0.742947936,0.0210267976,0.907742023 +0.318146527,1.17024803,-0.318146527,7.32319386e-05,0.504905403,0.694160938,1.67099702,2.09828949,0.0201272089,0.449972063 +0.257796764,1.17026186,-0.257796764,0.000173331035,0.624187827,0.722568512,1.2521565,1.29360533,0.0198471881,0.36472255 +-0.275114864,1.17049003,0.275114864,0.000177790062,0.589698315,0.716513753,1.41109228,1.4851954,0.0197760295,0.389278114 +-0.430964291,1.17091513,0.430964291,0.000615336583,0.397816211,0.688436091,-0.000619024038,4.40936041,0.0202314667,0.609709024 +-0.21054475,1.17099679,0.21054475,0.000176794361,0.705707312,0.673730195,0.845161617,0.773277581,0.0196642,0.298077524 +-1.18896985,1.17102444,1.18896985,0.000378477853,0.12101087,0.0910184532,0.82505554,0.361528069,0.0212432947,1.68159032 +-0.295273691,1.17114854,0.295273691,8.67455674e-05,0.548813164,0.709065437,1.54593146,1.76591218,0.0198170952,0.417790443 +0.221327454,1.17131352,-0.221327454,0.000338447629,0.692084074,0.700211108,0.92049396,0.877946258,0.0197276473,0.313183069 +0.447094411,1.17134452,-0.447094411,0.000412946218,0.367812514,0.631003737,-0.680231571,5.02654171,0.0206975695,0.632340908 +-0.577886105,1.17144215,0.577886105,0.00070886733,0.19513166,0.267529935,-1.96138203,1.84309196,0.0212221146,0.817392468 +-0.0871989429,1.17147636,0.0871989429,0.000458428258,0.814955771,0.475895077,0.125336677,0.126969978,0.01958232,0.124697626 +-0.378157407,1.17148566,0.378157437,0.000195287299,0.435955882,0.696552873,1.53381801,2.93489599,0.0200061873,0.534962237 +-0.976836562,1.1716702,0.976836503,0.0018505092,0.200782418,0.134054855,1.23855197,-0.195877656,0.0209249835,1.38199294 +0.19875747,1.17177045,-0.19875747,0.000145686892,0.727319598,0.658024967,0.725702882,0.697847009,0.0196734425,0.281140178 +-0.63619411,1.17194879,0.63619411,0.000502521521,0.193959758,0.210040346,-1.72768617,0.293000698,0.0208757948,0.900000036 +1.19816005,1.1720351,-1.19816005,0.000179039678,0.114950046,0.077844739,1.21591496,0.217099428,0.0211331509,1.69450665 +-0.497013807,1.17212665,0.497013807,0.000855948776,0.370329678,0.645401359,-1.51010418,5.20139408,0.0208473355,0.703155398 +-0.163120583,1.17215443,0.163120598,0.000201172646,0.7678473,0.578193545,0.462594181,0.446007282,0.0196037497,0.230840415 +1.19000423,1.17218697,-1.19000423,0.000356330303,0.113489941,0.0832164213,0.846352518,0.342630535,0.0211014561,1.68297267 +-0.165944353,1.17224085,0.165944338,2.31816357e-05,0.765196323,0.58302027,0.477985352,0.450473011,0.0196055099,0.234848425 +-0.346033096,1.17226958,0.346033096,0.000186563499,0.463073045,0.684094906,1.70541453,2.4629035,0.019919537,0.489543855 +-0.268558025,1.17260098,0.268558025,0.000176765519,0.603678107,0.722269177,1.35497236,1.40774167,0.0197632369,0.380028367 +-0.300683439,1.17261267,0.300683439,0.000209724036,0.539301634,0.706350505,1.55784917,1.83734179,0.0198328532,0.425328493 +0.179528549,1.17281234,-0.179528549,0.000435420196,0.750375271,0.615840316,0.575929046,0.536077917,0.0196382627,0.254710317 +-0.332746804,1.17290139,0.332746804,8.16826214e-05,0.482821107,0.687292516,1.67938983,2.28098536,0.0198932793,0.470608115 +-0.319227219,1.17331004,0.319227219,0.000139239346,0.505444646,0.697284579,1.64014006,2.10814357,0.0198683776,0.451612741 +1.20099628,1.17335653,-1.20099628,0.000320698571,0.109768689,0.0738099366,1.30792856,0.199490488,0.0211371388,1.69849384 +-0.690430641,1.17336035,0.690430641,0.00315971719,0.239600927,0.206295818,-0.81300801,0.340314835,0.0207604393,0.976510286 +0.374999046,1.17336977,-0.374999046,0.000158148032,0.438131869,0.706137419,1.45546889,2.93577743,0.0204753522,0.530344546 +0.305436552,1.17364776,-0.305436552,0.000178154733,0.530923903,0.710228562,1.57894778,1.93028045,0.0200620759,0.432193816 +1.22870111,1.17380857,-1.22870111,0.000110995163,0.0426823869,0.0433403924,1.80220485,-0.000346096465,0.0211774614,1.73781264 +1.22217417,1.17385793,-1.22217417,0.000244068884,0.0601981357,0.0424406789,1.85903823,0.0362931639,0.0211743992,1.72858119 +1.21433592,1.17391729,-1.21433592,0.000301097811,0.0869438201,0.057314951,1.7460978,0.118025251,0.0211649947,1.7174952 +-0.334566772,1.1739527,0.334566742,9.37557197e-05,0.481866479,0.690952957,1.66653156,2.31860256,0.0198992882,0.47317636 +-0.124800757,1.17406726,0.124800757,0.000315173704,0.793815136,0.515129089,0.237133235,0.247523725,0.0195848383,0.176571161 +1.08983123,1.1741302,-1.08983123,0.000351237017,0.22943373,0.175339684,0.63932395,-0.724913359,0.0213622488,1.54135644 +-0.466337144,1.17415607,0.466337144,0.00067008246,0.360086739,0.612225473,-1.23528755,5.62263823,0.0204816852,0.659908056 +0.267418325,1.17421806,-0.267418325,0.000227906959,0.609063148,0.734310031,1.3022784,1.44227481,0.0198868886,0.378312111 +0.345292747,1.17422521,-0.345292747,7.1236107e-05,0.465257674,0.691309869,1.65281987,2.46710587,0.0202976409,0.488330007 +-0.247882843,1.17424202,0.247882843,0.000147822706,0.644247293,0.723242462,1.18324924,1.18471789,0.0197271239,0.350939393 +-0.291074157,1.17434001,0.291074157,0.000171412568,0.561107159,0.720471203,1.48705626,1.71842051,0.0198107492,0.41181007 +0.422953337,1.17440856,-0.422953337,0.000257853506,0.389697164,0.67553395,-0.00393474102,4.3555088,0.0206450969,0.598211765 +-0.165467396,1.17486465,0.165467411,5.54976723e-05,0.764488339,0.584208965,0.465171129,0.454817712,0.0196052808,0.234243482 +0.199667424,1.17499542,-0.199667424,9.29592643e-05,0.726486981,0.665306985,0.715423763,0.701378405,0.0196756124,0.282442212 +-0.330487549,1.17501235,0.330487579,0.000115516035,0.489166975,0.694062114,1.64415288,2.26826477,0.0198950171,0.467398316 +-0.417954564,1.17504072,0.417954564,0.000254464598,0.404881299,0.695824385,0.362615108,4.11876583,0.0201727021,0.59119463 +-0.333444834,1.17532682,0.333444834,2.68184158e-05,0.484903932,0.694307506,1.64404988,2.31484652,0.019901162,0.47159192 +0.32499513,1.17538536,-0.32499513,8.90256269e-05,0.499417186,0.705240071,1.61356652,2.2177496,0.0201785062,0.459621727 +0.287904382,1.17545533,-0.287904382,5.60329863e-05,0.568399251,0.725970328,1.43408501,1.69688213,0.0199819133,0.407224298 +-0.313138366,1.175457,0.313138366,0.000191880157,0.519363999,0.708768904,1.58249402,2.03304839,0.0198567193,0.442956507 +0.19829917,1.17562807,-0.19829917,3.952437e-06,0.728502452,0.662976325,0.704287648,0.697876632,0.0196722429,0.280586541 +0.19650507,1.17574739,-0.19650507,0.000182966221,0.731003165,0.659316599,0.690877736,0.690080345,0.0196692012,0.277966291 +-0.407253861,1.17592633,0.407253861,0.000274046586,0.419196039,0.719114482,0.719026029,3.73176146,0.0201300364,0.576207042 +0.0843910202,1.17593002,-0.0843910202,0.000336861791,0.81370151,0.476922601,0.102823906,0.163985878,0.0195910744,0.120793954 +-0.205132782,1.17607617,0.205132782,0.000163031975,0.714784861,0.671641171,0.787089944,0.756211698,0.0196573269,0.290542692 +0.426764846,1.17610955,-0.426764816,0.00017893716,0.383895814,0.668384016,-0.207804412,4.53740597,0.0206638183,0.603619039 +0.160331815,1.17621875,-0.160331815,0.000233255952,0.767214835,0.577437162,0.417839527,0.443412125,0.0196172986,0.226783454 +-0.635422528,1.17641449,0.635422528,0.0010965385,0.200392246,0.232716888,-1.27963471,0.795541167,0.0208261553,0.899511099 +-1.18374872,1.17643285,1.18374872,0.00015257507,0.159983844,0.165079817,0.582536638,0.386394739,0.0212351438,1.67420602 +-0.188056886,1.17674029,0.188056886,0.000288605079,0.73680371,0.633546233,0.626538157,0.606161475,0.0196322035,0.266038537 +0.350629926,1.17674577,-0.350629926,0.000103796934,0.46138382,0.698165476,1.6039083,2.54875708,0.0203347038,0.495906413 +-0.561431468,1.17682052,0.561431468,0.000747024198,0.201810688,0.294709057,-1.92861009,2.35099268,0.0213123374,0.794426918 +0.292027146,1.17685091,-0.292027146,0.000125076243,0.562247396,0.729297161,1.44870591,1.76799023,0.020002516,0.413033605 +0.204689145,1.17702913,-0.204689145,0.000192768595,0.719409108,0.681329966,0.741847694,0.751893759,0.0196889229,0.289498836 +0.198836342,1.17705464,-0.198836342,5.47228447e-05,0.727621734,0.666332781,0.698520422,0.700116873,0.0196732357,0.281301498 +0.0133648682,1.17714453,-0.0133648692,0.000271442812,0.828149259,0.441983104,0.0276989583,0.0377218202,0.019588707,0.0258891359 +1.19217455,1.17735863,-1.19217443,0.000220129165,0.112328239,0.0844825804,0.938727975,0.364123166,0.0210927762,1.68604183 +1.18484271,1.17750525,-1.18484271,0.000143951242,0.138692766,0.139387846,0.553238094,0.391070694,0.0210677106,1.67567277 +0.553482652,1.1775676,-0.553482652,0.000668182329,0.213713259,0.329073668,-1.82744849,2.859864,0.0216741916,0.782751501 +-0.00113328977,1.177827,0.00113328919,0.000235584754,0.827905059,0.441428214,0.0260331221,0.0286918376,0.019587744,0.0236082766 +0.288872004,1.1778357,-0.288872004,2.80605036e-05,0.569225073,0.733551204,1.41766679,1.73084414,0.0199885722,0.408618182 +0.13728556,1.17797303,-0.13728556,0.000574292091,0.785867929,0.536165953,0.28148064,0.328038633,0.0196017977,0.194742873 +-0.168860435,1.17801428,0.16886045,0.000338091049,0.760031223,0.598190308,0.468175828,0.475257009,0.019610703,0.238868058 +-0.257686973,1.17801583,0.257686973,0.000260445144,0.628192782,0.732134521,1.2114675,1.29555511,0.0197521839,0.364757478 +-0.297683924,1.17802095,0.297683924,9.27833171e-05,0.551528096,0.722541988,1.47793257,1.81102395,0.0198311303,0.421153575 +-0.237476543,1.17802656,0.237476528,0.000288597628,0.663978457,0.727010667,1.04389012,1.07930279,0.0197149422,0.336346388 +0.287211537,1.17808902,-0.287211537,5.26812755e-06,0.572434247,0.734464407,1.4017669,1.7094847,0.019982608,0.406306297 +-1.08790112,1.1783756,1.08790112,0.000350659539,0.226077825,0.175298929,0.703947186,-0.669153452,0.0211334713,1.538638 +0.283640832,1.17851555,-0.283640802,0.000169788254,0.580328166,0.736666322,1.36717916,1.66482306,0.0199683905,0.401169091 +-0.382689267,1.17858291,0.382689267,0.000143336772,0.437731385,0.714519501,1.32889199,3.11249495,0.020042209,0.541376472 +0.382566005,1.1786859,-0.382566005,0.000168880171,0.43835485,0.725025177,1.27096963,3.12257648,0.0205405764,0.541076481 +0.0295136794,1.17875218,-0.0295136794,0.000342055457,0.826066136,0.447636157,0.0326447561,0.0622140914,0.0195889995,0.0449158251 +-0.195791975,1.17882717,0.195791975,0.000170968357,0.726786971,0.658565819,0.656754255,0.663446903,0.0196473319,0.276972324 +0.555696964,1.1789515,-0.555696905,0.000701292651,0.205610633,0.314369738,-1.84897697,2.80961418,0.0216954164,0.785896778 +-1.20503402,1.17914116,1.20503402,0.000319549115,0.100943431,0.0699897557,1.40895128,0.219123334,0.0212159622,1.70426106 +0.556389213,1.17918658,-0.556389213,7.10857275e-05,0.204279274,0.311757267,-1.84799302,2.7831347,0.0216934737,0.786882401 +0.514333487,1.17945611,-0.514333487,0.000377199351,0.301369399,0.50993675,-1.80481052,5.15975714,0.0213332511,0.727642059 +-0.293137997,1.17956758,0.293137997,0.000133066511,0.561923742,0.728958189,1.43601704,1.76271224,0.0198225155,0.414679527 +0.287873447,1.17973208,-0.287873447,2.58286054e-05,0.573175609,0.739297271,1.3853085,1.73720574,0.0199878141,0.407218516 +-0.209891617,1.17976594,0.209891617,5.5806544e-05,0.707643092,0.686436296,0.790160298,0.77667588,0.0196680464,0.297259837 +0.555575728,1.17981005,-0.555575788,1.06662947e-06,0.204991341,0.31338951,-1.83740771,2.81126213,0.0216903929,0.785735607 +0.200059786,1.17983079,-0.200059801,0.000225287091,0.725135684,0.674203396,0.685352683,0.715577841,0.0196764171,0.282991707 +-0.117453814,1.17986846,0.117453821,0.000199627015,0.796598077,0.513569176,0.191191465,0.232500046,0.0195838399,0.166276753 +0.555986881,1.1799227,-0.555986941,7.52514325e-07,0.204184398,0.311803907,-1.83497334,2.78867102,0.0216917768,0.786322057 +0.251612812,1.17995286,-0.251612812,0.000185069046,0.642707646,0.741242468,1.12199974,1.2620002,0.0198274851,0.35598141 +-0.388859689,1.17999506,0.388859659,9.69184039e-05,0.430420816,0.718845606,1.03139782,3.18993616,0.0200631544,0.549936593 +0.449093223,1.18006372,-0.449093223,5.22387381e-05,0.339243114,0.581568956,-1.17259538,5.53297043,0.0207407232,0.635293365 +0.556798398,1.18012214,-0.556798398,0.000488937192,0.203606993,0.31017223,-1.83273077,2.75685358,0.0216873381,0.787450552 +-0.318627805,1.18020618,0.318627775,0.000128735745,0.51441747,0.715177596,1.54564762,2.12698936,0.019874718,0.450795054 +0.349684358,1.18026268,-0.349684328,3.27581147e-05,0.465738088,0.707121432,1.54825819,2.56934047,0.0203409363,0.494605333 +0.425544918,1.18039811,-0.425544918,7.48598322e-05,0.370132804,0.644012213,-0.429483563,4.67659473,0.0206789225,0.601919234 +-0.051429905,1.18040729,0.0514299087,0.000315195823,0.821292281,0.455282331,0.0477039739,0.0668193549,0.0195832234,0.075353995 +-0.0256430879,1.18042374,0.0256430879,0.00021136702,0.824349463,0.446929425,0.0253469236,0.0199128799,0.0195853934,0.037437655 +0.220860049,1.1804347,-0.220860049,9.985824e-05,0.695515573,0.715639472,0.858926654,0.911090076,0.0197291654,0.312577128 +-0.305531859,1.18060946,0.305531859,0.000102636361,0.53952539,0.725944996,1.48046565,1.96246386,0.0198545828,0.432227194 +-1.19976664,1.18066287,1.19976664,0.00015420698,0.111115322,0.0794437155,1.2648685,0.253646255,0.0212121643,1.69686079 +0.330804437,1.18078852,-0.330804467,9.19501545e-05,0.495422184,0.715734899,1.55667663,2.32600188,0.0202240981,0.467878938 +0.0947803557,1.1808362,-0.0947803557,0.000242909271,0.807731748,0.491092175,0.117769495,0.170714542,0.0195917338,0.135609955 +-0.217551365,1.18085289,0.217551351,0.000213363324,0.697673857,0.702899039,0.832060337,0.859548986,0.0196858421,0.307773352 +0.43634063,1.18098831,-0.43634063,0.000246882468,0.353945553,0.610739231,-0.778211713,5.10118771,0.020711828,0.617097974 +0.45453757,1.18115485,-0.45453757,0.000467045902,0.330301851,0.564056575,-1.39896142,5.72455072,0.0207861066,0.642921805 +0.554399133,1.18126237,-0.554399133,0.000639789389,0.206624463,0.316901356,-1.81109118,2.85508823,0.0216734447,0.784047127 +0.556324482,1.18127203,-0.556324422,0.000466457714,0.202977687,0.309156179,-1.81135106,2.745193,0.0216838568,0.786773682 +-0.341940194,1.18128395,0.341940165,6.27348345e-05,0.479251802,0.707253575,1.5361414,2.46045542,0.0199356694,0.483578384 +-0.225148097,1.18135405,0.225148097,9.32511102e-05,0.684979558,0.71623385,0.905121744,0.927878857,0.019696679,0.318796813 +0.63610667,1.18147731,-0.63610667,0.000735004083,0.215668917,0.234721422,-1.19552696,0.660730481,0.0210326314,0.899797797 +-0.370923758,1.18153393,0.370923758,0.000165671227,0.446556985,0.709903419,1.39687324,2.92919874,0.0200180765,0.524629653 +-0.331382424,1.18160093,0.331382424,8.7832479e-05,0.495829642,0.711717308,1.54056525,2.31112862,0.0199101437,0.46865052 +0.332828015,1.18162167,-0.332828045,6.05927016e-05,0.492795467,0.715870738,1.54588974,2.35361099,0.0202396847,0.470740288 +0.419267356,1.18173242,-0.419267356,0.000256234955,0.380701333,0.663288832,-0.220555842,4.41522694,0.0206777528,0.592983723 +1.18718672,1.181795,-1.18718684,9.47095104e-05,0.141655892,0.145972192,0.655252755,0.415499896,0.0210628938,1.67898762 +0.403625667,1.18182886,-0.403625667,0.000281646207,0.408346593,0.708949327,0.422619283,3.79500675,0.0206370931,0.571047783 +0.22703746,1.18191278,-0.22703746,0.000318778213,0.686534643,0.728574634,0.906300008,1.00206971,0.0197468903,0.321242392 +-0.404743761,1.18227339,0.404743791,0.00031787355,0.409641087,0.704363465,0.451612175,3.77248907,0.0201273747,0.572509587 +0.30996716,1.18240857,-0.30996716,9.40310856e-05,0.534446359,0.731301785,1.47317541,2.04787397,0.0201059077,0.438364983 +0.352482021,1.18243575,-0.352482021,0.000151161323,0.465223402,0.71351397,1.49220717,2.62752962,0.0203666259,0.498512119 +0.380362123,1.18244672,-0.380362123,2.80085478e-05,0.439181119,0.726795137,1.21323299,3.10499573,0.0205467138,0.537972271 +0.764951706,1.18247795,-0.764951706,0.00232973718,0.267825961,0.17703484,-0.0179913919,-0.222685635,0.0208241269,1.08204162 +-0.0215761419,1.18250358,0.0215761438,0.000315492885,0.824751258,0.446214348,0.0193564296,0.0172230154,0.0195854865,0.032401897 +0.27227506,1.18262362,-0.27227506,0.000218403482,0.605802119,0.750959039,1.25319481,1.52210045,0.0199142266,0.385248542 +0.423267603,1.1830622,-0.423267603,4.09908898e-05,0.364487708,0.634681344,-0.543718696,4.65024757,0.0206864998,0.598707557 +-0.250654697,1.18318689,0.250654697,0.000133371883,0.642392039,0.737518847,1.12485111,1.23369336,0.0197434723,0.354800463 +-0.482925892,1.1832149,0.482925892,0.000433241919,0.348380208,0.594410717,-1.46695185,5.75778341,0.0206256788,0.683327675 +0.385938644,1.18321741,-0.385938644,0.000122944868,0.428891361,0.71857816,0.964801252,3.30858493,0.0205796119,0.545840561 +0.31960085,1.18340158,-0.31960088,0.000125154431,0.518285036,0.728794277,1.48414755,2.18023682,0.0201636851,0.451992095 +0.261547565,1.18348598,-0.261547565,0.00016285757,0.626693666,0.753350377,1.17817211,1.41262507,0.0198682174,0.370013714 +0.289590806,1.1835562,-0.289590836,9.75869043e-05,0.574195981,0.748028696,1.344046,1.78208327,0.0200022459,0.409581512 +0.450981349,1.18355966,-0.450981349,0.00032553167,0.321557999,0.547723949,-1.43506384,5.77452421,0.0207670256,0.637943387 +0.330434084,1.18356514,-0.330434084,8.14272571e-05,0.499299347,0.723012269,1.51539803,2.32428384,0.0202273186,0.467345595 +-1.19412053,1.18361223,1.19412053,0.000148228311,0.119295001,0.0966079086,1.04598582,0.383584529,0.0212046988,1.68887794 +0.332452208,1.18364632,-0.332452208,3.78435543e-05,0.495655984,0.721436739,1.51459098,2.34927249,0.0202423837,0.470202804 +-0.22971788,1.18405724,0.22971788,0.000208106474,0.679303527,0.726997972,0.929052472,1.01497447,0.0197078455,0.325061828 +-0.34665063,1.18413985,0.3466506,6.85546911e-05,0.475524127,0.712351978,1.48660016,2.54041886,0.0199538339,0.490250349 +0.377120584,1.18415189,-0.377120614,0.000150542561,0.443915993,0.730314791,1.21865797,3.04407525,0.0205308124,0.533373296 +-0.366834521,1.18461108,0.366834521,0.000142694626,0.450939268,0.712862194,1.38031411,2.86570597,0.0200104006,0.518877864 +0.506472647,1.18463218,-0.506472647,0.000282056746,0.307296067,0.522277236,-1.77280438,5.51630831,0.0212253034,0.716585934 +-0.277619928,1.18487024,0.277619928,0.000126637024,0.598289967,0.751168847,1.27459705,1.61385345,0.0198030043,0.392768145 +0.111315161,1.18530989,-0.111315161,0.000223177281,0.798511982,0.51018697,0.157456428,0.227412552,0.0195936039,0.157576039 +-0.0241290871,1.18531334,0.0241290871,0.000138796167,0.823126614,0.449728727,0.016517261,0.0176344737,0.0195849556,0.0357820913 +-0.362445533,1.18532443,0.362445533,0.000123744336,0.457427979,0.715992689,1.39537466,2.79024887,0.0199984256,0.512646079 +-0.347360939,1.18535185,0.347360939,0.000101594444,0.475678355,0.714830816,1.46350932,2.5544436,0.0199582241,0.491254896 +-0.0204822235,1.18547809,0.0204822235,0.000354872202,0.823330462,0.449580014,0.0152213098,0.0165005159,0.0195852462,0.0327895358 +-0.34641096,1.18549407,0.34641096,0.000107467335,0.477350354,0.715970874,1.46370006,2.53984499,0.0199552607,0.489913583 +0.382978201,1.18562341,-0.382978201,0.000123787977,0.433244288,0.727444768,0.992101669,3.19943976,0.0205798615,0.541648984 +-0.0318384729,1.18576956,0.0318384767,0.00055719068,0.821979523,0.452391267,0.0216899905,0.0294986498,0.0195841901,0.0454180278 +0.300309956,1.18593144,-0.300309956,7.58388487e-05,0.557049394,0.748811066,1.37612331,1.93416023,0.0200614911,0.424708396 +0.00477000419,1.18601274,-0.00477000466,0.000523802475,0.824115276,0.451041728,0.0146763343,0.028052289,0.0195873231,0.023606766 +-0.0603501946,1.18641174,0.0603501908,0.000495078682,0.81698072,0.466247588,0.0480330698,0.0746137202,0.0195817892,0.0864945576 +0.38056311,1.18646622,-0.38056311,0.000172146378,0.437345237,0.732584536,1.03863525,3.11634922,0.0205662977,0.538250864 +0.244633138,1.18677235,-0.244633138,0.000372878276,0.658661246,0.752650738,0.991609812,1.21784067,0.0198100545,0.346192598 +-0.272307396,1.1868124,0.272307396,0.000161449469,0.609829485,0.757658541,1.22671676,1.55261004,0.0197929759,0.385273069 +-1.18938923,1.18685341,1.18938923,6.45452237e-05,0.168754503,0.184931189,0.828151584,0.421601444,0.0211964287,1.68218637 +-0.0514022484,1.18724394,0.0514022447,0.000351883675,0.818739057,0.461193174,0.0360126309,0.0624270365,0.0195823312,0.0744937882 +0.359677613,1.18737233,-0.359677613,0.000257821521,0.459942132,0.723077297,1.3559922,2.75047779,0.0204308312,0.508769155 +-0.0773736089,1.18739128,0.0773736089,0.000730752363,0.812072992,0.480255514,0.0719583929,0.107831635,0.0195808057,0.111562699 +0.973235607,1.18745148,-0.973235548,0.00158634793,0.196985364,0.125734702,1.1886797,-0.337462217,0.0209743846,1.37682104 +-0.349486262,1.18763602,0.349486262,5.01575087e-05,0.474947572,0.720658243,1.40452302,2.5872879,0.0199702438,0.494251877 +-0.241351932,1.18807232,0.241351932,0.0002237015,0.660544038,0.745046258,0.985853195,1.14261091,0.0197345577,0.341751039 +0.343666375,1.18812466,-0.343666375,7.52167689e-05,0.483383566,0.729792058,1.42622471,2.52238131,0.0203280691,0.48602128 +-0.124872498,1.18814135,0.124872506,0.000275305734,0.790248334,0.526605844,0.203884438,0.250417233,0.019584164,0.176798984 +-0.544525623,1.18832648,0.544525623,0.000780189876,0.229460463,0.361124098,-1.66532266,3.26912951,0.0213108175,0.770243049 +0.47572732,1.18838072,-0.47572732,0.000705093844,0.344152987,0.586600363,-1.76244974,5.92721462,0.020813778,0.673265636 +0.305794984,1.18841529,-0.305795014,6.73740797e-05,0.54909122,0.750440061,1.3768959,2.02316213,0.0200934671,0.432490855 +-0.416130513,1.18860817,0.416130543,0.000196920111,0.356427252,0.613318384,-0.540730715,4.52822256,0.0201903656,0.588544548 +-0.512208879,1.18861735,0.512208879,0.00066701381,0.297373086,0.500581682,-1.61308527,4.83703709,0.0210812539,0.724643707 +0.252918363,1.18873799,-0.252918392,0.000193276894,0.645838976,0.763145745,1.05430889,1.34094799,0.0198384877,0.357930988 +-0.280815333,1.18874109,0.280815333,0.000174477886,0.59553051,0.757143259,1.24718308,1.66499496,0.0198146962,0.397242606 +0.0650900155,1.18874943,-0.0650900155,0.000221329901,0.815007865,0.473204434,0.0451110937,0.118062064,0.0195888188,0.0920918658 +-0.207366347,1.18883991,0.207366347,0.000224681833,0.709191203,0.690745592,0.704625309,0.799248874,0.0196711682,0.293422103 +0.0649230853,1.18896472,-0.0649230853,2.79459273e-05,0.81498152,0.473282337,0.044421725,0.117679268,0.0195888001,0.0918824896 +0.0644297749,1.18898368,-0.0644297749,0.000314889592,0.815084219,0.473053098,0.0439340062,0.11683479,0.0195887852,0.0911537483 +0.065310277,1.18901694,-0.0653102845,0.00027804519,0.814837217,0.473610461,0.0449783988,0.118596673,0.0195888076,0.092382662 +-0.120432675,1.18902612,0.120432667,0.000263755996,0.792679965,0.521394014,0.182900608,0.241536245,0.0195831321,0.170719311 +-0.563088477,1.18911695,0.563088477,0.000969029847,0.189915299,0.272315562,-1.71384621,2.23273182,0.0212883241,0.79669559 +0.500768304,1.18922544,-0.500768304,0.000711151981,0.30590266,0.51736033,-1.89170146,5.63171768,0.0211486965,0.708362222 +1.03242207,1.18940008,-1.03242207,0.00201853458,0.16776967,0.1106764,1.16261959,-0.326791286,0.0211262312,1.46017981 +-0.422560513,1.18951344,0.422560513,0.000234521955,0.341727555,0.590339959,-0.936566472,4.77389574,0.020225279,0.597682834 +-0.302917302,1.1895262,0.302917302,0.000102292513,0.555200696,0.751995027,1.35894394,1.96025872,0.0198578425,0.428625941 +0.158816442,1.18963146,-0.158816457,2.36619544e-05,0.764579892,0.590280116,0.356143892,0.442383677,0.019615246,0.224906519 +0.305858999,1.1896646,-0.305858999,7.31563432e-06,0.550417304,0.753567636,1.36205304,2.02557778,0.0200952087,0.432582527 +0.306868434,1.18968678,-0.306868434,5.69647927e-05,0.548583746,0.752699316,1.36420345,2.03949213,0.0201020427,0.434002936 +0.0409316197,1.18969488,-0.0409316197,0.00063152262,0.819160938,0.461256415,0.0248262733,0.0795896202,0.0195885058,0.0606252886 +0.161461383,1.18979609,-0.161461383,0.000209665974,0.762112558,0.595311582,0.379061848,0.469489902,0.0196178779,0.228545308 +0.341564208,1.189821,-0.341564208,6.47892884e-05,0.488327235,0.735316277,1.40119076,2.50059438,0.0203189161,0.483064771 +-0.315328896,1.18984509,0.315328896,9.28425507e-05,0.532881677,0.743092,1.38944697,2.11467385,0.0198848732,0.44598183 +0.304513007,1.18995404,-0.304513007,6.48226851e-05,0.553276777,0.755434275,1.35245728,2.00823522,0.0200877413,0.430672348 +0.421702266,1.19003558,-0.421702266,0.000237839791,0.33754155,0.585203528,-0.993130744,4.81863117,0.0207182132,0.596418619 +0.0885303766,1.19039679,-0.0885303766,0.000608911854,0.806158543,0.492955178,0.0842179134,0.165913016,0.0195901357,0.126658708 +0.222521991,1.19053197,-0.222521991,0.000244889379,0.69230938,0.734010935,0.782852173,0.986659944,0.0197357368,0.314807981 +0.341326147,1.19064093,-0.341326147,3.15214347e-05,0.48962,0.737610459,1.38866568,2.49746037,0.0203194376,0.482725739 +-0.328002691,1.19067514,0.328002661,7.18442534e-05,0.512346447,0.73941052,1.39171588,2.30590248,0.0199191477,0.463918388 +0.0166242365,1.19076264,-0.0166242383,0.000355298514,0.821061015,0.455744326,0.0107553899,0.040679086,0.0195874739,0.0284159333 +-0.149235845,1.19078147,0.149235845,0.000280948792,0.773032069,0.57145381,0.296089172,0.371624321,0.0195949692,0.21106495 +-0.391646415,1.19108844,0.391646415,0.000146895574,0.42863667,0.732116282,0.616417527,3.40963483,0.0200985596,0.553889811 +-0.149176225,1.19110429,0.149176225,0.000277357787,0.77293241,0.571626365,0.29480058,0.371755302,0.0195949487,0.210988 +0.0297169201,1.19112861,-0.0297169182,0.000342193176,0.819842219,0.458891422,0.0160303973,0.0606762916,0.0195878018,0.0439344719 +-0.149385005,1.19113219,0.149385005,3.62473656e-05,0.772742987,0.572058916,0.295473814,0.372069657,0.0195950698,0.211283118 +-0.150036797,1.19119549,0.150036797,0.000373671443,0.772110283,0.574136913,0.298751116,0.375750571,0.0195958409,0.212189555 +-1.03189552,1.19135535,1.03189552,0.00146337214,0.170819983,0.11683739,1.20295417,-0.249117285,0.0210303459,1.4594667 +-0.382055432,1.19136214,0.382055432,7.52082342e-05,0.435138822,0.727670968,0.800189614,3.21870136,0.0200702958,0.540319681 +0.13514781,1.19141269,-0.13514781,0.000517089793,0.781208754,0.546743214,0.234244525,0.323478162,0.0195998214,0.192127854 +0.404487193,1.19152606,-0.404487193,0.000300583313,0.387161314,0.67895937,-0.151080608,4.06211376,0.0207053479,0.572175622 +-0.276013225,1.19160426,0.276013225,0.000115585826,0.606634676,0.765406847,1.19123352,1.6116004,0.0198079869,0.390442342 +-0.33105886,1.1916244,0.33105886,9.80371551e-05,0.508136511,0.739047647,1.37803721,2.34379196,0.0199296083,0.468224943 +0.107420251,1.19167042,-0.107420251,0.00034573031,0.797558069,0.512921274,0.132780522,0.214311719,0.0195927117,0.152183279 +-0.224120021,1.19175863,0.224119991,0.000238976703,0.687282801,0.730776548,0.795930982,0.981341839,0.0197104663,0.317124605 +0.11619582,1.19177043,-0.116195828,0.000390940113,0.792882025,0.522526622,0.163325682,0.252449483,0.0195944719,0.164511308 +-0.119715139,1.19179678,0.119715132,0.000270346645,0.791928291,0.522717297,0.173986077,0.240276352,0.0195827913,0.169652969 +-0.0979640409,1.19186151,0.0979640409,0.000226288903,0.802372456,0.501279831,0.10563305,0.158152193,0.0195804946,0.138771951 +-0.362074703,1.19188762,0.362074703,8.17136824e-05,0.463155836,0.73066771,1.25539839,2.7833643,0.0200156644,0.512071669 +0.187285781,1.19191384,-0.187285781,0.000263976457,0.736457288,0.657683671,0.52694279,0.681093514,0.0196510777,0.265053451 +0.159655496,1.19207966,-0.159655496,0.000159458781,0.762824655,0.594415605,0.353680372,0.454997659,0.0196156166,0.226127878 +0.155033901,1.19209611,-0.155033886,0.000452151493,0.766589999,0.587165356,0.325256795,0.422194183,0.0196130201,0.219415575 +-0.612950802,1.19210303,0.612950802,0.00064783264,0.18016395,0.205541015,-1.52527344,0.537819028,0.0209440533,0.866931677 +-0.122888945,1.19220245,0.122888952,0.000327109447,0.789809465,0.527411103,0.182579353,0.246100053,0.0195833314,0.174098924 +-1.00044787,1.19231272,1.00044787,0.000718596042,0.187519521,0.125823081,1.2625525,-0.256482393,0.0209682118,1.41552472 +0.111739203,1.19232011,-0.111739203,9.94046204e-05,0.795191526,0.516618669,0.143893346,0.228062674,0.0195931569,0.158391625 +0.341419935,1.19237578,-0.341419935,4.07209009e-05,0.491355896,0.742000997,1.35951626,2.49447966,0.0203245971,0.482851654 +-0.329083353,1.19246781,0.329083353,8.49161806e-05,0.512585223,0.742753208,1.36592364,2.31921887,0.0199247058,0.465428531 +-0.387599826,1.19256377,0.387599856,8.26643809e-05,0.430349678,0.730774522,0.658807993,3.32892084,0.0200877022,0.548179686 +0.307313949,1.19260848,-0.307313949,7.35502836e-05,0.551092684,0.75988102,1.3256557,2.05197144,0.0201087184,0.434619606 +0.331776112,1.19269919,-0.331776112,7.02388061e-05,0.507752299,0.746326685,1.36783516,2.36252785,0.0202605743,0.469208479 +-0.323233455,1.19285727,0.323233426,8.30137069e-05,0.523394704,0.748226583,1.35147452,2.24342346,0.0199110806,0.457132101 +-0.095188044,1.19291317,0.095188044,0.000338944694,0.803097188,0.499616057,0.0964866132,0.153116465,0.0195804201,0.13481985 +0.285064071,1.19305956,-0.285064071,7.43081328e-05,0.591425657,0.770647526,1.20614898,1.76640034,0.0199898854,0.403148174 +-0.311455399,1.19340479,0.311455399,0.000137523908,0.54428798,0.754843771,1.32437468,2.08234429,0.0198854096,0.440514266 +-0.0977930501,1.19347322,0.0977930501,0.000257136533,0.801816583,0.502530694,0.101220049,0.158350006,0.0195803195,0.13850148 +-0.52534169,1.19368434,0.525341749,0.000573292142,0.267324179,0.445398033,-1.5027324,4.18876219,0.0212317016,0.743584037 +0.338321418,1.19405365,-0.338321418,4.12678455e-05,0.498681575,0.748119771,1.33701193,2.46208692,0.0203078557,0.478461206 +0.432246894,1.19443655,-0.432246894,0.000216738074,0.306889653,0.522604823,-1.55397892,5.3672781,0.0207035225,0.611303687 +-0.388514876,1.19445348,0.388514847,1.91928957e-05,0.429664552,0.733840168,0.570436418,3.37089753,0.0200953558,0.549480796 +-0.597696662,1.19462764,0.597696662,0.000746282574,0.175872207,0.210153326,-1.62491941,0.771787167,0.0210357811,0.845373631 +0.321680963,1.19483197,-0.321680963,8.02755676e-05,0.527891695,0.757946372,1.32987142,2.25605774,0.0201996434,0.454961866 +-0.175836623,1.19484687,0.175836623,0.000456300855,0.745163798,0.630796134,0.435905963,0.537441373,0.0196231436,0.24932377 +0.320034176,1.19490397,-0.320034176,6.87742067e-05,0.531038761,0.759461164,1.32562685,2.23775601,0.0201884806,0.452636838 +0.170615628,1.19502997,-0.170615628,0.000377444201,0.751510143,0.628965557,0.408804238,0.564275563,0.0196303353,0.241335407 +-0.260374129,1.19523275,0.260374129,0.000110682115,0.635018468,0.771388829,1.04039502,1.44153559,0.0197859891,0.368326575 +-0.313403606,1.19526255,0.313403606,5.8319758e-05,0.543074012,0.759409904,1.303496,2.12350106,0.0198925193,0.443291754 +0.990307927,1.19552171,-0.990307927,0.00126875925,0.188031822,0.12050958,1.22654855,-0.360244155,0.0210047606,1.40090358 +-0.358069956,1.19556475,0.358069956,3.50444279e-05,0.47051543,0.739106596,1.20393348,2.72559285,0.0200136863,0.506454587 +1.22869265,1.19567037,-1.22869265,8.51723453e-05,0.041578047,0.0438170433,1.88234353,0.00160663866,0.0211349539,1.73781753 +1.22360361,1.19571924,-1.22360361,0.000187340745,0.0567667857,0.0410605073,1.98466635,0.0374507047,0.0211331192,1.73061979 +1.21749663,1.19577789,-1.21749663,0.000383136561,0.0822193027,0.0561182797,1.94277191,0.135065645,0.021126233,1.72198224 +-0.385209888,1.19580245,0.385209888,0.000103096019,0.434493542,0.736702442,0.626834989,3.29127026,0.020090891,0.54478395 +0.345310301,1.19590223,-0.34531033,4.3486416e-05,0.488917023,0.749698222,1.26600993,2.54997301,0.0203650743,0.488343775 +-0.446907401,1.19612825,0.446907401,0.00023761265,0.274101377,0.45419082,-2.04041886,6.0769186,0.0203965381,0.632037163 +0.396459222,1.19626451,-0.396459222,0.00021247979,0.400069654,0.702204525,-0.00487839431,3.7608161,0.020696301,0.560803533 +0.320988476,1.19629276,-0.320988476,4.84923476e-06,0.530807137,0.762166977,1.31052113,2.24938488,0.020196639,0.453995258 +0.364261448,1.19636238,-0.364261448,0.00010644846,0.462233752,0.744528174,1.1045841,2.83277655,0.0205049403,0.51519978 +-0.44926542,1.19643736,0.44926542,0.000268601871,0.270985335,0.44823882,-2.12855816,6.16541958,0.0204115678,0.63537854 +-0.184301317,1.19647038,0.184301317,0.000486762496,0.735927284,0.6551615,0.495974898,0.654322028,0.0196368005,0.261060297 +-0.418490529,1.19654715,0.418490529,6.32175943e-05,0.32692197,0.565436959,-1.18425453,4.90409994,0.0202209298,0.591959298 +0.514811397,1.19668841,-0.514811397,0.000716854876,0.285311222,0.479982376,-1.53116107,4.9203229,0.0212577302,0.728150308 +-0.315505266,1.19676924,0.315505266,7.55491928e-05,0.541443944,0.76350534,1.28243542,2.16047168,0.0198997445,0.446255207 +0.304004997,1.19688261,-0.304005027,4.15712566e-05,0.561337888,0.77155596,1.25388956,2.03512836,0.0200948045,0.429930747 +-1.22868562,1.1969012,1.22868574,0.000111429996,0.0414128453,0.0426935703,1.87181854,-0.00632294966,0.0211485773,1.73782182 +0.266600639,1.19690228,-0.266600639,0.000152132037,0.625647724,0.779562771,1.05897915,1.53134418,0.0199031625,0.377078146 +-1.21739984,1.19691586,1.21739984,0.000422623561,0.079589963,0.0546840951,1.88849509,0.147045612,0.0211367439,1.72185409 +-1.22341967,1.19692993,1.22341967,0.000239322631,0.0548005998,0.0389779918,1.96830904,0.0388368592,0.0211427342,1.73037374 +-0.422340453,1.19705427,0.422340453,8.67637573e-05,0.311534703,0.535543323,-1.40774345,5.10307074,0.0202442873,0.59743768 +-0.388542354,1.19714773,0.388542384,0.000100565652,0.420168281,0.721149206,0.36054647,3.43982649,0.0201016087,0.549509287 +-0.373644412,1.19722831,0.373644412,0.000123541337,0.452167094,0.743579328,0.953116536,3.02178431,0.0200630128,0.528536022 +-0.257273525,1.1972549,0.257273525,0.000152799446,0.641114593,0.774141073,1.00494647,1.41261721,0.0197817348,0.363939583 +-0.359634459,1.19725585,0.359634429,4.00591489e-05,0.470565349,0.743950546,1.15096259,2.75665379,0.0200232416,0.508659601 +-0.891957164,1.19730294,0.891957164,0.00271909172,0.237161323,0.149255916,0.884691954,-0.302673131,0.0207775366,1.26193213 +0.293000787,1.19732404,-0.293000787,0.000144976017,0.581162393,0.780161023,1.20168352,1.89126408,0.0200337842,0.414530784 +0.636347115,1.19750333,-0.636347115,0.000698709395,0.17922087,0.188021868,-1.47623479,0.171083272,0.0210388619,0.899999976 +0.191888541,1.19750607,-0.191888541,8.86522321e-05,0.728663683,0.675252616,0.52316308,0.705242336,0.0196587387,0.271677464 +-0.443181694,1.19768012,0.443181694,0.00019057811,0.27469644,0.457352847,-2.03321362,5.97751141,0.0203768294,0.62675941 +-0.264124334,1.19769382,0.264124334,0.000123156991,0.63029331,0.776400924,1.03458357,1.49333394,0.0197970383,0.373587877 +-0.447975069,1.19776571,0.447975099,1.97368445e-06,0.266396105,0.44023329,-2.17952776,6.18686581,0.0204074867,0.633576274 +-0.350757152,1.19805527,0.350757182,2.50014818e-05,0.48513484,0.748822927,1.2013514,2.62624002,0.0199996904,0.496078104 +-0.471215874,1.19806361,0.471215874,0.000746860576,0.354448944,0.600308001,-1.73859942,5.76356459,0.0204446241,0.666930318 +0.326868802,1.19837439,-0.326868802,5.19025743e-05,0.523024261,0.764725506,1.27421474,2.32263756,0.0202433448,0.462267816 +0.318905294,1.19840896,-0.318905294,7.51279222e-05,0.537010193,0.768742919,1.27531505,2.22906351,0.0201864671,0.451019108 +-0.448557884,1.19840991,0.448557884,2.08940583e-06,0.266511858,0.44023478,-2.20558286,6.20409489,0.0204068068,0.634394825 +-0.364833504,1.19857347,0.364833534,9.41518811e-05,0.464932114,0.747840285,1.04090834,2.84921122,0.0200410895,0.515978932 +-0.348568261,1.19865406,0.348568261,4.12741865e-05,0.489304125,0.752543867,1.19642615,2.59300399,0.0199934915,0.49298799 +1.01570141,1.19872475,-1.01570153,0.00130636478,0.174671799,0.113740779,1.19632709,-0.34639734,0.0210728478,1.4364922 +-0.235737622,1.19875813,0.235737622,0.000137960757,0.67202884,0.761186302,0.814156473,1.16776562,0.0197459385,0.333462507 +-0.298515618,1.19877422,0.298515618,4.31608205e-05,0.574053288,0.775088906,1.20515382,1.9517175,0.0198662393,0.422167033 +-0.3539204,1.19880891,0.35392037,4.97646979e-05,0.48094219,0.749620259,1.1626296,2.66947961,0.0200110748,0.500528634 +-0.449486971,1.19888926,0.449486971,0.000193521599,0.269325763,0.445156991,-2.18564939,6.18517923,0.0204073098,0.63569802 +-0.296229064,1.19894576,0.296229064,0.000127224499,0.578436673,0.776604593,1.19497573,1.92446983,0.0198612586,0.418939024 +-0.447455972,1.19900954,0.447456002,0.000185627548,0.263468176,0.435203284,-2.24241018,6.19000864,0.0204074364,0.63282007 +-0.296669662,1.1990205,0.296669692,5.24422612e-05,0.577688277,0.776481628,1.19607508,1.93056965,0.0198624562,0.419564933 +0.233238205,1.19917059,-0.23323822,0.000275980943,0.675169766,0.759909272,0.811941266,1.12065697,0.0197682697,0.330205679 +-0.260719061,1.19919729,0.260719061,0.000103030528,0.636175573,0.777597308,1.00287104,1.45683777,0.0197914112,0.368806303 +0.282723755,1.19924319,-0.282723784,9.20331222e-05,0.601735353,0.78693527,1.12053967,1.76668298,0.0199839491,0.399864823 +-0.341159701,1.19931066,0.341159672,7.26329308e-05,0.502151668,0.756818652,1.22752535,2.49276829,0.0199747421,0.482478976 +-0.340733856,1.19945216,0.340733856,5.68200412e-05,0.50305438,0.757609606,1.22562587,2.48739314,0.019973617,0.481876343 +-0.29685995,1.19955969,0.29685992,3.19066658e-06,0.577885151,0.777539968,1.18996358,1.93371928,0.0198635664,0.419832289 +1.05845332,1.1995939,-1.05845332,0.00114643481,0.157723993,0.112022571,1.11104894,-0.399612695,0.0211987533,1.49699581 +0.322137177,1.19960618,-0.322137177,5.04244599e-05,0.532544255,0.769760132,1.25985241,2.26684618,0.0202105958,0.455586314 +0.350327462,1.1996491,-0.350327492,0.000109513057,0.485630602,0.758019626,1.16723037,2.61612391,0.0204105806,0.495447159 +-0.29643333,1.19968164,0.29643333,6.5909102e-05,0.578673244,0.777932584,1.1873033,1.9291811,0.0198626686,0.419228971 +-0.341101736,1.19976258,0.341101766,7.91906302e-07,0.502737761,0.758051991,1.22063756,2.49118733,0.0199751239,0.482399374 +0.367749095,1.19979966,-0.367749095,9.38347584e-05,0.45525071,0.749817252,0.880999982,2.90907121,0.020546481,0.520143747 +0.284392029,1.19983506,-0.284391999,4.83026051e-05,0.599096596,0.786981285,1.12255347,1.78903174,0.0199937467,0.402219445 +-0.341626912,1.19993925,0.341626942,8.826667e-06,0.501947463,0.758045554,1.213328,2.4968431,0.019977212,0.483137667 +0.331714511,1.2001003,-0.331714511,1.48822546e-05,0.516295969,0.766732931,1.2494477,2.38058233,0.0202786494,0.469167203 +-0.394851953,1.20012796,0.394851923,0.000114937458,0.383284867,0.65988344,-0.25029856,3.8664577,0.0201309714,0.558410764 +0.187277153,1.20019853,-0.187277168,0.000230283331,0.732566714,0.665633619,0.487886906,0.700950682,0.0196503475,0.265212029 +-0.4485448,1.20039403,0.4485448,0.000201455478,0.267687649,0.442201763,-2.26268649,6.15894222,0.0204054024,0.634353757 +-0.341446668,1.20082355,0.341446668,3.93774753e-05,0.503244817,0.760654807,1.19926834,2.49063087,0.0199782699,0.48288101 +-1.01988232,1.20089531,1.0198822,0.00094013504,0.17542465,0.119045615,1.23979032,-0.262299359,0.0209995415,1.4425261 +0.283303857,1.2010324,-0.283303857,5.32697559e-05,0.601818681,0.789848804,1.10584831,1.7796905,0.0199879408,0.400697708 +0.333251446,1.20107126,-0.333251417,6.03241497e-05,0.515284896,0.769411325,1.22568274,2.40696907,0.0202910993,0.471321732 +0.365277231,1.20109975,-0.365277231,4.87830766e-05,0.463399202,0.759414494,0.962617636,2.82532096,0.0205285251,0.516664684 +0.349390179,1.20110476,-0.349390149,4.19169464e-06,0.488176197,0.761865199,1.14318621,2.60532522,0.0204094779,0.494137675 +-1.05842602,1.20111573,1.05842602,0.00111755845,0.16083467,0.118227728,1.14613724,-0.34645021,0.0210380442,1.49698806 +-0.275719076,1.20141172,0.275719076,0.000164833211,0.613499224,0.787693799,1.06290722,1.67698717,0.0198261756,0.390099555 +0.277974665,1.201478,-0.277974665,0.000122075202,0.610991955,0.791595042,1.06899667,1.71519065,0.0199635159,0.393123776 +0.348668456,1.20149088,-0.348668486,3.28257192e-05,0.489578336,0.762665808,1.14032686,2.59705925,0.0204064865,0.493109077 +0.263154507,1.20156646,-0.263154507,0.000117539988,0.634875655,0.789553285,0.979673386,1.51466429,0.0198940206,0.372251093 +0.190620422,1.20157468,-0.190620422,8.03398143e-05,0.728142738,0.676692188,0.492840469,0.708564043,0.0196559299,0.26988402 +0.855644345,1.20180118,-0.855644345,0.00539667485,0.247605175,0.15087755,0.708469272,-0.437558115,0.0208303705,1.21101499 +-0.350404531,1.20183158,0.350404531,4.89586964e-05,0.489141464,0.758307159,1.1277144,2.60664749,0.0200045668,0.495572358 +0.349622101,1.20183492,-0.34962213,1.52707962e-05,0.488681257,0.763909698,1.12415755,2.60955,0.0204144027,0.494455814 +-0.34043318,1.20188785,0.340433151,3.98160591e-05,0.506307423,0.764196396,1.1863693,2.47967625,0.019977035,0.481446117 +-0.202513576,1.20191216,0.202513576,0.000452407374,0.712196648,0.69991076,0.564166129,0.791135669,0.0196727235,0.286812276 +0.590654969,1.20204997,-0.590654969,0.00177305273,0.161175668,0.201475203,-1.47530699,0.960185528,0.0213890504,0.835790515 +0.195478395,1.20214283,-0.195478395,0.000380675745,0.722636104,0.691606104,0.508761764,0.741604149,0.019667726,0.276639342 +0.284402579,1.20243871,-0.284402609,7.70329425e-05,0.600953996,0.792057097,1.09131742,1.79965162,0.0199954286,0.402225167 +0.331498414,1.20247412,-0.331498414,3.97918302e-05,0.51963383,0.773279727,1.20876753,2.39023232,0.0202830676,0.468835652 +0.293121099,1.20251262,-0.293121099,4.32456109e-05,0.586417675,0.790573359,1.12556887,1.91794086,0.020044364,0.41453889 +0.0647291392,1.20274353,-0.0647291392,0.000206276382,0.801404953,0.487929553,0.0234497599,0.111073926,0.0195874777,0.091541335 +-0.357512593,1.20302868,0.357512593,5.63058165e-05,0.479286104,0.758673608,1.04107308,2.70719957,0.0200322364,0.505622864 +0.300966322,1.20372796,-0.300966322,7.96472887e-05,0.573767006,0.789553106,1.14588702,2.02803993,0.0200875718,0.425648302 +-0.410272062,1.20399046,0.410272062,0.000141436351,0.317012161,0.550437987,-1.39338768,4.75074005,0.0202006027,0.580226898 +-0.29993546,1.20409822,0.29993546,4.01660654e-05,0.576611757,0.786581695,1.13855982,1.99157524,0.0198788475,0.424173146 +0.266406804,1.20410228,-0.266406804,6.98771182e-05,0.631112456,0.798228025,0.975293696,1.58353257,0.0199089777,0.376880646 +0.348348022,1.20418406,-0.348348022,3.30943985e-05,0.493095011,0.770295143,1.09087968,2.58579731,0.0204122532,0.492643684 +0.350111991,1.20424163,-0.350111991,4.01631478e-05,0.490021586,0.769778728,1.06770325,2.60301423,0.0204270985,0.49513942 +-0.420434296,1.20432448,0.420434296,0.000263525493,0.282221973,0.481455863,-1.86684763,5.26458406,0.0202533454,0.594637871 +-1.20203304,1.20443809,1.20203304,0.000274554681,0.111140296,0.0826883391,1.51290393,0.189257443,0.0210984051,1.69997835 +-0.21276547,1.20446801,0.212765485,0.000351114228,0.699420452,0.727597892,0.625824273,0.933764219,0.0196977016,0.301148117 +0.636277258,1.20452058,-0.636277199,1.01528349e-05,0.177862436,0.184355557,-1.38485801,0.113537833,0.0210341271,0.899999976 +0.302634746,1.20452178,-0.302634746,3.79052144e-05,0.57178539,0.791545749,1.14136899,2.05655956,0.0200970247,0.428016931 +-0.384313881,1.20472491,0.384313881,7.62061682e-05,0.423515975,0.739278316,0.161229014,3.3206749,0.0201069601,0.54350841 +0.301625878,1.20480371,-0.301625878,2.65003314e-06,0.573594928,0.792226553,1.13338268,2.04580259,0.0200921707,0.426602781 +-0.783605933,1.20497429,0.783605993,0.00251284312,0.262800336,0.168225363,0.14116551,-0.320869714,0.0207373947,1.10831571 +0.632879019,1.2050122,-0.632878959,0.00116146565,0.176742524,0.185824871,-1.37636483,0.170616955,0.0210550297,0.895118177 +-0.403763324,1.2051748,0.403763324,0.000142222518,0.330211848,0.574473262,-1.17756069,4.47634697,0.0201755911,0.571043849 +-0.325389743,1.20540404,0.325389743,8.28701668e-05,0.535135388,0.780413628,1.15573883,2.29608488,0.0199405067,0.46017471 +-0.348413825,1.20550644,0.348413825,5.15173961e-05,0.496644139,0.769990146,1.07681227,2.56415319,0.0200055614,0.492746472 +-0.930909932,1.20551944,0.930909991,0.00109051226,0.220002219,0.140431508,1.07098174,-0.310014576,0.0208352562,1.31666505 +0.358181506,1.20554245,-0.358181506,5.73071302e-05,0.476866126,0.763865054,0.966616631,2.69625092,0.0204952247,0.506553173 +0.26443994,1.20569611,-0.26443994,5.34925712e-05,0.634076953,0.79984802,0.932132363,1.56762075,0.019903386,0.374102145 +-0.285366476,1.20583546,0.285366446,6.05983878e-05,0.601320267,0.792322874,1.06352675,1.82045102,0.0198538452,0.40356946 +-0.374111444,1.2058444,0.374111414,0.000153771151,0.45242238,0.762836218,0.64119637,2.99352241,0.0200779606,0.529140294 +-0.285345107,1.20584464,0.285345107,4.94653468e-05,0.601366818,0.792357326,1.0633198,1.82019484,0.019853808,0.403539211 +-0.285359085,1.20586216,0.285359055,5.93345684e-09,0.601352572,0.792379558,1.06321108,1.82044697,0.019853862,0.403559178 +-0.285372198,1.20586491,0.285372198,4.55247828e-05,0.601333797,0.792380273,1.06320763,1.82061112,0.0198538974,0.403577566 +-0.285357267,1.20590103,0.285357267,7.14975104e-05,0.601362407,0.792434394,1.06268406,1.82057536,0.0198539309,0.403556377 +0.340871334,1.20610058,-0.340871334,0.000113224341,0.507162511,0.779354095,1.12136459,2.4820962,0.0203550477,0.482213974 +-0.284988523,1.20610547,0.284988552,3.22616033e-05,0.601913571,0.79272306,1.05790496,1.81663895,0.0198536254,0.403034717 +0.359421313,1.20614505,-0.359421283,3.46692468e-05,0.475954413,0.765567422,0.939474642,2.72088194,0.0205075927,0.508302629 +0.440356523,1.20618975,-0.440356493,0.000299482635,0.248040438,0.413686305,-2.61730766,6.07150745,0.0207392946,0.622875094 +0.303156108,1.20628679,-0.303156108,4.09445674e-05,0.572583318,0.795421839,1.11496592,2.0726192,0.0201028008,0.428742558 +-1.19680238,1.20629752,1.1968025,0.000171736538,0.13501367,0.116164938,1.32505894,0.252693087,0.0210861489,1.69258904 +0.410257846,1.20633054,-0.410257816,0.000221005917,0.305562109,0.530718386,-1.60799766,4.84850311,0.0207791161,0.580312729 +-0.492810965,1.20638478,0.492810935,0.00057904853,0.326156437,0.555864692,-1.71472538,5.59383583,0.0207210798,0.697124004 +-0.244647801,1.2064333,0.244647771,0.000172080632,0.658547699,0.777822614,0.805080175,1.29713023,0.0197752416,0.346158743 +0.287793189,1.20647705,-0.287793219,5.52452657e-05,0.597938836,0.799421668,1.05121982,1.86215496,0.0200180542,0.407007635 +0.300858974,1.20659351,-0.300858945,1.46458124e-05,0.575876296,0.795564651,1.10124195,2.04599762,0.0200905018,0.425497383 +0.312124014,1.20664406,-0.312124014,9.23601401e-05,0.557605922,0.793686092,1.1443218,2.17445278,0.0201564878,0.441532016 +-0.363137335,1.20666933,0.363137305,8.16555403e-05,0.471281946,0.764767945,0.84653002,2.76717162,0.0200556871,0.513568282 +1.07730138,1.20683086,-1.07730138,0.000385793857,0.262159824,0.209273741,0.961526394,-0.505866766,0.0212458894,1.52365291 +-0.328138262,1.20716381,0.328138232,7.66758822e-05,0.532463908,0.78285569,1.13174975,2.33548093,0.0199506469,0.46407032 +0.333147466,1.20723438,-0.333147466,3.14868448e-05,0.522100627,0.785106838,1.12466526,2.40385818,0.0203048326,0.471147448 +-0.225209638,1.2072897,0.225209638,0.000335767807,0.68276453,0.752892256,0.674930811,1.0397526,0.0197294001,0.318829119 +0.301922143,1.20739317,-0.301922143,5.04186864e-05,0.574852824,0.797339439,1.0925076,2.0641923,0.0200971104,0.426999092 +0.834121346,1.20747662,-0.834121346,0.00306148035,0.254476249,0.154812828,0.576091886,-0.462297052,0.0208228063,1.18133247 +-0.944526792,1.20755434,0.944526792,0.00176613044,0.213310316,0.136585608,1.134642,-0.325154096,0.0208570529,1.33593857 +0.217413098,1.20767081,-0.217413098,0.000519378751,0.69571507,0.748133957,0.618386328,1.00143552,0.0197211485,0.307767212 +0.357899725,1.20770013,-0.357899696,1.36935187e-05,0.479155779,0.769237816,0.920507312,2.69391894,0.0205021556,0.506159961 +-0.313993424,1.20772433,0.313993394,7.85397569e-05,0.556162238,0.789786756,1.1220361,2.17503476,0.0199162588,0.444058299 +0.47454837,1.20779431,-0.47454837,0.00031637802,0.292644471,0.484024405,-2.44280791,6.13596773,0.020808341,0.671122432 +0.315621197,1.20789313,-0.315621197,6.97849682e-05,0.553302407,0.796025515,1.12928891,2.2240386,0.020181058,0.446433008 +-0.327623844,1.20796418,0.327623844,1.94970653e-05,0.534323633,0.785431325,1.1207397,2.32924414,0.0199502073,0.463346213 +-1.07737684,1.20806122,1.07737684,0.000372693641,0.252514124,0.204360247,1.00906134,-0.499809682,0.0210143421,1.52378845 +-1.19248402,1.20806777,1.19248402,7.49345709e-05,0.235533625,0.272342205,1.14899457,0.253450423,0.0210719351,1.68648171 +0.358449548,1.20812964,-0.358449578,3.82713597e-06,0.478673548,0.770213008,0.902166009,2.70060372,0.020508172,0.506939828 +0.36015144,1.20819128,-0.36015144,3.81837126e-05,0.47605297,0.771839321,0.86142993,2.7274313,0.0205215812,0.509336948 +0.437623441,1.20825374,-0.437623471,0.000322307314,0.240372092,0.401005179,-2.67589402,6.06537485,0.0207446795,0.618944407 +-0.328237414,1.20852399,0.328237414,7.69136568e-06,0.533852816,0.786425531,1.11221969,2.33402133,0.0199529007,0.464208573 +0.38866061,1.20858574,-0.38866061,0.000159450181,0.389593631,0.693652987,-0.44520551,3.63958073,0.0207262971,0.549695849 +0.225287855,1.20873833,-0.225287855,0.000387314532,0.685999393,0.763243973,0.645451784,1.07474577,0.0197474621,0.318852127 +0.250170171,1.20884776,-0.250170171,0.000121397497,0.654526412,0.792148232,0.800193608,1.4154942,0.0198406819,0.353810698 +0.374429047,1.20885396,-0.374429047,0.000164168552,0.449044585,0.772636592,0.437804013,3.00594592,0.0206351578,0.529620945 +-0.327562958,1.20888805,0.327562958,4.26819679e-05,0.535409808,0.787640691,1.10825717,2.32879591,0.0199514888,0.463253528 +0.442402482,1.20895517,-0.442402482,4.43244098e-05,0.244591832,0.406059504,-2.71292782,6.09160852,0.0207402129,0.625748634 +-0.304244131,1.20912945,0.304244131,4.18200179e-05,0.573417664,0.795372128,1.08637297,2.06450701,0.019897351,0.430274248 +0.357607245,1.20931315,-0.357607216,5.18576198e-05,0.481175095,0.773830533,0.888461232,2.6807487,0.0205056854,0.505738437 +-0.249905095,1.20939147,0.24990508,0.000114881128,0.651011884,0.784427941,0.801984608,1.36458743,0.0197899919,0.353584558 +-0.331053913,1.20940077,0.331053913,5.58771135e-05,0.530213237,0.788183451,1.08735359,2.36333871,0.0199630484,0.468182862 +0.469350934,1.20946121,-0.469350934,0.000212711268,0.295535088,0.488222241,-2.48098803,6.21575165,0.020739805,0.663791418 +0.32295382,1.20957649,-0.32295382,6.99017037e-05,0.542035043,0.795374334,1.10982227,2.30654001,0.0202339571,0.456789911 +0.253494173,1.20958543,-0.253494173,0.000101583013,0.650130272,0.795641243,0.815858126,1.45426786,0.0198562257,0.358501017 +-0.404333085,1.20967925,0.404333085,3.99394812e-05,0.310653478,0.54199177,-1.56434226,4.64787865,0.0201921798,0.57189256 +-0.304491818,1.20976448,0.304491818,2.88804404e-05,0.573697984,0.797046423,1.07815611,2.07211256,0.0198989306,0.430628091 +0.3261199,1.21012354,-0.3261199,6.58310746e-05,0.537433922,0.796538651,1.09879422,2.34213424,0.0202548914,0.461276382 +0.636330485,1.21018124,-0.636330426,0.00040379024,0.17824769,0.182814077,-1.32741308,0.0563370436,0.021027606,0.899999976 +-0.304177105,1.21022272,0.304177105,5.72326007e-06,0.574659228,0.798199892,1.06977022,2.07162166,0.0198994838,0.430182844 +-0.307945907,1.21058333,0.307945907,3.45227636e-05,0.569080651,0.798542082,1.07127583,2.11512375,0.0199080408,0.435501993 +0.468529522,1.21061409,-0.468529522,0.000198281545,0.292405576,0.482376814,-2.50854087,6.2381978,0.0207334366,0.662643552 +-0.521524429,1.21091712,0.521524429,0.000908423623,0.269348681,0.448462874,-1.26863337,3.73558164,0.0210925601,0.737949789 +-0.239986151,1.21093428,0.239986151,0.000250110577,0.664454401,0.778949738,0.741490245,1.26239908,0.0197689999,0.339548588 +-0.314335495,1.21095109,0.314335525,2.00494414e-05,0.559150338,0.797649741,1.07755709,2.18897772,0.0199223943,0.444555342 +-0.313512027,1.21095991,0.313512027,7.46246678e-06,0.560585558,0.798211992,1.076074,2.17996335,0.0199201033,0.443391532 +0.371458322,1.21107113,-0.371458322,0.000103440339,0.459661424,0.788043022,0.524297416,2.89854908,0.0206156708,0.525443673 +-0.302953869,1.21110082,0.302953869,5.09625061e-05,0.577036679,0.799929678,1.05221796,2.06155157,0.0198990572,0.428444654 +-0.406360567,1.21125543,0.406360567,0.000163972756,0.299026996,0.51841867,-1.75126863,4.786623,0.0202141758,0.574726224 +-0.400339901,1.21129322,0.400339901,0.00010174582,0.32154575,0.565870583,-1.42588758,4.43985415,0.0201761983,0.566195309 +-0.304381162,1.21137607,0.304381162,4.44038233e-05,0.575154841,0.800455987,1.05251658,2.08093715,0.0199022386,0.430464238 +-0.35325858,1.2114172,0.35325858,0.000103634047,0.493558377,0.781514406,0.89703393,2.6140337,0.02003376,0.499645501 +0.248749822,1.211429,-0.248749822,0.000286669674,0.656727433,0.794972003,0.767523408,1.40892613,0.0198358521,0.351812422 +-0.336882561,1.2114346,0.336882532,2.08686106e-05,0.522768795,0.792195439,1.0384922,2.42252254,0.0199823454,0.476456523 +-0.313967586,1.21143699,0.313967586,6.92165543e-07,0.560244977,0.798956454,1.07155275,2.18556976,0.0199217629,0.444038987 +0.311796188,1.21146011,-0.311796218,6.97744254e-05,0.562773228,0.804362416,1.06542635,2.19880056,0.0201618727,0.441014886 +0.440921724,1.21149564,-0.440921694,0.000278543041,0.244095296,0.405391544,-2.7759614,6.00335884,0.0207294486,0.623646259 +0.250061274,1.2115128,-0.250061274,2.18441601e-05,0.654903233,0.796112716,0.7738235,1.42405307,0.0198408999,0.353692234 +0.359648705,1.21164083,-0.359648705,4.13576927e-05,0.47672832,0.781220257,0.760612428,2.68729591,0.020529734,0.508623123 +0.469159842,1.21167684,-0.469159842,5.83177716e-05,0.290767729,0.478804231,-2.54692841,6.24507999,0.0207338352,0.663527608 +-0.314803034,1.21183777,0.314803064,5.39678913e-05,0.559336424,0.799689054,1.06569099,2.19412518,0.0199249089,0.445209295 +0.386214614,1.21184075,-0.386214614,0.000132020563,0.390473962,0.697074234,-0.525897622,3.57897615,0.0207235832,0.546259105 +0.251124561,1.21194732,-0.251124561,0.000197636182,0.653485,0.797383308,0.772035837,1.43672144,0.0198462121,0.355170548 +0.470022231,1.21210301,-0.470022202,0.000318435137,0.292423725,0.482577384,-2.51356816,6.19186211,0.0207393132,0.664752007 +-0.456134021,1.21229184,0.456134021,0.000172590444,0.299099714,0.495546639,-2.26483822,5.73597431,0.0204109158,0.645073354 +0.759208083,1.21241295,-0.759208143,0.00184252905,0.262272894,0.168841824,-0.00581361353,-0.397222281,0.0208214764,1.07462406 +-0.989043236,1.21250677,0.989043236,0.00257177767,0.190421224,0.125574425,1.23490918,-0.307962716,0.0209426992,1.39931202 +-0.246388748,1.21262538,0.246388763,0.000205571225,0.655613422,0.78634429,0.755954206,1.33365738,0.0197860673,0.34863472 +-0.338166863,1.21262789,0.338166863,3.44155269e-05,0.522253573,0.795749187,1.00670493,2.43799663,0.019989077,0.478267461 +0.468427241,1.21267235,-0.468427241,0.000252816157,0.290322006,0.478168339,-2.57288265,6.20916748,0.0207295883,0.66248858 +-0.336786211,1.21268082,0.336786181,5.47435138e-06,0.524403811,0.795733571,1.01654613,2.424335,0.0199853089,0.476314723 +-0.313555449,1.21269524,0.313555479,6.01024512e-05,0.561850131,0.801540196,1.05384183,2.18531585,0.019923117,0.44344309 +0.501026452,1.21300578,-0.501026392,0.000594181009,0.329760551,0.562166452,-1.59076905,4.66887569,0.0210228357,0.708615065 +0.343479574,1.21309829,-0.343479574,6.63101746e-05,0.510810018,0.797793329,0.96171391,2.49825478,0.0203991327,0.485798478 +0.389855713,1.2132864,-0.389855713,8.39565764e-05,0.366782308,0.657433748,-0.910618424,3.8317914,0.0207533427,0.551433027 +0.331574678,1.21330225,-0.331574678,4.41128541e-05,0.531578302,0.802336693,1.02898026,2.38918924,0.0203036685,0.468933821 +0.335700572,1.21352851,-0.335700572,5.36038715e-05,0.524338305,0.800322831,1.01394463,2.42748761,0.0203370638,0.474777997 +0.295716941,1.21366382,-0.295716941,5.58850115e-05,0.588806808,0.81009382,0.996407151,1.99697709,0.0200654697,0.418244898 +0.42131409,1.21374941,-0.42131409,0.000367255241,0.233685583,0.397219658,-2.69706154,5.66149712,0.0208191164,0.595975935 +-0.3363083,1.21404171,0.3363083,5.0734292e-05,0.526536822,0.799220979,0.997634411,2.42097425,0.0199871417,0.475631952 +-0.402588904,1.21431673,0.402588904,0.000114702409,0.288055003,0.50115639,-1.88418734,4.75645733,0.0202040169,0.569373429 +-0.337930083,1.21433043,0.337930083,2.60311572e-05,0.52420646,0.800393701,0.979540825,2.42923522,0.0199925564,0.477925211 +0.577889204,1.2143333,-0.577889204,0.000925045635,0.159918115,0.208940119,-1.23790848,1.11833763,0.0213934872,0.817561984 +0.287146121,1.21438539,-0.287146121,0.000117099975,0.602964461,0.815741062,0.94459486,1.90240169,0.0200202912,0.406218141 +-0.362686038,1.21458673,0.362686038,6.25293978e-05,0.4779796,0.784422457,0.647602737,2.7271347,0.0200679954,0.512954235 +-0.264691889,1.21481085,0.264691859,7.42614138e-05,0.632096887,0.802680194,0.825769424,1.58435953,0.0198312439,0.374335945 +0.404987663,1.21495771,-0.404987663,5.86241695e-05,0.268002421,0.467748195,-2.13059878,4.89368057,0.0208276436,0.572764993 +0.334083855,1.2149874,-0.334083855,1.16885467e-05,0.528674006,0.805038631,1.00182199,2.40981078,0.0203248803,0.472507298 +-0.368633598,1.2153759,0.368633568,9.04323169e-05,0.465767443,0.783050835,0.484906226,2.82668471,0.0200874917,0.52136302 +-0.349279225,1.21539426,0.349279225,6.6927736e-05,0.505114615,0.796187341,0.864149809,2.54123139,0.0200288016,0.493991762 +-0.293957114,1.21569538,0.293957084,0.000111277936,0.593313277,0.810747325,0.956354201,1.98205423,0.0198887102,0.415794253 +0.402457118,1.21588278,-0.402457118,0.000100661913,0.27490744,0.479990691,-2.03729677,4.77923059,0.020821875,0.56918323 +0.335376561,1.21600485,-0.33537659,7.80955361e-06,0.526956141,0.806496322,0.979919791,2.41203332,0.0203373916,0.474327147 +0.346950233,1.2161088,-0.346950233,5.54803082e-05,0.506347656,0.800621748,0.877685606,2.51299739,0.0204359945,0.490694702 +-0.591856599,1.21620619,0.591856599,0.000914733741,0.165633291,0.20004864,-1.319049,0.754225731,0.0210314617,0.837290406 +-0.345154941,1.21629143,0.345154941,8.35520041e-05,0.513108969,0.801240563,0.897172093,2.49091721,0.0200170875,0.488200426 +0.269850552,1.21629882,-0.269850552,0.000141255558,0.627496302,0.816349268,0.814932346,1.69179177,0.0199347436,0.381636679 +-0.0241061468,1.21646845,0.0241061486,0.00021748025,0.794098318,0.482495219,-0.0275532827,0.0195337851,0.0195817538,0.0356646366 +0.747064352,1.21648932,-0.747064352,0.00257435115,0.261295557,0.17119658,-0.0959099978,-0.400277853,0.0208222028,1.05710685 +0.374167204,1.21650529,-0.374167204,9.2610353e-05,0.419436455,0.740895987,-0.160417199,3.19832158,0.0206588451,0.529238522 +-0.0206387788,1.21652365,0.0206387788,0.00057456491,0.794207156,0.481920511,-0.0281978119,0.0177813228,0.0195820313,0.032771118 +-0.329229832,1.2165494,0.329229832,2.89447889e-05,0.540133476,0.806901693,0.993609846,2.34177589,0.0199708026,0.465602189 +0.00449741632,1.21656668,-0.00449741445,0.000737573311,0.794599652,0.480458617,-0.027193537,0.0227317493,0.0195845254,0.0235194005 +-0.0314107649,1.21666503,0.0314107649,0.000539205153,0.793082774,0.485150993,-0.0239479132,0.0288184956,0.019581072,0.0447960198 +-0.0600100681,1.21683383,0.0600100681,0.000505593198,0.788718641,0.498046249,-0.00366696017,0.071133621,0.0195787363,0.086022675 +-0.323593765,1.21702242,0.323593736,8.20913192e-05,0.550525129,0.811419666,0.998644769,2.30802536,0.0199543741,0.457736105 +1.02952337,1.21718824,-1.02952337,0.00148542784,0.166460931,0.107921384,1.16146052,-0.329824686,0.0210929047,1.45604372 +-0.365845144,1.21719813,0.365845174,3.14990575e-05,0.473293334,0.789383113,0.538453758,2.74669385,0.0200814717,0.517445087 +0.370817721,1.21733928,-0.370817721,5.92844372e-05,0.451536179,0.797411323,0.221191376,2.89781952,0.0206293948,0.524486423 +-0.0510856807,1.21742046,0.0510856807,0.000563270587,0.789992392,0.492842913,-0.0128935697,0.0571654886,0.0195792187,0.0740531459 +0.52411449,1.21746314,-0.52411449,0.000905923254,0.24650386,0.408758014,-1.1407913,3.94398737,0.021269463,0.741562486 +-0.076665625,1.21753359,0.076665625,0.000666402397,0.783481002,0.508502364,0.0146215148,0.104994036,0.0195780676,0.110540889 +0.972915053,1.21765232,-0.972915113,0.00145209208,0.192698151,0.12043789,1.17046332,-0.426951528,0.0209611766,1.37620223 +0.325281262,1.21766257,-0.325281292,5.37191336e-05,0.546227276,0.814484537,0.98829937,2.34396529,0.0202611592,0.460041136 +0.385657609,1.21772075,-0.385657638,8.1219303e-05,0.369126707,0.670360744,-0.963785231,3.71191812,0.0207394175,0.545462966 +-0.280271202,1.21774125,0.280271202,9.04053595e-05,0.610811114,0.810856938,0.884784222,1.8005693,0.0198637955,0.396498889 +0.293669224,1.21777117,-0.293669224,5.46829106e-05,0.594916105,0.819329441,0.925168395,1.99629903,0.0200605094,0.415356725 +0.388823032,1.2177844,-0.388823032,6.58188001e-05,0.346549451,0.620493591,-1.23914766,3.96878457,0.0207655877,0.54995501 +-0.266521931,1.21787977,0.266521931,0.000143839585,0.629831076,0.807869315,0.799431503,1.62537014,0.0198406503,0.376933217 +-0.263217628,1.21791553,0.263217628,0.00018811581,0.634240985,0.806306064,0.7761572,1.58007741,0.0198345352,0.372255266 +0.352682739,1.21791828,-0.35268271,8.35713581e-05,0.49782604,0.802268744,0.770981133,2.56093097,0.0204890501,0.498809159 +0.333121717,1.21806037,-0.333121717,4.65250487e-05,0.533114612,0.812812805,0.965180159,2.39719009,0.0203205794,0.471121848 +-0.635720849,1.21831536,0.635720849,0.00076665479,0.180429682,0.18060936,-1.26597238,-0.0334205329,0.0208038129,0.900000036 +0.0645049065,1.21846783,-0.0645049065,9.85900897e-06,0.785851061,0.50049293,-0.000359102327,0.103592597,0.0195859801,0.0912880227 +0.0648657456,1.21847117,-0.0648657456,0.000378101657,0.785746515,0.500783443,1.74404122e-05,0.104168735,0.0195860025,0.0917604044 +0.0642025992,1.21848285,-0.0642025992,0.000386793487,0.785894156,0.500334918,-0.000596238708,0.10309536,0.0195859689,0.0908536538 +-0.376997828,1.21859705,0.376997828,0.000108412183,0.424225509,0.75607425,-0.246633708,3.17218399,0.0201137383,0.533185005 +-0.265604675,1.21873069,0.265604645,2.79581873e-05,0.631089211,0.809098184,0.780908823,1.61727309,0.019840721,0.375653833 +0.316711783,1.21893108,-0.316711783,4.41478842e-05,0.561186552,0.819125414,0.967946351,2.2693646,0.0202019773,0.447912902 +0.0406602398,1.21893775,-0.0406602398,0.000691345718,0.789264977,0.489423543,-0.0163648836,0.0638121516,0.0195857715,0.0602886267 +0.94301641,1.21898901,-0.94301641,0.00192891737,0.205803216,0.126129448,1.09783816,-0.448600382,0.0209016446,1.33480501 +-0.388213694,1.21899521,0.388213694,0.000204843833,0.345972061,0.622709334,-1.2611692,3.93684769,0.0201506075,0.549154222 +0.406791449,1.21902084,-0.406791419,0.000159047006,0.245352715,0.426955134,-2.53877115,5.12003469,0.020847749,0.575311422 +-0.486319661,1.21905732,0.486319691,0.000403102516,0.327393293,0.555170834,-1.92465568,5.57725382,0.0206135698,0.688028812 +0.404353052,1.21906793,-0.404353052,6.54026589e-05,0.252239943,0.441327006,-2.43175673,4.98599148,0.0208450761,0.571887493 +0.295454353,1.21912646,-0.295454353,5.80879023e-05,0.59291935,0.821686089,0.911364555,2.03010106,0.020070672,0.417875499 +0.319483876,1.21916795,-0.319483876,3.29990216e-05,0.556572914,0.817965865,0.966454625,2.29933023,0.0202214923,0.451830596 +-0.266676277,1.21918261,0.266676277,0.000129298656,0.629848063,0.810630083,0.779370248,1.63619864,0.0198438074,0.37715444 +-0.425195992,1.21918833,0.425195932,0.000287920324,0.218764931,0.364933729,-3.02361608,5.90901423,0.0203258581,0.60151881 +0.0878754109,1.21940601,-0.0878754109,0.000821199967,0.777340889,0.517757833,0.0273185447,0.153158963,0.0195874535,0.125718325 +-0.343932986,1.21963882,0.343932986,3.9852137e-05,0.518295228,0.810795426,0.848918557,2.46644998,0.0200218558,0.48645106 +0.0164787453,1.21970344,-0.0164787453,0.000466359779,0.790242851,0.482340008,-0.0274106525,0.0324614979,0.0195849221,0.0281517114 +-0.147041649,1.21979403,0.147041664,0.000483511219,0.746442914,0.591792941,0.16409722,0.376250684,0.019599596,0.20802255 +-0.147805631,1.21985972,0.147805631,5.57562562e-05,0.74579823,0.593233109,0.165774539,0.377802044,0.0196001418,0.209102377 +0.338612646,1.21987665,-0.338612646,3.10947216e-05,0.525292397,0.816674531,0.895803094,2.41541219,0.0203715861,0.478875607 +-0.29659602,1.21989346,0.29659602,7.2555049e-05,0.591761172,0.816964686,0.910268188,2.02856922,0.0199018549,0.419474363 +0.0291413087,1.21990931,-0.0291413106,0.000452565902,0.789336324,0.485403478,-0.022795992,0.0482359082,0.0195851792,0.0431230962 +-0.60327363,1.21992111,0.60327369,0.00112097221,0.168819383,0.191787466,-1.24756324,0.499652445,0.0209414568,0.853448629 +1.05648768,1.21998858,-1.05648768,0.00103809685,0.163616613,0.115385927,1.11681318,-0.323572665,0.0211464353,1.49417889 +-0.15019545,1.22000968,0.150195464,0.000479874841,0.743771195,0.599981606,0.173294589,0.393694848,0.0196035448,0.21242702 +0.133685648,1.22003186,-0.133685648,0.000729966909,0.754399121,0.570149183,0.124511607,0.312546939,0.0195977204,0.190029845 +-0.118270703,1.22013819,0.118270703,0.000454620429,0.763536096,0.549233794,0.0852493793,0.233612642,0.0195825789,0.16763559 +-0.290544152,1.22014368,0.290544152,0.000112057285,0.598799825,0.817106545,0.887424052,1.9562726,0.0198897831,0.410938799 +1.22878528,1.2201637,-1.22878528,6.34815879e-05,0.0403475836,0.0429586954,2.00722694,-0.00934650004,0.0210904237,1.73781848 +1.22415984,1.22017777,-1.22415984,0.000139514552,0.0548548698,0.0392584093,2.15157986,0.0139567535,0.021089837,1.73127699 +1.21860921,1.22019458,-1.21860921,0.000186645746,0.0785216689,0.0541237704,2.13259077,0.0772185922,0.021086216,1.72342682 +0.107074402,1.22028732,-0.107074395,0.000426594139,0.768675625,0.536747634,0.0582547896,0.204140812,0.0195902921,0.151663154 +0.114609055,1.22031879,-0.114609055,0.000424149388,0.764979184,0.544956028,0.0757620782,0.238527268,0.0195919778,0.162243232 +0.297533184,1.22033525,-0.297533154,7.65124714e-05,0.590665162,0.824469805,0.899293423,2.06403899,0.0200832989,0.420811415 +0.15766415,1.22035241,-0.15766415,0.000229933648,0.738004148,0.614580929,0.200550422,0.464526027,0.0196136329,0.223235145 +0.154049695,1.22037828,-0.154049695,0.000442191318,0.740653515,0.6087538,0.186152965,0.435066879,0.0196115393,0.217989936 +-0.12172734,1.22038138,0.12172734,0.000529562356,0.76131314,0.55399847,0.0917038471,0.240365952,0.0195834246,0.172475889 +1.20753598,1.22051573,-1.20753598,0.000280916516,0.101548545,0.0772533566,1.87879431,0.164847136,0.0210617669,1.70773327 +0.110785708,1.22063494,-0.110785715,0.000140379503,0.76664567,0.539832294,0.0645382851,0.21635823,0.0195907336,0.156991929 +0.405031413,1.22068882,-0.405031413,9.16071986e-06,0.24299182,0.423416257,-2.59091473,5.08232307,0.0208525471,0.572850764 +0.308913529,1.22076404,-0.308913529,5.52884121e-05,0.574817896,0.824132502,0.930922329,2.1931715,0.0201506447,0.436895221 +0.356281698,1.22095394,-0.356281698,5.91007411e-05,0.489517748,0.808373988,0.633161962,2.56160116,0.0205285456,0.503899992 +-0.380170047,1.22097003,0.380170047,0.00012350257,0.395906329,0.714602888,-0.700483501,3.41395569,0.020132361,0.537673891 +-0.0941681564,1.22100043,0.0941681638,0.000377225399,0.773447156,0.523400426,0.0339615792,0.148405686,0.0195783526,0.1333922 +0.342616975,1.22111821,-0.342616975,3.21750667e-05,0.519681334,0.818773985,0.846756339,2.4431715,0.0204060767,0.484542251 +0.275456488,1.22135329,-0.275456488,0.000101380567,0.619745851,0.823507369,0.77500993,1.78736913,0.0199656188,0.389578432 +-0.0969513133,1.2213906,0.0969513133,0.00043780444,0.771908283,0.525850713,0.0376167148,0.153734565,0.0195783265,0.137323648 +0.16634506,1.22149849,-0.16634506,0.000476634246,0.730156064,0.639612734,0.229763657,0.556508064,0.0196251646,0.235287637 +0.324200362,1.22151136,-0.324200392,1.72586879e-05,0.55183959,0.824903548,0.939166546,2.33654451,0.0202563461,0.458539069 +0.318044543,1.22157359,-0.318044543,1.5175714e-05,0.561239004,0.824322283,0.935370445,2.28876185,0.020213116,0.449808508 +0.27311343,1.22173047,-0.27311343,5.79417792e-05,0.622896433,0.82428968,0.757672906,1.76150727,0.019953113,0.386297822 +0.347730279,1.22193086,-0.347730279,4.20587312e-05,0.509671092,0.815840542,0.770180225,2.48652887,0.0204571951,0.491818249 +0.31384939,1.222031,-0.31384939,3.29292816e-05,0.56816113,0.82617873,0.920363188,2.2477386,0.0201853141,0.443855613 +-0.312701046,1.22207808,0.312701017,4.58983923e-05,0.570515096,0.822704554,0.92321378,2.22032118,0.0199367106,0.442309618 +-0.173832908,1.22210765,0.173832923,0.000565160997,0.722004235,0.648608446,0.253059059,0.564092696,0.019634651,0.246433243 +-0.357310921,1.22215986,0.357310921,6.61271624e-05,0.492803156,0.811879575,0.586269736,2.54825974,0.0200671274,0.505329907 +1.07585073,1.2222991,-1.07585073,0.000346761604,0.271565735,0.216488957,0.947648048,-0.382058859,0.0211657062,1.52156401 +-0.361820102,1.22234428,0.361820102,5.07449731e-05,0.484508485,0.808045447,0.495860249,2.61859369,0.0200808533,0.51170063 +1.20592749,1.22241521,-1.20592761,0.00013945016,0.104710639,0.080357641,1.84815395,0.175190821,0.0210544281,1.70547509 +-0.367354691,1.22246265,0.367354691,7.71874111e-05,0.461972654,0.804952085,0.161095008,2.80031776,0.0200953986,0.519541144 +-0.941181064,1.22257853,0.941181123,0.0002556775,0.213477135,0.135244474,1.11454368,-0.37675029,0.0208478048,1.33143818 +0.364788502,1.22265947,-0.364788473,5.59273212e-05,0.469132185,0.813183069,0.293076634,2.67680645,0.0206059963,0.515951037 +0.27198109,1.22269309,-0.27198109,0.000195506072,0.624673247,0.825604618,0.742046177,1.75064945,0.019947229,0.384685546 +-0.30210641,1.22270894,0.30210638,6.75496412e-05,0.585605264,0.822598398,0.886817932,2.11274958,0.0199171081,0.427275956 +0.307111979,1.22272599,-0.307111979,6.67565764e-05,0.578357518,0.82788074,0.893036246,2.18230247,0.0201427117,0.434350073 +-1.02966917,1.22272599,1.02966917,0.00139336952,0.168501347,0.113409586,1.20705616,-0.261072546,0.0210107546,1.45630884 +-0.307765961,1.22276688,0.307765961,7.61374686e-05,0.577801824,0.822915256,0.900607944,2.17266059,0.019929247,0.435296595 +1.20124388,1.22290623,-1.20124388,0.000171927255,0.121862561,0.110425711,1.68220925,0.21728985,0.0210398156,1.69885111 +0.318041235,1.223001,-0.318041265,2.60517354e-05,0.562230885,0.827260733,0.918026209,2.29049468,0.0202138796,0.449799061 +-0.181551486,1.2230612,0.181551486,0.000450400286,0.714937866,0.671443045,0.285323918,0.675163984,0.0196508449,0.257137179 +1.19734085,1.22331583,-1.19734085,7.35553767e-05,0.245487884,0.297541469,1.53839839,0.210113183,0.0210318137,1.69333136 +0.309199691,1.22347534,-0.309199691,2.23495517e-05,0.575952411,0.8298648,0.886831522,2.2101717,0.0201554187,0.437302291 +0.273987949,1.22348881,-0.273987949,0.000110168447,0.621938169,0.826576948,0.741045654,1.77761078,0.0199584588,0.387525618 +-0.329862982,1.2236681,0.329862982,3.43562424e-05,0.546133995,0.825203598,0.889016926,2.34832311,0.0199859366,0.466506273 +0.327207029,1.2237761,-0.327207029,6.02053151e-05,0.548307717,0.828528225,0.906466842,2.35382318,0.0202824175,0.462764829 +-0.418511927,1.22393501,0.418511927,0.000274777587,0.205311686,0.343084931,-3.21453285,5.78915882,0.0203335024,0.592034578 +0.323882192,1.22396612,-0.323882192,1.98281923e-05,0.554020405,0.829835355,0.909183145,2.33709502,0.0202554576,0.458079576 +0.405224979,1.22402,-0.405225009,0.000117519834,0.227870524,0.394331098,-2.82002306,5.1818099,0.0208641756,0.573090017 +-0.378168464,1.22409642,0.378168464,5.07093937e-05,0.387548715,0.703289449,-0.850158751,3.4494772,0.0201298669,0.534856081 +-0.330376834,1.2241416,0.330376863,4.11095534e-05,0.545823157,0.826506376,0.880224168,2.35318947,0.0199881699,0.467232227 +0.342393368,1.22414577,-0.342393398,4.40784024e-05,0.522726417,0.827490389,0.798595488,2.42349195,0.0204110462,0.484231412 +-1.05653048,1.22418237,1.05653048,0.00107205799,0.167035729,0.122137502,1.17057657,-0.268259257,0.0210119151,1.49429274 +0.339900047,1.22438645,-0.339900047,2.73885053e-05,0.527363718,0.828155398,0.822614193,2.41286516,0.0203894302,0.480698496 +-0.374765277,1.22443581,0.374765277,7.29101594e-05,0.426346302,0.774684608,-0.436405629,3.10335016,0.020117268,0.530016959 +0.184646919,1.22446442,-0.184646904,0.0003634475,0.711833179,0.677932858,0.286594778,0.719986796,0.0196468029,0.261503875 +-0.34900552,1.22448027,0.34900552,3.59790938e-05,0.511626363,0.819177747,0.702846766,2.45763016,0.0200485718,0.493580252 +0.362830281,1.22451079,-0.362830281,6.77283315e-05,0.473631799,0.815690875,0.323625654,2.61675835,0.0205942541,0.513143122 +-0.329827011,1.22457147,0.329827011,1.95342473e-05,0.546878755,0.827196479,0.875189841,2.35175109,0.0199876502,0.466454685 +-0.320319235,1.22470725,0.320319265,1.91464933e-05,0.561662912,0.827490032,0.88707155,2.29226065,0.0199618228,0.4529998 +-0.33071357,1.22476375,0.33071357,1.99068218e-05,0.545678437,0.828121483,0.868818998,2.35477853,0.0199905578,0.467709035 +-0.436163127,1.22481835,0.436163127,0.000233924438,0.217923775,0.359561175,-3.31944847,5.98914623,0.0204001758,0.617079437 +-0.320399165,1.22485602,0.320399135,2.51305173e-05,0.561665833,0.827800572,0.885020137,2.29357743,0.0199622866,0.45311293 +-0.32038793,1.22486031,0.32038793,1.01280011e-05,0.561685503,0.827809393,0.884947538,2.29348421,0.0199622698,0.453097105 +-0.320399463,1.22486985,0.320399433,1.57977738e-05,0.561675906,0.827832222,0.884805858,2.29363561,0.0199623164,0.453113347 +-0.320382059,1.22487462,0.320382059,1.54288427e-05,0.561699986,0.827833712,0.884711802,2.29352212,0.0199622866,0.453088731 +-0.320394844,1.22488654,0.320394844,1.73440094e-05,0.561683416,0.827851772,0.884547114,2.29369617,0.0199623369,0.453106821 +-0.337973177,1.22491503,0.337973177,2.55992618e-05,0.533559799,0.827698469,0.821801305,2.38453436,0.0200136621,0.477977872 +-0.338978231,1.22510254,0.338978231,3.55546217e-05,0.532123327,0.828274608,0.810461402,2.38961744,0.0200170353,0.479399025 +-0.35891673,1.22532833,0.35891673,8.16499687e-06,0.492002249,0.820496142,0.483217061,2.5394187,0.0200782809,0.507625997 +-1.07585907,1.22533643,1.07585907,0.000359314377,0.265374899,0.215947703,1.01756239,-0.36438629,0.0209817216,1.52162743 +-0.330457777,1.22540212,0.330457777,1.93076412e-05,0.546179593,0.829016209,0.863072097,2.35506678,0.0199910924,0.467345059 +0.188303486,1.22541225,-0.188303471,0.000139387645,0.707383513,0.689144552,0.290640116,0.727081656,0.0196524523,0.266619325 +0.364999026,1.22545719,-0.364999056,7.38090894e-05,0.463288695,0.816754818,0.127994448,2.69642854,0.0206152946,0.516222835 +0.290913045,1.22551632,-0.290913075,4.79670016e-05,0.598989487,0.830101967,0.783702374,1.99933922,0.0200495962,0.411423802 +-0.338472754,1.2257272,0.338472754,2.25340937e-05,0.533269823,0.82957226,0.806543052,2.38685441,0.0200169683,0.47868523 +-1.21882761,1.22576845,1.21882761,0.000229615252,0.0761545897,0.0526527464,2.09412432,0.0921097323,0.0210294928,1.72382832 +-0.497038841,1.22579455,0.497038841,0.000611982134,0.309158891,0.523805916,-1.4693259,4.87159252,0.0206775069,0.703190207 +0.193423852,1.22583151,-0.193423867,0.000403567508,0.702307522,0.704460323,0.303507447,0.763234854,0.0196642261,0.273741513 +-0.357496351,1.22587073,0.357496381,3.21899752e-05,0.49502477,0.821878135,0.49986583,2.51875496,0.0200763866,0.505601525 +0.33400169,1.22588468,-0.33400169,4.54818073e-05,0.539064646,0.833768725,0.849063993,2.38753128,0.0203396045,0.472373456 +-0.282435596,1.22590113,0.282435596,0.000270100165,0.609263241,0.825676382,0.766368866,1.88373804,0.0198856294,0.399588764 +-1.22400999,1.22602212,1.22400999,0.000181986878,0.0523071103,0.0369863585,2.14296484,0.0102260876,0.0210399739,1.73115778 +-1.22874212,1.22604895,1.22874224,8.67597846e-05,0.0401947424,0.0419412814,2.00516963,-0.0176045299,0.0210464001,1.73785079 +-0.347273111,1.226053,0.347273111,1.40260163e-05,0.515776634,0.82453686,0.695059955,2.42586374,0.0200463701,0.491144031 +-0.394332051,1.22625411,0.394332051,0.00013107658,0.261148155,0.457090944,-2.41510487,4.74968147,0.0202212762,0.557796121 +1.20712578,1.22630417,-1.20712578,0.00016182517,0.102167651,0.0781282261,1.90371335,0.159980789,0.0210523773,1.70716441 +0.400230557,1.22633374,-0.400230527,7.49276369e-05,0.221578538,0.38837108,-2.86087608,5.08041096,0.0208634231,0.566015959 +-0.199844152,1.22643387,0.199844152,0.000454789028,0.694189608,0.7151407,0.327223897,0.813367009,0.019692488,0.283019155 +0.393010914,1.22653282,-0.393010944,8.76214326e-05,0.256773829,0.45481509,-2.4010551,4.65163898,0.0208330899,0.55581069 +-0.312197536,1.22677898,0.312197536,4.69550105e-05,0.573384047,0.830767632,0.847297311,2.24328136,0.0199459251,0.441571921 +0.53845185,1.22680056,-0.538451791,0.00085776794,0.212937549,0.328735173,-1.00467217,2.74989367,0.0212557111,0.761710107 +-0.339418709,1.22680116,0.339418709,3.39516919e-05,0.532140374,0.832515061,0.780107498,2.37970018,0.0200231262,0.48001641 +0.341039151,1.22690892,-0.341039151,1.78932551e-05,0.526410282,0.834129989,0.779089928,2.40464044,0.0204032473,0.48231101 +0.30778867,1.22693992,-0.30778867,2.45363099e-05,0.578162849,0.834887266,0.823741078,2.20941067,0.0201487895,0.435290635 +-0.949314475,1.22700143,0.949314475,0.00148326776,0.208891615,0.132732838,1.13050759,-0.379264414,0.0208634995,1.34272611 +0.30307591,1.22704315,-0.303075939,4.6851419e-05,0.585164189,0.836293995,0.822459102,2.16035223,0.0201194566,0.428710818 +-0.346645415,1.22708583,0.346645415,2.30077676e-05,0.517926514,0.827751815,0.682877898,2.41803575,0.0200471655,0.490249336 +1.20592093,1.22714341,-1.20592093,0.000278110179,0.105941854,0.0816848651,1.87344086,0.154552564,0.0210503042,1.70546699 +0.287167042,1.22732902,-0.287167072,7.13067566e-05,0.603886843,0.833328724,0.733573079,1.9629066,0.0200289898,0.406146467 +1.20126843,1.22733307,-1.20126855,0.000167117891,0.127425715,0.11611335,1.70405984,0.182785153,0.0210373271,1.69888735 +-1.20940018,1.22737288,1.20940018,0.000316682039,0.100509755,0.0762576461,1.89045393,0.126572207,0.020994179,1.71045387 +-0.304875582,1.22739267,0.304875582,4.12692716e-05,0.582166612,0.828802764,0.827218711,2.16611481,0.0199311022,0.431193292 +1.19739151,1.2274909,-1.19739151,7.01796525e-05,0.262234002,0.318493932,1.56051338,0.168739915,0.0210302547,1.69340444 +-0.348409384,1.2275964,0.348409384,2.91253727e-05,0.515048385,0.828089416,0.64552176,2.42640972,0.0200541709,0.492744207 +0.320170701,1.22764611,-0.320170701,2.37056884e-05,0.561527371,0.836700976,0.855423152,2.31987572,0.0202320479,0.452792585 +0.349792182,1.22772419,-0.349792182,1.69228333e-05,0.508399129,0.83382374,0.622348666,2.42247939,0.0204900019,0.494682312 +0.990379691,1.22786832,-0.990379691,0.00127581926,0.182216167,0.114259414,1.18773651,-0.401679456,0.0209885463,1.40074134 +0.336976647,1.22787952,-0.336976647,1.89178427e-05,0.534670711,0.837246299,0.808798492,2.38694286,0.0203677304,0.476581633 +-0.209372014,1.22797382,0.209372014,0.000337043079,0.684485793,0.740933657,0.363119334,0.956825435,0.0197198763,0.296337783 +-0.924568176,1.22801757,0.924568176,0.00193847902,0.220588088,0.138005987,1.03521299,-0.410630703,0.0208251867,1.30764902 +0.313824415,1.22802007,-0.313824415,2.55601844e-05,0.570718527,0.837446868,0.832886517,2.2662077,0.0201888643,0.443816185 +0.330470681,1.22812939,-0.330470681,2.67992582e-05,0.546063125,0.839081526,0.841127098,2.37731242,0.0203115456,0.467402518 +0.352812111,1.22827411,-0.352812082,2.63002912e-05,0.502034664,0.832229555,0.569155157,2.43417406,0.0205201767,0.498957187 +-0.549397707,1.22853422,0.549397707,0.000594083569,0.189210206,0.281397253,-0.934175372,2.04105902,0.0211428292,0.777001262 +0.425077975,1.22894835,-0.425078005,9.60662001e-05,0.192637965,0.320735037,-3.55205679,5.86699629,0.0208203439,0.601154804 +-0.63581109,1.22896147,0.63581109,0.00110956049,0.199974462,0.20554699,-1.02946961,0.120695122,0.0208144262,0.899312317 +0.35358721,1.22896767,-0.35358721,3.86725878e-05,0.500262737,0.833447158,0.538709581,2.43382716,0.0205288008,0.500053465 +-0.358773738,1.22897863,0.358773738,3.92056463e-05,0.492509216,0.835245073,0.375759333,2.48546124,0.0200884975,0.507391989 +0.322854072,1.22921133,-0.322854072,2.06759069e-05,0.558353782,0.839865804,0.835844219,2.34452224,0.0202519335,0.456590027 +-0.388360202,1.22930336,0.388360202,9.71425688e-05,0.261167109,0.463951379,-2.31412864,4.51836872,0.0201942064,0.549312949 +-0.346292853,1.22932673,0.346292853,2.56035219e-05,0.519804657,0.833675861,0.654861808,2.39973211,0.0200521927,0.489741623 +0.352475017,1.22943258,-0.352475017,2.38204825e-06,0.503408849,0.835693836,0.555067718,2.41996646,0.0205188915,0.498482049 +0.353092939,1.22956431,-0.353092939,1.42211593e-06,0.50174737,0.835856378,0.540205777,2.42041349,0.0205250736,0.499357402 +0.214110255,1.22962296,-0.214110285,0.000422984944,0.679765821,0.75917989,0.366736114,1.00903988,0.0197141208,0.303091198 +-0.424318135,1.22968471,0.424318135,0.000128780957,0.226575851,0.379666775,-3.29566598,5.58943415,0.0203421395,0.600254595 +0.919077337,1.22974896,-0.919077396,0.00353766629,0.215430304,0.130159765,0.99466145,-0.479791641,0.0208648443,1.30090451 +-0.221534789,1.22977257,0.221534789,0.000387774169,0.670662284,0.766406775,0.395694613,1.06440794,0.0197536144,0.313629091 +0.353552073,1.23000038,-0.353552043,1.19542829e-05,0.497890025,0.839050949,0.476928741,2.43957067,0.0205305982,0.500005722 +0.312375337,1.23009455,-0.312375337,1.14408431e-05,0.57382983,0.841769218,0.798729777,2.25957012,0.0201805532,0.44177267 +0.366849273,1.2301048,-0.366849273,5.39341563e-05,0.406527221,0.735457182,-0.581305265,3.09402943,0.0206534136,0.51882267 +-0.297581792,1.23010671,0.297581792,5.71242999e-05,0.590105355,0.831497252,0.743644476,2.09517074,0.019925097,0.420865893 +-0.348081648,1.23025608,0.348081648,3.07625887e-05,0.515173137,0.835330665,0.601696253,2.38565111,0.0200619865,0.492274404 +0.451697052,1.23030877,-0.451697052,0.000394818053,0.272960842,0.451027364,-3.20209932,5.64625931,0.0206738617,0.639353335 +0.312844157,1.23033595,-0.312844157,1.54309546e-05,0.573288798,0.842391908,0.795948207,2.2649622,0.0201837439,0.442435265 +0.376224637,1.23035347,-0.376224637,6.1645289e-05,0.363502294,0.676410854,-1.25997078,3.48128414,0.0207222681,0.532108665 +0.351666659,1.2303983,-0.351666629,2.6972124e-05,0.505313635,0.838262022,0.556281447,2.40915179,0.0205126461,0.497335196 +0.221893832,1.23040724,-0.221893817,0.000417873496,0.671571851,0.775239229,0.38594979,1.07650959,0.0197385028,0.314051807 +0.378977418,1.23043084,-0.378977388,7.69277685e-05,0.335197806,0.625436425,-1.6195457,3.73347282,0.0207488798,0.536011517 +0.352498591,1.23060417,-0.352498561,1.43150655e-05,0.503111541,0.838668048,0.537847996,2.40390015,0.0205209423,0.498513192 +0.335156262,1.23062158,-0.335156262,1.62297274e-05,0.538749397,0.843007565,0.793994844,2.38263249,0.0203532334,0.473995984 +0.286743253,1.23074198,-0.286743224,0.000130454238,0.604716837,0.838175893,0.685806751,1.97197056,0.0200276859,0.405578166 +-0.315246403,1.23076975,0.315246403,3.35765399e-05,0.570435643,0.837275445,0.799875855,2.28456545,0.0199596919,0.44586581 +0.311577588,1.2308023,-0.311577618,1.68226925e-05,0.574832022,0.842612267,0.783028126,2.25500202,0.0201759189,0.44064033 +-0.44466266,1.23082447,0.44466269,0.000265416224,0.25107497,0.414491743,-3.32388139,5.8091445,0.0203876887,0.629032314 +-0.308262795,1.23100376,0.308262795,2.55990926e-05,0.578901529,0.835813522,0.77834034,2.22306347,0.0199448075,0.435988963 +-0.325744838,1.23113716,0.325744867,1.96352157e-05,0.556696355,0.839972258,0.802409947,2.34499645,0.019987274,0.460682094 +0.381596267,1.23117173,-0.381596267,6.24605891e-05,0.312146813,0.576375246,-1.91365242,3.97619677,0.0207740013,0.539729536 +0.322179824,1.23147404,-0.322179854,3.32557352e-06,0.560732305,0.84482795,0.804336786,2.34750295,0.0202483777,0.455645829 +-0.352447689,1.2315706,0.352447689,3.32662567e-05,0.507727325,0.837238431,0.503018975,2.40493512,0.0200756527,0.498492301 +0.321508914,1.23175085,-0.321508914,2.21696591e-05,0.561721087,0.845124006,0.798184395,2.344244,0.0202440191,0.454695761 +-0.326472908,1.23188996,0.326472908,2.08791917e-05,0.555797994,0.841726303,0.79103142,2.34857011,0.0199908689,0.461710006 +-0.554548025,1.23198962,0.554548025,0.000601596374,0.175821677,0.253325313,-0.887457132,1.67616141,0.0211234745,0.784325659 +-0.235464782,1.23202682,0.235464782,0.000284244772,0.656115592,0.793239057,0.435112685,1.27138937,0.0197956264,0.333151281 +-0.325281143,1.23202777,0.325281143,2.95188147e-05,0.557337046,0.840874672,0.788082004,2.34736919,0.0199878979,0.46002382 +0.327821374,1.2320683,-0.327821374,3.59116857e-05,0.551070333,0.844891071,0.79018867,2.37954545,0.0202922784,0.463635862 +0.389789283,1.23207724,-0.389789283,5.94561243e-05,0.24425292,0.439020813,-2.66189599,4.63730812,0.0208349824,0.551254034 +-0.36751315,1.23211646,0.36751315,8.99544248e-05,0.445814133,0.820535302,-0.392189115,2.82566309,0.020116752,0.5198313 +-0.552684128,1.23212433,0.552684128,1.08814938e-05,0.17855002,0.260521173,-0.880648375,1.75899076,0.0211323593,0.781725705 +0.243546277,1.23216152,-0.243546292,0.000316992286,0.64993459,0.809243143,0.45319888,1.39481533,0.0198183842,0.344453514 +0.24481526,1.23219955,-0.244815275,3.10296018e-05,0.648536682,0.810731411,0.457286984,1.41004193,0.0198232848,0.346274436 +0.353599876,1.23236585,-0.353599906,2.90692042e-05,0.49184233,0.854539692,0.35242641,2.44468427,0.0205351654,0.500068486 +0.312784642,1.23243129,-0.312784642,2.08285273e-05,0.573012948,0.845194578,0.759757221,2.27391911,0.0201841407,0.442345768 +0.344095796,1.23246384,-0.344095796,4.19603493e-05,0.521737576,0.845423341,0.667234898,2.36783504,0.0204404015,0.486658037 +0.245841131,1.23246849,-0.245841116,0.000290036056,0.647322595,0.812001765,0.456331551,1.42167521,0.0198281333,0.347699404 +0.297602355,1.2325716,-0.297602355,4.25665057e-05,0.589747071,0.841550648,0.704707384,2.10999727,0.0200886969,0.420920223 +-0.30544892,1.23260176,0.30544892,3.48370595e-05,0.581828058,0.836531818,0.7416085,2.20476675,0.0199425556,0.432025313 +-1.1974926,1.23262453,1.1974926,5.29844219e-05,0.302099437,0.373282313,1.60972238,0.099718228,0.020921858,1.69365442 +0.305881232,1.23263073,-0.305881232,2.44007151e-05,0.582079351,0.845082343,0.730408967,2.21635771,0.020139413,0.432621896 +-0.362443507,1.23271596,0.362443507,4.65739504e-05,0.475161612,0.844834387,-0.0124391317,2.58787251,0.0201066863,0.512594461 +-0.595521688,1.23275113,0.595521688,0.00107941939,0.165064156,0.187441021,-1.10343432,0.400075138,0.0209510829,0.842362523 +0.359306574,1.2327646,-0.359306574,3.4054312e-05,0.477702737,0.856793404,0.127045035,2.47697926,0.020589795,0.508170307 +0.323007107,1.23278034,-0.323007107,2.52011923e-05,0.559735775,0.847117007,0.785926819,2.35498071,0.0202553123,0.456806928 +-1.2011342,1.23282433,1.2011342,0.000119245189,0.145294219,0.135080263,1.7199533,0.130645826,0.020943515,1.69880462 +-0.292222857,1.23297882,0.292222857,0.00013374479,0.596206427,0.83612901,0.679383576,2.04532385,0.0199199095,0.413307965 +-0.241559476,1.23303926,0.241559461,0.000294806843,0.648877859,0.801246703,0.44709006,1.33764994,0.019813003,0.341804147 +-0.326205671,1.23305202,0.326205671,2.27081764e-05,0.555982113,0.842554629,0.77801317,2.35473847,0.0199921019,0.461327583 +0.420357883,1.23332596,-0.420357883,0.000138604781,0.183494195,0.306357682,-3.70372033,5.76911545,0.0208449997,0.594486892 +0.338864863,1.23338652,-0.338864863,2.65998224e-05,0.533736706,0.850538313,0.719954729,2.36705375,0.020392457,0.479257464 +-0.312281996,1.23351049,0.312281966,2.69202937e-05,0.57282573,0.838008642,0.751508951,2.27717495,0.0199568402,0.441686541 +0.29179135,1.2335242,-0.29179135,9.29945818e-05,0.597646415,0.842278838,0.658492923,2.04196978,0.0200581979,0.412667692 +-1.20523489,1.23356819,1.20523489,0.00013030316,0.109207094,0.0859794766,1.85524988,0.138067514,0.0209606905,1.70459437 +0.299890101,1.2336086,-0.299890101,3.7356891e-05,0.587286592,0.843577027,0.696093023,2.14626861,0.0201024767,0.424150944 +0.332995892,1.23368287,-0.332995892,2.01536259e-05,0.543639958,0.849875867,0.771348953,2.37383842,0.0203374419,0.470953792 +0.394932717,1.23368633,-0.394932687,8.64189569e-05,0.193781346,0.34100014,-3.2331605,5.12232494,0.02087841,0.558553874 +-0.318368316,1.23375034,0.318368286,5.41570407e-05,0.566398442,0.841856241,0.758699179,2.32744932,0.0199719444,0.450280964 +0.635657907,1.23391867,-0.635657907,0.000990404049,0.204831392,0.207612023,-0.932955027,0.0443462729,0.0210020058,0.899857044 +0.321481347,1.23394585,-0.321481347,2.20366837e-05,0.561054766,0.847845972,0.759486198,2.35346961,0.0202443395,0.45465076 +-0.299713731,1.23397756,0.299713731,4.33793903e-05,0.587438345,0.836634934,0.693524957,2.13748121,0.0199364182,0.42388159 +1.21890569,1.23398471,-1.21890569,0.000236327993,0.0773462653,0.0535679534,2.22137189,0.0554930419,0.0210666042,1.72387695 +1.22428465,1.23399031,-1.22428453,0.000170022773,0.0540076494,0.0383818112,2.23620963,0.00265977811,0.0210683569,1.73148406 +1.22876692,1.23399484,-1.2287668,7.73595821e-05,0.0397710465,0.0425232127,2.07459736,-0.014971084,0.0210681986,1.73782337 +-0.356226623,1.23410475,0.356226623,2.97624829e-05,0.499263287,0.851885021,0.316358089,2.3973248,0.0200940277,0.503801227 +-0.334743559,1.23433816,0.334743589,1.98919879e-05,0.543211699,0.847686291,0.737144589,2.35386443,0.0200222079,0.473402709 +0.617454529,1.23436642,-0.617454529,0.00056248391,0.170783803,0.177696362,-1.02110696,-0.0599182732,0.0210817885,0.873220682 +-0.335200965,1.23442638,0.335200995,1.90667997e-05,0.542481303,0.84813565,0.730187058,2.35245824,0.0200241935,0.474047542 +-0.334591836,1.23451543,0.334591836,1.81157302e-05,0.543453336,0.84788698,0.736014247,2.35399818,0.0200221147,0.473187208 +0.318587869,1.23458862,-0.31858784,2.78624902e-05,0.565061331,0.848555624,0.740469873,2.33247709,0.0202249754,0.450554132 +0.396823615,1.23460698,-0.396823645,7.85475277e-05,0.187951341,0.328624725,-3.33259296,5.19104671,0.0208854154,0.56122303 +-0.488678694,1.23470867,0.488678694,0.00042211503,0.352588236,0.602805674,-1.5589658,4.41770983,0.0205718111,0.691273451 +-0.471014559,1.23478961,0.471014529,0.000283894478,0.363700926,0.607495666,-2.32341671,4.90637732,0.0204232857,0.666159809 +-0.553443432,1.23479438,0.553443432,0.000161918462,0.175769523,0.253720522,-0.834430873,1.65253258,0.0211146325,0.782799244 +-0.33399561,1.23488247,0.33399561,1.4714622e-05,0.544260204,0.847965002,0.733405471,2.35644555,0.0200208351,0.472342283 +-0.393349886,1.23488998,0.393349886,0.000127428895,0.194711179,0.337878078,-3.22149801,5.16278458,0.0202504639,0.556362271 +0.376351774,1.23494327,-0.376351774,7.12599576e-05,0.314776063,0.595576346,-1.84301543,3.8068614,0.0207476672,0.532266736 +0.336377382,1.23497748,-0.336377382,1.73718854e-05,0.538459003,0.853618145,0.726627231,2.3674531,0.02037015,0.475725889 +0.307659507,1.23500633,-0.307659507,4.1176987e-05,0.579494178,0.847984552,0.700639188,2.24273109,0.0201517195,0.435127795 +0.421110958,1.23506749,-0.421110958,8.44344686e-06,0.18031466,0.300355703,-3.79865408,5.79180765,0.0208430085,0.59557122 +-0.334525406,1.23507822,0.334525406,5.11798862e-06,0.543265998,0.848382473,0.731269062,2.35569525,0.0200229511,0.473092079 +-0.33503899,1.23508537,0.33503899,1.30836816e-05,0.54260993,0.849119723,0.727390289,2.35017657,0.020025203,0.473817676 +0.499783009,1.23518276,-0.499783039,0.000500262424,0.328031361,0.558211446,-1.36807299,3.89970422,0.020906033,0.707001805 +-0.374481112,1.23518598,0.374481112,7.10606982e-05,0.327555358,0.614294946,-1.64094496,3.73365068,0.0201517977,0.529601455 +0.361593246,1.23530781,-0.361593246,2.97324405e-05,0.464787483,0.860105932,-0.160414875,2.55935001,0.0206166692,0.511422276 +-0.342284739,1.23535657,0.342284709,5.00882816e-05,0.529826462,0.850948155,0.637342691,2.32767034,0.0200530179,0.484080076 +-0.296082616,1.23544157,0.296082616,4.55294721e-05,0.590672195,0.838379562,0.657940388,2.10552359,0.0199310277,0.418805361 +0.341492623,1.23554492,-0.341492623,3.92869915e-05,0.528129935,0.853423536,0.659226775,2.34660816,0.0204217099,0.482964098 +-0.454791248,1.23559046,0.454791248,0.000318030012,0.304045975,0.503410935,-3.10432339,5.3416605,0.0203965679,0.643378258 +0.330450594,1.23560584,-0.330450594,1.51433424e-05,0.547980785,0.852395356,0.746072054,2.37625265,0.020317426,0.467342794 +0.418928087,1.2356708,-0.418928117,9.67263768e-05,0.175749913,0.292823315,-3.82177186,5.77990246,0.0208546221,0.592461705 +0.302822769,1.23571539,-0.302822769,3.14593235e-05,0.584461153,0.847757459,0.666652083,2.19049311,0.0201216955,0.428273767 +-0.549640417,1.23580706,0.549640417,0.000523872091,0.183482543,0.271347016,-0.794939876,1.77000713,0.0211013816,0.777353764 +-0.309530079,1.23584127,0.309530079,2.76852388e-05,0.575383842,0.839470863,0.702869177,2.2637682,0.0199560542,0.437815964 +0.420879245,1.2359215,-0.420879275,4.97224537e-05,0.181397885,0.302324563,-3.814538,5.75306654,0.0208454784,0.595230341 +-0.358442336,1.23593462,0.358442307,1.37632669e-05,0.486011863,0.865031838,0.0822482631,2.44603276,0.0201043431,0.506954908 +0.333711356,1.23599529,-0.333711386,1.96775836e-05,0.542843878,0.854566216,0.739050627,2.3761909,0.0203452334,0.471979052 +-0.257228851,1.23609161,0.257228851,0.000232387742,0.631547928,0.820904016,0.463060707,1.56155372,0.019858459,0.363786757 +0.381527424,1.23617911,-0.381527424,7.47330632e-05,0.262235403,0.479807019,-2.43712187,4.33749771,0.0208127014,0.539585292 +-0.351151198,1.23650837,0.351151168,3.52224924e-05,0.509099722,0.849884927,0.433359921,2.32327509,0.0200886689,0.496639967 +-0.408582717,1.23652959,0.408582747,0.000193040934,0.170863032,0.284760356,-3.72731447,5.69427252,0.0203745328,0.577876806 +-0.25971067,1.23661113,0.25971067,4.53924367e-05,0.628714919,0.8242414,0.467010409,1.59937263,0.0198651422,0.367321521 +0.43623966,1.23662865,-0.43623966,0.000199956776,0.274705976,0.464382589,-3.27553678,5.01448917,0.0207287353,0.617033839 +-0.434586465,1.23663068,0.434586465,0.000247237622,0.226973012,0.37673986,-3.61789083,5.61655045,0.0204151273,0.614820957 +0.298341453,1.23668814,-0.298341423,5.56310551e-05,0.588678777,0.848292947,0.630488634,2.13980508,0.020095516,0.421993285 +-0.474574596,1.23677993,0.474574566,0.000191721381,0.35661307,0.596497715,-2.32032752,4.93117809,0.0204646327,0.671171963 +-0.260859817,1.23689353,0.260859817,0.000194685097,0.627458453,0.825790882,0.466554046,1.61772537,0.0198682304,0.36893034 +0.423310429,1.23695421,-0.423310429,0.000147222469,0.193637699,0.323185802,-3.77362967,5.63830328,0.0208262652,0.598658502 +-0.40406841,1.23702586,0.40406841,0.000141722412,0.17348139,0.291918159,-3.64605689,5.55405617,0.0203443132,0.57147032 +-0.557145417,1.2370491,0.557145357,0.000870923803,0.175259292,0.248882577,-0.829696834,1.52227521,0.0210927911,0.787968457 +-0.314646125,1.23712695,0.314646125,2.1243688e-05,0.568683386,0.842252672,0.686222017,2.31458664,0.0199702214,0.44499591 +0.419968754,1.23721766,-0.419968754,8.55996259e-05,0.18143779,0.302540094,-3.83373213,5.70263147,0.0208532214,0.593937337 +0.493371755,1.23728335,-0.493371755,0.000560206827,0.349398136,0.598912299,-1.46573234,4.12656832,0.0208003577,0.697967291 +-0.344501048,1.23738384,0.344501048,3.13090713e-05,0.52404952,0.855319917,0.556716204,2.29903698,0.020067608,0.487219691 +-0.298819691,1.23758352,0.298819691,5.69419826e-05,0.585721314,0.839655936,0.631594837,2.1416769,0.0199404582,0.422638774 +0.345971107,1.23772705,-0.345971107,3.40030711e-05,0.52035886,0.861748815,0.556141734,2.30157566,0.0204706062,0.489293307 +0.359778315,1.23781693,-0.359778285,5.71150995e-05,0.464573354,0.869506419,-0.195476085,2.50749969,0.0206045806,0.508849263 +0.325353682,1.23795748,-0.325353682,2.22885028e-05,0.555823684,0.85463959,0.721433222,2.38637066,0.0202734657,0.460147232 +0.312856019,1.23820066,-0.312856019,2.2687369e-05,0.572162628,0.85331893,0.663994789,2.30440283,0.0201861039,0.442460567 +-0.339846283,1.23832703,0.339846313,1.91074523e-05,0.53340435,0.855026603,0.645499349,2.32242155,0.0200511627,0.480624437 +-0.360858917,1.23834658,0.360858917,3.420539e-05,0.449500501,0.833118677,-0.386294246,2.68041468,0.02012082,0.510346293 +0.300736487,1.23837149,-0.300736487,5.73603756e-05,0.585120499,0.851957321,0.603161097,2.17478013,0.02010951,0.425357223 +0.327866018,1.238415,-0.327866048,2.50738449e-05,0.551829815,0.855433345,0.721738338,2.38661933,0.020294318,0.46368292 +-0.382612407,1.23845732,0.382612407,6.64115578e-05,0.222151101,0.395985246,-2.80887842,4.707829,0.020217387,0.541097939 +0.314230204,1.23850441,-0.314230204,1.41938854e-05,0.570237219,0.853673875,0.664714396,2.31755519,0.0201954357,0.444411874 +-0.322310835,1.2385869,0.322310835,2.97247552e-05,0.559643269,0.845879853,0.702621937,2.37322426,0.0199895296,0.45584169 +-0.940264106,1.23866284,0.940264106,0.00208385452,0.212069452,0.132786587,1.08621371,-0.421326458,0.0208486374,1.32996047 +0.265953213,1.23882627,-0.265953213,0.000269998505,0.62240386,0.839608133,0.443514973,1.70767415,0.0199185014,0.376159102 +-0.406954944,1.23885798,0.406954944,1.27140993e-05,0.167426959,0.278828174,-3.79936504,5.66697598,0.0203867052,0.575613201 +-0.304412305,1.23909712,0.304412305,2.72857287e-05,0.578207612,0.843013167,0.609964848,2.2051692,0.019954348,0.430526853 +-0.325291216,1.23915851,0.325291216,2.18792993e-05,0.555842757,0.848299325,0.702816129,2.38325238,0.0199988857,0.460042655 +-0.356156677,1.23918772,0.356156677,2.61323148e-05,0.49154222,0.88138181,0.129616335,2.32575297,0.0201115347,0.503695965 +0.364567995,1.23920751,-0.364567995,5.6381763e-05,0.393517911,0.742109358,-0.991390169,3.08314753,0.0206640679,0.515605152 +-0.329150349,1.23920918,0.329150349,3.21486878e-05,0.550423145,0.850106239,0.709914565,2.38075256,0.0200110525,0.465500236 +0.267820358,1.23924959,-0.267820328,0.000163142351,0.619911909,0.840566993,0.444112152,1.73272634,0.0199285988,0.378801286 +-0.880726039,1.23938632,0.880726039,0.00430476293,0.238775507,0.144936219,0.828089178,-0.495901287,0.0207643975,1.24631166 +0.369721413,1.23952723,-0.369721413,6.72874739e-05,0.336511791,0.645242274,-1.62852561,3.53649426,0.0207146164,0.522930264 +0.329496771,1.23954439,-0.329496771,1.57141221e-05,0.549194157,0.858161271,0.709264636,2.38968134,0.020307906,0.466006041 +-0.312665939,1.23955071,0.312665939,3.67304383e-05,0.570051432,0.843307018,0.643300176,2.3128705,0.0199694522,0.442201793 +0.34787789,1.23959565,-0.34787789,4.1485775e-05,0.515306771,0.867044091,0.493698657,2.26659775,0.0204919912,0.491996914 +0.562491536,1.23963165,-0.562491536,0.00134634064,0.160746396,0.220441386,-0.783843994,1.09480786,0.0212933701,0.795823514 +-0.334637642,1.23994279,0.334637642,1.74900433e-05,0.541839004,0.85575825,0.681536913,2.34808779,0.0200333633,0.473259032 +0.336824059,1.2403214,-0.336824089,2.42571823e-05,0.535692215,0.860982656,0.679096222,2.34369659,0.0203770008,0.47634685 +-0.469785988,1.24036503,0.469785959,0.000350647169,0.358363658,0.596812189,-2.48924804,4.85192299,0.0204173252,0.664409101 +0.315442175,1.24050665,-0.315442175,2.3486451e-05,0.567043364,0.855422676,0.635577917,2.33529234,0.020203853,0.446111947 +-0.275964469,1.24063337,0.275964469,0.000276702631,0.608807445,0.841075778,0.471295059,1.83695471,0.0199059434,0.390435696 +-0.337551326,1.2406528,0.337551326,1.83077318e-05,0.536643147,0.857911706,0.661027312,2.32622743,0.0200465787,0.477392554 +0.314048767,1.24094009,-0.314048767,1.75709356e-05,0.567705691,0.855633616,0.618717551,2.32219672,0.0201940089,0.444146097 +0.406178176,1.2410717,-0.406178176,0.000220007016,0.152420864,0.254673898,-3.97197008,5.67097569,0.0209231228,0.574525118 +-0.331393212,1.24128282,0.331393182,2.57289339e-05,0.545618057,0.853348315,0.692114353,2.38112545,0.020021949,0.46867764 +-0.363575041,1.24143362,0.363575041,4.68262951e-05,0.41196537,0.797175884,-0.898166776,2.91229892,0.0201370288,0.514232159 +0.335788846,1.2414887,-0.335788876,1.43441985e-05,0.537110388,0.862543285,0.677557349,2.34396839,0.0203676987,0.474890947 +0.329427451,1.24158072,-0.329427451,1.92724001e-05,0.547595263,0.859251738,0.686521888,2.39636517,0.0203073174,0.465895653 +-0.756354332,1.2415905,0.756354332,0.00264559546,0.261661977,0.16576615,-0.0283108968,-0.516147316,0.0207345784,1.07020903 +0.307733119,1.24163067,-0.307733119,2.31051381e-05,0.57403177,0.856033564,0.574328721,2.25680447,0.020152973,0.435207546 +-0.371878415,1.24163389,0.371878415,4.91975297e-05,0.299373537,0.569436371,-2.05120635,3.86049771,0.0201638155,0.52594012 +0.321647048,1.24170673,-0.321647048,2.19835892e-05,0.558780134,0.857733369,0.643350363,2.38652658,0.0202469751,0.454912096 +-0.322784483,1.24171448,0.322784483,1.67201561e-05,0.556717575,0.847487032,0.652456343,2.39715481,0.0199956857,0.456497788 +0.466337442,1.2418586,-0.466337442,7.75457447e-05,0.369642675,0.617919803,-2.54334354,4.37836075,0.0206706543,0.659682035 +-0.38405773,1.24189186,0.384057701,0.000105907107,0.180887327,0.321154565,-3.30665469,5.02899122,0.0202370174,0.543145716 +0.310738087,1.24193835,-0.310738117,1.81435935e-05,0.571045995,0.856972575,0.582573295,2.28937912,0.0201726779,0.439453542 +-0.306827724,1.24196088,0.306827724,3.31627089e-05,0.57371366,0.845255733,0.568737745,2.24207902,0.0199643075,0.433950454 +-0.348668158,1.24196911,0.348668158,4.50494226e-05,0.510729194,0.863249362,0.397858441,2.23085499,0.020098418,0.493118584 +-0.318459064,1.24199653,0.318459064,2.08600159e-05,0.560863853,0.845240772,0.625977397,2.37495613,0.0199857429,0.450386465 +-0.383459568,1.24202073,0.383459538,1.09332939e-06,0.183860436,0.327189296,-3.27501607,4.99533606,0.0202354696,0.542309403 +0.341786623,1.24223661,-0.341786623,1.92982043e-05,0.522195339,0.863343596,0.593855202,2.26835489,0.0204333812,0.483364791 +0.00438441336,1.24233532,-0.00438441243,0.000620307459,0.747606158,0.498862177,-0.047902666,0.0132870516,0.0195823349,0.0234977268 +-0.0241147764,1.24234021,0.0241147764,0.000174165354,0.746822,0.500844419,-0.0482542478,0.0184207484,0.0195793174,0.0356032662 +-0.0208034087,1.24235129,0.0208034106,0.00047795524,0.74701035,0.500382006,-0.0485324897,0.0169153214,0.0195796005,0.0328161754 +-0.383093834,1.24237299,0.383093834,4.10312859e-05,0.182957798,0.326239705,-3.27855539,4.98703957,0.0202358123,0.541786075 +-0.372748822,1.24237657,0.372748792,5.61224842e-05,0.280178517,0.533782601,-2.24091315,3.99557614,0.0201686379,0.527168036 +-0.0598794334,1.24238479,0.0598794334,0.00042199099,0.740976632,0.513200879,-0.0372588597,0.0573977754,0.0195762217,0.0858463496 +-0.0311267897,1.24240029,0.0311267897,0.000448512146,0.745872378,0.502884388,-0.0466162115,0.0249472223,0.0195786674,0.0443767235 +-0.40855068,1.24241424,0.40855068,0.000134288464,0.176241189,0.294411689,-3.84649825,5.49763441,0.0204103813,0.577818215 +-0.315974891,1.24246013,0.315974891,2.82884448e-05,0.563566267,0.844941437,0.606509924,2.35622907,0.0199816376,0.446864247 +-0.472884744,1.24252188,0.472884744,0.000232525766,0.366322517,0.613383591,-2.30042815,4.56968594,0.0204243232,0.668800831 +-0.352053791,1.24253976,0.352053791,2.97314764e-05,0.497301698,0.890575528,0.171643138,2.24620628,0.0201121084,0.497905076 +0.335259646,1.24254441,-0.335259616,1.42769095e-05,0.537100673,0.862728298,0.666543245,2.351475,0.0203627143,0.474136233 +0.357652217,1.24254894,-0.357652187,5.8824342e-05,0.457356542,0.886295617,-0.348980814,2.4990449,0.0205921642,0.505812883 +0.33616522,1.24260497,-0.33616519,1.97932313e-05,0.535638571,0.863992393,0.667266071,2.33777571,0.0203716643,0.475416124 +0.352048755,1.24263763,-0.352048755,4.25995859e-05,0.48040241,0.892742753,-0.0263692737,2.41356206,0.0205390528,0.497884989 +-0.0510045737,1.24268985,0.0510045737,0.000474378583,0.743167698,0.50932312,-0.0411943793,0.0453995652,0.019576719,0.0739426464 +-0.342331469,1.24270904,0.342331469,9.30631813e-06,0.523189127,0.861152291,0.573595166,2.2547164,0.0200762283,0.484136701 +-0.076404959,1.24274969,0.076404959,0.000553450373,0.736617088,0.522591829,-0.0290550441,0.0851460248,0.0195758641,0.110172659 +-0.383531332,1.24281132,0.383531332,3.1056843e-05,0.17669338,0.313546032,-3.34734726,5.04878998,0.0202439465,0.542406738 +0.343773395,1.2428807,-0.343773395,1.66073387e-05,0.519016266,0.866083324,0.551023602,2.25210285,0.0204546526,0.486173362 +-0.361184925,1.2430017,0.361184955,4.1158095e-05,0.424186707,0.822351515,-0.77236712,2.76114893,0.0201388914,0.510827482 +0.326754689,1.24308121,-0.326754689,1.60882992e-05,0.549586356,0.85842222,0.639612913,2.40602112,0.0202855561,0.462108135 +0.386440128,1.2431531,-0.386440128,0.000101850739,0.162730142,0.288806856,-3.54610682,5.19044685,0.0208927821,0.546603799 +0.0644011796,1.24318445,-0.0644011796,2.08838828e-05,0.741998136,0.51685673,-0.033457417,0.082854718,0.0195839629,0.0912124738 +0.0651624277,1.24318862,-0.0651624352,0.000372493378,0.741810441,0.517372191,-0.0331265666,0.0839447901,0.0195840262,0.0922089964 +0.0637633875,1.24319983,-0.0637633875,0.000381547143,0.742125034,0.516606212,-0.0336794257,0.0819615945,0.0195839349,0.090295136 +0.0406090952,1.2434175,-0.0406090952,0.000555174949,0.745575249,0.507895827,-0.0411637947,0.0466047153,0.0195836183,0.0602441728 +0.37352401,1.24343097,-0.37352401,8.50747965e-05,0.248380855,0.474173695,-2.52295732,4.20167542,0.0207692385,0.52829808 +-0.326483697,1.24343324,0.326483697,1.46542225e-05,0.549761534,0.848684371,0.649022937,2.41890979,0.0200082008,0.461724102 +-0.340844333,1.24346995,0.340844363,1.50528676e-05,0.526302814,0.862449884,0.587588251,2.26187611,0.0200718082,0.48203063 +0.319449544,1.24358749,-0.319449544,3.6661444e-05,0.559688687,0.858530223,0.597843349,2.38387012,0.0202306267,0.451794207 +0.280593455,1.24361241,-0.280593455,0.000177744412,0.602659702,0.853030443,0.417238444,1.89732981,0.0199948009,0.396879047 +0.0876763314,1.24366117,-0.0876763314,0.000661378843,0.735718012,0.532543361,-0.0220583174,0.127828062,0.0195855778,0.125436604 +-0.404575169,1.2437464,0.404575229,0.000113208182,0.161410585,0.268060625,-3.92400527,5.60529375,0.0204409063,0.572176576 +-0.146141723,1.24375892,0.146141723,0.000401949219,0.706535161,0.600751758,0.0336828902,0.34964636,0.0196043942,0.206778377 +-0.319696963,1.24377918,0.319696993,1.51213053e-05,0.558218956,0.846752107,0.602249801,2.3939929,0.0199915804,0.452127814 +-0.317665726,1.24379742,0.317665726,4.96425037e-06,0.560341775,0.846366525,0.588264406,2.37934613,0.0199870188,0.449275106 +-0.147221014,1.24380279,0.147220999,6.63968531e-05,0.705843151,0.602783561,0.0346757695,0.351461709,0.0196052715,0.208303705 +0.0164361093,1.2438432,-0.0164361093,0.000386765692,0.748141646,0.503508329,-0.0469664969,0.0203873143,0.0195829608,0.0280398149 +-0.371328026,1.24386322,0.371327996,5.55561201e-05,0.274513602,0.526346922,-2.27327347,4.00942469,0.0201745611,0.525147974 +0.0288916118,1.24389744,-0.0288916118,0.000377545075,0.747420192,0.50598681,-0.0442923084,0.0335269645,0.0195831489,0.042773217 +-0.150585383,1.24390268,0.150585383,0.000394717907,0.703651071,0.612006247,0.038993299,0.373715967,0.0196109097,0.212984949 +0.133247867,1.24390674,-0.133247867,0.000615759869,0.716691017,0.581221282,0.0179872364,0.284361303,0.019596478,0.189395785 +-0.117789403,1.24390721,0.117789403,0.00038091559,0.720653713,0.55995357,0.000854399637,0.207238123,0.019582931,0.166970968 +0.342343211,1.24399209,-0.342343211,2.38750158e-06,0.520174861,0.865960181,0.567750156,2.24981594,0.0204412881,0.484158158 +-0.121415436,1.24401259,0.121415429,0.000438816351,0.718819261,0.564651787,0.00364692556,0.213968411,0.0195840634,0.17204541 +0.156883791,1.24403334,-0.156883806,0.000164055658,0.703517854,0.624039769,0.0493692309,0.43856591,0.0196126718,0.222089589 +0.153832287,1.24404752,-0.153832272,0.000365259068,0.70536983,0.619075716,0.0439866707,0.413382083,0.0196107812,0.217663512 +-0.354574829,1.24405789,0.354574829,3.56871024e-05,0.483886153,0.900709152,-0.0377514474,2.26108408,0.0201253723,0.501478314 +0.107103266,1.24407423,-0.107103266,0.000354017568,0.729042888,0.550055087,-0.00955399871,0.178036198,0.0195887573,0.151689127 +0.114037819,1.24407601,-0.114037819,0.000351319846,0.726137459,0.557140589,-0.00275296182,0.209735334,0.0195904467,0.161423385 +-0.343479216,1.24416673,0.343479246,2.27639466e-05,0.519833982,0.863320291,0.528380036,2.235852,0.0200850628,0.485762119 +-0.304791331,1.24419689,0.304791361,6.1736202e-05,0.573908508,0.84689492,0.523579359,2.22810268,0.0199634209,0.43108502 +0.520657778,1.24421024,-0.520657778,0.000560709683,0.251419455,0.415454835,-0.703533173,2.49646306,0.021128349,0.736784816 +0.110511176,1.24422061,-0.110511176,0.000107621912,0.727730155,0.552841365,-0.00722397352,0.188926071,0.0195892025,0.156578794 +0.307888985,1.24433208,-0.307889014,4.65946468e-05,0.571866512,0.859492779,0.521451712,2.26496887,0.0201545004,0.43544203 +-0.093829751,1.24438679,0.093829751,0.000313093013,0.731310129,0.53778547,-0.0210800469,0.123050675,0.0195768774,0.132918954 +-0.28622666,1.2443912,0.28622666,0.000133142225,0.594945371,0.849631846,0.434546769,1.97797489,0.0199346822,0.404827476 +0.164261699,1.24443996,-0.164261699,0.00039331126,0.698504686,0.645316422,0.0602186359,0.516698003,0.0196224786,0.232335836 +0.341296971,1.24453616,-0.341296941,1.36982262e-05,0.52171725,0.865995765,0.57956779,2.26017404,0.0204299241,0.482673287 +-0.0966599286,1.24457908,0.096659936,0.000363121013,0.730262816,0.540222406,-0.0195058659,0.127668545,0.0195769519,0.136915281 +-0.32984522,1.24458456,0.32984522,6.79442428e-06,0.544039011,0.851883352,0.662671447,2.40804267,0.0200214088,0.466472924 +0.470087796,1.2447089,-0.470087767,0.000292629178,0.379506677,0.640411556,-2.394701,4.08246326,0.0206930544,0.665012181 +-1.20854068,1.24472702,1.20854068,0.000245109899,0.10172274,0.0774497464,1.95233119,0.0816486254,0.0209475029,1.70926571 +0.33167696,1.2447896,-0.33167696,1.55861144e-05,0.541549504,0.861994207,0.661461234,2.39418697,0.0203271359,0.469092041 +-0.172873348,1.24482965,0.172873348,0.000443654339,0.688404262,0.658906519,0.0705475807,0.528970718,0.0196463391,0.245045245 +-0.342531234,1.24484777,0.342531234,6.27487316e-06,0.521304429,0.864498794,0.547978401,2.23139906,0.0200836156,0.484424472 +0.760318756,1.24486125,-0.760318756,0.00344910077,0.254019111,0.157718688,0.0212198012,-0.537401676,0.0208183136,1.07555103 +-0.444812924,1.24487615,0.444812924,0.000167364618,0.310579389,0.521567106,-3.18655157,4.60207939,0.0203660149,0.629228354 +-0.422051191,1.24487936,0.422051191,9.39887832e-05,0.199192867,0.333516598,-3.94046378,5.37926102,0.0204554796,0.596896529 +0.324201018,1.24511123,-0.324201018,1.66835453e-05,0.551590741,0.859537065,0.597285628,2.41576719,0.0202645976,0.45850876 +0.285635114,1.24516177,-0.285635114,0.000102114886,0.595252335,0.856501281,0.405923575,1.95858598,0.0200238246,0.403960973 +-0.330282211,1.24516499,0.330282182,9.93408867e-06,0.542920351,0.852450311,0.657647431,2.4091289,0.0200237911,0.467091501 +-0.341524869,1.24516749,0.341524869,5.45581406e-06,0.522910595,0.863988638,0.565312922,2.24477959,0.0200794619,0.482999891 +-0.329922855,1.24517,0.329922855,2.26927682e-06,0.543400764,0.852102876,0.656154275,2.41132379,0.020022504,0.466583937 +0.381252408,1.24517643,-0.381252408,7.55385336e-05,0.170964986,0.310499132,-3.39911461,4.98655224,0.0208657272,0.539226055 +0.34428075,1.24523127,-0.34428072,1.32000914e-05,0.513725221,0.881323934,0.474182725,2.20582318,0.020464791,0.486890495 +-0.180080056,1.24526119,0.180080056,0.000364675565,0.683823466,0.680213094,0.08299914,0.63378799,0.0196644198,0.255037785 +-0.33706224,1.24528742,0.33706221,1.45868053e-05,0.532048821,0.860731483,0.648665547,2.31910014,0.0200550873,0.476681143 +-0.324669927,1.24530518,0.324669927,9.30994884e-06,0.55037111,0.848175943,0.612264216,2.42914319,0.0200059172,0.459159195 +0.341831565,1.24534595,-0.341831565,4.60637966e-06,0.518942893,0.86710149,0.57158047,2.24207878,0.0204359796,0.483430415 +0.3427549,1.24538636,-0.3427549,1.40508482e-05,0.516404748,0.868895292,0.544554293,2.21818948,0.0204483606,0.484733552 +0.463274091,1.24541605,-0.463274091,0.000300724234,0.36592868,0.611997843,-2.65424347,4.26788378,0.0206539799,0.655334055 +0.30932039,1.2454226,-0.30932039,3.25811307e-05,0.568867624,0.861016631,0.502840459,2.28129721,0.0201633815,0.437457472 +-0.326056838,1.24547744,0.326056808,5.33178991e-06,0.548504531,0.849076152,0.620509505,2.43413401,0.0200096164,0.461126387 +-0.329879135,1.24561274,0.329879135,6.06280537e-06,0.542774737,0.85195899,0.649013162,2.41521192,0.0200228468,0.466520846 +0.348939776,1.24567223,-0.348939776,2.22915151e-05,0.502204418,0.899493635,0.303595483,2.1495595,0.0205155276,0.493496776 +0.395521164,1.24568892,-0.395521164,4.63599026e-05,0.152599826,0.25879702,-3.88402748,5.42885542,0.0209427923,0.559353769 +-0.364229083,1.24569106,0.364229053,5.69255863e-05,0.341963232,0.668870211,-1.55354393,3.3875289,0.020162819,0.515123904 +-0.290097207,1.24573338,0.290097177,5.77676037e-05,0.589098692,0.851118028,0.425827265,2.03202939,0.0199443735,0.410338938 +0.183218807,1.24576914,-0.183218807,0.000320962747,0.684286594,0.687285662,0.0867916122,0.680410564,0.0196448099,0.259486884 +-0.352465868,1.24591529,0.352465868,2.11767474e-05,0.488228858,0.908748448,0.0514200889,2.18463182,0.0201296564,0.498487622 +-0.342257261,1.24596357,0.342257261,2.60920715e-05,0.519257307,0.866627812,0.550683022,2.21645069,0.0200870559,0.484033763 +0.322291017,1.24609184,-0.322291017,1.35717892e-05,0.553097963,0.859982789,0.569308639,2.41039896,0.0202505458,0.455801964 +-0.635599017,1.24616182,0.635599017,5.78525651e-05,0.199480444,0.194621101,-0.947044015,-0.0991514847,0.0208080523,0.89925313 +0.317281365,1.24621475,-0.317281365,2.15919554e-05,0.558528662,0.861115217,0.525389075,2.365062,0.0202162508,0.448737115 +0.186972678,1.24621546,-0.186972678,0.000120547018,0.680739462,0.698560655,0.0895443112,0.683207095,0.0196503997,0.264741719 +0.355774701,1.24624228,-0.35577473,1.53269721e-05,0.454514086,0.896012723,-0.419028938,2.46158171,0.0205836371,0.50317657 +-0.423377752,1.24630451,0.423377782,0.000122942292,0.203929275,0.341664106,-3.96332264,5.33178759,0.0204581954,0.598773599 +-0.330728054,1.24638081,0.330728054,9.27533256e-06,0.540264547,0.852761149,0.651695013,2.40996599,0.020027142,0.467720687 +0.192064136,1.24640393,-0.192064121,0.000333070173,0.6759547,0.713392735,0.0973288566,0.716124415,0.0196614917,0.27182287 +-0.396236748,1.24643159,0.396236777,0.000131025765,0.170659006,0.288769156,-3.76305628,5.32240295,0.0204284079,0.56041801 +-1.19572878,1.24649894,1.19572878,6.8386893e-05,0.377883017,0.447845668,1.3680582,-0.0414075106,0.0208940748,1.69113505 +-0.335923314,1.24656391,0.335923314,1.51187223e-05,0.532490432,0.860598028,0.649206817,2.33015156,0.0200527608,0.475072742 +-0.325379282,1.24661386,0.325379282,6.404145e-06,0.547651231,0.84885031,0.593140483,2.43930054,0.0200094394,0.460171074 +-0.310926318,1.2467047,0.310926318,1.91722229e-05,0.563624799,0.848394275,0.497473598,2.30016875,0.0199795011,0.439718485 +-0.19830507,1.24683774,0.19830507,0.000367852568,0.668639123,0.726689816,0.103247583,0.758110166,0.0197105482,0.280835062 +-0.32665655,1.24690378,0.32665658,8.62378965e-06,0.545418203,0.849348962,0.603425801,2.44277859,0.0200132653,0.461968243 +-0.322376668,1.24691296,0.322376698,1.53929959e-05,0.550146997,0.84641546,0.559749126,2.43259287,0.0200019293,0.45591855 +0.292307198,1.24693859,-0.292307198,7.45186771e-05,0.585771561,0.861578226,0.396137267,2.04960299,0.0200606007,0.413458467 +0.441663623,1.24699724,-0.441663623,0.000307163602,0.286909908,0.482531667,-3.54879451,4.73006821,0.020699909,0.624776661 +-0.2929627,1.24701595,0.2929627,8.07193574e-05,0.583705723,0.851819336,0.409540415,2.06177902,0.0199524183,0.414354742 +-0.336820722,1.24708271,0.336820722,7.814811e-06,0.530459702,0.861995816,0.643205166,2.31711411,0.0200578719,0.476345152 +-0.518836021,1.24714363,0.518836021,0.001238244,0.250283629,0.413708448,-0.574682713,2.53370047,0.0208646003,0.734249353 +0.437589884,1.24716902,-0.437589914,8.74593243e-05,0.271808714,0.458824456,-3.63097835,4.81127787,0.0207163077,0.6190207 +0.352714628,1.24729872,-0.352714628,2.13197327e-05,0.471510172,0.904927611,-0.154830366,2.3153944,0.0205556639,0.49882561 +-0.317624152,1.2473594,0.317624152,2.5721065e-05,0.554292679,0.848164737,0.509040654,2.38181114,0.0199934021,0.44919464 +-0.309636891,1.24740148,0.309636891,2.86661398e-05,0.564241529,0.848998427,0.477846503,2.28474808,0.0199786611,0.437895477 +-1.21864033,1.2474997,1.21864033,0.000264400907,0.0753678381,0.0519107319,2.19152308,0.0321825482,0.0209739897,1.72360182 +0.329805106,1.24750865,-0.329805136,1.55082125e-05,0.541258097,0.861618817,0.621884942,2.42237282,0.0203087721,0.4664267 +0.32454741,1.24753904,-0.32454741,1.75029691e-05,0.548149347,0.8597821,0.561483204,2.42959738,0.0202666093,0.458994269 +-0.207326993,1.24754012,0.207326993,0.000266915653,0.662001073,0.752668798,0.117964342,0.892470717,0.0197390653,0.293440342 +-1.19963539,1.24758828,1.19963551,0.000155258633,0.182593763,0.167388663,1.59479558,-0.00931400433,0.0209162403,1.69666028 +0.327379644,1.24758863,-0.327379644,1.28366937e-05,0.544329047,0.860634923,0.594192505,2.42542124,0.0202893615,0.462990433 +-0.33754015,1.24770164,0.33754015,7.17777402e-06,0.527240217,0.864808559,0.629207253,2.29182911,0.0200647023,0.477361053 +-1.22389197,1.24778986,1.22389197,0.000207437886,0.0520530865,0.0361194313,2.22825766,-0.00992089324,0.0209851023,1.73102951 +-0.31049788,1.24780655,0.31049788,7.07685194e-06,0.562765121,0.849447608,0.472521156,2.29612756,0.0199807845,0.439117372 +-1.01139593,1.24781382,1.01139593,0.00164260063,0.17584312,0.114773713,1.17969966,-0.297595322,0.0209721997,1.43075156 +-1.22872066,1.24784672,1.22872066,9.83368009e-05,0.040090844,0.0419190079,2.07662106,-0.023245452,0.0209911801,1.73785901 +-0.421636134,1.2478528,0.421636134,0.000102152764,0.201299474,0.337425709,-3.99938607,5.28096437,0.0204727035,0.596303046 +0.294851959,1.24792767,-0.294851959,7.98573383e-05,0.581770301,0.864416242,0.381046981,2.07888317,0.0200745314,0.417034537 +0.211995751,1.24814832,-0.211995751,0.000341954088,0.658343792,0.767324686,0.12880297,0.940642536,0.0197077189,0.300098479 +0.357120126,1.24816751,-0.357120126,3.44341861e-05,0.411719739,0.83578217,-0.851158082,2.72539091,0.0206053555,0.505071402 +0.488973379,1.24822414,-0.488973349,0.000391958805,0.370669425,0.633383453,-1.41019368,3.15054893,0.0207535625,0.691629529 +-0.219166398,1.24838877,0.219166398,0.000305303693,0.651068568,0.780498087,0.136659801,0.984877944,0.0197739359,0.310280919 +0.328930885,1.24853063,-0.328930885,5.85962516e-06,0.540883243,0.861079335,0.596078098,2.43286848,0.020300867,0.465190172 +-0.423083603,1.24853742,0.423083603,0.000103912847,0.210076571,0.353082538,-3.96535206,5.15790462,0.0204608571,0.598356128 +0.219462961,1.24853802,-0.219462961,0.000330696726,0.651129246,0.783534229,0.13984412,0.998543918,0.0197299719,0.310615152 +-0.311853081,1.24854457,0.311853081,2.78463231e-05,0.559758186,0.849667192,0.462036967,2.31348777,0.0199845061,0.441028565 +0.338034809,1.24855387,-0.338034809,2.00760151e-05,0.522488952,0.869497836,0.627780795,2.26270103,0.020391915,0.478068173 +-0.335149378,1.24859262,0.335149378,1.50263113e-05,0.530241847,0.85821259,0.639746189,2.35520983,0.020050915,0.473974466 +-1.20412409,1.24861884,1.20412409,0.000257938897,0.122573584,0.0956368595,1.82058275,0.0432612076,0.0209358037,1.70300007 +0.314589351,1.24862766,-0.314589351,5.48704556e-05,0.557891428,0.862948596,0.459585935,2.3428936,0.0201970749,0.444946796 +-0.348123223,1.24905443,0.348123223,1.70544063e-05,0.495007873,0.907380164,0.240004092,2.08004141,0.0201306529,0.492322266 +-0.322506964,1.24913168,0.322506964,8.44946499e-06,0.546592236,0.846704423,0.517494798,2.44675374,0.0200050827,0.456114769 +0.349385142,1.24917436,-0.349385142,2.48604956e-05,0.491371274,0.92291677,0.16051057,2.10003281,0.0205257982,0.494118273 +-0.3479698,1.24923396,0.3479698,2.19506978e-06,0.495097488,0.907986522,0.241556048,2.07782483,0.0201307423,0.492105842 +0.239860788,1.24931407,-0.239860788,0.000245991745,0.633869171,0.820746124,0.1691771,1.28402853,0.0198026728,0.339236557 +0.240830272,1.24931943,-0.240830258,2.01704242e-05,0.632865071,0.822013617,0.170901939,1.2959193,0.0198063627,0.340629429 +-0.348163545,1.24937701,0.348163515,9.90893932e-06,0.494137973,0.909071624,0.228457496,2.07416725,0.020132333,0.492379248 +-0.232385367,1.24940753,0.232385367,0.000218917092,0.640297771,0.810046256,0.154614866,1.16692448,0.0198165029,0.328793466 +0.241625175,1.24941838,-0.241625175,0.000224638439,0.632067263,0.823075712,0.170830041,1.30386472,0.0198100023,0.341732413 +-0.347858906,1.24942636,0.347858906,1.14503655e-05,0.494921684,0.90776217,0.245118782,2.07617188,0.0201310068,0.491948426 +-0.37999028,1.24943042,0.37999028,3.71518108e-05,0.146897316,0.259177327,-3.63836622,5.2698822,0.020322144,0.537387848 +-0.327908099,1.24949098,0.327908099,2.35918524e-05,0.538683832,0.847630382,0.578388393,2.46436667,0.020019291,0.463747978 +0.384534299,1.24953556,-0.384534299,7.25519494e-05,0.135969996,0.236947209,-3.86495829,5.37167549,0.0209215004,0.543861091 +-0.34802404,1.2495966,0.34802404,7.49976562e-06,0.493837297,0.91151768,0.229143992,2.06975985,0.0201332718,0.492182255 +0.340913057,1.24967086,-0.340913057,1.29938453e-05,0.513055563,0.873645186,0.561517,2.18848848,0.0204280075,0.482134968 +-0.644025028,1.249681,0.644024968,0.00184788194,0.205036804,0.193346903,-0.882619202,-0.169459671,0.0207987241,0.910999537 +0.333872378,1.2498312,-0.333872378,9.15357123e-06,0.530161619,0.864816904,0.638974905,2.37094212,0.0203450862,0.472168118 +-0.324816942,1.24983692,0.324816942,8.26643554e-06,0.541108012,0.847336769,0.513487637,2.44466305,0.0200120993,0.459365666 +0.333664447,1.24984777,-0.333664447,1.13087372e-05,0.530459523,0.864587128,0.63869983,2.37408161,0.0203430131,0.471874207 +-0.238070548,1.24985456,0.238070548,0.000220598129,0.634482503,0.818733215,0.163209409,1.22275901,0.019833412,0.336868763 +0.346601427,1.249928,-0.346601427,1.54218887e-05,0.494847775,0.909753382,0.28064391,2.11580086,0.0204964671,0.490184486 +0.333786041,1.2500807,-0.333786011,1.34388756e-06,0.529860497,0.864751399,0.638234854,2.37271476,0.0203439705,0.472046077 +0.33888185,1.25027525,-0.33888185,1.24761091e-05,0.517302752,0.871497333,0.615100086,2.22875261,0.0204014536,0.479268432 +0.33348906,1.25029588,-0.33348909,7.643233e-06,0.529917002,0.864184082,0.631554067,2.37976551,0.0203408729,0.471625298 +-0.45446533,1.25035191,0.45446533,0.000340911327,0.364981502,0.615197003,-2.96836185,4.07642508,0.0203730222,0.642898798 +0.334101081,1.25037587,-0.334101111,6.76876834e-06,0.528353453,0.865525305,0.639962673,2.36107588,0.0203472376,0.472490698 +0.329993963,1.25039124,-0.329993963,1.02804725e-05,0.535571039,0.86086452,0.590847135,2.43743038,0.0203075241,0.466686547 +-0.319851249,1.25039136,0.319851249,1.60328218e-05,0.546860278,0.847537756,0.464744449,2.41514921,0.0200027041,0.452345073 +0.396948457,1.25047803,-0.396948427,4.62848766e-05,0.13438946,0.223302931,-4.18483829,5.5987587,0.0209684167,0.561377883 +-0.339793593,1.25069404,0.339793593,9.675939e-06,0.512550592,0.866800606,0.606074572,2.21472716,0.0200880952,0.480541557 +-0.332926452,1.25071955,0.332926482,7.15403803e-06,0.529524207,0.852673113,0.63509357,2.41078019,0.020041449,0.470836163 +-0.331794292,1.25072217,0.331794262,8.80390144e-06,0.531196475,0.85157299,0.616661072,2.42542553,0.0200363602,0.469235539 +0.354780525,1.25080097,-0.354780525,2.42646893e-05,0.416876346,0.873100638,-0.747485578,2.58174181,0.0205895435,0.501746058 +0.344106019,1.25082314,-0.344106019,2.11475872e-05,0.498371661,0.894384921,0.427536577,2.09676266,0.0204693768,0.486669213 +-0.350744545,1.25083709,0.350744516,1.31923862e-05,0.447257936,0.865152299,-0.30760172,2.41071606,0.0201521628,0.496027768 +0.537918687,1.25090313,-0.537918746,0.000495841028,0.211506829,0.320858896,-0.613393664,1.33109331,0.0211344473,0.76102829 +-0.316824466,1.25098968,0.316824466,2.08956808e-05,0.549083591,0.849164546,0.429934978,2.38072562,0.0199969634,0.448082387 +0.393844485,1.25101173,-0.393844485,5.20434442e-05,0.134646371,0.226325721,-4.12931156,5.52722645,0.0209634658,0.556986868 +0.59902215,1.25107098,-0.59902215,0.000785031531,0.16382736,0.178439662,-0.832855344,-0.0221161693,0.0211712699,0.847188711 +0.552724004,1.25107467,-0.552724004,0.000473693945,0.171147108,0.241642728,-0.603250444,0.920455933,0.0212268047,0.782193899 +0.366065145,1.25107718,-0.366065145,4.20668475e-05,0.230054587,0.456594586,-2.64678097,4.22907734,0.0207324792,0.517695427 +-0.33801052,1.25108731,0.33801049,1.02810727e-05,0.51631856,0.866561115,0.634764969,2.2460556,0.020078769,0.478019774 +0.365394384,1.25111604,-0.365394354,2.25458116e-05,0.239634871,0.476134598,-2.55013728,4.14933968,0.0207243096,0.516746342 +-0.252480567,1.25112665,0.252480567,0.000178087794,0.621458352,0.841148376,0.177964389,1.407691,0.0198755357,0.357073367 +0.36579296,1.25112927,-0.36579296,1.21555622e-05,0.232473955,0.461466372,-2.61766863,4.2074337,0.0207296703,0.517311275 +0.395321369,1.25115907,-0.395321369,5.01327258e-06,0.135570288,0.226098329,-4.16143942,5.55197239,0.0209688712,0.559088469 +0.365854383,1.25135505,-0.365854383,1.65222744e-07,0.228894591,0.454764903,-2.65607929,4.23529339,0.0207311548,0.517399788 +-0.255264521,1.25139105,0.255264521,4.11734618e-05,0.618905962,0.845705271,0.181916341,1.44628394,0.0198830999,0.361040294 +-0.299632549,1.25142825,0.299632549,8.13264924e-05,0.570439339,0.858768523,0.33575353,2.1198051,0.0199717339,0.423788726 +0.365889311,1.25150502,-0.365889311,8.76472797e-08,0.227013156,0.450512499,-2.67584372,4.25540352,0.0207336415,0.517448545 +-0.256583929,1.25153387,0.256583929,0.000149580868,0.617738247,0.847883344,0.182519913,1.46483088,0.0198865887,0.362886697 +0.366176635,1.25156116,-0.366176605,3.4884928e-05,0.224660128,0.444867373,-2.70386314,4.28051567,0.0207374189,0.517852902 +0.302598119,1.25156534,-0.302598119,6.28847993e-05,0.566843629,0.868958294,0.329479903,2.15181303,0.0201214552,0.427959234 +-0.376186132,1.25160587,0.376186132,4.09368695e-05,0.162551373,0.292003125,-3.46356702,5.08408165,0.0203302484,0.532008469 +0.326335043,1.25162554,-0.326335073,1.45371832e-05,0.538398147,0.859203994,0.508065462,2.45304179,0.020277638,0.461509049 +0.365364105,1.25172353,-0.365364105,1.53914407e-05,0.227744579,0.454701424,-2.64222002,4.22305059,0.0207284447,0.516703248 +0.365813911,1.2518208,-0.365813881,1.111445e-05,0.224526018,0.444822282,-2.6977129,4.28231096,0.0207365043,0.517340183 +0.337436557,1.25187349,-0.337436557,1.02421745e-05,0.516518295,0.869709253,0.637566388,2.25826836,0.0203830358,0.477211952 +0.320398897,1.25190389,-0.320398897,5.50121695e-06,0.543810487,0.860539258,0.421446025,2.39903164,0.0202354621,0.45311445 +0.500999331,1.25191391,-0.500999331,0.000417270145,0.316218138,0.530173719,-1.03946781,2.63664913,0.0208540149,0.708607912 +-0.768380463,1.25193417,0.768380404,0.00285279728,0.260674924,0.160365567,0.0774894431,-0.593761563,0.0207326114,1.08697939 +0.320880324,1.25195706,-0.320880324,1.64474495e-05,0.543372571,0.860565245,0.424892366,2.40321398,0.0202389266,0.45379442 +-0.317960858,1.25203025,0.317960858,1.09078346e-05,0.545243025,0.847756445,0.413814992,2.39411235,0.0200010743,0.449685216 +-0.322801173,1.25211084,0.322801173,1.30699527e-05,0.539188266,0.845577538,0.448359787,2.45061874,0.0200096946,0.456516922 +0.304200292,1.25219047,-0.304200292,4.02033511e-05,0.563730299,0.870032847,0.318841279,2.16704965,0.0201308001,0.430216312 +0.680741429,1.25219476,-0.680741429,0.00223139161,0.228971586,0.173488304,-0.587830484,-0.343536079,0.0208958127,0.963220179 +-0.334005117,1.25221443,0.334005117,1.27318326e-05,0.521510839,0.856220543,0.65625751,2.37162447,0.0200515501,0.472358555 +0.261260748,1.25224781,-0.261260748,0.000208489728,0.612778902,0.854323268,0.176552281,1.5490756,0.0198945086,0.369518846 +0.326775312,1.25230312,-0.326775283,3.74325396e-06,0.536695778,0.859130204,0.501150072,2.45802069,0.0202805549,0.462133318 +-0.356329352,1.25238514,0.356329381,2.649413e-05,0.365807325,0.75673151,-1.26362729,3.01632452,0.0201841388,0.503927529 +0.320138574,1.25239074,-0.320138574,2.28813369e-05,0.543374598,0.860799849,0.40897873,2.39689875,0.0202337131,0.452747077 +0.262858927,1.25239825,-0.262858927,0.00012785742,0.610820115,0.855352104,0.17734848,1.57027614,0.0199030042,0.371780217 +0.409075558,1.25242352,-0.409075558,0.000191435975,0.181668192,0.305292428,-4.09111357,5.15044975,0.020934077,0.578675032 +-0.348912388,1.25244856,0.348912388,1.40216298e-05,0.451406807,0.891476035,-0.233552918,2.36139798,0.0201624297,0.493436754 +0.395756602,1.25250089,-0.395756632,3.40823181e-06,0.133301049,0.221276954,-4.22020388,5.56521273,0.0209766459,0.559706688 +-0.355376095,1.25250363,0.355376095,2.1337959e-05,0.374819398,0.771855772,-1.15362656,2.94175696,0.0201819707,0.502579331 +0.320396543,1.2526145,-0.320396543,1.31058675e-06,0.542632163,0.860774636,0.405035108,2.3992908,0.0202353299,0.453112513 +0.327463001,1.25265241,-0.327463001,6.34099797e-06,0.534953117,0.859223187,0.509715438,2.45707655,0.0202856343,0.46310392 +0.351720273,1.25271702,-0.351720273,1.93412579e-05,0.43339017,0.897627115,-0.473982483,2.38925791,0.0205627233,0.497419357 +0.320621043,1.25272417,-0.320621073,5.71701912e-06,0.54211241,0.86068064,0.404675096,2.40168476,0.0202367492,0.453429222 +0.396984726,1.25272489,-0.396984726,7.84101576e-05,0.138226315,0.229836822,-4.21369314,5.5123148,0.0209722593,0.561433196 +0.394696832,1.25277722,-0.394696832,2.56332078e-05,0.130866647,0.217325941,-4.22253227,5.58319139,0.0209763497,0.558200061 +-0.332347095,1.25281477,0.332347065,6.79354298e-06,0.524930239,0.84834379,0.612972736,2.44044399,0.0200387873,0.47001183 +0.434820443,1.25288224,-0.434820473,0.000190826191,0.281673998,0.481617928,-3.71159983,4.40951633,0.0207338184,0.615032375 +0.374781191,1.25288343,-0.374781191,6.86808926e-05,0.149696901,0.272201926,-3.56020403,5.12796021,0.0208542626,0.530067205 +-0.330567956,1.25290871,0.330567986,1.00480374e-05,0.526574433,0.845762372,0.592319846,2.46532083,0.0200309735,0.467498183 +0.326877713,1.2529695,-0.326877713,4.53224584e-06,0.534870982,0.85876596,0.489178598,2.45945573,0.0202806219,0.46227771 +-0.338728398,1.25304282,0.338728368,2.23933739e-06,0.508917272,0.867070615,0.628674924,2.2090261,0.0200897679,0.479038775 +-0.27087149,1.25308108,0.27087152,0.000214398242,0.602306366,0.864030004,0.194842845,1.66018021,0.0199211333,0.383233488 +-0.43522042,1.25314105,0.43522045,0.000160189302,0.28847456,0.493365824,-3.67643523,4.28643513,0.0204043444,0.615686774 +-0.39914161,1.25314569,0.39914161,0.00015257507,0.145303816,0.240206301,-4.17597771,5.53284931,0.0205378141,0.564574838 +-0.355661482,1.25342631,0.355661482,6.43103647e-07,0.36042428,0.749449909,-1.30593431,3.03999782,0.0201885719,0.502985656 +0.330453098,1.25344598,-0.330453128,1.24092794e-05,0.528547764,0.858488083,0.562502325,2.45424461,0.0203081463,0.467343062 +-0.304868639,1.25346792,0.304868639,3.32123564e-05,0.559491217,0.859091103,0.30625093,2.16730666,0.0199846663,0.431152165 +-0.338714063,1.2534821,0.338714063,5.13311704e-07,0.507372558,0.868882835,0.631842792,2.19864821,0.020091584,0.479018331 +-0.355299026,1.25352788,0.355299026,1.29834816e-05,0.365567058,0.760250509,-1.25044203,2.99449372,0.0201878641,0.50247252 +-0.339966714,1.25355387,0.339966714,9.9508452e-06,0.504927754,0.888009787,0.570572853,2.14625001,0.0201023668,0.480786681 +0.46947825,1.25360942,-0.46947825,0.000374560594,0.394519329,0.665324748,-2.20814943,3.19802785,0.0206660349,0.664046764 +-0.338177264,1.2536217,0.338177264,1.36061008e-05,0.508111954,0.865761995,0.64198339,2.2256062,0.0200864822,0.478256524 +1.07750034,1.25363231,-1.07750034,0.000417114294,0.276546746,0.213620141,0.709990144,-0.133363858,0.0210232977,1.52398372 +-0.318810672,1.25368786,0.318810672,1.21648172e-05,0.540253878,0.847243011,0.376040161,2.39823174,0.0200054888,0.45087105 +-0.741614819,1.25369275,0.741614819,0.00272872695,0.254483044,0.165072322,-0.126046821,-0.564868271,0.0207402427,1.04908395 +-0.356206864,1.2536937,0.356206864,2.82235378e-05,0.347734392,0.720012069,-1.42656696,3.15500784,0.0201958567,0.503754914 +-0.343531728,1.25371718,0.343531728,2.20113179e-05,0.496862888,0.926203251,0.42102474,1.99814367,0.0201323461,0.485839397 +-0.305789888,1.25372541,0.305789858,1.13799524e-05,0.557747722,0.859143853,0.303075284,2.17806697,0.0199864488,0.432459265 +-0.324919671,1.25374508,0.324919701,1.34559823e-05,0.532759547,0.844297171,0.441897571,2.46487904,0.0200168155,0.459519088 +0.336996138,1.25378549,-0.336996138,1.18272465e-05,0.510758281,0.872089982,0.657082677,2.23767614,0.0203764848,0.47658971 +0.462168574,1.25381792,-0.462168574,0.000247995718,0.398087084,0.672443449,-2.58861279,3.37588167,0.0206445269,0.653732359 +-0.75584811,1.25390804,0.75584811,0.000190886611,0.259939492,0.160884082,-0.014426467,-0.593485177,0.0207328368,1.06967819 +0.309897065,1.25404668,-0.309897065,5.65844057e-05,0.552223682,0.870544493,0.292510211,2.22897387,0.0201657694,0.438310057 +-0.365056276,1.25408959,0.365056276,0.000126452811,0.200162351,0.389321387,-2.84860086,4.51740599,0.0202466138,0.516304255 +-0.307242841,1.25412178,0.307242841,3.00833253e-05,0.554794252,0.858673573,0.297254682,2.19629812,0.0199894719,0.434508801 +-0.355462462,1.25416684,0.355462462,1.9836476e-05,0.349835515,0.727107763,-1.39022386,3.13933873,0.0202008113,0.502702951 +-0.388692081,1.25420332,0.388692081,5.00127207e-05,0.130991161,0.21850203,-4.09053373,5.56949568,0.0205066353,0.549705923 +0.322636247,1.25423551,-0.322636247,1.34013035e-05,0.536117613,0.859210372,0.392038554,2.41980886,0.0202499516,0.456276715 +-0.339170367,1.25424325,0.339170367,8.913434e-06,0.505862534,0.902116895,0.598207891,2.14917803,0.0201015063,0.479661286 +0.275694698,1.25439239,-0.275694698,0.000139338692,0.595598102,0.868703187,0.17459929,1.71591341,0.0199677479,0.38994801 +0.325586438,1.25451267,-0.325586438,6.73078966e-06,0.532345057,0.85804373,0.425609648,2.4468646,0.0202706158,0.46044898 +-0.377021313,1.2545135,0.377021283,1.02265676e-06,0.126497433,0.222836927,-3.83394575,5.41337061,0.0203767307,0.533195734 +0.359739602,1.25461912,-0.359739602,2.47551652e-05,0.245471776,0.513881683,-2.26656485,3.88073277,0.0206838232,0.508763909 +0.34731552,1.25462234,-0.34731552,1.71513802e-05,0.473929346,0.969622552,0.0707146302,1.99845803,0.0205133203,0.491184831 +-0.28120929,1.25464964,0.28120929,0.000106980253,0.59048754,0.872570217,0.18474783,1.79119122,0.019946754,0.397731334 +-0.377392501,1.25468969,0.377392471,8.19795514e-06,0.123086058,0.215855673,-3.87654042,5.45256948,0.0203859136,0.53372246 +0.395204753,1.2547884,-0.395204782,5.75837512e-05,0.137183636,0.227795884,-4.23344278,5.47127771,0.0209835283,0.558909655 +-0.33144936,1.25480938,0.33144936,6.13986595e-06,0.521170497,0.843914151,0.581822693,2.47465754,0.0200348869,0.468747228 +0.341503114,1.25483441,-0.341503084,8.64241883e-06,0.497293949,0.909335852,0.560202003,2.01744223,0.0204352736,0.482960194 +-0.3762016,1.254861,0.3762016,5.07794502e-05,0.127227485,0.225567564,-3.80473804,5.39027834,0.0203743614,0.532032371 +0.334288925,1.25487995,-0.334288895,6.10571487e-06,0.516928673,0.863530457,0.639145553,2.35789967,0.0203432832,0.472756743 +0.422988176,1.25494075,-0.422988176,0.000174951012,0.241414696,0.414746821,-3.995193,4.52812243,0.0208263602,0.598440349 +0.340258867,1.25494385,-0.340258867,5.20290041e-06,0.50039345,0.905288637,0.585999012,2.06193352,0.0204192232,0.481199473 +-0.344408751,1.25496066,0.344408721,1.83205157e-05,0.490075231,0.946969867,0.326752126,1.95453107,0.0201467257,0.487082034 +0.35737133,1.2549715,-0.35737133,1.76877274e-05,0.290183872,0.616159678,-1.84186065,3.49057865,0.0206528641,0.505405366 +0.2805112,1.25501835,-0.2805112,8.14595405e-05,0.589238286,0.871878743,0.17226544,1.77079344,0.0199948493,0.396714151 +0.333167315,1.2550211,-0.333167315,6.62839557e-06,0.519091487,0.861493051,0.623518229,2.39231348,0.0203312393,0.471170872 +-0.321157008,1.25507224,0.321157008,1.20023005e-05,0.534111857,0.84525305,0.362603784,2.42642498,0.0200110693,0.454189271 +-0.323527336,1.2550863,0.323527336,1.24651588e-05,0.53093487,0.842619777,0.388562083,2.46313405,0.0200146716,0.457550049 +-0.377037972,1.25512683,0.377037972,7.86575492e-06,0.122214392,0.214223728,-3.88175941,5.461586,0.0203904565,0.533218145 +0.333709717,1.25512803,-0.333709717,1.880329e-06,0.517776787,0.862112045,0.635632098,2.37998104,0.0203361977,0.471939564 +0.341080219,1.25514531,-0.341080189,3.86253259e-06,0.497674465,0.910398066,0.571852326,2.02030015,0.0204297286,0.482363105 +1.00889218,1.25518131,-1.00889218,0.00137625274,0.170911193,0.106211931,1.13806415,-0.380505264,0.0210134555,1.42693067 +-0.284917235,1.25519371,0.284917235,4.65286066e-05,0.585541189,0.873596132,0.182259023,1.84298134,0.0199552588,0.403011203 +-0.836083889,1.2552464,0.836083889,0.00565934367,0.251162231,0.148839876,0.566005468,-0.584726632,0.0207433179,1.18429494 +0.329632521,1.25525236,-0.32963255,6.12521762e-06,0.524310231,0.855372906,0.505956709,2.46362042,0.020299945,0.466177702 +-0.38030234,1.25529683,0.38030234,4.2714455e-05,0.122178316,0.211307257,-3.97115993,5.50269318,0.0204286538,0.537829459 +0.441847563,1.25538754,-0.441847563,0.000298761181,0.32414335,0.550377309,-3.42867899,3.80137897,0.0206875969,0.624997795 +-0.502649069,1.25539994,0.502649069,0.000448874547,0.323396623,0.544914007,-0.881693304,2.36587691,0.0206778217,0.711178184 +-0.377639771,1.25543392,0.377639771,5.77002538e-05,0.123340361,0.215664759,-3.89487457,5.4448266,0.0204022136,0.534067988 +-0.312665105,1.25544381,0.312665105,2.74847862e-05,0.543963313,0.855778039,0.279539317,2.2710681,0.0199999101,0.442201197 +0.341262519,1.25545597,-0.341262519,1.48875745e-06,0.495963603,0.911767304,0.568307638,2.0039134,0.0204322785,0.482621461 +-0.332661986,1.25548887,0.332661986,8.02743125e-06,0.516445339,0.847603798,0.613949776,2.44172263,0.02004214,0.470460057 +0.333811015,1.25551009,-0.333811015,3.036612e-06,0.516748607,0.86311692,0.639219642,2.37473178,0.0203367304,0.472082317 +0.333506227,1.25553715,-0.333506227,3.79753078e-06,0.517285049,0.861595809,0.629104257,2.38748527,0.0203334857,0.471650839 +0.342352509,1.25562072,-0.342352509,7.81750441e-06,0.490754753,0.932210505,0.46273616,1.99475503,0.0204479359,0.484160304 +-0.342733651,1.25564873,0.342733651,1.13725364e-05,0.494118094,0.937987149,0.466611385,1.94786763,0.0201368928,0.484706461 +-0.287859231,1.25575209,0.287859231,6.82361133e-05,0.581022799,0.873277187,0.1764808,1.87372303,0.0199622139,0.407136023 +0.287341863,1.25577354,-0.287341863,6.18313279e-05,0.580336452,0.876988649,0.171608537,1.86135507,0.0200318806,0.406436622 +0.346141577,1.25581956,-0.346141547,9.83601421e-06,0.472465575,0.972205341,0.113497064,1.97025037,0.0205020029,0.489530146 +0.324799985,1.25584388,-0.324799985,5.98284214e-06,0.529650569,0.857147753,0.378883272,2.43976521,0.0202641003,0.459339023 +-0.335454702,1.25589263,0.335454702,1.70106196e-05,0.506709099,0.857014835,0.683179259,2.33309007,0.0200641081,0.474413991 +-0.327487618,1.25590444,0.327487618,8.44708393e-06,0.522925436,0.838398695,0.44059816,2.49851751,0.0200224966,0.463138729 +0.811034679,1.25599909,-0.811034679,0.00297186943,0.245117426,0.142743275,0.423361659,-0.643440127,0.0208177939,1.14750016 +0.359290451,1.25603592,-0.359290451,4.49615618e-06,0.219794452,0.462292761,-2.43837738,4.04774189,0.0206912477,0.508134902 +0.668334007,1.2560519,-0.668334007,0.00168125739,0.220429674,0.185504615,-0.660637796,-0.307124168,0.0209208205,0.945459366 +0.325225323,1.25607193,-0.325225323,7.416581e-06,0.528389573,0.856478512,0.383885831,2.44356871,0.0202669539,0.459939152 +-0.314116061,1.25609505,0.314116061,1.22449255e-05,0.540143371,0.853797436,0.267187327,2.28436327,0.0200037267,0.444248676 +0.290022135,1.25622082,-0.290022135,6.57531345e-05,0.576666117,0.879247069,0.165748343,1.88977027,0.020046331,0.410204321 +-0.331442297,1.25624776,0.331442297,7.02436137e-06,0.516545653,0.841050267,0.561127663,2.48477268,0.0200342573,0.468733877 +0.33535862,1.25624895,-0.33535862,5.73322586e-06,0.508626819,0.874837041,0.661777854,2.27800703,0.0203546919,0.474269032 +0.339947313,1.25625074,-0.339947283,5.41532245e-06,0.496103913,0.903237045,0.619803905,2.05145669,0.0204131361,0.480758429 +0.353150547,1.2562902,-0.353150547,2.48392935e-05,0.357337058,0.784419358,-1.22624695,2.9267385,0.0205941442,0.499440372 +0.316051334,1.25645554,-0.316051334,2.63693782e-05,0.537753522,0.866403818,0.253491014,2.28208518,0.020205427,0.446966797 +0.378044963,1.25655162,-0.378044993,6.41705483e-05,0.118587509,0.207740471,-3.9793148,5.47411156,0.0209056977,0.534677505 +0.316348016,1.25660503,-0.316348016,2.05584456e-06,0.537003517,0.866306186,0.250389516,2.28401875,0.0202072579,0.44738698 +-0.326897383,1.25661457,0.326897353,9.74458362e-06,0.522089124,0.837843835,0.416291058,2.49785638,0.0200219285,0.462303728 +-0.327384204,1.25663042,0.327384204,1.71072031e-07,0.521403015,0.837438345,0.425062358,2.50320959,0.0200227238,0.462993771 +-0.388985842,1.25666547,0.388985842,6.91074238e-05,0.120963275,0.200184241,-4.23131275,5.64691591,0.0205433313,0.550132275 +-0.327646762,1.25666606,0.327646732,2.68084432e-06,0.520971596,0.837499082,0.430524349,2.50306058,0.0200234279,0.463364452 +0.316592753,1.25667465,-0.316592753,9.450287e-06,0.536436975,0.866030931,0.25001651,2.28713417,0.0202088077,0.4477323 +0.346734732,1.25668144,-0.346734732,1.89569291e-05,0.459064245,0.973913133,-0.062429525,2.0602634,0.0205112118,0.490365356 +-1.07842827,1.25678945,1.07842839,0.000355355878,0.271007895,0.214353845,0.766265213,-0.110616244,0.0209665727,1.52525175 +-0.387982011,1.25684059,0.387982011,4.21568839e-05,0.11939092,0.19787626,-4.22360659,5.64513302,0.0205386188,0.54871273 +0.373176366,1.25684118,-0.373176336,9.52781993e-05,0.12177027,0.218785867,-3.81332874,5.36291885,0.0208712164,0.527804255 +0.33106485,1.2568512,-0.33106485,2.15120053e-06,0.518775821,0.854629874,0.541000307,2.46605229,0.0203088578,0.468196452 +0.331028581,1.25686717,-0.33102861,1.11195448e-06,0.518809676,0.854535878,0.539757967,2.46719193,0.0203084964,0.468145192 +-0.327454954,1.25687063,0.327454954,1.43013108e-06,0.520580173,0.837089956,0.420488417,2.50454116,0.0200229585,0.463094264 +0.331024021,1.25687289,-0.331024051,2.65427457e-06,0.518797934,0.854523361,0.539501965,2.46722603,0.0203084555,0.468138725 +0.331030309,1.25687683,-0.331030339,6.57685746e-07,0.518777192,0.854522705,0.539727569,2.46720076,0.0203084983,0.468147606 +0.33107546,1.25692904,-0.33107546,1.72477939e-06,0.518573105,0.854987621,0.542355776,2.46538162,0.0203087889,0.468211442 +0.34850052,1.25701833,-0.34850052,1.5431493e-05,0.419384897,0.896594405,-0.47508359,2.38849258,0.0205372814,0.492859721 +-0.327880234,1.25708818,0.327880263,7.157043e-06,0.519255638,0.836902499,0.432186425,2.50507689,0.0200239047,0.463693738 +0.337887287,1.25708878,-0.337887317,5.80036522e-06,0.4968023,0.886255264,0.694599986,2.13223267,0.0203839373,0.47784698 +-0.315356076,1.25728762,0.315356076,1.3927016e-05,0.535639465,0.852626681,0.235259324,2.28165317,0.0200077593,0.445985585 +0.384440064,1.25734735,-0.384440064,8.7200242e-05,0.118418649,0.198996678,-4.19364357,5.57042027,0.0209644902,0.543783665 +0.341459394,1.257424,-0.341459394,7.619736e-06,0.49533391,0.990256965,0.507016301,1.90028119,0.020433696,0.482896864 +0.328359753,1.25750852,-0.328359753,1.42705812e-05,0.519590259,0.851827145,0.428153336,2.47516775,0.0202872772,0.464385569 +0.337545544,1.25758505,-0.337545514,2.64735991e-06,0.49646765,0.885729074,0.701703608,2.14569521,0.0203789975,0.477364421 +0.318944752,1.25764251,-0.318944722,1.62053293e-05,0.530299187,0.862383068,0.239061609,2.31132412,0.0202243663,0.451056123 +-0.349196583,1.25767124,0.349196583,1.69438645e-05,0.393018514,0.8384009,-0.835054457,2.72688317,0.0202053096,0.493839443 +-0.295375705,1.25785351,0.295375675,6.83506223e-05,0.569792926,0.877728224,0.149061278,1.93641305,0.0199785046,0.417768002 +0.298253983,1.25793004,-0.298253983,5.1722629e-05,0.564007699,0.881483972,0.146222144,1.96354246,0.020094743,0.421815783 +0.361025244,1.25800526,-0.361025244,3.56102064e-05,0.182240173,0.369558126,-2.85267615,4.49870682,0.0207406078,0.510575175 +-0.635706067,1.25804782,0.635706067,0.000619965489,0.199810773,0.189145342,-0.920508325,-0.180862561,0.020802645,0.899240136 +0.601233184,1.25805438,-0.601233184,7.86463497e-05,0.164497152,0.172377825,-0.734415472,-0.186199784,0.0211270265,0.850394785 +0.337957829,1.25807118,-0.337957829,8.02883551e-06,0.496322006,0.91017729,0.706695139,2.08380055,0.0203833096,0.477947235 +0.595293164,1.25810206,-0.595293224,0.000715829432,0.164091811,0.183124781,-0.709879339,-0.0426563621,0.0211424716,0.841921568 +-0.317803651,1.25821567,0.317803621,1.23447098e-05,0.529697239,0.849645019,0.220357418,2.3131001,0.0200121198,0.449446768 +0.299985588,1.25822079,-0.299985588,3.39841208e-05,0.561301112,0.88210535,0.142131269,1.9806782,0.0201046858,0.424255908 +0.357828498,1.25825298,-0.357828498,2.37425538e-05,0.199678898,0.420331061,-2.57012415,4.25234509,0.0206896421,0.506054044 +-0.350501746,1.25826442,0.350501716,1.36479666e-05,0.370913923,0.807786942,-1.11519444,2.90100169,0.0202194694,0.495688438 +-0.320013553,1.25827575,0.320013553,1.44551923e-05,0.525700569,0.845669985,0.235094711,2.36136317,0.0200150255,0.45258072 +0.855927825,1.25839496,-0.855927825,0.00319822831,0.236022204,0.136861771,0.678412795,-0.625573397,0.0208266228,1.21091938 +0.689589024,1.25841534,-0.689589024,0.00225059735,0.231758118,0.166167423,-0.495665103,-0.438129753,0.0208856147,0.975742519 +0.337334245,1.2584579,-0.337334275,4.878349e-06,0.497150242,0.907169938,0.732240796,2.11980557,0.0203745086,0.477064639 +0.330020487,1.25850368,-0.330020458,4.80625567e-06,0.514654815,0.852050483,0.482331276,2.47471285,0.0202981178,0.466724217 +-0.344465256,1.25850582,0.344465226,1.61473654e-05,0.456487358,0.97312206,-0.148825824,2.25875854,0.0201877132,0.487151444 +-0.330838144,1.25850821,0.330838144,9.6265494e-06,0.510055184,0.834598243,0.512874603,2.51440191,0.0200302806,0.467884511 +0.351458311,1.25858402,-0.351458311,1.35770206e-05,0.339491665,0.762638569,-1.31062007,3.00323129,0.0205845349,0.497057974 +-0.350324839,1.25859404,0.35032481,1.62268843e-05,0.369246036,0.807424545,-1.12796259,2.91267395,0.0202221479,0.495438039 +0.321505725,1.25868988,-0.321505725,8.74902435e-06,0.523599863,0.858129859,0.22723785,2.33820438,0.0202412754,0.454680264 +0.321994722,1.25883007,-0.321994722,9.20341427e-06,0.522349894,0.856970966,0.231355503,2.3463347,0.0202445202,0.455370396 +-0.30094856,1.25885463,0.30094859,2.81047633e-05,0.559797645,0.875235379,0.139524102,1.98615229,0.0199898109,0.425608367 +-0.350731313,1.25889933,0.350731283,2.96608268e-05,0.353920341,0.770037115,-1.26717055,3.05796146,0.02023305,0.4960123 +-0.301932961,1.25898325,0.301932961,9.86181476e-06,0.558076441,0.874805927,0.13865985,1.997594,0.0199914165,0.427004844 +-0.340997368,1.25899887,0.340997368,1.57590111e-05,0.49304533,0.991864979,0.523595452,1.87682104,0.0201479979,0.482256711 +-0.444623053,1.25904083,0.444623053,0.000226317134,0.359426856,0.618836761,-3.27088165,3.48686886,0.0203600042,0.628936529 +0.305927336,1.25906014,-0.305927336,4.86752142e-05,0.551409304,0.88160795,0.131955966,2.04834652,0.0201407801,0.432695448 +0.33105278,1.25915504,-0.33105278,4.93907919e-06,0.511208117,0.851674914,0.519327164,2.47058678,0.0203049146,0.468184114 +-0.303474396,1.25915718,0.303474396,2.57987322e-05,0.555404067,0.874208987,0.136599377,2.01812363,0.0199941099,0.42917943 +-0.323714733,1.25920463,0.323714733,1.01423648e-05,0.516564548,0.837383866,0.254150718,2.42919135,0.0200199168,0.457802773 +0.335090488,1.25932276,-0.335090488,4.91563878e-06,0.502447009,0.880977571,0.694778442,2.28183913,0.0203447733,0.473889768 +-0.324317247,1.25935507,0.324317247,2.38236703e-06,0.515073478,0.836030364,0.257312804,2.44058156,0.0200205743,0.458656758 +-0.324776888,1.25949585,0.324776888,7.80405662e-06,0.513916969,0.835339606,0.267431557,2.44934154,0.0200206675,0.459304899 +-0.333875835,1.25964439,0.333875835,7.50067147e-06,0.50017792,0.85428077,0.684754908,2.40071917,0.0200452283,0.472172678 +0.32546097,1.25969875,-0.32546097,1.12789567e-05,0.513689339,0.849154711,0.266291976,2.41132998,0.0202667173,0.460285932 +-0.309035331,1.25970519,0.309035331,2.41338275e-05,0.545849204,0.871224582,0.130785421,2.09945941,0.0200032108,0.437067777 +-0.333515823,1.25974965,0.333515793,5.17491389e-06,0.500598371,0.852674901,0.66872263,2.41338181,0.0200430155,0.471663296 +-0.38800323,1.25982106,0.38800323,6.91782334e-05,0.124206953,0.205644697,-4.25446224,5.53255844,0.0205833931,0.548727393 +-0.333796859,1.25988591,0.333796889,4.86978706e-07,0.499736369,0.854483306,0.685176194,2.40346694,0.020044174,0.472061396 +0.416579306,1.25990343,-0.416579306,0.000241409289,0.230339915,0.394756109,-4.08776522,4.42661333,0.0208810885,0.589298785 +0.333537877,1.25991821,-0.333537877,3.58965576e-06,0.506914616,0.875200689,0.681551397,2.36909223,0.0203244276,0.471695125 +0.333776087,1.25998354,-0.333776116,2.56995963e-06,0.506291747,0.876360416,0.690472484,2.35878706,0.0203267802,0.472032398 +0.333176851,1.25999475,-0.333176881,3.62239143e-06,0.506966591,0.872440517,0.658554792,2.38192368,0.0203212947,0.471183836 +-0.310657144,1.26001823,0.310657144,1.10184228e-05,0.542638481,0.870029688,0.125160545,2.11575317,0.0200066175,0.439356923 +-0.333969176,1.26007152,0.333969146,3.81533528e-06,0.500869155,0.871892512,0.706211269,2.36827683,0.0200462807,0.472304404 +-0.361281574,1.2601583,0.361281574,6.24338063e-05,0.15372014,0.301893771,-3.17898011,4.90862656,0.0203333814,0.510947347 +0.333673149,1.26020324,-0.333673149,6.34121e-07,0.505987167,0.876792908,0.691097498,2.36228061,0.0203250591,0.471886784 +0.312615305,1.2602098,-0.312615335,2.28009158e-05,0.539541781,0.878871024,0.115414098,2.11077762,0.0201831218,0.442107558 +0.312957942,1.2602843,-0.312957942,1.81500059e-06,0.538894355,0.878840923,0.114113674,2.11345625,0.0201851893,0.44259271 +0.313222378,1.26031828,-0.313222408,8.37082007e-06,0.538384736,0.87872231,0.113800742,2.11684179,0.0201868713,0.442965895 +0.603919625,1.26035166,-0.603919625,0.000968702603,0.166101754,0.171769962,-0.71138972,-0.231480166,0.0211094655,0.854150832 +-0.337722301,1.26037216,0.337722301,7.168643e-06,0.495057195,0.971294641,0.770042121,1.93226278,0.0201075301,0.477611691 +0.342520088,1.26037455,-0.342520088,1.43909565e-05,0.485156417,1.06959438,0.296201557,1.80792999,0.0204472151,0.484400302 +-0.336858809,1.26037824,0.336858809,2.43924978e-06,0.495845705,0.950787067,0.752425969,2.03221369,0.0200938247,0.476390332 +0.327347994,1.26037836,-0.327347994,5.94984294e-06,0.509249806,0.847818434,0.316552758,2.4463501,0.0202782601,0.462944716 +-0.328014374,1.26040256,0.328014374,1.08448012e-05,0.505906582,0.829908252,0.340289533,2.51417589,0.0200217739,0.463891 +0.333873838,1.26041281,-0.333873868,3.32230638e-06,0.506050467,0.894003868,0.712233484,2.32426691,0.0203271136,0.472169846 +-0.337876618,1.26050484,0.337876588,9.25756558e-06,0.494635671,0.975337803,0.763793409,1.91870868,0.0201100074,0.477829933 +-0.337786227,1.26055264,0.337786198,1.887919e-06,0.495078713,0.976432681,0.770890474,1.9183197,0.0201089587,0.477702409 +-0.337714225,1.26056218,0.337714255,4.61204763e-06,0.494834334,0.973486602,0.774781287,1.92670298,0.0201075673,0.477600336 +0.368044436,1.26062346,-0.368044436,6.39255595e-05,0.10958086,0.200216502,-3.78585362,5.42763233,0.0208627488,0.520515323 +-0.312325835,1.2606293,0.312325835,1.22616975e-05,0.538351536,0.871228516,0.110646293,2.11994791,0.0200102199,0.441700101 +0.34190625,1.2607398,-0.34190625,6.13604789e-06,0.491731405,1.08672714,0.355930001,1.76635754,0.0204374213,0.483532995 +0.341253728,1.26077223,-0.341253698,1.08546928e-05,0.494609773,1.07683277,0.458230197,1.7471838,0.0204279963,0.482608438 +0.315880626,1.26079798,-0.315880597,1.42160006e-05,0.532993317,0.877856195,0.107183278,2.14658833,0.0202044696,0.446722806 +0.328540593,1.26079822,-0.328540593,5.49548031e-06,0.506159008,0.846634805,0.353049278,2.46863317,0.0202855933,0.464631289 +0.600458086,1.26081133,-0.600458086,2.06188524e-05,0.164161518,0.171675146,-0.705687046,-0.213142902,0.021121487,0.849334955 +0.353079498,1.26103115,-0.353079498,2.4332101e-05,0.243769199,0.532445371,-2.12759113,3.88285017,0.0206350777,0.499343634 +-0.331025422,1.26103973,0.331025422,4.60678484e-06,0.500882864,0.847779393,0.533910275,2.53047204,0.0200238843,0.468141288 +-0.31500572,1.26109374,0.31500572,1.08165823e-05,0.532878995,0.870003104,0.102228776,2.15474582,0.0200140886,0.445489824 +-0.331314474,1.26110804,0.331314504,8.02092927e-07,0.500422597,0.849483669,0.552543879,2.53241348,0.0200238191,0.468550682 +-0.317121357,1.26112056,0.317121327,1.26078485e-05,0.529333234,0.866544366,0.106844693,2.19975567,0.0200168509,0.4484905 +0.341629386,1.26114058,-0.341629386,1.99341139e-06,0.497474968,1.11222219,0.379470915,1.73443234,0.0204332527,0.483142257 +-0.636135817,1.26118422,0.636135817,0.000677825883,0.178891361,0.163301483,-0.890963197,-0.412938356,0.0207661428,0.900000036 +-0.331507266,1.26123929,0.331507266,4.01567104e-06,0.504276395,0.872917056,0.57988745,2.50903416,0.0200221222,0.468822688 +1.05827999,1.26127756,-1.05827999,0.00125453435,0.178809643,0.121690445,0.951969683,-0.148703441,0.0210583769,1.49679899 +0.330994636,1.26128089,-0.330994636,3.66088534e-06,0.50429976,0.869513214,0.538637757,2.47682238,0.020300094,0.468097597 +-0.341203004,1.26129937,0.341203034,1.14920158e-05,0.501952589,1.11186171,0.378425986,1.77614963,0.0201666076,0.482551754 +-0.486093342,1.26131177,0.486093342,0.000543791044,0.39737007,0.687693298,-1.16811955,2.49267244,0.0204210561,0.68776679 +0.318757176,1.26131427,-0.318757176,7.61460024e-06,0.527161062,0.876505077,0.100077435,2.17921829,0.0202234741,0.450793236 +0.331447124,1.26137555,-0.331447154,9.04739579e-07,0.503958285,0.873458683,0.572565317,2.47912812,0.0203027092,0.468738317 +0.319285572,1.26137984,-0.319285542,8.10565871e-06,0.525865078,0.876174808,0.101367652,2.18920755,0.0202270634,0.45153904 +0.331644297,1.26150632,-0.331644297,3.25202473e-06,0.508080482,0.899784446,0.601568818,2.45153379,0.0203039087,0.469016522 +-0.321049243,1.26153672,0.321049243,8.782029e-06,0.520461977,0.862943411,0.111280911,2.27939725,0.0200214498,0.454033226 +-0.321672946,1.26160204,0.321672976,2.03901391e-06,0.519030452,0.862262845,0.112105504,2.29251647,0.0200220644,0.454917103 +-0.322161376,1.26167083,0.322161376,6.78448805e-06,0.517630398,0.862034559,0.116861872,2.30493665,0.020022016,0.455605984 +-0.343737066,1.26172447,0.343737066,1.28739139e-05,0.444714069,0.99769634,-0.28837043,2.29919457,0.0202104785,0.486124575 +-0.335509211,1.26176989,0.335509211,1.19490169e-05,0.506027579,0.983980417,0.873711944,2.08995366,0.0200661346,0.474488676 +0.322950542,1.26177585,-0.322950542,1.00352299e-05,0.516910255,0.874071598,0.113492638,2.26622105,0.020251289,0.456735492 +0.335233748,1.26184082,-0.335233748,1.02343574e-05,0.505138814,0.984346807,0.853634477,2.08328342,0.0203402974,0.47409898 +0.341903895,1.26187193,-0.341903895,5.39354369e-06,0.477811158,1.08031511,0.117252752,2.00073242,0.0204392374,0.483528256 +0.338117898,1.26187444,-0.338117868,1.11581976e-05,0.502415597,1.04786313,0.779963076,1.76015973,0.020380063,0.478176832 +-0.407608271,1.2619853,0.407608271,0.000138205243,0.202352628,0.344037414,-4.16493177,4.56923389,0.0205467995,0.576488614 +-0.338519096,1.26198828,0.338519096,7.52801998e-06,0.491673172,1.04820228,0.461399317,2.0640378,0.0201362427,0.478738308 +-0.325656801,1.26208484,0.325656831,9.49078003e-06,0.508024335,0.859012544,0.153020382,2.39968228,0.0200221781,0.460557073 +0.325064093,1.26212072,-0.325064093,5.23186827e-06,0.510254622,0.875285447,0.13978374,2.32054806,0.0202650353,0.45971477 +0.336999118,1.26217735,-0.336999118,5.67121924e-06,0.503269792,1.0331254,0.817799091,1.85625064,0.0203648228,0.476593047 +0.981220424,1.26227927,-0.981220424,0.00200197427,0.179992318,0.109657027,1.13040614,-0.467740297,0.0209577996,1.38804793 +0.326394469,1.26231623,-0.326394469,4.99593943e-06,0.506183922,0.875180304,0.159997523,2.35711336,0.0202738401,0.461596251 +-0.328742087,1.26239479,0.328742087,4.28133944e-06,0.491133839,0.86570698,0.313010067,2.52299166,0.0200147945,0.464912444 +-0.329159111,1.2624383,0.329159111,8.65646257e-07,0.488930076,0.866496027,0.334864736,2.54003525,0.0200133845,0.465503037 +-0.329468191,1.26252866,0.32946822,3.33030539e-06,0.499611467,0.914399564,0.371109486,2.52701497,0.020004943,0.465939313 +0.329092234,1.26257348,-0.329092205,3.40166866e-06,0.49120301,0.888659716,0.332219541,2.47570229,0.0202887673,0.465407073 +0.329491824,1.26261008,-0.329491794,7.24084316e-07,0.489181876,0.890173733,0.357248664,2.49341393,0.0202909075,0.465972811 +-0.345333189,1.26261187,0.345333189,2.15182681e-05,0.412053198,0.954550028,-0.765455365,2.62617254,0.0202389359,0.48839277 +0.389869928,1.26261508,-0.389869958,6.08628325e-05,0.144592434,0.241895169,-4.24150419,5.19053459,0.0209934115,0.551400781 +-0.333474159,1.26264405,0.333474159,1.13694459e-05,0.541355252,1.07184696,0.852298856,2.28347826,0.0200041756,0.471610487 +0.3296884,1.26267171,-0.32968843,2.59100943e-06,0.497705758,0.928107202,0.384637475,2.48226643,0.020291822,0.46625036 +0.333359063,1.26269937,-0.333359063,7.90501872e-06,0.541177809,1.09111702,0.846769214,2.22641659,0.0203143563,0.471447676 +-0.360073656,1.26277733,0.360073656,1.00433726e-05,0.137518451,0.268781245,-3.31920552,5.10015821,0.0203833468,0.509260714 +0.348076433,1.26288736,-0.348076433,8.99551924e-06,0.310039997,0.71013087,-1.59193552,3.44067144,0.0205513965,0.492254704 +0.347039014,1.26303148,-0.347039044,6.02314958e-06,0.331043512,0.757972777,-1.35700405,3.24384761,0.0205335915,0.490787417 +-0.433557451,1.26326597,0.433557451,0.000212053666,0.314650059,0.54501909,-3.69320822,3.51125407,0.0204179995,0.613323927 +-0.331846148,1.26326919,0.331846148,7.67734036e-06,0.580812991,1.2447902,0.646770418,2.43563128,0.0199402664,0.469308555 +0.331771255,1.26331544,-0.331771255,5.38559e-06,0.581881464,1.27853525,0.66310513,2.37883568,0.0203014761,0.469201982 +-0.357639998,1.2633673,0.357639998,5.42669259e-05,0.147417977,0.295326889,-3.140028,4.98393011,0.0203734078,0.505802989 +0.34826538,1.26342964,-0.34826538,4.08692767e-06,0.296168476,0.683373213,-1.73506808,3.56270885,0.0205559321,0.492522597 +0.348446548,1.26357806,-0.348446548,2.04347125e-05,0.288472027,0.664032102,-1.80004799,3.63134503,0.0205606651,0.49277851 +0.348215163,1.26358128,-0.348215133,3.86988397e-08,0.293741971,0.678296268,-1.75942969,3.58913875,0.0205556974,0.492452115 +0.347951204,1.26364934,-0.347951233,5.83386645e-06,0.301564336,0.699454844,-1.70730639,3.53700161,0.0205506496,0.492077678 +-0.344853044,1.26369882,0.344853073,1.91556683e-05,0.402144372,0.944632709,-0.888573825,2.76924157,0.020254964,0.487710327 +0.348218679,1.26376796,-0.348218679,9.94722268e-06,0.289111733,0.665996253,-1.79509377,3.63757181,0.0205585286,0.492456585 +0.343820602,1.26377165,-0.343820632,7.95031065e-06,0.422266543,1.01604748,-0.757492185,2.6336565,0.020472927,0.486249208 +0.330921173,1.26394296,-0.330921173,2.03040395e-06,0.670280099,1.86456847,0.463790089,2.37291908,0.0202939752,0.467999995 +0.328309983,1.26394296,-0.328310013,1.20417758e-06,0.41569671,1.08158851,0.205168456,2.34770775,0.0202865787,0.464301318 +0.310339302,1.26394296,-0.310339302,8.70383701e-07,0.527881861,0.996292889,0.00443292642,1.8932941,0.0201696325,0.438889414 +0.309956163,1.26394296,-0.309956163,1.06378466e-05,0.529008448,0.995565474,0.00384853268,1.8889842,0.0201673768,0.438346982 +0.310623258,1.26394296,-0.310623288,4.02043588e-06,0.526665747,0.99687916,0.00464196596,1.89667404,0.020171443,0.439290226 +0.317167461,1.26394296,-0.317167461,3.85355725e-06,0.495969057,0.996605635,0.0116051901,1.98059571,0.0202142503,0.448543578 +0.316619426,1.26394296,-0.316619456,3.55668408e-06,0.499467492,0.996832013,0.0109715806,1.97104168,0.0202104561,0.44776991 +0.302944362,1.26394296,-0.302944362,2.25980548e-05,0.548966408,0.979800701,-0.00391788268,1.80718052,0.0201234724,0.428476512 +0.313553751,1.26394296,-0.313553751,6.72820534e-06,0.513335466,0.998441577,0.00773370825,1.9328959,0.0201905239,0.443432093 +0.32792902,1.26394296,-0.32792902,4.31894023e-07,0.378682971,0.974300623,0.166845232,2.34474087,0.0202855635,0.463763237 +0.327324957,1.26394296,-0.327324957,1.63526465e-06,0.388435185,0.978824198,0.142748386,2.3075614,0.0202818364,0.46290797 +0.3232629,1.26394296,-0.32326293,2.51499591e-06,0.448140174,0.978633881,0.0266153924,2.1072607,0.0202553906,0.457167476 +0.320954919,1.26394296,-0.320954919,4.80258086e-06,0.471752763,0.993751407,0.0163873769,2.05142117,0.0202400051,0.453913152 +0.295093447,1.26394296,-0.295093447,2.35492444e-05,0.566721141,0.957119703,-0.00999988243,1.70775568,0.020076368,0.417346358 +0.29691273,1.26394296,-0.29691273,1.56992464e-05,0.562872291,0.963794649,-0.0081468951,1.7292521,0.0200867914,0.419910371 +0.324741274,1.26394296,-0.324741274,2.36434266e-06,0.431369513,0.96003437,0.0338369757,2.14364433,0.020265406,0.459258258 +0.286590695,1.26394296,-0.286590695,2.99907115e-05,0.582265317,0.945642591,-0.0226863399,1.60809577,0.0200277064,0.405352145 +0.2595869,1.26394296,-0.259586871,5.64760485e-05,0.622162819,0.899466991,-0.0403024182,1.28146386,0.0198864248,0.367148161 +0.272408694,1.26394296,-0.272408694,6.15559693e-05,0.605030775,0.917943656,-0.0296481196,1.42907917,0.0199499652,0.385297865 +0.283829659,1.26394296,-0.283829659,2.85529859e-05,0.587052584,0.938512027,-0.0241625234,1.57647121,0.0200128928,0.401470363 +0.276914954,1.26394296,-0.276914954,3.64420193e-05,0.598199606,0.926243246,-0.0270933956,1.48243737,0.0199752469,0.391627759 +0.238964066,1.26394296,-0.238964066,9.84774379e-05,0.646050632,0.865600169,-0.0517822467,1.02558458,0.019797707,0.337963045 +0.258241594,1.26394296,-0.258241564,9.15016572e-05,0.623994946,0.897131264,-0.0403226763,1.26248133,0.0198792573,0.365244865 +0.191297501,1.26394296,-0.191297501,0.000149979925,0.70183742,0.789817572,-0.0728236288,0.56172955,0.0196588803,0.27073884 +0.186406881,1.26394296,-0.186406881,5.42290436e-05,0.708117843,0.781331778,-0.07619185,0.542001069,0.0196485203,0.263939112 +0.18272981,1.26394296,-0.18272981,0.000145939397,0.712540805,0.773274064,-0.0791551024,0.55054152,0.0196431112,0.258791387 +0.164132476,1.26394296,-0.164132491,0.000177692331,0.73113203,0.737915337,-0.0879058465,0.42476052,0.019621253,0.232152909 +0.238410622,1.26394296,-0.238410622,7.017669e-06,0.646677434,0.865083933,-0.0519407466,1.02022851,0.0197952278,0.337195903 +0.237747014,1.26394296,-0.237747014,0.000108203181,0.647619128,0.864505887,-0.0517955869,1.01160944,0.0197927058,0.336241454 +0.218025357,1.26394296,-0.218025357,0.000146569248,0.670168877,0.835063994,-0.0512477122,0.769227505,0.0197238699,0.30858323 +0.210919291,1.26394296,-0.210919276,0.000153175934,0.679415703,0.8278386,-0.0563720539,0.723203897,0.0197032467,0.298575699 +0.156780869,1.26394296,-0.156780854,7.30080719e-05,0.737990379,0.719883084,-0.0902320296,0.359636873,0.019611489,0.22194545 +0.00438441336,1.26394296,-0.00438441243,0.000282847905,0.816196799,0.643701613,-0.0907929465,0.00343436445,0.0195799079,0.0234977268 +0.0164361093,1.26394296,-0.0164361093,0.000175701687,0.816834033,0.648667455,-0.0857783556,0.0114822639,0.0195808653,0.0280398149 +0.0288916118,1.26394296,-0.0288916118,0.000171874461,0.815280199,0.651116073,-0.0858083814,0.0192829818,0.0195813123,0.042773217 +0.0651624277,1.26394296,-0.0651624352,0.000169847612,0.805157185,0.656232953,-0.0896545351,0.0493395552,0.0195829105,0.0922089964 +0.0876763314,1.26394296,-0.0876763314,0.000300976244,0.793940783,0.665510595,-0.0895247236,0.0877213553,0.0195845757,0.125436604 +0.110511176,1.26394296,-0.110511176,4.84288648e-05,0.779292941,0.675116658,-0.0889755711,0.143810466,0.0195882488,0.156578794 +0.107103266,1.26394296,-0.107103266,0.000161072749,0.781592727,0.673885524,-0.0892921835,0.132129788,0.0195878129,0.151689127 +0.153729826,1.26394296,-0.153729841,0.000166028054,0.740985274,0.716375589,-0.0909195244,0.33555302,0.0196095649,0.217519239 +0.0644011796,1.26394296,-0.0644011796,1.02668582e-05,0.805511951,0.655986905,-0.0896147341,0.0486815497,0.0195828378,0.0912124738 +0.0637633875,1.26394296,-0.0637633875,0.000174041328,0.805757165,0.655870795,-0.0895223543,0.0481436737,0.019582795,0.090295136 +0.13323769,1.26394296,-0.13323769,0.000280826265,0.759561062,0.690264165,-0.0903674662,0.229035616,0.019595392,0.189381406 +0.114035077,1.26394296,-0.114035077,0.000159891686,0.776289403,0.677036464,-0.0892731249,0.165711686,0.0195894893,0.161419511 +0.0406090952,1.26394296,-0.0406090952,0.000253007282,0.812662184,0.652451575,-0.087629199,0.0219680015,0.0195820425,0.0602441728 +-0.0208034087,1.26394296,0.0208034106,0.000217596578,0.815578699,0.645425618,-0.0913147926,-0.00690545607,0.0195766166,0.0328161754 +-0.150489941,1.26394296,0.150489941,0.000178744885,0.744420409,0.711671054,-0.0909082964,0.276890904,0.0196136106,0.212850064 +-0.172608912,1.26394296,0.172608912,0.000199491667,0.72265327,0.749637425,-0.0829259083,0.398483008,0.0196538847,0.244675681 +-0.179709569,1.26394296,0.179709554,0.000163406658,0.716254413,0.766221881,-0.0806389004,0.492767543,0.0196741316,0.254515767 +-0.147189006,1.26394296,0.147189006,3.12550728e-05,0.747582555,0.704487681,-0.0916468203,0.2616961,0.0196073744,0.208258048 +-0.146114051,1.26394296,0.146114051,0.000183422366,0.748581648,0.702806294,-0.0918436199,0.262416035,0.0196064021,0.20673883 +-0.197552189,1.26394296,0.197552189,0.000164608937,0.696592033,0.797910094,-0.0698564425,0.568433046,0.0197229907,0.279776812 +-0.0241147764,1.26394296,0.0241147764,7.88062462e-05,0.815203011,0.644762576,-0.0915056169,-0.0079722153,0.019576285,0.0356032662 +-0.0311267897,1.26394296,0.0311267897,0.000204334152,0.81366992,0.645024598,-0.0917107016,-0.00502340868,0.0195755456,0.0443767235 +-0.117789403,1.26394296,0.117789403,0.000174072062,0.772439599,0.678240299,-0.0920865089,0.145066634,0.0195810981,0.166970968 +-0.0966599286,1.26394296,0.096659936,0.000165334728,0.788566947,0.669080079,-0.0895723328,0.0711671263,0.0195737183,0.136915281 +-0.121415436,1.26394296,0.121415429,0.000200224502,0.769747436,0.681760609,-0.0921983793,0.146344751,0.0195824001,0.17204541 +-0.093829751,1.26394296,0.093829751,0.000142518984,0.79008466,0.667370677,-0.0898590684,0.0684163123,0.0195736252,0.132918954 +-0.0598794334,1.26394296,0.0598794334,0.000192828971,0.805372715,0.648561835,-0.0932699144,0.0114132669,0.0195727143,0.0858463496 +-0.0510045737,1.26394296,0.0510045737,0.000216799221,0.80889827,0.644443154,-0.0918410122,0.00374279916,0.0195732992,0.0739426464 +-0.076404959,1.26394296,0.076404959,0.000252399681,0.798271179,0.65816617,-0.0928572416,0.0331238173,0.0195723884,0.110172659 +-0.267436922,1.26394296,0.267436892,9.34219715e-05,0.6121701,0.90983665,-0.035882514,1.35645914,0.0199312735,0.378377825 +-0.254010051,1.26394296,0.254010051,6.50990769e-05,0.630378246,0.890503824,-0.0404888541,1.16293311,0.0198992155,0.359251976 +-0.249071002,1.26394296,0.249071002,7.74607179e-05,0.63634491,0.882456601,-0.0431963615,1.09929931,0.0198858883,0.352253914 +-0.235907257,1.26394296,0.235907242,9.27248984e-05,0.651964068,0.86590445,-0.0492655486,0.946034372,0.0198469795,0.333805174 +-0.252419949,1.26394296,0.252419978,2.11514143e-05,0.632227242,0.887260675,-0.0408624001,1.14324296,0.0198949724,0.357027829 +-0.230695412,1.26394296,0.230695397,9.55205978e-05,0.659062326,0.861187696,-0.0529920124,0.891889334,0.0198310781,0.326400429 +-0.281221122,1.26394296,0.281221122,2.02403917e-05,0.593461394,0.936172009,-0.0323558748,1.55455613,0.0199633203,0.397781372 +-0.277769327,1.26394296,0.277769327,4.74141343e-05,0.598516643,0.931739211,-0.033099439,1.49925494,0.0199557543,0.392865896 +-0.206459567,1.26394296,0.206459567,0.000117841555,0.687677503,0.819361866,-0.066214934,0.675377488,0.0197530612,0.292215288 +-0.217731833,1.26394296,0.217731833,0.000134323724,0.673494577,0.838471174,-0.0576476231,0.747317553,0.0197878797,0.308255672 +-0.298058331,1.26394296,0.298058331,1.30164826e-05,0.563709378,0.970585883,-0.000587544637,1.75478292,0.0199946072,0.421521008 +-0.292257786,1.26394296,0.292257786,3.14197168e-05,0.576478302,0.963288784,-0.0118198181,1.69625998,0.0199841447,0.413358033 +-0.299133867,1.26394296,0.299133867,4.74288072e-06,0.5612185,0.971695364,0.000849615259,1.7670964,0.0199962668,0.423046678 +-0.284111768,1.26394296,0.284111768,3.10531541e-05,0.589036405,0.942542732,-0.0291899517,1.59234428,0.0199695546,0.401834726 +-0.300775796,1.26394296,0.300775796,1.20242021e-05,0.556358039,0.97795248,0.00188413798,1.78943229,0.0199991185,0.425363123 +-0.306296676,1.26394296,0.306296676,1.12688576e-05,0.540206969,0.9914307,0.00433702255,1.87008345,0.0200083014,0.433194518 +-0.310041368,1.26394296,0.310041368,5.7852e-06,0.525712967,0.992034018,0.0113659827,1.91216767,0.0200149529,0.43846935 +-0.308029056,1.26394296,0.308029085,5.19256173e-06,0.534418166,0.992962778,0.00668065343,1.89178133,0.0200115815,0.435640007 +-0.319016874,1.26394296,0.319016874,4.18629907e-06,0.4806602,0.977201462,0.0154139362,2.05953288,0.0200279001,0.451159 +-0.31497407,1.26394296,0.31497407,6.00495241e-06,0.504221082,0.986225367,0.0133468788,1.98533058,0.0200222731,0.445453703 +-0.320171893,1.26394296,0.320171893,3.25325368e-06,0.472895116,0.974515319,0.017603321,2.08423829,0.0200285949,0.452792436 +-0.319655389,1.26394296,0.319655418,9.71568056e-07,0.477125734,0.975841999,0.015889138,2.0717485,0.0200286526,0.452063829 +-0.327805042,1.26394296,0.327805012,1.54977045e-06,0.420434892,1.05330801,0.180916429,2.38527513,0.0200133957,0.463586956 +-0.327473372,1.26394296,0.327473372,3.8774e-07,0.393236518,0.97573477,0.150969595,2.38163161,0.0200266633,0.463118613 +-0.330921173,1.26394296,0.330921173,2.90712501e-06,0.670361042,1.80898619,0.455661654,2.42264414,0.0198928174,0.467999995 +-0.312927723,1.26394296,0.312927753,5.13805662e-06,0.513460636,0.98879838,0.0137941577,1.95201588,0.0200190954,0.442551136 +-0.323801488,1.26394296,0.323801458,4.66592337e-06,0.442200184,0.953227401,0.0277412906,2.17697573,0.0200289674,0.457932949 +-0.327121913,1.26394296,0.327121913,2.12705709e-06,0.397948265,0.976435781,0.139096752,2.36217427,0.0200271439,0.462620974 +0.406885028,1.26464176,-0.406885028,0.000190701772,0.206291825,0.352762729,-4.20884562,4.48322964,0.0209540967,0.575532258 +0.363295376,1.26481223,-0.363295376,7.49218962e-05,0.0990412086,0.181342885,-3.78501368,5.53887463,0.0208599176,0.513803661 +-0.370891869,1.26500678,0.370891899,6.24823006e-05,0.10812147,0.186891139,-4.00780821,5.58675051,0.0205351133,0.524525166 +0.359243453,1.26516044,-0.359243453,3.23630011e-05,0.110034905,0.21243538,-3.51104021,5.36844015,0.0207927227,0.508065581 +-1.05974412,1.26518095,1.05974412,0.00106297515,0.180580825,0.126774132,0.9999336,-0.101846501,0.0209948756,1.49882722 +0.681281865,1.2653203,-0.681281865,0.000118433978,0.226762548,0.164640754,-0.546548009,-0.453503221,0.0208916012,0.964347959 +0.354236245,1.26537776,-0.354236245,5.52116762e-05,0.139342517,0.288173229,-3.04862189,4.95805931,0.020710934,0.500983715 +0.33968851,1.26542461,-0.33968854,7.35570302e-06,0.511941195,1.28123856,-0.0631116778,2.05127215,0.0204024576,0.480395406 +0.33687669,1.26578796,-0.33687669,3.880336e-06,0.590380609,1.50134039,0.79443121,1.22269213,0.0203543138,0.476416081 +0.336484969,1.26595521,-0.336484939,5.06286187e-06,0.596585512,1.52490997,0.800662637,1.22985148,0.0203482844,0.475862354 +0.345042616,1.26599574,-0.345042616,1.34184675e-05,0.340573579,0.815894127,-1.50121045,3.43156004,0.0205098055,0.48797363 +0.343609214,1.26605785,-0.343609214,1.23738555e-05,0.397616506,0.985575497,-1.18849432,3.08120799,0.0204732995,0.485946059 +0.635734797,1.26619053,-0.635734797,0.00093456998,0.182294011,0.162432343,-0.741956234,-0.511104107,0.0209579058,0.899999976 +-0.371839046,1.26621985,0.371839017,1.07313517e-05,0.0985195562,0.16634734,-4.14835978,5.71752834,0.0205735974,0.525869548 +-0.341306984,1.26623583,0.341307014,6.60033947e-06,0.474745452,1.17597914,-0.547348797,2.52657461,0.0202253908,0.482681543 +-0.361569643,1.26623952,0.361569643,3.52233692e-05,0.118034013,0.22024031,-3.61028624,5.40322542,0.020476846,0.511348426 +-0.415494978,1.2662859,0.415494978,0.0002006383,0.242457628,0.419201553,-4.11937284,4.01167107,0.0205328241,0.587683499 +0.339971393,1.26630092,-0.339971393,2.33268429e-06,0.516931832,1.32958794,-0.204646021,2.06596398,0.0204060618,0.480798423 +0.944093943,1.26639342,-0.944093943,0.00327517162,0.197259918,0.116907761,1.06233191,-0.555764377,0.020888973,1.33599687 +-0.340832531,1.26649404,0.340832531,1.02671311e-05,0.483755827,1.20374167,-0.484185368,2.47869205,0.0202210881,0.482011467 +0.337539256,1.26649547,-0.337539256,6.61074091e-06,0.583170414,1.51713693,0.515432179,1.3816402,0.0203647073,0.477352858 +0.339505166,1.26650274,-0.339505166,1.10472354e-06,0.530549526,1.37378597,-0.121213555,1.97067881,0.0203984939,0.480137318 +-0.37289381,1.26653337,0.37289381,7.88155085e-05,0.100721315,0.16937393,-4.16513777,5.68633652,0.0205895528,0.527359188 +0.336681724,1.26656961,-0.336681724,4.562512e-06,0.609760046,1.59531319,0.765589118,1.13482928,0.020349618,0.476141453 +0.334193379,1.26658547,-0.334193379,6.68508528e-06,0.687182903,1.76547611,1.21345949,0.929842651,0.0203122105,0.47262162 +-0.372175425,1.26665068,0.372175395,5.79555945e-06,0.0991876721,0.16694358,-4.1574502,5.70366859,0.0205858201,0.526350081 +-0.340810835,1.26675367,0.340810835,7.55882729e-06,0.480398566,1.20057356,-0.558238208,2.56123018,0.0202227589,0.481981039 +0.340404123,1.26676989,-0.340404093,1.03486009e-05,0.493025213,1.26795852,-0.463214934,2.34724045,0.0204148572,0.481407732 +-0.453244805,1.26678896,0.453244805,0.000225996395,0.428654462,0.736469507,-2.74795032,2.25031829,0.0203235727,0.641213834 +0.332335472,1.26689446,-0.332335472,4.76199557e-06,0.785469532,1.9830972,1.50266886,0.825158536,0.0202882029,0.469994098 +1.21661639,1.26691043,-1.21661639,0.00025707623,0.0792909116,0.0538470782,2.20356107,-0.0224057976,0.021052137,1.72066486 +1.22321153,1.26696932,-1.22321153,0.000188529855,0.05580125,0.0375302322,2.26840258,-0.0231809728,0.0210520197,1.72999251 +1.22870708,1.26701856,-1.22870708,8.5771695e-05,0.0412742533,0.0433098823,2.14176559,-0.0200598724,0.0210516285,1.73776472 +0.334318578,1.26715624,-0.334318548,5.960093e-06,0.708875656,1.8609761,1.25395763,0.750039876,0.0203119032,0.472799391 +-0.370334327,1.26718688,0.370334327,3.18600105e-05,0.0965360701,0.163254723,-4.12826538,5.74407005,0.0205803905,0.523734927 +0.382221162,1.26723421,-0.382221162,4.75905872e-05,0.12489704,0.206948668,-4.29668427,5.35048485,0.0210107565,0.54055047 +-0.37164247,1.26723516,0.37164247,3.64857769e-05,0.0988031849,0.166131973,-4.15041018,5.70339727,0.020592967,0.525590241 +-0.341344148,1.26731038,0.341344148,7.77753394e-06,0.43875739,1.08376658,-0.844908476,2.89900136,0.0202489607,0.482733876 +0.339804947,1.26734221,-0.339804918,1.18938506e-05,0.505200684,1.31764567,-0.504525661,2.42935944,0.0204055663,0.48055917 +0.515682995,1.26736808,-0.515682995,0.000631617557,0.258199245,0.420096517,-0.409162343,0.985934973,0.0209738947,0.729485214 +-0.350429863,1.26743186,0.350429863,1.35374257e-05,0.167626545,0.357292175,-2.78287673,4.86103582,0.0204179045,0.495587945 +0.332423121,1.26744211,-0.332423121,4.28125986e-06,0.814778447,2.08834052,1.63121724,0.576902449,0.0202861521,0.470118821 +0.330925435,1.26751709,-0.330925435,1.90246965e-06,0.904111147,2.3590188,1.84410596,0.425584614,0.0202728808,0.467999965 +0.531151831,1.26751912,-0.531151831,0.000442532066,0.221803963,0.336147428,-0.438103676,0.860830486,0.0210432559,0.751591206 +0.380990773,1.26757383,-0.380990773,4.18701529e-05,0.125921607,0.210234106,-4.25899982,5.31704855,0.0210038815,0.538812876 +0.392099708,1.26765108,-0.392099679,0.000102930877,0.1582973,0.263974667,-4.30661345,4.96183205,0.0210166536,0.554600656 +-0.350168705,1.26773763,0.350168705,1.17515092e-05,0.16833809,0.361972898,-2.79182863,4.87334824,0.0204205308,0.495217621 +-0.350963295,1.2677424,0.350963265,2.81670182e-05,0.149547398,0.316474646,-2.94891119,5.03204489,0.020430224,0.496341616 +-0.337559283,1.26775765,0.337559253,7.87925273e-06,0.605480075,1.57749236,-0.0172125679,1.99025881,0.0201221928,0.477380902 +-0.337320536,1.26779926,0.337320536,9.26128178e-06,0.613261938,1.60039818,0.0227274187,1.9551208,0.0201149378,0.47704336 +-0.337334901,1.2678237,0.337334901,9.98027417e-07,0.613749743,1.6029582,0.0191159602,1.95338416,0.0201152693,0.477063715 +-0.337329447,1.26783228,0.337329477,5.49902843e-08,0.614023268,1.6040616,0.0198800694,1.95214891,0.0201151241,0.477056026 +-0.337345213,1.26784694,0.337345183,5.10483602e-08,0.613025188,1.6013571,0.0104056438,1.96277106,0.0201158561,0.477078259 +-0.337329566,1.26785398,0.337329537,1.96882951e-07,0.613924444,1.60437202,0.0119703393,1.96159983,0.0201151669,0.477056116 +0.600046754,1.2678858,-0.600046694,0.00110000861,0.165025607,0.169978976,-0.67489326,-0.292693853,0.0211073738,0.848636866 +-0.337319821,1.26801622,0.337319821,9.08491074e-06,0.60522151,1.58005011,-0.037361756,2.04488826,0.0201163795,0.477042288 +0.330924898,1.26802063,-0.330924869,1.70392502e-06,0.93380332,2.41152048,2.06060123,0.118629985,0.0202699397,0.467999995 +0.396657169,1.26810992,-0.396657169,0.000143114012,0.177972674,0.299993485,-4.28467655,4.6982913,0.0210028887,0.561009049 +-0.35044089,1.26816428,0.35044086,1.24427916e-05,0.148475513,0.315586567,-2.94619894,5.06283474,0.0204366148,0.495603681 +-0.334671199,1.26817262,0.334671199,9.23540392e-06,0.752436459,1.97648942,0.954862952,0.94390732,0.0200006478,0.473296672 +-0.334679574,1.26821315,0.334679604,1.11620437e-07,0.754032373,1.98299086,0.956843853,0.933460653,0.0200005285,0.473308563 +-0.334679723,1.26823807,0.334679723,3.57357749e-07,0.754590571,1.98695326,0.949608088,0.938007116,0.0200004634,0.473308712 +0.381664515,1.26831472,-0.381664485,9.98487394e-07,0.124677747,0.206355661,-4.30503559,5.33517456,0.0210149363,0.539776325 +-0.889586985,1.26838171,0.889587045,0.00295175612,0.229536995,0.137019634,0.838810325,-0.55715102,0.0207832959,1.25873899 +-0.332572907,1.26842606,0.332572937,6.54576252e-06,0.850489497,2.1851213,1.77792859,0.209589899,0.019906288,0.470329255 +-0.334672093,1.26842678,0.334672064,1.07301121e-05,0.746062875,1.97132528,0.871284962,1.07295251,0.0200005528,0.473297834 +-0.332580149,1.26847482,0.332580149,1.01831e-07,0.853231192,2.1945641,1.78744853,0.190723956,0.0199058969,0.470339566 +-0.332580209,1.26850402,0.332580209,3.24213147e-07,0.853935838,2.20230746,1.79017198,0.176338553,0.0199057776,0.470339626 +-0.337687463,1.26861811,0.337687463,4.630479e-06,0.561695218,1.45169699,-0.303313762,2.40295649,0.0201421045,0.477562189 +-0.330925912,1.26872706,0.330925912,2.58359296e-06,0.940376759,2.37191081,2.59832978,-0.679153264,0.0198488906,0.467999995 +-0.332575768,1.26872838,0.332575738,7.56177178e-06,0.848334849,2.22932315,1.68196929,0.372523367,0.0199039653,0.470333189 +0.381170541,1.26873112,-0.381170541,9.85621136e-06,0.123642169,0.204533368,-4.30747843,5.34301043,0.021015672,0.539073408 +-0.350554138,1.26873243,0.350554138,1.1578366e-05,0.142921597,0.30001694,-2.99486184,5.13125944,0.0204507988,0.495762527 +0.382267505,1.26874113,-0.382267475,5.10995196e-05,0.12693128,0.210018337,-4.31587553,5.30573177,0.0210174546,0.540625036 +-0.330925852,1.26877654,0.330925852,4.44338326e-08,0.943528712,2.37735462,2.61540246,-0.706582546,0.0198484063,0.468000025 +-0.397524059,1.26878512,0.397524059,0.000135251787,0.183619678,0.309818387,-4.19233799,4.59736681,0.0206476562,0.56229347 +-0.330925882,1.26880217,0.330925882,1.36190764e-07,0.943581998,2.38247776,2.63259673,-0.73458457,0.0198483858,0.467999995 +-0.358421922,1.2689116,0.358421922,2.56042167e-05,0.105589837,0.194718555,-3.6344521,5.59637594,0.020502653,0.506890118 +-0.330925941,1.26900303,0.330925941,2.96857434e-06,0.942808867,2.47491765,2.53304863,-0.548183322,0.0198439118,0.467999965 +-0.352867842,1.2691046,0.352867842,1.65175461e-05,0.13102071,0.266757786,-3.20686483,5.28469515,0.0204725843,0.499031454 +0.347052872,1.2696774,-0.347052872,2.09253103e-05,0.172975928,0.381285876,-2.73561311,4.94598198,0.0206034333,0.490834475 +0.38176474,1.2697382,-0.38176477,4.63358483e-05,0.128485143,0.212798357,-4.31228209,5.25702095,0.0210210793,0.539906979 +-0.343717247,1.26985395,0.343717277,1.66519258e-05,0.254472524,0.600542843,-2.20571899,4.4862299,0.0203583594,0.486097723 +-0.384789884,1.2700175,0.384789884,0.000162363693,0.136595458,0.225740328,-4.29012632,5.1824379,0.0207110159,0.544225454 +0.429161668,1.27005982,-0.429161638,0.000210250437,0.319927603,0.559893787,-3.75051308,2.93274307,0.0207871143,0.607028544 +-0.364007503,1.27012539,0.364007503,3.24802422e-05,0.0897320956,0.154047325,-4.02091026,5.82886124,0.0205815136,0.514810324 +-0.621971846,1.27019608,0.621971846,0.00116989901,0.172912136,0.165320128,-0.773593724,-0.393518806,0.0208040215,0.879811227 +0.336952031,1.27024651,-0.33695206,9.011695e-06,0.501979828,1.31749284,-0.675452232,3.14370799,0.0203609504,0.476522267 +0.332511187,1.27039123,-0.332511187,6.88241562e-06,0.80766201,2.44259357,0.60860312,2.15104318,0.0202701893,0.470241904 +0.334504426,1.27043009,-0.334504426,9.55677478e-06,0.651378632,1.81279552,-0.189767659,2.76190376,0.020312814,0.473060787 +-0.419695169,1.27049804,0.419695169,0.000189616898,0.276103497,0.482516646,-4.01806879,3.46773314,0.020499479,0.593650401 +0.330925882,1.27057815,-0.330925912,2.74477134e-06,0.937767625,3.00768471,1.52478552,1.13301754,0.0202319156,0.467999995 +-0.343046337,1.27060378,0.343046337,5.40844394e-06,0.260894597,0.623771429,-2.2649684,4.61284542,0.020351626,0.485146463 +-0.343978137,1.27068639,0.343978107,1.34135425e-05,0.222111255,0.518307447,-2.46011353,4.81000137,0.0203848276,0.486468852 +1.19030476,1.27072453,-1.19030476,8.65853217e-05,0.41738081,0.419227839,0.570337355,-0.102210417,0.0210331306,1.68343592 +0.358767956,1.27097237,-0.358767927,2.96803428e-05,0.0956713855,0.173710063,-3.75020409,5.64895725,0.020865608,0.507382154 +-0.59367609,1.27110589,0.59367609,0.00176903792,0.164115116,0.173671022,-0.662033319,-0.203310817,0.0208633933,0.840041399 +1.21338058,1.27117109,-1.21338058,0.000244070179,0.0897178724,0.062917389,2.12487245,-0.0465524122,0.0210458729,1.7161119 +0.360903829,1.27133477,-0.360903829,2.55756022e-05,0.0883951932,0.153698847,-3.92029452,5.76723194,0.0209086742,0.510405898 +-1.01800561,1.27146065,1.01800561,0.000920570514,0.169747919,0.108958587,1.12311912,-0.3032763,0.0209857039,1.44009089 +-0.359029889,1.27146935,0.359029889,1.1562337e-05,0.0884107947,0.155930862,-3.85138869,5.85597324,0.0205620062,0.507755876 +-0.512814164,1.27151322,0.512814164,0.000767385529,0.258553922,0.41991654,-0.414469838,1.01967192,0.0207599439,0.725546718 +0.560296535,1.27155018,-0.560296535,0.00111445319,0.162847906,0.212411821,-0.59551084,0.269604713,0.0211999305,0.79286629 +0.339533597,1.27156234,-0.339533597,9.54910774e-06,0.375996321,0.978958905,-1.81216753,4.22753239,0.0204198323,0.480182588 +-0.343463063,1.27163875,0.343463033,7.72627027e-06,0.209790349,0.483830452,-2.50331569,4.9569993,0.0203927383,0.485737383 +-0.357610881,1.27169442,0.357610911,1.19431552e-05,0.0891984031,0.159063831,-3.79102087,5.84192753,0.0205571428,0.505756855 +0.343413711,1.27179444,-0.343413711,7.02418129e-06,0.196587294,0.454551548,-2.56971574,5.04163027,0.0205319561,0.485662371 +-1.08345342,1.27180719,1.08345342,0.000388861779,0.255330563,0.194947705,0.532992959,-0.0233126208,0.0209759809,1.53238666 +0.343833953,1.27180874,-0.343833953,1.01204441e-05,0.178677157,0.407698959,-2.66948724,5.155756,0.0205430202,0.486256778 +-0.756242871,1.27185559,0.756242871,0.00218617404,0.255061448,0.154344082,-0.00816311873,-0.651949823,0.0207338706,1.0697124 +0.342893422,1.27190113,-0.342893422,5.82446728e-06,0.218786106,0.515928924,-2.49124479,4.95941734,0.0205204096,0.484925866 +0.370301783,1.27197242,-0.370301813,5.73240177e-05,0.112436928,0.194304243,-4.05894661,5.31442118,0.0209822394,0.523695707 +-0.465609789,1.27215862,0.465609789,0.000217388399,0.421851397,0.711621344,-1.96757686,1.69087052,0.0203374811,0.658529937 +0.34354946,1.27225339,-0.34354946,1.89488702e-07,0.172674611,0.39336887,-2.70534968,5.23546982,0.0205437765,0.485855877 +-0.439742833,1.27242541,0.439742804,0.000176735135,0.36877197,0.638499498,-3.35870028,2.33993435,0.0203643702,0.621982932 +0.343189687,1.27253163,-0.343189687,7.07814479e-06,0.173052832,0.395105898,-2.70002985,5.2755971,0.0205403995,0.485345036 +0.343742251,1.27267349,-0.343742222,1.4997494e-05,0.167697445,0.378528863,-2.74306583,5.2796731,0.020561317,0.486127615 +1.03172493,1.27270174,-1.03172505,0.00169544423,0.164886773,0.101456411,1.01512551,-0.273159325,0.0210451838,1.45924008 +0.330925405,1.27274525,-0.330925405,1.44127932e-06,0.942646861,3.32434583,1.30651259,1.56668103,0.0202007536,0.467999995 +0.33258003,1.27288318,-0.33258003,3.605771e-06,0.812245786,2.69015265,-0.0836145431,3.11570787,0.0202563107,0.470340014 +-0.391791046,1.27293205,0.391791046,0.000105574189,0.169772014,0.284849674,-4.2688942,4.6672864,0.0207181666,0.554113388 +0.373717844,1.27293444,-0.373717844,5.69441036e-05,0.119880751,0.201084971,-4.14703035,5.24868393,0.0210188329,0.528540611 +0.330924809,1.27297354,-0.330924809,4.22657e-07,0.941851556,3.3600986,1.06604815,2.02161741,0.0201960839,0.467999995 +0.359375924,1.27312601,-0.359375954,1.82080003e-05,0.0869318992,0.150082245,-3.89823675,5.81558323,0.02091025,0.508244574 +0.351480693,1.2731365,-0.351480722,2.34336439e-05,0.0946473777,0.178793326,-3.4387126,5.7106142,0.0207893532,0.497071117 +0.332598865,1.27315545,-0.332598865,1.04234914e-06,0.802659214,2.6625936,-0.319651723,3.56897569,0.020254951,0.470367461 +0.346990466,1.27318871,-0.346990466,8.38974938e-06,0.134577692,0.285387874,-3.07031417,5.50574684,0.020660203,0.490718901 +0.334655583,1.2732017,-0.334655583,4.98788904e-06,0.619966507,1.81859255,-1.33040321,4.24935389,0.0203129053,0.473275274 +0.337180138,1.27335835,-0.337180108,3.189785e-06,0.430327147,1.15294588,-1.87547529,4.73165178,0.0203698594,0.476845562 +0.337425917,1.2733742,-0.337425917,6.65185689e-06,0.41031763,1.08484983,-1.97024155,4.87413359,0.02037457,0.477193147 +0.360506475,1.27342808,-0.360506445,1.38028436e-05,0.0880816951,0.150867909,-3.93696952,5.77663326,0.0209289566,0.50984925 +0.330925405,1.27344358,-0.330925435,2.71799e-06,0.874631345,3.19605494,0.802682638,2.43844175,0.0201810095,0.467999995 +0.334694266,1.27351642,-0.334694266,1.45700926e-06,0.600044072,1.74828017,-1.53170764,4.61303282,0.0203136057,0.473330855 +-0.340417385,1.27362299,0.340417385,8.43714224e-06,0.209388345,0.494181961,-2.47054052,5.38222218,0.020328572,0.48142305 +-0.4066917,1.27363122,0.4066917,0.00014594465,0.231970936,0.400102437,-4.17649221,3.85927629,0.0206269678,0.575195074 +0.332547903,1.27365804,-0.332547903,6.90748811e-06,0.738446832,2.43705821,-0.468761504,3.83348179,0.0202515628,0.470294625 +0.337237239,1.27372563,-0.337237239,1.72149339e-06,0.401630908,1.05970812,-2.04260278,5.02868366,0.0203720778,0.476927221 +-0.354281306,1.27372932,0.354281276,1.48119625e-05,0.0843881369,0.150366351,-3.6853292,5.91932106,0.0205806624,0.501030743 +-0.330923706,1.27376485,0.330923706,3.31543106e-06,0.929422021,3.48877358,0.721787095,2.82344794,0.0197498892,0.468000054 +0.337563306,1.27379477,-0.337563306,4.22365838e-06,0.38272354,1.00029314,-2.09967566,5.077034,0.0203860234,0.477387547 +-0.352243662,1.27380788,0.352243662,6.66998812e-06,0.0902327523,0.164646164,-3.53135014,5.83906174,0.0205679163,0.498154283 +0.46590355,1.27381277,-0.46590355,0.000393279886,0.410236657,0.699616611,-2.00094223,1.28149736,0.020689521,0.659265041 +-0.340089858,1.27385581,0.340089887,6.83323242e-06,0.211141765,0.499794871,-2.46214724,5.41715622,0.0203223601,0.480960518 +-0.340022862,1.27391243,0.340022862,5.92057086e-06,0.212224662,0.503020108,-2.46806192,5.43601179,0.0203193668,0.480865538 +0.435647905,1.27393055,-0.435647875,0.000222997274,0.365009904,0.635908186,-3.47403193,2.2117734,0.0207457561,0.6162287 +0.353421748,1.2739718,-0.353421748,1.68844072e-05,0.0859073699,0.156293064,-3.62498975,5.84252787,0.0208314806,0.499814808 +-0.34016481,1.27397275,0.34016481,5.84280679e-06,0.204745546,0.48224023,-2.4911654,5.45707273,0.0203276332,0.481066465 +0.340490073,1.27400136,-0.340490103,1.80026873e-05,0.206943139,0.493506372,-2.5862298,5.41732311,0.0204918422,0.481536299 +-0.340076089,1.27401507,0.340076089,5.672197e-06,0.204303741,0.48124069,-2.48584414,5.46285582,0.0203258358,0.480940908 +0.334592521,1.27408075,-0.334592521,9.46748969e-06,0.550884306,1.58815968,-1.60050023,4.78883457,0.0203256216,0.473186135 +0.546768904,1.27411282,-0.546768963,0.000488279446,0.176100612,0.243429348,-0.358290732,0.174942985,0.0211218651,0.774008512 +1.1947155,1.27412069,-1.1947155,0.000213118357,0.228916571,0.191768572,1.03991854,-0.157559156,0.0210350584,1.68967354 +0.350874752,1.27416492,-0.350874722,1.48214713e-05,0.0883208364,0.165533826,-3.49366879,5.82083893,0.020792352,0.496215433 +0.351294249,1.27416801,-0.351294279,1.43362854e-06,0.0858547091,0.158975378,-3.52409697,5.84491253,0.0208021645,0.496810287 +-0.358235002,1.27420449,0.358235002,1.64253452e-05,0.0880272016,0.152167872,-3.86389828,5.8457036,0.0206078757,0.506624162 +-0.332460999,1.27431631,0.332460999,8.4219264e-06,0.740794778,2.52938461,-0.744337857,4.54259634,0.0198593326,0.470174074 +0.36616987,1.27433419,-0.36616987,3.22196429e-05,0.100077063,0.169134036,-4.06540012,5.55821705,0.0209765639,0.517846465 +0.337095529,1.27435613,-0.337095529,9.05494744e-06,0.371265888,0.966104448,-2.08337402,5.15480423,0.0203952193,0.476725906 +-0.398837298,1.27443326,0.398837298,4.46961822e-05,0.203006044,0.347796321,-4.23681784,4.21743727,0.0206941143,0.564174533 +-0.365130782,1.27466512,0.365130782,3.16884943e-05,0.0955373943,0.159447119,-4.07811213,5.66858482,0.0206667949,0.516383946 +0.351160586,1.27468681,-0.351160586,5.68115138e-06,0.0851970315,0.156778947,-3.53369451,5.86118937,0.0208090469,0.496622264 +-0.334414452,1.27471662,0.334414452,1.20284258e-05,0.507483363,1.49527669,-1.72603321,5.31898355,0.0199970864,0.472936779 +-0.330924749,1.27479613,0.330924749,2.00696923e-06,0.77413553,3.05445004,0.0378474891,3.91503811,0.0196823049,0.468000054 +-0.342219234,1.27488661,0.342219234,7.10450786e-06,0.161954731,0.360588074,-2.77639818,5.65282917,0.0204069819,0.483971119 +-0.360649347,1.27490056,0.360649347,1.89975854e-05,0.0885757953,0.148780778,-3.96728754,5.82474661,0.0206435286,0.510043085 +0.350589246,1.27493036,-0.350589275,1.84400669e-05,0.0843987018,0.155243963,-3.509588,5.88282681,0.0208051093,0.495810896 +-0.351661175,1.2750895,0.351661205,2.09799291e-05,0.0819175467,0.146772802,-3.58662963,5.96470642,0.0205943845,0.497329891 +-0.336864948,1.2752279,0.336864978,1.40387965e-05,0.264471591,0.674100757,-2.27856755,5.70330191,0.020159509,0.476402342 +0.361753464,1.27532518,-0.361753464,2.58133368e-05,0.0939354375,0.159991592,-3.95853376,5.62246513,0.02095595,0.511606753 +0.352095932,1.27536213,-0.352095902,2.80564636e-05,0.0864271373,0.157758892,-3.57716203,5.82240486,0.0208303947,0.497941136 +-0.332330197,1.2754004,0.332330167,4.99976295e-06,0.585769415,1.97685504,-1.08831191,5.14973736,0.0198293757,0.469987661 +0.412814796,1.27540982,-0.412814796,0.000155436108,0.26964274,0.473152012,-4.10832787,3.11058211,0.020919824,0.583880782 +-0.352357596,1.27546346,0.352357596,3.0897445e-05,0.0822234154,0.145930991,-3.62224293,5.9469943,0.0206087865,0.498314381 +0.404195726,1.27550042,-0.404195726,0.000146059116,0.229123324,0.396268427,-4.19663239,3.74876881,0.0209861081,0.571744442 +1.08470225,1.27562594,-1.08470225,0.000362694525,0.248674065,0.181864843,0.360083163,-0.0105402302,0.0209905989,1.53416061 +-1.18806517,1.2757163,1.18806517,0.000105768573,0.435526729,0.426820934,0.39416638,-0.0713896155,0.0208854135,1.68035066 +0.373567283,1.27572227,-0.373567283,1.92345778e-05,0.11471574,0.188832566,-4.23956633,5.29763508,0.0210443754,0.528341532 +-0.337085962,1.27582264,0.337085932,7.40226096e-06,0.222032025,0.552122474,-2.37219048,5.85729742,0.0201914869,0.476715475 +-0.334171057,1.27589798,0.334171087,7.01368072e-06,0.393870443,1.1313597,-1.86923218,5.69356823,0.0200174674,0.472591043 +0.681871772,1.2759608,-0.681871772,0.00160829735,0.224702299,0.159682795,-0.530419886,-0.49942708,0.0208885446,0.964828312 +0.431199014,1.27606559,-0.431199014,7.3113988e-05,0.356230348,0.627508759,-3.64064074,2.12509179,0.0207661055,0.609979987 +-0.427552938,1.27611625,0.427552938,0.000152212626,0.326920688,0.570046782,-3.68520927,2.55821705,0.0204397384,0.604708672 +0.449926794,1.2761302,-0.449926794,0.000563559821,0.41932866,0.718212128,-2.79610252,1.48469532,0.0206456557,0.636745095 +0.3724235,1.27639937,-0.3724235,2.93500761e-05,0.113125794,0.185988232,-4.22444868,5.31496906,0.0210429095,0.52671504 +-0.345821738,1.27639973,0.345821738,1.10881119e-05,0.0869740322,0.16712676,-3.27323794,5.98740816,0.0205453429,0.489067495 +-0.345703006,1.27652776,0.345703006,6.300717e-06,0.0859302133,0.164794937,-3.27349734,6.00422049,0.020545274,0.488899082 +-0.345894039,1.27653027,0.345894039,1.61242679e-05,0.0855578184,0.163529068,-3.28721166,6.00362349,0.020549316,0.4891693 +-0.336520493,1.27656031,0.336520493,9.88747888e-06,0.199074954,0.487826616,-2.35425377,5.95782089,0.0202006418,0.475913614 +1.18728232,1.27670717,-1.18728232,0.000103646147,0.390952677,0.370248914,0.322369576,-0.0456628352,0.021035973,1.67917943 +-0.345737636,1.27670753,0.345737636,8.85697318e-06,0.0854699314,0.163208544,-3.27763486,6.00568342,0.0205509719,0.488948256 +-0.546008468,1.27682519,0.546008408,0.000808793586,0.18333593,0.259947717,-0.349941492,0.462322414,0.0209200066,0.772283435 +-1.03366208,1.27692926,1.03366208,0.00136079208,0.165643066,0.105887622,1.05991399,-0.214375541,0.0210006535,1.46195853 +-0.496146083,1.27716947,0.496146053,0.000576040416,0.333320677,0.558908284,-0.707206607,1.16633356,0.0205025692,0.701976418 +0.375305116,1.27722657,-0.375305116,0.000104434446,0.125035003,0.206392497,-4.25408316,5.12918901,0.0210530944,0.530784249 +-0.344510436,1.27765131,0.344510436,1.12459275e-05,0.0827977061,0.157027692,-3.2026732,6.05640125,0.0205503646,0.487211496 +-0.413978636,1.27779746,0.413978636,0.000173176508,0.271043181,0.474603981,-4.09517097,3.12404418,0.0205625184,0.585541129 +-0.470659852,1.27780771,0.470659852,0.000514867832,0.439385802,0.748250067,-1.61212838,1.01312375,0.0203445554,0.665689528 +0.70942229,1.27786696,-0.70942235,0.00354509382,0.229388937,0.157306761,-0.335480273,-0.555118859,0.0208733007,1.00353444 +0.298716903,1.2779429,-0.298716903,4.45635033e-06,0.00977751985,0.0174456891,-0.0189140271,3.76869369,0.0216832049,0.422461689 +-0.301062763,1.2779429,0.301062763,1.05486924e-05,0.00902639143,0.0164797474,-0.0178108551,3.89175034,0.0216601584,0.425792217 +0.327526629,1.27794302,-0.327526599,1.76614344e-06,0.032305412,0.112209499,-0.631315649,6.2687397,0.0208705217,0.463193357 +0.327184856,1.27794302,-0.327184886,4.66052938e-07,0.0126285525,0.0422541276,-0.519064546,6.24930763,0.0209555738,0.462710708 +0.330921173,1.27794302,-0.330921173,3.13003375e-06,0.228881598,0.986814082,-1.72869337,6.50049162,0.0200346615,0.467999995 +0.318536043,1.27794302,-0.318536043,5.84197642e-06,0.00875060633,0.0207613949,-0.0248037539,4.76790714,0.0215126798,0.450490534 +0.31477347,1.27794302,-0.31477347,6.01674265e-06,0.00841838121,0.0186784286,-0.0166552253,4.50061464,0.0215849467,0.445159495 +0.313008368,1.27794302,-0.313008368,3.58740476e-06,0.00826088805,0.0176056717,-0.0127556389,4.37514639,0.0216189828,0.44266969 +0.311752498,1.27794302,-0.311752498,8.30838326e-06,0.00836660247,0.0175450332,-0.013219676,4.315382,0.0216286331,0.440890282 +0.32091406,1.27794302,-0.32091406,3.82113512e-06,0.0100411549,0.0254354179,-0.0591132082,5.05271721,0.0214141719,0.453845739 +0.323163986,1.27794302,-0.323163986,4.07441985e-06,0.0112442933,0.0300970059,-0.092256166,5.31761742,0.0213190075,0.457031339 +0.306627035,1.27794302,-0.306627035,1.8521805e-05,0.0086885374,0.0169371851,-0.0152606908,4.06913805,0.0216621459,0.433666646 +0.299718827,1.27794302,-0.299718857,1.44023252e-05,0.00963212829,0.0174027942,-0.0185570903,3.80719781,0.0216808543,0.423872322 +0.279088527,1.27794302,-0.279088527,2.65791314e-05,0.0121262986,0.0184261296,-0.0188565105,3.16716838,0.0216256566,0.394770652 +0.274579942,1.27794302,-0.274579942,3.56724668e-05,0.012434694,0.0183576923,-0.0162405632,3.03407073,0.0216033347,0.388336182 +0.254535675,1.27794302,-0.254535675,7.90095437e-05,0.013258066,0.0173230451,-0.00334224571,2.47287035,0.0214871876,0.36002776 +0.256357402,1.27794302,-0.256357402,5.49602046e-05,0.013218144,0.0175089426,-0.00421088375,2.52315998,0.0214985646,0.362582535 +0.289630741,1.27794302,-0.289630741,3.55549055e-05,0.0110900849,0.0182738807,-0.0197864734,3.4745388,0.0216655601,0.409670115 +0.283038318,1.27794302,-0.283038318,2.99540116e-05,0.0116646439,0.0182662569,-0.0195718221,3.28364038,0.0216425341,0.400303066 +0.268226266,1.27794302,-0.268226266,6.56877965e-05,0.0128903436,0.0181937106,-0.0131848864,2.85845852,0.0215675756,0.379417807 +0.237771049,1.27794302,-0.237771049,8.6054999e-05,0.0133209378,0.0158403181,0.00515516894,2.012748,0.0213743262,0.336259395 +0.297475666,1.27794302,-0.297475666,1.93839533e-05,0.00994740706,0.0175813865,-0.0188694503,3.72678876,0.0216815602,0.42070049 +0.236487553,1.27794302,-0.236487553,0.000121367419,0.0133269718,0.015715383,0.00574722746,1.97816956,0.0213653333,0.334449232 +0.236598447,1.27794302,-0.236598447,9.60646321e-06,0.0133297518,0.0157253258,0.00571163045,1.98078012,0.0213661771,0.334605366 +0.211799905,1.27794302,-0.211799905,0.00013767714,0.0121682491,0.0126207406,0.0130596068,1.38502538,0.0212030131,0.299563795 +0.213025853,1.27794302,-0.213025853,1.24691687e-05,0.0122890528,0.0128067648,0.0126647707,1.40509439,0.0212101415,0.301322311 +0.213792324,1.27794302,-0.213792339,0.000135350798,0.012330303,0.0128856739,0.0126235038,1.41964781,0.021215966,0.302390099 +0.166086078,1.27794302,-0.166086078,0.000105957464,0.00770089496,0.00654127169,0.0201604534,0.56079936,0.0209980663,0.235384762 +0.156857938,1.27794302,-0.156857938,0.000160076277,0.00729657756,0.00594433071,0.0201989096,0.443223327,0.0209852494,0.222018003 +0.173247963,1.27794302,-0.173247963,0.000154169174,0.00843042322,0.00740014995,0.0197983533,0.699788332,0.0210179556,0.245231465 +0.190188318,1.27794302,-0.190188318,0.000236753171,0.00989495311,0.0092915399,0.0194213334,0.935377121,0.0210890658,0.269455075 +0.0990302637,1.27794302,-0.0990302637,4.43931749e-05,0.0256186593,0.0186404157,0.103505924,0.0509084649,0.0209117811,0.140399992 +0.103052288,1.27794302,-0.103052296,0.000135969865,0.022349095,0.0160783511,0.0917085707,0.0580267981,0.0209158696,0.145848334 +0.118978009,1.27794302,-0.118978009,0.000178591115,0.00824304856,0.00559967803,0.0360437185,0.0898132473,0.0209288262,0.169304371 +0.141752034,1.27794302,-0.141752034,0.00017298173,0.00674521923,0.00505396631,0.0171237513,0.270267934,0.0209501889,0.201353908 +0.131066605,1.27794302,-0.131066605,0.000148866748,0.0074715591,0.00532979984,0.0272094607,0.197670683,0.020937359,0.185739964 +-0.186848104,1.27794302,0.186848104,0.000216565328,0.00980212633,0.00899750274,0.0170539245,0.886301637,0.021133136,0.264898688 +-0.204051107,1.27794302,0.204051107,0.000128949614,0.0117886681,0.011748068,0.0127198957,1.24010062,0.0212193225,0.288746029 +-0.169737965,1.27794302,0.169737965,0.000142420613,0.00822002813,0.00693659671,0.0188199449,0.640791297,0.0210661236,0.240196109 +-0.207982674,1.27794302,0.207982674,0.000100057237,0.0121179726,0.0122638633,0.0123321861,1.29904985,0.0212464985,0.29431203 +-0.142263234,1.27794302,0.142263234,0.000173979002,0.00667879591,0.00502000796,0.0195869617,0.262291133,0.0209955908,0.20186305 +-0.158020645,1.27794302,0.158020645,0.000145054,0.00739757996,0.00592020852,0.0201220177,0.456126034,0.0210383255,0.223604053 +-0.16476585,1.27794302,0.16476585,7.60585681e-05,0.0077138273,0.00633651856,0.0194184054,0.543375611,0.0210517123,0.233349293 +-0.130725101,1.27794302,0.130725101,0.000142253761,0.00745588541,0.00535573345,0.0273013338,0.184481055,0.0209746808,0.185206592 +-0.119754031,1.27794302,0.119754031,0.000175984766,0.00827630982,0.00568968151,0.0351600684,0.0863887817,0.020957537,0.170245528 +-0.0990628898,1.27794302,0.0990628898,4.73079199e-05,0.0263234992,0.0194456428,0.0953286812,0.0523244403,0.0209178757,0.140399992 +-0.103192642,1.27794302,0.103192642,0.000152364228,0.0232099257,0.0169426333,0.0852755904,0.0579554774,0.0209260508,0.14601925 +-0.246772811,1.27794302,0.246772826,0.000114328199,0.0135771595,0.0168984141,-0.00513758976,2.28618288,0.0215080809,0.349191308 +-0.220831767,1.27794302,0.220831782,0.000112256166,0.0129922815,0.0140360994,0.00717659714,1.60060501,0.0213338789,0.312319964 +-0.25300169,1.27794302,0.25300169,7.91946368e-05,0.0133577567,0.0175472442,-0.00714657269,2.46706581,0.0215433389,0.357936442 +-0.227879137,1.27794302,0.227879122,4.79318514e-05,0.0135034584,0.0150856497,0.00374354748,1.76964712,0.0213764645,0.322368026 +-0.264402598,1.27794302,0.264402598,7.26975995e-05,0.0127762305,0.0179021619,-0.0117592793,2.79651165,0.0216183495,0.374118924 +-0.27131471,1.27794302,0.27131474,4.62913376e-05,0.012382525,0.0181074515,-0.014022937,2.98402286,0.0216477253,0.38377592 +-0.278297782,1.27794302,0.278297782,3.31250631e-05,0.0117418692,0.0178804006,-0.0176200531,3.18658304,0.0216760356,0.393601745 +-0.28763482,1.27794302,0.28763482,2.62291906e-05,0.0107811373,0.0175532624,-0.0183151923,3.45381117,0.0216883402,0.406795144 +-0.282411486,1.27794302,0.282411456,2.59068638e-05,0.0114167882,0.0178442113,-0.018262418,3.30130482,0.0216849428,0.399454147 +-0.303537905,1.27794302,0.303537905,1.29294804e-05,0.00867787935,0.0164303742,-0.0168048255,3.98790312,0.021634547,0.429278016 +-0.292560697,1.27794302,0.292560697,2.39313504e-05,0.0102252541,0.0172346812,-0.0188246779,3.60651159,0.0216896515,0.413796365 +-0.308721066,1.27794302,0.308721095,1.32822506e-05,0.00800970849,0.0161067639,-0.0145440446,4.19409561,0.0215802807,0.436631411 +-0.312624544,1.27794302,0.312624544,7.41231906e-06,0.00793484598,0.0170594528,-0.0134603465,4.39259434,0.021514073,0.44212842 +-0.297860473,1.27794302,0.297860473,1.75134082e-05,0.00943663623,0.0167501625,-0.0181700215,3.78535604,0.0216732007,0.421247065 +-0.317655295,1.27794302,0.317655325,4.97957262e-06,0.00817650929,0.0194589291,-0.0202710889,4.73299074,0.0213640667,0.449236035 +-0.314696789,1.27794302,0.314696789,5.38553741e-06,0.00789305009,0.0174909551,-0.0113907484,4.49536991,0.0214742366,0.445059627 +-0.324194014,1.27794302,0.324194014,3.60028389e-06,0.011313701,0.031534832,-0.0909327418,5.46680069,0.0209819078,0.458485365 +-0.321366549,1.27794302,0.321366549,3.21862308e-06,0.0092326533,0.0239828471,-0.0468354151,5.09502506,0.0211879071,0.454485685 +-0.32709378,1.27794302,0.32709378,1.85287342e-06,0.0116907125,0.0397367515,-0.436383784,6.23805046,0.020614244,0.462581187 +-0.327577293,1.27794302,0.327577293,4.70876273e-07,0.0116669815,0.0406055525,-0.499574393,6.37118483,0.0205520745,0.463266015 +-0.330921173,1.27794302,0.330921173,2.08850633e-06,0.231962517,1.01409972,-1.64391017,6.55239248,0.0194373652,0.467999995 +-0.328015238,1.27794302,0.328015238,1.42287604e-06,0.0435796827,0.159082845,-0.647571206,6.3930769,0.0204131585,0.463884503 +-0.319904476,1.27794302,0.319904447,3.15619582e-06,0.00838380121,0.0207814798,-0.025356181,4.90729046,0.0212835744,0.452423036 +0.326695055,1.27794313,-0.326695055,2.455617e-06,0.0124730887,0.0409952961,-0.467707366,6.13525772,0.0209992751,0.462017208 +-0.229878157,1.27794313,0.229878172,9.94944057e-05,0.0135288127,0.015356102,0.00279596657,1.83057499,0.0213881973,0.325160772 +-0.366740853,1.27796781,0.366740853,5.04886702e-05,0.101718634,0.165637016,-4.12140751,5.51819992,0.0207399558,0.518679738 +0.338522077,1.27803266,-0.338522047,6.27906411e-06,0.093471691,0.199861184,-2.75099015,6.17525291,0.0205868576,0.478742778 +0.338424146,1.2780689,-0.338424116,4.91995479e-07,0.0958427638,0.205575362,-2.74069357,6.17426491,0.0205849297,0.478604555 +0.338457137,1.27816093,-0.338457137,2.22604925e-07,0.0912525132,0.194495842,-2.75216317,6.19154072,0.0205899253,0.478651375 +-0.357494861,1.27817917,0.357494891,2.56773164e-05,0.0865310431,0.143895,-3.87967205,5.84264374,0.0206883084,0.505587578 +0.33835265,1.27821398,-0.33835265,4.19379148e-06,0.0905976817,0.193274975,-2.74256682,6.19828892,0.020589292,0.478503168 +-0.38752532,1.27843142,0.38752532,0.000115124072,0.171263784,0.287954539,-4.24168396,4.42114258,0.0207584091,0.548089385 +0.372910738,1.27852273,-0.372910738,3.46967281e-05,0.119359456,0.196061447,-4.23178816,5.16124153,0.021058375,0.527392745 +0.338316113,1.27854276,-0.338316113,6.44344573e-06,0.0899976939,0.19017294,-2.73806548,6.19383001,0.020606501,0.478451371 +-0.331861138,1.27862239,0.331861168,5.22138271e-06,0.0837254375,0.265910625,-1.92242754,6.61357021,0.0197281279,0.469329715 +0.331964314,1.27870512,-0.331964314,7.88884972e-06,0.0845240727,0.265482605,-1.97998035,6.54595089,0.02021637,0.469475448 +0.342499226,1.27882123,-0.342499197,6.06572212e-06,0.101728097,0.200122938,-2.98649836,5.88998413,0.0207380913,0.484367132 +-0.359164745,1.2788527,0.359164745,3.98040611e-05,0.090595372,0.149503827,-3.9319334,5.74288082,0.0207087323,0.50794822 +0.345926106,1.27891326,-0.345926106,3.18431048e-05,0.0775490552,0.139478192,-3.34921694,6.06899643,0.0208057333,0.489240527 +0.481048346,1.2790302,-0.481048346,0.00081592676,0.379323602,0.635459006,-1.23087001,0.67511189,0.0207310263,0.680583417 +0.357591391,1.27911341,-0.357591391,2.29453253e-05,0.0901923478,0.151647806,-3.87842751,5.69905186,0.0209651217,0.505734026 +1.21524119,1.27917206,-1.21524119,0.000314124249,0.0830181837,0.0559188426,2.12777376,-0.0657268465,0.0210468248,1.71873116 +0.339767188,1.27924061,-0.339767188,4.76431478e-06,0.0856039748,0.174014151,-2.87367797,6.1704216,0.0206676945,0.48050338 +-0.333423793,1.27924514,0.333423793,7.47387639e-06,0.0698550493,0.177389905,-2.23294258,6.55776691,0.0200717598,0.471539259 +1.20059729,1.27925408,-1.20059729,0.000312362507,0.147888094,0.109774612,1.55623889,-0.139911145,0.0210372098,1.69798315 +1.22258031,1.2792567,-1.22258031,0.000278609397,0.0582874268,0.0384524316,2.24166298,-0.0351999663,0.0210466925,1.72911084 +-0.329622746,1.27927077,0.329622746,3.02059539e-06,0.0366581716,0.0826303288,-1.14549315,6.67331648,0.0202491991,0.466157913 +-0.34703958,1.27929187,0.34703958,8.51796449e-06,0.0837736279,0.152661651,-3.38465405,5.96815014,0.0206207912,0.490788162 +1.22869515,1.27932751,-1.22869515,0.000126714905,0.0429184586,0.044279322,2.14270282,-0.0206602123,0.0210464522,1.73775911 +-0.636141896,1.27934957,0.636141896,0.00068144477,0.179420769,0.156573296,-0.754891276,-0.538153708,0.0207586177,0.900000036 +-0.329281151,1.27936602,0.329281151,1.00620605e-06,0.0286111198,0.0553810671,-1.03235412,6.68488741,0.0203243662,0.465675682 +0.333559752,1.27939105,-0.333559752,1.1095357e-05,0.0712096542,0.180801705,-2.26908827,6.49577236,0.0204342864,0.471731544 +-0.328790843,1.27940655,0.328790843,3.81408199e-06,0.0292798989,0.0560795479,-0.939225018,6.57656145,0.0203967914,0.464981198 +0.329288244,1.27942753,-0.329288244,3.68735869e-06,0.0346109569,0.0736422613,-1.11490333,6.5480442,0.0207131803,0.465684742 +0.329022348,1.27949989,-0.329022348,9.7117163e-07,0.0296504293,0.0563528985,-1.02966428,6.5513463,0.0207620002,0.465309352 +0.328548402,1.27955508,-0.328548402,5.14356634e-06,0.0299528148,0.0563790463,-0.957756996,6.45954227,0.0208140947,0.464638233 +-0.364192724,1.27960491,0.364192724,3.24757711e-05,0.0995409116,0.162061065,-4.05663061,5.53262281,0.0207539648,0.515063882 +-0.325986922,1.27967548,0.325986922,7.40338965e-06,0.0316252373,0.056530904,-0.441776574,5.96332645,0.0208170936,0.461020797 +-0.68209672,1.27971184,0.68209672,0.00476271939,0.228891522,0.161256656,-0.550699711,-0.56973964,0.0207555424,0.965553045 +-1.19294572,1.27973557,1.19294572,0.000248346274,0.246109009,0.203043237,0.898198664,-0.139866829,0.020904908,1.68725371 +0.42237848,1.27976418,-0.42237848,0.000172301021,0.325741112,0.577172995,-3.8665657,2.2950325,0.0208464675,0.597377598 +0.325138986,1.27992725,-0.325138986,8.62989327e-06,0.0319720507,0.0554212555,-0.433245867,5.80259037,0.0211908054,0.459824413 +-0.323377073,1.28008294,0.323377043,6.68308348e-06,0.0292273797,0.0494612157,-0.327106774,5.60949373,0.0210592877,0.457328975 +-0.33540538,1.28012228,0.335405409,6.75099182e-06,0.0651544034,0.137597904,-2.46605873,6.46148872,0.0203173961,0.474341482 +0.335649967,1.28021407,-0.335649967,1.33037556e-05,0.0679645464,0.144398883,-2.48818159,6.40275478,0.0206013937,0.474687636 +0.323034137,1.28024006,-0.323034137,8.10523125e-06,0.0313187465,0.0520475097,-0.356725514,5.54509068,0.0213104505,0.456844002 +-0.465517133,1.28025162,0.465517163,0.000252259022,0.452102065,0.769223928,-1.83084619,0.793249846,0.0203143321,0.65841186 +-0.322004348,1.28028095,0.322004348,6.58693898e-06,0.0285233334,0.0467606299,-0.270803571,5.42765093,0.0211738907,0.455392838 +-0.331649959,1.28047287,0.331649959,3.72592626e-06,0.0560623482,0.110276558,-1.74927032,6.61237717,0.02025548,0.469024897 +0.320783228,1.28054512,-0.320783198,1.24150265e-05,0.0301407799,0.0478154384,-0.271088481,5.26727581,0.0214363746,0.453668624 +0.514077783,1.28058147,-0.514077783,0.000249987061,0.250242025,0.399705708,-0.371271342,0.233837754,0.0209783986,0.72751534 +-0.376320124,1.28058672,0.376320153,4.74191365e-05,0.138110176,0.227599934,-4.21024609,4.84950781,0.0208120085,0.532197893 +-0.319866955,1.2805903,0.319866955,1.03914836e-05,0.0292890798,0.0467380472,-0.255972594,5.22641563,0.021271592,0.452363789 +-0.376255512,1.2806673,0.376255512,2.43040404e-06,0.138116196,0.227611944,-4.20959473,4.84745646,0.020812653,0.532107234 +-0.418681979,1.28067446,0.418681979,0.000188229082,0.281814277,0.492426991,-3.97852612,2.74910378,0.0205137357,0.592218518 +-0.376176238,1.28067625,0.376176238,3.14576282e-05,0.137907341,0.227259964,-4.20855474,4.85103321,0.0208125301,0.531994402 +-0.331328034,1.28068757,0.331328034,1.20522327e-06,0.0533076413,0.0944928154,-1.66636169,6.62742376,0.0202853121,0.468570769 +-0.33620739,1.28072083,0.33620739,6.55633175e-06,0.0661923438,0.134448349,-2.54728699,6.40936708,0.0203909241,0.475478351 +0.359420359,1.28074753,-0.359420359,1.80860261e-05,0.0929519683,0.152802005,-3.94841385,5.60449028,0.021010343,0.508334041 +-0.376268715,1.28075492,0.376268685,2.02469472e-08,0.138368204,0.228036106,-4.20890331,4.84099674,0.0208136272,0.532125533 +0.331495762,1.28076398,-0.331495762,4.34688718e-06,0.0562155284,0.105778083,-1.72562361,6.54084921,0.0206566285,0.468806595 +-0.330801725,1.28077412,0.330801696,4.04580805e-06,0.0512601137,0.0898165852,-1.55432177,6.57104874,0.0203426462,0.467825115 +-0.44524914,1.28077888,0.44524914,0.000289484364,0.422283649,0.73079443,-2.98483801,1.19631934,0.0203379896,0.629823089 +-0.340672404,1.28079081,0.340672404,9.85071256e-06,0.0754528046,0.140045732,-2.97016597,6.20509672,0.0205545314,0.481787443 +-0.376402706,1.28080797,0.376402736,4.66112397e-05,0.139059395,0.229278415,-4.20898867,4.82893133,0.0208132174,0.532314539 +-0.376173228,1.28081977,0.376173258,5.51494632e-05,0.138237342,0.227807179,-4.20750904,4.84128141,0.0208143443,0.53199017 +0.342021435,1.28082395,-0.342021435,7.42137581e-06,0.0841532275,0.156177953,-3.05935335,6.08543634,0.0207914133,0.483691961 +-0.562279582,1.28084326,0.562279582,0.000951624592,0.165376142,0.207411945,-0.411662757,-0.120228805,0.0208954699,0.795298636 +-0.376285791,1.28089941,0.376285762,4.00596618e-05,0.138832048,0.228867963,-4.20822811,4.82908869,0.0208141599,0.532149255 +0.331273317,1.28090549,-0.331273317,1.11544171e-06,0.0546495542,0.0959755555,-1.66801751,6.54764318,0.0206800159,0.468492717 +-0.340230048,1.28091931,0.340230078,7.895802e-06,0.0747779533,0.139621645,-2.93843889,6.22487688,0.0205430593,0.481161505 +-0.31702894,1.28094232,0.31702894,1.12786638e-05,0.0301141664,0.0462096967,-0.226782829,4.95112371,0.0214042887,0.44835788 +-0.339341462,1.28097737,0.339341462,6.07800121e-06,0.0716158301,0.13680096,-2.85439348,6.27191448,0.0205092579,0.479902864 +0.330828249,1.28103137,-0.330828249,5.74736987e-06,0.0534383245,0.0929826945,-1.58776426,6.4949789,0.0207246747,0.467862368 +0.342140704,1.28103721,-0.342140704,1.58466278e-07,0.0761881322,0.138143823,-3.08961368,6.12289286,0.0208034664,0.483861178 +0.3171933,1.28104448,-0.31719327,1.28148231e-05,0.0313206315,0.0475961827,-0.25030306,4.96030426,0.0215304736,0.448581636 +0.501003921,1.28107858,-0.501003921,0.000759810384,0.292306662,0.474824518,-0.66762948,0.16732499,0.0208923612,0.7087394 +-1.21507061,1.28111148,1.21507061,0.000306923466,0.0816778094,0.0552863777,2.12046504,-0.0483337305,0.0209569,1.71852899 +-0.349464864,1.28114367,0.349464864,1.6011596e-05,0.0813871548,0.138320997,-3.54118395,5.92941427,0.0206901617,0.49421823 +0.342059165,1.28114462,-0.342059165,2.64205568e-07,0.0752689913,0.135876104,-3.08760595,6.13557911,0.0208049864,0.483745873 +0.342248648,1.28115189,-0.342248619,1.07127025e-05,0.0752335563,0.135322332,-3.1017797,6.13223505,0.0208092704,0.484013498 +1.19186127,1.2811687,-1.19186127,0.00025960186,0.232993305,0.187837437,0.807589293,-0.134715334,0.0210362505,1.685655 +-1.22251618,1.28126419,1.22251618,0.000241711066,0.0561795831,0.0369949266,2.21409583,-0.0290937666,0.0209644102,1.7290597 +-0.328272939,1.28126597,0.328272939,8.2665365e-06,0.0421806239,0.0692479089,-1.03000927,6.28272343,0.0206443984,0.464253902 +0.315517068,1.28127789,-0.315517068,7.62925947e-06,0.0319513604,0.0474235304,-0.240650564,4.81766748,0.0215746295,0.446217567 +0.342034072,1.28128922,-0.342034072,7.88313446e-06,0.0751506761,0.135065496,-3.08573055,6.13454485,0.0208105817,0.483709961 +-0.315138757,1.28132892,0.315138757,1.56756923e-05,0.0314094201,0.0471790582,-0.239176661,4.83607721,0.0214521438,0.445684135 +0.34220463,1.28133786,-0.34220463,8.90216961e-06,0.0753750354,0.135421246,-3.09896302,6.12542248,0.0208132993,0.483951688 +-0.554296732,1.28139067,0.554296672,0.000275355182,0.165255919,0.215562418,-0.367139399,-0.0337911099,0.0209203511,0.78417331 +-1.22872043,1.28139162,1.22872043,0.000110608817,0.0425398201,0.043133758,2.09852648,-0.0217510946,0.0209680591,1.73783445 +0.365687668,1.28142941,-0.365687668,3.75721502e-05,0.108173609,0.177246258,-4.06929541,5.25848866,0.0210491661,0.51723206 +0.314320832,1.28144026,-0.314320832,1.78033297e-05,0.0323541574,0.0475962013,-0.241104722,4.74581623,0.0215880312,0.4445225 +-0.397733688,1.28152132,0.397733688,0.000112831207,0.228359714,0.397555798,-4.22372818,3.56262708,0.0207067542,0.562525988 +-0.366915524,1.28153419,0.366915494,4.82057367e-05,0.110707998,0.180395737,-4.09820223,5.26309395,0.0207860731,0.518923759 +-0.341016233,1.28166246,0.341016233,1.58731873e-05,0.0740427449,0.134596169,-3.00625372,6.19534636,0.0205798745,0.482272536 +-0.333981156,1.28166485,0.333981156,2.621924e-06,0.0638590753,0.115324356,-2.17906857,6.48943138,0.0203847624,0.47232163 +0.388787091,1.28167844,-0.388787091,4.11143847e-05,0.195579797,0.334679186,-4.24363804,3.94599771,0.0210497975,0.549828291 +-0.33948496,1.28176999,0.33948496,5.19899004e-06,0.0726580843,0.131846368,-2.86324358,6.24437046,0.0205606911,0.480105817 +-0.340301514,1.28183126,0.340301514,1.0785594e-05,0.0734173134,0.133469895,-2.9527781,6.2081027,0.0205773003,0.48126173 +0.327667505,1.28186536,-0.327667534,9.83501741e-06,0.0444536507,0.0715424642,-1.01285398,6.12785578,0.0210383572,0.463400364 +-0.333734542,1.28190637,0.333734542,8.25664756e-07,0.0636143759,0.110489294,-2.13130951,6.49550724,0.0203943327,0.471973807 +-0.311447352,1.28196669,0.311447352,2.83479349e-05,0.0336143188,0.0485430621,-0.250354081,4.60656643,0.0215339325,0.440487266 +-0.333309174,1.28206074,0.333309203,4.00017143e-06,0.0622691959,0.10737294,-2.05543494,6.47723532,0.0204187483,0.471371174 +0.33403936,1.28206813,-0.33403939,3.27412113e-06,0.0654195026,0.116662204,-2.18158364,6.42609024,0.0207082648,0.472403824 +-0.325961769,1.28209126,0.325961769,7.61811043e-06,0.0422356427,0.0665554702,-0.825611353,5.95980072,0.0208937991,0.460984349 +-0.335751891,1.28209603,0.335751891,2.85653618e-06,0.0677340627,0.130674228,-2.48701143,6.39336872,0.02044506,0.474831522 +-0.0991724283,1.28212237,0.0991724283,9.98844262e-05,0.0347697213,0.0258059427,0.104088813,0.0521314517,0.0209150054,0.140399367 +0.309421808,1.28215694,-0.309421808,3.99689889e-05,0.0344615132,0.0488263182,-0.246551871,4.4543252,0.021635795,0.437619328 +-0.334068984,1.2821722,0.334068984,1.98840576e-06,0.0645197704,0.111948088,-2.18423247,6.47198009,0.0204175562,0.472445846 +0.333854884,1.28226411,-0.333854884,7.19197e-07,0.0652063638,0.112868235,-2.14678693,6.42969418,0.0207191762,0.47214368 +0.341579765,1.28238606,-0.341579765,1.15598159e-05,0.0753483102,0.134069026,-3.05269504,6.08946657,0.0208457801,0.483066916 +0.333467424,1.28247893,-0.333467424,5.14605063e-06,0.0643543303,0.110691346,-2.08480191,6.40379381,0.0207486972,0.471594781 +-0.324706733,1.28248262,0.324706733,7.51939479e-06,0.0421544462,0.0649660751,-0.718565345,5.78835011,0.0210159663,0.459214628 +0.325748742,1.28250182,-0.325748742,9.26669964e-06,0.0446088538,0.069761835,-0.873978615,5.88225079,0.021175921,0.460683078 +0.333835274,1.28252053,-0.333835274,2.00901763e-06,0.0653221458,0.112759128,-2.14828682,6.40979719,0.0207362343,0.472115666 +0.334321409,1.28259706,-0.334321439,2.829449e-06,0.0660462752,0.114264168,-2.21892595,6.39435196,0.0207432061,0.472802341 +0.998205066,1.28262281,-0.998205185,0.00141816714,0.171725243,0.103338391,1.06349707,-0.419062912,0.0209840424,1.41186047 +-0.306410909,1.28275251,0.306410939,2.77060644e-05,0.0360050611,0.0502284877,-0.259151846,4.36375332,0.0215992797,0.433341086 +0.336167276,1.28275478,-0.336167276,5.98016595e-06,0.0694472194,0.131599128,-2.52656889,6.2936573,0.0207642242,0.475415707 +0.356860638,1.28284836,-0.356860638,4.03436861e-05,0.0918949172,0.150951818,-3.85581708,5.59606266,0.0210180413,0.504707456 +-0.333989918,1.28286028,0.333989888,1.46802734e-06,0.0647475496,0.111509375,-2.18693805,6.42351913,0.0204591528,0.47233367 +-0.348670691,1.28289866,0.348670721,1.67768803e-06,0.0810579136,0.135559514,-3.52260423,5.92597961,0.0207164623,0.493097484 +-0.336610973,1.28300667,0.336610973,6.064356e-06,0.0691808462,0.122871943,-2.57180119,6.33036995,0.0205388963,0.476049155 +0.361781716,1.28300834,-0.361781716,4.02655824e-05,0.102557071,0.167724922,-3.98476171,5.35803604,0.0210458897,0.511659741 +-0.330999583,1.28306901,0.330999613,8.03180592e-06,0.0555277765,0.0915221795,-1.6374681,6.35386562,0.0205816589,0.468109965 +0.0991699398,1.28307223,-0.0991699398,9.8705932e-05,0.0355004296,0.0259710085,0.113140926,0.0511291996,0.020908393,0.140399992 +-0.348472595,1.28308356,0.348472595,1.37839152e-05,0.0809497312,0.135230452,-3.5128417,5.92590666,0.0207185168,0.492815852 +-0.348759741,1.2831018,0.348759741,1.17030208e-06,0.0812864825,0.135661915,-3.52803302,5.91450071,0.020720832,0.493222743 +-0.304033756,1.28311503,0.304033726,2.24792257e-05,0.0372312069,0.051013317,-0.262821198,4.25236845,0.021629326,0.429993749 +-0.322747439,1.28312063,0.322747469,1.18553435e-05,0.0427659899,0.0646200776,-0.666804075,5.57400036,0.021134261,0.456437498 +0.323650837,1.28312325,-0.323650837,1.42221015e-05,0.0442994647,0.0670771524,-0.712641001,5.61734676,0.0213216413,0.457724154 +0.302839398,1.28326023,-0.302839398,3.13042001e-05,0.0375203602,0.0511921085,-0.261963904,4.15377808,0.0216653999,0.428285688 +0.301840454,1.28341353,-0.301840454,1.00321331e-05,0.0379802547,0.0515426844,-0.263345331,4.10730505,0.0216693971,0.426879555 +-0.468757719,1.28343451,0.468757719,0.000256101368,0.438614964,0.742660403,-1.64095497,0.480306,0.0203207992,0.663010955 +-1.20966482,1.28345907,1.20966482,0.000243893315,0.106580257,0.075859122,1.96073842,-0.084612295,0.0209430382,1.71086025 +-0.300975204,1.28359425,0.300975204,3.79711346e-05,0.0382335298,0.0515196435,-0.265863389,4.13281631,0.021647118,0.425652087 +0.300579548,1.28362286,-0.300579548,4.28271815e-05,0.0384631231,0.0519298427,-0.26477927,4.05752182,0.0216690339,0.425090224 +-0.332697749,1.28370309,0.332697749,4.31159378e-06,0.0604539961,0.100597255,-1.94684005,6.33266401,0.0205829646,0.470510095 +0.348983228,1.283746,-0.348983198,1.75234072e-05,0.0813568011,0.135885835,-3.52931213,5.84018993,0.0209611971,0.493540257 +-0.344470263,1.28381371,0.344470263,2.83537775e-05,0.0774004012,0.131327748,-3.27904892,6.0327549,0.0206950735,0.487183154 +-0.320089519,1.28385866,0.320089519,1.29074615e-05,0.0432756767,0.0634484813,-0.579247117,5.28313923,0.0212942958,0.45268631 +0.330721974,1.28387952,-0.330721974,8.51716777e-06,0.0582621656,0.0953887329,-1.64511168,6.23268318,0.0209488403,0.467720151 +0.336468756,1.28391731,-0.336468756,1.85744057e-06,0.0701663941,0.12139073,-2.55502582,6.24755049,0.0208400767,0.475845635 +0.337368608,1.28395474,-0.337368608,1.3156945e-05,0.0708923787,0.122562476,-2.65070486,6.21336269,0.0208560545,0.477116704 +0.350813329,1.28404498,-0.350813329,2.12717296e-05,0.0838420764,0.138514504,-3.60915852,5.7694025,0.0209874567,0.496127784 +-0.349892557,1.28406692,0.349892557,1.25290244e-05,0.0839534104,0.139285177,-3.57761002,5.81415462,0.0207471289,0.494823068 +0.349552155,1.28411722,-0.349552155,6.62111779e-06,0.0820915923,0.135966018,-3.55992222,5.8108325,0.0209777374,0.494349003 +-0.348588705,1.28417516,0.348588705,1.99011502e-05,0.0825080425,0.137289032,-3.5211885,5.85171127,0.0207420401,0.492979527 +0.320316017,1.28418434,-0.320315987,1.47253113e-05,0.0454179421,0.0667471141,-0.641301453,5.28511333,0.0214494504,0.452997804 +-0.335292041,1.28425884,0.335292041,4.53739767e-06,0.0681381598,0.115777105,-2.38611889,6.29966545,0.0205954164,0.474179924 +0.900987744,1.28426969,-0.900987744,0.00421986869,0.211946756,0.121248782,0.878368855,-0.675604224,0.0208506957,1.27471972 +-0.328999341,1.28432322,0.328999341,8.22183938e-06,0.055656895,0.0890946761,-1.43044221,6.11906624,0.0207826141,0.465280235 +0.410981178,1.28438437,-0.410981178,0.000152949739,0.290355653,0.514169753,-4.09423161,2.47438383,0.0209432933,0.581297994 +-0.295770615,1.28446686,0.295770615,5.29878744e-05,0.040454708,0.053091757,-0.273181379,3.92615986,0.0216724314,0.418336987 +0.367730975,1.28448451,-0.367730975,5.94437879e-05,0.120497569,0.197222799,-4.10920906,4.98495436,0.0210765898,0.520093501 +0.342583001,1.2845192,-0.342583001,1.45146541e-05,0.0781585723,0.136463717,-3.13703012,5.94655561,0.0209092498,0.484485626 +-1.19880247,1.28455877,1.19880247,0.000362844847,0.1579656,0.116419077,1.45478058,-0.122652791,0.0209230687,1.69553733 +1.20202696,1.28456843,-1.20202696,0.000462396507,0.142579317,0.103565462,1.56572318,-0.151669115,0.021037966,1.69999754 +0.349109083,1.28456974,-0.349109083,1.50950464e-05,0.0821645632,0.135863081,-3.53721619,5.8014164,0.0209832359,0.493719965 +-0.318436801,1.28463876,0.318436831,1.79904455e-05,0.0448243581,0.065003559,-0.593979716,5.1512723,0.0213558357,0.450348437 +-0.438229799,1.2846446,0.438229829,0.0002349313,0.40112555,0.700692952,-3.30118227,1.09086335,0.0203470979,0.619892597 +0.388870448,1.28465772,-0.388870478,4.45591068e-05,0.205327466,0.352848232,-4.22418213,3.72553587,0.0210591126,0.549946666 +0.318770558,1.28468132,-0.318770587,8.76418926e-06,0.046021495,0.0666040853,-0.60912919,5.13177252,0.0215091072,0.450818717 +0.391105235,1.28470886,-0.391105235,5.99942141e-05,0.214490637,0.36998722,-4.22554731,3.59256172,0.0210575182,0.553107977 +0.335713446,1.2848047,-0.335713416,9.02804732e-06,0.0693320185,0.118272707,-2.46835184,6.19903612,0.0208903775,0.474774778 +0.33686021,1.28483069,-0.33686021,1.50271137e-06,0.0708726421,0.121436708,-2.60767722,6.1798687,0.0208828319,0.476400316 +-0.505648673,1.28484035,0.505648673,0.000261391746,0.28126505,0.461931407,-0.341059268,0.296966314,0.0206113756,0.715704203 +0.292941391,1.28485954,-0.292941391,7.8506484e-05,0.0413671881,0.054253161,-0.272916585,3.76750755,0.0216613766,0.414352298 +0.329017341,1.28486586,-0.329017341,8.69817177e-06,0.0577940121,0.0926147923,-1.50135589,6.04291821,0.0210745595,0.465305626 +0.331993699,1.28489923,-0.331993729,9.19005561e-06,0.0621220767,0.102126807,-1.89346695,6.18578434,0.0209614746,0.469516516 +-0.327879071,1.28492403,0.327879071,5.70908287e-06,0.0553147942,0.087089926,-1.31688166,5.99163485,0.0208844133,0.463701129 +0.317656815,1.28502452,-0.317656845,2.0668951e-05,0.0465624556,0.0670015663,-0.604150116,5.0512557,0.0215290729,0.449240327 +-0.290718138,1.28514647,0.290718138,5.76704879e-05,0.0415003523,0.0534754321,-0.270610094,3.74209404,0.0216760039,0.411155522 +-1.06621158,1.28536403,1.06621158,0.00115806772,0.186317354,0.126221851,0.799967885,-0.0270278528,0.0209927466,1.50800312 +-0.331181377,1.28540742,0.331181377,6.68377925e-06,0.060970284,0.0992537588,-1.79920959,6.17707634,0.0207265858,0.468368471 +0.359336734,1.28544497,-0.359336734,3.46413508e-05,0.101975292,0.166698948,-3.91691589,5.30295753,0.0210619196,0.508203447 +0.350069106,1.28548348,-0.350069106,2.38158445e-05,0.0851665065,0.140506953,-3.58248568,5.70215082,0.0210020561,0.495075226 +-0.337175786,1.2855978,0.337175786,7.42839075e-06,0.0719452575,0.121506117,-2.63906908,6.1655302,0.0206672475,0.476843804 +0.391323566,1.28571725,-0.391323566,7.58798269e-05,0.218645662,0.377971023,-4.2185297,3.50001168,0.0210585594,0.553419054 +0.390955776,1.28571844,-0.390955776,3.26399527e-06,0.217214242,0.375250697,-4.2197752,3.5201714,0.0210601557,0.552899897 +-0.2855995,1.28579748,0.28559953,5.56360683e-05,0.0423732102,0.0537229665,-0.266769171,3.56502819,0.0216775201,0.403961688 +-0.33304143,1.28580618,0.33304143,4.00008321e-06,0.0657260343,0.108370982,-2.12132454,6.17658043,0.0207091607,0.470997155 +0.32710129,1.28583264,-0.32710129,1.02309059e-05,0.0570884943,0.0891810283,-1.3221494,5.84286261,0.0212074537,0.462603986 +-0.32613501,1.28592181,0.32613501,1.23600366e-05,0.0557249263,0.0862227082,-1.24052525,5.79093361,0.0210064687,0.461228251 +0.28649506,1.28595793,-0.28649509,6.69897709e-05,0.042993892,0.0548134297,-0.277889282,3.55388904,0.0216424558,0.405192286 +-0.315075785,1.28596306,0.315075785,3.28117167e-05,0.0474344119,0.0673958063,-0.597804904,4.88525009,0.0214652568,0.445619047 +-0.334828258,1.28596961,0.334828258,6.18423928e-06,0.0681699291,0.113343246,-2.35747981,6.18379879,0.0206894055,0.473522305 +0.390892595,1.28605676,-0.390892595,1.29821285e-06,0.217723235,0.376222342,-4.21711206,3.50038719,0.0210612658,0.55281204 +-0.281555593,1.28613269,0.281555563,7.34949717e-05,0.0420092195,0.0524493903,-0.258430958,3.43404961,0.0216716286,0.398208976 +0.391176313,1.2862016,-0.391176343,0.000107928136,0.218937904,0.378517002,-4.21720695,3.47315359,0.0210603531,0.553210616 +0.33375138,1.28624392,-0.33375138,6.64954359e-06,0.0674750209,0.11166966,-2.22471285,6.12858772,0.02097404,0.472009033 +-0.353580087,1.28636312,0.353580087,2.79802352e-05,0.0912100226,0.148685291,-3.74288535,5.5378623,0.020818267,0.500042677 +0.389084756,1.28653884,-0.389084727,4.2350046e-05,0.212389648,0.365988761,-4.21006489,3.56274939,0.0210660715,0.550249696 +0.313084543,1.28654933,-0.313084573,4.69648039e-05,0.0493563786,0.069490321,-0.592841029,4.72038412,0.021602964,0.442799598 +-0.354342371,1.2865994,0.354342341,2.07407556e-05,0.0929618701,0.151011005,-3.76684546,5.49624395,0.0208262969,0.501120329 +0.330017865,1.28664255,-0.330017865,9.89769796e-06,0.0625811443,0.100590959,-1.74672198,5.99315929,0.0210807044,0.466721058 +0.282506645,1.28666198,-0.282506645,6.07832917e-05,0.044427637,0.0559208579,-0.281009644,3.4182477,0.021627279,0.399606645 +1.1977613,1.28666532,-1.19776142,0.000200062161,0.155325964,0.112901621,1.37674642,-0.147980198,0.021037085,1.69399261 +-0.338658243,1.28669024,0.338658243,2.36543401e-05,0.0736754686,0.122566335,-2.80873728,6.05518293,0.0207350627,0.478943944 +-0.328394949,1.28683019,0.328394949,8.03762578e-06,0.0598786697,0.0941983163,-1.52295899,5.90070438,0.0209294632,0.464423925 +0.277683675,1.28704214,-0.277683705,7.99813934e-05,0.0444343276,0.05493984,-0.268956125,3.2578938,0.0216052383,0.392725468 +-0.336374879,1.28705168,0.336374879,8.82299173e-06,0.071287483,0.117895059,-2.56487751,6.0749321,0.0207474362,0.475709438 +0.41683045,1.28706574,-0.41683042,0.000166690719,0.310767293,0.553177536,-3.9674027,1.99950826,0.0209083855,0.589632511 +-0.323707163,1.28709149,0.323707163,1.05972003e-05,0.0557550602,0.0839398131,-1.11531568,5.5224371,0.0211709198,0.457802534 +-0.334383637,1.28713143,0.334383637,4.79726259e-06,0.0687976032,0.113177694,-2.33238244,6.08692312,0.020764716,0.472897708 +-0.274364412,1.28714859,0.274364412,0.000103756123,0.0433816761,0.0532327257,-0.254469782,3.19553113,0.0216462463,0.388089418 +-0.353143394,1.28721583,0.353143394,1.28304682e-05,0.0920021385,0.149530813,-3.7195344,5.5078001,0.0208311733,0.499427557 +0.337468922,1.28725553,-0.337468892,1.21283038e-05,0.07344006,0.12306121,-2.69747257,6.0000596,0.0209785029,0.47725457 +-0.331751734,1.28727984,0.331751704,7.062441e-06,0.0655977726,0.106191091,-1.99543381,6.04552555,0.0208165906,0.469179571 +0.327973664,1.28737068,-0.327973664,7.34861896e-06,0.0612133518,0.0958972648,-1.53056049,5.79265356,0.0212165024,0.4638336 +-0.361095548,1.28747535,0.361095548,3.94214658e-05,0.111188017,0.181484908,-3.97424173,5.12349892,0.0208551977,0.510679245 +0.324123263,1.28752589,-0.324123263,1.23817335e-05,0.0582060218,0.0884173959,-1.21747661,5.52168751,0.0213513114,0.458382189 +-0.31034404,1.28766668,0.31034404,3.23834975e-05,0.050821431,0.0711032748,-0.613947749,4.6066885,0.0215491522,0.438903302 +-0.353651464,1.287678,0.353651434,3.72849754e-05,0.0935299695,0.151777565,-3.7392354,5.45488548,0.020841524,0.500145018 +0.271454006,1.28778613,-0.271454006,0.000148340012,0.0450577065,0.0545248985,-0.260283321,3.06209326,0.0215713829,0.383980453 +-0.335157692,1.2880832,0.335157692,8.53710299e-06,0.0711036399,0.116770566,-2.4555378,6.01319408,0.020793898,0.473991573 +-0.4019849,1.28813088,0.40198487,0.000131281486,0.265421569,0.470038742,-4.15934849,2.74812365,0.0206693318,0.568577886 +-0.322298676,1.28825903,0.322298676,1.89846087e-05,0.0572740436,0.0855199173,-1.12712467,5.3826313,0.0212418362,0.45581007 +-0.330074072,1.28831267,0.330074072,8.58337626e-06,0.0652821139,0.103868283,-1.8516854,5.89863777,0.0209166724,0.466800302 +0.3227337,1.28832889,-0.3227337,6.508901e-06,0.0587678552,0.0879825577,-1.16913736,5.3717227,0.0214188676,0.4564237 +-0.308137387,1.28845274,0.308137417,2.62360427e-05,0.0525204092,0.0730296671,-0.622095287,4.48070145,0.0215870775,0.435797215 +0.38981986,1.28853488,-0.38981986,6.35238684e-05,0.219822228,0.380238354,-4.2085557,3.37307835,0.021067569,0.551289141 +-0.393505901,1.28860343,0.393505901,0.000106796528,0.235929787,0.413017005,-4.18841839,3.17332077,0.0207511187,0.556557655 +0.345349938,1.28875494,-0.345349938,2.01325674e-05,0.0832398161,0.136073142,-3.3264091,5.6590147,0.0210621506,0.48839879 +0.324658751,1.28882313,-0.324658751,6.45956e-06,0.0614949502,0.0934845209,-1.37675011,5.47173595,0.021363955,0.459139705 +-0.267753333,1.28884745,0.267753363,0.000165098652,0.0466819331,0.055874411,-0.273810834,2.99355364,0.0216194876,0.378856897 +0.321715534,1.28888643,-0.321715504,2.34973504e-05,0.0594180822,0.0884686261,-1.15861893,5.28736925,0.0214450266,0.454980284 +0.306975931,1.28891933,-0.306975931,3.71314018e-05,0.0541148856,0.0748381093,-0.625525892,4.38171625,0.0216496997,0.434135854 +-0.556843579,1.28908384,0.556843579,0.000652187562,0.165421858,0.20926632,-0.348349065,-0.197411746,0.0208859388,0.787683964 +-0.368445128,1.28913152,0.368445158,7.33563575e-05,0.135954231,0.224292129,-4.0879674,4.64489603,0.0208756607,0.521178782 +0.353542387,1.28916192,-0.353542387,2.75185739e-05,0.0976199061,0.159348354,-3.73660707,5.30310392,0.0210817009,0.500014365 +0.338162035,1.28925586,-0.338162065,1.62332599e-05,0.0757348016,0.123957604,-2.78914785,5.84923697,0.0210600086,0.478238523 +0.306011051,1.28926039,-0.306011081,1.23368227e-05,0.0548513047,0.0756710097,-0.628227234,4.32798529,0.0216561574,0.43277812 +-0.325335026,1.2893573,0.325335026,9.08701531e-06,0.0615073852,0.0935810208,-1.42588007,5.52620697,0.0211555231,0.46009776 +-0.323680252,1.28938293,0.323680252,1.05796171e-05,0.0600383915,0.090339236,-1.28811014,5.42281008,0.0212139562,0.457764626 +0.333861083,1.28944564,-0.333861083,1.21056501e-05,0.071836412,0.116520219,-2.34624219,5.8670187,0.0211003069,0.472155422 +-0.305295944,1.28947651,0.305295944,4.53484536e-05,0.054383114,0.0751473606,-0.632109582,4.34828377,0.0216123257,0.431762666 +0.376594841,1.28949594,-0.376594841,0.00010750338,0.170655906,0.287389964,-4.16177845,4.07380772,0.0210986454,0.53260833 +0.259311795,1.28954554,-0.259311795,0.000124013561,0.0478017069,0.0554434471,-0.256098688,2.68106794,0.0215006508,0.366756648 +0.304766834,1.2897346,-0.304766834,5.21589573e-05,0.0558013469,0.076802671,-0.63253957,4.27009201,0.0216581728,0.431012154 +-0.385576904,1.28974319,0.385576904,0.000115799601,0.205858946,0.355077863,-4.18879557,3.57673931,0.0208108388,0.545364141 +0.257673323,1.28976679,-0.257673323,0.000162276643,0.0480467826,0.0552667826,-0.254899055,2.63079643,0.0214901939,0.364458621 +0.329239249,1.28987586,-0.329239249,1.86206689e-05,0.0677661821,0.10648486,-1.85779357,5.71184874,0.0212330464,0.465624273 +-0.550154269,1.28987968,0.550154209,0.000639986538,0.168734789,0.220782027,-0.319304466,-0.266140968,0.0208847281,0.778185487 +0.323191702,1.28990042,-0.323191702,1.78855244e-05,0.0619951114,0.0929961875,-1.3178761,5.33226871,0.0214223396,0.457065761 +-0.362903178,1.28992748,0.362903178,6.01074898e-05,0.121435441,0.198403686,-3.997756,4.86127043,0.0208925456,0.513242543 +0.374102771,1.29005504,-0.374102771,4.90840903e-05,0.162156016,0.27150774,-4.14492798,4.17040586,0.0211011954,0.529078603 +-0.34317559,1.29007494,0.34317559,7.68093287e-06,0.082325913,0.133762181,-3.20528126,5.6946516,0.0208539423,0.485323638 +0.336353958,1.29020762,-0.336353958,1.07023143e-05,0.075097695,0.121711776,-2.62660313,5.78831196,0.0211115163,0.475677907 +-0.359983444,1.29021299,0.359983444,3.87865657e-05,0.114187755,0.185994595,-3.92432117,4.98878622,0.0208952986,0.509111702 +-0.34288469,1.2902211,0.34288466,6.26206429e-06,0.0822147503,0.13380459,-3.1868341,5.6945138,0.0208544265,0.484912217 +0.338218033,1.29024851,-0.338218063,1.86045545e-05,0.0769903362,0.125323668,-2.80765438,5.77377987,0.0210898537,0.478318036 +-0.327903479,1.29024994,0.327903479,9.28527606e-06,0.065958634,0.102448247,-1.73626757,5.65936184,0.0210634787,0.463729799 +-0.319333434,1.29030108,0.319333434,2.88007122e-05,0.05969356,0.0876374915,-1.11869824,5.10286522,0.0213724282,0.451640785 +-0.342903972,1.29037094,0.342903972,7.17563717e-06,0.0823305324,0.133609906,-3.18862367,5.68657494,0.0208593532,0.484939516 +-0.342932135,1.29037523,0.342932135,4.83706935e-06,0.0823678896,0.133672848,-3.19113898,5.68532848,0.0208595842,0.484979421 +-0.342928827,1.29038644,0.342928797,1.14596155e-09,0.0823762789,0.133672029,-3.19088578,5.68481207,0.020859899,0.484974712 +-0.342935741,1.29039156,0.342935741,5.37247206e-06,0.0823915452,0.133692831,-3.19136763,5.68421793,0.020860048,0.484984457 +-0.342926204,1.29039395,0.342926204,2.25910135e-08,0.0823827386,0.133676812,-3.1907208,5.68432093,0.0208601374,0.484971017 +-0.342931598,1.29041755,0.342931598,1.07657434e-05,0.0824245736,0.133737028,-3.19125247,5.68243361,0.0208606347,0.484978616 +0.332128018,1.29053974,-0.332128018,1.34828906e-05,0.0715263486,0.113911115,-2.19547033,5.73323631,0.0211872216,0.469703674 +-0.329306722,1.29058135,0.329306722,6.51116625e-06,0.0677417368,0.106064558,-1.88451409,5.70060444,0.0210254863,0.465719998 +0.343089491,1.29058945,-0.343089491,1.03951206e-05,0.0830954388,0.135225162,-3.18799305,5.61758661,0.0210933331,0.485203415 +-0.331598967,1.29060805,0.331598967,5.22798746e-06,0.0701656938,0.111190662,-2.12867379,5.75564575,0.0209705885,0.468954384 +-0.333056927,1.29061246,0.333056927,6.01832517e-06,0.0717218816,0.11479564,-2.29440522,5.80619001,0.020924015,0.471019685 +0.343435377,1.29066491,-0.343435347,3.97500162e-06,0.0835833102,0.135980561,-3.21832871,5.60189342,0.0210961401,0.485693842 +-0.255787343,1.29066932,0.255787343,0.000179935174,0.0504983366,0.0582448691,-0.274406612,2.6129756,0.0215421952,0.361872137 +0.343129575,1.29094303,-0.343129605,8.35558876e-06,0.0835661441,0.135721698,-3.19613767,5.59017277,0.0211039353,0.485260248 +0.343719065,1.29094994,-0.343719065,2.07259309e-05,0.0843261257,0.136988565,-3.23496246,5.57128572,0.0211025774,0.486093849 +0.333948612,1.29096234,-0.333948612,4.78092534e-06,0.073846221,0.118560538,-2.40689945,5.74812603,0.0211584847,0.472283095 +0.343396783,1.29100657,-0.343396783,1.77590357e-06,0.0839851499,0.13640818,-3.21666455,5.57872629,0.0211039819,0.485638767 +1.06803393,1.29101872,-1.06803393,0.00109060062,0.191158816,0.124078497,0.639036238,-0.031445995,0.021038359,1.51058578 +0.408381283,1.29105687,-0.408381283,0.000171247782,0.292228222,0.517846525,-4.07980394,2.1370368,0.0209713187,0.577615261 +0.356226027,1.29129839,-0.356226027,4.44316902e-05,0.107214317,0.174219638,-3.80541062,5.03288269,0.0211207867,0.503803968 +-0.341430366,1.29131126,0.341430366,5.896824e-06,0.0819723457,0.132447764,-3.08440971,5.6490984,0.0208920576,0.482855439 +-0.333720922,1.29131293,0.333720952,9.57977772e-06,0.0735441446,0.117598437,-2.39612436,5.75217104,0.0209443048,0.471958071 +0.317593187,1.29132986,-0.317593217,4.29163229e-05,0.0624637902,0.0910575762,-1.12803221,4.93764877,0.0215427019,0.449176222 +-0.300322682,1.2913779,0.300322682,6.52562812e-05,0.0583398044,0.0800657719,-0.654061794,4.1118865,0.0216516946,0.424776018 +0.34348774,1.29147482,-0.34348774,9.18408296e-06,0.0848466605,0.137689948,-3.22545958,5.54114819,0.021110842,0.485766292 +-0.249619931,1.29153705,0.249619931,0.000258872751,0.0521065257,0.0582523681,-0.273648798,2.41684842,0.0215074476,0.353211492 +0.242805302,1.29173338,-0.242805302,0.000195258632,0.0516917296,0.055912938,-0.251196235,2.18833661,0.0213874876,0.343379557 +-0.325964689,1.29174054,0.325964689,1.21905032e-05,0.0666408092,0.101825885,-1.66006231,5.46195984,0.0211740956,0.460994124 +0.432762295,1.29185355,-0.432762295,0.000142739882,0.362982363,0.63051635,-3.49499202,0.780687511,0.0207833871,0.612039983 +0.333222449,1.29204202,-0.333222449,1.05990821e-05,0.0746599734,0.119023576,-2.38231921,5.65922308,0.0211958271,0.4712556 +-0.348033398,1.2921555,0.348033398,1.559464e-05,0.0922075361,0.149074718,-3.50005698,5.37408066,0.0209054612,0.492212981 +-1.17814279,1.29216683,1.17814279,0.000138966527,0.289084196,0.240916818,-0.122944534,0.143715292,0.0209120642,1.66629124 +0.239416733,1.29218793,-0.239416733,4.11035944e-05,0.0525414199,0.0559895188,-0.250450462,2.08825994,0.0213633087,0.338599652 +0.23908402,1.29221475,-0.23908402,0.0002743855,0.0525601506,0.05595107,-0.250133097,2.07978511,0.0213607512,0.3381311 +0.326827615,1.29224229,-0.326827586,1.49290745e-05,0.0696444958,0.107301988,-1.80108714,5.45624352,0.0213359464,0.462216139 +-0.3324458,1.29228449,0.3324458,6.79723053e-06,0.0736941844,0.116715297,-2.30680871,5.66054583,0.021000253,0.470154166 +0.364735305,1.29234338,-0.364735305,3.29553623e-05,0.133387953,0.219940633,-4.02779675,4.52252579,0.0211218931,0.515820682 +0.29745695,1.29245424,-0.29745692,9.59264507e-05,0.0614461824,0.0837782845,-0.657705784,3.9431088,0.0216644946,0.420738816 +-0.328006417,1.29248214,0.328006417,9.29883572e-06,0.0696500763,0.107406534,-1.8701483,5.4987421,0.0211319085,0.46387884 +0.351144731,1.29258263,-0.351144731,4.23107267e-05,0.0985182524,0.15940702,-3.61910963,5.175313,0.0211332478,0.496614218 +0.37486738,1.29275763,-0.37486738,2.55473115e-05,0.175643727,0.297195226,-4.14297342,3.89100194,0.0211072303,0.53017056 +0.353564441,1.29293871,-0.353564441,2.07092726e-05,0.104138769,0.168745175,-3.71734548,5.04536629,0.0211357493,0.500054598 +-0.29519248,1.2929461,0.29519248,7.03643163e-05,0.0612272322,0.0831293166,-0.650695741,3.90116739,0.0216640104,0.417483062 +-0.231894314,1.29298544,0.231894314,0.000225129595,0.0544227213,0.0563301891,-0.254429787,1.89944279,0.0213810727,0.328004897 +-0.349332213,1.29307842,0.349332184,2.10672424e-05,0.0956930667,0.154164374,-3.55099392,5.25677776,0.020927107,0.494047046 +-0.315099508,1.29311633,0.315099508,3.12832999e-05,0.0639883056,0.0927095935,-1.14723086,4.79609537,0.0214728471,0.445628673 +-0.230076671,1.29313862,0.230076671,9.75290386e-05,0.0547122173,0.0559198633,-0.252920359,1.84012508,0.0213703029,0.325464427 +-0.347289383,1.29319859,0.347289383,1.83858192e-05,0.092640385,0.149310455,-3.45708275,5.33432245,0.0209272243,0.491156906 +0.376764178,1.29323697,-0.376764178,4.77357971e-05,0.185708478,0.316197842,-4.15091562,3.72774386,0.0211004596,0.532855213 +0.368189931,1.29324305,-0.368189931,3.94921481e-05,0.149401411,0.24850072,-4.06024027,4.25199223,0.0211237222,0.520702004 +0.363728374,1.29345322,-0.363728404,3.20866202e-05,0.133409411,0.219951689,-3.99951792,4.49202681,0.0211293213,0.514397144 +-0.323723257,1.29356849,0.323723257,1.47569162e-05,0.0680793226,0.102500014,-1.60966539,5.24426365,0.0212838333,0.457840145 +-0.33743149,1.29360974,0.33743149,5.08042422e-06,0.0806808323,0.128940135,-2.79613495,5.56613493,0.0209721308,0.4772003 +-0.223663598,1.29365695,0.223663583,0.000250403536,0.0546595454,0.0539894626,-0.246329427,1.67411864,0.0213309396,0.31632337 +-0.337495178,1.2936784,0.337495208,8.95366884e-06,0.0808444694,0.129165605,-2.80432415,5.55973577,0.0209744833,0.477290452 +-0.337371856,1.29368174,0.337371856,5.08336871e-06,0.0807036236,0.128879473,-2.79222846,5.56032467,0.0209759437,0.477115929 +-0.337475866,1.29372764,0.337475866,4.45851045e-09,0.0808799043,0.129173309,-2.80320764,5.55665827,0.0209761467,0.477263242 +-0.337460488,1.29374492,0.337460488,9.16664646e-07,0.0808855966,0.129167303,-2.80228114,5.55540133,0.0209768321,0.477241427 +-0.337491691,1.29374695,0.337491691,9.64338687e-06,0.0809235722,0.129235446,-2.80482411,5.5549531,0.0209765509,0.477285534 +-0.398632407,1.29375911,0.398632407,0.000107361193,0.264751971,0.46871379,-4.18137884,2.49595213,0.0207042433,0.563794851 +-0.337454736,1.29378128,0.337454766,1.79934091e-06,0.0809405297,0.129243135,-2.80294037,5.55272865,0.0209776703,0.477233291 +1.09524345,1.29400897,-1.09524345,0.000347302528,0.203821942,0.139961928,0.0666887835,0.037896309,0.020993745,1.54908967 +-0.337517112,1.2940433,0.337517142,1.1615628e-05,0.0814487413,0.130016133,-2.8125298,5.53207922,0.0209820289,0.477321357 +0.334790081,1.29416502,-0.334790081,1.19380356e-05,0.0788696855,0.125355959,-2.57674551,5.50536537,0.0212200992,0.473466694 +-0.361193895,1.29417789,0.361193895,4.33415444e-05,0.126914784,0.207814232,-3.95091939,4.6334095,0.020928707,0.510812521 +-0.380055338,1.29420352,0.380055338,9.26229259e-05,0.195557669,0.335352123,-4.15216684,3.57317257,0.0208559688,0.537557721 +-0.330126107,1.29430771,0.330126107,1.5757545e-05,0.074480623,0.115763955,-2.16790962,5.46282196,0.0211172663,0.466887057 +0.329513699,1.29434204,-0.329513699,1.29921773e-05,0.0744999722,0.115904421,-2.09859228,5.41341114,0.0213064607,0.466009378 +-0.290282786,1.2943691,0.290282786,6.53510506e-05,0.0639071316,0.086085543,-0.644922376,3.70996714,0.0216740035,0.410583615 +-0.313153386,1.29443491,0.313153386,1.72054752e-05,0.0661382601,0.095342204,-1.16638947,4.6590004,0.0215179399,0.442891121 +0.365036935,1.29445374,-0.365036935,1.56565566e-05,0.139898047,0.231324479,-4.0180831,4.35103035,0.0211333688,0.51625526 +0.36435771,1.29456258,-0.36435774,1.307411e-05,0.13782078,0.227620289,-4.00650501,4.3811202,0.0211355463,0.515298486 +-0.20979932,1.29465342,0.20979932,0.000231577724,0.0541431569,0.0492310673,-0.229763493,1.32374918,0.0212357342,0.296885818 +-0.333663344,1.29470634,0.333663344,7.51719199e-06,0.0782808214,0.123334549,-2.49094439,5.49447536,0.0210442934,0.471872121 +0.324463487,1.29470754,-0.324463516,1.83352604e-05,0.0718428344,0.108482279,-1.74622464,5.19821692,0.0214303229,0.458877742 +0.216052085,1.29471147,-0.21605207,0.000304613262,0.0548974425,0.0517866984,-0.237564445,1.46807182,0.0212050322,0.305593222 +-0.348191291,1.29475141,0.348191291,1.35709824e-05,0.0967649072,0.155621693,-3.5021596,5.18748569,0.0209528133,0.492438555 +0.215112969,1.2947557,-0.215112954,3.06604052e-05,0.0547757223,0.0514471009,-0.236530483,1.44858944,0.0211978871,0.304284632 +0.213653758,1.29481566,-0.213653758,0.000303806009,0.0543807819,0.0507175028,-0.234505758,1.42254567,0.0211894121,0.302191705 +0.291232377,1.29485607,-0.291232377,8.29271303e-05,0.0654825419,0.0881588012,-0.674022794,3.70365667,0.0216522478,0.411892474 +-0.205719993,1.29498816,0.205719978,0.00028253725,0.0535494201,0.0476779267,-0.226974666,1.25673938,0.0212069508,0.291112155 +-0.286364943,1.29510236,0.286364943,9.096133e-05,0.0647222698,0.0860337168,-0.622784615,3.57483721,0.0216725953,0.405010521 +0.312070012,1.29519415,-0.312070042,3.00488446e-05,0.0680471137,0.0976175293,-1.18180358,4.55635881,0.021607222,0.44133994 +-0.345805705,1.29524851,0.345805705,1.95065059e-05,0.0936343819,0.1500002,-3.38085294,5.23143864,0.0209726859,0.489049643 +0.191980228,1.29529738,-0.191980228,0.000511883118,0.047336489,0.0378807262,-0.194084644,0.938900292,0.0210751351,0.271990478 +-0.805209935,1.29539132,0.805209935,0.00322949607,0.248952746,0.140694231,0.357643485,-0.749341369,0.0207383148,1.14022005 +0.311200202,1.29574656,-0.311200231,7.58551414e-06,0.0688937381,0.0986130163,-1.18523836,4.49742794,0.0216160901,0.440116614 +-0.320421398,1.29576254,0.320421398,1.79814742e-05,0.0704694465,0.104381554,-1.54710686,4.96588993,0.0213897098,0.453149021 +0.527468026,1.29578757,-0.527468026,0.000330367126,0.205657572,0.297565043,-0.331291497,-0.522588253,0.021037152,0.746012568 +-0.125158384,1.29588854,0.125158384,0.000347916794,0.0260326844,0.0140266931,-0.0838940591,0.0476124696,0.0209491197,0.17794168 +-0.188604206,1.29592347,0.188604206,0.000463760458,0.048653461,0.0380477756,-0.202557415,0.880595922,0.0211199075,0.267381698 +-0.310571373,1.29609346,0.310571373,3.89769775e-05,0.0686084181,0.0983219892,-1.1844728,4.51088762,0.0215518642,0.439223468 +0.125113279,1.29614282,-0.125113279,0.000354103104,0.0260418206,0.0139546059,-0.0893575698,0.051598832,0.0209171306,0.178023309 +-0.314135492,1.29615963,0.314135492,2.43733884e-05,0.0693313032,0.100437351,-1.30950928,4.65022469,0.0215083081,0.444268823 +-0.333420306,1.29618585,0.333420306,6.29339047e-06,0.0801821798,0.12538439,-2.5168643,5.37558126,0.0210949201,0.471531034 +-0.135702133,1.29619563,0.135702133,0.000286438793,0.0290085282,0.0162431281,-0.113171875,0.158035859,0.0209650472,0.192260966 +0.340722919,1.29622972,-0.340722919,1.65572328e-05,0.088186793,0.140736014,-3.08212876,5.27344036,0.0212099124,0.48186177 +0.175461635,1.29626799,-0.17546165,0.000328057155,0.0421956778,0.0303232688,-0.181017756,0.689975023,0.0210039429,0.248364925 +0.336217463,1.29631853,-0.336217463,1.32417254e-05,0.0831685364,0.131517932,-2.7696321,5.33732462,0.0212515835,0.475490332 +-0.146018103,1.2963506,0.146018103,0.000349917507,0.0317439884,0.0184613373,-0.140420318,0.238356858,0.0209839847,0.207180679 +-0.333943367,1.29637468,0.333943367,2.63882225e-06,0.0809331015,0.126733273,-2.57045364,5.37012434,0.0210893862,0.472271591 +-0.17207469,1.29638755,0.172074705,0.000301350257,0.0423972197,0.0294790268,-0.180991203,0.627496243,0.0210531969,0.24350445 +0.287294298,1.2964294,-0.287294298,7.66814628e-05,0.068647176,0.0921188667,-0.685139298,3.54872131,0.0216399115,0.406379342 +-0.321118742,1.29643941,0.321118742,1.07748037e-05,0.0720704123,0.107193835,-1.63611221,4.98177385,0.0213769749,0.454135478 +0.168424889,1.29646444,-0.168424889,0.000219177819,0.039177835,0.0262554977,-0.170735136,0.543838501,0.0209841635,0.238698214 +-0.167154923,1.29647624,0.167154938,0.000159363015,0.0402937531,0.0267101973,-0.173203051,0.524966121,0.0210386254,0.236735523 +-0.160788208,1.29648447,0.160788193,0.000297121209,0.0376125127,0.0240877066,-0.162862897,0.435353398,0.0210256577,0.227519274 +0.310060769,1.29651737,-0.310060769,4.25523103e-05,0.070117943,0.100156389,-1.19329607,4.43180084,0.0216207579,0.438498825 +-0.412448108,1.29659986,0.412448108,0.000190362829,0.314065516,0.557082713,-4.05662918,1.41305268,0.0205622744,0.583417058 +-0.428048939,1.29660463,0.428048939,0.000319133571,0.358920991,0.629760444,-3.62292719,0.715724349,0.0204303041,0.605630755 +-0.341961563,1.2966665,0.341961563,2.80191725e-05,0.0907309204,0.144545734,-3.16748834,5.24312401,0.0210087132,0.483623922 +0.34151417,1.29678786,-0.34151417,3.35048389e-06,0.0899573416,0.14341934,-3.14738798,5.21304846,0.0212167669,0.48298344 +0.327548504,1.29679883,-0.327548534,1.26274572e-05,0.0768057778,0.117331959,-2.0785327,5.1685791,0.0213998109,0.463231862 +0.160077229,1.29681647,-0.160077244,0.000325945672,0.0363657176,0.0232224725,-0.162134752,0.424901634,0.0209719744,0.226574898 +-0.454947591,1.29683304,0.454947621,0.000169180639,0.41170007,0.695918739,-2.33193326,-0.204873472,0.0203121137,0.643403411 +0.136283994,1.29696703,-0.136283994,0.00029610403,0.0297251232,0.0166091993,-0.122567296,0.16930975,0.0209242348,0.193129897 +0.311417401,1.29698181,-0.311417371,1.86943616e-05,0.0709913447,0.101811059,-1.2592361,4.47044277,0.021613054,0.440416634 +0.335386336,1.29698896,-0.335386306,3.58507759e-06,0.0832266435,0.130990893,-2.71416426,5.29231215,0.0212741438,0.474316359 +-0.333939403,1.29699838,0.333939403,1.20972718e-05,0.0819936022,0.128221706,-2.59023476,5.32407951,0.0211021248,0.472264975 +0.314782798,1.29703939,-0.314782798,1.28612774e-05,0.0719439834,0.104467295,-1.40602887,4.62643814,0.0215797424,0.445171297 +0.318742126,1.29712653,-0.318742096,2.21037262e-05,0.073009409,0.107506782,-1.55879974,4.81030893,0.0215367042,0.450775385 +0.347394258,1.2971884,-0.347394258,2.53673643e-05,0.0999272913,0.160759628,-3.48326802,4.9837079,0.0211937744,0.491306394 +0.362388521,1.29729378,-0.362388521,3.62832361e-05,0.139025554,0.229429856,-3.95885396,4.27689886,0.021155702,0.512497544 +0.32052958,1.29734647,-0.32052961,1.38980531e-05,0.0742888302,0.110382624,-1.68097115,4.90257359,0.0215047263,0.453301042 +-0.320803255,1.29734671,0.320803225,8.86699763e-06,0.0735575929,0.109301984,-1.67408979,4.92483521,0.0213924423,0.453695297 +0.340842664,1.29736733,-0.340842664,6.63327273e-06,0.0900166482,0.14316231,-3.108706,5.18394661,0.0212307777,0.482031345 +0.145942777,1.29741943,-0.145942777,0.000348608766,0.0325645283,0.0188447237,-0.151827529,0.245701298,0.0209362041,0.207308084 +0.282221884,1.29742169,-0.282221913,9.97763491e-05,0.0702872574,0.092967093,-0.658675551,3.37124872,0.0216190815,0.399143398 +-0.320147902,1.29745388,0.320147872,2.34396393e-05,0.0735170916,0.10898938,-1.648314,4.89744711,0.0214045644,0.452763766 +-0.279021353,1.29747069,0.279021323,0.000130407701,0.0689897835,0.0905778334,-0.614755154,3.30869627,0.0216527618,0.394676149 +0.336302966,1.29748297,-0.336302966,5.16883892e-06,0.0849993303,0.133908734,-2.79425335,5.24629211,0.0212732721,0.475611448 +-0.331232429,1.29756975,0.331232429,6.66894903e-06,0.0806292072,0.124813713,-2.4105556,5.24150705,0.0211660489,0.468434155 +0.342024267,1.29764307,-0.342024267,1.17338323e-05,0.092065379,0.146662652,-3.18381262,5.13313484,0.021226095,0.483700514 +0.324811399,1.29772985,-0.324811399,1.61758544e-05,0.0767658055,0.115956821,-1.94432092,5.0517745,0.0214445908,0.459369957 +0.435630649,1.29778695,-0.43563062,0.00020903704,0.376569688,0.650647819,-3.32411528,0.162837178,0.0207684785,0.616148651 +0.333671987,1.29779971,-0.333672017,1.34515049e-05,0.0829200074,0.129587457,-2.61103249,5.22028446,0.0213124361,0.471887052 +-0.323811084,1.29791069,0.323811084,1.23534273e-05,0.0760184601,0.114218868,-1.88997078,5.00286484,0.02133522,0.457939029 +-0.360027105,1.29791737,0.360027105,9.59133558e-06,0.132546663,0.217537567,-3.91196728,4.41082382,0.0209568962,0.509186029 +0.111793309,1.29797137,-0.111793302,0.000279576343,0.0275067836,0.0149328979,-0.0132981669,0.00362384971,0.0209060051,0.158226788 +-0.326689571,1.29800904,0.326689571,1.20232053e-05,0.077557385,0.117834352,-2.0679667,5.10854673,0.0212724637,0.462014198 +0.330214262,1.29803848,-0.330214262,1.86907637e-05,0.0803758875,0.124101825,-2.34750128,5.18227386,0.0213636998,0.467007518 +-0.327921212,1.29812193,0.327921212,1.16979609e-05,0.0788238794,0.120511152,-2.1761229,5.15115643,0.0212407,0.463754594 +-0.347621918,1.298244,0.347621918,2.12850664e-05,0.102982223,0.16545552,-3.49594092,4.94415665,0.0209985711,0.491618991 +-0.974610031,1.29828584,0.974610031,0.00171222584,0.186436832,0.114014871,1.06645787,-0.482430845,0.020922767,1.37838149 +-0.516836822,1.29836226,0.516836822,0.000949847337,0.238427073,0.357201159,-0.358901292,-0.441250056,0.0206624549,0.731347859 +0.319035619,1.29847002,-0.319035619,1.19915585e-05,0.0754549429,0.111409426,-1.66304493,4.78475046,0.0215341076,0.451191694 +0.556190729,1.29861736,-0.556190729,0.000930803828,0.165813774,0.205233887,-0.354890406,-0.603646338,0.021091558,0.78728193 +0.320664763,1.29864132,-0.320664763,1.08296772e-05,0.076392062,0.113518916,-1.76506627,4.8392787,0.0215110425,0.453492224 +0.107928693,1.29865444,-0.107928693,9.87224194e-05,0.0281000137,0.0153009584,0.00521579478,-0.0090384651,0.0209013633,0.153041467 +0.415575981,1.29865575,-0.415575981,0.000138457603,0.315399557,0.558301985,-3.97909427,1.20863402,0.0209374744,0.587734818 +0.351473868,1.29886079,-0.351473838,3.25682558e-05,0.112427905,0.181702211,-3.64581394,4.6923914,0.0211940333,0.497072518 +0.327815831,1.29898417,-0.327815831,1.28600013e-05,0.080374077,0.122821391,-2.22285271,5.06308842,0.0214099046,0.463609993 +-1.21268666,1.29900265,1.21268666,0.00032463923,0.0885158777,0.0589807667,1.99561512,-0.0995982289,0.0209552385,1.71511102 +0.31816563,1.29901087,-0.31816563,1.80451625e-05,0.0760895461,0.112058468,-1.65630054,4.72842741,0.0215436295,0.449960232 +-0.344032347,1.29901791,0.344032347,2.15461041e-05,0.0983472392,0.157041624,-3.31369686,5.00555706,0.0210352186,0.486551255 +-0.326886207,1.29906833,0.326886237,5.01801696e-06,0.0796604976,0.121066563,-2.14224982,5.05945587,0.0212809425,0.462294459 +0.339666605,1.29911304,-0.339666605,1.08919048e-05,0.09159033,0.144978419,-3.06449461,5.07003832,0.0212616827,0.480364352 +0.356765628,1.29911697,-0.356765628,4.40678486e-05,0.127769649,0.209205717,-3.8084929,4.42860508,0.0211720131,0.504551888 +0.276128739,1.29912949,-0.276128739,0.000187422149,0.0732494742,0.095700942,-0.644278049,3.16553116,0.0215875246,0.39059031 +-1.22142994,1.29919958,1.22142994,0.00031527871,0.0599094704,0.0383619443,2.16096926,-0.0432643518,0.0209617782,1.7274766 +-0.305958301,1.29922187,0.305958331,4.8093123e-05,0.0737213418,0.104917675,-1.22194254,4.23939419,0.021608917,0.432747543 +0.336006522,1.29923809,-0.336006522,1.28499205e-05,0.0875982642,0.137579069,-2.81165886,5.11790133,0.0212963112,0.475188285 +-1.0269196,1.29930282,1.0269196,0.000782627845,0.165793031,0.10310331,1.00116456,-0.244303241,0.0209939554,1.4524585 +0.455914378,1.29930723,-0.455914378,0.000317475176,0.382003993,0.637099624,-2.28555155,-0.630724311,0.0206940565,0.644848108 +-1.09959757,1.2993598,1.09959757,0.000409041852,0.193433613,0.134523124,0.0746436417,0.0519751906,0.0209921449,1.55523694 +-1.22871399,1.29936397,1.22871399,0.000143294659,0.0444765761,0.043325983,2.07544446,-0.0213556197,0.0209655017,1.73777843 +-0.335936308,1.29938722,0.335936278,1.1989714e-05,0.0883584768,0.138580739,-2.78792262,5.12747765,0.0211182088,0.475086391 +0.43262136,1.29944015,-0.43262136,0.000115491493,0.365250289,0.632445753,-3.44501138,0.179075509,0.0208001342,0.611891091 +-0.328448117,1.29951239,0.328448117,1.50962496e-05,0.0814390108,0.124383397,-2.26863241,5.05906677,0.0212569535,0.464499742 +0.345618606,1.29953909,-0.345618606,2.16489534e-05,0.10117548,0.161900535,-3.39912438,4.87511063,0.0212316122,0.488791108 +-0.361414462,1.29961967,0.361414492,1.78471055e-05,0.142734587,0.236321867,-3.94205523,4.20125246,0.0209644083,0.511154294 +-0.358824402,1.29962683,0.358824402,9.26866596e-06,0.134046897,0.220125526,-3.88247967,4.3336277,0.0209764093,0.507481515 +-0.39009887,1.29967952,0.39009884,6.09553645e-05,0.248095304,0.436981201,-4.16933203,2.54325438,0.0207824223,0.551700592 +-0.327271849,1.29974926,0.327271849,1.42636081e-05,0.0810428634,0.123319536,-2.19817424,5.02941656,0.0212801006,0.462839901 +-0.484260261,1.29978371,0.484260291,0.000244450581,0.342784882,0.550453961,-1.1534524,-0.431528538,0.0204274934,0.684860885 +-0.112253889,1.29981661,0.112253897,0.000295658479,0.0285295211,0.0156004531,-0.016022481,0.00319287507,0.0209258366,0.1588718 +-0.353648514,1.29989409,0.353648514,3.58717007e-05,0.119641513,0.194114983,-3.74456811,4.56563663,0.0210026912,0.500135124 +-1.183622,1.29993057,1.18362212,0.000339640828,0.235362187,0.167771861,0.270731658,-0.0102508552,0.020920651,1.67404079 +-0.353794008,1.29997039,0.353793979,1.98472771e-05,0.120223425,0.195123449,-3.74829817,4.55294991,0.021002993,0.500340521 +-0.353611559,1.29997432,0.353611559,3.72189493e-06,0.119731694,0.194251001,-3.74300289,4.56150341,0.0210038647,0.50008297 +0.341648847,1.30004013,-0.341648817,1.24499702e-05,0.096463874,0.153428838,-3.18795824,4.9596324,0.0212509204,0.483167768 +-0.353678048,1.30008304,0.353678018,2.48162687e-05,0.120143056,0.194959342,-3.74515748,4.55061102,0.021004051,0.500176787 +-0.353507906,1.30008829,0.353507876,2.20005277e-05,0.119749188,0.194246992,-3.73940659,4.55711651,0.0210055932,0.499935925 +0.638967514,1.30008888,-0.638967514,0.00147364172,0.201047063,0.165517733,-0.755556524,-0.466558069,0.0209550224,0.903643787 +0.382885277,1.30012548,-0.382885277,5.47789095e-05,0.219463706,0.379420131,-4.161798,2.92520809,0.0211013183,0.541499615 +0.461774766,1.3001734,-0.461774766,0.000331312156,0.371979207,0.616705179,-1.99646401,-0.773248017,0.0207088478,0.653111577 +0.331029981,1.30047905,-0.331029952,2.05058968e-05,0.0851457193,0.131633192,-2.49298167,5.01117134,0.0213766098,0.468166202 +-0.333253294,1.30057406,0.333253294,2.1323016e-05,0.0872522071,0.135328859,-2.6532979,5.05622673,0.0211820249,0.471308798 +-0.405182779,1.3006736,0.405182779,0.00011163445,0.298088342,0.52829808,-4.11496925,1.52871013,0.0206373408,0.573079169 +-0.309929013,1.30075669,0.309929013,2.70319415e-05,0.0771963447,0.111153729,-1.43414426,4.34848976,0.0215668455,0.438326061 +0.329293132,1.30083704,-0.329293132,1.80681309e-05,0.0841817707,0.129466906,-2.40805435,4.98403883,0.0213967301,0.465711594 +0.636339784,1.30084777,-0.636339724,0.000232236402,0.199579626,0.166330144,-0.771506429,-0.457169116,0.0209600125,0.899943411 +-0.386203825,1.30097961,0.386203825,6.50137881e-05,0.235077426,0.411529601,-4.16817141,2.68525195,0.0208121538,0.546198547 +-0.272902548,1.30101573,0.272902548,0.000211765553,0.0753399283,0.0982915983,-0.664845109,3.09568691,0.0216292758,0.386138499 +0.303191334,1.3010577,-0.303191334,7.08168445e-05,0.0773745552,0.109522365,-1.24703646,4.05122662,0.021643972,0.428849846 +-0.445199668,1.30110765,0.445199668,0.000177743728,0.391230643,0.664411545,-2.86211514,-0.308973432,0.0203199014,0.629629016 +-0.107873715,1.30113685,0.107873715,9.9296929e-05,0.0293707494,0.0161220077,0.00222470704,-0.0107212514,0.0209164452,0.153006449 +0.5360654,1.30128503,-0.5360654,0.000536449195,0.180683613,0.240913317,-0.328265965,-0.862411499,0.0210776925,0.758238792 +-0.371946275,1.30153453,0.371946275,8.69211945e-05,0.186738685,0.318533033,-4.09898758,3.45704079,0.0208988097,0.526033103 +0.370583773,1.30160034,-0.370583773,4.7254809e-05,0.182597354,0.309530318,-4.07273531,3.48159313,0.0211413223,0.524086118 +0.434701115,1.30176437,-0.434701115,6.35610195e-05,0.366568774,0.632903397,-3.33937383,-0.0253066905,0.0207973011,0.614848673 +-0.339752823,1.30187416,0.339752853,2.02673145e-05,0.097043857,0.153148875,-3.12242913,4.8955884,0.0211187005,0.480486006 +-0.306460053,1.30191147,0.306460023,3.60378508e-05,0.0781627893,0.111626804,-1.36049473,4.18176603,0.0216032043,0.43343699 +-0.300836802,1.30191696,0.300836802,6.5345288e-05,0.0774915889,0.109163433,-1.2191416,3.99492836,0.0216326211,0.425465286 +-0.315800667,1.30202127,0.315800667,5.12128972e-05,0.080541864,0.118163876,-1.70740747,4.54411125,0.021496851,0.446640968 +0.34832114,1.30205965,-0.34832114,2.74569484e-05,0.11219956,0.180483192,-3.53013492,4.58163548,0.02123826,0.492611408 +0.636328042,1.30218601,-0.636328042,1.91618255e-06,0.199474275,0.16519019,-0.768160999,-0.467290461,0.0209591109,0.899944842 +-1.20310831,1.30230784,1.20310831,0.000338415965,0.133271575,0.0916734189,1.53386414,-0.136909693,0.0209386107,1.70159757 +-0.658420086,1.30235386,0.658420086,0.00197919388,0.214018807,0.156940103,-0.661251962,-0.594439626,0.0207671337,0.932071984 +-0.324540734,1.30241895,0.324540734,1.57681934e-05,0.0842510685,0.127033785,-2.16945338,4.80922604,0.0213497467,0.458970666 +0.313707501,1.3024646,-0.31370753,4.1797517e-05,0.0807087719,0.11754179,-1.65134323,4.42066813,0.0215829052,0.443679601 +0.45732978,1.30250812,-0.45732978,1.57236227e-05,0.375283003,0.624056399,-2.17883444,-0.86502707,0.0207066424,0.646932304 +-0.367548317,1.30264139,0.367548287,4.37466952e-05,0.173652738,0.293389469,-4.02073002,3.62314034,0.020934891,0.51979959 +-0.418298692,1.30268288,0.418298662,0.000218732341,0.33336693,0.590716541,-3.90182686,0.714101911,0.0204995517,0.591729462 +0.359225243,1.30273938,-0.359225214,2.38008506e-05,0.144314706,0.238509253,-3.88059711,4.03187847,0.0211901255,0.508043826 +-0.337433457,1.30282021,0.337433487,1.48017234e-05,0.0959112272,0.150365368,-2.98505974,4.85481262,0.0211621728,0.477206677 +0.33757934,1.30282211,-0.33757934,2.24080177e-05,0.0959816128,0.15070796,-2.99293613,4.82480478,0.0213214457,0.477428287 +0.424993664,1.30287051,-0.424993664,9.90721892e-05,0.345637381,0.603051782,-3.67504478,0.358441323,0.0208677556,0.60104239 +-0.338673323,1.30297208,0.338673323,9.90668104e-06,0.0976107568,0.15354836,-3.07234287,4.8359828,0.0211473424,0.478963196 +0.306715339,1.3030355,-0.306715339,4.17060364e-05,0.0805804431,0.115194,-1.4534831,4.13219976,0.0216236208,0.433791518 +-0.360886574,1.303038,0.360886574,4.62565076e-05,0.1509123,0.251217216,-3.9379797,3.96032047,0.0209728628,0.510390222 +0.263793826,1.30308354,-0.263793826,0.000156873532,0.0804045945,0.101785764,-0.636138022,2.75517845,0.0215136725,0.373092204 +-0.374283969,1.30309892,0.374283969,7.00849778e-05,0.198820293,0.341240674,-4.1142478,3.21083975,0.0208946951,0.529338241 +0.344289541,1.30310774,-0.344289541,1.93453398e-05,0.106609628,0.170013025,-3.36333466,4.64070129,0.0212713685,0.486907095 +-0.399468184,1.30311441,0.399468184,0.000138513351,0.285234213,0.50756073,-4.18775368,1.71057022,0.0206880681,0.564997196 +0.319006652,1.30323565,-0.319006622,1.81266096e-05,0.0827879608,0.122588843,-1.90600622,4.56577063,0.0215327181,0.451145113 +0.35763526,1.30332279,-0.357635289,3.50504233e-05,0.140920818,0.232157677,-3.84383297,4.0664773,0.0211990234,0.505794883 +0.32464695,1.30332732,-0.32464695,1.38594478e-05,0.0855181515,0.128982261,-2.21670866,4.73210192,0.0214686505,0.459122479 +0.33603403,1.30334759,-0.33603403,2.61111418e-05,0.0947988704,0.148216933,-2.91759324,4.8079052,0.0213397611,0.475241631 +-0.387790591,1.3034538,0.387790591,1.03429256e-05,0.249746367,0.441090256,-4.16620064,2.3764205,0.0207997318,0.548471808 +0.108040273,1.30350327,-0.108040273,0.000194586813,0.0327878594,0.0181021355,0.00711660087,-0.00589748751,0.0208975207,0.152962536 +0.26229465,1.30353856,-0.26229465,0.000193752247,0.0811238959,0.102134675,-0.633153975,2.70736766,0.0215037912,0.370989561 +0.383280784,1.3036195,-0.383280784,6.87846768e-05,0.233769238,0.407860398,-4.15291405,2.59523678,0.021102909,0.542064786 +0.323933035,1.30365837,-0.323933035,8.81688538e-06,0.0857581273,0.129005924,-2.19125462,4.68531895,0.0214800891,0.458115011 +-0.338950336,1.30375803,0.338950336,7.70257884e-06,0.0994746909,0.156563252,-3.09871626,4.77317524,0.0211528372,0.479360789 +-0.340612948,1.30376208,0.340612948,2.06010936e-05,0.102447525,0.16188933,-3.18046808,4.72299004,0.0211375244,0.481702715 +1.16829348,1.30377197,-1.1682936,0.00012018063,0.138361767,0.102938138,-0.288852543,0.277157903,0.0210499391,1.65221715 +0.415149808,1.30379689,-0.415149808,1.5846128e-05,0.319794983,0.566796005,-3.96787453,0.842189968,0.020944424,0.587181807 +0.636345446,1.30392337,-0.636345446,0.000847404299,0.199235305,0.164491519,-0.76634419,-0.470620781,0.0209581945,0.899946153 +0.455266774,1.30401039,-0.455266774,7.61773845e-05,0.370380491,0.616541147,-2.28074384,-0.868993163,0.0207262672,0.643949687 +0.324455172,1.30401063,-0.324455172,2.84815e-07,0.0864805877,0.130356282,-2.23902559,4.68709612,0.0214736219,0.458855838 +-0.346746802,1.3040185,0.346746802,4.77588328e-05,0.113400519,0.181871653,-3.48923969,4.53659534,0.0210807733,0.490392089 +-0.976273537,1.30411208,0.976273537,0.00061853294,0.184918866,0.112500124,1.05251205,-0.483711988,0.0209261477,1.38073206 +-0.97089386,1.3041383,0.97089386,0.00166237936,0.187602669,0.113828823,1.04634595,-0.501963198,0.0209168438,1.3731395 +0.369280636,1.30416775,-0.369280636,1.40933298e-05,0.184458464,0.312975496,-4.05096436,3.36762452,0.0211508609,0.522250116 +0.310913265,1.30418181,-0.310913265,5.03072442e-05,0.0828043073,0.119773254,-1.64148545,4.25953054,0.0216003917,0.439725161 +0.366730332,1.30421531,-0.366730332,3.16704318e-05,0.175487518,0.296020627,-4.00561285,3.50386524,0.021162333,0.518636525 +-0.338013589,1.30422044,0.338013619,1.86355519e-05,0.0992162451,0.155790552,-3.06162405,4.75289917,0.0211680923,0.478029013 +-0.296171904,1.30425334,0.296171904,5.04861018e-05,0.0809318423,0.113213733,-1.21552408,3.7831459,0.0216527972,0.418911278 +0.372907728,1.30429447,-0.372907698,4.50615407e-05,0.1973847,0.337307453,-4.07767248,3.15083432,0.0211398061,0.52737236 +-0.380068183,1.30431223,0.380068183,5.25535797e-05,0.222345173,0.386524081,-4.13704967,2.78006911,0.0208542887,0.537503958 +-0.386368573,1.30431688,0.386368573,1.31684192e-05,0.246709764,0.435244113,-4.16811895,2.39472437,0.0208063424,0.546453834 +0.368927985,1.30432272,-0.368927956,1.00487323e-05,0.183679357,0.311534494,-4.04457808,3.37570524,0.0211522896,0.52175349 +-0.471219361,1.30432391,0.471219391,0.000751606596,0.365419865,0.607470632,-1.4531635,-0.969476759,0.0203458108,0.666864634 +0.3242217,1.30436218,-0.3242217,7.35125411e-07,0.0869307071,0.130957738,-2.24515796,4.66221333,0.0214768536,0.458526284 +-0.322057962,1.30436909,0.322057962,2.43072609e-05,0.0865122452,0.129355088,-2.12401223,4.62797976,0.0214112401,0.455463469 +-0.3126297,1.30438209,0.3126297,3.46091329e-05,0.0833306462,0.121389776,-1.70752931,4.3543067,0.0215365831,0.442159235 +0.350673586,1.30438757,-0.350673616,4.4011962e-05,0.124317333,0.201665774,-3.63271618,4.30615902,0.0212383065,0.495959878 +0.324754447,1.30450106,-0.324754417,3.41264858e-05,0.0874579549,0.131994858,-2.27903891,4.66382742,0.0214715004,0.459277928 +0.386751533,1.30450785,-0.386751533,0.000115537718,0.24582988,0.429954767,-4.15820122,2.32327747,0.021090202,0.546960056 +0.53131187,1.30455303,-0.53131187,0.00032243444,0.188039899,0.256445557,-0.329442769,-0.981304288,0.0210581236,0.751588225 +-0.322652042,1.30461228,0.322652042,7.7149225e-06,0.0871552527,0.130591854,-2.16623855,4.6363616,0.0214022286,0.456307203 +0.398296803,1.30463505,-0.398296833,0.000214729094,0.283166945,0.502034605,-4.17430115,1.63625646,0.0210405756,0.563346565 +1.1676172,1.30472493,-1.16761732,7.91365619e-06,0.129827693,0.0952109247,-0.310314745,0.288110316,0.0210504029,1.65126359 +1.02312946,1.30485511,-1.02312946,0.00123191974,0.164974123,0.097691834,0.917781234,-0.300865114,0.021017408,1.44713426 +1.16718173,1.30487704,-1.16718185,0.000142735749,0.129439935,0.0947987735,-0.308985114,0.286079764,0.0210503992,1.65064549 +0.303684622,1.30494452,-0.303684622,4.31569752e-05,0.0826317072,0.117572032,-1.45222569,3.9685297,0.0216290597,0.429549456 +0.511269808,1.3049922,-0.511269808,0.000583628076,0.231027067,0.34786579,-0.563017845,-0.573223352,0.0209959298,0.723197818 +0.341889352,1.30505168,-0.341889352,2.34546078e-05,0.107013673,0.169819415,-3.26406145,4.56822205,0.02130026,0.48352471 +0.297188908,1.30505657,-0.297188908,8.6942091e-05,0.0828778148,0.115813129,-1.27791739,3.7651062,0.0216387454,0.420316577 +-0.389732957,1.3050859,0.389732957,7.52054475e-05,0.257157564,0.453964949,-4.17150974,2.14037037,0.020781355,0.55119127 +-0.322876304,1.30511081,0.322876275,2.32835773e-05,0.0880335942,0.132026747,-2.20124984,4.61188078,0.0214014594,0.456620157 +0.368707657,1.30518162,-0.368707657,3.046253e-05,0.184678793,0.313195944,-4.0388217,3.33015227,0.0211557858,0.521436572 +-1.04307365,1.30525017,1.04307365,0.00167400681,0.164726779,0.101399876,0.880152762,-0.164582059,0.0209980365,1.47529888 +-0.372181177,1.30528331,0.372181177,3.68867077e-05,0.196685299,0.336919397,-4.08456516,3.17748499,0.0209121723,0.526368141 +0.432419688,1.30529392,-0.432419658,0.000249782723,0.355955094,0.612773597,-3.41327429,-0.0760428607,0.0208263528,0.611568451 +-0.260317385,1.30531764,0.260317385,0.000230554739,0.0835452527,0.105930082,-0.665990591,2.67291617,0.0215485021,0.368274063 +0.359521747,1.30534041,-0.359521747,4.90418861e-05,0.153121561,0.254643351,-3.88904047,3.81247663,0.0211914461,0.508464813 +0.416814625,1.30536854,-0.416814625,2.21722748e-05,0.325511217,0.574760973,-3.93719482,0.620097876,0.0209327061,0.589555502 +0.3695319,1.30537975,-0.3695319,3.34652177e-05,0.186876759,0.317283362,-4.04814434,3.28207731,0.0211525466,0.52260375 +-0.107862055,1.30539238,0.107862055,0.000192921565,0.0337523483,0.018785568,0.00843394548,-0.00686709862,0.0209123772,0.152741507 +-0.292411327,1.30548215,0.292411327,7.61579577e-05,0.0822301358,0.11382708,-1.18094003,3.64296412,0.0216563828,0.413561732 +-0.331852078,1.30552959,0.331852078,2.28516401e-05,0.0950272679,0.146812931,-2.72897649,4.70420456,0.0212581772,0.469317734 +-0.324872553,1.30555654,0.324872553,2.24706891e-05,0.0903609097,0.136446416,-2.32590008,4.60381222,0.0213743486,0.459440678 +0.409787238,1.30579019,-0.409787238,8.10114871e-05,0.309560537,0.548135579,-4.03460884,0.970241547,0.0209766366,0.579546571 +0.322538882,1.30584145,-0.322538882,2.21813716e-05,0.0884672999,0.132683113,-2.22867203,4.5460763,0.0214941613,0.456139833 +0.383533716,1.30585408,-0.383533716,9.72403868e-05,0.237366691,0.414122671,-4.15878344,2.43459821,0.0211011562,0.542428374 +0.381622851,1.30606151,-0.381622821,9.33158735e-05,0.232243955,0.404547095,-4.14818096,2.52477694,0.0211096518,0.539714217 +0.796313405,1.30641747,-0.796313405,0.003410117,0.235711038,0.130094126,0.314338624,-0.815066218,0.0208112523,1.12716627 +-0.374257267,1.30648625,0.374257237,0.000111978814,0.20388025,0.350598514,-4.0999465,3.00395823,0.0208965037,0.529312909 +-0.443322688,1.30656314,0.443322659,0.000162717653,0.378334939,0.640830755,-2.89258242,-0.596585095,0.0203391667,0.6269961 +0.331835508,1.30677783,-0.331835508,2.4711484e-05,0.0968749374,0.149635494,-2.76409245,4.58203268,0.0214002207,0.469308615 +-0.446605831,1.30689001,0.446605831,3.17439699e-05,0.38645336,0.65266037,-2.74228072,-0.753973544,0.0203159787,0.63167268 +0.856496155,1.30698752,-0.856496155,0.00335450657,0.224157363,0.123233072,0.657563925,-0.782562613,0.0208232794,1.21216071 +-0.330448389,1.30720043,0.330448389,2.76082192e-05,0.097131215,0.149465531,-2.69800663,4.57756042,0.0212999247,0.467340022 +-0.254330754,1.30725646,0.254330754,0.000329871575,0.0869337767,0.107641414,-0.662964821,2.47652841,0.0215138718,0.35986644 +-0.308787584,1.30726767,0.308787555,2.67529904e-05,0.0868465602,0.125673532,-1.70267582,4.12561941,0.0215761568,0.43675369 +0.329903841,1.30729961,-0.329903841,3.36769081e-05,0.0960186422,0.147440925,-2.67406917,4.54340744,0.0214232262,0.466578662 +-1.16348135,1.30730534,1.16348135,0.000226808173,0.142328158,0.103217557,-0.292708457,0.251351327,0.0209405422,1.64557743 +1.10848832,1.30734479,-1.1084882,0.000349344919,0.155821726,0.101399519,-0.118570238,0.0528956428,0.0210183915,1.56784177 +-0.29611963,1.30737817,0.29611963,4.35017682e-05,0.0845923945,0.118612982,-1.35075784,3.70960832,0.0216484051,0.418837547 +-0.348518789,1.30740058,0.348518789,4.72459615e-05,0.12629208,0.204472259,-3.58710146,4.20413971,0.021085754,0.492894709 +-0.449048221,1.30747747,0.449048251,0.000328367838,0.383715391,0.645648003,-2.6134429,-0.829861462,0.0203133635,0.635103345 +0.248325944,1.30754006,-0.248325944,0.000249043311,0.0886420682,0.106364228,-0.617534161,2.28061008,0.0214022659,0.35118717 +0.347679645,1.30754542,-0.347679645,5.09720812e-05,0.124811299,0.20153901,-3.55997348,4.1750617,0.0212664157,0.49172017 +0.293460786,1.30762601,-0.293460786,5.23472299e-05,0.0867765993,0.120788284,-1.29523265,3.58649397,0.0216298662,0.415100455 +0.449304342,1.30768895,-0.449304342,0.000237093889,0.357598901,0.596718907,-2.53777933,-0.789760113,0.0207711179,0.635453224 +0.317849487,1.30771351,-0.317849487,2.46703985e-05,0.0895464867,0.132559165,-2.08742499,4.32378578,0.0215403382,0.449514925 +0.342361748,1.3078742,-0.342361748,3.80802994e-05,0.114763439,0.183032334,-3.32878637,4.33537197,0.0213055555,0.48419264 +-0.973941386,1.30794168,0.973941326,6.55315962e-05,0.185889259,0.112733409,1.04047596,-0.496288478,0.0209230836,1.37749314 +0.484679729,1.3079834,-0.484679729,0.000684078317,0.298761457,0.471862882,-1.08963609,-1.29290736,0.0208212398,0.685595751 +-0.387115091,1.3081131,0.387115091,7.19916352e-05,0.252329797,0.444646567,-4.17448997,2.11457658,0.0207959767,0.547480941 +0.319098592,1.30813634,-0.319098592,6.67561108e-06,0.090488188,0.134524018,-2.1609714,4.34704161,0.0215283819,0.451291084 +0.41526261,1.30824137,-0.41526261,0.000157606453,0.31996575,0.563715994,-3.97211289,0.550527632,0.0209469367,0.587307513 +0.40052858,1.30834711,-0.40052858,7.69526741e-05,0.288537681,0.512089908,-4.13373852,1.33840013,0.0210372917,0.566549838 +-0.364088386,1.30841351,0.364088386,4.93595362e-05,0.175611973,0.296875387,-3.98974466,3.39541006,0.0209616423,0.514960051 +-0.332135409,1.30851817,0.332135379,3.97616168e-05,0.101044737,0.156255946,-2.83481622,4.49331474,0.0212828498,0.469722539 +0.457665563,1.30852509,-0.457665563,0.000435693306,0.357531905,0.588815808,-2.17890286,-1.05791664,0.0207447559,0.647289753 +0.319746792,1.30858958,-0.319746792,6.88456566e-06,0.0915850624,0.136397421,-2.21116877,4.33463669,0.0215223134,0.452202588 +-1.11185074,1.3087914,1.11185074,0.00034684522,0.157873809,0.104715675,-0.0858768821,0.0649797916,0.0209877025,1.57251167 +0.243553668,1.30892646,-0.243553668,6.74660696e-05,0.0912506133,0.107702099,-0.612755239,2.13584661,0.0213665292,0.344454676 +0.243081272,1.30900824,-0.243081272,0.000348184985,0.0913857818,0.107725643,-0.611591518,2.12375855,0.0213628225,0.343789428 +0.318653762,1.30904949,-0.318653762,1.87594178e-05,0.091765441,0.136291116,-2.17807341,4.29221058,0.0215307306,0.450660378 +-0.300942421,1.30906606,0.300942421,4.22030171e-05,0.0876899064,0.124410503,-1.55076063,3.81261063,0.0216262396,0.4256064 +0.0984497964,1.30915713,-0.0984497964,0.000144525227,0.0850091055,0.0636394843,0.160101816,0.0388686359,0.0208900813,0.140400007 +0.29523176,1.30917311,-0.29523176,5.27324846e-05,0.0884857252,0.123586878,-1.39641547,3.60227442,0.0216250122,0.417566657 +-1.19019675,1.30924273,1.19019675,0.000538158522,0.172026008,0.115780331,0.885937214,-0.117473945,0.0209270604,1.68333983 +0.33092618,1.30929625,-0.33092618,2.63608999e-05,0.100878797,0.155718878,-2.79039907,4.40867233,0.0214134715,0.468020022 +0.28837353,1.30946684,-0.28837353,9.74649593e-05,0.0891930908,0.12253692,-1.24772859,3.39824963,0.0216115844,0.407843351 +0.764124453,1.30950344,-0.764124453,0.00495951343,0.23526603,0.131617799,0.0984198004,-0.795350254,0.0208178908,1.0823797 +-0.285072684,1.30966377,0.285072684,0.00010677005,0.0877648145,0.120112032,-1.16994417,3.33903003,0.0216435324,0.403235257 +-0.359401643,1.31001592,0.359401643,6.99027296e-05,0.16419895,0.275003195,-3.89642906,3.52174735,0.0210056361,0.508312762 +-0.352978855,1.31003392,0.352978855,4.2652151e-05,0.143613115,0.23561351,-3.74415755,3.8233242,0.0210588239,0.499216378 +-0.371078074,1.31005359,0.371078044,8.03304429e-05,0.200173527,0.342720896,-4.06365871,2.93591499,0.0209193118,0.52479732 +-0.35020414,1.31006396,0.35020414,1.9411731e-05,0.136504307,0.222641841,-3.66427994,3.94375086,0.0210827943,0.49530983 +0.337716371,1.31030774,-0.337716341,1.59143456e-05,0.111573674,0.175575346,-3.1487422,4.27007103,0.0213528406,0.477617621 +-0.318015665,1.31040132,0.318015695,1.76168942e-05,0.0939316899,0.139294162,-2.19572496,4.23382998,0.0214818809,0.449745178 +-0.311000764,1.31044173,0.311000794,4.0381794e-05,0.091967836,0.134056196,-1.90722644,4.06128359,0.021555366,0.439879179 +-0.0984116495,1.31044173,0.0984116495,0.000170226325,0.0897488594,0.0684215203,0.155853212,0.0429672971,0.0208922662,0.140397295 +-1.00384319,1.31049848,1.00384319,0.000956580509,0.170583487,0.104192473,1.02737987,-0.368828326,0.0209717248,1.42016292 +-0.341174871,1.31061172,0.341174871,3.19285209e-05,0.118024901,0.187662423,-3.32952142,4.19786596,0.021180233,0.482497156 +0.336458474,1.31061316,-0.336458445,1.67674971e-05,0.110359251,0.173062265,-3.08498859,4.26535177,0.0213672109,0.475837708 +-0.304486454,1.31066966,0.304486454,2.77451345e-05,0.0904025063,0.129538789,-1.71379352,3.88859367,0.0216063876,0.430628628 +-0.235508233,1.31067204,0.235508233,0.00028670195,0.0942080021,0.108145848,-0.606369019,1.92886472,0.0213761851,0.333106816 +-0.317529559,1.3108089,0.317529559,1.69771756e-05,0.0944290012,0.139892116,-2.19796562,4.20271778,0.0214880332,0.449058026 +-0.318602443,1.31084776,0.318602443,1.71419506e-05,0.0948909149,0.141024709,-2.24711132,4.22646141,0.0214746706,0.450574577 +-0.233940095,1.31096733,0.23394008,0.000102905673,0.0948434621,0.107745036,-0.601942956,1.87807727,0.0213665105,0.33091414 +-0.44600749,1.311041,0.44600749,0.000329496659,0.374565899,0.62957716,-2.75610018,-0.857731223,0.020335678,0.630797207 +-0.317920119,1.31129754,0.317920119,1.18915968e-05,0.0952308998,0.141281158,-2.23438883,4.19203091,0.0214839671,0.449610829 +-0.318223536,1.31138313,0.318223536,1.76724916e-05,0.0955931321,0.141988173,-2.24974704,4.19080639,0.0214800294,0.450041085 +0.292907298,1.31149292,-0.292907298,7.46110309e-05,0.0909920037,0.12656267,-1.40338004,3.48080587,0.0216138773,0.414285004 +-0.338797718,1.31163442,0.338797718,2.44962212e-05,0.116362162,0.184051916,-3.23155093,4.18016911,0.0212124698,0.47913748 +-0.303321451,1.31164908,0.303321481,1.99941023e-05,0.091496788,0.130901486,-1.71743774,3.82468319,0.0216111001,0.428996086 +-0.339732707,1.31182945,0.339732707,8.38770939e-06,0.118045002,0.187221676,-3.28026295,4.15077543,0.0212020557,0.480466247 +-0.228372797,1.31191874,0.228372812,0.000310981617,0.0962154865,0.106202908,-0.586911798,1.73519647,0.0213311817,0.322981268 +-0.499944389,1.3119297,0.499944389,0.000519230438,0.255038261,0.390267998,-0.610179245,-1.19487274,0.0205239542,0.707083344 +0.35492444,1.31200838,-0.35492444,2.3261302e-05,0.154455423,0.255407572,-3.79674292,3.54946661,0.0212332718,0.50194025 +-0.305563062,1.31208253,0.305563062,2.06071763e-05,0.0927086473,0.133330002,-1.80769753,3.86225843,0.0215964131,0.432149708 +0.33569786,1.31226826,-0.33569786,2.96175549e-05,0.112790205,0.17673029,-3.09465837,4.15284729,0.0213773642,0.474760473 +-0.289324164,1.3123287,0.289324164,3.60982376e-05,0.090725489,0.125306398,-1.3558358,3.40243483,0.0216440801,0.409203649 +-0.339348257,1.31237519,0.339348286,2.19398044e-05,0.118465662,0.187758133,-3.27055955,4.12225533,0.0212083459,0.479922563 +0.338082492,1.31249213,-0.338082492,4.01214129e-05,0.117572509,0.18576254,-3.19885993,4.08984613,0.0213569365,0.478135318 +0.282312393,1.31249297,-0.282312393,0.000202234471,0.0931804478,0.126500547,-1.2224561,3.17074871,0.0215819217,0.399336666 +-0.327829123,1.31265306,0.327829123,3.21595508e-05,0.104323447,0.159732893,-2.74492645,4.22820902,0.0213538669,0.463623494 +0.39613986,1.31275535,-0.39613986,0.000125582359,0.278806031,0.491327286,-4.13957882,1.34878981,0.0210637003,0.56028223 +0.353411049,1.31277514,-0.353411078,2.70116343e-05,0.152140379,0.25092414,-3.75312161,3.56207085,0.0212430414,0.499800652 +0.582862079,1.31288934,-0.582862079,0.00135579077,0.166944355,0.165948525,-0.451645464,-0.826045275,0.0210453104,0.824721575 +0.313372761,1.31290555,-0.313372761,3.91942085e-05,0.0953499228,0.139809296,-2.11371231,3.98466182,0.0215605199,0.443185568 +1.04591572,1.31311679,-1.04591572,0.00150364661,0.167218864,0.0979421213,0.727557063,-0.174879581,0.0210412908,1.47930408 +-0.341184288,1.31344247,0.341184288,2.62258091e-05,0.124047875,0.197714493,-3.352175,3.9936614,0.0211890917,0.482509911 +0.321688056,1.31351602,-0.321688056,2.89000927e-05,0.100916222,0.151722163,-2.46449184,4.07994747,0.0215013847,0.45493722 +1.1440922,1.31355727,-1.14409232,0.000245268951,0.0998625755,0.0655624941,-0.253108561,0.202264845,0.0210539717,1.61807275 +0.363737971,1.31369209,-0.363737941,0.000108274537,0.187803239,0.318600148,-3.96593285,3.00252819,0.021184599,0.514483631 +-0.425646901,1.31386268,0.425646901,0.000219810419,0.335079432,0.580450714,-3.66626668,-0.238051891,0.0204480756,0.602016747 +0.354691118,1.31402802,-0.354691118,2.38660705e-05,0.158695638,0.262829244,-3.79115748,3.41396379,0.021239059,0.5016132 +-0.980584025,1.31405008,0.980584025,0.000974052295,0.182678342,0.110245496,1.0063827,-0.470682025,0.020931229,1.38679159 +0.353996933,1.31409645,-0.353996933,2.18155901e-06,0.156809092,0.259349704,-3.77570939,3.44164014,0.0212426838,0.500635087 +-0.325238675,1.31418765,0.325238675,2.69260836e-05,0.104754969,0.159276843,-2.66011453,4.11931562,0.0213955045,0.45996511 +-0.213073164,1.31423581,0.213073164,0.000302863366,0.0992122144,0.100467555,-0.539446592,1.3543551,0.02122375,0.30152306 +0.219408274,1.31448674,-0.219408274,0.00038272157,0.100054912,0.105072357,-0.564241529,1.49618053,0.021192288,0.310339034 +0.353239506,1.31454825,-0.353239536,2.96138205e-05,0.155796662,0.257218093,-3.75526047,3.44016147,0.0212485846,0.499559045 +0.218452334,1.31458688,-0.218452334,3.54167787e-05,0.100068681,0.104652531,-0.561647117,1.47673678,0.0211848952,0.309007078 +0.217024326,1.31469584,-0.217024326,0.000370221242,0.0998791233,0.103760697,-0.557077706,1.45251,0.0211764444,0.306958944 +-0.304420471,1.31470394,0.304420441,2.7857961e-05,0.0954135731,0.136942253,-1.85240424,3.73490381,0.0216008574,0.430530369 +1.12638593,1.31474495,-1.12638605,0.000265498267,0.11686603,0.0754553899,-0.195058167,0.102491498,0.0210406184,1.59307337 +-0.336859316,1.31478047,0.336859345,2.74479607e-05,0.11930716,0.188118592,-3.21190262,3.99980879,0.0212431401,0.476392567 +-0.331644356,1.31478262,0.331644356,2.91663637e-05,0.111776128,0.17349723,-2.95905542,4.08138895,0.0213043708,0.469019532 +-0.313995361,1.31480312,0.313995332,3.13735909e-05,0.0989793688,0.146039322,-2.21158552,3.95410132,0.0215241518,0.444122434 +-0.635208488,1.31484663,0.635208488,0.000669099507,0.199854895,0.156452835,-0.783857346,-0.569769025,0.0207729228,0.899170041 +-0.347648621,1.31489134,0.347648621,3.04820896e-05,0.140391812,0.228098854,-3.61256933,3.69122219,0.0211194679,0.491661191 +0.306715876,1.31491494,-0.306715876,3.25477995e-05,0.0960185751,0.138303727,-1.94930375,3.75896478,0.0215845909,0.433767378 +-1.14628696,1.314924,1.14628696,0.000288652198,0.11144755,0.0742692128,-0.269675791,0.183426261,0.0209589768,1.62123942 +-0.208843842,1.31496644,0.208843857,0.000339724706,0.0994342566,0.0986177772,-0.531584859,1.28771615,0.0211930219,0.295539826 +1.1734401,1.31509817,-1.1734401,0.000306555186,0.217182115,0.138784751,-0.089795664,0.101747185,0.0210335758,1.65949571 +0.330881,1.31511188,-0.330881,4.15325667e-05,0.11194285,0.173361063,-2.93709135,4.02272463,0.0214163773,0.467964828 +0.3137725,1.31512547,-0.3137725,2.59713634e-05,0.0986896604,0.145120934,-2.22417378,3.90552783,0.0215516407,0.443760574 +-0.71677804,1.3151933,0.71677804,0.00251228502,0.232025862,0.144975588,-0.275382668,-0.748949409,0.0207412429,1.01443028 +0.367846251,1.31521618,-0.367846251,5.31764708e-05,0.205271602,0.351781934,-4.00324869,2.67331362,0.0211672839,0.520287395 +-0.279518366,1.31525421,0.279518366,0.000203089992,0.0948582143,0.128791705,-1.24992764,3.09252024,0.0216236487,0.395495325 +-0.354875088,1.3153187,0.354875118,4.77852009e-05,0.16135709,0.268193781,-3.82551432,3.35574484,0.0210454799,0.501899123 +1.08255219,1.31535745,-1.08255219,0.00102460163,0.201349914,0.123715371,0.313137501,0.0312480088,0.0210320093,1.53113937 +0.303217858,1.31538653,-0.303217858,4.49357649e-05,0.0965106487,0.137902349,-1.87354898,3.63266969,0.0215910338,0.428820074 +-0.494395316,1.31554449,0.494395286,0.000319866085,0.264058501,0.404699326,-0.804134429,-1.38949811,0.0204994846,0.699252129 +0.194776341,1.3155818,-0.194776341,0.000603223278,0.0952743962,0.0845083222,-0.458553553,0.978553653,0.0210569371,0.275954813 +-0.396532893,1.31564832,0.396532893,0.000149115775,0.281251818,0.496966451,-4.14576054,1.1904372,0.0207167827,0.560890555 +-0.364119947,1.31576169,0.364119947,6.37839767e-05,0.186472565,0.315950662,-3.97658873,2.93487406,0.0209621228,0.514977813 +-0.326509118,1.3158015,0.326509118,1.08881131e-05,0.109216385,0.167190522,-2.77163863,4.01599598,0.0213801153,0.461765677 +-0.325629383,1.31602764,0.325629383,8.06312073e-06,0.108519785,0.165666953,-2.74126077,4.00833893,0.0213916712,0.460528195 +-0.324866384,1.31604886,0.324866354,4.98490263e-05,0.107772306,0.164004728,-2.71092367,4.00745487,0.0214023087,0.459445834 +-1.13074923,1.31615877,1.13074923,0.000349319656,0.119524114,0.0771033689,-0.220617115,0.106294312,0.0209768638,1.59926367 +-0.352351427,1.31626105,0.352351427,1.91440758e-05,0.157113761,0.260239184,-3.75748014,3.39882994,0.0210678093,0.498348236 +-0.297850579,1.31628358,0.297850579,2.756094e-05,0.0951819569,0.134340689,-1.72270036,3.51601315,0.0216252413,0.421231627 +-0.132141978,1.31642783,0.132141978,0.000378262979,0.0696663707,0.0402605496,-0.232889593,0.1297701,0.020938009,0.1878746 +0.324492455,1.3164469,-0.324492455,3.12090815e-05,0.10743393,0.163282126,-2.69315696,3.95695639,0.0214717425,0.458910882 +-0.587651551,1.31646693,0.587651551,0.000479229697,0.170168728,0.17191945,-0.450273812,-0.678936362,0.0208127555,0.831072569 +-0.310073733,1.31647539,0.310073733,3.01464497e-05,0.0997242182,0.145730898,-2.13348985,3.81522179,0.0215554852,0.438589603 +-0.292798281,1.31664038,0.292798281,3.63739273e-05,0.0960871503,0.134674713,-1.61011243,3.4091785,0.0216308981,0.414156526 +0.309203953,1.31667566,-0.309203982,2.80995009e-05,0.0991630256,0.144083485,-2.11993504,3.74826288,0.0215673726,0.437282383 +0.410345018,1.31668353,-0.410345018,0.000137782437,0.305176258,0.534745753,-4.01784086,0.38501966,0.0209901817,0.580538571 +0.354689926,1.31671071,-0.354689926,2.26487591e-05,0.162949786,0.270001173,-3.79580355,3.24601316,0.0212407336,0.501608253 +0.344916105,1.31675243,-0.344916105,9.65947256e-05,0.138829902,0.224201322,-3.51498222,3.61810303,0.0213071387,0.487825334 +-0.345503628,1.31681097,0.345503628,1.36684466e-05,0.139380291,0.225554407,-3.55360579,3.63319659,0.0211455598,0.488646448 +0.319607496,1.31683064,-0.319607496,2.99877556e-05,0.105050623,0.157396555,-2.51184464,3.87533092,0.0215088613,0.451995194 +-0.191752493,1.31686568,0.191752493,0.000537379703,0.0971068293,0.0844572484,-0.469889283,0.925144553,0.021103818,0.271845311 +0.314312965,1.31692123,-0.314312965,3.29150462e-05,0.101323985,0.149296865,-2.29242039,3.82469487,0.0215430595,0.444524139 +1.17242861,1.31696594,-1.17242861,2.9379351e-05,0.216328576,0.135260627,-0.138425186,0.114134282,0.0210334472,1.65806961 +1.13614821,1.31699157,-1.13614821,0.00015863037,0.102038607,0.065941602,-0.224048212,0.138091758,0.021049412,1.60692549 +0.305917591,1.31705093,-0.305917591,2.80920849e-05,0.0986812115,0.142115131,-2.017133,3.66454124,0.0215806533,0.432646573 +0.325123847,1.31714785,-0.325123847,1.80743082e-05,0.109432742,0.16680336,-2.74786067,3.90883398,0.0214658044,0.459802121 +-0.142037243,1.31718373,0.142037228,0.000301569293,0.0757048875,0.0459034704,-0.285983533,0.252880841,0.0209529325,0.20123598 +0.179004341,1.31733263,-0.179004341,0.000377030286,0.0918735713,0.0732290745,-0.426693976,0.753458261,0.0209880341,0.253390789 +1.17166317,1.3174305,-1.17166317,0.000375370146,0.216261446,0.134983033,-0.139086828,0.113098696,0.0210334565,1.65698373 +0.132157728,1.31743085,-0.132157728,0.000362232764,0.070826076,0.0407741107,-0.246230781,0.134156764,0.0209021419,0.188061073 +-0.15125598,1.31754172,0.15125598,0.000370503141,0.0805707797,0.0510113835,-0.330845058,0.334569097,0.02097065,0.214610532 +-0.498427629,1.31766546,0.498427659,4.61795353e-05,0.249348819,0.377186745,-0.678576291,-1.44365203,0.0205284711,0.70500809 +0.171679184,1.31766951,-0.171679169,0.000254390587,0.088862583,0.065361388,-0.399245441,0.604974627,0.0209670924,0.243339986 +-0.175895467,1.31771076,0.175895467,0.000342176063,0.0922486931,0.0712143183,-0.420539379,0.699099183,0.0210382137,0.248915911 +-0.17097497,1.31784582,0.170974985,0.000179284631,0.0902389959,0.0661312416,-0.401351184,0.599404812,0.0210233834,0.242155343 +-0.165000141,1.31787038,0.165000141,0.000321989297,0.087275587,0.0615539923,-0.379712641,0.515564024,0.0210109856,0.233481437 +0.323795527,1.31790483,-0.323795497,8.97613972e-06,0.109457791,0.166264549,-2.71418238,3.86323237,0.0214769393,0.457930207 +-0.284565628,1.31793463,0.284565628,5.89838237e-05,0.0971527919,0.134140998,-1.46942711,3.15992594,0.0216241553,0.402616441 +0.312945604,1.31794989,-0.312945634,2.66786647e-05,0.101671807,0.149286821,-2.2744875,3.77062178,0.0215445813,0.442584872 +0.306181639,1.31802678,-0.306181639,7.13290092e-06,0.0999104083,0.144171774,-2.06527662,3.63257074,0.0215748083,0.43302536 +-0.410592556,1.31802928,0.410592526,0.000142505465,0.3045578,0.53207624,-4.02381182,0.361810774,0.0205862019,0.580694914 +-0.290369987,1.31819451,0.290369987,0.000102199556,0.0973632485,0.135553226,-1.5966953,3.31396484,0.0216324963,0.410728216 +-0.348761201,1.31828129,0.348761201,3.93954069e-05,0.151487321,0.248221472,-3.66172862,3.39565611,0.0211119782,0.493235052 +-0.600557923,1.31830525,0.600557983,0.000552531215,0.171962023,0.152240604,-0.516646385,-0.783662975,0.0207884628,0.849330306 +-0.384460628,1.31837177,0.384460628,0.000146960287,0.254823893,0.447699666,-4.14666462,1.64971769,0.0208050199,0.543802321 +0.374175131,1.31844902,-0.374175131,0.000129342588,0.225972861,0.3911708,-4.0705204,2.18604231,0.0211437624,0.529261589 +0.163720191,1.31854367,-0.163720191,0.000351279217,0.0863033533,0.0601577722,-0.378695071,0.493354261,0.0209547188,0.231737494 +1.00556993,1.31862628,-1.00556993,0.000898184197,0.166975349,0.097173132,0.93280375,-0.398317337,0.0209893398,1.42269957 +-0.316976786,1.3187108,0.316976786,3.43130523e-05,0.105919614,0.157708928,-2.45579147,3.8012166,0.0214936081,0.448315531 +0.538799942,1.31893277,-0.538799942,0.000480598625,0.17846936,0.224296644,-0.418626279,-1.07008672,0.0210667849,0.7620278 +0.325027853,1.31896651,-0.325027853,4.97409856e-05,0.112972982,0.172495306,-2.78603435,3.78980279,0.0214650091,0.459666401 +0.142730772,1.31910777,-0.142730772,0.000303848967,0.0781513602,0.0474460497,-0.306616217,0.264389902,0.0209085215,0.202262968 +0.270055413,1.31912684,-0.270055413,0.000145419297,0.102267012,0.134697437,-1.18285847,2.73031664,0.0215060543,0.381948948 +-0.353070259,1.31929147,0.353070259,1.66284844e-05,0.163756251,0.272037536,-3.78459382,3.17543578,0.0210640579,0.499379426 +-0.407229722,1.31934381,0.407229722,9.28558657e-05,0.297028959,0.52024883,-4.06678057,0.474991143,0.0206160694,0.575939238 +-0.326842457,1.31941938,0.326842457,3.79560261e-05,0.115097344,0.176867321,-2.85993814,3.78953362,0.0213758703,0.462230206 +-0.331999511,1.31946087,0.331999511,2.22914205e-05,0.121085078,0.189124495,-3.09521675,3.76444936,0.0213102754,0.46953243 +0.307679713,1.31951952,-0.307679683,3.32329801e-05,0.102650151,0.148947671,-2.15931773,3.57522488,0.0215624198,0.435132056 +0.285349399,1.31969261,-0.285349399,0.000104223254,0.0993215218,0.135643288,-1.52196646,3.05789876,0.0215618853,0.403583825 +-0.359163344,1.31971049,0.359163344,5.90465024e-05,0.180178374,0.302678674,-3.89790726,2.87832403,0.0210060757,0.507958055 +0.322789311,1.31973743,-0.322789311,4.69840088e-05,0.111190297,0.168524951,-2.72827005,3.76015306,0.021477472,0.456500202 +1.20751739,1.31974912,-1.20751739,0.000651830807,0.102799065,0.065844737,1.67174459,-0.162220404,0.0210345313,1.70779467 +-0.416534305,1.31980872,0.416534305,9.01474195e-05,0.313187659,0.542606175,-3.86687636,-0.0458028764,0.0205358174,0.589079261 +0.150964484,1.31986141,-0.150964484,0.000354859832,0.0829820335,0.0522978157,-0.350480109,0.33728382,0.0209195875,0.214429155 +0.420275688,1.31987476,-0.420275688,0.000254438259,0.312717438,0.54144603,-3.74164343,-0.184069663,0.0209481455,0.594481707 +-0.296855956,1.31991124,0.296855986,3.80498932e-05,0.0996552259,0.140691683,-1.83190227,3.40427089,0.02161799,0.419827014 +1.21909547,1.31992638,-1.21909547,0.00036419637,0.069361195,0.0430046171,2.02389097,-0.0764169544,0.0210351106,1.72416949 +0.268491864,1.31993484,-0.268491864,0.000210161321,0.103237383,0.135239616,-1.17339456,2.67682719,0.0214960687,0.379756063 +-0.33131513,1.31994915,0.33131513,7.63368371e-06,0.121006653,0.188675493,-3.07984161,3.74004674,0.0213194098,0.468572408 +0.330639541,1.3199501,-0.330639541,3.43069078e-05,0.121376574,0.188778386,-3.03921151,3.70602798,0.0214141421,0.467623472 +-0.428828746,1.3200376,0.428828716,0.000186536345,0.329006195,0.564812064,-3.5015707,-0.579657197,0.0204459652,0.606522679 +-0.49561581,1.32006383,0.49561581,0.000137822994,0.248839036,0.376526356,-0.784658372,-1.48382783,0.020528961,0.700998187 +1.22874022,1.32007408,-1.22874022,0.000165564707,0.0499091446,0.0455030613,2.04006386,-0.0271402206,0.0210357234,1.73781025 +-0.505619884,1.3201381,0.505619884,0.000535052677,0.238688529,0.353030503,-0.623941481,-1.40087008,0.0205659047,0.715110064 +-0.298894852,1.32020092,0.298894852,1.88578961e-05,0.100127399,0.142078519,-1.89814174,3.44737005,0.0216131527,0.422727555 +-0.319238245,1.3202188,0.319238245,5.67315365e-05,0.10995838,0.165273711,-2.60076714,3.7473712,0.0214639623,0.451527536 +-0.310558498,1.32026803,0.310558498,3.03567558e-05,0.104238875,0.152768642,-2.26559067,3.66402531,0.0215418469,0.439249337 +-0.389251709,1.32033563,0.389251709,0.000115835544,0.265483826,0.467131615,-4.15769768,1.32468474,0.0207628366,0.550558448 +0.347592533,1.32033622,-0.347592562,5.91020544e-05,0.153447792,0.250998855,-3.6269145,3.2637248,0.0212863889,0.491617501 +0.401238143,1.32045686,-0.401238143,0.000134522998,0.286497116,0.49870199,-4.06033087,0.681284428,0.0210414529,0.567541838 +-0.344620526,1.32061124,0.344620526,6.54760152e-05,0.144921258,0.23476781,-3.57064199,3.39238739,0.0211562421,0.487381846 +0.302293539,1.3210479,-0.302293509,3.29338691e-05,0.102081567,0.145729497,-2.04071426,3.45444703,0.0215701144,0.427509069 +0.305475205,1.32116604,-0.305475205,3.68900837e-05,0.102809206,0.147959068,-2.1276741,3.49783874,0.0215623695,0.432014138 +0.336152792,1.32133818,-0.336152792,2.45945521e-05,0.130907089,0.206615284,-3.25073767,3.53856254,0.0213772021,0.475401998 +-0.334104717,1.321383,0.334104717,3.97728509e-05,0.128238022,0.202027023,-3.19732118,3.5871048,0.0212846138,0.472504437 +-0.409752637,1.32139087,0.409752637,2.32470538e-05,0.300856948,0.524370432,-4.03490591,0.23667787,0.0205930248,0.579540968 +-0.298457861,1.3214134,0.298457891,7.33597153e-06,0.101491332,0.143932685,-1.92167485,3.39968443,0.0216105841,0.422111928 +-1.08763564,1.32145619,1.08763564,0.00120407878,0.193917185,0.120136298,0.307183266,0.0587063283,0.020979872,1.53831971 +-0.635659814,1.32153416,0.635659814,0.000891084783,0.184630617,0.143750682,-0.555434108,-0.80270052,0.0207377337,0.899999976 +-0.595810533,1.32154083,0.595810533,0.000422660145,0.170857117,0.153367862,-0.486713082,-0.786472499,0.0207944904,0.842632771 +-0.300285757,1.32168746,0.300285757,4.90195962e-05,0.10229969,0.145685971,-1.98631048,3.41805577,0.0216046628,0.424679458 +0.338249832,1.32188725,-0.338249803,4.57758979e-05,0.135784045,0.215889096,-3.34768796,3.45965695,0.0213593841,0.478369772 +-0.366521478,1.32189214,0.366521478,0.000130909437,0.207352415,0.355739653,-4.01669312,2.38821745,0.0209359434,0.518410146 +-0.965764642,1.32205462,0.965764642,0.00124698132,0.187918156,0.112526573,0.996153355,-0.538152695,0.0209113862,1.36582255 +-0.424216837,1.32208931,0.424216866,0.000113287577,0.321345031,0.551629782,-3.64582872,-0.461070538,0.0204835869,0.599981487 +0.122030571,1.32214308,-0.122030571,0.000286729628,0.0683181882,0.038784951,-0.188478082,0.0585102811,0.0208901633,0.172759861 +-0.306842089,1.3221519,0.306842089,4.50707012e-05,0.105289266,0.152888075,-2.20073748,3.51982069,0.0215708092,0.434004098 +-1.16911197,1.32234097,1.16911185,0.000580335909,0.209676713,0.127558395,-0.124898739,0.0894770175,0.0209317692,1.65354121 +-0.266313583,1.32279086,0.266313553,0.00020920478,0.104297303,0.136987075,-1.20935023,2.62086725,0.0215399656,0.376749396 +0.390214652,1.32281256,-0.390214622,0.000156674112,0.268378377,0.470993519,-4.13011694,1.149369,0.0210872777,0.552000165 +0.48234269,1.32281661,-0.48234272,0.000131358567,0.268813521,0.415023029,-1.21110964,-1.80906308,0.0208861418,0.682462513 +-0.119985089,1.32281947,0.119985081,0.000295978971,0.0672145709,0.038219966,-0.167236507,0.0460722148,0.0209124479,0.169758052 +-0.331357837,1.32285237,0.331357837,2.93318135e-05,0.12550205,0.196103707,-3.13461781,3.55631399,0.0213184394,0.468616813 +0.475089133,1.32317472,-0.475089163,0.000460435927,0.277206808,0.432825238,-1.50672603,-1.79064786,0.020880321,0.672005296 +0.357609183,1.32319212,-0.357609153,5.8164158e-05,0.182802051,0.305673838,-3.86367035,2.70054603,0.0212272573,0.505753279 +0.298731267,1.32328665,-0.298731267,2.85601163e-05,0.103605896,0.146639213,-2.00251722,3.30370331,0.0215657614,0.422482759 +-0.339978993,1.32348716,0.339978993,4.5477198e-05,0.142047942,0.228573963,-3.43515539,3.32876253,0.0212083589,0.48087272 +0.356600225,1.32358301,-0.356600225,4.30315094e-06,0.180128664,0.300578475,-3.84893608,2.72656465,0.0212321337,0.504335403 +0.366527796,1.3236326,-0.366527796,6.11658907e-05,0.203547686,0.345472038,-3.98215389,2.3299942,0.0211826097,0.518406212 +0.336042017,1.32369041,-0.336042017,3.11721269e-05,0.135501578,0.214284599,-3.30060244,3.38450432,0.0213760715,0.475245476 +0.337326467,1.32379794,-0.337326467,1.11668342e-05,0.138002113,0.219351754,-3.34414124,3.35119009,0.0213651694,0.477077097 +0.117968582,1.32384717,-0.117968589,0.000113618546,0.0676422492,0.038180802,-0.169550344,0.0326147005,0.0208831113,0.167410374 +-0.117536642,1.32390654,0.117536642,7.4627751e-05,0.0667743385,0.0378304645,-0.156283528,0.0314671956,0.020906195,0.166496202 +0.394324005,1.3242054,-0.394324005,0.000154909969,0.274721086,0.479871362,-4.12153721,0.876720309,0.0210719313,0.557871699 +0.299080998,1.32421017,-0.299080998,3.42492353e-06,0.104751341,0.148453251,-2.04377484,3.28369975,0.0215609651,0.422983676 +0.297951818,1.32422698,-0.297951818,4.37271592e-05,0.104620636,0.147891596,-2.01054144,3.25852966,0.0215613246,0.421382129 +-0.406126797,1.32437813,0.406126797,8.19369743e-05,0.292660028,0.508734941,-4.07249355,0.304227412,0.0206179488,0.574373245 +0.355695039,1.3243829,-0.355695039,6.69238289e-05,0.17898795,0.297947526,-3.83672023,2.70633912,0.0212384369,0.503044426 +0.595679283,1.32438731,-0.595679343,0.00171465974,0.171385661,0.153829947,-0.488001645,-0.876232743,0.021013882,0.842925012 +-0.59584713,1.32447863,0.595847189,1.97354457e-05,0.17125234,0.151573822,-0.478995681,-0.824483931,0.0207919106,0.842714012 +0.369830966,1.32465613,-0.369830996,7.52023261e-05,0.217504859,0.372241378,-4.01236343,2.07547307,0.0211684629,0.523073077 +-0.408978283,1.32466078,0.408978283,9.2463757e-05,0.29547298,0.512176752,-4.04543543,0.169510454,0.0205969382,0.578439355 +-0.597616196,1.32475448,0.597616196,0.000793598476,0.171757042,0.15120326,-0.481741101,-0.824206114,0.0207892787,0.845194519 +0.357075095,1.32476473,-0.357075095,1.73269268e-06,0.184258029,0.308241785,-3.85907912,2.62119818,0.0212285612,0.505013168 +-0.315108716,1.32484865,0.315108716,4.15578361e-05,0.113120764,0.168119937,-2.58168721,3.48272419,0.0215001311,0.445653379 +0.494934797,1.32496881,-0.494934797,0.000520942034,0.247219801,0.365793049,-0.957955241,-1.75224209,0.020914752,0.700055122 +-0.41276443,1.32507598,0.41276443,8.16302418e-05,0.295793831,0.509772599,-3.94642782,-0.00544534624,0.0205785986,0.583777964 +0.300110102,1.32520211,-0.300110102,2.69427892e-05,0.106116869,0.150800005,-2.10069489,3.25751615,0.0215547588,0.424429238 +0.298669249,1.3253994,-0.298669249,4.23209603e-05,0.10573785,0.149706662,-2.05702448,3.23680568,0.0215559546,0.422400475 +-0.59190619,1.32542562,0.59190619,0.000644699321,0.171305448,0.155721009,-0.480475157,-0.858472526,0.0207944643,0.837105393 +0.636362731,1.32587659,-0.636362731,0.000575067766,0.184355736,0.142491639,-0.512625873,-0.81109184,0.0209243894,0.899999857 +-0.260551393,1.3259846,0.260551393,0.000298216852,0.108112052,0.138761774,-1.18777537,2.42240477,0.021506181,0.368656993 +0.106980026,1.32599068,-0.106980026,0.000278514606,0.0543023795,0.0315910652,0.0138387354,-0.00673066173,0.0208781268,0.152518004 +-0.117615722,1.32612312,0.11761573,0.000198187146,0.0688603371,0.0391145311,-0.163557172,0.0348898359,0.0209038462,0.166473642 +-0.310402036,1.32649207,0.310402036,4.25596299e-05,0.112566859,0.165408075,-2.45820236,3.35753632,0.0215348434,0.439002782 +0.330196202,1.32661986,-0.330196202,9.26241337e-05,0.13164556,0.205220059,-3.14483261,3.31240988,0.0214080587,0.467010558 +-0.306088984,1.32664299,0.306088984,8.85992413e-05,0.110273406,0.160163864,-2.32124376,3.32166195,0.0215625912,0.432968795 +-0.917255878,1.3267597,0.917255878,0.00473870104,0.208316937,0.120574869,0.877577245,-0.681299388,0.0208310485,1.29857385 +-0.283691227,1.32683992,0.283691227,5.46502815e-05,0.105191574,0.143163592,-1.66988099,2.94653988,0.0216010436,0.401215732 +-0.395489484,1.3268404,0.395489484,0.000138268893,0.273862958,0.475723982,-4.14828062,0.738569379,0.0207084678,0.559391975 +0.357488692,1.32687104,-0.357488662,5.57690328e-05,0.185641706,0.30953151,-3.8674593,2.49797678,0.0212266203,0.505577087 +-0.354064822,1.32696986,0.354064822,6.61848098e-05,0.173974901,0.288268149,-3.81870365,2.68583488,0.0210491754,0.500735283 +-0.595592618,1.32720983,0.595592618,0.000885018089,0.171368703,0.150734574,-0.482484668,-0.835947275,0.0207904782,0.842327476 +-0.106307141,1.3273468,0.106307149,0.000339537364,0.0562803596,0.0331290625,0.0275942571,-0.000798759516,0.0208878294,0.151582271 +0.252497226,1.32737637,-0.252497226,0.000166894039,0.112677962,0.139562607,-1.08938873,2.18238235,0.0213790461,0.357085854 +0.632438004,1.32766497,-0.632438004,0.00113744719,0.18284528,0.143653587,-0.498570144,-0.82347554,0.0209314786,0.894427598 +-0.296297222,1.32793021,0.296297252,3.99879646e-05,0.107316673,0.151140258,-2.03103638,3.14444995,0.0215969477,0.419030845 +-0.329967976,1.32811058,0.329967976,2.98896393e-05,0.131878465,0.206172988,-3.17271924,3.24941206,0.0213320665,0.466686487 +0.341829419,1.32820046,-0.341829419,3.62810897e-05,0.152336568,0.244969338,-3.51283455,2.95946503,0.0213306323,0.483421087 +-0.374254346,1.32830548,0.374254346,7.8478799e-05,0.229453191,0.395338267,-4.06927204,1.6963017,0.0208660513,0.529284418 +0.290390044,1.32838655,-0.290390044,0.000147721308,0.107624516,0.149253786,-1.90536809,2.99095535,0.0215376373,0.410766304 +0.336249262,1.32851434,-0.336249292,5.7504054e-05,0.14136301,0.223327547,-3.35844946,3.11403966,0.0213613231,0.47553578 +-0.499402344,1.32856238,0.499402344,0.000427094579,0.236699536,0.347632587,-0.766810179,-1.51797843,0.0205677375,0.706300497 +-0.339806139,1.32860637,0.33980611,9.66225925e-05,0.147702157,0.237093002,-3.4877305,3.03340673,0.0212090071,0.480588555 +0.348254621,1.32870722,-0.348254621,2.21185601e-05,0.167018414,0.272973269,-3.68869495,2.71551895,0.0212862547,0.492507786 +-0.280147493,1.32870913,0.280147493,6.90052475e-05,0.106892772,0.144226924,-1.6419723,2.80937719,0.0215909965,0.396222711 +-0.37692225,1.32875562,0.37692225,9.2516646e-05,0.236601293,0.409232527,-4.09488726,1.54698467,0.0208421052,0.533069909 +0.317483723,1.32877207,-0.317483723,7.4023359e-05,0.119234569,0.179008275,-2.76376677,3.26966095,0.0214790087,0.449059546 +0.118075214,1.32879615,-0.118075222,0.00019184516,0.0725340322,0.0411919206,-0.185343072,0.0410527289,0.0208789874,0.167233676 +0.636330962,1.32885301,-0.636330903,5.27822976e-06,0.184258714,0.141104788,-0.499404848,-0.821454525,0.0209224001,0.899999857 +-0.538932264,1.32886648,0.538932264,0.00109394465,0.176000953,0.217516139,-0.401308864,-1.19097745,0.0208262894,0.762610793 +0.510717273,1.32887125,-0.510717332,0.000589892792,0.206933185,0.28448987,-0.68528825,-1.58803153,0.0210186094,0.722767353 +0.249135673,1.32895982,-0.249135688,3.24690336e-05,0.114671364,0.140306786,-1.07279861,2.07887053,0.0213538576,0.352342606 +0.344478071,1.32904291,-0.344478071,3.90610294e-05,0.158287451,0.256299853,-3.60323906,2.83641505,0.0213096514,0.487169683 +0.248818383,1.32904804,-0.248818383,0.000206180353,0.11478772,0.140338898,-1.07093775,2.07109213,0.0213514045,0.351895869 +-0.312640607,1.32914364,0.312640607,4.73988475e-05,0.116803989,0.172786221,-2.59429789,3.2654686,0.0215116143,0.442191958 +0.249726146,1.32940626,-0.249726146,7.96153181e-05,0.114922762,0.140858188,-1.09035611,2.08525801,0.0213558748,0.353169858 +0.249110028,1.32951808,-0.249110028,9.13400872e-05,0.115073152,0.140750647,-1.08028746,2.0708909,0.0213516504,0.352303773 +0.248807654,1.32952368,-0.248807669,0.000142787496,0.115134023,0.140712947,-1.0760355,2.06610417,0.0213498008,0.351876915 +-0.264056146,1.32966733,0.264056146,0.000116726704,0.110196009,0.142653182,-1.34331274,2.43387794,0.0215137154,0.373529315 +0.313536465,1.32976294,-0.313536465,0.00012435799,0.117637172,0.174684912,-2.65226603,3.20813465,0.0214918163,0.443455875 +0.379692048,1.32977188,-0.379692018,7.55093497e-05,0.24000524,0.412047416,-4.07754803,1.38529229,0.0211336799,0.536974728 +-0.350271732,1.32984245,0.350271732,9.42311453e-05,0.168850273,0.276974022,-3.73781228,2.63768768,0.0210893359,0.495373636 +-0.333372414,1.32987404,0.333372414,5.82919856e-05,0.138376713,0.218025357,-3.306952,3.09198713,0.0212893728,0.471479774 +0.430390954,1.32988358,-0.430390954,0.00055542367,0.300876439,0.503415108,-3.39515257,-0.89013195,0.0209357087,0.608844161 +1.18059301,1.32992983,-1.18059289,0.000336243713,0.177841589,0.111113198,0.509598553,-0.127488926,0.0210289974,1.66961157 +-0.274643958,1.33035445,0.274643958,8.9741312e-05,0.109474942,0.145839453,-1.58281612,2.64589453,0.0215600859,0.388427675 +0.635128081,1.33036566,-0.635128081,0.0002652806,0.183927014,0.140862375,-0.500610352,-0.826767683,0.0209226292,0.898282647 +-0.33072418,1.33039665,0.33072421,4.07521402e-05,0.135031268,0.211553723,-3.22364664,3.1243155,0.0213203467,0.467769563 +0.343947589,1.33043218,-0.343947589,1.76332e-06,0.159556806,0.258180976,-3.59607673,2.76517558,0.0213123616,0.486427099 +0.380626708,1.33053792,-0.380626708,9.59335157e-05,0.242988497,0.417309374,-4.08052206,1.29575729,0.0211300924,0.538302362 +-0.356587082,1.33061802,0.356587082,6.30022041e-05,0.187464833,0.313291252,-3.86044836,2.34188151,0.0210233163,0.504324555 +0.273226202,1.33063376,-0.273226202,5.49361393e-05,0.110163249,0.145382389,-1.52483809,2.57910967,0.0214788057,0.386402279 +0.344453275,1.33071876,-0.344453275,3.56614282e-06,0.160642952,0.260172427,-3.6111865,2.73651242,0.0213092621,0.48714292 +-0.376269758,1.33077621,0.376269758,2.80976092e-05,0.235480353,0.406423658,-4.07694244,1.48767662,0.0208467375,0.532152057 +1.20394444,1.33077908,-1.20394456,0.000648479618,0.109344944,0.0685586706,1.50974369,-0.172806814,0.021031864,1.70275104 +0.369899839,1.33094561,-0.369899839,0.000103713101,0.219867572,0.373648047,-4.00841475,1.75620437,0.0211635921,0.523200154 +1.21746862,1.33098078,-1.21746862,0.000571400626,0.0726482868,0.0442443192,1.94722962,-0.085079059,0.0210324563,1.72187829 +1.22873306,1.33114898,-1.22873306,0.000258744578,0.0514958575,0.0450682826,2.00126791,-0.0291267354,0.0210331902,1.73780966 +0.343805552,1.33124852,-0.343805522,7.40205069e-05,0.160112604,0.258935064,-3.59547853,2.72711086,0.0213122386,0.486226439 +0.380025834,1.33131015,-0.380025864,5.88372277e-05,0.241248354,0.413604349,-4.07879305,1.29328918,0.0211314894,0.537451863 +-0.553263783,1.33132231,0.553263783,0.000978484983,0.169092,0.184228703,-0.477981746,-1.13318896,0.020822648,0.78300035 +-0.321763456,1.33156312,0.321763456,4.95180248e-05,0.126345813,0.19196789,-2.93434906,3.14871621,0.0214228835,0.455062747 +0.636360765,1.33168471,-0.636360765,0.000505133183,0.184281483,0.140410542,-0.497131765,-0.824461222,0.0209206976,0.899999857 +1.1006155,1.33171928,-1.1006155,0.00100315816,0.208151191,0.12096034,0.0320538431,0.0521059707,0.0210348722,1.55670702 +-0.354063869,1.33174706,0.354063869,3.83026236e-05,0.180368796,0.299170613,-3.83446097,2.39160323,0.0210422296,0.500756681 +-0.280170977,1.33178818,0.280170947,3.5930585e-05,0.109997019,0.148551866,-1.72351646,2.74605203,0.0215807538,0.396286815 +0.0990940854,1.33190489,-0.0990940854,8.7423592e-05,0.127688617,0.0979383737,0.213233203,0.0410599634,0.0208699442,0.140399992 +0.345327049,1.33190572,-0.345327079,4.04103266e-05,0.163125649,0.26435867,-3.63078284,2.64895463,0.0213035196,0.488369584 +-0.240326151,1.33197773,0.240326151,0.000222235598,0.117363811,0.138886213,-1.02711821,1.8651526,0.0213545691,0.339911461 +-0.318933785,1.33198094,0.318933785,3.28236929e-05,0.124952473,0.188312992,-2.85871792,3.11515379,0.021451354,0.451048583 +0.364944458,1.33203197,-0.364944458,0.000100826073,0.207042992,0.34845379,-3.97351956,1.91819882,0.0211876817,0.516147912 +-0.324871033,1.33211493,0.324871033,5.78388572e-05,0.131001145,0.201486766,-3.06429529,3.08009624,0.0213860888,0.459443927 +0.380987287,1.33222497,-0.380987257,6.33628879e-05,0.241698831,0.413410664,-4.07370472,1.22753227,0.0211294573,0.538808227 +-0.23901993,1.33238482,0.23901993,5.41683039e-05,0.117995284,0.138423011,-1.01540124,1.82490456,0.0213464219,0.33808428 +0.276876867,1.33242893,-0.276876867,8.50884244e-05,0.110379159,0.146772131,-1.63123906,2.63467383,0.021488037,0.391568333 +-0.398281902,1.33295906,0.398281932,8.10213678e-05,0.274690241,0.474999875,-4.08627081,0.405446798,0.0206894707,0.563419998 +0.322415888,1.33300722,-0.322415888,2.93063731e-05,0.128582612,0.1952786,-2.9764986,3.04808331,0.0214368161,0.45596537 +1.18047166,1.33323002,-1.18047166,0.000283074682,0.176041618,0.108144864,0.492921978,-0.127635419,0.0210285727,1.66944051 +-1.20530605,1.3332603,1.20530605,0.000460537412,0.108242676,0.0687069073,1.56863713,-0.158880547,0.0209480487,1.7046721 +-0.321343184,1.33333266,0.321343184,3.96217138e-06,0.128586158,0.195475549,-2.96707916,3.05053496,0.0214243941,0.454478592 +-0.353762716,1.33341014,0.353762716,2.99896765e-05,0.181072935,0.299679488,-3.8368125,2.30858326,0.0210392438,0.500347316 +-0.338202,1.33348155,0.338202,7.8626239e-05,0.151349053,0.242122218,-3.48853111,2.77698898,0.0212156177,0.478353679 +-1.21804786,1.33353567,1.21804798,0.00040293223,0.0702018663,0.0428513214,1.96430922,-0.070445098,0.0209607314,1.72269261 +-0.368268937,1.3335371,0.368268907,3.94257004e-05,0.214767158,0.364488244,-4.01762199,1.71875453,0.020905897,0.520811558 +-0.32247299,1.33353758,0.32247299,1.01646201e-05,0.130176857,0.198857933,-3.00717592,3.02851105,0.0214104466,0.456072569 +0.350809902,1.33357954,-0.350809902,4.20512297e-05,0.174598068,0.286224425,-3.7409358,2.41434073,0.0212632567,0.496158808 +-0.234355852,1.33362222,0.234355867,0.000247891556,0.119645312,0.137003288,-0.984299123,1.71194518,0.0213160738,0.331440508 +-0.37893492,1.33363223,0.37893492,5.50211298e-05,0.237922639,0.40839529,-4.08229303,1.27417588,0.0208252836,0.535898805 +0.264967561,1.33365977,-0.264967561,0.000150148946,0.11525923,0.150318593,-1.40817821,2.38083267,0.021422971,0.374950588 +1.17902219,1.3337208,-1.17902219,2.827561e-05,0.179855525,0.110251479,0.431691885,-0.125416532,0.0210283324,1.66739631 +-1.22866344,1.33376503,1.22866344,0.000183065829,0.0493950173,0.0435430072,1.97420764,-0.0250939429,0.0209685918,1.73770607 +-0.239427596,1.333799,0.239427596,7.2188901e-05,0.118748307,0.139291495,-1.04346085,1.81272686,0.0213454627,0.338653892 +-1.10392225,1.3338089,1.10392225,0.00100668578,0.196639329,0.11625877,0.0826005191,0.0655907691,0.0209643561,1.56129909 +-0.383697808,1.33383036,0.383697808,7.55348374e-05,0.246304601,0.422688574,-4.09166288,1.07378352,0.0207957346,0.542647481 +-0.355862498,1.33388484,0.355862498,6.57232013e-05,0.186045438,0.308858871,-3.85972404,2.20789909,0.0210198164,0.503297389 +-0.366232693,1.33398843,0.366232693,4.60861156e-05,0.209455624,0.354137063,-4.00147772,1.79324806,0.0209213067,0.517936349 +-0.767987132,1.33404911,0.767987132,0.00409912039,0.237946838,0.129904628,0.090595372,-0.856070459,0.0207401235,1.08708405 +0.292935371,1.33412826,-0.292935342,0.000150545398,0.113003746,0.157628149,-2.10713387,2.86632276,0.0215108953,0.414390445 +-0.292987436,1.33432591,0.292987436,5.78920663e-05,0.113144621,0.158043116,-2.10636067,2.87394977,0.0215845034,0.414376765 +-0.287988961,1.33438385,0.287988961,5.87615868e-05,0.112811178,0.155268416,-1.98427939,2.79081941,0.0215807818,0.407283604 +-0.309253871,1.33445799,0.309253871,3.1206655e-05,0.119853765,0.175277367,-2.58663177,3.02479506,0.0215139296,0.437369585 +-0.366326302,1.33450532,0.366326302,1.65974125e-05,0.209831834,0.354569137,-4.00217581,1.76292884,0.0209191721,0.518071771 +-0.366077214,1.33456278,0.366077244,4.03946033e-05,0.2091427,0.353203386,-4.00096703,1.77080703,0.0209209584,0.517716169 +-0.32174781,1.33465338,0.321747839,6.043497e-06,0.130750388,0.199275836,-3.00428438,2.97511554,0.0214141998,0.455060154 +0.305904537,1.33480716,-0.305904537,0.000132120287,0.117496021,0.169846728,-2.52436066,2.96593571,0.0214948263,0.432659864 +1.17774177,1.33481455,-1.17774177,0.000341377337,0.179741859,0.109754309,0.416017324,-0.12594837,0.0210285336,1.66558099 +-0.237805888,1.33511198,0.237805888,7.20265525e-05,0.12002296,0.139363557,-1.03183627,1.76773667,0.0213337597,0.336338669 +-0.294950485,1.33524287,0.294950485,6.95545168e-05,0.114673108,0.161176652,-2.1944375,2.86873984,0.0215745848,0.417149812 +0.287716508,1.33524978,-0.287716508,0.000106801621,0.113173813,0.156217217,-1.98947787,2.77046585,0.0214984305,0.407038093 +-0.280586272,1.33531713,0.280586272,8.43215821e-05,0.112690061,0.151918098,-1.79372716,2.65850163,0.0215692706,0.396841824 +-0.320443898,1.33549345,0.320443898,8.43104644e-05,0.130049706,0.196964547,-2.97786307,2.9441731,0.021425331,0.453195423 +-0.293792486,1.33557642,0.293792516,6.08624214e-06,0.114402153,0.160145402,-2.16822481,2.84697509,0.0215782411,0.415517241 +1.14669859,1.3356334,-1.14669859,0.000603397435,0.213473916,0.120633982,-0.189206243,0.0860698298,0.0210330784,1.62175906 +0.276943326,1.33564138,-0.276943356,3.51595081e-05,0.113321945,0.150745496,-1.72166836,2.57310748,0.0214747358,0.391669571 +-0.479771107,1.33586597,0.479771107,0.000424169935,0.262252688,0.394414902,-1.47775483,-1.88498211,0.0204864573,0.678645492 +0.275743186,1.33589482,-0.275743186,7.16783416e-06,0.113528863,0.150621474,-1.70139325,2.53868628,0.021470027,0.389986008 +0.48641333,1.33622217,-0.48641333,0.000442644203,0.248377472,0.367943376,-1.22138882,-1.83466291,0.0209298376,0.688026965 +0.448191345,1.3363266,-0.448191345,0.00038206199,0.289722979,0.468263924,-2.6399622,-1.59787846,0.0208999086,0.634075046 +0.388363689,1.33654583,-0.388363689,5.67000243e-05,0.254810601,0.436888993,-4.04198933,0.766830802,0.021109065,0.549301863 +-0.275851041,1.33662248,0.275851041,8.10859856e-05,0.113822848,0.151544809,-1.71359956,2.5566752,0.0215455946,0.390132993 +1.17932665,1.33668602,-1.17932665,0.000275693223,0.177024752,0.107930005,0.44608745,-0.130083203,0.0210282449,1.66782105 +-0.292908549,1.33669722,0.292908549,7.69901526e-05,0.115123495,0.160519287,-2.16810989,2.79881191,0.0215764847,0.414268643 +0.361249566,1.33671284,-0.361249566,8.94333571e-05,0.201235384,0.336154938,-3.90869021,1.85729957,0.0212000255,0.510993421 +0.274523824,1.33675814,-0.274523824,8.20137357e-05,0.11458946,0.151547909,-1.69421732,2.49806213,0.0214614309,0.388244867 +-0.40331763,1.3368094,0.40331763,6.40895232e-05,0.27098611,0.45977515,-4.01729012,0.127205342,0.0206490681,0.570384502 +-0.849951684,1.33690214,0.849951625,0.00249845348,0.228733674,0.126028314,0.57928443,-0.775800526,0.020760607,1.20286214 +-0.243459061,1.33700657,0.243459046,0.000139352444,0.120086022,0.142899141,-1.1554091,1.84851277,0.0213611834,0.344311565 +-0.385997981,1.33701396,0.385998011,7.51603438e-05,0.248917416,0.424298555,-4.08516121,0.826202512,0.0207750574,0.545902967 +0.276075125,1.3370899,-0.276075125,9.21355604e-05,0.114488244,0.151951656,-1.73161554,2.52128649,0.0214658473,0.390448928 +0.409969032,1.33720911,-0.409969032,0.000179655937,0.277398229,0.470749915,-3.87715483,-0.20543626,0.0210499018,0.579800427 +0.322323292,1.33723211,-0.322323292,4.72364736e-05,0.13434878,0.204241663,-3.06063032,2.81720495,0.0214239601,0.455836326 +0.350512892,1.33727956,-0.350512862,2.70477649e-05,0.178702578,0.292855591,-3.7495873,2.20817852,0.0212595295,0.495776743 +0.321367085,1.33740854,-0.321367085,3.52006246e-05,0.133661211,0.202687547,-3.03165841,2.81045461,0.0214279778,0.454484671 +0.33156693,1.33741963,-0.33156693,7.33498891e-05,0.145893782,0.227380708,-3.30332375,2.69291711,0.0213688277,0.468937695 +0.321836442,1.33743036,-0.321836442,1.73660592e-05,0.134038076,0.203505486,-3.04721713,2.81021404,0.0214258973,0.45514974 +-0.217343777,1.33759606,0.217343777,0.00022174987,0.124896653,0.130255252,-0.8640275,1.31658638,0.0211961474,0.307572097 +0.354682088,1.33760107,-0.354682088,7.87737445e-05,0.187802032,0.3093189,-3.80831623,2.03715444,0.021238368,0.501625419 +-0.393958122,1.33761728,0.393958151,7.54264765e-05,0.262964666,0.449336797,-4.05193281,0.476751089,0.020725714,0.557247043 +0.321949363,1.33778596,-0.321949363,1.3452488e-05,0.134531349,0.204320878,-3.05582547,2.79317665,0.0214241613,0.455312103 +0.301898092,1.33787179,-0.301898092,0.000100333156,0.118826367,0.170232058,-2.46294141,2.81765413,0.0214848109,0.427035928 +0.321748495,1.33790958,-0.321748495,1.26900204e-05,0.134463906,0.204107821,-3.05074883,2.78913426,0.0214242805,0.455027133 +-0.354851812,1.33792877,0.354851812,0.000108334309,0.18178007,0.297524899,-3.83371496,2.0929122,0.0210212637,0.501860738 +-0.294916391,1.33796287,0.294916391,7.19193995e-05,0.11708767,0.164202958,-2.24223995,2.75345302,0.0215648711,0.417097747 +-1.14897776,1.33811045,1.14897776,0.000780439586,0.198871344,0.11224962,-0.175526351,0.0698473677,0.0209337156,1.62504601 +0.223952219,1.3382411,-0.223952219,0.000226428223,0.12574093,0.135642767,-0.91800189,1.44718814,0.0211665407,0.316746891 +0.390527338,1.33825409,-0.390527338,0.000103914572,0.257422984,0.439373642,-4.03122711,0.588969052,0.0211019944,0.552389741 +0.960985422,1.33827043,-0.960985482,0.0022438548,0.181742549,0.103383318,0.899111509,-0.593455195,0.0209143385,1.35936093 +-0.372279167,1.3383292,0.372279167,6.16243778e-05,0.223151296,0.37728247,-4.00897598,1.37914622,0.0208677482,0.52648592 +0.223346263,1.33834815,-0.223346263,1.49071238e-05,0.125815809,0.135364652,-0.914878786,1.43597233,0.0211618487,0.315902919 +0.22248441,1.33843815,-0.22248441,0.00027694006,0.125838876,0.134846866,-0.910388768,1.42375624,0.021156678,0.314666867 +-0.435433149,1.33851624,0.435433149,0.000476226385,0.294366747,0.487590522,-3.19368935,-1.29060948,0.0204500817,0.616055906 +0.223675624,1.33864021,-0.223675638,3.67074e-07,0.126074314,0.135837913,-0.919829667,1.43902385,0.0211632568,0.316371411 +0.322259068,1.33874023,-0.322259068,6.33475865e-05,0.13535589,0.205460429,-3.06846905,2.74948287,0.0214199778,0.455745369 +-0.213004947,1.33877683,0.213004962,0.000329020084,0.125410199,0.127966195,-0.849091649,1.2560848,0.0211637206,0.301437616 +-0.312945813,1.3387804,0.312945813,7.41220065e-05,0.12773861,0.189626634,-2.79394531,2.80562282,0.021469906,0.442693889 +-0.382989198,1.33894479,0.382989168,3.04521764e-05,0.242866412,0.413246363,-4.07932806,0.902981937,0.0207925159,0.541682422 +1.12448239,1.33897448,-1.12448239,0.00073511526,0.212382659,0.119781315,-0.126532093,0.0562522933,0.0210338943,1.59038067 +-0.305409968,1.33897746,0.305409968,7.21591714e-05,0.122179136,0.176630035,-2.5557971,2.81401372,0.0215230044,0.431977034 +0.409031123,1.33902824,-0.409031123,0.000103196522,0.274338633,0.465175867,-3.87899828,-0.21796234,0.0210568998,0.578491569 +0.224227518,1.33917916,-0.224227533,0.00017706459,0.126372635,0.136420399,-0.931078017,1.44369292,0.0211652294,0.317127645 +0.2232164,1.33924019,-0.223216385,4.49141771e-06,0.126488686,0.135927737,-0.921591043,1.42988849,0.0211587604,0.315707445 +-0.381458789,1.33925772,0.381458789,6.16314064e-05,0.239319474,0.406986922,-4.0767417,0.959743261,0.0207982026,0.53951472 +-1.19415522,1.33926392,1.19415522,0.000599371677,0.14170447,0.087621972,1.00902712,-0.142103299,0.0209380798,1.68890405 +0.223648146,1.33927882,-0.223648146,1.035675e-06,0.126453564,0.136135489,-0.924470365,1.43471837,0.0211611874,0.316322535 +0.410309017,1.33943272,-0.410309017,1.84177293e-06,0.274689555,0.464252651,-3.85036016,-0.293110639,0.0210531298,0.580314696 +0.933874011,1.33952236,-0.933874011,0.00213404652,0.192216247,0.107450433,0.813212991,-0.658105969,0.0208889507,1.32090306 +0.198829889,1.33959699,-0.198829874,0.000614890712,0.124499485,0.113989733,-0.734426856,0.994753897,0.021030128,0.281703353 +0.0988843068,1.33967817,-0.0988843068,5.16329455e-05,0.142059803,0.10977865,0.230406553,0.0414251648,0.0208628122,0.140399992 +0.553401947,1.33983159,-0.553401947,0.000771850115,0.167434782,0.175316438,-0.54792136,-1.19022048,0.0210606251,0.782900751 +0.411599159,1.33993793,-0.411599159,0.000204170428,0.273569614,0.460532248,-3.81249952,-0.349244714,0.0210515074,0.582113087 +0.409578085,1.34011352,-0.409578115,4.19236858e-06,0.27320528,0.461740822,-3.86810541,-0.270109385,0.0210557505,0.579280734 +-0.42360428,1.34017682,0.42360428,0.000333958276,0.282387495,0.470590889,-3.58072662,-0.895444751,0.0205368213,0.599250734 +-1.17586851,1.3403883,1.17586851,0.00098306057,0.174061686,0.10235931,0.297438592,-0.0997329354,0.02092712,1.66309762 +0.506567299,1.34045291,-0.506567299,0.000818604894,0.204738855,0.272923499,-0.89559567,-1.7937566,0.021006085,0.716789842 +-0.140401393,1.34054554,0.140401393,0.000255059102,0.100085765,0.0601469614,-0.460127532,0.271097213,0.0209213067,0.199636877 +1.13720524,1.34065199,-1.13720524,0.000412534486,0.213201478,0.118667565,-0.18294242,0.0599748343,0.021032298,1.60842013 +0.407469958,1.3407917,-0.407469958,0.000114313196,0.269919246,0.455658287,-3.88201499,-0.193329215,0.0210619029,0.5762676 +-0.413256705,1.3408134,0.413256705,0.000179136172,0.279686213,0.473388553,-3.84084272,-0.466840714,0.020588303,0.584684134 +-0.342015654,1.34083569,0.342015654,6.14858873e-05,0.158155531,0.251492977,-3.57424259,2.3879509,0.0211568605,0.483697712 +-0.45954299,1.34090722,0.45954302,0.000443090976,0.279865891,0.437849194,-2.21063018,-1.85510921,0.0204197392,0.64995265 +-0.258804381,1.34130573,0.258804381,0.00016746347,0.119236916,0.149447858,-1.43085384,2.11842465,0.021451164,0.36604327 +0.460415781,1.3413105,-0.460415781,0.000640759827,0.26857537,0.41663155,-2.20970964,-1.89411736,0.0209230352,0.651403546 +0.883570254,1.3414166,-0.883570313,0.00359450374,0.210666478,0.114623718,0.708682477,-0.778375149,0.0208406318,1.25033259 +0.262353718,1.34155011,-0.262353718,0.000195415327,0.120610774,0.153401271,-1.51995158,2.17008686,0.021386981,0.371164322 +-0.195846125,1.34162509,0.19584614,0.000476950023,0.124562807,0.111615248,-0.737386823,0.933721662,0.0210738871,0.277659208 +-0.739644885,1.34173131,0.739644885,0.0033561904,0.233003587,0.128892303,-0.096161887,-0.851169169,0.0207374133,1.04715729 +-0.325734138,1.34173656,0.325734138,5.49785946e-05,0.140250847,0.21494922,-3.184201,2.58365583,0.0213541836,0.460659742 +0.184452385,1.34190428,-0.184452385,0.000281790184,0.122443125,0.101547442,-0.688337088,0.816950202,0.0209686514,0.261130512 +-0.149419352,1.3419193,0.149419352,0.000336395489,0.105555989,0.066334255,-0.517281055,0.384165138,0.0209335983,0.211696416 +-0.308003992,1.34202182,0.308003992,5.04437048e-05,0.127187744,0.185473055,-2.69399595,2.66927171,0.0214917995,0.435627162 +0.273546219,1.34219813,-0.273546189,0.000122990139,0.117947996,0.154634356,-1.74374247,2.37260485,0.0214331206,0.386857092 +0.979685068,1.3422178,-0.979685068,0.00183318043,0.174131602,0.0991014913,0.882698119,-0.527396381,0.0209454764,1.38563633 +0.140364677,1.34225249,-0.140364662,0.000296413782,0.102637842,0.0616737716,-0.4748227,0.272023976,0.0208839849,0.199800283 +0.176221803,1.3423245,-0.176221818,0.000190065912,0.119563058,0.0909664333,-0.638281405,0.668299913,0.0209457967,0.249860853 +-0.157482535,1.34241426,0.157482535,0.000320155377,0.109549522,0.0718000382,-0.557805002,0.449170589,0.0209484696,0.223454192 +0.389193088,1.34260058,-0.389193088,0.000203122036,0.249000192,0.420164436,-4.01854801,0.542563736,0.0211081281,0.550455153 +-1.12884545,1.34271741,1.12884545,0.000981596182,0.197568744,0.111108921,-0.121699139,0.0583982915,0.0209445376,1.59657192 +0.360181689,1.342731,-0.360181689,0.000143060082,0.198503435,0.328199893,-3.85589075,1.67671752,0.0212051105,0.509461999 +-0.180758283,1.3427496,0.180758283,0.000317370228,0.120637059,0.0963241532,-0.670165658,0.755382538,0.0210109521,0.255806863 +-0.175799996,1.34286475,0.175799996,0.000111986068,0.118629768,0.089899078,-0.639032722,0.666171372,0.0209962837,0.249010116 +-0.170168012,1.34296381,0.170168012,0.000337801757,0.115900844,0.0844139978,-0.614506364,0.596325517,0.0209852494,0.240799844 +-0.216817454,1.3430022,0.216817439,0.000187286481,0.128628567,0.133071676,-0.90573734,1.27492225,0.0211761408,0.306778163 +0.223351374,1.3430053,-0.223351374,0.000134096525,0.128828138,0.137823716,-0.956151962,1.39941645,0.0211500265,0.315872341 +0.220428795,1.34309042,-0.220428795,0.000143353041,0.128983527,0.136136174,-0.930199325,1.36495066,0.0211355574,0.311739415 +0.409821689,1.34314239,-0.409821689,0.000201403527,0.267895699,0.448984653,-3.83966851,-0.309010565,0.0210626554,0.579589665 +0.33389762,1.34318149,-0.33389762,0.000112904112,0.154634774,0.241993442,-3.42207098,2.36203313,0.0213396437,0.47227183 +-0.267131865,1.343261,0.267131865,0.000101836209,0.119572997,0.154791519,-1.63680708,2.25009775,0.0214843862,0.377871871 +0.531621695,1.34345698,-0.531621695,0.000934642158,0.183187962,0.215018287,-0.693704247,-1.49537265,0.0210490692,0.751954913 +0.331096172,1.34346521,-0.331096143,3.84392115e-05,0.152312547,0.237307578,-3.34503222,2.38584733,0.0213497598,0.468332678 +0.313377142,1.34361148,-0.313377142,8.65791881e-05,0.130895972,0.192558914,-2.8592658,2.581882,0.0214295555,0.443201244 +-0.0992561653,1.34372652,0.0992561653,9.54823627e-05,0.150549114,0.117930397,0.230054319,0.0433905348,0.020861391,0.140399843 +-0.223306432,1.34372807,0.223306417,0.000153295376,0.128599122,0.137407079,-0.986327887,1.36830711,0.0212173909,0.315885127 +-0.329563409,1.34386754,0.329563379,5.24539537e-05,0.146283582,0.226320907,-3.32387829,2.43033314,0.0213035773,0.466079116 +0.16818434,1.34390271,-0.16818434,0.000352487084,0.116779923,0.083694987,-0.614505708,0.568428993,0.0209322609,0.238076851 +0.427611709,1.34394741,-0.427611738,0.00017039114,0.278320402,0.457280487,-3.33676052,-1.07203603,0.0210065618,0.605135798 +-1.01128387,1.34406567,1.01128387,0.00117388065,0.166717559,0.0987399593,0.870274782,-0.355392128,0.0209767465,1.43042874 +-0.390203834,1.34407771,0.390203834,5.95431884e-05,0.243894726,0.408913553,-4.03069067,0.489845216,0.0207505915,0.551837683 +-0.45589605,1.34416306,0.45589605,0.000311826734,0.271907568,0.425455272,-2.37973356,-1.86356676,0.0204424206,0.644788325 +-0.304922104,1.3441751,0.304922104,0.000115920673,0.126624539,0.182135373,-2.63524508,2.58954382,0.0215059817,0.43127808 +-0.381717503,1.34417939,0.381717503,0.000131616413,0.23275122,0.389353693,-4.03833723,0.830006301,0.0207969472,0.539849281 +0.348146081,1.34422421,-0.348146081,7.5494354e-05,0.175430939,0.281732589,-3.70951414,1.96611404,0.0212655421,0.492372125 +-0.0992287919,1.34467757,0.0992287919,3.88301123e-06,0.152235195,0.119336344,0.232231289,0.0434188843,0.0208603702,0.140399992 +0.150379285,1.34477687,-0.150379285,0.000285356015,0.10936261,0.0690747052,-0.545426071,0.39539665,0.0208901111,0.213094905 +-0.0992430225,1.34522259,0.0992430151,2.43551149e-05,0.15341267,0.120299868,0.232454717,0.0426045731,0.0208597537,0.140399992 +0.375022352,1.34528208,-0.375022352,5.65557602e-05,0.222354114,0.368991286,-3.96185541,1.0538367,0.0211529098,0.530362189 +-0.481120586,1.34534979,0.481120586,0.000274402788,0.234329402,0.34293434,-1.48274446,-2.08722687,0.0205395408,0.68059504 +0.157133952,1.34538054,-0.157133952,0.000195632267,0.113003634,0.0737984255,-0.582791448,0.450738639,0.0208989251,0.223166987 +-0.34373942,1.34538305,0.34373942,3.21533298e-05,0.166888922,0.266632408,-3.6295681,2.08507872,0.0211269278,0.486155242 +-0.459604114,1.34548044,0.459604144,8.23962182e-05,0.267314553,0.414327413,-2.23359227,-1.94876707,0.0204426665,0.650055826 +1.06679344,1.34563577,-1.06679344,0.00147262239,0.171392471,0.0952751413,0.397900403,-0.123151958,0.0210464299,1.5088501 +-0.328196973,1.34565151,0.328196943,2.84787257e-05,0.1460118,0.224924222,-3.29653096,2.36603522,0.0213160869,0.464157373 +0.107637174,1.34584975,-0.107637174,0.000172919084,0.0770397782,0.0464700647,0.0208568014,0.0235496126,0.0208593588,0.152504593 +-0.327698022,1.34594834,0.327698052,6.30807244e-06,0.14579457,0.224328279,-3.28254795,2.35782123,0.0213199984,0.463455647 +-0.285086989,1.34601426,0.285086989,0.000108323962,0.121333718,0.165734246,-2.12920666,2.43197966,0.0215303935,0.40336597 +0.116643295,1.34615111,-0.116643295,0.000270634831,0.0893692374,0.0517624058,-0.238247305,0.0533707552,0.0208612364,0.166338474 +0.68067944,1.34616518,-0.68067944,0.00286538177,0.209518164,0.133768767,-0.472371697,-0.650183141,0.0208705813,0.962693214 +0.304974496,1.34623563,-0.304974496,6.65818588e-05,0.126741707,0.181530535,-2.65018749,2.51965189,0.0214416422,0.43132329 +-0.341550529,1.34628713,0.341550499,5.91514436e-05,0.162511706,0.257359445,-3.59314895,2.10074615,0.0211496074,0.483056247 +-0.328270018,1.34638023,0.328270018,4.25545477e-06,0.146464407,0.225508362,-3.29987955,2.33452702,0.0213135071,0.464265645 +0.438658088,1.34685135,-0.438658088,0.000433870737,0.27659902,0.447247922,-3.00974798,-1.4427228,0.0209755003,0.620691657 +-0.33201462,1.34686029,0.33201462,5.40399706e-05,0.1509673,0.233870164,-3.38499546,2.24263406,0.0212673545,0.469542563 +-0.682477713,1.34692657,0.682477713,0.00244806614,0.215918779,0.134508446,-0.483106285,-0.703880787,0.0207453202,0.965807796 +-0.116381794,1.34706593,0.116381802,0.000357732992,0.0883910656,0.0511712544,-0.239768416,0.0567475818,0.0208752658,0.165988415 +-0.327577293,1.34727705,0.327577293,4.39158975e-05,0.146271348,0.224698156,-3.28146768,2.3115685,0.0213167146,0.463282675 +0.314474046,1.34732795,-0.314474046,3.21730404e-05,0.135119066,0.199186742,-2.94517541,2.4285543,0.0214085877,0.444772422 +-0.342852265,1.34779871,0.342852294,3.11626864e-05,0.16680941,0.265208393,-3.62014914,1.9859159,0.0211288407,0.484916896 +0.131783411,1.34786248,-0.131783411,0.000232234306,0.101898968,0.0594968684,-0.442242622,0.213422984,0.0208708271,0.186508745 +-0.401289582,1.3479265,0.401289582,0.000122286976,0.253056258,0.420842052,-3.94689918,-0.0663989186,0.0206759628,0.567540526 +-0.460447788,1.34820247,0.460447818,0.000220712274,0.264199972,0.407076448,-2.22108316,-1.93855917,0.0204573721,0.651257992 +-0.398427248,1.34832168,0.398427248,5.0812705e-05,0.249748304,0.415396959,-3.98627543,0.0498567969,0.0206972789,0.563512564 +-0.324360669,1.34833038,0.324360698,7.7026416e-05,0.144417167,0.219648272,-3.20743799,2.29602861,0.0213402435,0.458719432 +-0.365507126,1.34834421,0.365507126,5.6641984e-05,0.203814521,0.334336966,-3.91735411,1.28911483,0.0209034216,0.516932547 +0.297333539,1.34842968,-0.297333568,0.000153487912,0.125543863,0.175732002,-2.49235439,2.41535282,0.0214290079,0.420643479 +-0.132203653,1.34851456,0.132203668,0.000223122566,0.100391865,0.0588252842,-0.444047362,0.21082148,0.0208998546,0.187095284 +0.342914164,1.34851801,-0.342914164,0.000103280945,0.169039428,0.267240345,-3.59598112,1.9172076,0.0212826282,0.485021234 +-0.269314617,1.34859312,0.269314617,0.000133160633,0.122806475,0.159273133,-1.79216397,2.14923286,0.0214761179,0.380965829 +-0.532664359,1.34872007,0.532664359,0.000981690711,0.175723821,0.203162909,-0.639969409,-1.45937479,0.0207891725,0.753697991 +-0.36677587,1.34907067,0.36677587,8.92367825e-05,0.207044646,0.340003699,-3.91747308,1.2116648,0.020892702,0.518746018 +0.330746055,1.34920597,-0.330746055,9.2913433e-05,0.153371662,0.236230955,-3.35625792,2.16760135,0.0213395823,0.46777451 +0.0991518199,1.34927928,-0.0991518199,8.99391671e-05,0.162260398,0.12642774,0.232238352,0.029580513,0.0208544172,0.140399992 +0.129465312,1.34931529,-0.129465297,4.64898912e-05,0.101905011,0.0590833724,-0.43625012,0.199029908,0.0208652187,0.183517724 +0.311504304,1.34933817,-0.311504304,6.19298226e-05,0.134450555,0.196133539,-2.88143611,2.36516619,0.021407079,0.440543711 +0.56090337,1.3493638,-0.560903311,0.000710892491,0.170595974,0.169827014,-0.578643978,-1.24477708,0.0210392438,0.793555439 +-0.39658621,1.34938669,0.39658621,0.000157819741,0.246254861,0.408225894,-3.97764015,0.101118088,0.0207121782,0.560890973 +-0.279633433,1.34945726,0.279633462,0.000151050495,0.123044081,0.163839817,-2.03576756,2.27379465,0.0215142891,0.395619571 +-0.32913807,1.34949076,0.32913807,5.72553545e-05,0.147803798,0.22634238,-3.31576967,2.20369196,0.0212947428,0.465476245 +-1.20136952,1.34959364,1.20136952,0.000335770688,0.116471671,0.0716912895,1.35423493,-0.17248854,0.0209439006,1.69920611 +1.02226102,1.349648,-1.02226102,0.00169018051,0.16370663,0.0924423859,0.721714973,-0.348632395,0.0210135318,1.44590521 +0.315411955,1.34969544,-0.315411925,4.69493571e-05,0.13670978,0.201379374,-2.97197342,2.3446362,0.02139806,0.446100473 +-0.260928869,1.34971452,0.260928869,9.90473854e-05,0.125008821,0.156838968,-1.61701131,2.00919199,0.0214340761,0.369044781 +-0.341225326,1.34972346,0.341225326,6.15264216e-05,0.163454279,0.256968409,-3.59769917,1.94292378,0.021143388,0.482597679 +-0.177197173,1.34974456,0.177197173,0.000351974537,0.123886257,0.0939284563,-0.697142363,0.677811503,0.0209879987,0.250773847 +0.318245411,1.34976578,-0.318245411,7.81083436e-05,0.139382645,0.206571296,-3.05050707,2.29668951,0.0213901885,0.450081229 +-1.21622157,1.34989858,1.21622157,0.000424544181,0.0747582465,0.0446055159,1.85630357,-0.0822489113,0.0209596418,1.72021246 +-1.22859752,1.35015273,1.2285974,0.000193931774,0.0516620204,0.043121852,1.91543233,-0.0280899554,0.02096962,1.73771656 +-0.456820279,1.35028696,0.456820309,0.000272390578,0.262581766,0.404639781,-2.30897999,-1.88848925,0.0204746984,0.646109521 +-0.129385054,1.35051954,0.129385054,4.53065222e-05,0.100304678,0.0583040528,-0.438163429,0.192368269,0.0208901707,0.183474675 +-0.345186502,1.35058606,0.345186502,0.000162181575,0.169155076,0.26688984,-3.64214849,1.81078041,0.0211007725,0.488191664 +0.836424112,1.35076666,-0.836424112,0.00365067413,0.21449849,0.11420659,0.503309906,-0.817264855,0.0208266657,1.18352306 +0.371899784,1.35081279,-0.371899784,6.98743388e-05,0.212439463,0.347123057,-3.90739036,1.00989962,0.0211650245,0.525948346 +0.256400406,1.3508532,-0.256400406,0.000260546571,0.127058774,0.158520833,-1.54979277,1.91188133,0.0213146284,0.362934262 +0.34529534,1.3509537,-0.34529534,1.71346546e-05,0.17290549,0.274091035,-3.64440084,1.76984453,0.0212662835,0.488435894 +-0.364131778,1.35124493,0.364131778,0.000160111507,0.199135169,0.322589219,-3.89130878,1.2315352,0.020910427,0.514981151 +-0.483531773,1.35125542,0.483531773,0.000318337727,0.226679325,0.325585008,-1.43536091,-2.06879663,0.0205740724,0.684027612 +-0.399190038,1.35126555,0.399190009,0.000120767698,0.24692972,0.408270806,-3.93826079,-0.020637013,0.020700153,0.564583361 +-0.255834013,1.35149014,0.255834013,8.05181699e-05,0.127101019,0.157304078,-1.54873896,1.89826095,0.0213944465,0.361955225 +0.159977138,1.35154033,-0.159977138,0.00019790091,0.118546113,0.0783913434,-0.635429859,0.477109849,0.0208976232,0.226821244 +0.373860896,1.35157907,-0.373860896,6.10404386e-05,0.216028869,0.353322804,-3.91238236,0.897604942,0.0211589262,0.528721273 +0.348639846,1.35159409,-0.348639876,0.000155461952,0.17658025,0.280327737,-3.69082952,1.66248083,0.0212558489,0.493108332 +-1.03175068,1.35168231,1.03175068,0.00197337358,0.165366441,0.0963838473,0.716555476,-0.254441351,0.0209818967,1.45936728 +-0.312672079,1.35207272,0.312672079,0.000129672408,0.136425287,0.199469253,-2.91549563,2.27879024,0.0214282516,0.442221999 +0.371926516,1.35232806,-0.371926546,2.27843775e-05,0.212170735,0.345787317,-3.89729548,0.952906787,0.0211649667,0.525991201 +1.04510117,1.35233045,-1.04510117,0.00106813596,0.166103393,0.0931796357,0.55627656,-0.217016011,0.0210378394,1.47815156 +-0.369032174,1.35233164,0.369032174,0.00015043607,0.205323651,0.333033651,-3.90337181,1.05566573,0.0208785627,0.521908104 +0.783408165,1.35233378,-0.783408165,0.00460230373,0.224040344,0.119560987,0.199084938,-0.847020924,0.0208164174,1.10863638 +-1.07216203,1.35236907,1.07216215,0.00210860581,0.164844424,0.0930589736,0.425115585,-0.0878870636,0.0209751409,1.51643646 +0.372298896,1.35254908,-0.372298896,4.44014495e-06,0.21273008,0.346743613,-3.89949036,0.93226701,0.0211637914,0.526518285 +0.12962237,1.35262084,-0.12962237,0.000197645073,0.10420727,0.0603906401,-0.455750734,0.207277849,0.0208626352,0.183476403 +-0.251125753,1.35262549,0.251125753,0.000213088657,0.128980994,0.156739593,-1.48791206,1.80374551,0.0213597119,0.355212152 +0.306321621,1.35274076,-0.306321651,2.67490777e-05,0.133503899,0.191628918,-2.77664971,2.26170468,0.0213998072,0.433301002 +-0.415217221,1.35281909,0.415217221,0.000240674446,0.255228341,0.415136665,-3.71009851,-0.649454594,0.0206063967,0.587348819 +0.371733397,1.35284352,-0.371733397,5.53956233e-05,0.211800471,0.344847709,-3.89182401,0.940737844,0.0211657695,0.525716603 +-0.353567481,1.35301745,0.353567481,0.000100248071,0.181954086,0.289892375,-3.75690675,1.49374127,0.0210034456,0.500164628 +0.372845829,1.3530432,-0.372845829,0.000119516189,0.213071585,0.347087324,-3.89499331,0.902712584,0.0211628415,0.527289987 +0.372042894,1.35304475,-0.372042894,0.000135180206,0.212220386,0.345567644,-3.89165092,0.926777482,0.0211645421,0.526158154 +0.337458432,1.35309207,-0.337458432,7.62405471e-05,0.164053768,0.254786462,-3.48578072,1.84029412,0.0212973524,0.477266252 +0.303355873,1.35328603,-0.303355873,6.52208328e-05,0.131781548,0.186620653,-2.70484734,2.2554245,0.0214045979,0.429051965 +0.107415289,1.35331249,-0.107415289,0.000109041153,0.0855413303,0.0522046313,0.0206966866,0.0340514146,0.0208517034,0.152534947 +0.548667192,1.35339272,-0.548667192,0.00135267212,0.16890417,0.171990201,-0.622885704,-1.33794534,0.021065969,0.776255131 +-0.446389735,1.35340381,0.446389705,0.000165363352,0.25611797,0.398372501,-2.70530176,-1.67810941,0.020512322,0.631300688 +-0.129660383,1.3536799,0.129660383,0.000188610487,0.102593504,0.0596472286,-0.457447052,0.200068176,0.0208871737,0.183612838 +0.246332869,1.35371995,-0.246332869,0.000179133596,0.131762117,0.156433329,-1.38768446,1.68669248,0.0212541334,0.348678827 +0.452281713,1.35392022,-0.452281713,0.000442971592,0.249918342,0.384353906,-2.53385019,-1.78084207,0.0210111178,0.640017211 +0.181614056,1.3539319,-0.181614071,0.000221773429,0.130314797,0.101690643,-0.758328915,0.735594332,0.0209429041,0.25697431 +0.284122586,1.35399616,-0.284122616,8.42422742e-05,0.125605941,0.167239875,-2.2051971,2.18305898,0.0214005969,0.401831597 +0.2401191,1.35403359,-0.2401191,0.000355368276,0.133145109,0.155085981,-1.30314207,1.5855304,0.0212154612,0.339908898 +-0.490383327,1.35421753,0.490383327,0.000513801933,0.217206806,0.302078664,-1.30923522,-2.01939917,0.0206016116,0.693587422 +0.389806539,1.35422981,-0.389806539,0.000341780687,0.239643574,0.395859212,-3.87997007,0.274731398,0.0211137142,0.551429749 +-0.0992762372,1.35424662,0.0992762372,9.28813752e-05,0.173470423,0.137237385,0.232328594,0.0287667103,0.0208502132,0.140400007 +-0.310150623,1.35443115,0.310150623,9.14653792e-05,0.136340395,0.197004572,-2.87336993,2.19064093,0.0214379709,0.438664198 +-0.340957999,1.35445857,0.340957969,8.94130571e-05,0.161790684,0.250532031,-3.56799221,1.7946229,0.0211385302,0.482208967 +0.282729954,1.35454512,-0.282729954,9.95338196e-05,0.125822455,0.166906372,-2.17792368,2.15023494,0.0213960297,0.399867624 +0.34422791,1.35481572,-0.34422791,0.000112939611,0.171340406,0.2690247,-3.59734488,1.6728828,0.0212653149,0.486881047 +-0.292032123,1.35550559,0.292032123,7.49312967e-05,0.12953034,0.177857637,-2.40739799,2.18254375,0.0214961581,0.413058668 +0.326099753,1.3555733,-0.326099753,9.85643419e-05,0.150519818,0.226865649,-3.27763796,1.97907186,0.0213378891,0.461281717 +-0.25696224,1.35561275,0.25696224,0.000197322166,0.129256397,0.159465924,-1.59524775,1.85091543,0.0213860702,0.363503784 +-0.829377055,1.35564816,0.829376996,0.00373349222,0.229142383,0.122326829,0.446880817,-0.864215493,0.0207560658,1.17358911 +0.282665193,1.35569906,-0.282665193,3.73115336e-06,0.126507431,0.167721853,-2.18889117,2.12286854,0.0213897545,0.399793774 +0.189687029,1.35586619,-0.189687014,0.000158422277,0.133779749,0.111532502,-0.806282759,0.822521329,0.0209736247,0.268499494 +0.284016341,1.35610735,-0.284016371,8.42143127e-05,0.126941517,0.168651298,-2.22172928,2.11818767,0.0213902164,0.401683271 +-0.29546088,1.35642004,0.29546088,0.000138473973,0.131901488,0.183144331,-2.51649427,2.14604902,0.0214818306,0.417888254 +0.429840118,1.35645914,-0.429840118,0.000411483896,0.263226897,0.420829505,-3.17001462,-1.2004261,0.0210326575,0.60816133 +-0.382431298,1.35651791,0.382431269,0.000174282934,0.219885185,0.356503129,-3.9292531,0.49670437,0.020784907,0.540942669 +-0.239125311,1.35669994,0.239125311,0.000234763764,0.13408801,0.155195311,-1.32584941,1.53576005,0.0212680213,0.338573128 +-0.289162993,1.35673463,0.289162993,7.69665567e-05,0.129994899,0.176420897,-2.35156083,2.11823893,0.0214899816,0.408990502 +0.282012135,1.35690606,-0.282012135,4.37633571e-05,0.127168551,0.168085828,-2.18085933,2.09234357,0.0213822536,0.398854494 +0.359019607,1.35713494,-0.359019607,0.000156058872,0.189468294,0.301313221,-3.78176355,1.20219541,0.0212029535,0.50779748 +0.278088868,1.3573097,-0.278088868,9.31012037e-05,0.127799183,0.166909337,-2.09786916,2.04046154,0.0213693287,0.39328301 +0.328219771,1.35741079,-0.328219771,2.61348105e-05,0.15364559,0.232073888,-3.31536722,1.86708951,0.0213198289,0.464317262 +0.283680469,1.35758758,-0.283680469,9.95885202e-05,0.127450794,0.168776765,-2.21606159,2.08168483,0.0213829856,0.401204467 +-0.143302739,1.35788321,0.143302739,0.000277087354,0.112823285,0.0675484836,-0.591109514,0.335241139,0.0209012162,0.202956736 +-0.108014397,1.35798538,0.108014397,0.000189316313,0.09323816,0.057502348,0.00351520535,0.0411431082,0.0208561495,0.152765557 +0.9645316,1.35805118,-0.964531541,0.00102305843,0.17780894,0.0997845381,0.849502623,-0.601816058,0.0209228732,1.36446023 +-0.432269901,1.358199,0.432269931,0.000234539388,0.252404273,0.399712503,-3.22843671,-1.34189105,0.0205662083,0.61137259 +-0.108012713,1.35828197,0.108012713,3.54050758e-06,0.0935901701,0.0577417463,0.00328161591,0.0415434577,0.0208557807,0.152777344 +0.297269493,1.35828829,-0.297269464,0.000163261939,0.131896153,0.183308691,-2.58060598,2.11446953,0.0213805642,0.42056632 +-0.312750101,1.35830593,0.312750101,7.4466916e-05,0.139663547,0.201917619,-2.95163465,2.02852154,0.0214015096,0.442351282 +-0.231458098,1.35840607,0.231458098,0.000357095239,0.137114003,0.150653318,-1.21435738,1.37641346,0.0212276503,0.327557385 +-0.108017169,1.35844266,0.108017169,2.28841327e-05,0.0938174427,0.0578942448,0.00270293118,0.0416717269,0.0208556093,0.152776539 +0.308374614,1.35851574,-0.308374614,7.0525195e-05,0.137506872,0.195733011,-2.84322429,2.04512405,0.0213746,0.436132371 +-0.265614837,1.35855269,0.265614808,8.03069706e-05,0.130275741,0.163965032,-1.80988693,1.8669672,0.0214189403,0.375660837 +-0.316291839,1.35861993,0.316291869,0.000111507608,0.142021969,0.207126558,-3.02794456,1.97717571,0.0213721301,0.447330594 +-0.557562947,1.35924029,0.557562947,0.0010704454,0.16924426,0.168496206,-0.53718406,-1.19754362,0.0207925159,0.788708806 +-0.292840272,1.35934663,0.292840272,0.000141971424,0.132633358,0.181465894,-2.47267222,2.05009699,0.0214777421,0.414211392 +0.360040516,1.35948992,-0.360040516,0.000155622707,0.190168604,0.301731288,-3.76540995,1.11411417,0.021197116,0.509283662 +0.26394096,1.35982549,-0.26394093,0.000207910227,0.130574018,0.162841067,-1.78018439,1.84230232,0.0213131998,0.373333305 +-0.354418963,1.36036325,0.354418963,0.000173518696,0.182659224,0.288178355,-3.71255898,1.24763417,0.0209865179,0.501394331 +0.331487805,1.36036658,-0.331487805,0.000104379462,0.155792937,0.233733341,-3.34638786,1.71508157,0.0213037524,0.468870878 +-0.334671557,1.36053276,0.334671557,7.24774727e-05,0.157252699,0.238807932,-3.43615746,1.67310357,0.0211903118,0.473348141 +1.15136039,1.36055553,-1.15136039,0.000726121827,0.179578856,0.0954230502,-0.0021348428,-0.128987193,0.0210311562,1.62834907 +-0.309043705,1.36080956,0.309043705,0.000107683423,0.1389741,0.197866067,-2.87437344,1.98110247,0.0214155447,0.437081575 +-0.646055818,1.36096549,0.646055818,0.00103627634,0.201639086,0.134676993,-0.655095398,-0.623423815,0.0207538474,0.913913488 +-0.377412409,1.36108172,0.377412409,0.000181453812,0.210250676,0.336372733,-3.85527277,0.56886977,0.0208222587,0.533856392 +-0.107951038,1.36117935,0.107951045,0.000195497618,0.0981678441,0.0608529374,-0.00730041321,0.0436138548,0.0208526161,0.152666733 +-0.197088987,1.36125731,0.197089002,0.000136023387,0.137576371,0.121319287,-0.907882392,0.88506645,0.0210355055,0.278739363 +0.319418728,1.36139846,-0.319418728,8.59713036e-05,0.146831542,0.214131072,-3.12959337,1.85104859,0.0213375427,0.451761782 +0.203219593,1.36140454,-0.203219593,0.000226698423,0.140526265,0.128714442,-0.936917663,0.970220864,0.0210046414,0.287516296 +-0.221165091,1.36170864,0.221165106,0.000266727176,0.13992767,0.146211281,-1.12754512,1.19295013,0.0211487729,0.313186705 +0.476632893,1.36183417,-0.476632893,0.000609383278,0.224876463,0.319660932,-1.81857061,-1.96557212,0.0209995545,0.674356103 +-0.274340451,1.36184227,0.274340451,0.000140046395,0.131043375,0.169469044,-2.03686714,1.90887594,0.0214444995,0.388043642 +0.952214479,1.36189938,-0.952214479,0.00185968901,0.181350142,0.100915924,0.827052951,-0.642080069,0.0209098142,1.3470335 +-0.296225607,1.36234939,0.296225607,0.000126977815,0.13500753,0.185386613,-2.56209159,1.94866812,0.021454623,0.41895324 +0.10778515,1.36257052,-0.10778515,0.000186688834,0.0980120897,0.0605225265,-0.0188967176,0.0432931706,0.0208435766,0.152630359 +0.492413819,1.36288917,-0.492413819,0.000758506765,0.201695427,0.265369028,-1.36922896,-1.94935262,0.021044733,0.696850479 +-0.427964628,1.36289728,0.427964598,0.00020730836,0.241807714,0.379161537,-3.30744553,-1.20453644,0.020596087,0.605273128 +0.37035042,1.36294651,-0.37035042,0.000149360232,0.201872081,0.319532067,-3.75962377,0.784838378,0.0211696308,0.523755133 +0.401741773,1.36310399,-0.401741803,0.000263239373,0.233843148,0.373453826,-3.69651723,-0.272973061,0.0211118963,0.568278551 +0.267203867,1.36318827,-0.267203867,0.00015939826,0.131651342,0.16495575,-1.89511704,1.80054021,0.0213104952,0.377935022 +0.11789982,1.3632021,-0.117899813,0.000167871243,0.101271391,0.058655493,-0.338035852,0.11223799,0.0208457019,0.16705811 +0.165470064,1.36342514,-0.165470064,0.000347368245,0.128034025,0.086808756,-0.72580564,0.521830916,0.0208936613,0.234304667 +-0.329984248,1.36343002,0.329984248,9.18580045e-05,0.152131259,0.22617884,-3.33885431,1.65499258,0.0212362744,0.466698945 +0.227157995,1.36354566,-0.227157995,0.00020582763,0.140792787,0.151657268,-1.21194112,1.30010772,0.0211166106,0.321331739 +0.187831625,1.36358404,-0.18783161,8.47449555e-05,0.139229894,0.113121718,-0.855570793,0.781413734,0.0209474191,0.265941978 +0.264777333,1.36377966,-0.264777333,0.000188615581,0.132406086,0.164343774,-1.84324443,1.76384151,0.0212998912,0.374578208 +-0.201458976,1.36402416,0.201458976,0.000169015344,0.140702993,0.127034873,-0.953214586,0.92678839,0.0210469048,0.28495574 +-0.433183223,1.36405194,0.433183253,9.85749793e-05,0.240420789,0.373451024,-3.17970729,-1.37510431,0.0205923859,0.612733543 +-0.410513133,1.36406946,0.410513133,0.000371628528,0.236139983,0.374848723,-3.64975262,-0.585879147,0.0206732638,0.580749929 +-0.436550021,1.36430001,0.436550051,0.000227858982,0.237835512,0.366109133,-3.07627535,-1.45655787,0.0205932856,0.617428839 +-0.323188901,1.36448467,0.323188901,0.000133458612,0.148394242,0.218491063,-3.19327712,1.71320057,0.0212928616,0.457176834 +-0.86025387,1.3646009,0.86025387,0.00422565686,0.219270408,0.118098781,0.5981673,-0.832069159,0.0207807049,1.21731973 +1.09178734,1.36476731,-1.09178734,0.00146360265,0.173748165,0.0915391371,0.0950101987,-0.113868356,0.0210497472,1.54422188 +-0.202694386,1.36494529,0.202694401,0.000136884293,0.141451031,0.128772944,-0.968324006,0.936098456,0.0210518613,0.286689937 +-0.635745645,1.3650682,0.635745645,0.000312304997,0.195482343,0.136982903,-0.711543798,-0.611292958,0.0207568761,0.899316669 +-0.201722503,1.36528265,0.201722518,1.24759572e-06,0.141569793,0.127934128,-0.962843537,0.924146175,0.0210448224,0.285346806 +0.19766365,1.36546314,-0.19766365,0.000165609716,0.142135471,0.124616057,-0.933951735,0.886656761,0.0209806561,0.27959615 +-0.277541041,1.36548424,0.277541041,0.000134451257,0.134362429,0.175064728,-2.15746379,1.80720305,0.0214255471,0.392596304 +-0.335056245,1.36581409,0.335056245,0.000114166192,0.15567337,0.231782228,-3.41379189,1.4997946,0.0211782269,0.473875403 +-0.201120615,1.36596954,0.201120615,0.000173847235,0.141856924,0.127556026,-0.963417768,0.918671966,0.021040285,0.284477144 +0.595782101,1.36601257,-0.595782101,0.00119846163,0.174071997,0.142877072,-0.526295602,-0.938459039,0.0209683739,0.842726588 +0.30787313,1.36609185,-0.30787313,0.000113720125,0.141973287,0.200301141,-2.86050296,1.783445,0.0213344693,0.435496986 +-0.273241937,1.36635721,0.273241937,0.000197852482,0.133956954,0.171000063,-2.05429697,1.77904415,0.0214233343,0.386527032 +0.32697165,1.36642766,-0.32697165,8.72289384e-05,0.151609689,0.221489623,-3.25162315,1.61758113,0.02130045,0.462437809 +-1.15338421,1.36653674,1.15338421,0.00114992377,0.164900973,0.0870237425,0.0191940144,-0.114406779,0.0209208429,1.63127899 +0.314037263,1.36660337,-0.314037263,0.000132460002,0.1446729,0.206403971,-3.0018611,1.74621892,0.0213297699,0.444216073 +0.311241835,1.36665773,-0.311241835,2.37420154e-05,0.143616095,0.20407176,-2.9415977,1.7616663,0.0213303082,0.440302253 +-0.202252045,1.36687136,0.202252045,0.000207893172,0.14234826,0.128617302,-0.97527504,0.922880352,0.021043269,0.286058456 +-0.394267797,1.36698282,0.394267797,8.77362399e-05,0.219288766,0.345319927,-3.7620945,-0.03966989,0.0207528528,0.557581246 +0.205105916,1.36705625,-0.205105916,0.000325989036,0.144199446,0.133138299,-0.999990702,0.9658674,0.0210002065,0.290252596 +0.416255862,1.36727107,-0.416255862,0.000348287809,0.238847941,0.377866238,-3.47833204,-0.771601677,0.0210914034,0.588833988 +-0.507855535,1.36729479,0.507855535,0.000861442473,0.184300005,0.221425593,-1.06305397,-1.79571366,0.0207431633,0.718484819 +0.220411971,1.36733019,-0.220411971,0.000236411521,0.143826455,0.146590859,-1.14221168,1.13968754,0.0210741609,0.311903119 +-1.09394503,1.3677969,1.09394503,0.00159902428,0.164126217,0.0884791389,0.188959256,-0.0783483535,0.0209514536,1.54718518 +0.147526875,1.36784053,-0.14752689,0.000202025214,0.122562654,0.0742510334,-0.678348064,0.387952358,0.0208627116,0.208741993 +0.223618329,1.36802781,-0.223618329,0.000178974413,0.143873245,0.14985843,-1.1951369,1.18574822,0.0210864656,0.316361338 +1.14031672,1.36809444,-1.14031672,0.000892689102,0.176304698,0.0898969173,-0.0760538355,-0.134762987,0.0210323371,1.61282277 +0.12867488,1.36852407,-0.128674895,0.000254844635,0.114510119,0.0661792308,-0.546117544,0.22667405,0.0208459403,0.183320716 +-0.17819275,1.36872506,0.17819275,0.000174693196,0.136613905,0.102756515,-0.832782209,0.661273837,0.0209492519,0.252846777 +0.340410233,1.36883211,-0.340410233,0.000173121342,0.164105356,0.245941818,-3.46456385,1.30226469,0.0212461259,0.481603265 +1.03328824,1.36918628,-1.03328824,0.00048485212,0.161802515,0.0893988609,0.580584168,-0.305797577,0.0210306551,1.46172249 +1.12431216,1.36923313,-1.12431204,0.00122312806,0.174355611,0.0893536285,-0.0404855385,-0.129529998,0.0210391227,1.59013808 +0.117911771,1.36931765,-0.117911771,0.000111011563,0.105413571,0.0610060878,-0.378268033,0.131991386,0.020839002,0.167437673 +-0.302168041,1.36941791,0.302168041,0.000133101916,0.140301675,0.194007054,-2.7358911,1.73471797,0.0214051791,0.427473187 +0.0986817628,1.36945164,-0.0986817628,0.000108823187,0.20259726,0.160525963,0.237282321,0.00336311688,0.0208363049,0.140400007 +-0.464807034,1.36960733,0.464807034,0.000308356131,0.23586753,0.3411569,-2.11056256,-1.78033102,0.0205675866,0.657348931 +0.18812564,1.36993575,-0.18812564,0.000167011778,0.142365843,0.114405774,-0.888378024,0.765029907,0.0209350102,0.266340315 +-0.14059341,1.36995995,0.14059341,0.000217890483,0.119709179,0.0709692016,-0.647728503,0.339750141,0.0208765846,0.199383646 +0.463363647,1.37003469,-0.463363647,0.000661127444,0.22583957,0.325101674,-2.17581606,-1.86092567,0.0210334007,0.65557754 +-0.159925282,1.37009668,0.159925282,0.000261305016,0.128954172,0.0834122822,-0.746660233,0.492677808,0.0209073965,0.226233542 +0.272464275,1.37010789,-0.272464275,0.000216179134,0.134102166,0.169897273,-2.04951239,1.71963096,0.0212917998,0.385577977 +0.180997938,1.37019014,-0.180997938,0.000316865218,0.140547112,0.107454278,-0.860629201,0.717985392,0.0209141392,0.256143957 +0.635717392,1.3705157,-0.635717392,0.00100079202,0.189920992,0.132242396,-0.689959764,-0.608930349,0.0209213477,0.899965584 +-0.128742918,1.37107682,0.128742918,0.000292708835,0.114333905,0.0662118345,-0.563983679,0.228789613,0.0208608825,0.183858216 +-0.263037384,1.37126446,0.263037384,0.000245490868,0.137225151,0.170612156,-1.889853,1.59613323,0.0213450808,0.372430384 +0.150493681,1.37128437,-0.150493696,9.42506595e-05,0.126261026,0.0777497292,-0.714786112,0.414119661,0.0208636746,0.212970197 +0.349279702,1.37141681,-0.349279702,7.60367984e-05,0.169462368,0.254029185,-3.51704693,1.10422754,0.0212312471,0.493961573 +1.17721176,1.37159526,-1.17721176,0.000434146234,0.150806606,0.0828401297,0.46013093,-0.171816438,0.0210272297,1.66486776 +-0.360440314,1.37172031,0.360440314,0.000209656733,0.179802418,0.274905145,-3.63813734,0.875171244,0.0209458955,0.509791851 +0.282185316,1.37182605,-0.282185316,0.000142313162,0.134620607,0.173441559,-2.24539113,1.71465647,0.021307433,0.399247944 +0.409466088,1.37191558,-0.409466088,0.000341654755,0.230480313,0.359950453,-3.51270962,-0.575580895,0.0211083181,0.579192042 +0.145961359,1.37202406,-0.145961374,0.000205758115,0.124739975,0.0752056539,-0.692641914,0.385249466,0.0208558664,0.206547201 +-0.391274452,1.37219691,0.391274452,0.000136109389,0.208603293,0.322580874,-3.70502377,-0.00239271671,0.0207747221,0.55335319 +-0.37851578,1.37226272,0.37851578,0.000165769117,0.202989161,0.316826165,-3.68495131,0.389675945,0.0208315942,0.535408914 +-0.636217415,1.37231684,0.636217415,0.00077609939,0.185072929,0.130246371,-0.453761876,-0.882582426,0.0207252707,0.900000036 +-1.00591588,1.37238026,1.00591588,0.00371172652,0.167299226,0.0963807628,0.769534588,-0.40026322,0.0209633205,1.42293918 +-0.523449957,1.37250817,0.523449957,0.00093890127,0.17487818,0.19442293,-0.865699291,-1.58858848,0.0207743961,0.740875304 +0.148496628,1.37251067,-0.148496613,8.72608507e-06,0.126196355,0.0765839443,-0.714243948,0.40424487,0.0208574533,0.210292175 +-0.499549776,1.37252676,0.499549747,0.00057300675,0.190023571,0.234608442,-1.25039661,-1.84232855,0.0207158998,0.706894875 +-0.369763047,1.37279737,0.369763047,0.000180842893,0.192257971,0.295767337,-3.67243791,0.56332469,0.0208847411,0.52296865 +-0.394351542,1.37287033,0.394351512,0.000145791157,0.210409164,0.324334562,-3.67787743,-0.115907252,0.0207638144,0.557707727 +-0.146391556,1.37287903,0.146391556,0.000155644957,0.123865604,0.0745809749,-0.700427413,0.37725383,0.0208811313,0.207700595 +0.325260073,1.37317717,-0.325260103,8.2979197e-05,0.151645303,0.217454568,-3.18735671,1.4270494,0.0212781541,0.460073292 +0.330046535,1.37324691,-0.330046535,5.797216e-05,0.154483482,0.223131657,-3.27916956,1.35974252,0.0212683454,0.466830045 +-0.184859872,1.37333727,0.184859872,0.000329264207,0.141287863,0.111095667,-0.881598115,0.689994693,0.0209672283,0.262108743 +-0.392921925,1.37334371,0.392921925,5.84194549e-06,0.209102049,0.322242707,-3.6855135,-0.0711039081,0.0207701959,0.555702209 +0.351942867,1.37348914,-0.351942867,0.00011752556,0.172504812,0.258192569,-3.53438663,0.968432546,0.0212169643,0.497728705 +0.298866332,1.37351215,-0.298866302,0.000168356899,0.139909044,0.18918547,-2.65432,1.63316965,0.0213128962,0.422794282 +-0.118848652,1.37369299,0.118848652,0.000131411478,0.109598935,0.0634547845,-0.416844487,0.148710191,0.0208484456,0.168077618 +-0.118848711,1.37369728,0.118848711,4.54567328e-07,0.109602213,0.0634566545,-0.416873187,0.148724735,0.02084844,0.168077976 +-0.118848801,1.37370002,0.118848801,3.01512614e-06,0.109603867,0.0634575337,-0.416892648,0.148734495,0.0208484381,0.168077931 +-0.118845813,1.37374616,0.118845813,0.000149299623,0.109629966,0.0634717196,-0.417161852,0.148876056,0.0208483841,0.168073371 +-0.392350256,1.37394762,0.392350227,4.86721765e-05,0.207141072,0.318115979,-3.68065476,-0.0587230995,0.0207725465,0.554890335 +0.153497905,1.374066,-0.153497905,0.000162863987,0.129224867,0.0812055841,-0.742475629,0.437265426,0.0208652746,0.217149064 +-0.225340962,1.37410104,0.225340962,0.000273423706,0.145159781,0.151201144,-1.23498416,1.14616168,0.0211327393,0.318961084 +-0.157165378,1.37419009,0.157165363,0.000165722828,0.130226374,0.0829004869,-0.760049939,0.469233304,0.0208973624,0.222316578 +-0.216623813,1.37425411,0.216623813,0.000194380322,0.145773441,0.146246061,-1.15682089,1.08487844,0.0210850593,0.306691527 +0.243014619,1.37446654,-0.243014604,9.81994963e-05,0.142581627,0.160801157,-1.51407588,1.35825157,0.0211656392,0.343676835 +-0.119388469,1.37448478,0.119388461,7.53104468e-05,0.110376492,0.0638594478,-0.430025339,0.15570569,0.0208479892,0.168840796 +0.242857605,1.37449551,-0.24285759,0.00012797807,0.142647624,0.160712793,-1.51140475,1.35494149,0.0211647507,0.343454748 +-0.32706213,1.37452793,0.32706213,0.000122250451,0.149873883,0.215883791,-3.19376159,1.40891159,0.0212351326,0.462580651 +0.572498083,1.37453341,-0.572498143,0.00113349094,0.173015341,0.159050718,-0.579399586,-1.17276108,0.0209942907,0.809739351 +-0.393029064,1.37461257,0.393029094,0.000158103721,0.206601441,0.316387534,-3.66652417,-0.0788661614,0.0207735412,0.555844367 +-0.318215847,1.37463093,0.318215847,0.000136457864,0.14790988,0.211473882,-3.04367948,1.49467778,0.0212860294,0.450086117 +0.242776737,1.37468135,-0.242776752,7.51725456e-05,0.142759964,0.16070886,-1.51162934,1.35110533,0.0211638305,0.34334141 +0.242954805,1.37468779,-0.242954805,8.34784369e-05,0.142707303,0.16081138,-1.51538682,1.35300314,0.0211644582,0.343594432 +0.242866218,1.37473035,-0.242866218,3.53300393e-08,0.142747581,0.16075322,-1.51352394,1.35142767,0.0211640205,0.343470216 +-0.163012981,1.37475836,0.163012981,0.000220500617,0.133584693,0.0887587667,-0.794445276,0.529158592,0.0209052451,0.230613351 +0.242911026,1.37491012,-0.242911011,0.000105761741,0.142811835,0.160758391,-1.51465678,1.34900343,0.0211635847,0.343530744 +0.24264884,1.37503242,-0.24264884,9.70090696e-05,0.142929912,0.160687894,-1.5110693,1.34560621,0.0211622231,0.343158871 +-0.57450366,1.37509561,0.57450366,0.00170359667,0.169311404,0.143907323,-0.557868779,-1.11364675,0.0207682569,0.812744737 +0.312311232,1.37518358,-0.312311232,9.85942097e-05,0.145669863,0.202997819,-2.92274284,1.53484631,0.0212998819,0.441710562 +-0.160015181,1.37533391,0.160015181,1.242492e-05,0.132385746,0.0854337811,-0.780367732,0.491373837,0.0208992343,0.226506948 +0.148984879,1.37577093,-0.148984879,0.000249674864,0.128055632,0.0775603205,-0.733348429,0.410357535,0.0208546743,0.210809052 +0.389182687,1.37577391,-0.389182687,0.000197611633,0.208023295,0.318422675,-3.60992408,0.0227960907,0.0211399626,0.550407052 +-1.22872055,1.37581456,1.22872055,0.000321690168,0.0536325276,0.0416784808,1.82013154,-0.0284844227,0.0209872071,1.73774564 +-1.21102834,1.37583852,1.21102822,0.000669207715,0.0820531771,0.0474819764,1.63048482,-0.0964174122,0.0209728163,1.71272421 +-1.19204915,1.37590599,1.19204926,0.000689728186,0.123209149,0.0714616105,0.963508427,-0.187202036,0.0209435616,1.68588161 +-0.696164489,1.37591588,0.696164489,0.00255221431,0.213822097,0.119915828,-0.364640415,-0.784895718,0.0207427219,0.985481977 +0.349426746,1.37611449,-0.349426746,7.50526888e-05,0.168034554,0.24784869,-3.48401403,0.960686922,0.021223126,0.494179279 +0.350480616,1.37614512,-0.350480616,4.82235009e-06,0.16954945,0.250977725,-3.49171901,0.937424064,0.0212186985,0.495682955 +1.18491125,1.37638032,-1.18491125,0.000783775176,0.133750558,0.0746438578,0.721372724,-0.196979046,0.021027023,1.6758101 +0.351191074,1.37638283,-0.351191074,2.72217076e-05,0.170079157,0.251461208,-3.49310708,0.913928568,0.0212167092,0.496680439 +0.387349069,1.37652206,-0.387349069,0.000125892242,0.205347717,0.313130736,-3.5907414,0.0649841949,0.0211442243,0.547825217 +-1.12728441,1.37652731,1.12728441,0.00127537223,0.161455691,0.0827607363,-0.0161166713,-0.103655629,0.0209256187,1.59436083 +-0.0992003232,1.37657678,0.0992003232,7.42107368e-05,0.222537756,0.179639056,0.23270835,-0.00562924286,0.0208264589,0.140400022 +1.20883131,1.3766284,-1.20883131,0.000776832516,0.0852433369,0.048409123,1.54277408,-0.110030122,0.0210270472,1.7096405 +1.22874784,1.37663376,-1.22874784,0.000352154573,0.0551741607,0.0408049002,1.81632817,-0.0325822644,0.021027321,1.7378087 +-0.345822692,1.37679744,0.345822722,0.000150502005,0.162988693,0.239362493,-3.46029043,1.03563261,0.0210651848,0.489077121 +-0.555420995,1.37683141,0.555420995,0.000901751686,0.167634398,0.152235702,-0.671438456,-1.24166131,0.0207831804,0.78578645 +0.335945904,1.37697816,-0.335945904,0.000127355626,0.161902517,0.237858862,-3.31295061,1.17671835,0.0212334376,0.475317478 +-0.930290341,1.37735951,0.930290282,0.00303227478,0.197352976,0.111281842,0.797323167,-0.705521822,0.0208616648,1.31603026 +-0.161050811,1.37740958,0.161050811,0.000137127354,0.13401182,0.086776033,-0.796468377,0.499564767,0.0208971407,0.227912769 +0.327421337,1.37762702,-0.327421337,0.000137372699,0.1530606,0.218210414,-3.19472671,1.29578638,0.0212623458,0.463128626 +0.118419424,1.37766814,-0.118419424,0.000197873378,0.109593332,0.0631489679,-0.443333685,0.163528413,0.0208322145,0.167688727 +0.389226437,1.37768602,-0.389226437,4.378122e-06,0.206481099,0.31456852,-3.57972956,0.000338842859,0.0211400148,0.550493956 +0.391081601,1.37778735,-0.391081601,0.000278048858,0.207373708,0.315590441,-3.56691933,-0.0504850931,0.0211389568,0.553090692 +0.198507383,1.37780559,-0.198507398,0.000187984944,0.148045465,0.128495932,-0.998608589,0.839547873,0.0209646169,0.280792534 +0.388258815,1.3778919,-0.388258815,2.01575385e-05,0.205695972,0.313099146,-3.57423639,0.0190219618,0.0211415812,0.549124479 +-0.363785386,1.37797666,0.363785386,3.85592903e-05,0.181653783,0.274187833,-3.58697557,0.637732506,0.0209219381,0.51460743 +-0.420061946,1.37798285,0.420061946,0.000221850903,0.223299667,0.33921206,-3.306494,-0.860343814,0.0206818506,0.594164848 +0.350794315,1.37799215,-0.350794345,0.00014207924,0.168034792,0.246316582,-3.46874475,0.897812963,0.021218054,0.496117175 +-0.306659043,1.37817287,0.306659043,0.000201268922,0.143065676,0.195919394,-2.79874182,1.49947155,0.0213550236,0.433744609 +-0.343761802,1.37820911,0.343761802,0.000110850408,0.159528568,0.231844559,-3.42757511,1.04156303,0.0210841149,0.48616153 +0.296550393,1.37822211,-0.296550393,0.00018301954,0.141066402,0.188211828,-2.60316515,1.5207293,0.0212893803,0.419496655 +-0.333244503,1.37822485,0.333244503,0.000112243411,0.154177636,0.222105786,-3.27864027,1.19846165,0.021162184,0.471329123 +1.17602694,1.37828612,-1.17602694,0.000475099194,0.142984405,0.077487506,0.511504769,-0.183989942,0.0210271217,1.66323757 +-0.450753391,1.3783648,0.450753391,0.000636288722,0.218596235,0.314760655,-2.52993512,-1.68989825,0.0206467006,0.637819707 +0.349178374,1.37838602,-0.349178374,0.000105129518,0.166833013,0.243766487,-3.45465374,0.91682303,0.0212197173,0.493826509 +-0.158943906,1.3783896,0.158943906,0.000152683133,0.133408666,0.0854496881,-0.7907722,0.484833032,0.0208944585,0.224906936 +-0.344756335,1.3784126,0.344756335,9.83449809e-07,0.161081389,0.234929144,-3.43464684,1.01929581,0.0210734624,0.4875848 +0.289324403,1.37856221,-0.289324373,0.00014513616,0.138827085,0.181573093,-2.44462895,1.54560781,0.0212822519,0.409537792 +0.247537553,1.37860417,-0.247537553,0.000122938247,0.143426314,0.16276826,-1.60570347,1.32257295,0.0211660825,0.350071073 +-0.244634271,1.37876642,0.244634256,0.000208786791,0.144005954,0.160870403,-1.5506351,1.28563893,0.0212278254,0.34599793 +-0.0992416143,1.37901092,0.0992416143,6.85247505e-05,0.230757937,0.187234581,0.220379978,-0.00786293764,0.0208240822,0.140400022 +-0.64255029,1.37908554,0.64255029,0.000634623342,0.196468055,0.128326029,-0.655193806,-0.645110011,0.0207529478,0.909096777 +0.227724463,1.3791579,-0.227724463,0.000184904828,0.148101211,0.155991867,-1.30651045,1.14089012,0.0210706312,0.322533041 +0.320329517,1.37919021,-0.320329487,0.000100175756,0.150502503,0.210935891,-3.05891275,1.32555163,0.0212657228,0.453044772 +-0.34496367,1.37941027,0.3449637,9.59687823e-05,0.160277978,0.232283071,-3.42452693,0.991179943,0.0210725237,0.487879753 +0.980945766,1.3797946,-0.980945766,0.00174814928,0.172234476,0.0957062915,0.7426548,-0.55257225,0.0209495351,1.38743448 +-0.344225883,1.38023531,0.344225913,0.000160361116,0.15917781,0.229598805,-3.40832615,0.988879621,0.0210787505,0.48682788 +-0.312502861,1.38030362,0.312502861,0.000104844141,0.145902634,0.203197375,-2.91055632,1.40016675,0.0213060547,0.442074001 +0.107453726,1.38088036,-0.107453726,0.000225529497,0.12257421,0.0772420317,-0.0962918848,0.0569643639,0.0208266806,0.152865916 +0.307130367,1.38133907,-0.307130367,0.000111829351,0.144879162,0.195903584,-2.79831743,1.40063953,0.0212807786,0.434397042 +0.364746064,1.38158464,-0.364746064,0.00014902353,0.178995371,0.265106916,-3.50216818,0.579733908,0.0211857036,0.515834987 +-0.366555929,1.38160181,0.366555899,9.07946087e-05,0.178664342,0.264246106,-3.54034019,0.510445178,0.0209174212,0.518524826 +-0.681974232,1.3816222,0.681974232,0.000961728743,0.207909867,0.118839569,-0.451627165,-0.763320684,0.0207419023,0.965456605 +-0.361372858,1.38183141,0.361372858,0.000181981086,0.17310831,0.254309803,-3.53535771,0.62199378,0.0209397767,0.511203289 +-0.635664225,1.3818469,0.635664225,0.000112270267,0.19359684,0.12829043,-0.68612963,-0.624527156,0.0207523871,0.899381638 +-0.247326344,1.38223755,0.247326359,0.000162699784,0.145222127,0.162959486,-1.61308062,1.27431655,0.0212326981,0.349823028 +-0.623643398,1.3823725,0.623643339,0.00160785089,0.182334319,0.129479229,-0.459142208,-0.939981937,0.0207349882,0.882178366 +0.388074458,1.38239527,-0.388074428,0.000180346571,0.201164201,0.301668406,-3.50482965,-0.00505327294,0.0211455356,0.548827827 +-0.477883339,1.38265014,0.477883339,0.000446118967,0.203072563,0.267993122,-1.68604016,-1.75480223,0.020681588,0.675858974 +0.375881016,1.38265085,-0.375881016,0.00018127948,0.189415157,0.281123787,-3.50247908,0.260444075,0.0211648457,0.531577706 +-0.24555254,1.38280511,0.245552525,5.99152645e-06,0.145712852,0.162386283,-1.5905242,1.24665439,0.0212181285,0.347348094 +-0.951318502,1.3830694,0.951318562,0.00233029574,0.188280419,0.10664364,0.7982499,-0.637111306,0.0208906792,1.34560633 +0.130111605,1.38307238,-0.130111605,0.00020552217,0.122077405,0.0698272362,-0.649979591,0.282350481,0.0208326299,0.184310451 +-0.146646425,1.38315487,0.146646425,0.000228965786,0.129398271,0.0771923885,-0.751247883,0.39083153,0.0208676271,0.207685679 +-0.84645164,1.3832078,0.846451581,0.00462637004,0.21864298,0.115218379,0.515397072,-0.858393908,0.0207694173,1.19817567 +-1.17776477,1.38324666,1.17776477,0.000852791476,0.144551426,0.0785268918,0.41411069,-0.162950814,0.0209361948,1.6657145 +-0.288237214,1.38337862,0.288237214,0.000139088384,0.142521232,0.183853596,-2.41847134,1.42179513,0.0213598013,0.407635063 +0.313359469,1.38338423,-0.313359499,7.39483366e-05,0.148151442,0.20323579,-2.90659022,1.29611945,0.0212600287,0.443325818 +-0.436519325,1.38346839,0.436519325,0.000205211516,0.211900711,0.305198044,-2.82686853,-1.32428169,0.0206906833,0.617479801 +-0.243383601,1.38365138,0.243383616,0.000191998915,0.146400422,0.161583737,-1.56663227,1.22040832,0.0212021004,0.344238043 +-0.176413059,1.38372087,0.176413059,0.000236696826,0.144130051,0.104060009,-0.900973439,0.629896343,0.0209186189,0.249888599 +-0.286839902,1.38398254,0.286839902,0.00011050079,0.142401233,0.182617053,-2.38598108,1.41342437,0.021359548,0.405669391 +-0.28595385,1.38419604,0.28595385,0.000113810689,0.142329454,0.181716591,-2.36472678,1.40687251,0.0213589761,0.404418409 +0.490150154,1.38429046,-0.490150154,0.000551757694,0.18784076,0.228701085,-1.54037166,-1.7489742,0.0210617483,0.693372965 +0.409606308,1.38446057,-0.409606308,0.000403952668,0.212380499,0.314952314,-3.32623625,-0.57385695,0.0211298,0.579478383 +0.277086735,1.38462067,-0.277086735,0.00016150091,0.139765799,0.173422143,-2.12863445,1.46042848,0.0212396011,0.391978562 +-0.245948568,1.38474238,0.245948553,2.5011439e-05,0.146461874,0.162863538,-1.59977818,1.23208034,0.0212121792,0.347896159 +-0.286607414,1.38478589,0.286607414,8.76410752e-07,0.142673865,0.182457387,-2.38110018,1.39069927,0.0213562101,0.405362576 +-0.408740073,1.3848455,0.408740073,0.000186734018,0.207113653,0.306486875,-3.37046862,-0.558258772,0.0207395684,0.578077734 +0.0990625769,1.38511205,-0.0990625769,8.72049786e-05,0.252737045,0.2060422,0.169232756,-0.0135406991,0.0208197534,0.140400007 +-0.24931246,1.38514113,0.249312475,0.000187970261,0.146230593,0.164239943,-1.65243709,1.24299455,0.0212280378,0.352615178 +-0.268238872,1.38520026,0.268238872,0.000298375293,0.142846018,0.175175458,-1.99937034,1.40785694,0.0213050433,0.379645824 +-0.310427934,1.3852582,0.310427934,3.78436926e-05,0.145784229,0.199293673,-2.8489871,1.28248584,0.0213026293,0.439255714 +-0.285991043,1.3853941,0.285991043,0.000136262999,0.142875597,0.181814879,-2.36550426,1.37923133,0.0213533044,0.404467821 +-0.567558944,1.38552392,0.567559004,0.000626677298,0.167899624,0.143257782,-0.595731139,-1.13015807,0.0207723305,0.803079665 +0.365826309,1.3855952,-0.365826309,4.11016808e-05,0.177523673,0.259216666,-3.45681047,0.470562428,0.0211810023,0.517377436 +1.18282819,1.38561094,-1.18282819,0.000895148318,0.133538678,0.0727897808,0.639001608,-0.202168331,0.0210257396,1.67287183 +0.170408875,1.38565302,-0.170408875,0.000463912642,0.143832088,0.0982128903,-0.87845546,0.558786392,0.020875508,0.241368264 +0.366619736,1.38572443,-0.366619736,0.000111461806,0.178967685,0.261699945,-3.45188665,0.445528954,0.0211785939,0.518506646 +-0.327197999,1.38577819,0.327197999,0.000214539134,0.149559468,0.206809804,-3.10986924,1.10385537,0.0212002341,0.462831736 +-0.287568986,1.38589025,0.287568986,0.00018899588,0.142918348,0.182346165,-2.39082313,1.36339676,0.0213501453,0.40669331 +1.22874355,1.38589966,-1.22874355,0.000423238613,0.0555278175,0.0399992913,1.78128469,-0.0319757275,0.0210258737,1.73781049 +1.20748627,1.38590586,-1.20748627,0.000918067177,0.0861748904,0.048454605,1.47439837,-0.112722486,0.0210257303,1.70774615 +-0.424036473,1.38597429,0.424036473,9.96071758e-05,0.215935349,0.320522428,-3.12353444,-0.977216899,0.0207015853,0.599984944 +0.684001565,1.38606477,-0.684001565,0.00226004561,0.202369601,0.115236498,-0.405279726,-0.763738215,0.0208529793,0.967744291 +-0.107177787,1.38643289,0.107177794,0.000183834389,0.137928709,0.0887507722,-0.100039281,0.0608883426,0.0208247062,0.151712343 +-0.364938021,1.38658071,0.364938021,0.000171520092,0.171364322,0.246967584,-3.46544886,0.497957706,0.020933656,0.51619339 +0.366196752,1.38661838,-0.366196752,2.70195524e-05,0.176818341,0.256852895,-3.44000459,0.447525471,0.0211800728,0.51792115 +-0.636081517,1.38688242,0.636081517,0.000454302353,0.185487166,0.125893012,-0.439620584,-0.908188283,0.0207220092,0.900000036 +0.438181281,1.38690865,-0.438181281,0.000312203949,0.214217216,0.305276126,-2.78166652,-1.257496,0.0211053379,0.61976099 +-0.3320795,1.38703394,0.33207953,0.000151124041,0.151034787,0.209214076,-3.14994502,1.01700127,0.0211624783,0.469737649 +0.519475996,1.38704348,-0.519475996,0.000656120945,0.17445147,0.188190088,-0.996902049,-1.47253513,0.0210430641,0.734699428 +0.365320414,1.38711309,-0.365320414,0.000187341822,0.175446317,0.253941268,-3.43302894,0.458097905,0.0211826079,0.516659856 +1.07155037,1.38747609,-1.07155037,0.00104330864,0.161724478,0.0857178718,0.228413299,-0.205093622,0.0210485887,1.51556098 +0.290003955,1.38761914,-0.290003955,7.52745545e-05,0.144203663,0.186280623,-2.4484787,1.34508085,0.0212369356,0.41020143 +-0.428625107,1.38767731,0.428625107,0.000177687951,0.211475998,0.307347506,-3.00683117,-1.10042632,0.0207129084,0.606494069 +0.671222687,1.38794827,-0.671222687,0.00190862839,0.197671086,0.118683964,-0.482147336,-0.72964853,0.0208731536,0.949417233 +0.366220295,1.38798857,-0.366220295,0.000129381413,0.175399005,0.253103644,-3.41879177,0.435815424,0.0211815331,0.51793617 +-0.314508885,1.38828683,0.314508885,0.000166890502,0.146670029,0.198211685,-2.87650585,1.1631465,0.0212660786,0.44492209 +0.217245579,1.38843787,-0.217245579,0.000124037761,0.152690023,0.148698002,-1.23921871,0.986336589,0.021000633,0.307447672 +-0.408424169,1.38867116,0.408424139,5.6250261e-05,0.202103123,0.295168966,-3.31616855,-0.553612828,0.0207551531,0.577689171 +-0.378974646,1.38869023,0.378974617,0.000223995812,0.185083523,0.271544546,-3.44186401,0.157865375,0.0208540559,0.536279857 +0.434802562,1.38908291,-0.434802562,0.000252044614,0.211443722,0.301013976,-2.85209846,-1.17121792,0.0211224053,0.614969492 +0.264138997,1.3891077,-0.264138997,0.000170700572,0.144320503,0.16928874,-1.92014492,1.28159475,0.0211878791,0.373550951 +-0.107239477,1.38919687,0.107239485,0.000147858285,0.14108181,0.0911099911,-0.130002677,0.0723048896,0.0208219904,0.151724428 +0.130156443,1.38931239,-0.130156443,7.31263281e-05,0.1250875,0.0711748675,-0.693947136,0.302506447,0.0208251961,0.184810504 +-0.224200636,1.38937306,0.224200636,0.000288952549,0.151622295,0.150801688,-1.30696678,0.973305404,0.0210838038,0.317375332 +0.211263791,1.38981426,-0.211263806,0.000279135653,0.153697386,0.140993193,-1.15882134,0.887153745,0.0209701341,0.299123913 +-0.243542731,1.38994038,0.243542746,0.000175525114,0.14889507,0.162239298,-1.57528949,1.1614852,0.0211791992,0.344444513 +0.429736435,1.39024639,-0.429736435,0.000360315869,0.208553955,0.296263874,-2.91326857,-1.03402185,0.0211298745,0.607788682 +0.478617013,1.39045906,-0.478617013,0.000422098266,0.189800024,0.236982822,-1.84820783,-1.66807866,0.0210881568,0.677054882 +0.136049867,1.39054203,-0.136049867,0.000226765478,0.128642619,0.0743883476,-0.730544746,0.331767023,0.0208301861,0.192681223 +-0.347680688,1.39056826,0.347680688,0.000135930008,0.157432139,0.22010231,-3.2824955,0.781284928,0.0210522953,0.491696715 +-0.130694151,1.3906219,0.130694151,0.000127240026,0.126381323,0.0720452666,-0.702448726,0.301165551,0.020839002,0.184831098 +-0.406243265,1.3906517,0.406243265,0.000146763559,0.196285337,0.282985687,-3.3139677,-0.49152565,0.0207645688,0.574567437 +0.31737864,1.39066768,-0.31737864,0.000127558786,0.148906589,0.199038967,-2.89013815,1.10556853,0.0212356783,0.448889703 +-0.130564302,1.39075041,0.130564317,9.488051e-05,0.126388222,0.072019875,-0.702265918,0.30026871,0.0208386853,0.184651688 +-0.215010554,1.39075589,0.215010554,0.000294173427,0.152780384,0.1441558,-1.23114681,0.895496368,0.0210301206,0.30444169 +0.306965292,1.39079738,-0.306965292,0.000133994094,0.146939516,0.192746937,-2.72660494,1.19099545,0.0212417319,0.434157729 +-0.130564511,1.39080632,0.130564526,2.61513662e-07,0.126421168,0.0720373169,-0.702649534,0.300362051,0.0208386239,0.184657201 +-0.130567491,1.39085364,0.130567491,0.000100887482,0.126443595,0.0720465481,-0.70290345,0.300516456,0.0208385717,0.184657067 +-0.130621493,1.39085436,0.130621493,0.000119326782,0.126474142,0.0720717683,-0.703239799,0.300856531,0.0208386015,0.184730753 +0.443001151,1.39093757,-0.443001151,0.000305074442,0.20743987,0.288291514,-2.63751793,-1.31580329,0.0211082008,0.626554132 +-1.14014328,1.39103866,1.14014328,0.00120442477,0.151643366,0.0758068115,-0.0444594957,-0.173399687,0.0209181737,1.61259782 +1.05058432,1.39112949,-1.05058432,0.00129395002,0.157316804,0.0845354497,0.390252471,-0.289146185,0.0210402645,1.48589158 +0.335225105,1.39121604,-0.335225105,0.000216510758,0.154725999,0.212555423,-3.13891292,0.887260556,0.0212113336,0.474275768 +-0.191926479,1.39146519,0.191926479,0.000248712924,0.151668757,0.121227518,-1.02427745,0.69088906,0.020947827,0.271859705 +0.18184036,1.39156079,-0.18184036,0.000255600607,0.150639892,0.110847689,-0.969009995,0.630934,0.0208841693,0.257345021 +0.635765672,1.39175427,-0.635765672,0.00084009557,0.186325282,0.123212956,-0.457687408,-0.902467787,0.0208689664,0.899999976 +0.297132581,1.39176571,-0.297132581,0.00010807022,0.144257903,0.183973283,-2.5173192,1.21660841,0.0212338027,0.42030701 +-0.40872854,1.3920083,0.40872854,0.000229148398,0.195651144,0.279870659,-3.26629734,-0.541727304,0.0207676664,0.578098834 +0.264167011,1.39203429,-0.264167011,4.51771484e-05,0.145693645,0.169809759,-1.93206072,1.22654748,0.0211748984,0.373598307 +0.26371184,1.39213407,-0.26371181,1.73529497e-05,0.145793065,0.169687048,-1.92509043,1.22072518,0.0211725608,0.372959346 +0.679902852,1.39220345,-0.679902852,0.000720809097,0.199620053,0.113558069,-0.429882258,-0.758508563,0.0208571143,0.961884141 +0.437951446,1.39245677,-0.437951416,2.55917639e-05,0.208042592,0.291332811,-2.74569201,-1.22331858,0.0211195853,0.619494617 +0.263949096,1.39257538,-0.263949066,7.06821083e-07,0.145925164,0.169824839,-1.92887199,1.21741891,0.0211715791,0.373296738 +0.264787883,1.39270627,-0.264787883,0.000116997508,0.145875067,0.17006202,-1.94203365,1.21724856,0.0211734958,0.374471039 +0.263250023,1.39279735,-0.263250023,0.000171388107,0.146131337,0.169656619,-1.91918612,1.21135962,0.0211681575,0.372300446 +-0.199400753,1.39296222,0.199400753,0.000259946508,0.153038517,0.129390299,-1.0812422,0.744997442,0.0209768023,0.282274216 +-0.386058271,1.39297855,0.386058271,0.000255754043,0.182563126,0.261057079,-3.34362888,-0.0351700857,0.0208548363,0.546217382 +-0.306603223,1.39315617,0.306603193,0.000219642548,0.145750105,0.190516576,-2.70831752,1.14109397,0.0212917067,0.433700085 +0.280924797,1.39322877,-0.280924797,0.000177308757,0.144335568,0.17943038,-2.24297905,1.26333845,0.021201754,0.39753291 +-0.646719158,1.39344215,0.646719098,0.000550172874,0.194203302,0.124755651,-0.620530605,-0.641961575,0.0207524709,0.914888084 +0.158891901,1.39365911,-0.158891886,0.000281838555,0.142927498,0.0902519152,-0.875857651,0.494326234,0.0208424628,0.225282922 +0.462569416,1.39374566,-0.462569416,0.000473739288,0.196335465,0.25515008,-2.17239475,-1.55793118,0.0210865922,0.654491186 +0.263694108,1.39384592,-0.263694108,0.000110282228,0.146365881,0.169676661,-1.92232037,1.20103085,0.0211657919,0.372924477 +0.22712031,1.39399874,-0.22712031,0.000167223159,0.154149652,0.153087452,-1.35367692,0.958556473,0.0210286286,0.321428239 +0.383941889,1.39420843,-0.383941919,0.000105667765,0.190976813,0.277909994,-3.30525517,0.017445704,0.0211483557,0.543107569 +0.118316308,1.39427793,-0.118316308,0.000243104529,0.118097156,0.0674311295,-0.574614525,0.21853666,0.0208173953,0.168313965 +0.597425938,1.39451289,-0.597425938,0.00125893147,0.176864818,0.128304437,-0.547381461,-0.997581363,0.0209330525,0.845378757 +0.698165059,1.39454114,-0.698165059,0.00322466809,0.201306462,0.112754755,-0.323628366,-0.785158396,0.0208492819,0.987529576 +-0.24849245,1.39527583,0.24849245,0.000156956972,0.149932459,0.163715184,-1.63764954,1.11360812,0.0211772025,0.351431966 +0.107872859,1.39528942,-0.107872859,0.000184058532,0.140383422,0.0901295021,-0.244039953,0.111130603,0.0208133943,0.152881324 +-0.423861593,1.39529681,0.423861593,0.000236825697,0.19735375,0.276314795,-2.99927092,-0.917249322,0.0207393523,0.599666595 +0.325588107,1.39532459,-0.325588107,0.000156296373,0.151550397,0.202339396,-2.98030567,0.932328939,0.0212129876,0.460587144 +-0.936365247,1.3956691,0.936365306,0.0014532397,0.192536995,0.107897595,0.773343682,-0.692563295,0.0208648238,1.32462716 +0.515548646,1.39580977,-0.515548646,0.000436684291,0.172354251,0.181655303,-1.14853311,-1.50891662,0.0210565254,0.729156077 +0.189465225,1.39590478,-0.189465225,0.000231163809,0.154716,0.119941704,-1.02136338,0.661284804,0.0208995044,0.268251717 +0.435824573,1.39627349,-0.435824603,0.00060053682,0.205433786,0.285476714,-2.7379806,-1.15947294,0.0211247131,0.616447747 +-0.183602422,1.39630163,0.183602422,0.000269969867,0.151902065,0.113582268,-1.01139641,0.641602099,0.0209120121,0.259912193 +-0.172024906,1.39638114,0.172024891,0.000273888814,0.148433238,0.101136237,-0.935426354,0.538504481,0.0208900459,0.244055957 +-0.374201655,1.39642239,0.374201655,0.000266293122,0.171165407,0.239357933,-3.32430935,0.189879328,0.0208925493,0.529423356 +-0.269821048,1.39648843,0.269821048,0.000370504305,0.147987872,0.175167188,-2.03209972,1.14574003,0.0212550014,0.381833881 +0.130841151,1.39651132,-0.130841151,0.000200336377,0.128161311,0.0725302473,-0.735879958,0.322273076,0.0208199229,0.185274363 +1.10282421,1.39654875,-1.10282421,0.00158734713,0.16030696,0.0817018673,8.00765119e-05,-0.227717921,0.0210439488,1.55987501 +1.02572155,1.3965745,-1.02572143,0.00198399066,0.160889655,0.0880279019,0.540887773,-0.37188518,0.021021599,1.45082045 +0.219491825,1.39666533,-0.219491825,0.000197186528,0.155836985,0.147403672,-1.29009843,0.895614743,0.0209885221,0.310513496 +0.606484711,1.39672506,-0.606484652,0.00126312813,0.179199263,0.126162797,-0.526086926,-0.973453224,0.0209223498,0.858025193 +-0.432075948,1.39695048,0.432075977,0.000272503705,0.196949869,0.270889759,-2.85078478,-1.05223095,0.0207495075,0.611250162 +0.439775646,1.39715767,-0.439775646,0.000449398824,0.205086321,0.283491462,-2.67144918,-1.20343542,0.0211144537,0.622044563 +0.199625939,1.39718366,-0.199625939,0.000278493128,0.15585503,0.130196571,-1.10070181,0.733850062,0.020929737,0.282423973 +0.675001383,1.39721978,-0.675001323,0.000331440562,0.197418272,0.113851324,-0.447212577,-0.7356112,0.0208644569,0.954934835 +0.905760765,1.39739609,-0.905760765,0.00655869814,0.192332655,0.101875797,0.695014477,-0.793849707,0.0208699387,1.28245044 +-0.117143318,1.39798844,0.117143318,0.000226045318,0.123283818,0.0707941428,-0.560935199,0.222470909,0.0208205841,0.165831208 +-0.470027298,1.39799643,0.470027298,0.000357782556,0.19471097,0.249061853,-2.00676537,-1.60614049,0.0207177196,0.664786577 +0.0988178402,1.39817429,-0.0988178402,8.9845722e-05,0.293856919,0.245384693,0.111336753,-0.0280888639,0.0208053011,0.140400007 +0.290921807,1.39845395,-0.290921837,0.00018527174,0.146696806,0.181999534,-2.38599062,1.09948671,0.0211933739,0.411490947 +0.383093834,1.3984623,-0.383093834,5.63839749e-05,0.182518095,0.257702768,-3.24686432,0.002542248,0.0211529769,0.541967928 +-0.535916984,1.3986876,0.535916984,0.00103103206,0.167531431,0.155018613,-0.859021187,-1.32350898,0.0207747966,0.758765459 +-0.396716714,1.39875555,0.396716684,0.000260603498,0.185652077,0.263183057,-3.21912718,-0.290046692,0.0208114181,0.56148541 +0.524901211,1.39900303,-0.524901152,0.000714550726,0.166621104,0.162116021,-1.01824534,-1.39898705,0.0210494902,0.742443919 +-0.16018489,1.39913583,0.16018489,0.000137443902,0.144347593,0.090696834,-0.875720143,0.473859549,0.0208644569,0.226548254 +0.299995333,1.39921856,-0.299995333,7.68294631e-05,0.146949381,0.186025426,-2.53729773,1.06922936,0.0212031323,0.424464911 +1.16503,1.39938474,-1.16502988,0.00107622659,0.136232257,0.07188043,0.394288659,-0.261281729,0.0210249815,1.64763224 +0.304395437,1.39946258,-0.304395437,0.00013852329,0.147425368,0.187489241,-2.605407,1.04280126,0.0212083682,0.430614442 +0.386305481,1.40002716,-0.386305481,9.82389101e-05,0.182375982,0.254765302,-3.20779753,-0.0733900964,0.0211579502,0.546459854 +0.277792573,1.40013969,-0.277792573,0.000266366609,0.146760404,0.174489334,-2.14074612,1.11176014,0.0211701151,0.393073231 +-0.320078403,1.40018463,0.320078403,0.000242953087,0.148959503,0.198095009,-2.85545087,0.919323564,0.0211791601,0.452980757 +0.321200907,1.40028334,-0.321200907,0.000189411076,0.150715828,0.197597876,-2.85967827,0.884739637,0.0211944375,0.454400539 +-0.445804656,1.40035009,0.445804656,0.000602604705,0.194405288,0.257279217,-2.51625133,-1.29432535,0.0207386557,0.630951643 +-0.0987710431,1.40039718,0.0987710506,0.000117276926,0.30260247,0.256062448,0.104250856,-0.0290185399,0.0208018478,0.140399992 +0.232093215,1.40064132,-0.232093215,0.000251951278,0.155482233,0.155373439,-1.421242,0.938786387,0.0210269652,0.32839936 +-0.117231019,1.40081215,0.117231019,0.000169539562,0.123879492,0.0710115656,-0.582432806,0.235529035,0.0208179355,0.165865883 +-1.06374574,1.40083444,1.06374574,0.0010867758,0.151161462,0.0821972266,0.370303929,-0.23455444,0.0209392346,1.50442088 +0.210543334,1.40093255,-0.210543334,0.000403243524,0.157443136,0.138910547,-1.1915338,0.781917214,0.0209515318,0.298082173 +0.679140389,1.40106356,-0.679140389,0.00105725764,0.19785966,0.111739784,-0.426637709,-0.744343817,0.0208556708,0.960768461 +-0.404673815,1.40132403,0.404673785,0.000208346697,0.18656449,0.258481205,-3.1317997,-0.462033391,0.0207891017,0.572314918 +-1.18325603,1.40151,1.18325603,0.000922764826,0.1280552,0.0689376295,0.602298081,-0.199875265,0.0209502261,1.67356253 +0.226338252,1.40154183,-0.226338252,8.53156453e-05,0.156531632,0.152411744,-1.36529803,0.906258166,0.0209984314,0.32046324 +-0.298526287,1.40156364,0.298526317,0.000170551284,0.146801323,0.18494533,-2.50641561,1.01677966,0.0212589223,0.422416806 +-1.22867155,1.40163362,1.22867167,0.000403301936,0.0555999242,0.0390707031,1.72531998,-0.0276523046,0.0210074373,1.73779917 +-0.505991518,1.40163505,0.505991518,0.000580449414,0.175876573,0.191182956,-1.21644211,-1.5449779,0.0207428001,0.715679049 +-1.20601916,1.40165448,1.20601916,0.000813765277,0.0884925127,0.0495218672,1.41604674,-0.107280813,0.020989947,1.70575988 +0.29752627,1.40232718,-0.29752627,0.000179238719,0.14769268,0.185168818,-2.4825747,1.03177691,0.0211842209,0.42096746 +-0.218817502,1.40241027,0.218817502,0.000300614367,0.157191157,0.146767646,-1.29138184,0.845469236,0.0210112724,0.309745729 +1.13653445,1.40242684,-1.13653445,0.00108915509,0.154976517,0.0770927891,-0.0451808237,-0.264625937,0.0210274179,1.60736609 +0.836982727,1.40242934,-0.836982727,0.00495164515,0.200279176,0.102965944,0.411138475,-0.845767975,0.0208463203,1.18489099 +0.184930697,1.40244114,-0.184930712,0.000206970813,0.156316072,0.115783371,-1.02681041,0.626821876,0.0208714884,0.26192835 +-0.355165392,1.40256214,0.355165422,0.000160260388,0.158252984,0.213265479,-3.17069125,0.462289989,0.0209935177,0.502289832 +-0.204096645,1.40260577,0.204096645,0.000203713556,0.15674293,0.132479295,-1.1463536,0.716950178,0.0209659152,0.288856447 +0.381565869,1.40271103,-0.381565839,0.000346724904,0.176393867,0.242321521,-3.18202734,-0.000799022615,0.0211613104,0.539720654 +-0.476305693,1.40288258,0.476305693,0.000399463926,0.185329661,0.223447621,-1.82603168,-1.56367755,0.0207651872,0.673751831 +0.18988055,1.40292311,-0.189880535,5.49150864e-05,0.15696238,0.119748279,-1.04162681,0.634303212,0.0208836291,0.268980682 +0.522205472,1.4032768,-0.522205532,0.000155750502,0.166374087,0.161525771,-1.05808139,-1.40287519,0.0210525468,0.738666534 +0.339632034,1.40344858,-0.339632034,0.000185843732,0.154551789,0.205586299,-3.0239327,0.658651531,0.021184288,0.480405986 +-0.191459194,1.40361643,0.191459179,0.000381296762,0.156459048,0.121141881,-1.06732285,0.655488133,0.0209167451,0.271068692 +0.243412033,1.40373206,-0.243412048,0.000504287833,0.153539091,0.161745951,-1.59821105,0.976201415,0.0210533421,0.344540805 +-0.473424584,1.40375149,0.473424554,2.00750528e-05,0.188188642,0.231153592,-1.90023446,-1.55037928,0.0207521841,0.669737756 +0.35932368,1.40409994,-0.35932368,0.00022938702,0.164585918,0.225631252,-3.13040113,0.374406934,0.0211585443,0.508490026 +0.150700748,1.40411401,-0.150700763,0.000368467445,0.143175408,0.0846250132,-0.883409142,0.434818864,0.0208254736,0.213534236 +-1.10947037,1.4041326,1.10947037,0.00122903252,0.149653062,0.0766758099,0.0367439464,-0.198843211,0.0209144372,1.56921029 +0.490474045,1.40427613,-0.490474045,0.000450824184,0.177662328,0.203224033,-1.55575716,-1.54115748,0.0210716072,0.694090486 +-1.16932178,1.40453696,1.16932178,0.000700516859,0.131995067,0.0692509711,0.398977757,-0.214973047,0.0209354479,1.65380621 +0.331694961,1.40454221,-0.331694961,0.000203320058,0.152200282,0.198845506,-2.92373419,0.729526877,0.021189915,0.469152927 +-0.147642821,1.40463376,0.147642821,0.000472200569,0.141362011,0.0834413394,-0.866291046,0.407414198,0.0208394527,0.209526956 +-0.635907769,1.40477419,0.635907769,0.000466301746,0.190283924,0.122633368,-0.653310537,-0.593761265,0.0207500421,0.899453998 +-0.307230473,1.4048965,0.307230473,0.000231115104,0.147121668,0.186056808,-2.61126423,0.937655985,0.0212351903,0.434711367 +0.519152761,1.40502489,-0.519152761,0.000236315114,0.166342854,0.162752315,-1.10071826,-1.39661264,0.0210595764,0.734333634 +-1.07437158,1.40502763,1.0743717,0.000772070081,0.151665956,0.080754973,0.264048398,-0.221146137,0.0209304374,1.51942861 +0.346136987,1.40535498,-0.346136987,0.000282889378,0.158593416,0.212191537,-3.02727485,0.52521044,0.0211706422,0.489644289 +0.769541264,1.40612352,-0.769541204,0.00268676039,0.207178146,0.105924763,0.107347101,-0.887138426,0.0208236352,1.08991754 +-0.469557583,1.40644896,0.469557554,0.000437367882,0.185272306,0.22481215,-1.9706037,-1.47035372,0.0207524002,0.664147854 +-0.230210572,1.40671694,0.230210572,0.000246653333,0.157651141,0.153650671,-1.40795875,0.866577983,0.021048734,0.325741827 +0.480585605,1.40704107,-0.480585575,0.000550256809,0.17820102,0.207193434,-1.70360875,-1.47119045,0.0210989732,0.680018246 +-0.366719365,1.40710974,0.366719365,0.000298515602,0.162370026,0.218072802,-3.12357616,0.222687393,0.0209285878,0.518799305 +0.11878524,1.40746164,-0.118785232,0.000201617659,0.121553957,0.0688805282,-0.672869086,0.278726399,0.0208066572,0.168341726 +0.107537106,1.40754366,-0.107537106,0.000192283245,0.155346617,0.101405941,-0.36969015,0.155748546,0.0208011195,0.152789265 +-0.636287212,1.40786552,0.636287272,0.00065936608,0.184666216,0.12201415,-0.427788377,-0.892863274,0.0207180083,0.899999976 +-0.351929814,1.40792179,0.351929814,4.87781399e-05,0.153976992,0.201959208,-3.06013775,0.444304973,0.0210153162,0.497745186 +-0.4746207,1.40819013,0.4746207,0.000450806983,0.182657689,0.216161728,-1.85667396,-1.49367869,0.020765882,0.671357155 +-1.06709874,1.40854514,1.06709874,5.2412357e-05,0.150084883,0.0803840756,0.311680853,-0.240472674,0.0209313966,1.50922048 +-0.354330182,1.40929198,0.354330182,0.000121434103,0.15452747,0.2020832,-3.05497789,0.394765854,0.0209999718,0.501118004 +-0.686058521,1.40934455,0.686058521,0.00300817448,0.202322841,0.111321986,-0.404932141,-0.745066881,0.0207420997,0.970967293 +-1.0569098,1.40935278,1.0569098,0.00129740697,0.151192471,0.0815535933,0.372907817,-0.279675037,0.0209316481,1.49477947 +-0.107045472,1.40943062,0.107045472,0.000250256679,0.161518052,0.106645651,-0.364413887,0.157967001,0.0208009314,0.152150095 +-0.352353871,1.40947711,0.352353841,9.39785787e-06,0.154008806,0.201317415,-3.04140472,0.418732285,0.0210085642,0.498369187 +0.524394393,1.4096843,-0.524394453,0.00078992435,0.166176602,0.158622265,-1.03624654,-1.35563624,0.0210411977,0.741700351 +-0.334413111,1.4101615,0.334413111,0.000118298602,0.149328932,0.192035511,-2.88303328,0.634153366,0.0210978799,0.472983867 +-0.289990187,1.41024923,0.289990157,0.00031982924,0.14984493,0.182030439,-2.33337831,0.918336809,0.0211969446,0.410283983 +0.142459914,1.41059089,-0.142459914,0.000249435543,0.141125947,0.0810842738,-0.875444174,0.412336826,0.0208125133,0.201813757 +0.192221001,1.41077328,-0.192221001,0.000295490667,0.159361571,0.120230325,-1.07435656,0.615913749,0.0208742134,0.272060037 +-0.346965492,1.41085446,0.346965492,0.00016921795,0.152363107,0.197031245,-2.97977257,0.465470195,0.0210331101,0.49068892 +-0.274615198,1.41086638,0.274615198,0.000374444324,0.151013523,0.174741864,-2.06443119,0.975408792,0.0211934466,0.388640046 +-1.06343055,1.41102278,1.06343055,0.000499889546,0.149244636,0.0801270381,0.337898433,-0.255863458,0.0209308751,1.50402904 +-0.337319613,1.41113389,0.337319583,0.000200133451,0.15018329,0.19325541,-2.90404058,0.579034269,0.0210749377,0.477095127 +0.559042096,1.4111656,-0.559042096,0.000576194492,0.1672858,0.133952796,-0.726686418,-1.11893058,0.0209963471,0.790615976 +0.131075174,1.41127372,-0.131075189,0.000189861399,0.134487554,0.0753400922,-0.821659565,0.352089226,0.0208070911,0.186463356 +-0.300028741,1.41129482,0.300028741,0.000237416534,0.148768723,0.183735833,-2.45656443,0.891563237,0.0212029032,0.424524486 +0.560382605,1.4113313,-0.560382545,0.00074534968,0.16758886,0.133414343,-0.721654117,-1.11273861,0.0209931228,0.792504132 +0.558842778,1.41162121,-0.558842719,4.58661016e-05,0.167262331,0.133787036,-0.730080664,-1.11873221,0.0209965426,0.790337384 +0.559286416,1.41169143,-0.559286416,4.91959383e-07,0.167313755,0.133515477,-0.726696014,-1.11603594,0.0209952239,0.790968776 +0.176789165,1.41170919,-0.17678915,0.00020658657,0.157633945,0.110297404,-1.01812387,0.573572874,0.0208465513,0.250161111 +-0.130677074,1.41186893,0.130677074,0.000171274267,0.13595745,0.0760102719,-0.812615693,0.352490574,0.0208147969,0.184920102 +-0.485720038,1.41188014,0.485720068,0.000658276491,0.178464472,0.201901719,-1.66414738,-1.463974,0.020768242,0.686948001 +-0.256181329,1.41209841,0.2561813,0.000255011226,0.15506874,0.167977735,-1.78045487,0.918950796,0.0211282521,0.362368554 +-1.06622005,1.41214991,1.06622005,5.15389402e-05,0.148564905,0.0793934092,0.314648807,-0.252381682,0.0209288429,1.507972 +-0.322378635,1.41218328,0.322378635,0.000150619991,0.147920802,0.187306941,-2.70885468,0.687096596,0.0211317539,0.456480384 +0.559393108,1.41224241,-0.559393048,0.000185677985,0.167337462,0.13343069,-0.726024985,-1.11438394,0.0209944136,0.79111445 +0.558874011,1.41225183,-0.558874011,0.000703612517,0.167236656,0.13348043,-0.729564488,-1.11529636,0.0209956504,0.790375888 +-0.237629205,1.41229665,0.237629205,0.00024563988,0.158512086,0.158152789,-1.52108109,0.844899058,0.0210558195,0.336252391 +0.516857564,1.41244745,-0.516857624,0.000497493427,0.165651441,0.159962431,-1.11104107,-1.34330451,0.0210551899,0.731022 +-0.129262999,1.41248858,0.129262999,0.000142897261,0.135445505,0.0754448995,-0.807130396,0.345148772,0.0208133515,0.182994023 +0.308176041,1.4126389,-0.308176041,0.000173947745,0.149326146,0.18292971,-2.52025342,0.826746225,0.0211632643,0.435854673 +-0.353682429,1.41296411,0.353682429,0.00021585662,0.153909907,0.199409261,-2.99367762,0.38039726,0.020997813,0.500208795 +0.283071488,1.41304517,-0.283071458,0.000193817876,0.149851307,0.173020497,-2.13712382,0.915579677,0.0211299118,0.400383711 +0.398393959,1.41358078,-0.398393959,0.000271702476,0.177130803,0.233768553,-2.93000412,-0.32595095,0.0211544242,0.563418865 +0.401286781,1.41361594,-0.401286781,0.000380772923,0.178793654,0.236024767,-2.91483021,-0.385340303,0.0211510863,0.567516088 +0.165308326,1.41368604,-0.165308326,0.000317158439,0.154273182,0.0970981419,-0.95815587,0.492257446,0.020826105,0.234072208 +0.316148758,1.41374445,-0.316148758,0.000178560833,0.150951147,0.187655777,-2.63303566,0.741810799,0.0211543404,0.447132975 +-0.33609885,1.41390109,0.33609882,5.07449768e-05,0.149101362,0.188743994,-2.84899974,0.55459255,0.0210798401,0.47540766 +-0.33855179,1.41401112,0.33855179,1.50850374e-05,0.149790555,0.190055847,-2.85924911,0.524326921,0.0210670233,0.478877366 +0.254508138,1.41419864,-0.254508138,0.00029972737,0.154529437,0.163520351,-1.7258029,0.907803059,0.0210542828,0.36010167 +0.366991758,1.41433597,-0.366991758,0.000400289806,0.162823707,0.213129967,-2.9607439,0.15630044,0.0211455654,0.519406557 +-0.251275212,1.4145658,0.251275212,0.00017110155,0.156671226,0.163915947,-1.68421578,0.874756396,0.0211047772,0.355448723 +0.0991681963,1.41487086,-0.0991681889,7.91193161e-05,0.327383518,0.285023391,-0.165138036,0.147204623,0.0207849573,0.140399992 +1.06710386,1.41491866,-1.06710386,0.000394628267,0.15168114,0.0793927386,0.225352973,-0.295618474,0.0210453384,1.50960028 +-0.129383311,1.41518927,0.129383311,0.000193040643,0.136542052,0.075946629,-0.816619337,0.348767072,0.0208107848,0.183062017 +-0.513481438,1.41525292,0.513481438,0.00071059441,0.168315768,0.163438767,-1.16291261,-1.35792542,0.0207588729,0.726391912 +-0.333907187,1.41579688,0.333907217,0.000134416056,0.149047792,0.186723217,-2.79925156,0.552594364,0.0210875105,0.47228241 +-0.390838951,1.41582835,0.390838921,0.00023910444,0.16651082,0.215639517,-2.92513752,-0.156618863,0.020872524,0.552824557 +0.401751548,1.41589153,-0.401751518,0.000488132704,0.176993415,0.231319055,-2.872648,-0.392716706,0.0211505909,0.56818378 +0.400946021,1.41600025,-0.400946051,2.56890089e-05,0.176718444,0.230990455,-2.87799191,-0.378926635,0.0211510751,0.567047834 +0.262274176,1.4160614,-0.262274176,0.000255474064,0.15364489,0.167767569,-1.86147618,0.885188341,0.0210619234,0.371128231 +-1.07347929,1.41607893,1.07347929,0.000532780541,0.146048844,0.0773975924,0.273333311,-0.267835081,0.0209232178,1.51817071 +0.791193068,1.41609263,-0.791193068,0.00608647754,0.204671592,0.10277041,0.220314816,-0.896305501,0.0208279602,1.12062764 +0.341476023,1.41629982,-0.341476023,0.000403592334,0.152493864,0.192296237,-2.8270328,0.477988511,0.0211676061,0.483046263 +-0.557032824,1.41643369,0.557032883,0.000842950714,0.166644663,0.136467636,-0.701443553,-1.08755112,0.0207619686,0.787856758 +0.400454372,1.41650641,-0.400454342,0.000265748589,0.176467061,0.230435371,-2.87069964,-0.372926652,0.0211501643,0.566362143 +-0.220668674,1.41663218,0.220668659,0.000181781259,0.161243454,0.144016042,-1.3264308,0.718219399,0.0209780261,0.312365949 +-0.766966164,1.41686046,0.766966164,0.00266506965,0.213449448,0.109797165,0.0431644246,-0.847147167,0.0207485557,1.08486259 +1.07930136,1.41692209,-1.07930136,0.00085901923,0.149058148,0.0768930465,0.158167079,-0.311445653,0.0210434757,1.52655745 +-0.337602496,1.41694415,0.337602466,0.000264169619,0.149164647,0.186676323,-2.805583,0.510312378,0.0210732464,0.477515399 +0.400999725,1.41699648,-0.400999725,0.00035122878,0.176484674,0.230207339,-2.86280894,-0.37899068,0.0211488828,0.567127943 +-0.143843442,1.41721594,0.143843442,0.000125059261,0.145186976,0.0847212374,-0.883418798,0.398313522,0.0208203271,0.20343785 +-0.231650472,1.41727448,0.231650472,0.000193127897,0.160654679,0.152463883,-1.43461978,0.772476792,0.0210243426,0.327779144 +0.458733082,1.4175868,-0.458733082,0.00101900706,0.183241665,0.22330375,-2.1075983,-1.2460041,0.0211006384,0.649362445 +-0.254036248,1.41772914,0.254036248,0.000181833166,0.156790018,0.164025664,-1.71299314,0.840340197,0.0210985113,0.359342963 +-0.162090138,1.41782773,0.162090123,0.000223879237,0.154459,0.0963849276,-0.959663153,0.465613306,0.0208411831,0.229290769 +-0.202942431,1.41807806,0.202942431,0.000153390138,0.162336022,0.128907576,-1.17053127,0.630717218,0.0209185891,0.287096381 +-0.469756186,1.41828418,0.469756156,0.000763707736,0.178883091,0.207143337,-1.84722602,-1.36623633,0.0207660124,0.664399683 +0.118335225,1.41850901,-0.118335225,0.000213399268,0.124188848,0.0699579343,-0.75278151,0.325621277,0.0207965337,0.168124676 +0.158208132,1.41855872,-0.158208132,0.000203829768,0.152774513,0.0916508064,-0.951602876,0.447904408,0.0208157822,0.22394973 +-0.280344784,1.41911352,0.280344784,0.000173779452,0.152102932,0.175261274,-2.11595011,0.814290643,0.0211552251,0.396930754 +-0.316552877,1.4192549,0.316552877,0.000317027996,0.147904858,0.179980591,-2.55098629,0.660088897,0.0211515576,0.44807744 +-0.794559479,1.41926265,0.794559479,0.00346442219,0.211656928,0.108182512,0.206952661,-0.851580143,0.0207549576,1.12381339 +-0.366635501,1.41930079,0.366635531,0.000282046705,0.155479163,0.196425527,-2.9003458,0.149438575,0.0209494773,0.518683791 +0.312259525,1.4193213,-0.312259525,4.59575058e-05,0.150410756,0.181436285,-2.51119351,0.69287926,0.0211387649,0.441709012 +-0.210879385,1.41951883,0.2108794,0.000121549587,0.163140744,0.138677433,-1.25228155,0.692391515,0.0209386647,0.298346907 +0.31453374,1.41960025,-0.31453377,1.79029958e-05,0.150972068,0.183147192,-2.53130579,0.665766716,0.0211351067,0.444944918 +-0.193146616,1.41968751,0.193146616,0.000471205829,0.161786214,0.120996684,-1.1161077,0.571765482,0.0208870396,0.273690581 +-0.158352807,1.41974485,0.158352822,0.000193884393,0.153812945,0.0934272408,-0.952500284,0.447828948,0.020830594,0.224022001 +-0.117399484,1.41988146,0.117399484,0.000284036709,0.126778781,0.0716881007,-0.737698674,0.322026789,0.0207988452,0.166853726 +-0.0991634578,1.4200027,0.0991634652,7.15700298e-05,0.338893503,0.298750192,-0.2317238,0.193995059,0.0207807347,0.140399992 +0.965292037,1.42078829,-0.965292037,0.00178011041,0.174256966,0.0949502438,0.669620991,-0.616036654,0.0209433679,1.36625946 +-0.163964942,1.42087936,0.163964927,0.000397881988,0.156018943,0.0989358276,-0.976195574,0.464590341,0.0208404958,0.231950626 +-0.90702188,1.42113185,0.90702188,0.00204031542,0.199687988,0.108234249,0.653001368,-0.751993895,0.0208258275,1.28362656 +-0.384561896,1.42132282,0.384561896,0.000269574113,0.161079064,0.202887401,-2.8247261,-0.107099324,0.0208979249,0.543929636 +0.490628004,1.42156076,-0.490628004,0.000670910114,0.1739126,0.190905601,-1.49305034,-1.39055049,0.0210591834,0.694096446 +0.302319884,1.42176855,-0.302319884,0.000195580738,0.151316464,0.17682609,-2.35026598,0.715244055,0.0211223569,0.42757082 +-0.983016729,1.42181158,0.983016849,0.00201320485,0.173332155,0.0973948836,0.683499575,-0.529652178,0.020910291,1.39062023 +0.318668783,1.42214644,-0.318668783,0.00026038487,0.15087603,0.181004196,-2.52251244,0.602353036,0.0211349092,0.450724483 +0.257445365,1.42214704,-0.257445395,0.000439938187,0.156238049,0.162859187,-1.7464608,0.799633682,0.0210352335,0.364370614 +0.351031631,1.4223026,-0.351031631,0.000367646979,0.154215515,0.191905245,-2.7939477,0.302540541,0.0211540274,0.496744156 +0.273893982,1.42233396,-0.273893952,0.000247686257,0.153884977,0.168568969,-1.97265077,0.783486247,0.0210664626,0.387406647 +-0.423919082,1.42234778,0.423919082,0.00032289399,0.175403327,0.220752403,-2.61594534,-0.743022561,0.0207902063,0.599646986 +-0.159196734,1.42240143,0.159196734,9.09360369e-06,0.155560225,0.0945723951,-0.963880539,0.450247705,0.020827258,0.225366741 +0.286019355,1.42242157,-0.286019355,0.000198471418,0.152024209,0.171935305,-2.12682271,0.780023038,0.0210962072,0.40467611 +-0.429309011,1.42288113,0.429309011,0.000343132415,0.175586104,0.217673719,-2.52631474,-0.835165918,0.0207958333,0.607249677 +-0.397198617,1.42295754,0.397198617,0.000243223883,0.165184513,0.207553491,-2.78493595,-0.309994221,0.0208533686,0.561890841 +0.131603092,1.4229629,-0.131603092,0.000228944307,0.138743982,0.0771181285,-0.863172054,0.371949077,0.0207983032,0.186505646 +0.228178367,1.42305648,-0.228178367,0.000167831779,0.161762103,0.147667378,-1.39332962,0.734159827,0.0209484529,0.322722286 +0.107510716,1.42305946,-0.107510723,0.000169640261,0.148478597,0.0984328166,-0.542367697,0.287356079,0.0207884312,0.152213573 +-0.655968785,1.42316508,0.655968785,0.00120239751,0.193319201,0.113711707,-0.526034176,-0.63333267,0.0207413007,0.928036749 +-0.156967282,1.42328274,0.156967282,0.000201280534,0.154644892,0.0934724882,-0.958272457,0.447914362,0.0208245758,0.222126842 +-0.594074488,1.42334628,0.594074488,0.00064307783,0.174927369,0.12186715,-0.544352233,-0.964480281,0.0207371116,0.840156019 +-0.160843045,1.42342699,0.160843045,7.29552557e-05,0.156341866,0.0955716521,-0.969193339,0.449244648,0.0208287165,0.227603599 +0.636232734,1.42345583,-0.636232734,0.000633036427,0.182093531,0.114542775,-0.623217463,-0.575657606,0.0208945014,0.899974704 +1.01506364,1.42374921,-1.01506364,0.00122085493,0.161341473,0.0876821131,0.51622206,-0.446003735,0.0210072491,1.43634176 +-0.594378531,1.4238404,0.594378471,0.000154951733,0.175005078,0.121673182,-0.544163287,-0.963323832,0.0207365789,0.840594232 +0.31230545,1.4239012,-0.31230545,0.000292504934,0.150864705,0.17824924,-2.44339991,0.640197277,0.0211295485,0.441769838 +-0.593905032,1.42396736,0.593905032,0.000180430317,0.174900651,0.121712849,-0.545716107,-0.964398444,0.0207371172,0.839921117 +-0.594152033,1.42411244,0.594152033,3.14202481e-07,0.174954623,0.121629611,-0.544612885,-0.963335812,0.0207368508,0.840275764 +-0.594870985,1.42452919,0.594870985,0.000894825149,0.175082475,0.121544413,-0.542327046,-0.961872399,0.0207361989,0.841280222 +-0.593944311,1.42468596,0.593944311,0.000294273108,0.174908802,0.121560022,-0.5450508,-0.962231278,0.0207368918,0.839974761 +-0.592356563,1.42485833,0.592356622,0.000672207389,0.174594179,0.121996984,-0.554492831,-0.966730356,0.0207375232,0.837721467 +0.148124903,1.4249506,-0.148124903,0.000220614238,0.151192695,0.0867433697,-0.934206605,0.422286808,0.0208020154,0.209702864 +-0.249272496,1.42528439,0.249272496,0.000118804834,0.159431517,0.159565687,-1.63209796,0.766357839,0.0210559033,0.352547824 +-0.269694209,1.42530274,0.269694209,0.000275087776,0.155308157,0.167191282,-1.90014029,0.775126278,0.0211190805,0.381707788 +0.589781463,1.42531896,-0.589781463,0.00127692637,0.175020665,0.122774668,-0.571355581,-0.959625363,0.0209251754,0.834212899 +0.0989600569,1.42538345,-0.0989600569,5.43930728e-05,0.348733783,0.310606271,-0.335582703,0.253534079,0.0207724348,0.140399992 +0.282500237,1.42557585,-0.282500237,0.000168398547,0.153161451,0.170540184,-2.07014489,0.748866737,0.0210714526,0.399693608 +-1.12111402,1.42575586,1.12111402,0.00077355071,0.136252284,0.0677994043,0.0134968646,-0.296101958,0.0209038761,1.58574426 +-0.0990346447,1.42624307,0.0990346521,3.66413115e-05,0.350291938,0.312403291,-0.338033915,0.263699681,0.0207741503,0.140399992 +-0.509185016,1.42637837,0.509185076,0.000549559481,0.167769909,0.161334172,-1.2364713,-1.31531286,0.0207650904,0.72041589 +0.230862305,1.42640877,-0.23086229,0.000187940226,0.161926836,0.149411723,-1.43900681,0.721650481,0.0209469646,0.326539278 +-0.412769437,1.42662895,0.412769437,0.000379784673,0.168171197,0.206846133,-2.62356997,-0.555690587,0.020815514,0.583781958 +0.939708114,1.42696106,-0.939708114,0.00192131428,0.181708813,0.0971321017,0.628230512,-0.699186563,0.0209156759,1.33004117 +-0.747526646,1.42707586,0.747526646,0.00237279059,0.206531763,0.107515223,-0.0753276646,-0.819912851,0.0207501687,1.05734348 +0.377151489,1.42723334,-0.377151459,0.000229519355,0.163104415,0.204287395,-2.75725961,-0.0412869006,0.0211399551,0.533383906 +-0.211852834,1.42734599,0.211852834,0.000170911182,0.165375739,0.135764807,-1.27120817,0.622358859,0.0209202245,0.299724042 +-0.107118495,1.42752159,0.107118487,0.000154517926,0.150125444,0.100146897,-0.56879884,0.317400336,0.020785071,0.151666492 +-0.205531061,1.42760801,0.205531061,0.000169112551,0.165667623,0.130302817,-1.20891166,0.589129031,0.0209055282,0.29082936 +-0.306203723,1.42787004,0.306203723,0.000249464123,0.150197133,0.175879374,-2.33534479,0.602483392,0.0211083703,0.43343395 +0.203444839,1.42788923,-0.203444839,0.000567449373,0.164762348,0.12917313,-1.19672704,0.595180392,0.020863127,0.288368583 +-0.398918808,1.4280386,0.398918808,7.58711394e-05,0.164062381,0.202626675,-2.68939376,-0.345412076,0.0208480451,0.564368963 +-0.44327265,1.42829895,0.44327265,0.000598149432,0.179398894,0.218944788,-2.26296449,-1.02403533,0.020777382,0.627342403 +-0.392916262,1.42835927,0.392916232,8.97869249e-05,0.162322998,0.200305372,-2.68869519,-0.265807271,0.020870164,0.555898428 +-0.241036728,1.42849529,0.241036743,0.000156901893,0.161574557,0.153344035,-1.52196395,0.705227971,0.0210090764,0.340927631 +0.160668224,1.42866874,-0.160668224,0.000198373629,0.158387288,0.0954998955,-0.980926156,0.432005256,0.0208083931,0.227833241 +-1.19132471,1.42875361,1.19132471,0.000642359257,0.112370908,0.0599949844,0.772968173,-0.172501847,0.0209843423,1.68483913 +0.177812457,1.42890823,-0.177812472,0.000221005874,0.162139952,0.106699683,-1.04622388,0.46760869,0.0208225995,0.252179742 +0.226506576,1.42899573,-0.226506591,0.000300586224,0.163322568,0.144259512,-1.37618721,0.667140841,0.0209287461,0.320423663 +-1.21087694,1.42900169,1.21087694,0.000664614141,0.0797078013,0.0457541458,1.41623282,-0.079388231,0.0210107658,1.71249151 +-1.22877622,1.42903769,1.22877622,0.000317919912,0.0558638945,0.0416696705,1.64017093,-0.0224519037,0.0210203324,1.73780537 +-0.282970369,1.42919207,0.282970369,0.000292318553,0.153608531,0.169220537,-2.02395248,0.681529164,0.0211101174,0.400522411 +0.228366911,1.42928529,-0.228366897,1.73519147e-05,0.163248599,0.145835102,-1.39843714,0.676069617,0.0209315009,0.323055983 +-1.06507254,1.42928553,1.06507254,0.000759082672,0.145330057,0.0779251382,0.316364616,-0.295771599,0.0209111162,1.50626099 +0.287699163,1.42941689,-0.287699163,0.000297330349,0.153119206,0.170172244,-2.09876013,0.71419853,0.0210720077,0.406995058 +-0.158032566,1.42968738,0.158032566,0.000288225245,0.158241227,0.0948269591,-0.971689522,0.434285045,0.0208183862,0.223528266 +0.230534136,1.42983174,-0.230534121,0.000223883835,0.162932649,0.147430465,-1.42988169,0.673937678,0.0209343489,0.32610783 +0.169968441,1.43060708,-0.169968441,0.000279543805,0.161570281,0.100932501,-1.02722061,0.460662872,0.0208092388,0.240630075 +1.12569678,1.43062139,-1.12569666,0.00157844089,0.139793187,0.0685826242,-0.0192834511,-0.370641708,0.0210272018,1.5921067 +0.620826066,1.431813,-0.620826066,0.000893282006,0.180998564,0.119526252,-0.462086827,-0.905227363,0.0208827555,0.878049254 +0.228555441,1.43207264,-0.228555441,0.000250279321,0.16363436,0.144595578,-1.39314389,0.648731112,0.0209262483,0.323329896 +-0.225957483,1.43218529,0.225957483,0.000347453286,0.164914072,0.143892929,-1.38006258,0.640854061,0.0209477972,0.319847286 +-0.194485307,1.43224442,0.194485307,0.00025338601,0.165772468,0.120950133,-1.1471405,0.531883419,0.0208631679,0.275800228 +0.117808759,1.43234038,-0.117808752,0.000191085885,0.124157511,0.0696233362,-0.806478858,0.377450675,0.0207876656,0.166796461 +0.131007805,1.43260026,-0.131007805,0.000151018205,0.142254502,0.0785479993,-0.892603099,0.384315193,0.0207892116,0.186126113 +1.14205885,1.43267322,-1.14205885,0.00141175138,0.13458471,0.065561451,0.0157256201,-0.352794826,0.0210227929,1.61525226 +-1.163064,1.43272758,1.16306412,0.000440742617,0.124102503,0.0620120168,0.201063722,-0.277877897,0.0209401306,1.64498031 +0.107011996,1.43279767,-0.107011989,0.000118978431,0.144616634,0.0967819393,-0.649820209,0.366945028,0.0207804795,0.151827931 +-1.15226638,1.43283081,1.15226638,0.000812157756,0.127963021,0.0624700338,0.0524193123,-0.284886688,0.0209277347,1.62966716 +-0.129905194,1.43287206,0.129905194,0.00047200243,0.143568248,0.0792642832,-0.878293276,0.369853854,0.0207927581,0.184614301 +-0.0991856456,1.43335581,0.0991856381,6.01429165e-05,0.275332659,0.250337899,-0.382466316,0.331196606,0.0207763109,0.140399992 +-0.106860369,1.43364358,0.106860369,8.27920012e-05,0.14606078,0.0977525115,-0.637229383,0.369439602,0.0207797512,0.151507914 +-0.296246022,1.43380857,0.296246022,0.000329663802,0.152680218,0.170904562,-2.15015984,0.604119897,0.0211044084,0.419387341 +-0.425105661,1.43384957,0.425105661,0.000313795055,0.168331563,0.200463861,-2.42958784,-0.708916426,0.0208088439,0.60127157 +-0.323219627,1.43405819,0.323219627,0.000287705363,0.149265409,0.174916923,-2.43444109,0.460717142,0.0210654847,0.457533747 +-0.385991395,1.4340713,0.385991395,0.000281544781,0.159909964,0.193453953,-2.60856962,-0.208687127,0.0208796337,0.545979202 +0.0991469026,1.43422568,-0.0991469026,6.27465779e-05,0.261446446,0.240799904,-0.39578113,0.340874434,0.0207760874,0.140399992 +-0.39586103,1.43460333,0.39586103,0.000167233346,0.162888616,0.198386475,-2.60219932,-0.314432859,0.0208420828,0.560079038 +1.22875857,1.43508542,-1.22875857,0.000366403227,0.0556182526,0.0412583612,1.60854173,-0.0228139516,0.0210196711,1.73780036 +-0.432693541,1.4352634,0.432693541,0.000144503807,0.168965504,0.198856279,-2.34024239,-0.764697552,0.020808151,0.612000942 +1.21102607,1.43527067,-1.21102595,0.000795824104,0.0748258829,0.0424983874,1.36808598,-0.0839784667,0.0210198648,1.71272111 +1.06009185,1.43548679,-1.06009185,0.00110185763,0.151696324,0.0802366138,0.259758502,-0.331111968,0.0210339949,1.49938869 +1.19037747,1.43553615,-1.19037747,0.000763585442,0.105836019,0.0552532822,0.747047544,-0.197231337,0.0210204609,1.68351829 +0.139311075,1.43564618,-0.139311075,0.000227674929,0.149535164,0.0834808797,-0.925882876,0.389150858,0.0207899176,0.197272301 +0.189444646,1.43570638,-0.189444646,0.000517481938,0.165347576,0.115868315,-1.10972631,0.482095569,0.0208356269,0.268318534 +-1.10881162,1.43575287,1.10881162,0.00170343497,0.133448094,0.0671219528,0.051056847,-0.331426501,0.0208928771,1.5682981 +-0.529205441,1.43586469,0.529205441,0.000727384293,0.167238951,0.148473367,-1.02032709,-1.1867764,0.020749107,0.748479128 +0.373127043,1.43607163,-0.373127043,0.000221472088,0.156897232,0.18762131,-2.60028219,-0.0215088502,0.0211311635,0.52772522 +1.17480958,1.4361366,-1.17480958,0.00072451611,0.113644049,0.0581758358,0.532127619,-0.244803786,0.0210209489,1.66145349 +-0.117021129,1.43621612,0.117021129,0.000177492475,0.12588051,0.0706776008,-0.800444424,0.383582234,0.0207847953,0.165691242 +-0.245392218,1.43656683,0.245392218,5.91474491e-05,0.162565663,0.152925462,-1.55670655,0.647782326,0.0209939107,0.347178012 +0.222914219,1.43694127,-0.222914234,0.000251396152,0.165153012,0.140738115,-1.34886265,0.608967423,0.0209055562,0.315271318 +0.346515894,1.43697357,-0.346515894,0.000506711833,0.152250737,0.181406483,-2.55871749,0.259372711,0.0211050604,0.490483522 +-0.402135581,1.43714452,0.402135611,0.000382817874,0.162886709,0.196206301,-2.54543185,-0.372218817,0.0208323095,0.568846166 +0.993483067,1.43727183,-0.993483067,0.00212507695,0.165796012,0.0895710513,0.54522723,-0.525884986,0.0209826529,1.40546894 +-0.261226535,1.43766594,0.261226535,0.000247336546,0.158892542,0.161002785,-1.74275541,0.666330874,0.0210225079,0.369916558 +0.334309042,1.43769181,-0.334309042,0.000515881926,0.152218729,0.177846298,-2.46783686,0.338516355,0.0210915077,0.472979665 +-0.239943594,1.43785095,0.239943594,0.000200800758,0.163832664,0.149721399,-1.51101553,0.62840873,0.020968724,0.339417458 +0.146201521,1.43787122,-0.146201521,0.000221431299,0.156132102,0.0881935507,-0.956035852,0.395190269,0.0207886118,0.207393944 +-0.208241463,1.43818367,0.208241463,0.000141866069,0.167318478,0.128877163,-1.23243403,0.538392007,0.0208876077,0.294556439 +0.374818623,1.43840194,-0.374818623,0.000299156527,0.156958491,0.186330706,-2.56523633,-0.054084409,0.0211254898,0.530153811 +-1.14209795,1.43887234,1.14209795,0.000637941121,0.126700744,0.0624108389,0.074271664,-0.308718145,0.0209189169,1.61526477 +-1.00933504,1.43905556,1.00933504,0.00183462503,0.161142886,0.0898445696,0.578939199,-0.458348274,0.0209007375,1.42777205 +0.267978489,1.43934441,-0.267978489,0.000250587764,0.157310516,0.158683836,-1.77120042,0.636458635,0.0210042335,0.379036605 +0.636081934,1.43936074,-0.636081934,0.0003578467,0.179700658,0.109294936,-0.600148261,-0.562173128,0.0208869148,0.899975836 +0.372813463,1.43949151,-0.372813433,0.000274271064,0.156566247,0.185158402,-2.54620767,-0.0395295992,0.0211203974,0.527300239 +0.178182781,1.4395858,-0.178182781,0.000352531963,0.1656847,0.106336191,-1.06950843,0.445471525,0.0208052527,0.252745032 +-0.365648538,1.43960416,0.365648508,0.000513638894,0.152550489,0.180107579,-2.56371164,0.0319797657,0.0209293198,0.517352879 +-0.247913331,1.44005728,0.247913346,0.000182296513,0.162636727,0.152530968,-1.57184291,0.630239487,0.0209872518,0.350736767 +-0.106265381,1.44025409,0.106265381,0.000133592257,0.128107771,0.0852281898,-0.641531289,0.39662233,0.0207779128,0.15042603 +-0.337063044,1.44029367,0.337063044,0.000456161768,0.149753064,0.173353195,-2.42705202,0.283091187,0.02100637,0.477172554 +-0.548776507,1.44068158,0.548776507,0.00103544351,0.16623956,0.131409839,-0.79733026,-1.06883764,0.0207504854,0.776359439 +0.514712274,1.44070816,-0.514712274,0.000371964765,0.164058626,0.149197161,-1.0908246,-1.1607933,0.0210344903,0.727926672 +0.106254771,1.44082594,-0.106254771,0.000139358221,0.123720542,0.0825343654,-0.656352222,0.402592599,0.0207800195,0.150465488 +0.374713212,1.44085205,-0.374713212,0.000233116443,0.156794965,0.184952542,-2.53211188,-0.0577065423,0.0211172551,0.529985309 +0.116914518,1.44125819,-0.116914518,0.000139909243,0.124183029,0.0694697499,-0.840408087,0.407269001,0.0207819808,0.165889546 +-0.769887984,1.44185054,0.769888043,0.00184990978,0.206877664,0.103826366,0.0536287278,-0.839782357,0.02075064,1.08934355 +1.22874928,1.44198167,-1.22874928,0.000281525572,0.0556124523,0.0421498679,1.58923209,-0.0212372821,0.0210174415,1.73779178 +-0.116566822,1.4420507,0.116566822,0.000100902966,0.125531405,0.0703280866,-0.822387457,0.403064817,0.0207798518,0.165283382 +0.63626653,1.44207072,-0.63626653,0.000346956484,0.184175909,0.114948824,-0.415550113,-0.85631144,0.0208499897,0.899999976 +1.21241975,1.44214857,-1.21241975,0.000620377017,0.0725491866,0.0416160002,1.37336183,-0.0763972625,0.0210176036,1.71469688 +1.19280457,1.44234776,-1.19280457,0.000454371155,0.101364523,0.0529707819,0.793483377,-0.186428979,0.0210182443,1.68695486 +-1.15851152,1.44340038,1.15851152,0.000469009043,0.122621283,0.059865132,0.0985137895,-0.299255252,0.0209388547,1.63852668 +-0.353918612,1.44358754,0.353918612,0.000510281825,0.150438264,0.173384726,-2.47047424,0.127937347,0.020965891,0.500870585 +-0.176711813,1.44369137,0.176711813,0.000207298523,0.166751847,0.104956351,-1.06827259,0.43310225,0.0208170749,0.249911636 +-0.27169165,1.44393325,0.27169165,0.000184221048,0.158158362,0.160183877,-1.81452012,0.604326904,0.0210386571,0.384314567 +0.641094744,1.44393742,-0.641094744,0.00133533729,0.180248797,0.10740985,-0.575270832,-0.572840691,0.020876335,0.907040954 +0.129921004,1.44459271,-0.129921004,0.000193156971,0.147215679,0.0809247792,-0.903691888,0.382300735,0.0207815021,0.183945984 +-0.145721644,1.44520617,0.145721644,0.000256661704,0.158400893,0.0891810656,-0.952197552,0.371299297,0.0207916666,0.206339478 +0.469882637,1.44524884,-0.469882637,0.000683907128,0.167007789,0.175020143,-1.72126782,-1.05565596,0.0210890248,0.664667547 +0.321299762,1.44533348,-0.321299762,0.000392075948,0.152464017,0.169012651,-2.25523877,0.381013006,0.0210689902,0.454722703 +0.163007587,1.44537818,-0.163007587,0.000258571032,0.164482981,0.0977366641,-1.0112437,0.395059973,0.0207928848,0.230743706 +-0.312695414,1.44558144,0.312695414,0.000287752191,0.151856437,0.169309661,-2.22394466,0.43722564,0.0210260618,0.442456156 +-0.244808972,1.44630814,0.244808972,0.000271749654,0.163915217,0.14873971,-1.53280139,0.590001345,0.0209546611,0.346283555 +0.300431192,1.44647539,-0.300431192,0.000734896283,0.154062539,0.165912345,-2.06422615,0.470835984,0.0210281555,0.425384402 +-1.1779635,1.44655764,1.1779635,0.00063956168,0.110995427,0.0566212498,0.506724596,-0.223844334,0.0209755003,1.66593647 +-0.287997723,1.4465878,0.287997693,0.000396985764,0.155360371,0.164702192,-1.96976137,0.515623629,0.0210173372,0.407875031 +1.08427131,1.44659376,-1.08427131,0.00154784787,0.143118352,0.073721841,0.10949792,-0.397402614,0.0210287534,1.53353322 +0.248546019,1.44670546,-0.248546019,0.000356555916,0.162961408,0.151931107,-1.57552481,0.584724069,0.0209272075,0.351758718 +-0.128941447,1.44712806,0.128941447,0.000190686944,0.14978008,0.0823016018,-0.88998884,0.371029973,0.0207794607,0.182571188 +-0.21553582,1.4475801,0.21553582,0.000194174369,0.168121219,0.131692186,-1.28250527,0.502728701,0.0208872817,0.304954678 +-0.635643005,1.44764817,0.635643005,0.000596129801,0.184204951,0.111177929,-0.591474712,-0.5377267,0.0207454693,0.899617672 +-1.02632535,1.44795036,1.02632535,0.00101885095,0.155605435,0.0858388245,0.482361108,-0.396841735,0.020894751,1.45192385 +1.18848205,1.44803035,-1.18848205,0.000471018779,0.103276297,0.0532383323,0.665019453,-0.204595,0.0210157558,1.68078756 +-0.115173832,1.448107,0.115173832,0.000160895856,0.127144143,0.0716022477,-0.807050049,0.402740538,0.0207757056,0.163040087 +-0.964849174,1.44830215,0.964849174,0.00210460555,0.177491471,0.097846441,0.624614179,-0.598748207,0.0208728593,1.36522365 +-0.386957109,1.44833374,0.386957109,0.000382426457,0.159048229,0.184599265,-2.41359091,-0.242921025,0.0208589975,0.547297239 +0.273870885,1.4484787,-0.273870885,0.000187682992,0.157867581,0.157101497,-1.78963292,0.551360548,0.0209865142,0.387476206 +0.11519555,1.44852066,-0.115195557,0.000166856102,0.1259045,0.0709022209,-0.823725283,0.408282608,0.0207792576,0.163128585 +-0.181930393,1.44902611,0.181930408,0.000206043333,0.169736207,0.108521715,-1.1006552,0.433650047,0.0208149962,0.257311493 +-0.155346364,1.44905376,0.155346364,0.00020897956,0.165364325,0.095425047,-0.997569084,0.385994643,0.0207904857,0.220221564 +0.497923255,1.44926238,-0.497923255,0.000683148974,0.163172767,0.152734548,-1.30822682,-1.09080493,0.0210533403,0.704868793 +0.206511393,1.44929647,-0.206511393,0.000394242583,0.168777332,0.123936407,-1.22224045,0.48175329,0.0208378918,0.292214364 +-0.181223631,1.44951582,0.181223616,9.56336662e-05,0.169760838,0.107715428,-1.0961436,0.427281797,0.0208135508,0.256339997 +-0.895969629,1.44976056,0.895969629,0.00282933004,0.196693182,0.103999883,0.560817838,-0.774121165,0.0208175797,1.26846206 +-0.204758361,1.44986987,0.204758361,0.000203826014,0.168814987,0.1219998,-1.22025728,0.463792235,0.0208495371,0.289851516 +-0.183752328,1.45012176,0.183752328,0.000158897281,0.169868827,0.109403744,-1.11135125,0.431186885,0.0208160132,0.259873241 +-0.228223383,1.45017433,0.228223383,0.000273013778,0.166644394,0.137281179,-1.36303604,0.514959931,0.0209059138,0.322987497 +-0.181607381,1.45019448,0.181607381,0.000170151092,0.169909552,0.10781388,-1.09882772,0.42571491,0.0208129305,0.256865859 +-0.180957332,1.45025897,0.180957332,0.000190141436,0.169919074,0.107607894,-1.09565544,0.424137115,0.0208126716,0.255949408 +-0.305366755,1.45033717,0.305366755,0.000278003834,0.153742418,0.164434806,-2.08351135,0.43550086,0.0210216362,0.432115793 +0.476033896,1.4504981,-0.476033896,0.000517757784,0.165451214,0.167326525,-1.60633087,-1.04030704,0.0210682079,0.673314393 +-0.321499825,1.45054388,0.321499825,0.000326064299,0.152348071,0.167577267,-2.20600176,0.314540952,0.0209832955,0.454937398 +0.279211789,1.45080483,-0.279211789,0.000386174739,0.15756768,0.157591298,-1.83192122,0.529856145,0.0209917314,0.394982487 +-0.208727837,1.45097065,0.208727837,5.52099846e-05,0.168882445,0.124886386,-1.23514891,0.458268106,0.0208572578,0.295567751 +-1.22871685,1.45106959,1.22871685,0.000211461607,0.0559744537,0.0431838557,1.56867969,-0.017851606,0.0210342109,1.73782778 +-0.268354833,1.45107734,0.268354833,0.000175702371,0.159960598,0.155879244,-1.73955584,0.54073602,0.0209897179,0.379649639 +0.0987931937,1.45114303,-0.0987931862,4.94504238e-05,0.0927488506,0.0898101479,-0.510551929,0.50832355,0.0207830146,0.140399992 +0.0899230242,1.45114303,-0.0899230242,3.15629586e-05,0.0506742522,0.0471925139,-0.261024237,0.453302592,0.0208062399,0.127428606 +0.0834831595,1.45114303,-0.083483167,4.10778703e-05,0.0235822797,0.0213813223,-0.0940371007,0.414371163,0.0208200626,0.118618861 +0.0731651336,1.45114303,-0.0731651261,3.29129907e-05,0.0937460214,0.0792253688,0.0336841643,0.255762815,0.0208175033,0.103516974 +0.0705737472,1.45114303,-0.0705737472,1.36113413e-05,0.109305084,0.0906623155,0.0631705374,0.219835639,0.0208167788,0.0999989882 +-0.0988088027,1.45114303,0.0988088027,5.02082985e-05,0.0871063545,0.0833350271,-0.491477728,0.499213457,0.0207811054,0.140399992 +-0.0904347003,1.45114303,0.0904347003,3.17285012e-05,0.0521756895,0.0482920371,-0.269317836,0.448498815,0.0207849853,0.128184021 +-0.0831289291,1.45114303,0.0831289217,4.18708805e-05,0.0244759284,0.0221284088,-0.0881206989,0.406434566,0.0207876638,0.118192717 +-0.0705689862,1.45114303,0.0705689788,2.06682271e-05,0.105370745,0.0853472799,0.0614900403,0.222372234,0.0207713675,0.0999971256 +-0.0728530586,1.45114303,0.072853066,3.3694716e-05,0.0914288238,0.0756372809,0.035906557,0.253935218,0.0207742732,0.103084594 +-1.21423733,1.45124507,1.21423745,0.000464295968,0.0729462504,0.0424689166,1.40769553,-0.0560276471,0.0210312679,1.71734953 +-0.635888219,1.45144677,0.635888159,0.000841970264,0.182625338,0.112744011,-0.405319273,-0.865769923,0.0207117181,0.899999976 +-1.19685543,1.45145535,1.19685543,0.000432988745,0.0996742621,0.0526401624,0.885801911,-0.153535485,0.0210159272,1.69276595 +-0.545032084,1.45154548,0.545032084,0.00100673328,0.165772736,0.128633037,-0.81623292,-1.0229286,0.0207461659,0.77101934 +-0.431282759,1.45163262,0.431282759,0.000373084185,0.162560523,0.178897262,-2.09815884,-0.707719326,0.0208097883,0.610245705 +0.431214362,1.45179713,-0.431214362,0.00047925752,0.16621539,0.185047001,-2.10551524,-0.688596487,0.0211199485,0.609858274 +-0.150373667,1.45195174,0.150373667,0.00023861989,0.165090516,0.093374081,-0.978452444,0.367497802,0.0207872484,0.213012546 +0.152624056,1.4520191,-0.152624056,0.000230923572,0.162875563,0.0922417045,-0.993430138,0.368551672,0.0207786486,0.21607253 +0.26265955,1.45202947,-0.26265955,0.000207097532,0.160939932,0.152656123,-1.67668557,0.525998175,0.020946512,0.371510059 +0.430227041,1.45207334,-0.430227041,2.70490837e-05,0.165803641,0.184501603,-2.11001563,-0.670945704,0.0211204961,0.608466387 +-0.272151381,1.45216954,0.272151381,0.000204255732,0.159366697,0.156259954,-1.7686522,0.533609152,0.0209956132,0.385022491 +0.128594503,1.4523176,-0.128594503,9.37260629e-05,0.150587991,0.0826251134,-0.908186078,0.374423146,0.0207766648,0.182467312 +-0.12825051,1.45240247,0.12825051,6.21316794e-05,0.152047202,0.0834617689,-0.893168151,0.366996735,0.0207747258,0.181858122 +0.432458758,1.4524349,-0.432458758,0.000644999905,0.165854201,0.183473304,-2.08004904,-0.699777186,0.0211166106,0.611620724 +0.143141955,1.45243716,-0.143141955,0.000251944177,0.161290348,0.0899385437,-0.958886623,0.360289991,0.0207786206,0.202675074 +-0.131360173,1.45303917,0.131360173,0.000183840573,0.154678226,0.0851623788,-0.90661478,0.367773294,0.0207745824,0.186068311 +-0.361428171,1.45318711,0.361428171,0.000250070472,0.15071851,0.167166799,-2.32933927,0.0170427822,0.0209384244,0.511469245 +0.243638515,1.45326686,-0.243638515,0.000283625413,0.164874554,0.144657731,-1.47932601,0.51362747,0.0209049415,0.344878793 +0.431520522,1.45351982,-0.431520522,2.26394673e-06,0.165568173,0.182905093,-2.07966065,-0.682903469,0.0211165473,0.610318065 +0.430483967,1.45365405,-0.430483997,0.000364628766,0.165417343,0.182825059,-2.08455348,-0.672867656,0.0211173259,0.608835459 +0.0706463233,1.45366454,-0.0706463307,6.98084696e-05,0.12607865,0.103713155,0.0419235006,0.20132941,0.0208133105,0.0999990478 +-0.56335783,1.45373487,0.56335783,0.000807827164,0.168309152,0.124028526,-0.704567313,-0.986642301,0.0207458995,0.796857476 +-0.0706450939,1.45378375,0.0706450939,8.11163991e-05,0.122041665,0.0979018137,0.0391153693,0.204173386,0.0207686648,0.0999973193 +0.25019443,1.45385706,-0.25019443,0.000164917772,0.163815439,0.147282109,-1.54336393,0.511131287,0.0209130608,0.354060233 +0.636162162,1.45442045,-0.636162162,0.000119749559,0.183749035,0.112751752,-0.407613754,-0.846274614,0.0208456069,0.899999976 +0.327667415,1.45454705,-0.327667415,0.000525997544,0.152639076,0.16465354,-2.1585288,0.281095445,0.0210611727,0.463784933 +-0.212064937,1.45455074,0.212064922,0.000152760491,0.169130147,0.125754997,-1.25281358,0.454799592,0.0208569635,0.300203353 +0.56536293,1.45466542,-0.56536293,0.000849751639,0.169576719,0.122711718,-0.701141298,-0.954297304,0.0209575854,0.799870372 +0.539414406,1.45467257,-0.539414406,0.00158561429,0.164755121,0.129384905,-0.868661284,-1.01109159,0.0209865458,0.763341427 +0.211814135,1.45480144,-0.211814135,0.000162145676,0.16929023,0.126080826,-1.24969244,0.466732353,0.0208393,0.299730211 +-0.205910072,1.45494783,0.205910072,8.13272054e-05,0.16977632,0.121786341,-1.23277402,0.449246854,0.0208395422,0.291606963 +0.274845272,1.45494974,-0.274845272,8.92904209e-05,0.158730417,0.154947788,-1.77041054,0.509546638,0.0209641252,0.388870358 +0.432479739,1.45498097,-0.432479739,0.000581650937,0.165455431,0.181892142,-2.05802798,-0.683511794,0.0211118869,0.611644566 +-0.503118515,1.45504189,0.503118515,0.000874107587,0.164714515,0.150400981,-1.21582925,-1.1066649,0.0207661279,0.711578429 +-0.448408127,1.45511544,0.448408127,0.000767473015,0.163880914,0.173251599,-1.8919692,-0.83279568,0.0208082534,0.634465456 +0.431370556,1.45513296,-0.431370556,2.06312216e-05,0.165478691,0.182198182,-2.06524444,-0.676613629,0.0211114958,0.610091448 +0.430369139,1.45514929,-0.430369109,0.000847665477,0.165403768,0.182143584,-2.06785417,-0.670619667,0.0211117845,0.608673394 +-0.154782802,1.45522535,0.154782802,0.000364931591,0.166950166,0.0947756842,-0.999770641,0.362616658,0.0207846705,0.219278514 +1.03338671,1.45526814,-1.03338671,0.00185595686,0.154257536,0.0830829442,0.399685442,-0.44206506,0.0210099258,1.46174479 +0.207505852,1.45548916,-0.207505852,4.57905226e-05,0.169815958,0.123092249,-1.2313385,0.458809286,0.0208270643,0.293766826 +0.104082681,1.45549536,-0.104082681,0.000109847395,0.0855264738,0.0565737449,-0.66883409,0.467232764,0.0207790639,0.14791356 +-0.104102239,1.45558691,0.104102232,0.000110772133,0.08651416,0.0568440296,-0.650428712,0.458862364,0.0207726862,0.147919953 +-0.917915225,1.45559776,0.917915225,0.0035921447,0.190821156,0.101969361,0.60661459,-0.728712022,0.0208311491,1.29904938 +-0.552008986,1.45563626,0.552008986,0.000615989207,0.166435614,0.125171199,-0.755359173,-0.993869305,0.0207484458,0.780913591 +-0.976630211,1.45580637,0.976630211,0.000695761875,0.173152059,0.0956978127,0.607726812,-0.562311471,0.020874951,1.38183832 +-0.746809602,1.45581532,0.746809602,0.00214778073,0.20141907,0.102136888,-0.0579024963,-0.776914656,0.0207489859,1.05631471 +-0.26197511,1.45583439,0.26197511,0.000244497845,0.161697805,0.152092084,-1.67317557,0.512991548,0.0209556241,0.370561481 +0.468575686,1.45597064,-0.468575656,0.000491500075,0.165327445,0.167988166,-1.64420295,-0.975621879,0.021070648,0.662791014 +0.393671989,1.45597887,-0.39367196,0.000238142136,0.1573596,0.175347403,-2.25968647,-0.275597572,0.0211075898,0.556815803 +0.628671825,1.4560405,-0.628671825,0.00137689454,0.182187527,0.113032959,-0.430498779,-0.847979188,0.0208594594,0.889340162 +0.394947588,1.45682299,-0.394947588,0.000375654636,0.157526135,0.174984574,-2.24593472,-0.289926559,0.0211049784,0.558607161 +-0.0979798734,1.45692074,0.0979798734,6.9528207e-05,0.0750477389,0.0473824665,-0.499630034,0.405056417,0.0207744688,0.138879091 +0.0975505561,1.45715785,-0.0975505561,6.76360505e-05,0.0734249204,0.0462404005,-0.50143075,0.406920314,0.0207903534,0.13824144 +-0.209449485,1.45754254,0.20944947,4.61447562e-05,0.169809282,0.122892402,-1.243788,0.442857742,0.0208417643,0.296568573 +-0.126083851,1.45763683,0.126083851,0.000166615384,0.154218063,0.0847755522,-0.881553888,0.357733816,0.0207700133,0.178486273 +0.270120889,1.4577508,-0.270120859,0.000360215956,0.16003418,0.152851537,-1.722525,0.494562149,0.0209455099,0.382107913 +-1.07776225,1.45790315,1.07776237,0.00104151363,0.136326134,0.0719550848,0.22465758,-0.370499194,0.0208769422,1.52428532 +0.0922943503,1.4580102,-0.0922943503,9.13971744e-05,0.063424468,0.0383754969,-0.376910806,0.365092784,0.0207980704,0.131161958 +0.393242508,1.45811558,-0.393242538,0.000484752993,0.157189906,0.173955545,-2.23196864,-0.275390923,0.0210997034,0.556189239 +-0.0920014381,1.45815778,0.0920014307,8.10497731e-05,0.065248698,0.0395797081,-0.36695835,0.355487764,0.0207756795,0.130824476 +0.126226619,1.45835602,-0.126226619,0.00014299633,0.153153688,0.0841449723,-0.897207856,0.362885058,0.0207735151,0.178753451 +0.0818836093,1.45852757,-0.0818836093,6.975625e-05,0.0808978081,0.0503765009,-0.196375325,0.251775414,0.0208051596,0.115827844 +-0.372958362,1.45854592,0.372958362,0.000236833817,0.153449848,0.170634031,-2.2958076,-0.0873661414,0.0208851323,0.527580261 +0.0805735365,1.45858526,-0.0805735365,2.08442943e-05,0.0827665925,0.0517155603,-0.175299108,0.238931373,0.020805968,0.114061832 +0.309209764,1.45882344,-0.309209764,0.000400909019,0.154638499,0.162715003,-2.03312302,0.359786987,0.0209999736,0.437854528 +0.636271358,1.45900142,-0.636271358,0.000905204623,0.177708343,0.105376624,-0.565425217,-0.532936573,0.0208752751,0.899979591 +0.133321092,1.45902491,-0.133321077,0.00014955597,0.157400161,0.0864444077,-0.932433128,0.357413977,0.0207718126,0.188742012 +-0.0860444382,1.4591012,0.0860444382,6.18699414e-05,0.0760114491,0.0468891226,-0.26128754,0.278852016,0.0207716729,0.121819533 +0.394751698,1.459306,-0.394751728,0.000366604159,0.157502472,0.173917398,-2.21823144,-0.286138386,0.0210957788,0.558330774 +-0.399950325,1.45937896,0.399950325,0.000369949557,0.159413218,0.178957835,-2.23551416,-0.343510479,0.0208304171,0.565651119 +-0.0826934353,1.45939362,0.0826934278,5.07031109e-05,0.0810618624,0.0503994375,-0.208465606,0.243469834,0.0207694545,0.117417499 +-0.311359912,1.45943046,0.311359942,0.000306872593,0.153887257,0.159966022,-2.02196431,0.33426109,0.0209896397,0.440620989 +-0.992524862,1.45966721,0.992524803,0.00138016779,0.166728616,0.092093423,0.569441378,-0.519962132,0.0208767597,1.40403438 +0.080467023,1.45973516,-0.0804670155,0.000146100501,0.0867606029,0.0542852357,-0.18751891,0.23158896,0.0208044723,0.113850065 +0.719250858,1.46000326,-0.719250917,0.00314421346,0.190176502,0.0965268314,-0.169189677,-0.758990347,0.0208313931,1.01737106 +-0.421147108,1.46022511,0.421147078,0.000575255428,0.159459233,0.172687262,-2.07129335,-0.571660876,0.0208299104,0.59589994 +0.208639532,1.46037483,-0.208639532,0.000370951573,0.17040129,0.122366764,-1.23640156,0.447082043,0.0208198838,0.295324951 +-0.270222247,1.46054673,0.270222247,0.000232001039,0.160685986,0.152352259,-1.70994139,0.489736438,0.0209540259,0.382237196 +-1.16869712,1.46075606,1.16869712,0.000586393639,0.1140358,0.0568420775,0.252565473,-0.228084698,0.0209677685,1.65286863 +0.111327305,1.4609313,-0.111327305,0.000132550151,0.128507257,0.0730998814,-0.791404307,0.409282506,0.0207740013,0.158211261 +-0.111352518,1.46116436,0.111352518,0.000135087452,0.130478412,0.0742140636,-0.772986472,0.399750769,0.0207655262,0.158217981 +-0.317766696,1.46129477,0.317766726,0.000387858978,0.153399676,0.159472972,-2.01672029,0.285603017,0.0209779982,0.44977653 +0.581453741,1.46135664,-0.581453741,0.00207057176,0.172878802,0.116677843,-0.594021559,-0.901455343,0.0209155213,0.822808862 +1.06851649,1.46137345,-1.06851637,0.00149201299,0.145350158,0.0764403194,0.19310911,-0.412353516,0.0210212003,1.51125109 +1.17619753,1.46138668,-1.17619753,0.000751427491,0.108850636,0.0542004034,0.355330378,-0.251938671,0.0210102461,1.66352296 +-0.227660105,1.46139371,0.22766012,0.000214776403,0.167602703,0.132096097,-1.34815431,0.448620439,0.0208678618,0.322455317 +0.165937215,1.46157873,-0.165937215,0.000289465097,0.169667125,0.100555927,-1.03785896,0.344062597,0.020779999,0.235285103 +1.01344085,1.46161652,-1.01344097,0.00121422391,0.160346135,0.0863286108,0.456476748,-0.467971802,0.0209986959,1.43350267 +0.244758666,1.46171284,-0.244758666,0.000216108339,0.165488034,0.141537249,-1.4626646,0.466094613,0.0208900422,0.346302778 +-0.771891356,1.46246481,0.771891356,0.00161781081,0.203902438,0.101843856,0.050704658,-0.806788087,0.0207502916,1.09199226 +-0.205430627,1.46250689,0.205430627,0.000273572776,0.170977235,0.120021202,-1.23247182,0.428079844,0.0208260845,0.290750712 +0.700711966,1.46302092,-0.700712025,0.000604148139,0.187341347,0.0965724587,-0.274325639,-0.727046251,0.0208385866,0.991356909 +-0.0821549296,1.46350908,0.0821549296,0.000148157225,0.0952995569,0.0594852008,-0.249789774,0.217027068,0.0207643192,0.116398126 +-1.1943264,1.46361279,1.1943264,0.000403622922,0.0987400711,0.0517068729,0.780483723,-0.143883735,0.02102248,1.68913245 +-0.345458835,1.4636693,0.345458835,0.000373035524,0.152478635,0.164072812,-2.17125368,0.110963792,0.0209166743,0.488770306 +-0.615932465,1.46367931,0.615932465,0.00139719853,0.178080738,0.112156846,-0.456740439,-0.860834122,0.0207135864,0.871388078 +0.493535757,1.4637748,-0.493535787,0.000338371174,0.16375421,0.152423903,-1.34188509,-0.98250407,0.0210385341,0.69798404 +0.107029736,1.46384859,-0.107029736,8.32556543e-05,0.125388682,0.0720923394,-0.727088094,0.383629411,0.0207767803,0.151680797 +-0.107238688,1.46387684,0.10723868,8.29965138e-05,0.126854405,0.0728118643,-0.711821318,0.375220627,0.0207646806,0.151982278 +-0.456132948,1.46401143,0.456132948,0.00114845368,0.16298303,0.164584756,-1.71935081,-0.829116464,0.0207869392,0.6456213 +0.351439714,1.46427321,-0.351439714,0.000320164399,0.152878657,0.162333176,-2.13325882,0.0727555901,0.0210648905,0.497053385 +-0.237601131,1.46433878,0.237601131,0.000390884117,0.166606814,0.135845736,-1.41126668,0.454389095,0.0208851192,0.336214364 +0.186029032,1.4644357,-0.186029017,0.000309793686,0.171130225,0.10713008,-1.12058568,0.383244097,0.0207851045,0.263195783 +0.923259616,1.4645108,-0.923259616,0.00256065722,0.181241632,0.0948090628,0.554951072,-0.725970984,0.0209072288,1.306301 +-0.300504416,1.46488452,0.300504386,0.000221750059,0.155800551,0.155710846,-1.89987195,0.357522875,0.0209737755,0.425169587 +0.196329534,1.46548295,-0.196329534,0.000300286338,0.171728462,0.114994511,-1.18089914,0.405542552,0.0207978617,0.277695388 +1.13917804,1.46556973,-1.13917804,0.000862890913,0.116406448,0.0603403337,-0.0330877341,-0.546395838,0.0210004151,1.6111722 +1.12728345,1.4656713,-1.12728333,0.000999483862,0.121637627,0.0640363991,-0.0116749816,-0.595602632,0.0210018624,1.59434581 +-0.657977283,1.46582484,0.657977283,0.00141014787,0.186196417,0.106572881,-0.485137999,-0.575959444,0.0207398459,0.930849552 +0.102716312,1.46617711,-0.102716312,0.000100079851,0.122315586,0.0708670914,-0.67190516,0.359934568,0.0207789317,0.145976633 +-0.10286504,1.46641397,0.10286504,9.71963891e-05,0.123604015,0.0714802295,-0.655698538,0.349372715,0.0207638051,0.146211922 +-0.095265612,1.46686649,0.095265612,6.66857086e-05,0.111951113,0.0655901581,-0.538309991,0.299453259,0.0207634475,0.134806767 +-1.04962289,1.46687579,1.04962289,0.00111174828,0.14392224,0.0780770332,0.35961014,-0.405992836,0.0208722316,1.48448348 +0.121052988,1.46693492,-0.12105298,9.48708912e-05,0.156251654,0.0861235335,-0.872306466,0.347904772,0.0207675267,0.172090411 +-0.0929183215,1.46700132,0.092918314,3.61993407e-05,0.108837135,0.0639831424,-0.50649178,0.285940021,0.020763088,0.131708905 +0.0949693024,1.46729457,-0.0949693099,6.88622749e-05,0.112482682,0.0660748333,-0.5544523,0.304035485,0.0207863692,0.13436 +0.0931936875,1.46751225,-0.09319368,2.51973506e-05,0.110395007,0.0650091544,-0.530816972,0.293004334,0.020787729,0.132010266 +0.259785295,1.46767855,-0.259785324,0.000231491329,0.163424999,0.14476344,-1.57005548,0.432445467,0.020891821,0.367827922 +0.35743463,1.46772015,-0.357434601,0.00031738347,0.152979091,0.161264628,-2.11424613,0.0125825768,0.0210652631,0.505582094 +-1.06543243,1.46783423,1.06543243,0.000738381059,0.137551516,0.0740625858,0.297692895,-0.389953762,0.0208693407,1.50688791 +-0.120792948,1.46813631,0.120792955,0.000118361364,0.158442453,0.0873413533,-0.85709393,0.33744216,0.0207585283,0.171655074 +-0.283898741,1.46822524,0.283898741,0.000356320874,0.158060133,0.150533184,-1.72372198,0.389541596,0.0209489465,0.40192312 +-1.14018917,1.46884382,1.14018917,0.000759137853,0.109965585,0.0572321862,-0.00579972565,-0.477682471,0.0209083762,1.61256552 +0.2237968,1.468961,-0.223796815,0.00021440853,0.169407383,0.126335278,-1.31050098,0.419016898,0.0208288953,0.316501051 +0.0928782448,1.46908355,-0.0928782448,0.000146963677,0.113825716,0.0671147928,-0.538589716,0.282588482,0.0207861401,0.131449759 +-0.0925331861,1.46926951,0.0925331786,0.000144343197,0.113950789,0.0670948923,-0.518788457,0.272072017,0.0207604151,0.130998969 +-0.247439414,1.46936405,0.247439414,0.000496055989,0.165170804,0.137947604,-1.45898318,0.417440593,0.020883292,0.350287616 +-1.11418509,1.4694804,1.11418509,0.00110762136,0.115033939,0.0619532242,0.0657333881,-0.593502581,0.0208574831,1.57590556 +-0.370728165,1.46951568,0.370728165,0.000293711608,0.152278721,0.159359485,-2.11178732,-0.108226135,0.0208874065,0.524474442 +0.126425892,1.46972847,-0.126425892,0.000148712352,0.161015064,0.0887496173,-0.89883256,0.329310268,0.0207652561,0.1797304 +-1.2287693,1.46980119,1.2287693,0.00019458661,0.0556942709,0.0452663824,1.52737033,-0.0143490527,0.0210276917,1.73780513 +0.360107929,1.46980488,-0.360107929,0.00053332973,0.153293386,0.160549253,-2.09204364,-0.0134079792,0.0210604947,0.509360671 +0.225026533,1.46981227,-0.225026533,0.000200929659,0.16933839,0.126728117,-1.31751168,0.416240424,0.0208287425,0.318255931 +0.160486162,1.46986067,-0.160486177,0.000579068088,0.171575904,0.0976102576,-1.03463078,0.328710437,0.0207645968,0.227604523 +0.189464658,1.4699192,-0.189464658,2.52015925e-05,0.172517881,0.109025881,-1.14466178,0.372816384,0.0207804758,0.268176168 +-1.21685362,1.46997976,1.21685362,0.000428340747,0.0693262592,0.0414081663,1.40806592,-0.038191665,0.0210269112,1.72095346 +0.139511883,1.47004294,-0.139511883,0.000169955005,0.168220937,0.0926315337,-0.963755369,0.321924955,0.0207627844,0.198098257 +0.22467947,1.47006071,-0.22467947,1.91725962e-06,0.169401884,0.126388565,-1.31410265,0.41391626,0.0208282024,0.317765832 +0.705760896,1.4700886,-0.705760956,0.000699157186,0.186937094,0.0948929265,-0.242920637,-0.729328752,0.0208320953,0.998705447 +-1.20255983,1.4701941,1.20255983,0.000419096905,0.0917270482,0.048934482,0.99553895,-0.0960323513,0.0210178252,1.70073843 +0.145631418,1.47022462,-0.145631418,0.000180456802,0.168974325,0.0938400775,-0.980313778,0.31651482,0.0207647774,0.206609145 +-0.378192961,1.47024608,0.378192961,0.000390585221,0.152697831,0.159352988,-2.08842659,-0.170609683,0.0208779778,0.535032034 +0.225380838,1.47034001,-0.225380838,0.000191705563,0.169332147,0.126592264,-1.31823575,0.413328528,0.0208284557,0.318746835 +-0.350925088,1.47039759,0.350925088,0.000300726941,0.152662843,0.158595949,-2.07236886,0.0314346477,0.0208973531,0.496486485 +0.508315027,1.47040689,-0.508315086,0.000306923059,0.162281141,0.138151929,-1.12695324,-0.965211153,0.0210191831,0.718995929 +-1.1524148,1.47043931,1.1524148,0.000435582275,0.107881054,0.055479534,-0.0289932657,-0.417302012,0.0209387597,1.62989998 +0.636310101,1.4706912,-0.63631016,0.000613521901,0.182620764,0.110979237,-0.385927558,-0.825047016,0.0208394546,0.899999976 +-0.494135499,1.47072005,0.494135499,0.000558669912,0.164524347,0.152551025,-1.29847765,-0.975533783,0.0207613148,0.699055851 +-0.687486112,1.47092366,0.687486112,0.00366276084,0.191720575,0.100436784,-0.352330834,-0.657789648,0.0207399838,0.972928643 +0.51275146,1.47130048,-0.51275146,0.000697480922,0.162400827,0.13501887,-1.08023059,-0.952474713,0.0210161451,0.725208819 +0.180951387,1.47132969,-0.180951372,0.000277011713,0.172324508,0.104842767,-1.10570216,0.34846437,0.0207767114,0.255998105 +-0.140020639,1.47136545,0.140020654,0.000224701376,0.169913948,0.0937650949,-0.954202294,0.314051598,0.020759685,0.198501408 +-0.213837326,1.47142982,0.21383734,0.000163332254,0.170483679,0.119585983,-1.25690746,0.395714164,0.0208218209,0.30246979 +0.356175214,1.47154164,-0.356175214,0.000172210857,0.153556317,0.159914568,-2.06931353,0.00510531943,0.0210476015,0.503831863 +0.699579418,1.4719131,-0.699579477,0.00150263507,0.185550138,0.0946607739,-0.272839516,-0.71171397,0.0208372343,0.989713013 +-0.118068755,1.4721849,0.118068755,0.000150758016,0.158809841,0.0881878883,-0.83698076,0.326570153,0.0207558442,0.167317212 +0.117268644,1.47224796,-0.117268644,0.000172427113,0.156530231,0.0869437903,-0.844782829,0.331276774,0.0207659137,0.166193157 +-0.070121631,1.47225809,0.070121631,0.000109421337,0.239820123,0.181013152,-0.114280015,0.074363254,0.0207489543,0.100000009 +0.0701153353,1.47226739,-0.0701153427,0.0001107727,0.244145527,0.185046479,-0.116720662,0.0723638237,0.0207876451,0.099999994 +0.19081822,1.47266412,-0.19081822,5.55031511e-05,0.172745138,0.108612917,-1.15040219,0.358700275,0.0207781419,0.270050645 +0.316995889,1.47281611,-0.316995859,0.00059226749,0.155073196,0.154499277,-1.87916017,0.219046727,0.0209830403,0.448965192 +0.504612684,1.47283816,-0.504612684,0.000352637202,0.162204415,0.139108047,-1.1597333,-0.937896729,0.0210172962,0.713772237 +0.358545333,1.4728694,-0.358545333,0.000441930053,0.153667778,0.159733728,-2.0611856,-0.00784014165,0.021047812,0.507160664 +-1.0173434,1.47292876,1.0173434,0.00150357955,0.15544261,0.0853126943,0.478075027,-0.451197118,0.0208706018,1.43906975 +0.223425642,1.47355366,-0.223425642,0.00017837112,0.169841602,0.125107795,-1.30374789,0.399307698,0.020821536,0.315974534 +0.475989938,1.47361112,-0.475989908,0.000493312022,0.165576071,0.160586879,-1.47570729,-0.914745092,0.0210363884,0.673210263 +0.977735043,1.47366595,-0.977735043,0.00191575312,0.169109076,0.0902487189,0.50946933,-0.572430015,0.0209594518,1.38375926 +-0.131022617,1.4737587,0.131022602,0.000240054957,0.166080311,0.0914111584,-0.910105705,0.31171158,0.020756606,0.185573772 +-0.483233154,1.47378671,0.483233154,0.000873183482,0.162381202,0.150069237,-1.39045429,-0.885312319,0.0207623765,0.68350327 +0.18846181,1.47429097,-0.18846181,9.90879125e-05,0.172926068,0.106860921,-1.13564157,0.347862363,0.0207764022,0.266723812 +-0.344432503,1.47430646,0.344432503,0.000368399429,0.153411224,0.156079948,-2.00234246,0.0665958896,0.0209058039,0.487417936 +-0.305624694,1.47516084,0.305624694,0.000348804402,0.156518131,0.153190896,-1.83617282,0.262991428,0.0209102482,0.432894647 +0.113830507,1.47548902,-0.113830507,8.86878479e-05,0.156156242,0.0873747393,-0.82274437,0.318065763,0.0207648929,0.161768109 +-0.179531813,1.47554207,0.179531813,0.00038601234,0.17378208,0.104000188,-1.11245251,0.336890399,0.0207723565,0.254732013 +0.508330762,1.47564578,-0.508330762,0.000644625863,0.162087321,0.135289565,-1.10635281,-0.93142432,0.0210180283,0.719027817 +-0.115040928,1.4756484,0.115040928,0.000104861334,0.159041554,0.088981241,-0.817893088,0.313777864,0.0207533464,0.16348131 +0.105215818,1.47566271,-0.105215825,7.18955343e-05,0.146162137,0.083390519,-0.739249408,0.305833071,0.0207705032,0.148838773 +0.103975572,1.4757477,-0.103975572,9.94080256e-06,0.144914702,0.082897462,-0.728887141,0.304189295,0.0207711291,0.147212625 +0.348507822,1.47575712,-0.348507851,0.000330288109,0.154287651,0.157232374,-1.99886549,0.0398724005,0.0210269932,0.492885053 +-0.499270648,1.47587132,0.499270648,9.87856038e-05,0.162241951,0.14093557,-1.19133139,-0.940723956,0.0207718518,0.706443727 +-0.16975984,1.47589135,0.16975984,0.000492102525,0.17383039,0.10009706,-1.06417704,0.315236688,0.0207694117,0.240935281 +-0.078443028,1.47628355,0.078443028,0.000216101413,0.141335785,0.0896285772,-0.362220764,0.128418133,0.0207471587,0.111862198 +1.18419099,1.47639227,-1.18419099,0.000592715049,0.0998648256,0.0505170859,0.475272238,-0.192702472,0.0210032091,1.67483234 +0.0784030631,1.47641373,-0.0784030631,0.000236365653,0.142156363,0.0903956294,-0.373071492,0.130596429,0.0207826663,0.111821145 +-0.407606274,1.47646964,0.407606304,0.000371015543,0.156821445,0.160826415,-1.93042159,-0.422014296,0.0208287742,0.576518953 +-0.144990683,1.47647357,0.144990683,0.000318000151,0.172491044,0.0955452994,-0.979582787,0.30515331,0.0207550209,0.205575064 +-0.349135727,1.47661185,0.349135727,0.00020306115,0.153344065,0.154894665,-1.97285867,0.027896557,0.0208998714,0.494106531 +-0.106546678,1.47663462,0.106546678,8.87801434e-05,0.150301814,0.0855138153,-0.739832342,0.301062047,0.0207534935,0.150733605 +0.943182468,1.47664714,-0.943182468,0.00261498778,0.175571173,0.0925261453,0.526376247,-0.672333717,0.020932693,1.33429933 +-0.104884855,1.47669029,0.104884855,1.41396613e-05,0.148618698,0.0848070309,-0.72584033,0.29945451,0.0207533836,0.148546681 +0.103873871,1.47686291,-0.103873864,0.000129591484,0.146147326,0.083583653,-0.732215643,0.298397452,0.0207702145,0.146976635 +0.250207245,1.47703171,-0.250207245,0.000262910733,0.165956974,0.135738984,-1.4466207,0.37873444,0.0208612941,0.354145885 +0.459872574,1.47745848,-0.459872603,0.00121757248,0.162194341,0.156688601,-1.54215813,-0.76717627,0.021051662,0.65125525 +-0.193679512,1.47761202,0.193679512,0.000554803293,0.172904268,0.108481981,-1.15775394,0.332630336,0.0207855664,0.274816245 +-0.504843712,1.47761369,0.504843712,0.00100896019,0.162265107,0.136673033,-1.12829137,-0.926542461,0.0207714476,0.714152277 +0.238656849,1.47763681,-0.238656849,0.000168992687,0.167788833,0.130254284,-1.37092495,0.368584275,0.0208327621,0.338035315 +-0.220720008,1.47765756,0.220719993,0.000322661625,0.170113787,0.121815018,-1.29764128,0.381355971,0.0208193827,0.312238038 +-0.104756027,1.47794056,0.10475602,0.000139993164,0.150054023,0.0855854973,-0.729339004,0.292980492,0.020752104,0.148250237 +-0.495656401,1.47872651,0.495656371,0.000170861342,0.161836833,0.140771613,-1.2158488,-0.907441497,0.0207657646,0.701398075 +-0.290912122,1.47955537,0.290912122,0.000267816358,0.158733308,0.146515176,-1.69899368,0.314010829,0.0209053103,0.411851287 +1.09585536,1.47979879,-1.09585536,0.00105731073,0.138104379,0.0774191022,0.164729238,-0.606215298,0.0210005194,1.54991138 +-0.39920485,1.47981238,0.39920485,0.000336857396,0.155012593,0.156609595,-1.92624938,-0.334537685,0.0208318401,0.564680457 +-0.588137507,1.48006654,0.588137448,0.00145890703,0.172611341,0.111564524,-0.531959057,-0.846186936,0.0207325108,0.832352519 +-0.137033314,1.48016489,0.137033314,0.000272314122,0.17244941,0.0946567357,-0.947734118,0.284076989,0.0207521804,0.194452643 +-0.212954029,1.48095548,0.212954015,0.000182896751,0.171004891,0.115542501,-1.23895073,0.345735818,0.0208046362,0.301407993 +0.285892129,1.48096454,-0.285892099,0.000264616974,0.1608347,0.145451725,-1.66594493,0.332255423,0.020918116,0.404320806 +-0.277487874,1.48125267,0.277487874,0.000502976123,0.160958707,0.142644316,-1.61749279,0.334561586,0.0208769776,0.392680466 +0.685277641,1.48137259,-0.685277641,0.0018707714,0.182280108,0.0954461321,-0.314151883,-0.651056409,0.0208427738,0.969268203 +0.148676515,1.48142695,-0.148676515,0.000239451023,0.173411652,0.0966480523,-1.00372303,0.297867835,0.0207541455,0.210462674 +-0.636030138,1.48145103,0.636030078,0.000466791971,0.180529445,0.106583804,-0.535120547,-0.481341898,0.0207392387,0.89973104 +0.139951617,1.48153329,-0.139951617,0.000171350926,0.171846449,0.0943424627,-0.971703172,0.290906072,0.0207543522,0.198135376 +-0.428387821,1.48160601,0.428387821,0.000419472577,0.159622282,0.160507232,-1.78753972,-0.561307251,0.02079615,0.605948925 +-1.16208291,1.48183346,1.16208291,0.000503386371,0.102931194,0.0541856922,0.0753063709,-0.299616545,0.0209711324,1.64351225 +0.770869911,1.4819051,-0.770869911,0.00292351795,0.190113693,0.0932189971,0.0694667697,-0.81097573,0.0208252482,1.09042132 +0.132670224,1.48192286,-0.132670224,0.000152146153,0.168003276,0.0922693461,-0.935861945,0.29350242,0.0207553189,0.187886506 +0.0888001248,1.48218489,-0.0888001248,0.000260583358,0.142025009,0.0845991895,-0.601286173,0.194259703,0.0207715761,0.126652375 +-0.0888134837,1.48221552,0.0888134837,0.00024641151,0.14283812,0.0848265812,-0.584952533,0.188941166,0.0207442306,0.126648188 +1.19782805,1.48262322,-1.19782805,0.000380012847,0.0873708948,0.045672372,0.825136125,-0.121073969,0.0209979955,1.69401765 +1.16825092,1.48276079,-1.16825092,0.000683758,0.101633623,0.0532831289,0.10449481,-0.30460757,0.0209950097,1.65228307 +-0.264893204,1.48294353,0.264893204,0.000717499002,0.163308516,0.137243286,-1.5121181,0.345673829,0.0208674986,0.375047714 +-0.813571334,1.48338151,0.813571334,0.0028647529,0.197770625,0.0989401639,0.202243984,-0.794697285,0.0207647886,1.15060866 +-0.438240558,1.4839195,0.438240588,0.000528190692,0.160354435,0.15585506,-1.66541255,-0.631998122,0.0207951237,0.619881272 +0.183198825,1.48411512,-0.183198825,0.000353567913,0.17451039,0.104859449,-1.11622071,0.312749356,0.0207648445,0.259146512 +-0.216752708,1.48459387,0.216752708,6.84235856e-05,0.170885637,0.115989611,-1.25353312,0.334553242,0.020801859,0.306819856 +0.70847863,1.48519206,-0.70847857,0.000908970775,0.184872374,0.0933876559,-0.234015763,-0.707396567,0.0208276212,1.00222492 +0.289350659,1.48547482,-0.289350659,0.00027985379,0.160986558,0.144667417,-1.6642437,0.293014079,0.0209099762,0.409237474 +-0.405172497,1.48560166,0.405172467,0.00050623354,0.155820757,0.153610379,-1.82387209,-0.374123991,0.0208337363,0.573145926 +0.330810755,1.48568869,-0.330810785,0.000504742202,0.156056926,0.150571868,-1.8315028,0.115659922,0.0209735371,0.468030334 +0.561528504,1.48623133,-0.561528504,0.0011319581,0.170165643,0.116418302,-0.655282259,-0.834390581,0.0209293626,0.794344008 +0.260511845,1.48632479,-0.260511845,0.00053134159,0.164896235,0.13508296,-1.46795654,0.324831992,0.0208570268,0.368655324 +-0.373729408,1.48651576,0.373729408,0.000428985368,0.154759526,0.152612403,-1.89663672,-0.150749266,0.0208595041,0.528619707 +0.288169205,1.48672831,-0.288169205,6.80672383e-06,0.161312878,0.142967656,-1.64024115,0.289817393,0.0209061783,0.407588154 +0.289929271,1.4870404,-0.289929271,0.000121631922,0.161081761,0.14319098,-1.64637947,0.278964698,0.0209075939,0.410060823 +0.117753856,1.48733521,-0.117753856,0.000129512147,0.166298419,0.0922531337,-0.869940639,0.271771491,0.0207545757,0.166653901 +-1.091084,1.48734069,1.091084,0.000807981472,0.12866053,0.0731355324,0.256815195,-0.555266738,0.0208324492,1.54312372 +0.288683742,1.48751068,-0.288683742,2.82767951e-06,0.161288917,0.142554224,-1.63458061,0.282460928,0.0209053215,0.408333808 +0.288028806,1.48757637,-0.288028806,1.25450401e-06,0.161388427,0.142324969,-1.63074708,0.284599513,0.0209050309,0.407410383 +-0.358802646,1.487854,0.358802646,0.000429115433,0.155148879,0.151505187,-1.85823107,-0.0463181734,0.0208659638,0.507519722 +-0.636234403,1.48806322,0.636234403,0.00066131918,0.180124789,0.108092815,-0.356840491,-0.805830598,0.0207095947,0.899999976 +-0.147962138,1.48833656,0.147962138,0.000317640632,0.17486544,0.0958644077,-0.995003223,0.272358537,0.0207469035,0.209500402 +0.286134571,1.48843527,-0.286134571,0.000421752105,0.161737904,0.141525239,-1.61694086,0.285026699,0.0209001824,0.404675812 +0.199325994,1.48880911,-0.199325994,0.00032328954,0.173467696,0.107403398,-1.17029929,0.31043303,0.0207669344,0.281918108 +1.22868741,1.48885882,-1.22868752,0.000216039756,0.0552722178,0.0472462177,1.47660458,-0.00793086737,0.0209939629,1.73775148 +0.288045168,1.48886132,-0.288045138,0.000122163634,0.161518916,0.141903281,-1.62222946,0.279747128,0.0209033657,0.407411993 +-0.237645119,1.48887813,0.237645134,0.000325065514,0.168675601,0.124682695,-1.34875524,0.349073231,0.0208188444,0.336236119 +1.21958637,1.48907495,-1.21958649,0.000476427114,0.0627918765,0.038437482,1.38545179,-0.0252791308,0.0209935531,1.72487962 +0.239963919,1.48930025,-0.239963919,0.000623231754,0.168931335,0.125763521,-1.36302423,0.332400769,0.0208081994,0.339777827 +1.20866656,1.48933458,-1.20866644,0.000455854577,0.0773140788,0.0414450467,1.09465063,-0.0557429418,0.0209938902,1.70943499 +0.290163785,1.48969841,-0.290163755,0.000345149485,0.161427468,0.141864911,-1.62465286,0.270793647,0.0209037289,0.410370618 +1.08517218,1.49005985,-1.08517218,0.000980727025,0.147302806,0.0845449865,0.243089795,-0.566658258,0.0209952872,1.53480136 +-0.0706321821,1.49022985,0.0706321821,6.29016577e-05,0.281965137,0.217121124,-0.304731429,0.0591521412,0.020733431,0.100000009 +-0.502957106,1.49025631,0.502957106,0.000713909219,0.162599191,0.134164661,-1.09930086,-0.865359664,0.0207695961,0.711422622 +0.101840124,1.49038386,-0.101840124,0.000224088086,0.161762118,0.0920116454,-0.779310286,0.227271557,0.0207580272,0.145232156 +-1.05355358,1.49045587,1.05355358,0.00113850436,0.142490506,0.0767558813,0.326399803,-0.38730213,0.0208525658,1.49003053 +-0.391828895,1.49055433,0.391828895,0.000489059428,0.156167239,0.151430413,-1.80887866,-0.288520366,0.020826254,0.554184794 +0.0706483126,1.49093056,-0.0706483126,6.28316338e-05,0.283899039,0.219579861,-0.318112701,0.0607088134,0.0207656454,0.100000009 +0.39081949,1.49122345,-0.39081949,0.000393036025,0.156466067,0.152337626,-1.79006767,-0.259550333,0.021035634,0.552915633 +-0.220236957,1.49169803,0.220236957,0.000232828432,0.17100738,0.114901878,-1.26063693,0.314705938,0.0207952969,0.311520994 +-0.165992469,1.49171972,0.165992469,0.000409929315,0.176546663,0.0992790908,-1.05826426,0.268849462,0.0207542367,0.235139266 +-0.101569399,1.49177122,0.101569399,0.00021240834,0.164229125,0.0931532681,-0.762038887,0.220588118,0.0207381304,0.144994527 +-0.209952727,1.49187815,0.209952727,0.000237323358,0.172443584,0.113041714,-1.22056019,0.30852133,0.0207890738,0.297015429 +0.126580596,1.49192476,-0.126580596,0.000172040076,0.172265768,0.0949563086,-0.920698166,0.253891438,0.0207492132,0.179100871 +0.115940891,1.49221945,-0.115940891,0.00013705506,0.169129327,0.0941080824,-0.869701147,0.246966243,0.0207515359,0.164197594 +1.13844979,1.49228275,-1.13844991,0.000316706108,0.203941792,0.134586051,-0.132360935,-0.685618222,0.0209812075,1.61014187 +1.17614257,1.49260044,-1.17614269,0.000442547782,0.0957359448,0.0513741858,0.186644197,-0.200744092,0.0209916029,1.66344786 +0.118869938,1.49296868,-0.118869938,7.37320515e-05,0.170925856,0.0944971815,-0.890750527,0.248682037,0.0207494944,0.168503195 +1.12942362,1.49301815,-1.12942362,0.000353786687,0.230769604,0.15171136,-0.0692919344,-0.750523627,0.0209815633,1.59737229 +0.539194226,1.4930644,-0.539194226,0.00101391354,0.166297108,0.122539133,-0.784196854,-0.855525732,0.0209472608,0.762875259 +-0.0793220848,1.4932555,0.0793220848,0.00013359444,0.174381644,0.110713422,-0.515955925,0.104157254,0.0207324289,0.112302855 +-0.567889214,1.49339294,0.567889154,0.000940240803,0.169337541,0.112911247,-0.602470517,-0.818449855,0.0207344964,0.804128289 +-0.0705426931,1.49339724,0.0705427006,1.95627981e-05,0.289352119,0.223537922,-0.338221192,0.0566124581,0.0207303651,0.100000009 +0.0705770701,1.4934082,-0.0705770701,1.51276226e-05,0.289158702,0.224209696,-0.345067531,0.0590214878,0.0207625572,0.100000009 +-0.116360836,1.49341297,0.116360836,0.000102599814,0.171666473,0.095052138,-0.86341393,0.244211346,0.0207382347,0.16459471 +-0.119007066,1.49345958,0.119007066,0.000237993328,0.172974527,0.0956087485,-0.877889335,0.242257386,0.0207386166,0.168328226 +-1.13942778,1.4935056,1.1394279,0.000277056592,0.18882826,0.130313024,-0.129951626,-0.63807857,0.0208844375,1.61148834 +-1.14869499,1.49351192,1.14869499,0.00016582277,0.165006638,0.115759239,-0.188875392,-0.552578568,0.0209317598,1.6246376 +0.139366835,1.49356568,-0.139366835,0.000431052555,0.175395429,0.0959037468,-0.977817416,0.252105832,0.0207450856,0.197609857 +-1.18754995,1.49364901,1.18754995,0.000731189444,0.0977507904,0.0501635373,0.512959421,-0.113175109,0.0210323706,1.67963219 +0.331488341,1.49386764,-0.331488341,0.000332183408,0.157498106,0.147587106,-1.74538541,0.0897174627,0.0209646318,0.469016522 +0.435719132,1.49393129,-0.435719132,0.000476355199,0.163823575,0.160971597,-1.64892483,-0.572739482,0.0210416783,0.616200805 +0.0793569535,1.49402237,-0.0793569535,0.000133615686,0.174615532,0.111144036,-0.539044082,0.107006028,0.0207617451,0.11232736 +-0.323352516,1.49429023,0.323352516,0.000306031026,0.158076152,0.146186545,-1.74057174,0.133758247,0.0208548941,0.45739013 +-0.28999579,1.49467349,0.28999576,0.000346745161,0.161543638,0.140424356,-1.60739517,0.263180673,0.0208501965,0.410313368 +-0.29889667,1.49479997,0.29889667,0.00029144928,0.160704866,0.144834623,-1.67480373,0.22218132,0.0208429024,0.423001707 +-1.11918736,1.49499989,1.11918736,0.000392479182,0.245006204,0.164661393,0.0136429556,-0.799464822,0.020793587,1.58298111 +-0.115553088,1.49505401,0.115553096,0.000105522078,0.172433957,0.0955408961,-0.861584127,0.236120775,0.0207366049,0.163485497 +-1.08189726,1.49506235,1.08189726,0.000552621088,0.135588944,0.0787715986,0.33420825,-0.539660871,0.0208219849,1.53017259 +-0.116949596,1.49560571,0.116949596,0.000180523362,0.173251167,0.0957763493,-0.871286988,0.235921457,0.0207363348,0.165468365 +-0.428990006,1.49573803,0.428990006,0.00080915977,0.158737093,0.148894921,-1.60629225,-0.519979894,0.020796841,0.606907487 +0.32376489,1.49575949,-0.32376489,0.000277726474,0.158305109,0.145621866,-1.71549976,0.117108285,0.0209465176,0.45795548 +-0.11598172,1.49576938,0.11598172,1.3435586e-05,0.173158735,0.0958256423,-0.86722219,0.234818995,0.0207360256,0.164159715 +0.0706482753,1.4958849,-0.0706482753,6.53086827e-05,0.290859759,0.225493371,-0.360206723,0.0577879585,0.0207596906,0.100000001 +0.395401686,1.49601865,-0.395401716,0.0014039363,0.157407627,0.15061827,-1.73271656,-0.292229533,0.0210213475,0.559423625 +1.00883198,1.49619818,-1.00883198,0.00142579305,0.160890877,0.085746564,0.400483429,-0.481958985,0.0209873728,1.42732549 +-0.0792747438,1.49629605,0.0792747438,4.18423879e-05,0.180260167,0.114445381,-0.543525517,0.0999303833,0.0207295287,0.112379335 +0.0793244764,1.49639344,-0.0793244839,3.23895219e-05,0.179015115,0.113951892,-0.561443925,0.103549346,0.0207587723,0.112395719 +-0.326497436,1.49650478,0.326497436,0.000278359308,0.158048138,0.145272866,-1.72674859,0.105340898,0.0208445005,0.461869061 +-1.20022631,1.4965111,1.20022631,0.000494386535,0.0883399397,0.0467607901,0.862630427,-0.0538763292,0.0210239589,1.69749045 +-0.669799209,1.49657142,0.669799268,0.00127842405,0.184682548,0.0986944288,-0.392032623,-0.565786421,0.0207350403,0.94814539 +0.308724046,1.4965806,-0.308724046,0.000353131269,0.159686491,0.143764749,-1.64225698,0.183937073,0.0209284481,0.436885208 +-0.0706345439,1.49664736,0.0706345439,6.51707451e-05,0.291862845,0.225464955,-0.357054144,0.0552101582,0.0207278635,0.100000009 +-0.484844327,1.49693203,0.484844327,0.000612452161,0.162389785,0.136059254,-1.19061804,-0.787859917,0.0207526442,0.685743093 +-0.11565049,1.49726951,0.115650497,9.93227222e-05,0.17361927,0.0960676,-0.868826747,0.230563372,0.0207347535,0.163616553 +-0.328397453,1.49792361,0.328397453,0.000140646691,0.158089906,0.144304782,-1.70873332,0.0879950225,0.0208407808,0.464570433 +0.387949854,1.49794888,-0.387949854,0.000540173962,0.157295153,0.149689123,-1.72118759,-0.251162678,0.0210086592,0.548879623 +-0.0901095048,1.49799681,0.0901095122,0.000148894571,0.164752215,0.0969348624,-0.682466388,0.151498675,0.0207307935,0.127573252 +0.121878535,1.4980036,-0.121878542,0.000245313568,0.172755569,0.0951629728,-0.909888089,0.236972541,0.0207447689,0.172526032 +0.762661874,1.49816561,-0.762661874,0.000772009196,0.186057612,0.0906738713,0.0173290372,-0.782633007,0.0208250973,1.07933629 +-1.22866499,1.49825358,1.22866499,0.000180393137,0.0552098863,0.0477186032,1.46598196,-0.00827384926,0.0210147873,1.73778665 +-1.22011936,1.49838042,1.22011936,0.000396434451,0.0646137297,0.0397259705,1.40441692,-0.0125093544,0.0210163668,1.72569978 +-1.20986354,1.49853253,1.20986354,0.000343032239,0.0809077844,0.0437058769,1.13654804,-0.0166264307,0.0210157726,1.71119404 +-0.185164183,1.49855757,0.185164183,0.000298162311,0.175618201,0.101105683,-1.12014818,0.267820328,0.0207532607,0.262208343 +0.0902120844,1.4985944,-0.0902120844,0.000151946311,0.163198024,0.0960101038,-0.708858311,0.151447728,0.0207543112,0.12769039 +0.252781451,1.49862587,-0.252781451,0.000272686011,0.16741249,0.126398072,-1.39604342,0.275731623,0.0208088476,0.357819915 +0.0794275776,1.49874914,-0.0794275776,0.000140088508,0.18085888,0.114993222,-0.573937058,0.100664899,0.020756118,0.112427518 +0.156416863,1.49887347,-0.156416863,0.000319877523,0.176482111,0.0972735658,-1.03321362,0.252206475,0.0207397677,0.221350193 +-0.323044389,1.49906611,0.32304436,0.000167311053,0.158717349,0.143096954,-1.68476748,0.114097014,0.0208454318,0.457022369 +-0.245962232,1.49913323,0.245962232,0.000615034427,0.167970061,0.124417834,-1.37372565,0.292074889,0.0208010636,0.348123312 +0.169941932,1.49927235,-0.169941947,0.000410084642,0.176709786,0.0984932184,-1.07364488,0.251612246,0.0207401607,0.240792423 +-0.0794049352,1.49937749,0.0794049427,0.000139570708,0.182817459,0.115911134,-0.559267581,0.0966613293,0.0207271464,0.112417266 +-0.919320226,1.4996115,0.919320166,0.0023488591,0.185982019,0.0977319032,0.51484561,-0.688632131,0.0208084583,1.30050039 +1.22875285,1.50008166,-1.22875297,0.000128329295,0.0550258942,0.0480079204,1.46338391,-0.00306029595,0.0209841412,1.73778272 +-1.15782833,1.50014877,1.15782833,0.000199324655,0.146404922,0.109363809,-0.12314368,-0.392847568,0.0209693946,1.63749468 +1.22067022,1.50024116,-1.22067022,0.00028110313,0.0617060252,0.0381342284,1.39567351,-0.0130046606,0.0209838208,1.7263515 +-0.337769777,1.50025761,0.337769777,0.00042340887,0.158214882,0.143961623,-1.69376445,0.0347294807,0.020832764,0.477718353 +1.2109642,1.50043237,-1.21096408,0.000256384054,0.0745657757,0.040339686,1.14784479,-0.0244195461,0.0209843274,1.71262443 +1.16202748,1.50068247,-1.16202748,0.000255155843,0.146398395,0.104900375,-0.148672342,-0.360320479,0.0209822692,1.64347959 +0.090219751,1.5007472,-0.090219751,3.68107503e-05,0.165986121,0.0974886119,-0.722890675,0.145599112,0.0207518451,0.127827749 +-0.0901081264,1.50077224,0.0901081339,4.75012239e-05,0.168606773,0.099024348,-0.699733138,0.144540593,0.020728169,0.127730891 +-0.194509774,1.5011518,0.194509774,0.000308856834,0.175159171,0.104325682,-1.14950168,0.261281997,0.0207606405,0.275446773 +0.210061848,1.50184762,-0.210061848,0.000366835447,0.173778534,0.108796269,-1.20153821,0.271744549,0.0207603052,0.297244459 +-0.327165693,1.50200236,0.327165663,0.000261806184,0.159028769,0.142795801,-1.67035031,0.0898468494,0.0208375975,0.462789953 +-0.157726228,1.50257993,0.157726243,0.00027478236,0.17854479,0.0975924805,-1.04173994,0.238640785,0.0207358636,0.224192649 +0.0903565437,1.50288475,-0.0903565362,0.000162621072,0.167248443,0.098088786,-0.731742382,0.141553432,0.0207496583,0.127894565 +-0.598546386,1.50335884,0.598546386,0.000844977272,0.173677862,0.107814595,-0.456840336,-0.785853028,0.0207201522,0.846700132 +0.21532543,1.50353289,-0.21532543,0.000417336734,0.173271596,0.110690184,-1.21916437,0.269206494,0.0207649879,0.304626346 +-0.0902819559,1.50358748,0.0902819633,0.000162206357,0.170309499,0.0998417139,-0.711243689,0.139610082,0.0207259431,0.12781392 +-1.18103039,1.50362921,1.18103039,0.000438280171,0.0935391188,0.0509468466,0.254143178,-0.081917271,0.0210472122,1.67041111 +-0.103657566,1.5039531,0.103657566,0.000116426949,0.172935262,0.097643666,-0.810984313,0.188925147,0.020727409,0.146767274 +0.342741162,1.50407505,-0.342741162,0.000404086255,0.158975348,0.145597056,-1.67772937,0.0168596059,0.0209582224,0.484746575 +0.206807137,1.50415611,-0.206807137,0.000247291639,0.174448192,0.107012428,-1.19463789,0.267176837,0.020752579,0.292686403 +-0.371775031,1.50415742,0.371775031,0.000132829286,0.157557905,0.145539299,-1.67687201,-0.161735386,0.0208086725,0.52625668 +1.04364467,1.50417948,-1.04364467,0.00140397425,0.152919009,0.0820709541,0.313607901,-0.411459446,0.0209917948,1.47608757 +1.1055088,1.50427091,-1.1055088,0.000365865591,0.310487539,0.212148249,0.159328192,-0.747466803,0.0209816359,1.56356454 +-0.543826461,1.5045948,0.54382652,0.000616496429,0.166358188,0.116003305,-0.721552253,-0.802600861,0.020736644,0.769113481 +-0.139598548,1.50469971,0.139598548,0.000312712829,0.178061426,0.0966056287,-0.978810012,0.227967381,0.0207318086,0.197523579 +-0.223625839,1.50478828,0.223625839,9.78308817e-05,0.171366662,0.111887619,-1.25483024,0.265275151,0.0207762476,0.316655397 +0.103823654,1.5048002,-0.103823654,0.000135245296,0.170683339,0.0957766846,-0.83458674,0.185028151,0.0207441654,0.146959051 +-0.365629107,1.50491321,0.365629107,0.000263767928,0.157792777,0.144964173,-1.66444433,-0.133023381,0.0208047945,0.51748836 +-0.166697755,1.50510406,0.166697755,0.000419626711,0.178256363,0.0984826088,-1.06162119,0.233155519,0.0207395051,0.236382633 +0.210164368,1.50514352,-0.210164368,2.8358907e-05,0.17412512,0.107745692,-1.2010026,0.263392776,0.0207543988,0.29750368 +0.391055584,1.50525141,-0.391055584,0.000498986396,0.158973321,0.148994192,-1.66750872,-0.27123186,0.0209876113,0.553282082 +0.263288021,1.50533104,-0.263288021,0.000463483535,0.166803777,0.127692312,-1.41139627,0.247135371,0.0208115261,0.372746646 +-0.54480952,1.50543785,0.54480958,0.000661374186,0.166455045,0.115243904,-0.712453544,-0.797388554,0.0207369197,0.770506561 +-0.957778633,1.50546157,0.957778633,0.000988511019,0.176343843,0.0942314342,0.511562765,-0.600697041,0.020824017,1.35463357 +0.175317347,1.50548244,-0.175317347,0.000355467113,0.177650645,0.0996166393,-1.08844864,0.238094389,0.0207362883,0.248385921 +-0.233640671,1.50561476,0.233640671,0.000328681228,0.170167074,0.115421236,-1.2886641,0.265468806,0.020786427,0.330514848 +-0.446555018,1.505759,0.446555018,0.000545566552,0.160664424,0.143074512,-1.42296338,-0.571362257,0.0207804404,0.631599605 +-0.965401113,1.50593686,0.965401113,0.00079774519,0.173551768,0.09292873,0.501987159,-0.579801202,0.0208272059,1.36535263 +0.104781412,1.50599134,-0.104781412,4.17314041e-05,0.171812952,0.0961157754,-0.844604969,0.182280317,0.0207425412,0.148401514 +1.16942978,1.50615335,-1.16942978,0.000180140734,0.133165598,0.100091711,-0.0970385224,-0.223497763,0.0209818147,1.65395236 +1.02980697,1.50622618,-1.02980697,0.000979150296,0.157062069,0.0842859,0.35557729,-0.430213511,0.0209850855,1.45650244 +-0.10378246,1.50634003,0.10378246,4.33997229e-05,0.17470856,0.0985141918,-0.820649266,0.182232097,0.020725321,0.147114724 +-0.542844653,1.50643921,0.542844653,0.00060720765,0.166351393,0.115653403,-0.722988725,-0.79356581,0.0207368825,0.767716587 +-0.322824359,1.50650859,0.322824359,0.000425308826,0.160139591,0.141281381,-1.6308738,0.0951815471,0.0208298489,0.456613123 +-0.294784725,1.50667036,0.294784725,0.000380252692,0.162649304,0.135078311,-1.52790737,0.185715169,0.0208178759,0.417381644 +0.10391596,1.50682902,-0.10391596,2.01217445e-05,0.171921566,0.0962781385,-0.842464507,0.178945556,0.0207420141,0.147247031 +-0.960523665,1.50707924,0.960523665,0.000276576233,0.175340682,0.0937645957,0.50788939,-0.592249393,0.0208246075,1.3585062 +0.769826591,1.50719237,-0.769826591,0.000487515761,0.185355425,0.0901750401,0.0373052917,-0.776973367,0.020823542,1.08941555 +0.860015631,1.50734115,-0.860015631,0.00335595757,0.18472594,0.0923016742,0.358777702,-0.793182671,0.0208597556,1.21643245 +-0.544382513,1.50744379,0.544382513,0.000335666206,0.166501552,0.115088239,-0.710040033,-0.79023695,0.0207367241,0.769908607 +1.20537031,1.50767207,-1.20537031,0.000323085085,0.0792800784,0.0432838835,0.992934227,-0.00602061488,0.0209799223,1.70468116 +-0.217962891,1.50767875,0.217962891,0.000283674774,0.17272678,0.109584168,-1.2356081,0.260408103,0.0207677837,0.308402568 +-0.844397187,1.50794137,0.844397247,0.00326229469,0.192142352,0.0961224064,0.315481901,-0.763439417,0.0207760725,1.19451582 +0.107693054,1.50806022,-0.107693061,0.000174996079,0.172859341,0.0964120403,-0.859795511,0.180235907,0.0207401961,0.152391523 +-0.85335803,1.50814164,0.853357971,0.000877125596,0.19030191,0.0958046839,0.338363349,-0.748462915,0.0207819026,1.20706785 +0.635812044,1.50844812,-0.635812044,0.000974392227,0.171251655,0.0970679894,-0.481018513,-0.455767095,0.0208526347,0.8999874 +-1.10163689,1.50860715,1.10163701,0.000279037718,0.312125504,0.217361212,0.238356784,-0.705446541,0.0207557082,1.55804873 +0.207545966,1.5087235,-0.207545981,0.000364731328,0.17497468,0.106832519,-1.19557178,0.257572174,0.0207480974,0.293704569 +0.104090884,1.50881243,-0.104090884,0.000180171279,0.172563344,0.0965166986,-0.848036706,0.174627319,0.0207402147,0.147339284 +-0.104016811,1.50890446,0.104016803,0.000227153258,0.175633371,0.098861672,-0.828088701,0.176791519,0.0207232907,0.147258818 +0.593497455,1.50891173,-0.593497455,0.00143060193,0.173644602,0.107788026,-0.471707344,-0.771332383,0.0208766703,0.839751959 +0.212748319,1.50892568,-0.212748319,7.44267163e-05,0.174320787,0.10759224,-1.20202291,0.254879057,0.0207519736,0.301060796 +-0.466384947,1.5089761,0.466384947,0.00070905278,0.162836492,0.138458312,-1.26521766,-0.666038334,0.0207625236,0.659929574 +0.931015968,1.50897634,-0.931015968,0.00293112569,0.176379025,0.0913534835,0.451815367,-0.676258087,0.0209201705,1.31722105 +-0.516285658,1.50928807,0.516285658,0.000400194229,0.164464951,0.122994848,-0.886768997,-0.771030188,0.0207565818,0.730824947 +0.30989939,1.50956178,-0.30989939,0.000208715079,0.161789849,0.137669146,-1.53946257,0.123963527,0.0208888613,0.438778639 +0.698707104,1.50962043,-0.698707104,0.00170927495,0.180645227,0.090930298,-0.251573026,-0.645920992,0.0208200011,0.988200247 +0.480885684,1.51074219,-0.480885684,0.0012197044,0.164024338,0.139364287,-1.18337035,-0.705504775,0.0209780112,0.680509865 +-0.547650218,1.51076996,0.547650218,0.000892757089,0.166798398,0.1145669,-0.690247476,-0.782366991,0.0207354296,0.774505317 +0.132631421,1.51141024,-0.132631421,0.00032240912,0.178340331,0.0969200581,-0.976272106,0.20383963,0.0207305606,0.188508615 +-0.369756043,1.51144195,0.369756073,0.000380207028,0.159299016,0.143901244,-1.62857687,-0.156885773,0.0207768399,0.523300052 +-1.00354362,1.51159334,1.00354362,0.00161242951,0.160278559,0.0864541829,0.443487197,-0.471814573,0.0208354313,1.41979229 +-0.243899211,1.51169991,0.243899196,0.000401071273,0.169072896,0.11693567,-1.30110645,0.233331725,0.0207818784,0.345274389 +-1.0737952,1.51173413,1.0737952,0.000864078582,0.145840481,0.084695667,0.352957428,-0.463752627,0.0208170414,1.5186584 +1.09747672,1.51184428,-1.09747672,0.000332028489,0.337562352,0.234591499,0.244658083,-0.676146328,0.020979112,1.55220377 +-1.17559779,1.51195133,1.17559779,0.000176753194,0.110787213,0.090212293,-0.0265131425,-0.0851730555,0.0210599545,1.66272736 +-0.376520395,1.51203394,0.376520425,0.000585160044,0.159305722,0.143698931,-1.61681795,-0.187055305,0.020778954,0.532695174 +-0.199471653,1.51207137,0.199471653,0.000401202618,0.175666928,0.102982178,-1.15942276,0.235776991,0.0207499228,0.282343984 +0.303821176,1.51256084,-0.303821206,0.000249639706,0.162892476,0.13517043,-1.50545573,0.129686415,0.0208649784,0.430159718 +-0.635798812,1.51275134,0.635798812,0.00107703137,0.176839352,0.101194151,-0.483031452,-0.431738377,0.0207351502,0.899827302 +0.850220382,1.51282561,-0.850220382,0.00195445656,0.185359806,0.0920214355,0.314557552,-0.803371072,0.0208559278,1.20266736 +-0.954899549,1.51292384,0.954899549,0.0014522589,0.176256046,0.0937821046,0.495277882,-0.600630283,0.0208186582,1.35048616 +-0.189845681,1.5130024,0.189845696,0.000495742483,0.177087814,0.100866675,-1.13631046,0.232884288,0.0207387246,0.269059092 +-0.159927636,1.5131228,0.159927636,0.000303019187,0.179954425,0.0977643877,-1.05100179,0.219927996,0.0207277723,0.226849854 +0.822090983,1.51325178,-0.822090983,0.00207178178,0.184608608,0.0909550712,0.21407111,-0.792587519,0.0208458453,1.1626513 +0.177287728,1.51358545,-0.177287728,0.000395207462,0.178521246,0.0991351977,-1.09232068,0.221602231,0.0207286496,0.251120061 +0.760903656,1.51417875,-0.760903716,0.0030367095,0.183603778,0.0892079249,0.00496359542,-0.750961483,0.0208202358,1.07643807 +-0.959530294,1.51420307,0.959530294,0.000358301186,0.175264716,0.0933962166,0.492806077,-0.588100672,0.0208194274,1.3570714 +0.870967448,1.51434803,-0.870967448,0.0021599289,0.182272822,0.0913771465,0.35725069,-0.772542,0.0208723918,1.23180962 +-0.462177038,1.51447511,0.462177038,9.24188789e-05,0.16235137,0.13687925,-1.24620891,-0.615085006,0.0207629409,0.654049993 +-0.0701322258,1.51455045,0.0701322258,0.00011079658,0.305547118,0.235951841,-0.459852755,0.0468651131,0.020714907,0.099999994 +0.0701156557,1.51455307,-0.0701156557,0.000115770243,0.303442776,0.234934986,-0.4740206,0.0477077551,0.0207378026,0.100000001 +-1.09438717,1.51458514,1.09438717,0.00018845858,0.341495812,0.241398305,0.330292046,-0.660959482,0.0207407102,1.54783821 +-0.964631677,1.51462185,0.964631677,0.000885192538,0.173655599,0.0925850198,0.487844527,-0.574984074,0.020820735,1.36424708 +-0.635994792,1.51482368,0.635994792,0.000243404676,0.178518757,0.105161034,-0.325564563,-0.763704896,0.0207088254,0.899999976 +-0.137889594,1.51496851,0.137889594,0.000244589086,0.180328712,0.0973993316,-0.982363582,0.202551484,0.0207222328,0.195296869 +-0.589049339,1.51514387,0.589049339,0.000870851683,0.172029182,0.108245984,-0.482774675,-0.759147108,0.0207190029,0.833432555 +-0.84011054,1.5153507,0.84011054,0.000768972037,0.190876231,0.0951628387,0.291386008,-0.75653857,0.0207732022,1.18853474 +-1.02708459,1.51539433,1.02708459,0.00108259113,0.151913375,0.082266897,0.408109725,-0.413537741,0.0208349153,1.4528054 +0.209668979,1.51548374,-0.209668979,0.000398497446,0.175370678,0.106053948,-1.19046497,0.239410967,0.0207427945,0.296585143 +0.231678978,1.5155127,-0.231678993,0.000282574678,0.172331214,0.111061104,-1.25597119,0.233085036,0.0207608305,0.327656865 +0.529889107,1.51562762,-0.529889107,0.00108892657,0.166205019,0.120045125,-0.799910188,-0.748603106,0.0209350362,0.750060081 +0.168357342,1.51592183,-0.168357357,0.000422667566,0.17953676,0.0985917598,-1.07593954,0.217038691,0.0207248405,0.238315403 +-0.0789861381,1.51633263,0.0789861381,0.000237830493,0.196920812,0.123934068,-0.644911766,0.0778876245,0.0207145475,0.112624645 +0.0789963454,1.51641726,-0.0789963454,0.000248591474,0.194729432,0.122727662,-0.667472959,0.0780952647,0.0207359567,0.11266619 +0.635898232,1.51644754,-0.635898232,0.000498018344,0.179395452,0.105539806,-0.322081774,-0.761835575,0.0208215509,0.899999976 +0.242807686,1.51653862,-0.242807701,0.000187612488,0.17104587,0.115170024,-1.30053532,0.234469056,0.0207689255,0.343429446 +-0.14093858,1.51661122,0.14093858,0.000142038058,0.18077901,0.0975828692,-0.993534386,0.197798446,0.0207217354,0.199751914 +-0.846372783,1.51703644,0.846372783,0.000477242487,0.190291479,0.0950397551,0.308293581,-0.751590073,0.0207743645,1.19732285 +0.351734072,1.51714063,-0.351734072,0.00025614223,0.161080822,0.141862154,-1.56831491,-0.0591259487,0.0209442396,0.497653782 +-0.225332648,1.51750159,0.225332648,0.000217727473,0.172721475,0.110191233,-1.24075055,0.233585536,0.0207600724,0.31892398 +0.24581556,1.51809907,-0.24581556,0.000291410135,0.170628294,0.115825802,-1.31002581,0.223300338,0.0207700599,0.347672105 +-0.723279357,1.51819932,0.723279357,0.00256478996,0.187843099,0.0939181075,-0.18285045,-0.648439288,0.0207453407,1.02304673 +-0.617702901,1.51832485,0.617702901,0.00120647659,0.175958842,0.104983889,-0.373923957,-0.750164866,0.020715965,0.873722434 +0.355846286,1.51847279,-0.355846286,0.000494509295,0.161117986,0.141708478,-1.56464279,-0.0797985122,0.0209466871,0.503427923 +-0.357824683,1.51851475,0.357824653,0.000631932169,0.161393791,0.141509488,-1.57245278,-0.111683466,0.0207655784,0.506194592 +0.490343988,1.51866806,-0.490343988,0.000878898136,0.163741529,0.128120646,-1.04312682,-0.685197353,0.0209793858,0.69388324 +0.610405862,1.51923704,-0.610405862,0.00139846641,0.175806448,0.106027953,-0.403177291,-0.75404799,0.020846149,0.863440752 +0.434097946,1.51926601,-0.434097946,0.000565026538,0.161993638,0.141056791,-1.38865399,-0.474118978,0.0209937934,0.613913476 +0.0900344998,1.5193944,-0.0900344998,0.00028976344,0.176991358,0.10263548,-0.799586535,0.109128542,0.0207321253,0.12841028 +-0.236232281,1.51939762,0.236232281,0.00028718586,0.171160549,0.114274234,-1.26161742,0.214234889,0.0207715221,0.334286213 +-0.0899665505,1.51941967,0.0899665505,0.000277786399,0.179885715,0.104399242,-0.775153279,0.110636398,0.0207137167,0.128281042 +-0.393576443,1.51942992,0.393576443,0.000475358567,0.160422385,0.141425803,-1.5175705,-0.268490523,0.0207698904,0.556658745 +-0.862480342,1.51988709,0.862480283,0.00222451054,0.188316166,0.094822824,0.33483237,-0.728839576,0.0207787752,1.21983159 +0.572761953,1.5200671,-0.572761893,0.00149321428,0.171026856,0.110250898,-0.555531621,-0.741705835,0.020898249,0.810191274 +1.19800615,1.52012157,-1.19800615,0.00035289771,0.0851624012,0.0467161089,0.785193503,0.0105240103,0.0209716186,1.69435978 +0.242992908,1.52047205,-0.242992908,2.11404094e-05,0.171263158,0.113025814,-1.2868607,0.215527356,0.0207625423,0.343789935 +0.596667826,1.52069688,-0.596667826,0.000305797148,0.173902392,0.106075078,-0.441818714,-0.743226528,0.0208629016,0.844325066 +-0.142879665,1.52076602,0.14287968,0.000371894188,0.181315035,0.0976508409,-1.00048006,0.191291884,0.0207187347,0.202322349 +0.543774307,1.52076745,-0.543774307,0.000932758616,0.167664543,0.11407236,-0.689204335,-0.734795451,0.0209295712,0.76965493 +-0.800749242,1.52083397,0.800749242,0.00264970143,0.189660013,0.094033584,0.13256228,-0.718827128,0.0207628924,1.13247871 +-0.300630033,1.52091312,0.300630033,0.000458240276,0.164817065,0.131072551,-1.44752264,0.129188076,0.0207906608,0.425365448 +0.43932727,1.5209378,-0.4393273,0.000718531024,0.162568346,0.140217289,-1.35034013,-0.503811181,0.0209919475,0.62133348 +0.85727638,1.5209533,-0.85727638,0.00236671208,0.183430567,0.0910552442,0.323852897,-0.789664865,0.0208602194,1.21262515 +0.152862459,1.52107859,-0.152862459,0.000449912914,0.180266336,0.0975525677,-1.02853882,0.190566108,0.0207212865,0.216994479 +-0.74064815,1.52109337,0.74064815,0.000820378831,0.189721078,0.0933870748,-0.102039658,-0.677830637,0.0207460392,1.04801762 +0.438518435,1.52117157,-0.438518435,3.7242633e-05,0.162511677,0.140360072,-1.35527062,-0.497084051,0.0209913943,0.620196164 +0.651336074,1.52124774,-0.651336074,0.00185281085,0.171639845,0.0931517631,-0.407430351,-0.490166306,0.020844629,0.921878695 +-0.139301986,1.5217191,0.139301971,0.000313511933,0.181512877,0.097742267,-0.993873298,0.189438596,0.0207169298,0.19730638 +0.31189388,1.52174687,-0.31189388,0.00071325904,0.164197579,0.13423498,-1.47521544,0.0878354609,0.0208605193,0.4413293 +-0.462505966,1.52185059,0.462505996,0.000123196267,0.163197041,0.13392742,-1.18746936,-0.597979546,0.0207435768,0.654583633 +-0.275660485,1.52199638,0.275660485,0.000436923438,0.166983351,0.125214413,-1.37147045,0.175584584,0.0207853317,0.389909387 +0.241704732,1.522084,-0.241704732,0.000188770675,0.171572551,0.112115569,-1.27662158,0.210179165,0.0207610875,0.341931432 +0.439051032,1.52213669,-0.439051032,0.000263843714,0.16256085,0.139480844,-1.34280181,-0.497161537,0.0209914576,0.620944858 +1.06654859,1.52217615,-1.06654859,0.000955785683,0.172453016,0.102023296,0.358535647,-0.403852224,0.0209727734,1.5084765 +0.243265763,1.52262592,-0.243265778,0.000496161287,0.171451971,0.112285681,-1.28040648,0.208043575,0.020760864,0.344105303 +-0.471886903,1.52276528,0.471886903,0.0009736832,0.163571581,0.131788611,-1.1440376,-0.624175608,0.0207319092,0.667603612 +-0.598446965,1.52294326,0.598446965,0.000319370709,0.173247635,0.104865707,-0.424523354,-0.73253125,0.0207196642,0.846892118 +-0.408001393,1.52294409,0.408001363,0.000900991785,0.161339581,0.140962794,-1.44568825,-0.351647317,0.0207607523,0.577153563 +0.353131115,1.52296031,-0.353131115,0.000239193832,0.162307635,0.140404239,-1.5291214,-0.0760847181,0.0209266618,0.499605209 +-0.119501121,1.52301085,0.119501121,0.000144909078,0.181411222,0.0990520269,-0.931293368,0.1691515,0.020714201,0.169020295 +-0.103842199,1.5232873,0.103842199,0.000249837438,0.180977285,0.100791931,-0.870755076,0.144885495,0.0207122508,0.148063704 +-0.119124725,1.52330649,0.119124725,0.000204252879,0.181463897,0.0991149023,-0.930245221,0.168068692,0.0207138956,0.168484285 +-0.119375557,1.52331197,0.119375564,1.04149251e-07,0.181472525,0.0990851447,-0.931328833,0.168409213,0.0207139272,0.168856129 +0.435534269,1.52334535,-0.435534269,0.000387863052,0.162717804,0.139406577,-1.34697092,-0.479614735,0.02098733,0.615944982 +0.438315392,1.52344954,-0.438315392,0.000390125584,0.162788466,0.139363393,-1.33757854,-0.492307067,0.0209890101,0.619895458 +-0.119591109,1.52355146,0.119591117,0.000149652857,0.181505695,0.0990822762,-0.932140529,0.168080628,0.0207137726,0.169148207 +0.103935063,1.52365077,-0.103935063,0.00024575062,0.177487224,0.098484166,-0.891329408,0.141349182,0.0207258519,0.14823626 +0.273549795,1.52389491,-0.273549795,0.00048935879,0.168573648,0.123759821,-1.35507321,0.173747867,0.0207938459,0.38697046 +-0.119399622,1.52390492,0.11939963,0.000106273015,0.1815494,0.0991110951,-0.932158053,0.167428479,0.0207134578,0.168868676 +0.128878877,1.5240103,-0.128878877,0.000403934158,0.179855049,0.0975258872,-0.976222396,0.172312587,0.0207216386,0.182766736 +-0.502465189,1.52420175,0.502465189,0.00128940539,0.164728612,0.123517737,-0.922347188,-0.689695954,0.0207553282,0.711095572 +0.344737142,1.52427411,-0.344737113,0.000594472978,0.162956491,0.139043212,-1.51024127,-0.0506774113,0.0209107045,0.487647295 +-0.266420245,1.52428985,0.266420215,0.000372970768,0.168523461,0.119673796,-1.32941389,0.17273286,0.0207668431,0.376820058 +0.478057235,1.52432656,-0.478057235,0.000758030277,0.163950205,0.129625052,-1.09617555,-0.631276429,0.0209723152,0.676536441 +0.357972562,1.52459669,-0.357972562,0.00112057512,0.162514791,0.140401363,-1.51956213,-0.0939611346,0.020929005,0.506442666 +-0.519231141,1.52514565,0.519231141,0.00044909658,0.165687576,0.120033033,-0.820618391,-0.712472558,0.0207402986,0.735314131 +1.19176126,1.52562702,-1.19176126,0.000277566287,0.0838948563,0.051480975,0.538388252,0.0914563015,0.0209685192,1.68552709 +1.03764176,1.52587569,-1.03764176,0.00155377691,0.156841218,0.0842182934,0.320465088,-0.386386454,0.0209725965,1.46757793 +-0.281375498,1.52601564,0.281375498,0.000335594057,0.166948304,0.124638498,-1.37910199,0.151351392,0.0207778215,0.397975743 +-0.213911578,1.52602553,0.213911593,0.000364407024,0.175174907,0.103663765,-1.17672467,0.193428129,0.0207402837,0.302834928 +-1.03532434,1.5273428,1.03532434,0.00107078685,0.148319006,0.0800863504,0.377982169,-0.390852571,0.0208251569,1.46434319 +-1.08851993,1.52763033,1.08851993,0.000293935154,0.347734958,0.243732765,0.337827027,-0.531247139,0.0207531713,1.53948379 +0.845083952,1.528108,-0.845083952,0.00351029821,0.182774425,0.0904404372,0.285857469,-0.779230833,0.0208515525,1.19530475 +0.117662743,1.52828574,-0.117662743,0.000250325917,0.179431796,0.0981344134,-0.944092929,0.150968254,0.0207199473,0.167098209 +-0.404225439,1.52846384,0.404225439,0.000285401184,0.162230089,0.138773754,-1.40947533,-0.321970493,0.0207584593,0.571891725 +0.289702177,1.52851415,-0.289702177,0.000703698839,0.167262912,0.127147466,-1.38867354,0.118448161,0.0208091512,0.40979898 +-1.19870746,1.52855885,1.19870746,0.00037822235,0.0917593092,0.0518160127,0.853242517,0.0511162169,0.0209987871,1.69528413 +-1.22877264,1.52867198,1.22877264,0.000100948899,0.053569749,0.0488458499,1.47404134,0.00324220513,0.0209736787,1.73778331 +0.405208796,1.52867508,-0.405208766,0.000441946497,0.163179427,0.140633076,-1.40493226,-0.32787928,0.020969104,0.573308051 +-1.22241461,1.52867985,1.22241461,0.000221935843,0.0622215495,0.039147336,1.47290397,0.0124972332,0.0209750719,1.72879159 +-1.21477211,1.52868891,1.21477211,0.000325750967,0.0770127475,0.0431853496,1.29518008,0.0448996685,0.0209770575,1.71798325 +-0.195227474,1.52877486,0.195227474,0.000392567628,0.178219646,0.100251377,-1.13993514,0.19780767,0.0207276139,0.276347816 +1.1865592,1.53020728,-1.1865592,0.000113363756,0.116308182,0.103602827,0.298033923,0.141057104,0.0209652614,1.67816985 +-0.432510823,1.53043151,0.432510793,0.000847862917,0.163433805,0.139643937,-1.31816435,-0.452456236,0.0207274649,0.612115264 +0.44312644,1.53059995,-0.44312644,0.000540180132,0.163756475,0.137576699,-1.2728734,-0.487798601,0.0209789909,0.626678765 +-0.455726862,1.53077805,0.455726892,0.000617530022,0.164280191,0.132665172,-1.17505693,-0.551080704,0.0207318701,0.644649386 +-0.737760782,1.53083169,0.737760782,0.000175062887,0.187806368,0.0922615603,-0.118670054,-0.654269636,0.020746123,1.04402375 +0.144329324,1.53088832,-0.144329324,0.000289259653,0.181260169,0.0979788303,-1.01579964,0.163369685,0.0207149312,0.204537511 +1.20077467,1.53167367,-1.20077467,0.00024390874,0.0826424062,0.0466776416,0.882390261,0.0610659122,0.0209579878,1.69827425 +-0.276536405,1.53189313,0.276536435,7.65037476e-05,0.168319941,0.120346949,-1.33084154,0.136949748,0.0207577907,0.391234368 +-0.0706343204,1.53244567,0.0706343204,6.60705336e-05,0.309430033,0.238516584,-0.539131701,0.04041389,0.0207028519,0.099999994 +0.967691183,1.53309488,-0.967691183,0.00154010882,0.169131711,0.0879567415,0.380794406,-0.554066241,0.0209407303,1.3686192 +0.732856691,1.53309941,-0.732856631,0.00176246918,0.179130986,0.0877860561,-0.0917435586,-0.66607672,0.0208138023,1.03651297 +-0.338416457,1.53317022,0.338416457,0.000786584162,0.165392146,0.134790882,-1.4415493,-0.0332285427,0.0207435619,0.479000926 +0.0706475601,1.53319645,-0.0706475601,6.62138409e-05,0.30717355,0.237261489,-0.558737934,0.0408556126,0.020718459,0.100000009 +-0.280918151,1.53328288,0.280918121,0.00020768329,0.16833213,0.121157698,-1.33400273,0.127263784,0.0207569096,0.397393286 +-1.19330108,1.53332186,1.19330108,0.00020931648,0.0878440589,0.0542140268,0.628090262,0.120951131,0.0210085362,1.68763804 +0.322244257,1.53337693,-0.322244257,0.00112288725,0.165971354,0.13252233,-1.39598286,0.00732269976,0.0208490938,0.456382513 +-0.0796307027,1.53338504,0.0796307027,0.000142364719,0.202359825,0.126485497,-0.712376237,0.0664340407,0.0207027979,0.112736046 +0.0796763897,1.53414106,-0.0796763822,0.000142645426,0.200357005,0.125364169,-0.737284303,0.0651687831,0.0207181387,0.112780124 +1.00374734,1.53440177,-1.00374734,0.00126108038,0.162045985,0.0854135156,0.337360561,-0.463572204,0.0209604744,1.4195621 +1.20616651,1.53449905,-1.20616651,0.000339765742,0.0782597065,0.0439976864,1.03925109,0.0481927246,0.0209526494,1.70584667 +0.490065068,1.5346967,-0.490065068,0.00116822007,0.165050626,0.125434101,-0.980484128,-0.625979185,0.020971084,0.693439484 +-0.270859987,1.53523755,0.270859987,0.000384142681,0.169286698,0.118005097,-1.30883896,0.133354381,0.0207493436,0.383116901 +-0.09087044,1.53542423,0.0908704326,0.000167161052,0.184362501,0.106005035,-0.827236474,0.0932285935,0.0207022298,0.128648236 +1.19503534,1.53543305,-1.19503534,0.000197822053,0.0817619115,0.0522780903,0.661999404,0.14983201,0.020955896,1.69015646 +0.159263998,1.53543591,-0.159264013,0.000517740671,0.182288766,0.097945936,-1.05132198,0.16174981,0.0207093079,0.22605285 +1.08316457,1.53552067,-1.08316457,0.000322887296,0.370863706,0.260345727,0.350240976,-0.409997702,0.0209633876,1.53197598 +0.0705756322,1.53569806,-0.0705756322,1.58215244e-05,0.307656348,0.237553596,-0.570021152,0.0399279222,0.0207157899,0.100000009 +-0.0705422461,1.5357039,0.0705422461,2.02452757e-05,0.310063422,0.238931358,-0.553607702,0.0391580872,0.0207005981,0.099999994 +1.21612084,1.53574729,-1.21612084,0.000287782954,0.0696932971,0.0391980745,1.32722759,0.0442814231,0.0209463369,1.71999955 +0.124558903,1.53582561,-0.124558903,0.00021018344,0.181248963,0.0981730893,-0.979851544,0.147069812,0.020712195,0.176860452 +1.22873068,1.53592229,-1.22873056,0.0001192333,0.0526712313,0.0481623374,1.46282542,0.00709502771,0.0209462456,1.73782837 +1.22290325,1.5360328,-1.22290325,0.000257482752,0.0591982044,0.0371566154,1.46563458,0.0131027298,0.0209458191,1.72958672 +0.090969272,1.53603959,-0.090969272,0.000167192338,0.181404307,0.10430716,-0.851779342,0.0908827856,0.0207160488,0.128764495 +-0.466050535,1.53607249,0.466050535,0.000771334569,0.165127218,0.131049842,-1.11090517,-0.576535702,0.0207174104,0.659353673 +0.279237568,1.53618026,-0.279237568,0.000481234048,0.169474453,0.120040506,-1.30545402,0.115980662,0.0207787473,0.395207465 +-0.275918007,1.53634667,0.275918007,0.000128655913,0.16892603,0.119383439,-1.32147288,0.126302496,0.0207464024,0.390430421 +-0.0795416236,1.53647888,0.0795416161,4.38366478e-05,0.203313306,0.126918778,-0.724673748,0.0642620772,0.0207006112,0.11275623 +0.0796060413,1.53652143,-0.0796060339,3.43112479e-05,0.201113015,0.125711247,-0.746587276,0.0634249076,0.0207156651,0.112795442 +0.40615654,1.53664517,-0.40615654,0.000175367546,0.164420098,0.13774626,-1.33616734,-0.326690227,0.0209422838,0.574781299 +-1.18880296,1.53725815,1.18880296,8.86270427e-05,0.108067885,0.0985199362,0.400850564,0.146184981,0.0210136622,1.68127656 +0.272267312,1.53743911,-0.272267342,0.000466348167,0.170401499,0.117862538,-1.28344047,0.121954739,0.0207736082,0.385279268 +0.172294915,1.53774452,-0.172294915,0.000326685404,0.18172121,0.0979784057,-1.07749999,0.162771508,0.0207066368,0.243944004 +-0.105125457,1.53797126,0.105125464,0.000170171625,0.183795184,0.101502277,-0.904705942,0.122976445,0.0207009837,0.148829579 +0.130736187,1.5381074,-0.130736172,0.000248579512,0.181915551,0.0981262177,-0.993788004,0.145834595,0.0207098201,0.185696661 +-0.397654891,1.53816617,0.397654891,0.000561105669,0.164444715,0.137460545,-1.35575783,-0.28847912,0.0207460467,0.562480509 +0.0706477761,1.5382055,-0.0706477761,6.69282526e-05,0.30793491,0.237735599,-0.580152154,0.0399637148,0.0207134448,0.100000009 +0.400567621,1.53823197,-0.400567621,0.000814559462,0.164798737,0.137439355,-1.33798623,-0.305522531,0.0209338069,0.566749454 +1.06146538,1.53825808,-1.06146538,0.00105401606,0.182337999,0.108016312,0.354806453,-0.324113071,0.0209594443,1.50126803 +0.0909105241,1.53826189,-0.0909105241,4.05572027e-05,0.181992069,0.104523152,-0.858689606,0.0884109288,0.0207137987,0.128811672 +-0.0908004418,1.53831828,0.0908004493,5.18415836e-05,0.185126096,0.106260628,-0.836656511,0.0899736509,0.0207001008,0.128715202 +0.527940631,1.53851175,-0.527940631,0.00120528741,0.167967543,0.114747822,-0.720488787,-0.662008762,0.0209249835,0.747224569 +0.914518058,1.53856897,-0.914518058,0.00228304835,0.175915569,0.0899629369,0.373313367,-0.659837842,0.0208937284,1.29368114 +1.19025111,1.53856909,-1.19025111,8.53994788e-05,0.118595451,0.110216685,0.451637864,0.202169299,0.0209533051,1.68338978 +-0.744116783,1.53864038,0.744116783,0.00484903343,0.1874616,0.0918713883,-0.0976341292,-0.651422143,0.0207458977,1.05273104 +0.105275467,1.53876925,-0.10527546,0.000162045966,0.180298209,0.0994101465,-0.925081789,0.119191162,0.0207123924,0.149016261 +-0.325509131,1.53878522,0.325509131,0.00051587692,0.167016104,0.130172759,-1.38432014,0.00247558206,0.0207412522,0.460599422 +-0.0706320256,1.53888023,0.0706320256,6.67779095e-05,0.310363442,0.239125475,-0.566433728,0.039112322,0.0206984133,0.099999994 +0.0796917751,1.53893197,-0.0796917751,0.000146337596,0.20149307,0.125890687,-0.754484713,0.0628320798,0.0207134821,0.112801567 +-0.0796509907,1.53952587,0.0796509981,0.000146175764,0.20375526,0.127117291,-0.734845996,0.0635386854,0.0206984356,0.11276833 +-0.278886676,1.53953254,0.278886706,0.000638322032,0.169400752,0.119188346,-1.30948615,0.112329803,0.020741256,0.394506216 +-1.01828384,1.53978634,1.01828384,0.000940446684,0.154515028,0.0825568363,0.376724064,-0.417109072,0.0208151732,1.44028473 +0.205433697,1.53984714,-0.205433697,0.000160673779,0.178062886,0.100734472,-1.14156437,0.161001742,0.0207143649,0.291283697 +-0.250141293,1.54005194,0.250141293,0.000563216745,0.171480164,0.109757788,-1.23213792,0.135971919,0.0207350198,0.354246914 +-1.06003881,1.54014754,1.06003881,0.00104173855,0.164444,0.0961716473,0.396832913,-0.348012149,0.0208079163,1.49930286 +-0.309609115,1.54032278,0.309609145,0.000874398916,0.167888239,0.126159668,-1.34687281,0.0438018441,0.0207338091,0.438346028 +0.0910307169,1.54053259,-0.0910307094,0.000175505207,0.182348579,0.104683444,-0.864163876,0.0869345218,0.0207118131,0.128850892 +-0.105088979,1.54063964,0.105088979,3.075528e-05,0.184248447,0.101618662,-0.910932899,0.118868463,0.020698892,0.148970097 +0.105241381,1.54083323,-0.105241381,2.32655784e-05,0.180700272,0.0995494202,-0.929630518,0.116114885,0.0207104273,0.149121508 +0.106987961,1.54090416,-0.106987961,0.000126437633,0.180794597,0.0994459912,-0.934455752,0.117799312,0.0207102336,0.151434526 +-1.22873199,1.54099524,1.22873199,4.30441796e-05,0.0529500395,0.0492008701,1.47723675,0.00773829361,0.0209580436,1.73778009 +-1.22326636,1.54104316,1.22326636,9.48977831e-05,0.0612299666,0.0388587043,1.50018871,0.0225355942,0.0209594332,1.73005044 +-1.21670723,1.54110062,1.21670723,8.42442751e-05,0.0752799064,0.0428453945,1.3636198,0.0716063678,0.0209626537,1.72077429 +-0.0909582302,1.54119313,0.0909582376,0.000175153225,0.185544938,0.10643959,-0.843750179,0.0881446153,0.0206979737,0.128776178 +0.184301138,1.54120386,-0.184301138,0.000543072994,0.181116134,0.0985616744,-1.09788775,0.152652323,0.0207060147,0.261153936 +-1.21047878,1.54130006,1.21047878,0.00031918718,0.0817526802,0.0469348691,1.18984771,0.0877434015,0.0209721271,1.71189284 +0.211076915,1.54131293,-0.211076915,0.00055862969,0.177641019,0.101244718,-1.15846801,0.160143435,0.0207125992,0.299049616 +-0.172899067,1.54142582,0.172899067,0.000278557272,0.182412118,0.0978760272,-1.08223903,0.162139565,0.0207093265,0.24457407 +-0.676583707,1.54165244,0.676583707,0.00153592997,0.180449381,0.0922963098,-0.323966801,-0.512453198,0.0207337253,0.956893802 +0.219011366,1.54201901,-0.219011366,0.000458222523,0.176774114,0.103349477,-1.18071747,0.155595988,0.0207150877,0.310114801 +-1.20268381,1.54202247,1.20268381,0.000178572838,0.0894892365,0.0520067178,0.983085155,0.109045438,0.0209818073,1.70095587 +-0.439164579,1.54223359,0.439164579,0.000397563534,0.165168613,0.132887751,-1.17479098,-0.456350803,0.0207275245,0.621910274 +0.983100951,1.54235041,-0.98310101,0.00134735834,0.165914312,0.0864423066,0.349107832,-0.500942826,0.0209506862,1.39053941 +-0.107768551,1.54241681,0.107768551,0.000125198436,0.184423476,0.101411171,-0.921014607,0.119072407,0.0206978023,0.15252775 +-0.172000811,1.54244721,0.172000811,0.000368424808,0.18263185,0.0977607965,-1.08081937,0.160465702,0.0207078103,0.243309781 +-0.172813192,1.54260969,0.172813192,1.574824e-06,0.182538286,0.0977987722,-1.08183765,0.15950191,0.0207081176,0.244501561 +-0.174577907,1.54289627,0.174577907,0.000281238783,0.182372525,0.0978853181,-1.08525431,0.159202456,0.0207087044,0.246915534 +0.105422363,1.54296732,-0.105422363,0.000168764032,0.180972457,0.0996588245,-0.933134377,0.113591388,0.020708682,0.14922379 +-0.668623447,1.54321313,0.668623447,0.000684481696,0.178880453,0.0935546607,-0.347572684,-0.484761745,0.0207338091,0.945622683 +0.149421304,1.54332411,-0.149421304,0.000241556656,0.183171421,0.0983556584,-1.03553247,0.143523455,0.0207047183,0.211708874 +-0.105323583,1.54332781,0.105323575,0.000145027254,0.184515744,0.101688348,-0.915494502,0.115871988,0.0206968505,0.149114057 +0.594354272,1.54335761,-0.594354272,0.00153041258,0.173276842,0.104500487,-0.415090919,-0.688577056,0.0208456926,0.840721965 +0.195288673,1.54343402,-0.195288673,0.000330346142,0.179942966,0.0996473283,-1.11870193,0.152093455,0.0207093749,0.276373267 +-0.172736362,1.54399025,0.172736362,0.000130066604,0.182732791,0.0977888107,-1.08178878,0.157492578,0.0207068846,0.244347766 +-0.239383012,1.54400158,0.239383012,0.000425731356,0.17359671,0.106675737,-1.19674015,0.131521881,0.0207314286,0.338822991 +-0.636263549,1.54451299,0.636263549,0.000761618488,0.17740804,0.104249887,-0.291794479,-0.704052269,0.0206990167,0.899999976 +-1.19766974,1.54465902,1.19766974,0.000153623419,0.0856813043,0.0548396111,0.772499084,0.192346454,0.0209895372,1.69386387 +0.410497189,1.54476237,-0.410497189,0.000570945675,0.165749758,0.136172876,-1.28493059,-0.336206347,0.0209224056,0.580765545 +-0.198262274,1.54528558,0.198262274,0.000437417679,0.179646254,0.0989856049,-1.1319654,0.150408909,0.0207134001,0.281097621 +-0.208962619,1.54555833,0.208962619,0.00041078002,0.178157985,0.100591235,-1.15396261,0.149018869,0.0207142048,0.295843124 +-0.170363322,1.54641914,0.170363322,0.000214157873,0.183216661,0.0979406759,-1.07846844,0.153204948,0.0207043123,0.240953863 +-0.994673967,1.54649866,0.994673967,0.00147996878,0.162690341,0.0861185715,0.394016087,-0.468129456,0.0208075643,1.40710235 +-1.19349122,1.54685664,1.19349122,6.56947595e-05,0.1080193,0.101751842,0.564964652,0.224914163,0.0209917407,1.68795347 +-0.151748449,1.54713285,0.151748449,0.000384607789,0.184381872,0.0983069614,-1.03732288,0.138183445,0.0206995532,0.215586886 +-0.224533975,1.54750872,0.224533975,0.000872726552,0.17592147,0.1027577,-1.16684568,0.129558668,0.0207193717,0.318066627 +1.07886815,1.54755437,-1.07886815,0.000363585539,0.369766951,0.257369697,0.328145325,-0.292820871,0.0209531635,1.52587986 +-0.838768721,1.5477109,0.838768721,0.00336093851,0.187503219,0.0930863619,0.246991515,-0.703881741,0.0207615122,1.18627334 +-0.127049088,1.54810297,0.127049088,0.000394143251,0.184897274,0.0994960591,-0.985011518,0.127046734,0.020695515,0.180765986 +-0.636184096,1.54823124,0.636184096,0.000562240661,0.17407614,0.0957019478,-0.451457798,-0.389599323,0.0207287539,0.899894357 +-0.732962668,1.54919839,0.732962668,0.00216049561,0.185620904,0.0910912603,-0.130148456,-0.614208639,0.0207428951,1.03680587 +0.401567429,1.54924059,-0.4015674,0.000341267791,0.166874766,0.135767549,-1.27957916,-0.308839917,0.0209063143,0.568042934 +-1.07804585,1.54945099,1.07804573,0.000353800191,0.363331616,0.253058493,0.370302141,-0.322067976,0.0207742807,1.524773 +0.274487555,1.54948354,-0.274487555,0.000604107743,0.17263791,0.116830088,-1.25218666,0.0837772936,0.0207569934,0.388318241 +-0.675205469,1.5496192,0.675205469,3.30002913e-05,0.179300204,0.0914815813,-0.320201367,-0.495175779,0.020732889,0.95511961 +-0.142221928,1.54983115,0.142221928,0.00041434911,0.184928566,0.098550573,-1.01984501,0.132926166,0.020694619,0.202235222 +-0.531034529,1.54998648,0.531034529,0.00115858857,0.167761952,0.115479231,-0.70638454,-0.652340174,0.0207181312,0.751331449 +-0.12047337,1.55026555,0.12047337,0.000319386076,0.185072064,0.100096643,-0.971673012,0.12194448,0.0206926372,0.170976698 +-0.595718145,1.55033326,0.595718145,0.00175619521,0.172765017,0.103316516,-0.39473623,-0.663382471,0.0207138509,0.842618823 +0.636210799,1.55045807,-0.636210799,0.000787671306,0.167197853,0.0897132382,-0.440535903,-0.408719122,0.0208283905,0.899995625 +-1.2287637,1.55053723,1.22876382,7.13947811e-05,0.0519654341,0.0483667478,1.50322843,0.00559157785,0.020930063,1.73777175 +0.98921752,1.55058444,-0.989217579,0.000492435123,0.165680885,0.086380437,0.327605635,-0.471034944,0.0209442694,1.39911783 +-1.22354424,1.55059028,1.22354424,0.000156894064,0.0606901534,0.0384672433,1.541502,0.018920863,0.0209302269,1.73039007 +-1.21728182,1.55065417,1.21728182,0.000283417699,0.0750463009,0.0432754681,1.42037606,0.065167442,0.0209310818,1.72153354 +-0.922691286,1.55073977,0.922691286,0.00398905668,0.18049553,0.0930949748,0.409691632,-0.618811965,0.0207840707,1.30598164 +-0.672689497,1.5510962,0.672689497,0.000588341674,0.178711474,0.0914145783,-0.326544046,-0.486382544,0.0207328182,0.951471269 +0.978355527,1.55155623,-0.978355587,0.000320830732,0.166560069,0.0864484608,0.332402825,-0.50417614,0.0209414698,1.38394904 +-0.377987742,1.55198574,0.377987742,0.000859790249,0.168103158,0.135404721,-1.2883358,-0.195256323,0.0207279492,0.534968972 +0.186255038,1.55234265,-0.186255038,0.000279342959,0.182176337,0.0982497334,-1.09630537,0.133298129,0.0206968524,0.263998985 +-0.351985157,1.5529809,0.351985157,0.000834319799,0.169231325,0.132113889,-1.29242063,-0.0899740309,0.0207196586,0.498072803 +0.247798994,1.55316389,-0.247798994,0.000669016037,0.175829589,0.107210658,-1.19776821,0.105612323,0.0207180344,0.350636721 +0.636238456,1.55358291,-0.636238396,0.000769301725,0.177789032,0.104221478,-0.279566854,-0.689337969,0.0208011363,0.899999976 +0.137476161,1.55383968,-0.137476161,0.000343357882,0.184341654,0.0985890776,-1.0193547,0.120835677,0.0206968859,0.195183545 +-0.114101253,1.55407405,0.114101261,0.000130188229,0.185441181,0.100863338,-0.959792018,0.11203485,0.0206890125,0.162160903 +-0.678657353,1.55483317,0.678657353,0.00169103511,0.179288417,0.0911765397,-0.308405101,-0.493733883,0.0207323153,0.959847689 +1.22869289,1.55505598,-1.22869289,0.000117477219,0.0505090728,0.0466416553,1.49038804,0.00569913629,0.020921113,1.7378335 +1.2180301,1.55505776,-1.2180301,0.00039989737,0.068569541,0.0394505039,1.43535209,0.0496509448,0.0209195092,1.72275901 +1.22354734,1.55512619,-1.22354734,0.000242220092,0.0581016727,0.0364342108,1.52608907,0.0141242081,0.0209202971,1.7305553 +0.121966235,1.55544615,-0.121966243,0.000126176645,0.183503449,0.0991736129,-0.992812634,0.112994127,0.0206972081,0.17263785 +-0.867775917,1.55610704,0.867775917,0.00189625984,0.185662717,0.0928589702,0.278758347,-0.673585415,0.0207622461,1.22727036 +0.545407474,1.5564568,-0.545407474,0.00124053215,0.169269055,0.109591372,-0.60350132,-0.635943234,0.0208899882,0.771484613 +0.123712018,1.5565995,-0.123712018,0.000110587156,0.183754474,0.0991829038,-0.997216046,0.111790232,0.020696139,0.17512238 +0.0701153725,1.55682755,-0.0701153651,0.000117937328,0.309928119,0.238993481,-0.655403018,0.0399824716,0.0206949618,0.099999994 +0.0791239366,1.55682826,-0.079123944,0.000262691668,0.204313099,0.127203673,-0.813104749,0.0580964908,0.020696504,0.112848267 +-0.0701216161,1.55683327,0.0701216161,0.000115414143,0.312060088,0.240269974,-0.638651967,0.038658224,0.0206867438,0.100000009 +-0.0791145861,1.55683446,0.0791145861,0.00025724739,0.206402719,0.128340662,-0.792393088,0.0590999201,0.0206866283,0.112824857 +-0.445101976,1.55692458,0.445101976,0.000601386244,0.167364821,0.128159732,-1.06487644,-0.432904035,0.0207322855,0.629958093 +0.0905496478,1.55754375,-0.0905496478,0.000320435938,0.184987515,0.10585846,-0.90512526,0.0751799643,0.0206964947,0.129144073 +-0.0905257463,1.55759835,0.0905257463,0.000313336292,0.18796964,0.107479602,-0.884056091,0.0769983083,0.0206863098,0.129096881 +0.119988233,1.55766523,-0.119988225,0.000175587091,0.183678299,0.0994306654,-0.990626335,0.108187214,0.0206955653,0.16984418 +-0.301613152,1.55792069,0.301613152,0.000615401426,0.171018332,0.120645747,-1.27486444,0.00664594583,0.0206901338,0.426969141 +-0.10510689,1.55865288,0.105106883,0.000237749351,0.185972065,0.102115355,-0.941191912,0.0973184779,0.0206855312,0.149888098 +0.105157211,1.55874205,-0.105157211,0.000285769522,0.182924777,0.10043484,-0.958295703,0.0934228748,0.0206951089,0.149977922 +0.24584204,1.55897593,-0.24584204,9.97091993e-05,0.176897287,0.106049143,-1.1746937,0.0849068612,0.0207125414,0.347976416 +0.15372318,1.55912662,-0.15372318,0.000291264238,0.185320124,0.0989082679,-1.04742026,0.116028853,0.0206925534,0.217645288 +0.204333037,1.55937719,-0.204333037,0.000364455191,0.180691078,0.0995711684,-1.12114465,0.112121001,0.020697996,0.289175749 +-0.18886444,1.55940533,0.18886444,0.00045167908,0.182393223,0.0985596552,-1.10306549,0.113593444,0.0207021516,0.26749593 +0.177609921,1.56110179,-0.177609921,0.000354438002,0.184156567,0.0982713774,-1.08623004,0.118954048,0.0206882283,0.251388907 +-0.367624342,1.561234,0.367624342,0.000573726953,0.170335874,0.132476091,-1.22323763,-0.149457112,0.0207115877,0.520635247 +0.123308815,1.56133008,-0.123308815,0.000167008751,0.184315667,0.0994794518,-1.00004292,0.105673514,0.0206925645,0.174476221 +0.252271026,1.56191957,-0.252271026,0.000391925918,0.177193403,0.106654577,-1.17973399,0.0743606463,0.0207094904,0.356878102 +0.471796989,1.56237102,-0.471797019,0.000881346932,0.168625325,0.123232357,-0.929842234,-0.500755787,0.0209265929,0.66726768 +0.986413062,1.56431866,-0.986413062,0.00110369746,0.165118963,0.0853056088,0.292630315,-0.465414196,0.0209321827,1.39509511 +0.384145409,1.56484509,-0.384145409,0.000874624879,0.170102,0.132510722,-1.18843734,-0.2316854,0.0208698418,0.543970048 +-0.419451207,1.56556416,0.419451207,0.000396298128,0.169834584,0.134502679,-1.13979363,-0.347906381,0.0206885077,0.593351543 +0.68905592,1.56690574,-0.68905592,0.00226506824,0.171519727,0.0851793885,-0.251303792,-0.528375447,0.0207975265,0.974914908 +-1.03180206,1.56732476,1.03180206,0.00124658865,0.153431445,0.0812036544,0.28624624,-0.32851094,0.0207979977,1.45932949 +0.132902503,1.56759202,-0.132902503,0.000165800084,0.185743123,0.0995541364,-1.02159166,0.101676837,0.0206868313,0.188355982 +0.299204379,1.56769252,-0.299204379,0.000529764802,0.174265817,0.118402824,-1.21287274,-0.0136861671,0.0207506344,0.423157483 +-0.500563264,1.56821597,0.500563264,0.000826943025,0.168765455,0.116753668,-0.77410996,-0.536034107,0.020725308,0.708073616 +0.232026324,1.56832981,-0.232026339,0.00025030211,0.179362893,0.102600098,-1.16271389,0.081476301,0.0206919964,0.328440964 +-0.127645582,1.56860137,0.127645597,0.000194885681,0.18703568,0.100495495,-1.00041902,0.0979703665,0.0206794646,0.180788696 +-0.150319695,1.56889927,0.150319695,0.000392790913,0.187150016,0.0991224498,-1.04120982,0.104043141,0.0206820965,0.212948561 +0.226058945,1.56938386,-0.226058945,0.000241501068,0.180267632,0.100548632,-1.14254618,0.0806960464,0.0206884146,0.32013008 +0.346515238,1.56952608,-0.346515268,0.00083150249,0.172616452,0.127091274,-1.18828392,-0.122727171,0.0208216161,0.490127057 +0.169082254,1.56981313,-0.169082254,0.000299956475,0.185744151,0.0983364433,-1.0682106,0.0981130898,0.0206820797,0.239747852 +0.14567174,1.57025373,-0.14567174,0.000174230023,0.186638832,0.0991810635,-1.03776574,0.0933826342,0.0206841845,0.206503585 +-0.214013264,1.57097316,0.214013278,0.000463678036,0.180794865,0.0989085063,-1.13324904,0.0828643516,0.0206929874,0.3027668 +-1.05753851,1.57103264,1.05753851,0.000969216926,0.167675406,0.0950716808,0.275532097,-0.241629273,0.0207906365,1.49572945 +-0.132849962,1.57105494,0.132849962,0.000229638768,0.187330917,0.100219868,-1.01383328,0.0960632935,0.0206784625,0.188362285 +-1.07639647,1.57280672,1.07639658,0.00032161086,0.31047982,0.205568612,0.213716105,-0.197231978,0.0207719877,1.52240062 +0.307011634,1.57299507,-0.307011664,0.000786388002,0.174705848,0.119875863,-1.20445037,-0.0461909547,0.020754002,0.434224218 +0.352790803,1.57300746,-0.352790803,0.000201159302,0.173091844,0.127268523,-1.17044318,-0.148258284,0.0208244827,0.499061823 +-0.327021778,1.57319188,0.327021778,0.000476837246,0.174532324,0.123092741,-1.19550312,-0.0884424299,0.0206720848,0.462505788 +-0.421041667,1.57331252,0.421041638,0.000195922155,0.171078041,0.130210862,-1.06666291,-0.340646774,0.0206852388,0.595731854 +-0.416132629,1.57349575,0.416132629,0.000254185259,0.171198219,0.130233377,-1.086393,-0.316959709,0.0206823852,0.588739634 +-0.99984467,1.57355094,0.99984467,0.00108632329,0.162310094,0.0847049728,0.323486,-0.415363729,0.0207916275,1.41437364 +-0.108732797,1.57363725,0.10873279,0.00014951441,0.187576368,0.102778658,-0.969871044,0.0853254199,0.0206738561,0.153874084 +1.20727563,1.57389212,-1.20727563,0.000255358405,0.0757296532,0.0465388298,1.2747823,0.053852208,0.0208849516,1.70737243 +-0.210169896,1.5740062,0.210169896,0.000162356897,0.181742921,0.0978842154,-1.12149763,0.0752534643,0.0206900239,0.29746601 +0.356304795,1.57434702,-0.356304795,0.000471286185,0.173274904,0.127083495,-1.16241705,-0.161455572,0.0208258778,0.504024386 +0.465119809,1.57435989,-0.465119779,0.000193203014,0.169962153,0.121960387,-0.895955741,-0.444226414,0.0209093709,0.657962441 +-0.0797511339,1.57524955,0.0797511339,0.000153896981,0.208066344,0.128938586,-0.847636938,0.0651943609,0.0206727795,0.11288888 +-0.070642516,1.5752629,0.070642516,6.77928911e-05,0.307572752,0.233656794,-0.729732513,0.0528482907,0.0206729081,0.0999950692 +-0.324447751,1.57527041,0.324447751,0.000156808528,0.175075874,0.121595047,-1.17925441,-0.0863580629,0.0206671804,0.458892077 +-0.0914682299,1.57531977,0.0914682299,0.000191067389,0.190847844,0.109612033,-0.920985281,0.0720213801,0.0206725448,0.129475385 +0.0706416294,1.57532954,-0.0706416294,6.78989018e-05,0.305497289,0.232277349,-0.747060657,0.0541535169,0.0206791349,0.0999956727 +0.0797612593,1.57533145,-0.0797612593,0.000154172478,0.206034049,0.127856031,-0.86706686,0.0637992695,0.0206808988,0.112904705 +0.664874196,1.57540596,-0.664874196,0.00106014137,0.168027639,0.0852031037,-0.327946484,-0.45131892,0.0207998026,0.940424263 +-0.106615067,1.57541502,0.106615059,0.000161858363,0.187756181,0.103070095,-0.966551423,0.081457071,0.0206722729,0.150917292 +0.091491133,1.57541752,-0.091491133,0.000191608196,0.188288674,0.108242683,-0.94102931,0.0692572519,0.020681724,0.129508674 +0.106667921,1.57555497,-0.106667913,0.000199991526,0.185399503,0.101993926,-0.983567059,0.0772781745,0.0206814818,0.150991783 +1.20492351,1.57580745,-1.20492351,0.000130394226,0.0775094405,0.0479875654,1.22284079,0.0601416714,0.0208818763,1.70406651 +1.2006793,1.57581699,-1.20067918,0.000138412608,0.0844567418,0.0610445701,1.07470167,0.0628317595,0.0208763871,1.69806528 +1.19711876,1.57593894,-1.19711876,5.99062441e-05,0.172487587,0.173080355,0.957855344,0.0638519153,0.020870151,1.69303 +-0.254101425,1.57620406,0.254101425,0.000365470507,0.176892355,0.104141466,-1.13155103,0.00715734577,0.0206908248,0.35936442 +0.304810107,1.57642424,-0.304810107,1.7726421e-05,0.175529808,0.117842086,-1.18579125,-0.0510267913,0.0207420439,0.431144983 +-1.20486414,1.57668686,1.20486414,0.000231160826,0.0871961266,0.053257864,1.21810484,0.0493155234,0.0208414849,1.70394433 +-1.20012069,1.57687736,1.20012069,0.000143761921,0.0887497067,0.0615655966,1.03015423,0.0549905673,0.0208350644,1.69723594 +-1.19616699,1.5770421,1.19616699,6.22025545e-05,0.173498124,0.170983091,0.870614231,0.0581958964,0.0208250042,1.69164443 +-0.253421634,1.57716084,0.253421634,0.000182475662,0.177123725,0.103780881,-1.12806678,0.0042490745,0.0206891019,0.358413458 +-0.254158348,1.57753873,0.254158348,4.15377968e-07,0.177090824,0.103906728,-1.12749827,0.00209583435,0.0206887498,0.359470993 +0.708691657,1.57759643,-0.708691597,0.0030152176,0.171289474,0.0843179598,-0.188297778,-0.541791618,0.0208001342,1.00265074 +0.891008615,1.57790637,-0.891008615,0.00402505277,0.176248237,0.088164486,0.260154337,-0.65319562,0.0208620708,1.26126361 +0.508047819,1.57794285,-0.50804776,0.00113282364,0.169170514,0.113065101,-0.706575394,-0.515131056,0.0208860748,0.719201922 +0.535990298,1.57794285,-0.535990357,0.000319682207,0.169964999,0.108162872,-0.589984596,-0.558096528,0.0208678599,0.758200347 +0.173210993,1.57794285,-0.173210979,9.91105553e-05,0.18652308,0.0984340161,-1.07400858,0.0819964036,0.0206758454,0.245577559 +-0.161162451,1.57794285,0.161162451,0.000264906266,0.187473744,0.0987137482,-1.05930519,0.0848752037,0.0206767675,0.228250295 +-0.151819572,1.57794285,0.151819572,4.31934131e-05,0.188242882,0.0994907543,-1.04679441,0.0881584361,0.0206756238,0.215372279 +-0.515062153,1.57794285,0.515062153,0.000500008115,0.16999355,0.112163134,-0.676452518,-0.528544307,0.0207088161,0.728518486 +-0.07056503,1.57794285,0.07056503,8.63900823e-06,0.306904882,0.232671961,-0.743005395,0.0549438037,0.0206709467,0.0999947041 +0.127966732,1.57794285,-0.127966732,0.000253312552,0.187016875,0.100058377,-1.04709029,0.112461157,0.0206773952,0.181173354 +-0.212518498,1.57794285,0.212518513,0.000440977776,0.18287833,0.0978850424,-1.05188358,0.0520402938,0.0206784792,0.301043361 +-0.276943564,1.57794285,0.276943564,0.00018615734,0.169210345,0.101283588,-1.03385246,-0.0553252548,0.0206636675,0.392032027 +-0.0833431035,1.57794285,0.0833430961,0.00015587706,0.214068502,0.129748955,-0.816726208,0.0707976967,0.0206655134,0.118953362 +0.63601768,1.57794297,-0.63601768,0.000107987777,0.176707312,0.103349522,-0.251478493,-0.640889168,0.0207870286,0.899999976 +0.61721015,1.57794297,-0.61721015,0.000740997377,0.174911171,0.102709793,-0.299732834,-0.621567011,0.0208032448,0.873068333 +0.462359309,1.57794297,-0.462359309,0.000532798003,0.170512855,0.121523067,-0.889427662,-0.434157073,0.020898832,0.654009581 +0.467072397,1.57794297,-0.467072397,3.98802076e-05,0.170377135,0.120717444,-0.873159647,-0.442166328,0.0209001433,0.660754383 +0.549428582,1.57794297,-0.549428582,0.000145483398,0.170481414,0.105783351,-0.530124784,-0.576619029,0.020857418,0.777438343 +0.426427066,1.57794297,-0.426427066,0.0010911437,0.171501368,0.127470106,-1.0174576,-0.366424739,0.0208594389,0.603955805 +0.473813742,1.57794297,-0.473813713,0.000279915286,0.170249283,0.119490296,-0.849877,-0.452713251,0.0208974648,0.670156777 +0.403673649,1.57794297,-0.403673649,0.000298973813,0.172217518,0.128643289,-1.08060193,-0.301849395,0.0208438467,0.571401 +0.351271152,1.57794297,-0.351271152,0.000128522879,0.173983067,0.12551403,-1.14717937,-0.153377995,0.020808693,0.496983528 +0.306675673,1.57794297,-0.306675673,9.21921528e-05,0.175624505,0.117961116,-1.1827873,-0.0574743003,0.020741703,0.433819056 +0.389881909,1.57794297,-0.389881909,0.000310430769,0.172503322,0.129315779,-1.12096119,-0.255389094,0.0208365284,0.551761627 +0.360450476,1.57794297,-0.360450476,7.05109123e-05,0.173819244,0.126245767,-1.14204955,-0.174986258,0.020818321,0.509826481 +0.267101437,1.57794297,-0.267101467,0.000449136918,0.178050816,0.106611051,-1.1550945,0.00918670557,0.0206997432,0.378264129 +0.303281158,1.57794297,-0.303281158,0.000178230039,0.175795451,0.117040232,-1.1831212,-0.0519334413,0.0207369439,0.428980142 +0.227873132,1.57794297,-0.227873132,0.000141278535,0.181193024,0.0996505246,-1.12671077,0.0497983098,0.0206819065,0.322730303 +0.215969205,1.57794297,-0.21596919,0.000212329935,0.182284951,0.0990748107,-1.11346853,0.0592482686,0.0206818953,0.30558899 +0.305169076,1.57794297,-0.305169076,1.21503479e-06,0.175641015,0.11755611,-1.18227935,-0.0557022318,0.0207392275,0.431715816 +0.258390278,1.57794297,-0.258390278,0.000101493148,0.178700581,0.10503453,-1.14935637,0.0164920483,0.0206920467,0.366028339 +0.240228415,1.57794297,-0.240228415,0.000136541348,0.180696324,0.102147691,-1.14344823,0.0429659411,0.020684192,0.339913726 +0.199611813,1.57794297,-0.199611813,0.000302824192,0.183527842,0.0979023129,-1.098261,0.0694065541,0.0206780713,0.282939911 +0.160304874,1.57794297,-0.160304889,0.000167922568,0.187147632,0.0990337357,-1.05818927,0.08138071,0.0206774529,0.226892412 +0.149523973,1.57794297,-0.149523973,8.90956799e-05,0.187667191,0.0994298533,-1.04710019,0.0805100054,0.0206779819,0.212020695 +0.185696959,1.57794297,-0.185696959,0.000141605589,0.185126007,0.0980187878,-1.08694768,0.0773209557,0.0206757579,0.262838364 +0.106656194,1.57794297,-0.106656194,1.51303411e-05,0.18573232,0.102194294,-0.98698014,0.0749815181,0.0206794869,0.151136115 +0.140371978,1.57794297,-0.140371978,9.54429124e-05,0.187297016,0.0998366028,-1.03585482,0.0835916251,0.0206787046,0.198775753 +0.127058059,1.57794297,-0.127058059,0.000129791501,0.186735198,0.10042955,-1.01933122,0.083643496,0.0206792932,0.180509776 +-0.108634323,1.57794297,0.108634323,4.62234602e-05,0.188060999,0.10306485,-0.973882258,0.0798361674,0.0206705425,0.153817549 +-0.106610015,1.57794297,0.106610022,1.49084108e-05,0.188029423,0.103236794,-0.970406234,0.07920672,0.020670332,0.151078418 +-0.131166816,1.57794297,0.131166816,8.81919113e-05,0.188092291,0.100706093,-1.01612341,0.0872978419,0.0206726193,0.186000496 +-0.210688964,1.57794297,0.210688964,1.44914948e-05,0.18210341,0.0976933613,-1.11674309,0.0627667084,0.0206870828,0.298312962 +-0.204583213,1.57794297,0.204583213,0.000206538345,0.182842612,0.0977370143,-1.10881984,0.0650144815,0.0206869338,0.289463043 +-0.140899241,1.57794297,0.140899241,0.000106573876,0.188152954,0.100142963,-1.02985418,0.0869437233,0.0206745565,0.19942227 +-0.21366477,1.57794297,0.21366477,6.24019449e-05,0.181838915,0.0979683399,-1.12127638,0.0616303682,0.0206858367,0.302389532 +-0.248674393,1.57794297,0.248674393,0.000161936608,0.177802756,0.103151903,-1.12656355,0.00960288756,0.0206879023,0.35168308 +-0.253960252,1.57794297,0.253960282,1.10172255e-06,0.17714335,0.10374999,-1.12719464,0.00170299457,0.0206880569,0.359196067 +-0.177512139,1.57794297,0.177512139,0.000399868586,0.185942411,0.0978694558,-1.07742071,0.0752742887,0.0206811931,0.251978248 +-0.291021109,1.57794297,0.291021109,0.000627143832,0.175062194,0.111619227,-1.15170193,-0.0412074998,0.0206693783,0.41231674 +-0.255249172,1.57794297,0.255249172,0.000349780865,0.17708534,0.104060285,-1.1276809,0.000319878221,0.0206879694,0.360993564 +-0.325282574,1.57794297,0.325282574,5.37421965e-06,0.175544173,0.121034533,-1.16818416,-0.0954076052,0.0206599962,0.460117579 +-0.322832167,1.57794297,0.322832167,0.00022306238,0.175538555,0.1203852,-1.16864014,-0.0912645161,0.0206602849,0.456600815 +-0.326890171,1.57794297,0.3268902,0.000121027217,0.175540954,0.121342994,-1.16816676,-0.0978922918,0.020660365,0.462349653 +-0.362665296,1.57794297,0.362665296,0.000365421263,0.174059942,0.127768725,-1.13976824,-0.159069568,0.020657042,0.513516307 +-0.254371494,1.57794297,0.254371494,5.93858676e-05,0.177114293,0.103840813,-1.12713015,0.00115359039,0.0206880998,0.359772921 +-0.418376088,1.57794297,0.418376118,2.31704944e-05,0.171974093,0.12889725,-1.04522336,-0.320158631,0.020684354,0.592007339 +-0.424723923,1.57794297,0.424723923,0.000275617407,0.171695694,0.127855971,-1.02467763,-0.337157816,0.0206898302,0.600818217 +-0.496116728,1.57794297,0.496116757,0.000542275666,0.16990298,0.115228042,-0.750844777,-0.50093466,0.0207145512,0.701788545 +-0.461724579,1.57794297,0.461724579,0.000760212017,0.170293108,0.120921962,-0.891907692,-0.437520325,0.0207032878,0.653809071 +-0.407882243,1.57794297,0.407882243,0.000567570503,0.172375232,0.128747776,-1.07088435,-0.283023357,0.0206789728,0.576947927 +-0.374633521,1.57794297,0.374633551,0.000306651142,0.173600212,0.129111752,-1.12401676,-0.187148511,0.0206583869,0.530839205 +-0.504302979,1.57794297,0.504303038,4.34360154e-05,0.169810385,0.113818675,-0.71569103,-0.511711895,0.0207122117,0.713496327 +-0.573249876,1.57794297,0.573249876,0.00112208293,0.171221644,0.103648685,-0.436832905,-0.585375905,0.0207095221,0.810913086 +-0.590861201,1.57794297,0.590861201,0.00024577271,0.171968013,0.101995841,-0.370136023,-0.594735086,0.0207073968,0.836117744 +-0.635969043,1.57794297,0.635969043,0.000196612033,0.176191285,0.10328234,-0.251206338,-0.631172538,0.0206913687,0.900000036 +-0.61101675,1.57794297,0.61101675,0.000751624058,0.17381835,0.10251423,-0.319732189,-0.611859441,0.0206977613,0.864280283 +0.0914305001,1.57794297,-0.0914305001,2.3976143e-05,0.188761428,0.108584747,-0.946001828,0.0683512315,0.0206795931,0.129560709 +0.0796822459,1.57794297,-0.0796822459,1.91734471e-05,0.20628202,0.12794891,-0.874618828,0.0645752028,0.0206786357,0.112913117 +0.0705660731,1.57794297,-0.0705660731,8.42248119e-06,0.304860413,0.231313035,-0.759955108,0.0561462454,0.0206768867,0.0999953672 +-0.0914090276,1.57794297,0.0914090276,2.4912868e-05,0.191271842,0.10992761,-0.92647016,0.0713047162,0.020670535,0.129534632 +-0.0796712562,1.57794297,0.0796712488,1.97607442e-05,0.208305791,0.129020274,-0.85573256,0.0660986528,0.0206707884,0.112899743 +0.613871455,1.57794297,-0.613871515,0.000793335261,0.162541389,0.0881456956,-0.452173233,-0.352616251,0.0208193101,0.868384719 +0.430967867,1.57794297,-0.430967867,7.78334379e-06,0.151536912,0.108823933,-0.668308914,-0.207752734,0.020862747,0.609597087 +0.432965219,1.57794297,-0.432965219,0.000618247665,0.151711658,0.108808555,-0.666485012,-0.209215164,0.0208640061,0.612366259 +0.54871285,1.57794297,-0.54871285,0.000771853141,0.159247398,0.0974886864,-0.558394551,-0.282338619,0.0208485126,0.776165962 +0.480983257,1.57794297,-0.480983257,0.000928867492,0.155092597,0.112740666,-0.617373168,-0.239108562,0.0208786763,0.681255698 +0.531800866,1.57794297,-0.531800866,0.000135809911,0.158705652,0.100984566,-0.57571137,-0.272325009,0.0208591875,0.752557993 +0.518417954,1.57794297,-0.518417954,0.000420247903,0.157967895,0.105009831,-0.587268353,-0.266137719,0.020868849,0.733415842 +0.428048253,1.57794297,-0.428048283,0.000572839635,0.151423961,0.109232277,-0.673420906,-0.204936162,0.0208607633,0.605402052 +0.199600235,1.57794297,-0.199600235,0.00041697282,0.182285994,0.0956938714,-1.08230495,0.101693615,0.020680448,0.282616585 +0.225314409,1.57794297,-0.225314409,0.000649373396,0.177906752,0.095068112,-1.07469559,0.0767943636,0.0206837002,0.320191085 +0.344731987,1.57794297,-0.344731987,0.000600237807,0.155116975,0.110878706,-0.857712209,-0.110486284,0.0207736865,0.487880766 +0.381356359,1.57794297,-0.381356359,0.000677978212,0.150957048,0.11613816,-0.754692256,-0.163122594,0.0208180938,0.540635586 +0.24554202,1.57794297,-0.24554202,0.000406388659,0.173540592,0.098671563,-1.05052376,0.0501080453,0.0206872206,0.348007023 +0.276494384,1.57794297,-0.276494384,0.000895908102,0.166828334,0.10224779,-1.01099992,0.00195204548,0.0207040664,0.393508732 +0.313689977,1.57794297,-0.313689977,0.000327010814,0.159849226,0.106384203,-0.929038167,-0.0627896041,0.0207457114,0.444080472 +0.330072075,1.57794297,-0.330072075,0.000148869643,0.156710625,0.107054405,-0.894143462,-0.0919712037,0.0207538046,0.467597187 +0.17043297,1.57794297,-0.17043297,0.000295014353,0.186082616,0.0969733745,-1.07921886,0.121905655,0.0206755735,0.241471261 +0.149067789,1.57794297,-0.149067789,0.000296490965,0.187530354,0.0985620767,-1.0709461,0.126309082,0.0206766259,0.212103322 +0.122375697,1.57794297,-0.122375697,1.48532727e-05,0.1869369,0.10037183,-1.04120731,0.109227158,0.0206770916,0.173576877 +0.117227092,1.57794297,-0.117227092,0.000170239102,0.186801195,0.101152942,-1.02971435,0.102681302,0.0206775833,0.166006818 +0.0984364226,1.57794297,-0.0984364226,0.00022296136,0.186553985,0.103532657,-0.992750406,0.084116593,0.0206776951,0.140700161 +-0.185882211,1.57794297,0.185882211,0.000446569116,0.188307911,0.098661691,-1.03904557,0.0805892721,0.0206808615,0.264246464 +-0.251593858,1.57794297,0.251593858,0.000454703812,0.17449832,0.0993587822,-1.04672718,-0.0117603512,0.020673519,0.355959892 +-0.127083316,1.57794297,0.127083316,0.000242447684,0.193803027,0.104051113,-0.969510674,0.115564793,0.0206734817,0.179930568 +-0.148863554,1.57794297,0.148863554,0.000556659652,0.193408549,0.102036647,-1.00318265,0.114240617,0.020677343,0.211657584 +-0.100084953,1.57794297,0.100084953,0.000145020807,0.197095126,0.110410795,-0.91100347,0.094380036,0.02066884,0.142806098 +-0.16427958,1.57794297,0.164279595,0.000334640295,0.191148847,0.100315548,-1.01989841,0.101225466,0.0206771065,0.23387447 +-0.224853545,1.57794297,0.224853545,0.000209237362,0.180124685,0.0974384621,-1.05542088,0.0324459895,0.0206779763,0.319164395 +-0.268842906,1.57794297,0.268842906,9.46358705e-05,0.170755327,0.099788785,-1.04182041,-0.042656377,0.0206663981,0.38085568 +-0.454603523,1.57794297,0.454603493,0.00074481708,0.15367806,0.109581359,-0.724934042,-0.251431257,0.0207238551,0.643570781 +-0.413752556,1.57794297,0.413752586,0.000325490284,0.152831212,0.1246977,-0.782751858,-0.242311999,0.0206976496,0.585315526 +-0.362467647,1.57794297,0.362467647,0.00109837449,0.156787306,0.112313829,-0.892530382,-0.194591597,0.0206698682,0.513584733 +-0.399505615,1.57794297,0.399505615,0.000372836221,0.153653413,0.123305015,-0.810791612,-0.22895129,0.0206897017,0.565063119 +-0.315434158,1.57794297,0.315434158,0.00145321363,0.16224125,0.105753355,-0.983800173,-0.126877606,0.0206612702,0.447419256 +-0.409588575,1.57794297,0.409588575,6.43109888e-05,0.15289101,0.124873295,-0.78891474,-0.239900634,0.0206943732,0.579538167 +-0.548998594,1.57794297,0.548998594,0.000674251467,0.157332748,0.0959511623,-0.580994189,-0.273135334,0.0207476281,0.776871979 +-0.569847465,1.57794297,0.569847465,0.000395740441,0.159664631,0.094432734,-0.552263856,-0.281785369,0.020741459,0.806089997 +-0.590396941,1.57794297,0.590396941,0.000328538066,0.162480325,0.0929837823,-0.515255928,-0.298141807,0.0207372531,0.835573792 +-0.615042627,1.57794297,0.615042627,0.000575329061,0.167108297,0.0918637738,-0.465463102,-0.328358889,0.020730231,0.869995475 +-0.513231635,1.57794297,0.513231635,0.000315881538,0.154567823,0.102327228,-0.640230894,-0.256431401,0.0207428373,0.726310015 +-0.479614556,1.57794297,0.479614556,0.000621233718,0.15407972,0.106130689,-0.690013766,-0.254303992,0.0207427293,0.678496897 +-0.499589145,1.57794297,0.499589175,0.000295157864,0.154188812,0.104813367,-0.658208489,-0.25803709,0.0207476262,0.707286537 +0.0813800246,1.57794297,-0.0813800246,0.000235420972,0.191389471,0.113202006,-0.914145648,0.0794200748,0.0206797458,0.116358742 +0.0685574114,1.57794297,-0.0685574114,0.000105439511,0.242038935,0.168660551,-0.780477643,0.0924215913,0.020684313,0.0980563313 +-0.0707155094,1.57794297,0.0707155094,7.05184138e-05,0.297011375,0.210557148,-0.677251518,0.0714702755,0.0206649508,0.100957371 +0.591809154,1.57794309,-0.591809154,0.000427916704,0.172602788,0.101843365,-0.364711046,-0.601255059,0.0208225343,0.837586403 +0.564717412,1.57794309,-0.564717412,0.000769981882,0.171292126,0.104607493,-0.476608813,-0.5867033,0.0208422411,0.798787892 +0.354082853,1.57794309,-0.354082882,1.23483997e-05,0.173926994,0.125755206,-1.14305294,-0.159104735,0.0208127946,0.500976682 +0.110387459,1.57794309,-0.110387459,0.000101510552,0.185888037,0.101919293,-0.992496729,0.0766222402,0.0206794981,0.156194642 +-0.547111094,1.57794309,0.547111094,0.000998970703,0.170204714,0.106188573,-0.531504154,-0.56074506,0.0207096916,0.774399519 +0.635961235,1.57794309,-0.635961235,0.000369595626,0.164326698,0.0858611166,-0.413404822,-0.3741467,0.0208061654,0.89999944 +0.583178043,1.57794309,-0.583178043,0.000677321921,0.159883946,0.0910012648,-0.508113146,-0.315684587,0.0208269004,0.825500488 +0.182616264,1.57794309,-0.182616264,0.000195041735,0.185239941,0.0960055739,-1.08614731,0.119456984,0.0206752326,0.259260535 +-0.12345019,1.57794309,0.12345019,1.0951504e-05,0.193878666,0.104480237,-0.963645637,0.114602327,0.0206735451,0.175015703 +-0.11818637,1.57794309,0.11818637,0.000140490782,0.194689348,0.105952643,-0.950564384,0.109127201,0.0206724778,0.167305365 +-0.34555158,1.57794309,0.34555161,0.000436870701,0.158622324,0.110299237,-0.929867983,-0.169325173,0.020662399,0.489237964 +-0.635939419,1.57794309,0.635939419,0.00102300523,0.171351537,0.0901309773,-0.424327016,-0.35294956,0.0207230393,0.899956763 +-0.665609002,1.57964635,0.665609002,0.000951966038,0.176077366,0.0890804529,-0.319297135,-0.441007227,0.020724142,0.941332459 +0.42959404,1.57965541,-0.42959407,0.000628122594,0.151654184,0.108332835,-0.668159604,-0.205826953,0.0208603982,0.607642353 +-1.21843433,1.58035779,1.21843433,0.00027042412,0.074377425,0.0441555753,1.57978106,0.0421767235,0.0208362639,1.72325993 +-1.22402787,1.58037114,1.22402787,0.000211270948,0.0591415986,0.0370376818,1.65917754,0.00392815517,0.0208420102,1.73117101 +-1.22868896,1.58038223,1.22868896,9.61589249e-05,0.0489938892,0.0457013287,1.57956338,-0.00405739574,0.0208450016,1.7377634 +1.19738483,1.58046436,-1.19738483,1.4909353e-05,0.184671268,0.186304435,0.994639277,0.0310411472,0.0208600909,1.69341302 +1.20088458,1.58061028,-1.20088446,3.45318185e-05,0.0859553069,0.0626718923,1.1066736,0.0366273336,0.0208670218,1.69836235 +1.20505285,1.58081019,-1.20505285,5.01500326e-05,0.0774376392,0.0482156537,1.2528398,0.047780782,0.0208735075,1.70425594 +0.96313715,1.58176005,-0.963137269,0.000916658726,0.168679059,0.0863924548,0.268401444,-0.50785464,0.0209094286,1.36210132 +-0.122923598,1.58316541,0.122923598,0.000481251045,0.194502026,0.104413293,-0.967580259,0.110617705,0.0206696559,0.174065888 +0.755319953,1.58320713,-0.755319953,0.00612207316,0.173482955,0.0838743672,-0.044916939,-0.615670025,0.0208001435,1.06973231 +0.121596172,1.58381081,-0.121596172,0.000672017457,0.187377483,0.100217201,-1.04661703,0.102907471,0.0206730161,0.172213912 +0.686190844,1.58387136,-0.686190844,0.00123643514,0.169635445,0.0838980004,-0.247106597,-0.497273266,0.0207907371,0.971015096 +0.43166995,1.58589852,-0.43166995,0.00129534013,0.152031273,0.107544877,-0.655011952,-0.203023076,0.020854909,0.610505641 +0.533049107,1.58612216,-0.533049107,0.00093007728,0.159140781,0.0986029133,-0.563445389,-0.266370028,0.020847071,0.754339457 +1.0749054,1.58631659,-1.0749054,0.000273751648,0.282666981,0.181687608,0.0678142533,-0.100434288,0.0209183507,1.5201546 +0.177469581,1.58639824,-0.177469581,0.000687006162,0.186342299,0.0961720496,-1.08595538,0.113919012,0.020669546,0.251918614 +1.1954664,1.58746302,-1.1954664,6.38332131e-05,0.184351355,0.18161653,0.877160192,0.0241376311,0.0208567139,1.69067776 +1.02678907,1.58747494,-1.02678919,0.000817118562,0.161257759,0.0840236098,0.199782073,-0.297997504,0.0209159888,1.45210266 +-0.272468925,1.58751142,0.272468895,0.000728950894,0.17083174,0.0982354432,-1.02715552,-0.0505111143,0.0206579268,0.385626256 +1.07487059,1.58755636,-1.07487059,2.57690299e-05,0.279162824,0.178845108,0.0587437637,-0.0965041071,0.0209171437,1.52011168 +0.338442147,1.58779526,-0.338442147,0.000884737645,0.157114506,0.10505528,-0.861026287,-0.0983991846,0.0207557268,0.479353607 +1.05673683,1.58802748,-1.05673683,0.000791045371,0.18233794,0.10250783,0.161751479,-0.1556817,0.0209181476,1.49445987 +1.19919991,1.58825541,-1.1991998,0.000147369632,0.0899014771,0.06424243,1.01113272,0.0172939617,0.0208629649,1.6959579 +0.233555719,1.58831561,-0.233555719,0.000488331774,0.176983476,0.0939598531,-1.05534732,0.0610659346,0.0206782464,0.332016826 +-1.2078619,1.58880365,1.2078619,0.000221394192,0.0842240453,0.0520496294,1.36021364,0.0287846923,0.0207928866,1.70819402 +1.20367777,1.5890497,-1.20367765,0.000209508682,0.0787625909,0.0484434702,1.18873155,0.0226355027,0.0208693817,1.7022897 +0.641826391,1.58927214,-0.641826332,0.00160481769,0.164449036,0.0845951363,-0.385973722,-0.375222713,0.0207955539,0.908384442 +1.21075845,1.58940482,-1.21075845,0.000187822836,0.0730745718,0.0440914445,1.37376595,0.0172761083,0.020870911,1.71227837 +1.0566746,1.5895319,-1.05667448,7.37726659e-05,0.181932941,0.102039985,0.15476656,-0.151731178,0.020916786,1.49437785 +-0.260366559,1.58957827,0.260366559,0.00103741791,0.173795372,0.0994923338,-1.03217208,-0.0350240096,0.0206631869,0.368644148 +-1.19729662,1.58986735,1.19729674,2.82337205e-05,0.200731769,0.201220647,1.00249481,-0.0114747314,0.0207535718,1.69328105 +1.07559121,1.5900439,-1.07559121,0.000277181127,0.270327032,0.172201142,0.0460190922,-0.0984494761,0.0209144261,1.52112031 +1.03190899,1.59009528,-1.03190899,0.000818204135,0.160654128,0.0838215724,0.188859314,-0.278830051,0.0209143199,1.45934892 +-1.20113707,1.59050322,1.20113707,6.57640485e-05,0.0899914876,0.0641626716,1.14035559,-0.00207989314,0.0207692869,1.69871259 +0.629251659,1.59066248,-0.629251659,0.00208431482,0.163601711,0.0845848545,-0.404687524,-0.360928416,0.020798197,0.890567124 +-1.20574582,1.59126627,1.2057457,5.69401673e-05,0.0860886127,0.05352569,1.31743371,0.024192879,0.0207821168,1.70523059 +1.03106833,1.59188819,-1.03106833,0.00022254049,0.160789937,0.0837740898,0.184949502,-0.278027356,0.0209125578,1.45816851 +-0.100565836,1.59204507,0.100565836,0.000339401624,0.199366897,0.110322513,-0.926015437,0.0832557231,0.02065867,0.142681256 +-0.958761394,1.59222555,0.958761394,0.001499334,0.173454717,0.0891924128,0.31270504,-0.496174097,0.0207682364,1.35599184 +1.03178811,1.5923351,-1.03178823,0.000215186796,0.160655066,0.0836989433,0.182732746,-0.275216937,0.0209121853,1.459185 +1.05750787,1.59255636,-1.05750787,0.000799767033,0.179455459,0.100155503,0.14052856,-0.151107684,0.0209136419,1.49554646 +-0.0838381797,1.5929631,0.0838381797,0.000273510028,0.217040688,0.129875749,-0.837021828,0.0614909753,0.0206551962,0.118942 +-0.62555182,1.59385991,0.62555182,0.0011592597,0.169271529,0.0882804841,-0.423007637,-0.331894279,0.0207165498,0.885131001 +-0.0711360797,1.59395409,0.0711360797,0.000117899428,0.301539391,0.213515252,-0.687045634,0.0599744841,0.0206539836,0.100911155 +0.321097732,1.59405255,-0.321097702,0.00124648586,0.159763783,0.102999993,-0.894575119,-0.0781861022,0.0207383782,0.454438329 +-1.07541072,1.59407735,1.07541072,0.000285534974,0.258799523,0.162123471,0.0631389767,-0.0947168171,0.0207691267,1.5210613 +-0.974772215,1.59537578,0.974772274,0.00122038834,0.169168562,0.0873024985,0.299661428,-0.453554541,0.0207714215,1.37863111 +0.950795531,1.59658039,-0.950795591,0.000943982915,0.17051734,0.0866119787,0.238483995,-0.521719515,0.0208897442,1.34474492 +1.03297937,1.5967629,-1.03297937,0.00082328252,0.159743488,0.0829379708,0.168048501,-0.272111118,0.0209079478,1.46085858 +-1.19536483,1.59696436,1.19536483,7.0305432e-05,0.204629585,0.200185835,0.86905539,-0.0185243078,0.0207447745,1.69051862 +1.21809053,1.59705675,-1.21809053,0.000220311893,0.0678741634,0.039144922,1.52778697,-0.0189796817,0.0208705459,1.72269535 +-0.462048441,1.59705687,0.462048411,0.00151484634,0.155148238,0.103455164,-0.690721869,-0.245239049,0.0207130704,0.653934896 +-1.20815217,1.59705925,1.20815217,0.000194410532,0.0834725648,0.0512272008,1.36663353,0.00936800055,0.0207812395,1.70859909 +-0.410202891,1.59709454,0.410202861,0.000750229927,0.155044988,0.118355297,-0.764851749,-0.231312335,0.0206717681,0.58015275 +-0.548242927,1.59754574,0.548242927,0.0011869173,0.1579438,0.0927500874,-0.559371114,-0.262098342,0.0207290612,0.775873065 +-0.511168599,1.59775901,0.51116854,0.00115317723,0.155085087,0.100212999,-0.620524049,-0.244667545,0.0207238887,0.723463535 +-1.19944131,1.59834874,1.19944131,0.000165314006,0.0928913206,0.0649183169,1.02905273,-0.0218457505,0.0207610279,1.69628394 +0.0989927202,1.59909749,-0.0989927202,0.000324313645,0.188925594,0.102983415,-1.01613605,0.0601835921,0.0206615441,0.140199319 +-1.05680275,1.59920633,1.05680275,0.000893082353,0.170671567,0.0937818512,0.153909326,-0.146637037,0.0207744949,1.49474311 +1.22356379,1.59961486,-1.22356379,0.000188046484,0.0568755716,0.034135174,1.61977708,-0.0213075858,0.0208715461,1.73042274 +1.22883344,1.59962332,-1.22883344,9.21902247e-05,0.0472110435,0.043257717,1.55867636,-0.0145191988,0.0208730325,1.7378751 +-0.299794912,1.59991789,0.299794912,0.00131910131,0.166935921,0.100154273,-0.975393534,-0.105852336,0.0206484254,0.424990952 +-1.20433354,1.60001063,1.20433354,0.000177876092,0.0859945193,0.0528462641,1.24224281,-0.00338955782,0.020774655,1.70320272 +0.0819793567,1.60024011,-0.0819793493,0.000281314919,0.196275979,0.114417009,-0.936010838,0.0481071509,0.0206602775,0.116073363 +-0.217456594,1.60066104,0.217456579,0.000888198498,0.184263125,0.0968139097,-1.03839445,0.0306437798,0.0206609461,0.307821155 +0.471075922,1.60115933,-0.471075922,0.00204185373,0.156310305,0.103593305,-0.581124604,-0.221954167,0.0208339561,0.668240428 +0.944420159,1.6012727,-0.944420159,0.00173015357,0.170689836,0.0864230543,0.224992156,-0.52491945,0.0208829325,1.33568645 +0.957370818,1.60127425,-0.957370818,0.000559232838,0.169506043,0.0861222893,0.223807663,-0.497721821,0.0208895784,1.35402322 +0.0690575168,1.60144496,-0.0690575093,0.00012077736,0.270546913,0.188561901,-0.787185848,0.0503415987,0.020658873,0.0977462977 +-1.02092421,1.60165286,1.02092421,0.00126312498,0.159306154,0.0824746192,0.219152763,-0.302715003,0.0207746159,1.44405699 +0.260858953,1.60196698,-0.260858953,0.000789091398,0.172774523,0.0972112492,-1.01347589,0.016347874,0.0206768289,0.369915843 +0.52150023,1.60211158,-0.52150023,0.0011489325,0.159367546,0.0961117819,-0.547848225,-0.247514576,0.0208359249,0.737627506 +0.225918218,1.6023519,-0.225918204,0.00064262352,0.17989926,0.0945244357,-1.05557525,0.0604179054,0.0206708834,0.320807755 +-0.967082202,1.6028235,0.967082262,0.000598242856,0.171463996,0.0880890489,0.289114475,-0.463687688,0.0207642,1.36782622 +-0.710243821,1.60325944,0.710243821,0.00318237161,0.1790286,0.0879723951,-0.186770037,-0.487663329,0.0207282733,1.00563157 +1.21780586,1.60362899,-1.21780586,5.90167911e-05,0.0677540451,0.0390003882,1.53143835,-0.0324240066,0.0208636746,1.72231889 +-0.0708129704,1.60421824,0.0708129704,0.000103492508,0.302545667,0.214014754,-0.696840942,0.0555276722,0.0206472315,0.100867212 +-0.0834414363,1.60425878,0.0834414363,0.000256896368,0.218105718,0.129012302,-0.854885936,0.0558263473,0.0206476767,0.118918695 +-0.0999832153,1.60428739,0.0999832153,0.00019791814,0.200753063,0.109713942,-0.941307902,0.0753014311,0.0206501149,0.142558753 +0.0689423233,1.60436368,-0.0689423233,2.65057679e-05,0.273463994,0.190594286,-0.788785815,0.0460439473,0.0206558146,0.0977091789 +0.0817909464,1.60451293,-0.0817909464,8.10070123e-05,0.197188675,0.114605993,-0.941528201,0.043143373,0.0206565317,0.116023302 +0.0986673981,1.6046648,-0.0986673906,6.37282428e-05,0.189483523,0.102751397,-1.02316701,0.0544922724,0.0206571538,0.14007692 +1.22346914,1.60478914,-1.22346914,7.52465494e-05,0.0568081439,0.0338430963,1.62590325,-0.0258655176,0.0208663419,1.73030889 +1.2288121,1.60480559,-1.2288121,3.49260772e-05,0.0469546802,0.0429655723,1.56446075,-0.0168970246,0.020867845,1.73786533 +1.2150737,1.6049931,-1.2150737,0.000264267059,0.0705077797,0.0410606824,1.47112167,-0.0387363173,0.0208601858,1.71841645 +0.102009445,1.60533869,-0.102009445,0.000332904747,0.189540774,0.102253802,-1.03053963,0.058346305,0.0206567086,0.14448981 +-0.356151521,1.60538173,0.356151521,0.00149795436,0.159654289,0.10603255,-0.871000946,-0.180289298,0.0206325334,0.504155874 +-0.106848188,1.60560679,0.106848188,0.000383427483,0.199906379,0.108048588,-0.956249118,0.0812092274,0.0206501167,0.151750192 +-0.193227679,1.60609567,0.193227679,0.000496160006,0.189701632,0.0985880494,-1.03220558,0.0556387976,0.0206587594,0.273388684 +-0.987249136,1.6065551,0.987249136,0.000726344355,0.167066216,0.0859774649,0.252509177,-0.396334738,0.0207653474,1.39624381 +0.0689997226,1.60667515,-0.0689997301,0.000121365309,0.273737073,0.190666601,-0.793103039,0.0453963019,0.0206539836,0.0976910144 +-0.495863855,1.60672188,0.495863855,0.00125854381,0.155777782,0.0998209938,-0.628326952,-0.242689908,0.0207100436,0.701711118 +0.192944705,1.60673368,-0.192944705,0.000751412706,0.186176166,0.0950229988,-1.07036066,0.0910986438,0.0206600316,0.273141623 +-1.21732366,1.60714126,1.21732366,0.000203738717,0.0739439502,0.0431645215,1.55790794,-0.0195936263,0.0207925402,1.72165108 +-1.22356915,1.60719347,1.22356915,0.000169605759,0.0596274883,0.0358438157,1.66499186,-0.0175858289,0.02079756,1.73048377 +1.00101876,1.60720527,-1.00101876,0.001579048,0.162690058,0.0828265399,0.17110166,-0.365628421,0.0208961163,1.41613817 +-1.22877276,1.60723698,1.22877276,7.72901985e-05,0.0486523136,0.0449695401,1.6004895,-0.0138419829,0.0207999405,1.73784328 +0.953042746,1.60743046,-0.953042746,0.00103979104,0.170057327,0.0861836746,0.21155788,-0.500665903,0.0208814796,1.34788644 +0.147091642,1.60756421,-0.147091642,0.000455827394,0.189290553,0.0976065919,-1.08629429,0.0983706564,0.0206569415,0.208143353 +0.0818999112,1.60787678,-0.0818999186,0.000279885397,0.197333038,0.114569493,-0.94626379,0.0417467616,0.0206539482,0.116006121 +-0.583546162,1.60878408,0.583546162,0.00099187484,0.161614314,0.0884293318,-0.490674436,-0.277266085,0.0207199194,0.825458527 +0.0988416076,1.60902858,-0.0988416076,0.000311391923,0.189717993,0.10280738,-1.02711785,0.0519770943,0.0206539389,0.140055135 +-1.02846086,1.60911465,1.02846086,0.00111003348,0.157351196,0.0812289044,0.183525681,-0.259731233,0.020771198,1.45462716 +-0.171395302,1.61003065,0.171395302,0.000427893974,0.194073513,0.0996714383,-1.0157398,0.0750142336,0.0206568129,0.242667973 +-0.97196579,1.61055219,0.97196579,0.000649490918,0.170427278,0.0873281732,0.265545219,-0.440660805,0.020759996,1.37470794 +-0.141059846,1.61116266,0.141059846,0.000518947607,0.196523964,0.102033623,-1.0022366,0.0926974416,0.0206521023,0.199605256 +0.142762572,1.61172307,-0.142762586,0.000390606059,0.189547792,0.0976993218,-1.08610988,0.0917232484,0.020653842,0.202055261 +-1.08075047,1.61173296,1.08075035,0.000278244639,0.192036152,0.11486429,-0.0303492658,-0.098915644,0.0207560658,1.52854002 +0.378426254,1.61246729,-0.378426254,0.00152419496,0.154065445,0.107287735,-0.71517545,-0.147173658,0.0207651071,0.5361256 +-0.966248453,1.61247206,0.966248453,0.000348491012,0.171446875,0.0878190845,0.266655684,-0.452052891,0.020757651,1.36675131 +0.297819406,1.61251116,-0.297819406,0.000998765812,0.165626287,0.0929143578,-0.925084651,-0.0405363105,0.0206944086,0.423116744 +0.147452399,1.61251378,-0.147452414,0.000478484202,0.189622551,0.0973916426,-1.08894372,0.0940434113,0.0206536055,0.208782911 +-0.178859085,1.61266279,0.178859085,0.000540830428,0.193304926,0.0988336951,-1.02285886,0.067055501,0.0206550416,0.253304601 +0.145210803,1.61379445,-0.145210803,6.1800296e-05,0.189652398,0.0975337029,-1.08874798,0.0921068639,0.0206524897,0.205664113 +-0.138369277,1.61414647,0.138369262,0.000281063607,0.196936727,0.102267824,-1.00078416,0.0898042545,0.0206498932,0.195812136 +1.01407957,1.61460042,-1.01407957,0.000690700894,0.160321355,0.0815731063,0.133116961,-0.315259755,0.0208900254,1.43457329 +-0.945236862,1.61460948,0.945236802,0.00148268696,0.173688948,0.0883942097,0.260438979,-0.485998929,0.0207536146,1.33681476 +-0.141420677,1.61506462,0.141420677,0.000171706692,0.196828336,0.101934008,-1.00330293,0.0895111263,0.0206495821,0.200206921 +-0.42634052,1.61542141,0.42634052,0.00129053765,0.157568395,0.0984860361,-0.720074594,-0.225147024,0.0206595268,0.603069305 +-0.0711478144,1.61654902,0.0711478144,0.000118136537,0.302337229,0.213674664,-0.705291986,0.0551302359,0.0206390489,0.100842431 +-0.139766067,1.61681247,0.139766067,0.000323919056,0.197008684,0.102134384,-1.00234652,0.0886031613,0.0206483044,0.197830707 +0.692794979,1.61731303,-0.692794979,0.00177446334,0.167709932,0.0824002028,-0.210631937,-0.450527191,0.0207763631,0.979986787 +0.145460442,1.61737299,-0.145460442,0.000404083694,0.189732939,0.0974730626,-1.08955467,0.0900323987,0.0206501987,0.205906525 +-0.813696265,1.61742389,0.813696265,0.00390353845,0.180745766,0.088358134,0.0812122375,-0.578190386,0.0207336228,1.15137661 +1.22279096,1.61769664,-1.22279096,0.000239962275,0.0568900332,0.0332763903,1.59101987,-0.0343996435,0.0208630338,1.72930264 +1.22884035,1.61770248,-1.22884035,0.000111290014,0.0474827103,0.0426182374,1.54038048,-0.0203111842,0.0208644029,1.73785782 +-0.0838868469,1.61778677,0.0838868469,0.000272537669,0.218543798,0.129221782,-0.864765286,0.0542826429,0.0206385925,0.118900433 +-0.175749704,1.61890924,0.175749704,0.00026397279,0.194491878,0.0991444737,-1.01976943,0.0656040609,0.0206515435,0.249055803 +-0.100548521,1.61891985,0.100548521,0.000280592823,0.201298237,0.110071711,-0.95002377,0.0712212771,0.0206399634,0.142514259 +-0.567290545,1.61911488,0.567290545,0.000599666208,0.159936026,0.0887006149,-0.498767853,-0.267104149,0.0207188744,0.802734792 +0.501494765,1.61924732,-0.501494825,0.00127958483,0.15865545,0.0965800807,-0.53774488,-0.218288109,0.0208184067,0.70969367 +-0.824622393,1.61942089,0.824622333,0.000603020831,0.180692196,0.0885316133,0.114032708,-0.581326008,0.0207325853,1.16736567 +1.21571255,1.61969221,-1.21571243,0.000275606988,0.0676985234,0.0384690873,1.45885754,-0.061209172,0.0208593421,1.71929693 +-0.333004653,1.61988759,0.333004653,0.001408173,0.163654566,0.09695068,-0.891364634,-0.145564407,0.020615669,0.472121596 +-0.841539383,1.61990905,0.841539383,0.00218706718,0.180250779,0.0889489502,0.147102281,-0.577907562,0.0207348783,1.19088984 +-0.907902896,1.62064683,0.907902896,0.00385678723,0.17787084,0.0894290209,0.246406585,-0.540437043,0.0207434688,1.28450263 +-0.6424281,1.62136757,0.6424281,0.00130104285,0.170145527,0.0861851871,-0.353316545,-0.335988879,0.02071077,0.908611953 +0.902106762,1.62147939,-0.902106702,0.00330447592,0.172469676,0.0860931948,0.177558154,-0.569093227,0.0208411254,1.2763381 +-0.18528825,1.62172472,0.18528825,0.000418383599,0.192946315,0.0980564207,-1.01778293,0.0550402477,0.0206474159,0.262360036 +-1.06367159,1.62191808,1.06367159,0.000815786887,0.151583374,0.0798730478,0.0420837887,-0.131604955,0.0207589064,1.50438571 +0.580480158,1.62204528,-0.580480218,0.00153854163,0.160198927,0.0859614089,-0.452993572,-0.272002727,0.0207953453,0.821128905 +-0.178683624,1.62234569,0.178683624,4.86851022e-05,0.194413051,0.0989207476,-1.01856959,0.0608278997,0.0206494592,0.253448397 +-1.21619391,1.62235975,1.21619403,0.000282342546,0.0738238841,0.0427049287,1.52868438,-0.0533015355,0.0207762439,1.72009778 +-0.76185894,1.6224215,0.76185894,0.00272466987,0.180835754,0.0878997371,-0.0417992957,-0.539907753,0.0207233578,1.07892227 +-1.22298598,1.62261117,1.22298598,0.000287846342,0.0602746978,0.03535055,1.65145016,-0.0303391181,0.0207801387,1.72970366 +-0.145096079,1.62265992,0.145096093,0.000456792768,0.197349265,0.101997167,-1.00074208,0.0823452547,0.0206449497,0.205253437 +-1.22874761,1.62269557,1.22874761,0.000131791516,0.0490558073,0.044783514,1.59986377,-0.0189449992,0.0207817033,1.73785257 +1.18860233,1.62304389,-1.18860233,0.000105506886,0.239660665,0.215191424,0.513234377,-0.120009392,0.0208239984,1.68112373 +0.250772774,1.62310469,-0.250772804,0.000925272063,0.17688112,0.0900133625,-1.007254,0.0189918187,0.0206620023,0.356951594 +0.168976426,1.62318707,-0.168976426,0.00109634316,0.189686447,0.0960825384,-1.08210158,0.0870583653,0.0206469558,0.241804242 +0.277285576,1.62358046,-0.277285576,0.00122058927,0.171334147,0.0897077471,-0.953442216,-0.0146789122,0.0206728745,0.392914236 +-1.21135581,1.62476611,1.21135581,0.000333936507,0.076843828,0.0444131941,1.35574281,-0.0711700171,0.0207696594,1.71324325 +-0.118756816,1.62561214,0.118756808,0.00050618581,0.198160857,0.104509227,-0.988640904,0.0833244994,0.0206387434,0.168485209 +1.08481812,1.62647414,-1.08481812,0.000343463471,0.144911706,0.0832884684,-0.150213659,-0.116347574,0.0208752416,1.53430867 +1.19320488,1.62656331,-1.19320488,0.000245027535,0.113858417,0.0759593546,0.720367551,-0.144314259,0.0208292101,1.68763375 +0.982980072,1.62722898,-0.982980072,0.00109132216,0.165091842,0.0833257139,0.134645998,-0.386381328,0.0208685752,1.39054298 +-0.732254386,1.62737346,0.732254386,0.00225924933,0.178141803,0.0870275497,-0.129041091,-0.480296254,0.0207216498,1.0364573 +-0.404690027,1.627882,0.404690027,0.000964166946,0.159203589,0.0949765071,-0.741117716,-0.214040488,0.020630775,0.57284677 +-0.275469929,1.62880456,0.275469929,0.00222471217,0.173740447,0.0909526423,-0.971161246,-0.0707370192,0.0206150543,0.391124547 +-0.213530362,1.62963462,0.213530362,0.00182254252,0.18811141,0.0950486138,-1.01224732,0.0168644767,0.020639034,0.302757382 +0.20850563,1.62973607,-0.20850563,0.000655504409,0.185728505,0.0941163376,-1.05463934,0.0624170639,0.0206463598,0.296079814 +-0.412036359,1.62985754,0.412036359,0.000211040664,0.159052476,0.0953845978,-0.721038043,-0.218587264,0.0206309836,0.583350003 +-1.18605137,1.6299305,1.18605137,0.000126994681,0.219869643,0.182432324,0.233285993,-0.0459278114,0.0207106937,1.677495 +-0.0707162693,1.63047791,0.0707162693,0.000114897819,0.300972313,0.21244663,-0.720437467,0.0554529205,0.0206298456,0.100796446 +-0.0834343955,1.6305089,0.0834343955,0.000246949523,0.21795851,0.128656715,-0.877164245,0.0530428737,0.0206300225,0.118871517 +-0.100044519,1.63054562,0.100044519,0.000178590824,0.201462924,0.11012277,-0.957906127,0.0672332942,0.0206318349,0.142473429 +-1.08648789,1.63056755,1.08648789,0.000345473585,0.121965021,0.0685537681,-0.131903261,-0.0962480158,0.0207425766,1.53670669 +1.19872797,1.6307857,-1.19872808,0.000533268612,0.0851961374,0.0501654223,1.01729059,-0.117679939,0.0208364744,1.69544542 +0.0681462139,1.63094926,-0.0681462139,0.000224187999,0.278041512,0.192269981,-0.842834949,0.0361473337,0.0206333082,0.0975240692 +0.080999054,1.63106513,-0.080999054,0.00053379836,0.198998243,0.114719205,-0.982189894,0.032534346,0.020634966,0.115908742 +0.504292607,1.63116848,-0.504292548,0.000344020955,0.159753799,0.0902951211,-0.514310837,-0.2148384,0.0208048001,0.714072585 +0.0976141095,1.63119447,-0.0976141095,0.00053189887,0.19066529,0.102919765,-1.04781246,0.0413466133,0.0206365772,0.139725983 +-0.109280311,1.6323539,0.109280311,0.000214199827,0.199994177,0.107526943,-0.973210812,0.0732304826,0.0206324607,0.154804721 +0.833413661,1.63288379,-0.833413661,0.00265701418,0.17146267,0.0839981735,0.098503679,-0.580291152,0.0207982715,1.1790936 +-0.91489929,1.63304079,0.91489923,0.00108077144,0.177859306,0.0894170105,0.220117167,-0.513982117,0.0207366794,1.29427934 +-0.174725607,1.63309729,0.174725607,0.000712116947,0.196096823,0.0999324694,-1.01066947,0.0571460761,0.020641841,0.247233331 +0.118393242,1.63407099,-0.118393235,0.000520681904,0.190127805,0.099562943,-1.08349419,0.0591693185,0.0206368566,0.167459086 +0.665021539,1.63444114,-0.665021539,0.00216528191,0.163323939,0.0803908333,-0.252119064,-0.383972704,0.0207637418,0.943288386 +0.117974751,1.63460469,-0.117974751,0.000257395906,0.19015269,0.0996421278,-1.08307624,0.0582968593,0.0206364579,0.166873276 +-0.899135947,1.63464272,0.899135947,0.00214672717,0.177380264,0.0887594596,0.209764421,-0.521151066,0.0207346547,1.27214098 +0.118508391,1.6346904,-0.118508391,2.79760097e-05,0.190152422,0.0995592326,-1.08390546,0.0588382743,0.0206364244,0.167644933 +-1.19120347,1.63477337,1.19120347,0.000310043077,0.106049202,0.065299809,0.496772289,-0.11135909,0.0207273513,1.68478227 +0.118318431,1.63518989,-0.118318431,0.000159700081,0.190161705,0.0995665044,-1.08406651,0.0584280603,0.0206360761,0.167363912 +0.118698828,1.63519251,-0.118698828,0.000336723198,0.190163568,0.0995388329,-1.08407152,0.058663927,0.0206361152,0.167896584 +1.09012103,1.63530767,-1.09012103,0.000266976509,0.112280712,0.0628502667,-0.1645156,-0.12656419,0.0208652597,1.54184508 +-0.121196672,1.63571656,0.121196672,0.000486109289,0.198535532,0.104337081,-0.992460787,0.0786258876,0.0206322446,0.172124341 +-0.582398295,1.63582838,0.582398295,0.00169259554,0.161740601,0.0837467983,-0.457922876,-0.262039721,0.0207026135,0.824107528 +0.15404278,1.63611174,-0.15404278,0.000270094519,0.190441042,0.0971636772,-1.08372581,0.0769750625,0.0206390396,0.217873767 +0.814817488,1.63635707,-0.814817429,0.0041378364,0.171273559,0.0835222155,0.0520222411,-0.578731239,0.0207884759,1.15264845 +0.333898664,1.63654184,-0.333898664,0.00157972611,0.162211716,0.0877848417,-0.794449627,-0.0873413086,0.0207050182,0.4730573 +0.239395618,1.63656688,-0.239395618,0.000871348893,0.180499241,0.0909551457,-1.01292729,0.022906797,0.0206547175,0.3402915 +-1.04063082,1.63664341,1.04063094,0.00102876569,0.151120648,0.0763542131,0.0735441372,-0.222692892,0.0207519066,1.47179973 +-0.998728752,1.63715875,0.998728633,0.000981091871,0.16454874,0.0834190473,0.15607354,-0.333343923,0.0207469668,1.41242599 +0.510847092,1.6374588,-0.510847092,0.00141016662,0.160097972,0.0891461968,-0.497610956,-0.216349989,0.0208038259,0.723319709 +-0.653188884,1.63747716,0.653188825,0.00162221887,0.170487806,0.084538728,-0.299622655,-0.348655641,0.0207088422,0.924012184 +-0.411373496,1.63777637,0.411373526,0.000894053024,0.159769908,0.090576835,-0.712036431,-0.215003684,0.0206158683,0.582507491 +0.304413825,1.63832712,-0.304413825,0.002030364,0.166988701,0.0882968679,-0.878006995,-0.0559778512,0.020675391,0.431994379 +-0.829716861,1.6387893,0.829716861,0.00418574829,0.179588854,0.088011317,0.0976786986,-0.551888943,0.020722989,1.17421973 +0.197777867,1.63894534,-0.197777867,0.00101811322,0.187878713,0.0942116752,-1.05879569,0.0627298802,0.0206420608,0.280596972 +-0.241514757,1.63909137,0.241514757,0.00129465386,0.182446569,0.0924422219,-0.979358435,-0.0290443711,0.0206253454,0.343616545 +1.06893671,1.63944781,-1.06893671,0.000997426105,0.143418655,0.0730601698,-0.0847988129,-0.131244794,0.0208655503,1.51184916 +-0.3948614,1.63946223,0.3948614,0.00170811615,0.160787165,0.0902777612,-0.746996522,-0.20193994,0.0206111688,0.558676898 +1.17979908,1.63980675,-1.17979896,0.000133635418,0.16791597,0.131573766,0.0978425369,-0.00755286217,0.0208245758,1.66862202 +-0.113903061,1.64010084,0.113903061,0.000295886071,0.199002445,0.105559975,-0.987445891,0.074736692,0.0206285734,0.161981747 +-0.567192137,1.64019215,0.567192137,0.00173365721,0.160640463,0.0837047473,-0.474195808,-0.255852997,0.0206992775,0.802665174 +-0.622449756,1.64057541,0.622449756,0.0017426298,0.166669473,0.0841262266,-0.369763911,-0.30376637,0.0207043737,0.880362511 +-0.100439206,1.64070725,0.100439206,0.000229870944,0.201729715,0.109998114,-0.96411562,0.0653770119,0.020625094,0.142444521 +-1.19759333,1.64097905,1.19759333,0.000586866343,0.0850993469,0.0488903336,0.886140704,-0.134004891,0.0207427666,1.69381618 +-0.807239771,1.64103985,0.807239771,0.00259324792,0.178380206,0.0871423706,0.0574833229,-0.528427184,0.0207207594,1.14219224 +0.543826461,1.64106488,-0.54382652,0.00127688725,0.160156429,0.0863481462,-0.46081835,-0.234639481,0.020791091,0.769224882 +-0.0837977082,1.64161921,0.0837977082,0.000273514685,0.218320578,0.128590867,-0.885858059,0.0520524755,0.0206226334,0.11885196 +1.00567281,1.64191556,-1.00567281,0.00141244859,0.160745874,0.0805553421,0.0821173862,-0.331650198,0.0208615512,1.42265332 +-0.424704641,1.64256859,0.424704641,0.00153893908,0.159461275,0.089675203,-0.687044382,-0.210993528,0.0206194334,0.600887537 +-0.647599697,1.64257514,0.647599697,0.000131517139,0.169668972,0.0842033252,-0.31004265,-0.332519203,0.020706147,0.916324794 +-0.0710520223,1.64263535,0.0710520223,0.000118666314,0.301074982,0.212212503,-0.730163097,0.0552669466,0.0206217505,0.100778922 +-0.529215813,1.64296985,0.529215813,0.00195875997,0.15784578,0.0850479752,-0.536216378,-0.233333081,0.0206840672,0.749743342 +-0.643553138,1.64328456,0.643553138,0.000190944906,0.169294611,0.0841740891,-0.320085913,-0.326353103,0.0207049083,0.910610139 +-1.00928652,1.64375734,1.00928652,0.000312444346,0.162148029,0.0820003748,0.124173261,-0.296158761,0.0207444448,1.42738676 +-1.01172161,1.64395726,1.01172161,0.000213134452,0.161523685,0.0817010254,0.118846208,-0.285277516,0.0207448043,1.43081629 +-1.17405403,1.64410591,1.17405415,0.000147310086,0.132091194,0.099962458,0.065392077,0.0389476232,0.0207189471,1.66043901 +-0.185585812,1.64535189,0.185585827,0.000812130515,0.195100501,0.0992483273,-1.00263691,0.0346409902,0.0206330176,0.262756169 +0.749104738,1.64570832,-0.749104738,0.00411895756,0.168593824,0.0815003812,-0.054338105,-0.492992789,0.0207653083,1.0604558 +-1.07176042,1.64611173,1.0717603,0.00100487634,0.132859111,0.0664472878,-0.0813528523,-0.107573122,0.0207423624,1.5158782 +0.571854472,1.6462605,-0.571854472,0.00120227959,0.160379007,0.0832621381,-0.424869269,-0.249333888,0.0207763333,0.809335947 +1.18511367,1.64632201,-1.18511367,0.000325759989,0.108801395,0.0640235841,0.318340868,-0.0983433723,0.0208275858,1.67613864 +-0.347560912,1.64672351,0.347560912,0.00157013512,0.164227471,0.0887670368,-0.829469323,-0.166068226,0.0205961391,0.493695825 +0.378106743,1.64694905,-0.378106743,0.0032560213,0.157922685,0.0876277164,-0.666773498,-0.135636777,0.0207234081,0.53669095 +0.582769454,1.64738202,-0.582769454,0.00203083432,0.160343543,0.0821369663,-0.412493169,-0.252787292,0.0207693838,0.824725986 +0.209569603,1.64795434,-0.209569618,0.00132835633,0.187093839,0.0934088975,-1.03967297,0.0495033972,0.0206371434,0.297401935 +-0.908710241,1.64822221,0.908710241,0.00175673515,0.177774116,0.089097321,0.193914816,-0.501658618,0.0207258947,1.28540826 +0.934509635,1.64835811,-0.934509635,0.00272244168,0.169994608,0.0851124525,0.118668497,-0.472401142,0.0208320413,1.32222319 +0.82753396,1.64873505,-0.82753396,0.000418020092,0.170251369,0.0832123905,0.0644728318,-0.558554232,0.0207861792,1.17099261 +1.03389978,1.64877939,-1.03389966,0.000959375582,0.151379004,0.0749186575,0.00890233368,-0.26633051,0.0208577104,1.46229982 +-1.00922227,1.64897764,1.00922227,0.00119212724,0.162465647,0.0819934681,0.110915378,-0.290172786,0.0207408406,1.42731977 +0.503974617,1.64898801,-0.503974617,0.0014235198,0.160194814,0.0883349776,-0.487200946,-0.197829232,0.0207932424,0.713300228 +0.846272171,1.64948845,-0.846272171,0.00285944273,0.170024917,0.0834117457,0.0739506409,-0.544239044,0.0207947921,1.19703388 +-1.10239339,1.65027702,1.10239339,0.00025996755,0.0648800731,0.0351113603,-0.118004918,-0.0907511562,0.0207279827,1.55910301 +-1.01575541,1.65060735,1.0157553,0.000768029829,0.159608215,0.0802741721,0.0897423103,-0.273865491,0.020740211,1.43651474 +0.480560064,1.65125763,-0.480560064,0.00120675936,0.158837408,0.0874704421,-0.506034434,-0.184761032,0.020781463,0.679853976 +0.134881228,1.6512922,-0.134881228,0.000881061598,0.190821916,0.0979106873,-1.09431529,0.0626901835,0.0206268076,0.192885488 +1.07549429,1.65171742,-1.07549429,0.000785655167,0.129873976,0.0642450079,-0.124786131,-0.138529509,0.0208520517,1.52116001 +-0.501583457,1.65177727,0.501583457,0.00120970479,0.158623442,0.0861052498,-0.560234487,-0.23156938,0.0206664912,0.710386395 +1.20591033,1.6526494,-1.20591033,0.000380459358,0.0740178376,0.0411636606,1.15330052,-0.137008965,0.0208431538,1.70550275 +1.10396755,1.65309489,-1.10396755,0.000302013475,0.0546534806,0.0291972514,-0.154476494,-0.130001888,0.0208476223,1.56139386 +0.96159184,1.65325797,-0.96159184,0.00192978943,0.16766113,0.0840591565,0.0942593813,-0.417723626,0.0208381433,1.36072683 +-0.658461273,1.65336668,0.658461273,0.00135649508,0.170579672,0.0843059644,-0.281706482,-0.334931672,0.0207007248,0.931313515 +0.815462351,1.65347803,-0.815462291,0.00176377932,0.169712082,0.0828209445,0.0459689721,-0.545717955,0.0207798909,1.15373313 +-0.701489091,1.653543,0.701489091,0.00199602544,0.176069587,0.0861192569,-0.186387956,-0.403529316,0.0207018573,0.992537618 +-0.403144002,1.6536119,0.403144002,0.00161507237,0.161407098,0.089926593,-0.70946455,-0.204295471,0.0205961466,0.570521057 +-0.643358529,1.65365291,0.643358529,0.00283124181,0.169120014,0.0837642476,-0.312301815,-0.314824134,0.0206981804,0.910164535 +-0.47819674,1.65408492,0.47819674,0.00276540313,0.158479542,0.0872932822,-0.592074156,-0.221459821,0.0206437968,0.677306771 +1.19149196,1.65414357,-1.19149196,0.000481400319,0.087332353,0.0478082485,0.664413452,-0.151082546,0.0208337847,1.68515944 +1.21131265,1.65417027,-1.21131277,0.000229881727,0.0676626712,0.0373556986,1.32113338,-0.123797052,0.0208487473,1.71320486 +1.22080791,1.65430248,-1.22080791,0.000308684655,0.0570282638,0.0313419178,1.5022105,-0.058347173,0.0208524466,1.7266345 +1.22871995,1.65441275,-1.22871995,0.000141633136,0.0487234257,0.0412510745,1.48076725,-0.030364681,0.0208533891,1.7378248 +-1.17975187,1.6549201,1.17975187,0.000358201592,0.0914559662,0.0512392037,0.231931254,-0.0539593697,0.0207296088,1.66849732 +-1.10662234,1.65544009,1.10662246,0.000106039268,0.0505746529,0.0270629339,-0.115134627,-0.0872093365,0.0207244996,1.56510997 +-0.136282519,1.65567732,0.136282519,0.000681883947,0.200165018,0.103719167,-0.994994521,0.0651605353,0.0206215139,0.193917245 +1.16306448,1.65579021,-1.16306448,0.000158385577,0.0714936778,0.0484945923,-0.059292309,0.0393626988,0.0208329484,1.64487243 +0.0688094422,1.65586293,-0.0688094497,0.000123244463,0.280764252,0.193290934,-0.870105267,0.0324420296,0.0206150338,0.0973974615 +-0.0706189871,1.6568594,0.0706189871,0.000135575741,0.2995359,0.210758656,-0.749072552,0.0561805032,0.0206125434,0.10073746 +-0.0832510442,1.65688181,0.0832510442,0.000329858944,0.217163891,0.127311721,-0.901850343,0.0505967252,0.0206127055,0.118805043 +-0.0997368842,1.65692449,0.0997368842,0.000487419718,0.201759428,0.109386176,-0.975563526,0.0614148825,0.0206145756,0.142379701 +0.0819001272,1.65708387,-0.0819001272,0.000246514042,0.200262427,0.114671692,-1.00569618,0.025158871,0.0206162725,0.11586614 +1.04726338,1.65715075,-1.04726326,0.000948774803,0.148504853,0.0732458159,-0.0370345116,-0.21937266,0.0208502524,1.48119879 +-1.16293025,1.65729487,1.16293025,0.000218965404,0.0528319925,0.0348135158,-0.095593445,0.114500016,0.0207263362,1.64478862 +0.0989910439,1.65741313,-0.0989910513,0.000230856414,0.192068547,0.103159115,-1.06601703,0.0256566443,0.0206183996,0.14001739 +-1.1116519,1.65745807,1.1116519,0.000280424632,0.0461463742,0.0248827152,-0.10952346,-0.0697828755,0.0207243674,1.57222438 +0.0687456429,1.65774941,-0.0687456354,1.56608967e-05,0.28089726,0.193351373,-0.872077048,0.0323326103,0.0206135269,0.0973897576 +0.0818724632,1.65782571,-0.0818724632,1.3950119e-05,0.200306281,0.114680596,-1.00627208,0.024994025,0.0206156969,0.115865402 +0.0924573094,1.65784073,-0.0924573094,0.000137307274,0.195229799,0.107658073,-1.04333591,0.0252116062,0.0206172075,0.130755082 +0.0989738032,1.65784955,-0.0989737958,1.31982324e-06,0.192084089,0.1031553,-1.06635368,0.0254641715,0.0206180848,0.140019804 +0.0991668105,1.65792263,-0.0991668105,0.000149628293,0.19208236,0.103121392,-1.06666696,0.0256269146,0.0206180569,0.140269265 +0.0989927724,1.65824759,-0.0989927724,0.000180635368,0.192085356,0.103142507,-1.06661427,0.0253462177,0.0206178352,0.140022308 +0.0819015279,1.65864563,-0.0819015279,0.000249515608,0.200327426,0.114675343,-1.00679791,0.0248282589,0.0206151325,0.115864232 +1.11538839,1.65911365,-1.11538839,0.000247397751,0.0409447327,0.0221980214,-0.126431942,-0.101013295,0.0208410025,1.57745564 +-0.960137844,1.6591928,0.960137844,0.00133217766,0.17370005,0.0880077109,0.161273107,-0.40119946,0.0207252074,1.35785306 +0.0688049197,1.6598413,-0.0688049197,0.000124536426,0.281043559,0.193400681,-0.873752117,0.0319747627,0.0206120871,0.0973825306 +0.25630483,1.66115808,-0.25630483,0.00105736603,0.179197758,0.089561969,-0.957725346,-0.00283104088,0.0206433889,0.362902343 +1.1561923,1.66126502,-1.1561923,0.000131745051,0.0410210341,0.0262946766,-0.0871752873,0.0415360853,0.0208366923,1.63521969 +-0.156015933,1.66236019,0.156015933,0.000843579881,0.200241253,0.10265889,-0.991999865,0.051644899,0.0206192564,0.221069783 +-0.166724116,1.6625185,0.166724116,0.00112104707,0.200046822,0.102023937,-0.989699841,0.0416633934,0.020620482,0.236971602 +-1.14547157,1.6626184,1.14547157,0.000247205317,0.0389730856,0.0235598572,-0.0926626772,0.0537364893,0.0207243003,1.61998725 +1.14583206,1.66271055,-1.14583206,0.000233845567,0.0373199433,0.022907706,-0.0868359804,0.00109996647,0.0208361018,1.62049484 +0.234428957,1.66304433,-0.234428957,0.000642978994,0.183526993,0.0913526118,-0.98568058,0.0188962109,0.0206349306,0.331799984 +-0.752949595,1.66315937,0.752949595,0.00408549281,0.176729053,0.0858224183,-0.0775228739,-0.455291033,0.0207015052,1.06619227 +0.196893826,1.66338229,-0.196893841,0.000751849846,0.189241856,0.0946140811,-1.04747391,0.0459446497,0.0206276905,0.279076725 +0.165124729,1.66353321,-0.165124729,0.000654114527,0.191335618,0.0966481641,-1.07683492,0.0572768487,0.0206221025,0.233775362 +0.160670191,1.66398406,-0.160670206,0.000361806131,0.191449001,0.0969151631,-1.07865489,0.0566819608,0.0206216909,0.227521881 +1.12795711,1.66524041,-1.12795711,0.000294580153,0.0310259927,0.0172201991,-0.0970931873,-0.0668043196,0.020834811,1.59535789 +-1.20867407,1.66559649,1.20867407,0.00021097326,0.0722743571,0.0393608958,1.16463304,-0.131449774,0.0207586344,1.70936871 +-0.237321496,1.66577637,0.237321496,0.000903919397,0.186533928,0.0941170529,-0.956913352,-0.0315071717,0.0206057373,0.33583492 +-1.21957219,1.66584623,1.21957207,0.000315170269,0.0619010404,0.0339221545,1.44854045,-0.0680737942,0.0207617544,1.72478116 +-1.13413751,1.66596031,1.13413751,0.00033827193,0.0302558094,0.0169137027,-0.0874300674,0.0153662656,0.0207231324,1.60403538 +-1.2286911,1.66601336,1.2286911,0.000143680212,0.0520542227,0.0423664413,1.48778152,-0.0331933945,0.0207618289,1.73767769 +-1.20681667,1.66608441,1.20681667,0.000261871959,0.0735026449,0.0400426425,1.09929025,-0.13775371,0.0207561869,1.706738 +0.444470525,1.666471,-0.444470555,0.00253702211,0.157536507,0.0860233381,-0.506716847,-0.159373254,0.0207606107,0.629591584 +-0.309109151,1.66651988,0.309109151,0.000753180648,0.170841321,0.089224942,-0.875880063,-0.115628123,0.0205844492,0.437221199 +-1.05160475,1.66706181,1.05160475,0.00159347616,0.1440669,0.0707554892,-0.0448951311,-0.180337459,0.0207310785,1.48737073 +0.162964866,1.66763628,-0.16296488,2.16869557e-05,0.191649094,0.0968351215,-1.0770961,0.054495234,0.0206195451,0.230955869 +-1.18658972,1.66789913,1.18658972,0.000459384144,0.0830288976,0.0440633744,0.546564877,-0.135550946,0.0207400844,1.67816782 +0.570239127,1.6680218,-0.570239127,0.00195500068,0.160845652,0.0817209631,-0.393628448,-0.223495275,0.0207538083,0.806799769 +0.414833963,1.66857839,-0.414833963,0.00321992626,0.158347785,0.0852039605,-0.565110803,-0.141904384,0.0207355209,0.587322593 +0.354043424,1.66898417,-0.354043454,0.00207266328,0.162134528,0.0858183801,-0.699408948,-0.109243758,0.0207011197,0.502287984 +-0.227423191,1.66948497,0.227423191,0.000798632856,0.189155966,0.0944382921,-0.958647847,-0.019565871,0.0206081532,0.321932346 +1.20795906,1.6695143,-1.20795906,0.000449570827,0.06832923,0.0368461758,1.17216921,-0.14709796,0.0208457187,1.70841146 +1.21928978,1.66965342,-1.21928978,0.000404371909,0.0570786223,0.0307104047,1.41493404,-0.0687277988,0.0208502468,1.72443652 +1.22872519,1.66977,-1.22872508,0.000183755634,0.0491423905,0.0399521664,1.42290151,-0.034090288,0.0208514035,1.73778105 +-0.207386658,1.66995168,0.207386643,0.000736816379,0.19314298,0.0971077308,-0.964987755,-0.000566290691,0.0206115153,0.293412387 +0.113051936,1.66998053,-0.113051936,0.00027886848,0.190972358,0.0994007811,-1.09565008,0.0386566184,0.0206117947,0.160801977 +1.16868639,1.6702131,-1.16868639,0.000385839783,0.0927669108,0.0476045683,0.0509192646,-0.0786535293,0.0208267346,1.65282393 +0.119840898,1.67021942,-0.11984089,0.000446739345,0.191010267,0.0988893285,-1.09580278,0.0427751765,0.0206123777,0.170312956 +-1.2075367,1.67078471,1.20753682,0.000208189376,0.0720095858,0.0388606414,1.11103511,-0.138845608,0.0207568333,1.7077744 +-1.2190665,1.67100239,1.2190665,0.000297812425,0.0619977489,0.033707045,1.4190805,-0.0714638531,0.0207598787,1.72408032 +-1.22867334,1.67118382,1.22867334,0.000134120768,0.0523575917,0.0418825187,1.47060359,-0.0345167592,0.0207598414,1.73766708 +-0.311365783,1.67131245,0.311365783,0.00103593559,0.170970589,0.0872470662,-0.864818096,-0.11805404,0.0205791295,0.440401256 +-0.306265622,1.67140198,0.306265622,0.000701516052,0.171762943,0.0872551352,-0.873425007,-0.111452088,0.0205790605,0.433248013 +-0.14253816,1.67148733,0.14253816,0.00045517835,0.201599345,0.103795543,-0.990819454,0.0551261306,0.0206124242,0.202743098 +0.158697262,1.67156279,-0.158697262,0.000435833237,0.19149366,0.0968365893,-1.08088136,0.0517432205,0.0206167214,0.224555776 +0.166055381,1.67157149,-0.166055366,0.00109767611,0.191703826,0.0967049897,-1.07197905,0.0513157099,0.0206175856,0.235016957 +1.04366422,1.67157602,-1.04366422,0.00109184789,0.147312284,0.0719872192,-0.0584897473,-0.236255944,0.0208377391,1.47622752 +-1.09212852,1.67175686,1.09212852,0.000746765872,0.108339064,0.0514956601,-0.139722928,-0.109933138,0.0207221322,1.54458678 +-0.0710536093,1.67239964,0.0710536093,0.000117658288,0.297905117,0.20927617,-0.765486479,0.0568064749,0.0206024572,0.100722596 +-0.285984695,1.67352438,0.285984695,0.000960832753,0.176543429,0.0892086178,-0.892288685,-0.0884068012,0.0205846354,0.404461652 +-0.0837977082,1.67356181,0.0837977082,0.000271106954,0.216161892,0.126412436,-0.913393259,0.0485969111,0.0206018705,0.118777357 +-1.16917944,1.67362237,1.16917944,0.000564529328,0.0795352459,0.0387118496,-0.0133399721,-0.00600423571,0.0207320787,1.65362716 +-0.308430851,1.67371893,0.308430851,9.55680298e-06,0.171554536,0.0870898142,-0.866911173,-0.114783905,0.020576261,0.436421454 +-0.120612219,1.67386782,0.120612219,0.00023924344,0.200426832,0.104608864,-0.996908367,0.0629780218,0.0206073299,0.170747176 +1.05563653,1.67411733,-1.05563664,0.00126998138,0.142080337,0.0687799975,-0.0830631852,-0.224022508,0.0208345447,1.4930768 +-1.201177,1.67435074,1.201177,0.000412671798,0.073988378,0.0391251892,0.933542252,-0.137960777,0.0207535159,1.69874036 +-0.231088504,1.67464864,0.231088519,0.000231474027,0.188763246,0.094100222,-0.950791001,-0.0262339897,0.0206040293,0.32739079 +-0.100423962,1.67465162,0.100423969,0.000260602712,0.201976463,0.109242029,-0.982215047,0.057423614,0.0206029546,0.142327279 +1.09382629,1.67472124,-1.09382629,0.000888292096,0.103976622,0.0487277545,-0.177196637,-0.154195189,0.0208268035,1.54705322 +0.590822518,1.67507577,-0.590822518,0.00178215513,0.16064924,0.0813830495,-0.369613618,-0.223658398,0.0207456686,0.835930467 +-0.118395224,1.67527556,0.118395224,0.000240310022,0.200572446,0.104991533,-0.995393634,0.0617653653,0.0206061658,0.167663068 +0.99324882,1.67557859,-0.99324882,0.00149708916,0.16152823,0.0801055804,0.0168491527,-0.340441853,0.0208266377,1.40554225 +-0.307334572,1.67563593,0.307334572,0.00132156012,0.171911046,0.0871842355,-0.866208434,-0.113377973,0.0205751881,0.43479377 +-0.311339647,1.67601812,0.311339617,0.000444389443,0.171416014,0.0869305953,-0.857843578,-0.116409309,0.0205741804,0.440394491 +-0.119769491,1.6762439,0.119769484,8.29337387e-06,0.200585887,0.104711734,-0.996835053,0.0617378987,0.0206057895,0.16972129 +1.19342732,1.67644477,-1.19342732,0.000513848616,0.080542326,0.0421321765,0.663366258,-0.1651223,0.0208366681,1.68791389 +-0.351102531,1.67659378,0.351102531,0.00187863258,0.166294917,0.0868812874,-0.785190344,-0.158396393,0.0205835793,0.497638792 +0.108251303,1.67698884,-0.108251296,0.000271840458,0.191099644,0.100130051,-1.09292173,0.0313962959,0.0206068512,0.153947383 +-0.121831559,1.67721653,0.121831559,0.00016736977,0.200724214,0.104634382,-0.996055067,0.0608959123,0.0206053872,0.172462597 +0.37324068,1.6778698,-0.37324068,0.00192746916,0.160817489,0.08553119,-0.636386156,-0.122501604,0.0207116157,0.530670881 +0.258275509,1.6780628,-0.258275509,0.000408408116,0.179897606,0.0891509876,-0.935139358,-0.013078534,0.0206304342,0.367002547 +0.26826176,1.67823064,-0.26826176,0.00267960131,0.178254426,0.0887602642,-0.912808537,-0.0253707264,0.0206385516,0.380172998 +-1.09741604,1.67846477,1.09741604,0.000303759763,0.102011174,0.0477356799,-0.155509621,-0.109351195,0.0207168721,1.55209064 +-0.114844248,1.67848349,0.114844248,0.000178375209,0.200900793,0.10585548,-0.993946433,0.0601251908,0.0206033196,0.162464797 +0.68753767,1.67861545,-0.68753767,0.0021377292,0.162285507,0.0789823309,-0.177301958,-0.341088057,0.0207470804,0.973419905 +-0.120168723,1.67868149,0.120168723,0.000239211324,0.200726151,0.104711547,-0.996555805,0.0606749058,0.0206043478,0.17018877 +0.138517141,1.67906356,-0.138517141,0.000502065755,0.191191852,0.0973144695,-1.09523296,0.0454375632,0.020609796,0.196807548 +1.16172612,1.67920232,-1.16172624,0.000355415163,0.0857817233,0.0413251966,-0.0227039531,-0.0801060051,0.0208264962,1.64304805 +-0.57197088,1.67947567,0.57197088,0.00248727412,0.161598027,0.0817290321,-0.423422754,-0.221953094,0.0206611883,0.809114337 +0.315531343,1.6798141,-0.315531343,0.00420024944,0.169178516,0.0855697617,-0.798967779,-0.0683975518,0.0206563268,0.448949695 +-0.235510081,1.68061292,0.235510096,0.00140146213,0.18827422,0.0936518908,-0.938417435,-0.0309239291,0.0205997247,0.333394736 +0.827539921,1.68080103,-0.827539921,0.00360320904,0.168544486,0.0823335573,0.0324436501,-0.501773477,0.0207654778,1.170506 +-0.71018219,1.68104517,0.71018213,0.00183310127,0.174820602,0.0851942152,-0.161724851,-0.375123888,0.0206855796,1.00507247 +-1.10407877,1.68123603,1.10407877,0.00080919615,0.0985858068,0.0459275767,-0.151338786,-0.104666971,0.0207162071,1.56151474 +-0.218658894,1.68167853,0.218658894,0.00100600848,0.192586154,0.0963015854,-0.950986147,-0.0166259538,0.0206029862,0.3094275 +-0.529621363,1.68186641,0.529621363,0.00196296209,0.15922305,0.0816147178,-0.485780776,-0.206398591,0.0206523426,0.75083065 +-0.959188879,1.68193603,0.959188879,0.00134635076,0.174430341,0.0878636464,0.106872022,-0.372053742,0.0207096562,1.35657883 +-0.956284046,1.682423,0.956284046,0.000645012013,0.175031871,0.0881816894,0.109817401,-0.377081603,0.0207087509,1.35250664 +1.10915399,1.6829201,-1.10915399,0.00074551662,0.0948183164,0.0437962189,-0.164936692,-0.152415693,0.0208186712,1.56863856 +-0.0707299262,1.68302155,0.0707299262,9.0741567e-05,0.296044171,0.207711026,-0.780918002,0.057707388,0.020595517,0.100699931 +-0.0834532753,1.68304086,0.0834532753,0.000191313069,0.214935482,0.125369474,-0.922302961,0.0474405736,0.0205956474,0.118749619 +-0.100051522,1.68308651,0.100051522,0.000156876253,0.201785699,0.108937852,-0.986024261,0.0546621233,0.0205973983,0.14229168 +-0.118428551,1.68339825,0.118428551,0.00026629254,0.201007068,0.105050623,-0.996322751,0.0590763018,0.0206009783,0.167554855 +1.14804733,1.68372011,-1.14804733,0.000669774134,0.0864598751,0.0409298614,-0.0659893453,-0.106992207,0.0208211765,1.6236279 +0.0680213645,1.68476462,-0.0680213645,0.000229303958,0.282727599,0.194145471,-0.894289851,0.0301821679,0.0205942672,0.0973400995 +0.0809912831,1.68480945,-0.0809912831,0.000568854157,0.200858504,0.114509195,-1.0259608,0.021139456,0.0205965005,0.11590419 +0.0979458988,1.68481696,-0.0979458988,0.000470518193,0.19234702,0.102474742,-1.08041358,0.0204473063,0.0205993,0.140163779 +-0.2291511,1.68495727,0.2291511,0.00121703034,0.190017551,0.0946039855,-0.940417171,-0.0268480554,0.0205994938,0.324380964 +0.114920296,1.68506646,-0.114920303,0.000439762458,0.190649033,0.0986602008,-1.09893203,0.0336086601,0.0206026416,0.163273394 +-1.14772093,1.6851449,1.14772093,0.000667045708,0.0824167281,0.0386508889,-0.0837233588,-0.0514700934,0.0207218733,1.62316883 +0.454070747,1.68552458,-0.454070747,0.00199298817,0.158166513,0.0833457187,-0.469173193,-0.144637048,0.020732604,0.642950058 +1.01506507,1.68567121,-1.01506507,0.0021720489,0.155950934,0.0765903369,-0.0276653394,-0.294729054,0.020822404,1.43627739 +-0.497700095,1.6860919,0.497700095,0.00313000637,0.159909725,0.0834872648,-0.521161258,-0.208470941,0.0206369124,0.705287457 +-0.129920274,1.68619657,0.129920274,0.000332071533,0.20173794,0.104655363,-0.987605989,0.0527014397,0.020600602,0.18377243 +-0.953311026,1.68639708,0.953311026,0.00231760577,0.175065652,0.0881046653,0.103509702,-0.375984937,0.0207057688,1.3482691 +0.624408603,1.68687654,-0.624408603,0.00244848989,0.159549639,0.0789792091,-0.286432743,-0.250705451,0.0207424872,0.884583056 +1.17543066,1.68742537,-1.17543066,0.000500906783,0.0898799151,0.0440528095,0.278607309,-0.193620667,0.0208266079,1.66236305 +0.242631018,1.6888901,-0.242631018,0.0011405315,0.183637932,0.0910226628,-0.953019857,-0.00390577829,0.020620862,0.343677521 +0.647501111,1.68893766,-0.647501111,0.00248632091,0.160925984,0.0785834864,-0.24601531,-0.271905333,0.0207349006,0.917345643 +0.739486992,1.68904543,-0.739486933,0.00480475556,0.164330289,0.0794659406,-0.087209262,-0.397898197,0.0207404364,1.04740155 +0.905388474,1.69000316,-0.905388415,0.00464235432,0.169379979,0.0840189382,0.0484640375,-0.452347934,0.0207819939,1.28107107 +0.211026073,1.69059443,-0.211026073,0.000977435731,0.189461797,0.093972072,-1.00680077,0.0222898964,0.0206103157,0.300474375 +0.711193085,1.69083786,-0.711193085,0.00280959206,0.163516581,0.0792215765,-0.130238831,-0.357698023,0.0207365528,1.0063498 +-0.100359485,1.69109893,0.100359485,0.000323840854,0.202087879,0.108884901,-0.986664534,0.0528863743,0.0205922313,0.142262593 +1.12541533,1.69123662,-1.12541533,0.000864269154,0.0871789455,0.0397680402,-0.145821437,-0.149923101,0.0208118707,1.59176219 +0.140942931,1.69133925,-0.140942931,0.0003042272,0.1912857,0.0969462469,-1.09197795,0.0395746343,0.0206022691,0.201408729 +-0.0837480575,1.69204569,0.0837480575,0.000271728903,0.214760199,0.125088662,-0.927110136,0.0457605384,0.0205898453,0.118731886 +-0.959756851,1.69210279,0.959756851,0.00149473397,0.17439796,0.087680459,0.0907109827,-0.365049332,0.0207022186,1.35733461 +-1.13366604,1.69254613,1.13366604,0.000940263388,0.0846209899,0.0386237539,-0.125275642,-0.0800827667,0.0207155682,1.60337019 +-0.688797951,1.69289529,0.688797951,0.00290825195,0.172861546,0.0842192546,-0.192052364,-0.330820709,0.0206746161,0.975275159 +-1.03352475,1.69299948,1.03352475,0.000865687092,0.151166677,0.074166216,-0.040055342,-0.234204769,0.0207108278,1.4616704 +-0.0710140094,1.69310784,0.0710140169,0.000117964213,0.295130163,0.206916898,-0.789383471,0.0573735237,0.0205889959,0.100690141 +-1.1766783,1.69321597,1.17667842,0.000947309833,0.0816977844,0.0389288627,0.247616768,-0.144097164,0.0207382012,1.66423357 +-0.452273846,1.69338989,0.452273846,0.00238176202,0.161336541,0.0839867368,-0.58106184,-0.189629927,0.0205968749,0.640461445 +0.131788045,1.69494104,-0.131788045,0.000468659244,0.190778613,0.0971719772,-1.09874475,0.03508332,0.0205991622,0.187195927 +-0.181562886,1.69571817,0.181562886,0.000878864201,0.20180735,0.101980738,-0.958127737,0.0125237219,0.0205981489,0.258731723 +0.437205493,1.69734502,-0.437205523,0.00267122802,0.159225136,0.0834803954,-0.473785698,-0.14004682,0.0207128134,0.619612932 +-0.153268412,1.69917095,0.153268412,0.000532549631,0.203888699,0.104256943,-0.970608115,0.035903953,0.0205954928,0.217017069 +-0.427514195,1.69982719,0.427514195,0.00151135807,0.162852108,0.0843965188,-0.607122302,-0.192177728,0.0205790382,0.606910825 +-1.02377069,1.6999166,1.02377069,0.00126772223,0.155267969,0.0763198957,-0.0262294561,-0.259708017,0.0207049493,1.44797802 +1.16836619,1.70072901,-1.16836619,0.000673788309,0.0906089693,0.0419692025,0.144717515,-0.211544663,0.0208233204,1.6524415 +-1.22872019,1.70085526,1.22872019,0.000285782968,0.0526193939,0.0384212397,1.35501754,-0.0370753072,0.0207482576,1.7376771 +-1.21313715,1.70095289,1.21313715,0.000630528957,0.0621358156,0.0321987979,1.19257021,-0.0898234099,0.0207480192,1.71563911 +-1.07871187,1.7010777,1.07871187,0.000907402369,0.125243843,0.0585590899,-0.123887941,-0.209955722,0.0207075458,1.52561104 +-1.19429302,1.70108163,1.19429302,0.000503982068,0.0748164281,0.0377045162,0.729644537,-0.171642184,0.0207446739,1.6889894 +0.192259401,1.70238376,-0.192259401,0.00123606611,0.191991299,0.0955820903,-1.02630734,0.0238948222,0.0206032693,0.273103058 +0.540381372,1.70254159,-0.540381372,0.00177637895,0.161801219,0.0812924579,-0.367718756,-0.16644758,0.0207228176,0.766511619 +0.696094275,1.70379591,-0.696094275,0.000882894499,0.161901534,0.078449294,-0.146878093,-0.316699445,0.0207270645,0.985927343 +1.17589259,1.70392227,-1.17589271,0.000499213464,0.0859849975,0.0407006517,0.297737241,-0.20827803,0.0208257921,1.66304576 +1.08048582,1.7042774,-1.08048582,0.00121587701,0.125078216,0.0580060631,-0.151622236,-0.248904794,0.020807134,1.52818811 +0.48746115,1.70536089,-0.48746115,0.00238884054,0.160731658,0.0818952397,-0.399977207,-0.144829154,0.0207235366,0.69132632 +1.19933534,1.70597112,-1.19933522,0.00095465756,0.0702595711,0.0354500562,0.807943404,-0.186153442,0.0208378509,1.69635439 +1.21530485,1.70618427,-1.21530485,0.00076726207,0.056936834,0.0290272888,1.19832516,-0.0880402476,0.0208437964,1.7189424 +1.22861111,1.70636201,-1.22861111,0.000348557049,0.0494814031,0.0356222801,1.27860212,-0.0410270914,0.0208456926,1.73776293 +-1.02731657,1.70654893,1.02731657,0.000673198083,0.153377965,0.075058125,-0.0446187556,-0.254436612,0.0207005814,1.45296395 +-1.05441022,1.70706987,1.05441022,0.000786667108,0.138025612,0.0658255517,-0.0889737383,-0.238647074,0.0207016692,1.49118233 +0.253405869,1.70730424,-0.253405869,0.00177206844,0.182740033,0.0901789367,-0.918564916,-0.0191708282,0.0206124131,0.358768344 +-0.15944171,1.70824242,0.159441724,0.000432947389,0.204653278,0.104229502,-0.963925362,0.0256896168,0.020590486,0.226191193 +0.068738766,1.70911896,-0.068738766,0.000125330669,0.284862578,0.195314869,-0.910067916,0.0265571102,0.0205786992,0.0973159745 +-0.070532307,1.70928454,0.070532307,0.000148398685,0.292483747,0.204854921,-0.808041096,0.0562500134,0.0205786899,0.100657247 +-0.0831332728,1.70929599,0.0831332654,0.000359222613,0.2138464,0.124039538,-0.937853456,0.0411241725,0.0205788799,0.118680939 +-0.0995664597,1.7093308,0.0995664597,0.000276115898,0.202767283,0.108879752,-0.987980127,0.0442543104,0.0205809213,0.142181516 +-1.08519506,1.70950782,1.08519506,0.000372532464,0.121037439,0.0558577552,-0.143515646,-0.217181742,0.0207015239,1.53480351 +0.117584705,1.70968676,-0.117584705,0.000685624487,0.190579504,0.0977006853,-1.10220385,0.0265882388,0.0205873437,0.168003112 +0.0818850771,1.71040285,-0.0818850771,0.000288936775,0.200646654,0.113933653,-1.04029465,0.0158782955,0.0205800775,0.115872942 +-0.106964946,1.71041548,0.106964946,0.000422775833,0.202794328,0.10745617,-0.991777003,0.0473276265,0.0205814131,0.151759073 +-0.183522567,1.71069884,0.183522567,0.00111088715,0.202875599,0.102374911,-0.945044518,0.00394087937,0.0205879249,0.26178512 +-1.03155661,1.71114206,1.03155661,0.000685119187,0.150517926,0.0733252317,-0.0507637858,-0.257396936,0.0206972193,1.45894754 +1.15022385,1.71124053,-1.15022385,0.000980693381,0.0965702236,0.0441628136,0.0491079092,-0.248350948,0.0208119638,1.62671077 +0.0992352962,1.71150982,-0.0992352962,0.000139324577,0.191501394,0.101213209,-1.09157121,0.0150254313,0.0205823351,0.140344039 +0.0990843177,1.71174932,-0.0990843251,0.000190066305,0.191516563,0.101243064,-1.09143126,0.0148343872,0.0205821451,0.140135139 +0.0686531067,1.71187067,-0.0686531067,2.21289774e-05,0.285004079,0.19541128,-0.911467791,0.0263694581,0.0205768347,0.0973144621 +0.0818309113,1.71187901,-0.0818309188,2.99193634e-05,0.200649858,0.113913327,-1.04088938,0.0156930089,0.0205790754,0.115872443 +0.0990778804,1.71189594,-0.0990778804,5.70116799e-06,0.191514835,0.101237476,-1.09147489,0.0148233715,0.0205820464,0.140135124 +0.0991722643,1.7118969,-0.0991722643,8.88383438e-05,0.191505551,0.101218656,-1.0915612,0.0148525741,0.0205820724,0.140259966 +0.9662503,1.71196783,-0.9662503,0.0020632071,0.1630027,0.0806892663,-0.00219589099,-0.37197268,0.0207889508,1.3668189 +0.0990834534,1.71203506,-0.0990834534,0.000197518137,0.191512972,0.101235263,-1.09148717,0.0147876702,0.0205819607,0.140134439 +-0.156251103,1.71218514,0.156251103,5.09489691e-05,0.204975322,0.104485199,-0.963515341,0.0267108828,0.0205874387,0.221854389 +0.099276118,1.71229899,-0.0992761105,0.000167893697,0.191491693,0.101189017,-1.09157467,0.0147818811,0.0205818526,0.140401691 +-0.869813502,1.71253288,0.869813502,0.00460575847,0.175713554,0.0868582949,0.0451301076,-0.421523005,0.0206792653,1.23158813 +-1.09389532,1.71274209,1.09389532,0.000969134795,0.116927654,0.0535546504,-0.134170979,-0.223786101,0.020701224,1.54710925 +-1.15110612,1.71323538,1.15110612,0.000765255187,0.0915915072,0.0416995995,0.0422433317,-0.205304071,0.0207177997,1.62795568 +0.0818803608,1.71328127,-0.0818803608,0.000290184631,0.200676262,0.113918908,-1.04133403,0.0154965911,0.0205782093,0.115870416 +-1.01518464,1.71380925,1.01518464,0.00135365536,0.158037081,0.0777125359,-0.0329220332,-0.2648561,0.0206935406,1.4357481 +1.0825274,1.71430421,-1.0825274,0.000991971232,0.123361148,0.0569971129,-0.149852589,-0.267395139,0.0207999833,1.53112531 +0.0687344968,1.71449125,-0.0687344968,0.000125920124,0.285371244,0.195676655,-0.912622571,0.0258826762,0.0205752254,0.0973161831 +-0.159868076,1.7146523,0.159868076,0.000772219501,0.205144212,0.104433872,-0.958617747,0.0223701205,0.0205861256,0.226888925 +0.176793784,1.71471667,-0.176793769,0.00121758354,0.192861378,0.0963251442,-1.03880322,0.0238991901,0.0205935109,0.251971155 +0.522060156,1.71487486,-0.522060156,0.00228901953,0.161719114,0.0806027651,-0.368001759,-0.137862533,0.0207149107,0.739779472 +1.0987494,1.7161727,-1.0987494,0.00103470637,0.11617294,0.0528615564,-0.141120553,-0.278068542,0.0207986496,1.55393004 +0.671021223,1.71746564,-0.671021223,0.00168335519,0.16155228,0.0782713592,-0.166866064,-0.268408388,0.0207172129,0.949656904 +0.207600266,1.71841943,-0.207600266,0.00146523083,0.191107929,0.0944839492,-0.990414619,0.00976747833,0.0205963627,0.295906365 +-0.150186956,1.71928549,0.150186956,0.00059024716,0.205134064,0.104867384,-0.965048432,0.0285569206,0.0205825232,0.212584287 +-0.123164088,1.72008491,0.123164088,0.000412818394,0.203967661,0.106140822,-0.983662844,0.0401656851,0.0205788277,0.174503714 +-1.08254004,1.72090268,1.08253992,0.00128221617,0.121630803,0.0562226512,-0.135989532,-0.237610906,0.020692993,1.53103065 +0.908041954,1.72254074,-0.908041954,0.00136544625,0.167591974,0.0828762949,-0.0094067743,-0.401990026,0.0207547806,1.28564882 +-0.405267924,1.72262955,0.405267924,0.00298145507,0.165925667,0.0831591114,-0.623794913,-0.172647715,0.0205419436,0.574316621 +-1.18322885,1.72274458,1.18322897,0.000358054473,0.0774773583,0.0363930389,0.413027376,-0.194013104,0.0207349733,1.67337203 +-1.18481255,1.72396147,1.18481243,0.000230141697,0.0765127838,0.036114756,0.453165323,-0.195476398,0.0207359288,1.67562485 +-0.361447036,1.72411442,0.361447036,0.00572558818,0.169412196,0.0838233978,-0.695606112,-0.153042108,0.0205362719,0.512841582 +-1.20876002,1.72412932,1.20876014,0.000400870747,0.062135499,0.0308008045,1.02334547,-0.103438221,0.0207392443,1.70949352 +-1.22869849,1.72426975,1.22869849,0.000183316923,0.0528772436,0.0346540585,1.26372039,-0.039286498,0.0207394678,1.73769188 +0.141619325,1.72433424,-0.141619325,0.000386784406,0.191735193,0.0966772959,-1.0847528,0.0227574147,0.0205834061,0.200344235 +-0.893787026,1.72479868,0.893787026,0.00338497479,0.176783517,0.0878649279,0.0442258157,-0.401700616,0.0206722878,1.26479387 +-0.133219421,1.72520292,0.133219421,0.000444454199,0.204779536,0.105453163,-0.976319075,0.0341973267,0.0205778424,0.189580441 +0.39969641,1.7256217,-0.39969644,0.0028317105,0.163846076,0.0831928849,-0.52755326,-0.113813728,0.0206742343,0.565569878 +-1.17162967,1.72564125,1.17162967,0.000735503621,0.0822659135,0.0380344577,0.299743831,-0.210071459,0.0207272265,1.65694427 +-0.323989034,1.72574544,0.323989034,0.00268273544,0.174545407,0.0861230418,-0.766919017,-0.124535888,0.0205426794,0.460745871 +-0.0710054785,1.72581387,0.0710054785,0.000117013493,0.290813297,0.20350872,-0.815464318,0.0544793829,0.0205682833,0.100659557 +-1.13453853,1.7259711,1.13453853,0.00125596416,0.0978666246,0.0431161448,-0.0818215683,-0.244718701,0.0207049083,1.60460329 +-0.0837191716,1.72693038,0.0837191716,0.000269392884,0.213698134,0.123723485,-0.93973279,0.0369142108,0.0205677841,0.118667006 +0.144618541,1.7273283,-0.144618556,0.000542619731,0.191862151,0.0965962708,-1.08017302,0.0208850279,0.0205819849,0.204612166 +-0.199301749,1.72739792,0.199301749,0.00113263319,0.201628119,0.101186655,-0.915948689,-0.0124723483,0.0205768067,0.282381117 +0.985952139,1.72743368,-0.985952139,0.00220525684,0.159079164,0.0781667158,-0.0527888164,-0.322899669,0.0207804423,1.3946954 +-1.18372464,1.72780526,1.18372464,0.000575067883,0.0768462494,0.0359606557,0.42208904,-0.200032145,0.0207334477,1.67408442 +-0.100293934,1.727983,0.100293949,0.000308733172,0.203573212,0.109032132,-0.986460805,0.0386612713,0.0205692258,0.142137766 +-1.20825899,1.72800589,1.20825899,0.000881060085,0.0619988292,0.0305892881,1.00078261,-0.104805306,0.0207367223,1.70878267 +1.12019241,1.72814727,-1.12019241,0.00129200588,0.105760731,0.0470442995,-0.118704975,-0.307600558,0.0207920093,1.58439279 +-1.22870421,1.72817135,1.22870409,0.000398410833,0.0527928397,0.034190543,1.24908888,-0.0391996875,0.0207369905,1.73769784 +0.14014104,1.72838724,-0.140141055,0.000170593223,0.191766515,0.0967275202,-1.08437526,0.0207154807,0.0205806531,0.198337987 +1.04497123,1.728585,-1.04497123,0.000985201215,0.140912518,0.0677572861,-0.0899515152,-0.273818314,0.0207929984,1.47785234 +0.553546667,1.72931111,-0.553546667,0.00541409478,0.162022337,0.0795946494,-0.308036149,-0.143286079,0.0207099859,0.784772396 +-0.552661061,1.72980106,0.552661061,0.00344496267,0.161373511,0.0789566264,-0.397413254,-0.170477986,0.0206084996,0.782380402 +0.141545415,1.72999132,-0.141545415,6.73999466e-06,0.191867024,0.0966559425,-1.08309484,0.0201206245,0.0205800198,0.200429082 +-0.731848478,1.73015642,0.731848478,0.0037431214,0.173597157,0.0843937173,-0.114689298,-0.341023237,0.0206517614,1.0367626 +0.142745167,1.73041904,-0.142745167,0.000364682492,0.191895157,0.096624881,-1.0815047,0.0196397658,0.0205799975,0.201995075 +0.788034797,1.73126674,-0.788034797,0.003782026,0.163784668,0.07960134,-0.07044366,-0.359524846,0.0207249094,1.11509013 +-1.18136811,1.73126674,1.18136799,0.00087156269,0.077593334,0.0361960866,0.39127475,-0.212064803,0.0207286067,1.67073941 +-0.13001515,1.73185217,0.13001515,0.000224245989,0.20510146,0.105881907,-0.977272868,0.0316254757,0.0205734093,0.184994727 +0.138434291,1.73283005,-0.138434291,0.000350937189,0.191548944,0.0966393873,-1.08512604,0.0192532986,0.0205776226,0.195840314 +-0.643315136,1.73371387,0.643315196,0.00659987889,0.16781801,0.0814984739,-0.256097615,-0.225928441,0.0206358582,0.9130584 +-0.112563416,1.73376918,0.112563416,0.000339544611,0.204371855,0.10801854,-0.980932713,0.0340654738,0.0205682125,0.159383073 +-1.03595316,1.73403978,1.03595316,0.000570277916,0.146865577,0.07122311,-0.0566057377,-0.270208657,0.020679839,1.46508694 +-0.288091332,1.73475504,0.288091332,0.00383479148,0.180021465,0.0878323391,-0.811274409,-0.0987158716,0.0205470547,0.41070348 +1.11215532,1.73494196,-1.11215532,0.000434254704,0.109060466,0.0488722809,-0.122572012,-0.317875177,0.0207861289,1.57305026 +-0.0834180415,1.73537159,0.0834180489,0.000174616216,0.213217944,0.123221651,-0.942018569,0.0347192325,0.0205624457,0.118645929 +-0.0707227811,1.73537517,0.0707227811,8.36896215e-05,0.289402723,0.202400386,-0.823224425,0.053478118,0.0205622148,0.100647256 +-0.0999694616,1.73537672,0.0999694616,9.88467946e-05,0.203807637,0.109119095,-0.985947132,0.0348879807,0.0205646846,0.142105058 +-0.580169857,1.73539281,0.580169857,0.00427316129,0.163167804,0.0792930722,-0.339581728,-0.18656674,0.0206168629,0.82130599 +0.634227157,1.73541701,-0.634227157,0.00385143328,0.160260707,0.077776745,-0.22052376,-0.194026977,0.0206999369,0.897969723 +-0.137324974,1.73653483,0.137324974,0.000417390751,0.205588549,0.105504967,-0.967715323,0.0267736018,0.0205716528,0.19543004 +-0.102562711,1.73713481,0.102562711,0.000166812591,0.203954205,0.108717419,-0.985513091,0.0347608477,0.0205642954,0.14561899 +0.117803484,1.73719907,-0.117803484,0.000484024844,0.189994887,0.0969369933,-1.09923983,0.0176357999,0.0205707774,0.167353332 +-0.987350881,1.73755145,0.987350881,0.00114480604,0.168709427,0.0838405564,-0.0107383728,-0.29370591,0.0206719022,1.39668214 +-1.10439932,1.73760664,1.10439932,0.000933356816,0.110494949,0.0502760373,-0.107107028,-0.284542263,0.0206852779,1.56189132 +-0.440486014,1.73791671,0.440486014,0.002619348,0.164211571,0.081665419,-0.536103308,-0.165933684,0.0205378216,0.623859167 +0.0809874237,1.73907495,-0.0809874237,0.00053418125,0.200179175,0.11338149,-1.05093026,0.0137797091,0.0205616746,0.11588867 +0.0978985578,1.73909581,-0.0978985578,0.000467857491,0.190542355,0.10028398,-1.09357977,0.0103612719,0.0205648653,0.140075862 +0.0680511594,1.73912156,-0.0680511594,0.000231946615,0.287947118,0.197619379,-0.923585892,0.0234385096,0.0205592904,0.0973819196 +-0.783233643,1.73916936,0.783233643,0.00399683602,0.173085898,0.0843729302,-0.074789837,-0.365740716,0.0206521004,1.10852826 +1.05878365,1.74097824,-1.05878365,0.000925844011,0.132010832,0.0621060915,-0.125705212,-0.283727676,0.020781219,1.49737883 +1.22872484,1.74204516,-1.22872484,0.000370252412,0.0487797,0.031693209,1.13290322,-0.0408011563,0.0208255872,1.73780894 +1.20884669,1.74206734,-1.20884681,0.000793208426,0.0565745831,0.0277775414,0.952822864,-0.111141562,0.0208231863,1.70969486 +-0.977336168,1.74215293,0.977336168,0.00056959549,0.171544492,0.0854273066,-0.00425978005,-0.303007871,0.0206668638,1.38278103 +0.945556521,1.74241602,-0.945556521,0.00300838053,0.162505835,0.0798798874,-0.0536319166,-0.356763661,0.0207526218,1.33757365 +0.162762523,1.7425158,-0.162762538,0.000830826524,0.193288594,0.0965664238,-1.04665387,0.0124616399,0.0205760412,0.23264645 +-0.100270823,1.74278176,0.100270823,0.000263582217,0.204132199,0.109228827,-0.983824551,0.0326639935,0.0205601007,0.142103851 +0.357268363,1.74284375,-0.357268363,0.00267964043,0.167844087,0.0823837519,-0.600164533,-0.0850816295,0.0206345376,0.506048858 +1.18596923,1.74351263,-1.18596923,0.000774813292,0.0740610808,0.0345913693,0.46317783,-0.23961094,0.0208153203,1.67731857 +1.17786765,1.74369907,-1.17786765,0.000546624186,0.0784501731,0.0355699509,0.29441905,-0.246790737,0.0208112448,1.66591191 +-0.0837099254,1.74385703,0.0837099254,0.000269647193,0.213037014,0.122993656,-0.942535281,0.0329724401,0.0205571912,0.118651897 +1.15436816,1.74456763,-1.15436804,0.00113270199,0.0885479674,0.0397483781,0.144379258,-0.280128479,0.0208012741,1.63258457 +-0.150675908,1.74458051,0.150675908,0.000575056823,0.207452208,0.105942234,-0.947303176,0.0175852291,0.0205681343,0.213152766 +-0.0710073411,1.74500895,0.0710073411,0.000117193878,0.288776785,0.201896146,-0.825394273,0.0524375774,0.0205562338,0.100659698 +0.862529397,1.74512386,-0.862529397,0.00409527216,0.166623265,0.0818938017,-0.0279483199,-0.381975174,0.0207274109,1.22033787 +-0.48307991,1.74621558,0.48307994,0.00334053184,0.163763314,0.0802538171,-0.458449274,-0.176920295,0.0205580797,0.684721172 +-0.25213787,1.74644625,0.25213787,0.00272412109,0.188997507,0.0928685516,-0.838388741,-0.0707991272,0.0205535498,0.35934341 +-0.217026547,1.7468611,0.217026532,0.00170941197,0.198446363,0.0987499282,-0.883425236,-0.0336962119,0.0205621272,0.307788074 +0.110798515,1.74815261,-0.110798515,0.00036922915,0.189447939,0.0974863693,-1.09864128,0.0113151893,0.0205629915,0.157493532 +0.96952951,1.74841881,-0.96952945,0.00093036308,0.160690784,0.078883417,-0.0697453395,-0.33354485,0.0207559187,1.37194729 +-0.205605581,1.74901831,0.205605596,0.000384401996,0.201700911,0.100854278,-0.892231345,-0.0280735902,0.0205639247,0.292435586 +-0.810842276,1.74907672,0.810842216,0.00387111353,0.174040496,0.0851837546,-0.037244983,-0.376339912,0.0206460636,1.14793921 +-1.13406587,1.74918914,1.13406575,0.00128963077,0.0964464992,0.0426630527,-0.0676802024,-0.304792672,0.0206864476,1.6038506 +1.03702486,1.74982846,-1.03702486,0.00149495783,0.141508043,0.0678095445,-0.0904190391,-0.302157402,0.0207750816,1.46669161 +0.192689985,1.75011706,-0.192689985,0.000940617814,0.192575872,0.0953600556,-0.996601701,-0.000262880698,0.0205769651,0.273356974 +0.232838824,1.75070822,-0.232838809,0.00149973331,0.188452736,0.0923903659,-0.918760478,-0.0216273926,0.0205828771,0.331097782 +0.247621149,1.75071561,-0.247621149,0.00131304713,0.186212033,0.0910135135,-0.888102531,-0.0291495342,0.0205853079,0.352331817 +0.118612155,1.75183344,-0.118612155,0.000250131881,0.189894781,0.0965875983,-1.09575796,0.0130602997,0.0205620285,0.169036895 +-0.567866623,1.75271583,0.567866623,0.00156290247,0.162283301,0.0787131041,-0.343531579,-0.159280851,0.020598853,0.804429471 +1.1777308,1.75445569,-1.1777308,0.00047976934,0.0775226206,0.0349061489,0.304382741,-0.267147899,0.0208063181,1.66581178 +-0.122493833,1.7546792,0.122493833,0.000339576218,0.205538407,0.106407687,-0.974660277,0.0275048576,0.0205582585,0.173346162 +0.605995715,1.75471902,-0.605995715,0.00430147815,0.161634743,0.0783790126,-0.235188067,-0.134818643,0.0206836611,0.859178245 +1.04495871,1.75492847,-1.04495883,0.000228752528,0.137714207,0.0655170307,-0.10846477,-0.294233412,0.0207720734,1.47794771 +0.819944739,1.75524056,-0.819944799,0.0022412145,0.163811207,0.079806298,-0.0494585186,-0.35025984,0.0207133964,1.16135609 +0.711283684,1.75611997,-0.711283684,0.00182823103,0.16092357,0.0778751299,-0.110838801,-0.252918541,0.0206956733,1.00613308 +-1.06545043,1.75632238,1.06545043,0.00122222572,0.129223004,0.0605968982,-0.107389487,-0.289499074,0.020665355,1.50722075 +1.10371816,1.75862086,-1.10371816,0.00114110834,0.112480447,0.0515362956,-0.0951181352,-0.346483171,0.0207667984,1.56100082 +0.368659019,1.75872493,-0.368659019,0.00214347616,0.167932093,0.0816599578,-0.549772918,-0.0890795439,0.0206307471,0.522742271 +-0.959813714,1.75947499,0.959813714,0.00207937602,0.172390252,0.0857147425,-0.0196359958,-0.303714514,0.0206527486,1.35772216 +-0.548096597,1.75984955,0.548096597,0.00399845839,0.162461206,0.0786274672,-0.364255637,-0.145064518,0.0205832459,0.776167274 +0.898840129,1.75999022,-0.898840129,0.00278825709,0.166927189,0.0823644698,-0.0452623181,-0.36749503,0.0207238775,1.2723217 +-0.22976473,1.76026821,0.22976473,0.00243275356,0.194605976,0.0961363912,-0.855427265,-0.0515622161,0.0205514226,0.328375727 +1.18210232,1.76050687,-1.18210232,0.000868874427,0.0743025094,0.0336722285,0.354142874,-0.255510986,0.0208044723,1.6719172 +0.983968496,1.76063573,-0.983968496,0.00224622223,0.156356215,0.0762963817,-0.0861814469,-0.320655584,0.0207505058,1.39197981 +-0.117577434,1.76069522,0.117577434,0.000148854408,0.205468312,0.106626816,-0.976601958,0.0267909952,0.0205538478,0.166632876 +0.116808981,1.76072264,-0.116808973,0.000344722124,0.189380556,0.096321024,-1.09489107,0.0103508253,0.0205567703,0.166340128 +1.22864795,1.76142609,-1.22864795,0.000471871579,0.0484003276,0.0301588308,1.05770516,-0.0403626338,0.0208136458,1.73778248 +1.20663047,1.76144397,-1.20663047,0.000999068841,0.0556935221,0.0269797873,0.84385252,-0.118140288,0.0208112672,1.70664084 +-0.0995256305,1.76144576,0.0995256379,0.000342384446,0.204701424,0.109377928,-0.980916917,0.0230011363,0.0205489006,0.142109275 +-0.0831258744,1.76150084,0.0831258744,0.000360641978,0.212128043,0.122058406,-0.94596076,0.0283035692,0.0205463488,0.118656278 +-0.0705469996,1.76153409,0.0705469996,0.000148947714,0.286640942,0.200281411,-0.832997441,0.0505158417,0.0205460507,0.100664414 +1.05057609,1.76167369,-1.05057609,0.000118527714,0.134226814,0.0634584799,-0.108879216,-0.308908045,0.020767061,1.48585212 +-0.695750713,1.76170897,0.695750713,0.00432374747,0.169683903,0.0824160874,-0.162802428,-0.25131157,0.0206247661,0.986746371 +-0.11434897,1.76215124,0.114348963,0.000280231179,0.205431402,0.107248217,-0.976366878,0.0261668041,0.0205520075,0.161897495 +0.83376044,1.76221776,-0.8337605,0.00134104304,0.164868146,0.0805512518,-0.0478564426,-0.35395658,0.0207090303,1.18054473 +0.0987730175,1.76254928,-0.0987730101,0.000276964332,0.189665437,0.0994656384,-1.09436882,0.00742143905,0.0205512773,0.139916897 +1.1784687,1.76333785,-1.17846882,0.000575210724,0.0762365758,0.0342796035,0.300576985,-0.274817675,0.0208003055,1.66680157 +-0.130984753,1.76355469,0.130984753,0.000266727788,0.207184196,0.106789172,-0.958336711,0.0194628127,0.0205544233,0.185282275 +0.0818544105,1.76376736,-0.081854403,0.000287888048,0.200117067,0.113081142,-1.05840886,0.0126488665,0.0205473006,0.115896381 +-0.979840279,1.76387072,0.979840279,0.00157935196,0.169787183,0.0842397884,-0.0233479161,-0.291318119,0.0206515212,1.38610923 +-0.920704842,1.76400805,0.920704842,0.00327786594,0.175277203,0.0871310607,-0.00608865079,-0.33445102,0.0206455551,1.30289841 +-0.117972627,1.76417351,0.117972627,6.43457752e-05,0.205738798,0.106701963,-0.974684834,0.0255165175,0.0205519069,0.167273775 +1.04281223,1.76426232,-1.04281223,7.50675463e-05,0.137813598,0.0655867532,-0.105919629,-0.302107215,0.0207640547,1.47496688 +-0.145442307,1.76434755,0.145442307,0.000490463048,0.208784401,0.106744431,-0.939721048,0.0114365192,0.0205564406,0.206131548 +-0.45207721,1.76472473,0.45207721,0.00113397627,0.165379733,0.0802806392,-0.476682812,-0.157647401,0.0205275957,0.642256021 +1.03794241,1.76488507,-1.03794241,0.00150251959,0.139727712,0.0666764304,-0.106085911,-0.300473094,0.0207620189,1.46801984 +0.379827976,1.76502585,-0.379827976,0.00105193281,0.167922527,0.0815375596,-0.517833829,-0.0897258222,0.0206321273,0.538523376 +0.0688985735,1.76512563,-0.0688985735,0.00012508595,0.290848613,0.199712947,-0.935702264,0.0221970808,0.0205438752,0.097497806 +0.128145456,1.76581693,-0.128145456,0.000553827558,0.190712199,0.0963497087,-1.08075333,0.00809323788,0.0205562618,0.181667387 +0.0986032858,1.76626372,-0.0986032858,5.00181122e-05,0.1895542,0.0993691012,-1.09384632,0.00678077107,0.0205490515,0.139885992 +0.0817741677,1.76629066,-0.0817741677,6.19340717e-05,0.200054169,0.113022618,-1.05894232,0.0125476159,0.0205457751,0.115899734 +0.068870455,1.76638925,-0.068870455,1.65817328e-05,0.290919274,0.199774623,-0.936345756,0.0221474431,0.0205430947,0.0975073501 +-0.869358897,1.76650047,0.869358897,0.00256130635,0.173096955,0.0853250846,-0.0203368478,-0.352681786,0.0206395239,1.2300036 +0.180310309,1.76666498,-0.180310294,0.000893821183,0.193356872,0.0959292725,-1.00252771,-0.00361384917,0.0205654632,0.256395161 +-0.203584298,1.76729345,0.203584313,0.00094632461,0.203254834,0.101669855,-0.87904501,-0.0321448855,0.0205546375,0.288806975 +0.100172497,1.76753032,-0.100172497,0.00020946312,0.189654037,0.0991987512,-1.09288383,0.00689441385,0.0205485746,0.141983151 +-0.142317414,1.76785517,0.142317414,0.000267784984,0.208646595,0.106821932,-0.942495048,0.0114562903,0.020553967,0.201587915 +0.209714562,1.76802087,-0.209714562,0.00104635337,0.190792486,0.0939728618,-0.951027274,-0.019258298,0.0205699559,0.297229588 +0.0689276755,1.768031,-0.0689276755,0.000125919978,0.290887088,0.199717775,-0.936915576,0.022389194,0.0205421951,0.0975239724 +1.13108921,1.76818585,-1.13108921,0.00102319708,0.0980198532,0.043605499,-0.0614532977,-0.384160995,0.0207694657,1.59962773 +-1.00790334,1.76858389,1.00790334,0.00107579515,0.158096001,0.0775306374,-0.0457395911,-0.285132736,0.0206510276,1.42547798 +0.146000236,1.76881337,-0.146000236,0.000711642846,0.192141265,0.0961300135,-1.05954993,0.00481342245,0.0205586199,0.207405478 +-1.02303779,1.76947081,1.02303779,0.000665488536,0.151743919,0.0738797933,-0.0642437413,-0.274900436,0.0206522588,1.44696629 +0.0819016322,1.76958454,-0.0819016248,0.000290232711,0.199916303,0.112875342,-1.05919719,0.0127404854,0.0205439646,0.115927756 +0.696757913,1.77089882,-0.696757913,0.00157858164,0.160144225,0.0775569379,-0.132376671,-0.210771114,0.0206835158,0.98571682 +0.0988144651,1.77110791,-0.0988144726,0.000276370294,0.189250246,0.0991065502,-1.0932672,0.00651904847,0.0205463935,0.139913186 +1.04339039,1.77135468,-1.04339039,8.72805613e-05,0.137564123,0.0656791031,-0.099068068,-0.301217616,0.0207580328,1.47575784 +-0.178824052,1.77179277,0.178824052,0.000544316601,0.208928436,0.1056026,-0.896387517,-0.0130056217,0.0205535181,0.252901554 +-0.176634878,1.77180302,0.176634878,0.000420749129,0.20904094,0.10574358,-0.898696423,-0.0114380736,0.020553479,0.249801859 +-0.178333998,1.77202618,0.178333998,0.000552587793,0.20903185,0.105672643,-0.896638632,-0.0127444072,0.0205534324,0.252230614 +-0.178517178,1.77221727,0.178517178,7.15008753e-07,0.209009081,0.105654344,-0.896247089,-0.0129526826,0.0205533076,0.252484262 +-0.178209588,1.77229166,0.178209603,0.000156985669,0.209055096,0.105688378,-0.896574676,-0.0127060795,0.0205532722,0.252045542 +0.484404802,1.77254677,-0.484404802,0.00154922798,0.161857843,0.0791992098,-0.296511352,-0.084897086,0.0206678621,0.685479462 +-0.178369001,1.77272856,0.178369001,0.000462361611,0.209070161,0.105688706,-0.896023691,-0.0129322503,0.0205530245,0.252263784 +1.05426145,1.77285194,-1.05426145,0.000939971127,0.132702664,0.0630387068,-0.0933702588,-0.328491956,0.0207575317,1.49100566 +0.498439252,1.77308643,-0.498439252,0.00251641381,0.162199169,0.078741841,-0.288728058,-0.0850259215,0.0206671171,0.70521003 +-1.08521414,1.77343249,1.08521414,0.00137546612,0.117393382,0.0544337332,-0.0935310051,-0.343662381,0.020652527,1.53501034 +-1.05488038,1.7735405,1.05488038,0.000866488321,0.134228349,0.0637527779,-0.0869679078,-0.295378804,0.0206509549,1.49194133 +-0.146808416,1.77471435,0.146808416,0.000582151988,0.209488481,0.106975541,-0.931531429,0.00692572724,0.0205508005,0.207770884 +-0.179976016,1.77510405,0.179976016,0.000283023954,0.208769411,0.105467029,-0.892242014,-0.0146082509,0.0205516703,0.254526585 +0.294754773,1.77530575,-0.294754773,0.00214203587,0.178887457,0.086961396,-0.747398138,-0.061546959,0.0205900706,0.417013764 +0.725194335,1.77625024,-0.725194335,0.00190411287,0.160488263,0.0775637403,-0.0834841356,-0.238920391,0.0206844211,1.02620399 +-0.118791163,1.77720785,0.118791163,0.000293720223,0.206552461,0.106915392,-0.967406511,0.0207117945,0.0205446333,0.168059453 +-0.792431116,1.77721334,0.792431116,0.00415803911,0.171255216,0.0835348517,-0.0765286833,-0.324484915,0.0206236634,1.12191296 +1.13663244,1.77787435,-1.13663232,0.000304844085,0.0950717852,0.0422705375,-0.0336689167,-0.40106523,0.0207647868,1.60754478 +-0.0710649192,1.77788711,0.0710649192,0.000117693606,0.285183668,0.199213102,-0.832628012,0.0490436479,0.0205362197,0.10074991 +0.288631082,1.77804923,-0.288631082,0.00164793304,0.180200785,0.0874807537,-0.759397924,-0.057432618,0.0205851961,0.40827322 +0.30469355,1.77818346,-0.30469358,0.00256421696,0.177704811,0.0861962512,-0.714451849,-0.0653808191,0.0205922555,0.430946589 +0.43583104,1.77820683,-0.43583101,0.00380050531,0.16504024,0.0799066946,-0.387287736,-0.0785733908,0.0206425469,0.616530299 +-0.0837766156,1.7789396,0.0837766156,0.000270731369,0.211259991,0.121380314,-0.944246531,0.0250339769,0.0205358826,0.118757889 +-1.22864902,1.77929842,1.22864902,0.000469652208,0.0517960042,0.0325967558,1.07000041,-0.0337870717,0.0207029097,1.73775458 +-1.03525758,1.7793982,1.0352577,0.000671880378,0.14436914,0.0696360618,-0.0715288073,-0.286513776,0.0206450913,1.46411598 +-1.20816648,1.77951038,1.20816648,0.00103767042,0.0571653694,0.0278172344,0.835718036,-0.0963895097,0.0207016747,1.70878482 +0.160136282,1.77951813,-0.160136282,0.000743026147,0.192388043,0.0958076566,-1.02918792,-0.00405947538,0.0205549747,0.226989746 +-1.18358707,1.77976525,1.18358707,0.00070868287,0.0719845071,0.032482259,0.36105442,-0.233266488,0.0206967499,1.67402053 +-0.100356817,1.77990317,0.10035681,0.0003558303,0.204689935,0.10910479,-0.976276278,0.0184207074,0.0205377899,0.142239273 +1.13291419,1.78015816,-1.13291419,0.000172370725,0.0965721458,0.0430470631,-0.0458819456,-0.409170628,0.0207621977,1.6022526 +0.29390195,1.78038466,-0.29390195,3.48614885e-05,0.179305613,0.0869590268,-0.743728817,-0.0614088476,0.0205856021,0.41607213 +-1.12184715,1.78107727,1.12184715,0.00173645513,0.0998901501,0.045000907,-0.0608170852,-0.381882161,0.0206555277,1.58664584 +0.188825577,1.78135347,-0.188825577,0.0011637701,0.193312153,0.0956354365,-0.978545904,-0.0129565131,0.0205587503,0.268356442 +1.08265042,1.78151202,-1.08265042,0.0012034555,0.120914549,0.0568286479,-0.0802632049,-0.3720074,0.0207495224,1.53143597 +1.13774264,1.78157687,-1.13774264,0.000716083858,0.0941452608,0.0418405049,-0.0291389544,-0.402142227,0.0207627583,1.60909224 +0.630642831,1.78209162,-0.630642831,0.00404806063,0.16096282,0.0779691339,-0.177404195,-0.121772446,0.0206696857,0.893275142 +-1.13960624,1.78252769,1.13960624,0.00188231096,0.0912285969,0.0404289551,-0.0251742937,-0.374139011,0.0206636153,1.61177742 +0.29516384,1.78282619,-0.29516381,0.000795083062,0.179237753,0.0869284123,-0.737650096,-0.0622059628,0.0205846708,0.417689532 +0.84463346,1.7838701,-0.84463352,0.00338919042,0.164400339,0.0802558139,-0.0669916645,-0.333774447,0.0206964687,1.19591808 +0.290988058,1.78393018,-0.290988058,0.002055733,0.179790348,0.0872395784,-0.747772336,-0.0603646971,0.0205828194,0.411723524 +1.12535274,1.78424597,-1.12535274,0.000897376449,0.0999061018,0.0449962765,-0.0445037782,-0.40251708,0.020758139,1.59153497 +-1.018677,1.78425586,1.018677,0.000876055972,0.152663231,0.0743626654,-0.0626809448,-0.27752921,0.0206400808,1.44087148 +0.756494343,1.78436875,-0.756494403,0.00304404064,0.160903901,0.0780043155,-0.0743354559,-0.246826157,0.0206860285,1.07008791 +0.375187933,1.78495419,-0.375187933,0.00572873466,0.168476596,0.0817481056,-0.507017612,-0.0830204934,0.0206187274,0.531763375 +0.140636861,1.78522313,-0.140636861,0.001101539,0.19203718,0.0960546508,-1.05812621,0.00126976194,0.020548448,0.200381547 +0.363621294,1.78534794,-0.363621294,0.00141086592,0.169457376,0.0822539553,-0.538877845,-0.087611258,0.0206154939,0.515744448 +0.476155251,1.78591549,-0.476155251,0.00218745973,0.162767678,0.0788299143,-0.287251472,-0.0778877437,0.0206511524,0.674103141 +0.178201646,1.78627491,-0.178201646,0.000350111397,0.193254456,0.0957647711,-0.993007064,-0.0111401593,0.0205544159,0.253840119 +-1.17629862,1.78630137,1.1762985,0.000946335727,0.0746903047,0.0334303118,0.270521969,-0.267861068,0.0206847135,1.6636641 +-0.82743144,1.7869978,0.82743144,0.00509731192,0.17217344,0.084296748,-0.0722805709,-0.327554852,0.0206199531,1.17062664 +1.0430038,1.78704691,-1.0430038,0.00106058165,0.138057441,0.0662661046,-0.0910443813,-0.293168843,0.0207455307,1.47508764 +-0.390758067,1.78711295,0.390758038,0.00420575496,0.170317948,0.0824130476,-0.56057024,-0.140103653,0.0205017403,0.553638518 +-0.100070611,1.78758478,0.100070611,0.00013265977,0.204698026,0.108998977,-0.974578261,0.0159125458,0.0205332506,0.142270356 +-0.0835063979,1.78771746,0.0835063905,0.000183290336,0.210732192,0.120935448,-0.943523765,0.0233016908,0.0205305945,0.118788183 +-0.0708099976,1.78779769,0.0708099976,8.74515972e-05,0.284251451,0.198546454,-0.834818602,0.0480363928,0.0205302089,0.100781232 +-0.736994743,1.78844833,0.736994743,0.00574012892,0.170806259,0.0830825791,-0.124682695,-0.271539301,0.0206069034,1.04479945 +0.126922831,1.78862119,-0.126922831,0.0004281211,0.189936876,0.0956968293,-1.07547081,0.00405876804,0.0205430929,0.179804951 +0.484967411,1.78882587,-0.484967411,0.000369804184,0.162394837,0.0784447044,-0.268919736,-0.0743194073,0.0206497665,0.686970353 +-1.04713273,1.7890259,1.04713273,0.000384321815,0.137986258,0.0662264526,-0.0686778054,-0.293237597,0.020638559,1.48096323 +-1.058671,1.78910136,1.058671,0.000479128154,0.131821841,0.0632145554,-0.0619177148,-0.319384873,0.0206379648,1.49725711 +-0.610971034,1.78944969,0.610971093,0.00378910382,0.165872544,0.0802062154,-0.235617876,-0.151816294,0.0205742735,0.865973055 +0.117853656,1.79092145,-0.117853656,0.000305191264,0.188699111,0.0955023095,-1.08492255,0.00469694193,0.020539891,0.167485982 +-1.02845192,1.79098451,1.02845192,0.000580167805,0.148373514,0.0722806677,-0.0547393374,-0.283549547,0.0206348635,1.45459425 +0.956852078,1.79244125,-0.956852078,0.0025878849,0.159413397,0.0779219121,-0.109296739,-0.304153621,0.0207185447,1.35345626 +-0.470080674,1.79286408,0.470080674,0.0060564084,0.165610179,0.0798505768,-0.413950562,-0.139259011,0.0205156412,0.666767001 +-1.22868967,1.79327381,1.22868967,0.000334268989,0.051821392,0.0334434547,1.02346802,-0.0314313918,0.0206910446,1.73775864 +-1.21003151,1.79343462,1.21003151,0.000735986221,0.0557421334,0.0273325667,0.814945221,-0.0857851803,0.0206899308,1.71136987 +-1.18761611,1.79362619,1.18761611,0.000673458155,0.0688173845,0.0311043933,0.395172268,-0.215119094,0.0206851624,1.67966712 +0.111674502,1.79370856,-0.111674502,0.00036447047,0.188059598,0.096078679,-1.08723938,0.00435500033,0.0205371156,0.158346564 +0.0979764313,1.79372871,-0.0979764313,0.000365543296,0.188940987,0.0985506773,-1.08579147,0.00638509728,0.0205334406,0.13997753 +0.0812367275,1.79379392,-0.0812367275,0.000440331321,0.199474514,0.112204842,-1.05726933,0.0146550881,0.0205301065,0.116098754 +0.0684076995,1.7938652,-0.0684076995,0.000200553506,0.290050864,0.198983982,-0.943156362,0.0261745602,0.0205273293,0.0977937505 +-0.110521287,1.79435182,0.110521287,0.00025317978,0.206398934,0.108172454,-0.964463234,0.0135894325,0.020532405,0.156415299 +-0.10043776,1.79546547,0.10043776,0.000240566296,0.204978824,0.10899011,-0.97137332,0.0148613621,0.0205286909,0.142345339 +-0.0838598683,1.79670775,0.0838598683,0.000272627862,0.21015954,0.120419763,-0.942963839,0.0228285287,0.0205253344,0.118867658 +0.721767724,1.79689145,-0.721767664,0.00310277124,0.159879029,0.0772934854,-0.0866379216,-0.199042693,0.0206711125,1.02145195 +0.232525736,1.79692054,-0.232525736,0.00205824221,0.188561857,0.0923037454,-0.884120047,-0.0385209918,0.0205586292,0.329538345 +0.700049102,1.79720116,-0.700049043,0.00156074786,0.160486966,0.0776351392,-0.103571445,-0.175886914,0.0206670053,0.990503132 +-0.423326403,1.79783809,0.423326403,0.00385882217,0.168555155,0.0810582489,-0.484265417,-0.135596797,0.0204999503,0.599466443 +-0.0711581707,1.79791641,0.0711581782,0.00011840654,0.282861978,0.197509512,-0.834580004,0.0483012423,0.0205242299,0.100875124 +-0.119934693,1.79810214,0.119934693,0.000356582488,0.20775412,0.107125044,-0.956881881,0.0116597433,0.0205330793,0.170064673 +-1.08437812,1.79873729,1.08437824,0.00123655552,0.117365494,0.0556497052,-0.0513215251,-0.37152946,0.0206310637,1.53371572 +0.119281456,1.79886556,-0.119281456,0.00036619106,0.188777983,0.0953781083,-1.07958508,0.00281011174,0.0205357671,0.169580787 +1.15764999,1.79912162,-1.15764999,0.000701715064,0.0825714096,0.0365770012,0.0667025968,-0.343818128,0.0207596142,1.63717103 +1.17798662,1.79971898,-1.17798662,0.000594406156,0.0725944042,0.0322426818,0.20738627,-0.281673819,0.0207704771,1.66594052 +0.818965495,1.79977298,-0.818965435,0.00418431126,0.162662134,0.0791793317,-0.0590922497,-0.287642837,0.0206843484,1.15898776 +1.07976949,1.79995644,-1.07976949,0.00196362869,0.121984124,0.0579583868,-0.0585250109,-0.38574934,0.0207348429,1.52721119 +-0.890750945,1.80018878,0.890750945,0.00296423864,0.171734557,0.0846434832,-0.0639279336,-0.295637786,0.0206164122,1.26027894 +0.485483557,1.80082726,-0.485483557,0.00217157276,0.162497088,0.0784529895,-0.255094469,-0.0668010265,0.020640729,0.68743223 +-0.116324618,1.8031832,0.116324618,0.000194622102,0.207363993,0.107371531,-0.957578897,0.0100758411,0.0205293745,0.165040076 +-0.12827988,1.80323195,0.12827988,0.000544496754,0.208928064,0.107296355,-0.941267133,0.00588590931,0.0205315277,0.181637555 +-0.152250901,1.80348587,0.152250901,0.000702237885,0.211129397,0.107242666,-0.907830596,-0.0100408355,0.0205353461,0.216561764 +0.886469841,1.80468035,-0.886469841,0.00282386737,0.16240406,0.0792870075,-0.0978191197,-0.31582123,0.0206897724,1.25406206 +-0.120959923,1.80710053,0.120959923,0.000277944899,0.207930207,0.107038535,-0.951557219,0.00754847191,0.0205282159,0.171538651 +-0.990063071,1.80760217,0.990063071,0.00141089037,0.162665993,0.0798716322,-0.0567966029,-0.273217201,0.0206187386,1.40129781 +1.22869217,1.80788434,-1.22869205,0.000301445427,0.0488870069,0.0337726586,0.895551801,-0.0344356336,0.020774344,1.73776889 +1.21575725,1.80806458,-1.21575737,0.000656220189,0.0504932851,0.0257098693,0.783694983,-0.0741342902,0.0207732767,1.71947479 +1.20037222,1.80822873,-1.20037234,0.000661596598,0.0592957288,0.0272456035,0.507676005,-0.165018886,0.0207699891,1.697716 +0.0987424552,1.81058455,-0.0987424552,0.00035154447,0.188243672,0.0980393589,-1.08076453,0.00584133621,0.0205246005,0.140142217 +-1.17355406,1.81156981,1.17355418,0.000755748595,0.0739016086,0.0326465219,0.15780656,-0.282249808,0.0206610579,1.65977204 +0.0819787979,1.81168342,-0.0819787979,0.000288183772,0.198959365,0.111689419,-1.05301046,0.0170667209,0.0205213577,0.116329357 +0.0691362768,1.81280589,-0.0691362768,0.00012438967,0.288278878,0.197567463,-0.940120578,0.0292693526,0.0205188226,0.0980850756 +1.13083589,1.81344724,-1.13083589,0.000196409092,0.0902066007,0.0429445282,-0.0407623015,-0.526102543,0.0207328629,1.59931004 +-0.0998108163,1.81392705,0.0998108238,0.000393144408,0.205177397,0.108534835,-0.966157556,0.00953937881,0.020518424,0.142494187 +1.13439441,1.81394696,-1.13439441,0.000436388218,0.088446863,0.0419314578,-0.0420411713,-0.513159096,0.0207340885,1.60435319 +-0.0833609924,1.81410134,0.0833609998,0.000359856989,0.208753198,0.119154938,-0.943245769,0.0204856768,0.0205151718,0.118971027 +-0.0707587004,1.81421113,0.0707587004,0.000148584324,0.280263215,0.195522308,-0.839263856,0.0484402888,0.020514559,0.100947894 +-1.13725388,1.81458628,1.13725388,0.000852575118,0.0849487633,0.0405232236,-0.0539071597,-0.502091885,0.0206321403,1.60844672 +-0.934690833,1.81466639,0.934690833,0.00284252665,0.171643198,0.0847526416,-0.0643128976,-0.28106761,0.0206087884,1.32230115 +1.18510425,1.81484067,-1.18510437,0.000467088335,0.0671014562,0.0300160572,0.274989545,-0.246018678,0.0207599439,1.67600262 +-1.06815195,1.81501925,1.06815195,0.00112649647,0.127286166,0.0616879836,-0.0281364638,-0.342754602,0.0206163079,1.51084745 +1.00529814,1.81520975,-1.00529814,0.00223821448,0.146774411,0.0708731338,-0.11593537,-0.284639418,0.0207157731,1.42212784 +-1.12444842,1.81527996,1.12444854,0.0009348772,0.0923116505,0.0448319539,-0.0376390144,-0.523175359,0.0206240658,1.59032309 +-0.858641088,1.81529915,0.858641088,0.00298532424,0.17108953,0.0839920714,-0.0833640918,-0.291681498,0.0206024162,1.21575308 +0.511814356,1.81583786,-0.511814356,0.00295991031,0.162687153,0.0785365775,-0.222015932,-0.0457012914,0.0206331518,0.72401756 +1.17746437,1.81587315,-1.17746437,0.000627848145,0.0711426586,0.0313962288,0.163611397,-0.285219222,0.0207569506,1.66524291 +-0.147207603,1.81616414,0.147207603,0.000584523834,0.211445421,0.107461952,-0.906002223,-0.00995989982,0.0205278341,0.209793031 +1.12535608,1.81672931,-1.12535608,0.000855870137,0.0957297161,0.0463078395,-0.0241813827,-0.51463747,0.0207286999,1.59153688 +-0.161505282,1.81808209,0.161505282,0.000868774834,0.211528599,0.107093498,-0.884097219,-0.0195773561,0.0205271952,0.229227766 +0.17700471,1.81822884,-0.17700471,0.000679610181,0.19274649,0.0953119695,-0.977972746,-0.0198190529,0.0205372851,0.250484049 +-1.18413651,1.81845772,1.18413651,0.000330963492,0.0684069693,0.0305110272,0.274241626,-0.232935935,0.0206614397,1.67473555 +0.708233118,1.81847191,-0.708233118,0.00310571748,0.160281777,0.0775324404,-0.0836942047,-0.153520301,0.0206544604,1.00197268 +1.22873211,1.81953573,-1.22873223,0.000200170718,0.0491183698,0.0347628221,0.859473407,-0.0310688727,0.0207646992,1.73779464 +1.21771836,1.81973112,-1.21771836,0.000440775679,0.0498395488,0.0257218443,0.769840479,-0.0624128394,0.0207638852,1.7222178 +-1.0467633,1.81980586,1.04676318,0.00100668042,0.138814092,0.0675153062,-0.035289675,-0.294644266,0.0206133742,1.4806819 +0.215573579,1.81992435,-0.215573594,0.00112355512,0.190752685,0.0936883166,-0.896119475,-0.0368779562,0.0205429271,0.306325138 +1.20449734,1.81996512,-1.20449734,0.000556208484,0.0567832887,0.026185289,0.540806592,-0.137597203,0.0207613166,1.70351887 +-0.110730797,1.82017732,0.110730797,0.000209106336,0.206441581,0.107612573,-0.955156326,0.00684413454,0.0205177162,0.156712353 +0.0689516813,1.82119942,-0.0689516813,9.90317276e-05,0.287324578,0.196825936,-0.937694192,0.0306685977,0.0205147918,0.0981419086 +0.0817121789,1.82130456,-0.0817121714,0.000253153295,0.198730037,0.111449726,-1.04896843,0.0178390071,0.0205163993,0.116383642 +-0.300643891,1.82145154,0.300643921,0.00220774836,0.181190148,0.0875416771,-0.684869885,-0.102625445,0.0204913449,0.425179958 +0.0983638689,1.82147527,-0.0983638689,0.000272775476,0.188251048,0.0979872569,-1.07505143,0.00476064766,0.0205187108,0.140191704 +-0.300400734,1.8215239,0.300400704,0.00205968926,0.181225717,0.0875559971,-0.685250342,-0.10243766,0.0204913504,0.424839705 +-0.401577741,1.8215754,0.401577741,0.00279806601,0.171024978,0.0819355696,-0.492718935,-0.133574471,0.0204766393,0.570206285 +-0.30028525,1.82161379,0.30028525,0.000724855054,0.18125543,0.0875728726,-0.685317814,-0.102336645,0.0204913281,0.424679667 +-0.300446361,1.82167888,0.300446361,3.6842e-08,0.181222051,0.0875521749,-0.684969962,-0.102487884,0.020491235,0.424910992 +-0.300562233,1.82172298,0.300562233,0.000533079845,0.181212515,0.0875469074,-0.684652805,-0.102522761,0.0204911716,0.425070673 +-0.300340563,1.82173908,0.300340563,6.65949415e-07,0.181244627,0.087565966,-0.685110152,-0.102392651,0.0204912368,0.424759626 +-0.300450623,1.82178605,0.300450593,0.000564144342,0.181223094,0.0875527114,-0.684852064,-0.10247729,0.0204911605,0.42492041 +-0.300556809,1.82188642,0.300556809,0.00291413162,0.18121171,0.0875463784,-0.684542477,-0.102489017,0.0204910636,0.425060064 +-0.298432142,1.82211614,0.298432112,0.00128977676,0.181728527,0.0878601447,-0.68772006,-0.101295911,0.0204917844,0.422047824 +-0.299547762,1.82312608,0.299547791,0.00110483356,0.18143405,0.0876803696,-0.685281873,-0.102030687,0.0204909351,0.423625827 +-0.185002625,1.82317519,0.185002625,0.00115437375,0.209817737,0.105447069,-0.850050569,-0.0349143595,0.0205248334,0.263223648 +1.15131295,1.8236959,-1.15131307,0.000629864051,0.0821051896,0.03872592,-0.0263661556,-0.415834785,0.0207366236,1.62820888 +0.65228641,1.82396877,-0.65228641,0.0038561658,0.16053012,0.077743873,-0.133076802,-0.0838259831,0.020645529,0.923603892 +0.110527873,1.82419443,-0.110527873,0.000198622001,0.187706858,0.0956289247,-1.07283878,0.00197708374,0.0205200277,0.156579196 +0.132807627,1.82430995,-0.132807627,0.00037531578,0.189683422,0.0949999616,-1.04764199,-0.00618323637,0.0205250699,0.18793878 +0.466083109,1.824404,-0.466083109,0.00413726969,0.1644779,0.0794637129,-0.27155143,-0.0666420236,0.0206205361,0.659457564 +-0.956267595,1.82479239,0.956267595,0.00186692644,0.168482348,0.0829225481,-0.0726923943,-0.264320076,0.0206034314,1.35290265 +-1.18164849,1.8256216,1.18164849,0.000562265574,0.0693474934,0.0308845621,0.213458136,-0.23229,0.0206528436,1.67122579 +0.171475694,1.8263731,-0.171475694,0.000676364289,0.192655206,0.0953445509,-0.982262969,-0.0199751798,0.0205319449,0.243010551 +-0.134457767,1.82720089,0.134457767,0.000419757853,0.210397646,0.107490316,-0.919518113,-0.00500138989,0.0205190871,0.190699011 +-0.218060866,1.82786584,0.218060866,0.00210224092,0.20131965,0.0999979675,-0.807595134,-0.0539316274,0.0205200519,0.308670402 +-1.09595883,1.82887793,1.09595883,0.000964941806,0.122635536,0.0639379621,0.04674685,-0.491092503,0.0206014328,1.55009449 +1.05705142,1.82935882,-1.05705142,0.00156976935,0.132808179,0.0644226819,-0.0533190817,-0.314175963,0.0207099877,1.49509013 +0.184199214,1.83040392,-0.184199214,0.00106477051,0.192001402,0.0947489664,-0.954566717,-0.0268354416,0.0205320809,0.260660112 +-1.01038241,1.83044016,1.01038241,0.000728151703,0.154448837,0.0753506348,-0.0553915761,-0.259771585,0.0206049737,1.42914808 +-0.0712898821,1.83066678,0.0712898821,0.000119182063,0.277441144,0.19323042,-0.835844576,0.0494341552,0.0205051154,0.101056747 +-0.08403714,1.83160472,0.08403714,0.000275242492,0.207832828,0.118256472,-0.937560499,0.0192133337,0.0205051228,0.119117752 +-1.16616416,1.83160841,1.16616416,0.000638863945,0.0758195519,0.0362052023,0.00374905113,-0.327149689,0.0206380859,1.6493206 +1.09198475,1.83187723,-1.09198475,0.0012802924,0.12528801,0.0653076619,0.0702805668,-0.49431777,0.0207022615,1.5444839 +0.175239459,1.83204472,-0.175239474,0.000587492366,0.192559466,0.0951873511,-0.972113609,-0.0231664162,0.0205296967,0.248250484 +-0.100680389,1.83251929,0.100680389,0.000279890315,0.205031827,0.108228929,-0.958061934,0.00519232173,0.0205075983,0.142690659 +-0.593213618,1.83254707,0.593213618,0.00448423903,0.164686993,0.0792637989,-0.223845914,-0.0932924896,0.0205319989,0.842063785 +0.112221412,1.83319151,-0.112221412,0.000116310403,0.187623575,0.0951873064,-1.0679903,0.000672866707,0.0205156226,0.159300134 +0.115474895,1.83333445,-0.115474895,0.000251137826,0.188128799,0.0950696245,-1.06498206,0.000489179336,0.0205159504,0.163871452 +-1.02107632,1.83335996,1.02107632,0.000783465512,0.149914533,0.0731363893,-0.0479039997,-0.267440528,0.0206026509,1.44416773 +1.1687839,1.83352757,-1.1687839,0.000646021799,0.075612314,0.0354614966,-0.00833851099,-0.316406399,0.0207394604,1.65296662 +-1.22869682,1.83392572,1.22869682,0.000238765904,0.0521977134,0.0375729799,0.909058928,-0.0237921253,0.0206594579,1.73779154 +0.0691200793,1.83397627,-0.0691200793,0.000124778919,0.288003683,0.197418749,-0.930164039,0.0311403237,0.0205091778,0.0979059637 +-1.21793497,1.83407068,1.21793497,0.000526164542,0.0525015667,0.0273670815,0.808933616,-0.0457623228,0.0206591263,1.72257066 +-1.20501089,1.83424425,1.20501089,0.000520687609,0.0589792058,0.0273527484,0.576977551,-0.10049025,0.0206567198,1.70429158 +-0.554485798,1.8344723,0.554485798,0.00439680228,0.16467911,0.079027757,-0.277052253,-0.0768483132,0.0205131862,0.786511004 +-0.992660344,1.83455229,0.992660403,0.000770060928,0.15819639,0.0773344785,-0.0625224859,-0.257883459,0.0206003394,1.40395439 +-0.212278038,1.83548355,0.212278023,0.00114716636,0.203342214,0.101233192,-0.806792021,-0.0529786944,0.0205174349,0.300512999 +0.0819796026,1.83586359,-0.0819796026,0.000288128067,0.198456585,0.111338302,-1.04210734,0.0182849504,0.0205093939,0.116121382 +-0.683007777,1.83586991,0.683007836,0.00452909293,0.166703552,0.0807728395,-0.155735582,-0.146934852,0.0205658711,0.968079329 +0.974666119,1.83640456,-0.974666119,0.00219193869,0.151556581,0.0734560937,-0.133173525,-0.275068313,0.0206907503,1.37863827 +0.225973427,1.83689594,-0.225973442,0.00492869038,0.189203233,0.0926418677,-0.862543821,-0.0484103411,0.0205357559,0.321150512 +0.114037246,1.83772171,-0.114037238,0.000247162388,0.187812731,0.0949836373,-1.064327,-8.00707785e-05,0.0205134097,0.161763802 +0.0987673402,1.83801556,-0.0987673402,0.000239427682,0.187439978,0.0974473208,-1.06830215,0.00420296239,0.020510409,0.139890194 +-0.216769457,1.83807886,0.216769457,0.000299782201,0.201964125,0.100348689,-0.799678206,-0.0555974469,0.0205154121,0.307274371 +0.925151229,1.83829379,-0.925151229,0.00311886007,0.161148787,0.0787471458,-0.13714847,-0.280171156,0.0206733961,1.30924332 +0.141518265,1.83887827,-0.141518265,0.000705645594,0.190497503,0.0948344767,-1.02744567,-0.0120276511,0.0205193199,0.200694978 +0.128181666,1.83921111,-0.128181666,0.000419331511,0.189150155,0.0948983058,-1.04518998,-0.00585842598,0.0205157865,0.181352466 +0.32745862,1.83967948,-0.32745862,0.00391670503,0.175564408,0.0853056163,-0.600773931,-0.0832829252,0.0205669366,0.463304162 +-1.08449292,1.84026313,1.08449292,0.000915442943,0.142434269,0.0762693137,0.0792466775,-0.426942319,0.020590378,1.53395808 +1.00371552,1.84031117,-1.00371552,0.00119494321,0.145456001,0.0702255145,-0.121829376,-0.270011008,0.0206962787,1.41979098 +-0.100442491,1.84055042,0.100442484,0.000119928693,0.204935372,0.108037353,-0.954669893,0.00315825013,0.0205030311,0.142794207 +0.773419321,1.84065878,-0.77341938,0.00561724091,0.161262885,0.0781759471,-0.0796697289,-0.195860073,0.0206464007,1.09610605 +-0.0838173255,1.84066081,0.0838173255,0.000184252523,0.207174569,0.117645942,-0.934617221,0.0186182186,0.0204999242,0.119220689 +-1.17403972,1.84066343,1.17403972,0.000479182403,0.0741932094,0.0360170752,0.0390225351,-0.250334024,0.0206343103,1.66046381 +-0.07108666,1.8407104,0.07108666,8.7020795e-05,0.27534014,0.191537321,-0.836547375,0.0502817407,0.0204993058,0.101157069 +-1.13673925,1.84087777,1.13673925,0.000315005367,0.238799572,0.152050167,-0.103841491,-0.621178269,0.0206081439,1.60771871 +-1.00963175,1.84092307,1.00963175,0.00087120448,0.154113144,0.0751337633,-0.0586790293,-0.251788616,0.0205971245,1.42805624 +0.939477801,1.84098101,-0.939477801,0.000932977011,0.15950115,0.0778190941,-0.143800989,-0.276319444,0.0206749663,1.32958245 +1.13057578,1.84103286,-1.13057578,7.09416345e-05,0.257480711,0.162566319,-0.0920519754,-0.657853842,0.0207064319,1.59894133 +1.13321769,1.84113312,-1.13321769,0.000163292119,0.248120919,0.157233745,-0.106153235,-0.638441563,0.0207084157,1.60268772 +1.02500606,1.84116077,-1.02500606,0.00122544228,0.141434163,0.0687653348,-0.0845821947,-0.27585125,0.0206992142,1.44974422 +-0.107011564,1.84138274,0.107011572,0.000319254701,0.206264287,0.107862361,-0.948179424,0.000839404296,0.0205046069,0.151598707 +0.107457861,1.84147644,-0.107457861,0.000244494557,0.187236711,0.0958231166,-1.06544399,0.0017446361,0.0205104426,0.152079567 +-0.122207418,1.84166396,0.122207418,0.000462776399,0.208911732,0.107065782,-0.932906806,-0.00500094332,0.0205090679,0.173955828 +-0.21813859,1.84217918,0.21813859,0.00168877374,0.2016574,0.100151435,-0.794510305,-0.0564864315,0.020512972,0.30905205 +-1.12709272,1.84236968,1.12709272,0.000331243471,0.276109993,0.17532663,-0.0506256074,-0.658284783,0.0205993168,1.59406292 +0.571736336,1.84256458,-0.571736336,0.0052521578,0.163234174,0.0789079666,-0.143588036,-0.0346010625,0.0206179805,0.809830546 +-1.20242345,1.84335232,1.20242345,0.00035675228,0.0599237382,0.0277688894,0.509238422,-0.0968069956,0.0206461065,1.70064414 +1.126495,1.84357345,-1.126495,0.00030594875,0.278980851,0.177489996,-0.0609633885,-0.643679082,0.0207027625,1.59314704 +-0.213769034,1.84361744,0.213769034,0.00121527305,0.203026533,0.100984804,-0.799282193,-0.055731602,0.0205130968,0.302693963 +1.14703906,1.84452653,-1.14703918,0.000235222207,0.213061005,0.139033973,-0.146337211,-0.491608679,0.0207169168,1.62216449 +0.145440459,1.84499514,-0.145440459,0.000501353992,0.190387294,0.0946673974,-1.01674175,-0.0154156629,0.0205168668,0.206153303 +-0.392189682,1.8455801,0.392189682,0.00397316832,0.171770826,0.0823324993,-0.492831469,-0.125975192,0.0204621255,0.556306124 +0.139700279,1.8459667,-0.139700294,0.00094776717,0.190398663,0.09482418,-1.02471423,-0.0120079285,0.0205150601,0.198067084 +1.19936645,1.8464663,-1.19936645,0.000380737532,0.0613494813,0.0284715835,0.413431197,-0.0935806334,0.0207372103,1.69617677 +1.1615504,1.84823883,-1.1615504,0.000257581589,0.176757231,0.118514143,-0.184793919,-0.340726852,0.020725783,1.64273632 +-0.100753665,1.84824562,0.100753665,0.000292554469,0.20467326,0.107798368,-0.950747252,0.00212159799,0.0204985905,0.142812699 +-1.16033721,1.84836996,1.16033721,0.000238437467,0.177345335,0.121340476,-0.145455942,-0.370637238,0.0206224322,1.64107859 +0.068541564,1.84861028,-0.068541564,0.000102864753,0.287928581,0.197557539,-0.920605659,0.0320156142,0.0205026586,0.0976360366 +0.0813968629,1.84878135,-0.0813968554,0.000214349042,0.198323816,0.111283168,-1.03456819,0.0182738993,0.0205031112,0.115867607 +0.0981817916,1.84905982,-0.0981817991,0.000146224658,0.187455788,0.0973755196,-1.0614717,0.00381369097,0.0205047783,0.139643803 +-1.22868657,1.84933734,1.22868657,0.000165946476,0.0522443168,0.0389825441,0.874223888,-0.0189605001,0.020644458,1.7377876 +-0.084101826,1.84942031,0.084101826,0.000276981824,0.206616059,0.117143929,-0.931516767,0.0187736712,0.0204950105,0.119223692 +-1.22013402,1.84945619,1.22013402,0.000363532017,0.0519076921,0.0276147556,0.804950774,-0.0300195813,0.0206442215,1.7256912 +-1.2098676,1.84959865,1.2098676,0.000441561162,0.0565017462,0.0264691394,0.625035167,-0.0528447814,0.0206423495,1.71117115 +-0.18724677,1.84995615,0.187246785,0.00112873921,0.209417254,0.105032504,-0.828721642,-0.0424978845,0.0205106381,0.266784191 +-0.0713435858,1.8504827,0.0713435858,0.000120030294,0.273473203,0.190105692,-0.832741857,0.0510608107,0.0204938427,0.101144388 +-0.943476558,1.85073948,0.943476558,0.00257950672,0.168947145,0.0829443112,-0.0926457942,-0.251333207,0.0205843095,1.33526635 +-0.164386153,1.8523128,0.164386153,0.00113366311,0.211782753,0.10678041,-0.86124754,-0.0345904641,0.0205085743,0.233541965 +-1.10576737,1.85238028,1.10576737,0.000337685924,0.377124846,0.245674521,0.0933184475,-0.620204985,0.0205791295,1.56396794 +-0.133369401,1.85304546,0.133369401,0.000505803211,0.210448906,0.107319966,-0.907136381,-0.0141570177,0.020504659,0.189300969 +-1.16769528,1.85322237,1.16769528,0.000198144669,0.165329874,0.117811404,-0.125034451,-0.267886937,0.0206218585,1.65149021 +0.592491984,1.85331917,-0.592491984,0.00199372345,0.162603348,0.0785668939,-0.11171937,-0.0351744331,0.0206145234,0.838734746 +-0.499647379,1.85336339,0.499647379,0.00816755928,0.165952861,0.0794285461,-0.291608214,-0.102649786,0.0204713885,0.712424517 +1.04258835,1.85417366,-1.04258847,0.00117407169,0.139193505,0.0681547672,-0.0583909228,-0.265788883,0.0206922777,1.47460556 +1.07564735,1.85426891,-1.07564735,0.000912350253,0.149761856,0.079872787,0.0742631629,-0.354528844,0.020685181,1.52139235 +1.10171533,1.85554695,-1.10171533,0.000439299532,0.413756192,0.271007299,0.137548506,-0.628548861,0.0206745081,1.55824614 +0.0983193517,1.85554862,-0.0983193517,0.000368307985,0.187299863,0.0973021239,-1.05803776,0.00418573618,0.0205015205,0.139499009 +-1.04722011,1.85594642,1.04722011,0.000893546792,0.14627555,0.0727692246,-0.0100797005,-0.243242979,0.0205863714,1.48102713 +0.0815432444,1.85642433,-0.0815432519,0.000285646296,0.198528141,0.111500993,-1.03043163,0.0184880178,0.0204995051,0.115741968 +-0.147886172,1.85704088,0.147886172,0.000598868646,0.211735457,0.10716287,-0.882745266,-0.0261733755,0.0205055177,0.21119535 +0.0686922371,1.85726142,-0.0686922371,0.000124209095,0.289860904,0.199138641,-0.914961219,0.031465359,0.0204986855,0.0975304171 +-0.119942591,1.85726249,0.119942591,0.000446086458,0.208420724,0.106857583,-0.928405762,-0.00924770627,0.0204995386,0.170303285 +1.02711177,1.85758829,-1.02711177,0.00131053722,0.142471015,0.069447659,-0.086962983,-0.256668061,0.0206870791,1.45287299 +-0.717660308,1.85792065,0.717660308,0.00331150508,0.167659789,0.0813375115,-0.12380299,-0.1644243,0.0205511879,1.01685822 +-1.0446552,1.85840535,1.0446552,0.000519120891,0.147330582,0.0733080432,-0.0122414334,-0.238586396,0.0205845796,1.47741747 +-1.04590571,1.85968482,1.04590571,0.00047933383,0.146947399,0.0731219351,-0.0120406868,-0.23618184,0.0205838215,1.47917593 +-1.09734821,1.8605895,1.09734821,0.000327527523,0.416503698,0.273844153,0.143388048,-0.523927689,0.0205711946,1.55214119 +-0.647855282,1.86110544,0.647855282,0.00528944843,0.165314779,0.0798492432,-0.159480676,-0.101600833,0.0205290988,0.917478085 +1.19535232,1.8614049,-1.19535232,0.000369986723,0.0642417222,0.029801745,0.325101256,-0.0801716819,0.0207234919,1.69056118 +-0.974661112,1.86177003,0.974661231,0.00206839223,0.161853954,0.0790838376,-0.0833535716,-0.232186258,0.0205800403,1.37866628 +0.987388372,1.86237073,-0.987388372,0.00132894586,0.149404347,0.0722386241,-0.140480623,-0.254645169,0.0206776299,1.39666152 +1.22873163,1.86264873,-1.22873163,0.000153293411,0.0489536151,0.037389528,0.76053375,-0.00932723656,0.0207268856,1.73779845 +1.22168565,1.8627857,-1.22168565,0.000336703466,0.0488374829,0.0260242168,0.726550043,-0.0136699807,0.0207262654,1.72783327 +1.2132287,1.86294997,-1.2132287,0.00035353814,0.0527675673,0.0246547479,0.575083911,-0.0345831625,0.0207250174,1.71587229 +1.20336962,1.86722374,-1.20336962,0.000270816439,0.059553124,0.0278102346,0.426971614,-0.0442306548,0.0207196455,1.70183885 +-0.100176021,1.86725414,0.100176029,0.000312088057,0.203880563,0.107169926,-0.941728234,-0.00254207477,0.0204879157,0.143060714 +-0.083618626,1.867342,0.083618626,0.000384539337,0.205305427,0.115968354,-0.926166296,0.0189496763,0.020484861,0.119373858 +-0.070941031,1.86735249,0.070941031,0.000158261275,0.269912481,0.187196076,-0.832651615,0.0530011989,0.0204842202,0.101236507 +1.18878758,1.8676641,-1.18878746,0.000307209586,0.079455778,0.0413863249,0.179632962,-0.0401815996,0.020716764,1.68127751 +1.19727063,1.86790562,-1.19727063,9.31431714e-05,0.0638264939,0.0298660547,0.34414801,-0.050837364,0.0207180865,1.69326603 +0.121423177,1.86995482,-0.12142317,0.000506286393,0.188120201,0.0945957303,-1.03425372,-0.00524622342,0.0204981286,0.17173329 +-0.109214559,1.87061024,0.109214559,0.00028393176,0.20563367,0.106797054,-0.932046294,-0.00744118309,0.020488305,0.155270189 +-0.153339595,1.8709631,0.153339595,0.000406501174,0.212257609,0.107171834,-0.864194036,-0.0350820199,0.0204982162,0.219188407 +-1.06696737,1.87162697,1.06696749,0.00062527851,0.181782916,0.0990296826,0.0681535453,-0.225197107,0.0205703545,1.5089469 +0.11435473,1.87170112,-0.11435473,0.000171858104,0.187454388,0.0948989689,-1.04059267,-0.00271358294,0.0204957891,0.161746562 +1.08973956,1.87226331,-1.08973956,0.000309142633,0.441581547,0.287630528,0.158679068,-0.414231598,0.020665504,1.54132271 +1.1910882,1.87275076,-1.1910882,8.32317164e-05,0.0799862891,0.0422971174,0.208671659,-0.00171674415,0.0207127035,1.68452299 +1.1833123,1.87290132,-1.18331218,0.000126283616,0.164345816,0.130094483,0.0665418506,-0.00452728011,0.0207116064,1.67353439 +-0.90398097,1.87321591,0.90398097,0.00162737898,0.167474017,0.0818782896,-0.123015888,-0.236699671,0.0205659028,1.27858472 +0.933738232,1.87326455,-0.933738232,0.00204137852,0.160049587,0.0780535713,-0.154959559,-0.246481076,0.0206521247,1.32079756 +-1.06618702,1.87374794,1.06618702,0.000244386669,0.182457373,0.0992921442,0.0635004193,-0.215522692,0.0205691606,1.50784886 +1.06496859,1.87385345,-1.06496859,0.000973579823,0.166669965,0.0897566229,0.0616387203,-0.248827875,0.020673519,1.50626421 +0.730021477,1.87449598,-0.730021477,0.00254565058,0.159699947,0.0772343203,-0.0709905699,-0.103559718,0.0206195209,1.03255057 +0.116863497,1.87485254,-0.116863497,0.000132894187,0.187622234,0.0945634693,-1.03698981,-0.0037508558,0.0204945356,0.165374249 +-0.117219865,1.87496269,0.117219865,0.000236350752,0.207334876,0.106317401,-0.92288518,-0.0133218821,0.020488644,0.167328015 +1.21512222,1.87501514,-1.21512222,0.000259807945,0.0522751398,0.0246709362,0.598182082,-0.0146670807,0.0207149591,1.71854711 +1.22872257,1.87536633,-1.22872257,9.89521432e-05,0.0483743139,0.0374710001,0.75129652,-0.00657721423,0.0207164492,1.73778009 +1.22248781,1.87547517,-1.22248769,0.000214778236,0.0486577675,0.026113946,0.732827544,-0.00717893848,0.0207158141,1.72896218 +0.117423803,1.87554395,-0.117423803,0.000300514832,0.187697351,0.094565317,-1.03574526,-0.00398503663,0.020494258,0.166184232 +0.116069123,1.87580693,-0.116069123,0.000324803754,0.187501907,0.0946233049,-1.03681505,-0.00359821063,0.0204939507,0.164227679 +0.068129614,1.87605679,-0.068129614,0.000185326178,0.292970657,0.201705769,-0.903767705,0.0300609469,0.0204890817,0.0974045694 +0.0808036104,1.87613869,-0.0808036104,0.000422950165,0.198515847,0.111646712,-1.01729429,0.0162603743,0.0204894934,0.115524545 +1.18593776,1.87678492,-1.18593776,3.57130084e-05,0.162774444,0.131305635,0.105149597,0.0404794626,0.0207086094,1.67723942 +0.0969863981,1.87680554,-0.0969863981,0.00043930317,0.187581509,0.0974495411,-1.04131854,0.00336272432,0.0204903521,0.138623923 +0.896545291,1.877635,-0.896545231,0.002901837,0.161378533,0.0786575079,-0.130146161,-0.22134155,0.0206421111,1.26830137 +-0.848980784,1.87774062,0.848980784,0.00409117527,0.167897493,0.0819032043,-0.119103551,-0.233222187,0.0205588099,1.20097232 +-1.19973755,1.8785193,1.19973755,0.000357786746,0.0644817725,0.0313545093,0.436718285,-0.00414339686,0.0206109099,1.69668829 +-1.19993031,1.87868404,1.19993031,0.000187360813,0.0643934682,0.031319093,0.43971318,-0.00299644656,0.0206108093,1.69696069 +-1.19984543,1.87888587,1.19984543,1.75272373e-06,0.0644567907,0.0313643925,0.438580513,-0.00263691088,0.0206105467,1.69684172 +-1.19996452,1.87903011,1.19996452,3.01787422e-05,0.0643831044,0.0313290507,0.440704286,-0.00261389371,0.0206104498,1.69700909 +0.610585749,1.87918377,-0.610585749,0.00399881462,0.162186265,0.0783663169,-0.0837292373,-0.0131280702,0.0206004903,0.864157319 +-1.19987905,1.87937331,1.19987905,0.000246315903,0.0644289926,0.0313713029,0.440497637,-0.00275890226,0.0206101146,1.69688749 +-1.04069614,1.88078427,1.04069614,0.000686626998,0.146476984,0.0722533986,-0.0425357074,-0.209041595,0.0205701403,1.471771 +1.19912505,1.88096559,-1.19912505,0.000200173192,0.0630744696,0.0302480478,0.40356493,-0.0313180834,0.020707937,1.69584799 +0.581047893,1.88133109,-0.581047893,0.00342176156,0.163087651,0.0787353218,-0.0928541794,0.00234093377,0.0205939785,0.823227763 +-0.143941522,1.88143575,0.143941522,0.00101221551,0.21188578,0.107303001,-0.873313844,-0.0303794965,0.0204914901,0.204407841 +1.20400906,1.88149524,-1.20400906,0.000222139148,0.0597279146,0.0284399278,0.458221376,-0.0277041122,0.020708207,1.70274663 +0.174897015,1.88153172,-0.174897015,0.000856468861,0.190704167,0.0940921903,-0.939338803,-0.0367816649,0.0205033459,0.247345746 +0.174432144,1.88174736,-0.174432144,0.000501365052,0.190715849,0.0941072926,-0.940063596,-0.0366010591,0.0205031466,0.246696442 +0.17461063,1.88174796,-0.17461063,0.000413162226,0.190715775,0.0941024721,-0.939788938,-0.0367099494,0.0205031838,0.246947661 +0.174540997,1.88187683,-0.174540997,8.79887739e-06,0.190717429,0.0941047594,-0.939795971,-0.0366783962,0.0205031019,0.246856645 +0.174625084,1.88192308,-0.174625084,3.82217991e-07,0.190713048,0.0941007957,-0.939634442,-0.0367420092,0.0205030963,0.246972591 +-1.19438326,1.88206804,1.19438338,0.000246207172,0.0763023645,0.0428895466,0.317368746,0.0399743952,0.0206046626,1.68911576 +-1.00258112,1.8821981,1.00258112,0.00200694473,0.154939488,0.0752906427,-0.0819362849,-0.212743014,0.0205678083,1.41839671 +-1.19449437,1.88235438,1.19449437,2.79041319e-06,0.0763067901,0.0429290794,0.319492221,0.0415654108,0.0206044,1.68927348 +0.174416348,1.88268673,-0.174416348,0.000535825151,0.190689608,0.0940916687,-0.939473331,-0.0367925577,0.0205026511,0.246663973 +-1.19453263,1.88276839,1.19453251,0.000156883601,0.0763043836,0.0429593287,0.321398646,0.0409666412,0.0206040628,1.68932617 +0.175990954,1.88321829,-0.175990954,0.000505455944,0.190637678,0.094040893,-0.93604064,-0.0377943851,0.0205026194,0.248889402 +0.547977209,1.88355887,-0.547977209,0.0044806865,0.163418114,0.0788124204,-0.117482796,0.00211125519,0.020588249,0.775802195 +-1.08320761,1.88405514,1.08320761,0.000227942859,0.428731412,0.27688241,0.120549008,-0.215048894,0.0205596928,1.53191578 +-0.127867877,1.88425457,0.127867877,0.000496469089,0.20946905,0.10679958,-0.899976552,-0.0236336477,0.020486569,0.181654692 +0.285058737,1.88447738,-0.285058737,0.00368427578,0.182519749,0.0888608843,-0.681670189,-0.0714046955,0.0205221586,0.40399754 +1.19339013,1.88485897,-1.19339013,0.000185246754,0.0793828294,0.0434371382,0.282837719,0.00994898565,0.0207033306,1.68773782 +-1.18992305,1.88501942,1.18992305,0.000101300779,0.148527458,0.123999201,0.218719661,0.0723546445,0.0205998458,1.68280792 +-0.0714381784,1.88511944,0.0714381784,0.000121884543,0.26688242,0.184820756,-0.822936654,0.0537366644,0.0204743557,0.101249173 +-1.19003475,1.88524556,1.19003475,1.121107e-06,0.148484424,0.124051489,0.221196935,0.0739174858,0.0205996428,1.68296659 +-1.19007564,1.88560271,1.19007576,6.9007925e-05,0.14852272,0.124099396,0.223110095,0.0730927214,0.0205993652,1.68302298 +-1.08256292,1.88571489,1.08256292,8.71944212e-05,0.424962193,0.27366066,0.113246232,-0.200990468,0.0205589291,1.53101003 +-0.0843107626,1.88645065,0.0843107626,0.000281618879,0.203798234,0.114846133,-0.917847753,0.0172819421,0.0204742625,0.119472794 +-1.06350541,1.88666487,1.06350541,0.000739723619,0.175576925,0.0938918218,0.02392428,-0.185818717,0.0205623638,1.50402749 +1.08162975,1.88723159,-1.08162975,0.000324934314,0.446243316,0.28801778,0.150179997,-0.252798259,0.0206594784,1.52982962 +-0.101147041,1.88776624,0.101147041,0.000240707654,0.203073949,0.106399015,-0.931363702,-0.00699651008,0.0204764921,0.143297583 +1.18861628,1.88809133,-1.18861628,8.03951843e-05,0.160485268,0.131579176,0.193812788,0.0458507761,0.0206997879,1.68098664 +-0.688712001,1.88843584,0.688712001,0.00726588769,0.165783793,0.0802592188,-0.125482723,-0.103221707,0.0205199942,0.976243138 +-0.894179821,1.88901722,0.894179881,0.00126385665,0.166638091,0.0812548399,-0.138421282,-0.22694093,0.0205536857,1.26498818 +0.301124871,1.8894881,-0.301124871,0.00225851173,0.180575565,0.0877713636,-0.635197282,-0.0797661543,0.0205238461,0.427021384 +-1.01380944,1.88958335,1.01380944,0.000755792542,0.151823252,0.0739237666,-0.0762700811,-0.197705418,0.0205635913,1.43417692 +-1.22876096,1.89132643,1.22876096,0.000111036963,0.0505419038,0.0394437201,0.837352693,-0.0033068175,0.0206026416,1.73781264 +-1.22306943,1.89138234,1.22306943,0.000236384571,0.0507477298,0.0275593102,0.829519987,0.00337516633,0.0206024703,1.72976327 +-0.103095703,1.89179897,0.10309571,0.000119354598,0.203371406,0.106191613,-0.927765369,-0.00918453559,0.0204749927,0.14625743 +-1.21690702,1.89226341,1.21690702,0.000309180818,0.0544693358,0.0266524963,0.733848453,0.0172603708,0.0206012093,1.72104883 +-0.0711636469,1.89420331,0.0711636469,7.73700522e-05,0.265560716,0.183780923,-0.820604444,0.0541641526,0.0204692576,0.101214044 +-0.100927658,1.8942281,0.100927651,8.4683692e-05,0.202730402,0.106129095,-0.928130031,-0.00838150922,0.0204730295,0.143344939 +-0.084064275,1.89425397,0.084064275,0.000157796851,0.203049183,0.114341535,-0.914280653,0.0167830009,0.0204699505,0.119483352 +-0.109005414,1.89436817,0.109005414,0.000239749643,0.204656377,0.106449068,-0.91731441,-0.0140609983,0.0204752963,0.154392213 +0.832543492,1.89536166,-0.832543433,0.00556740863,0.161317378,0.0783568025,-0.101654723,-0.164045751,0.0206219498,1.17817533 +-0.179904163,1.89578843,0.179904163,0.001085222,0.210174352,0.105456144,-0.80632937,-0.0496106558,0.020485675,0.254965723 +-0.903702736,1.89618957,0.903702736,0.00142645172,0.165784001,0.0807413533,-0.142720997,-0.21827139,0.0205499027,1.27838326 +0.683015347,1.89622426,-0.683015347,0.00689427042,0.160717189,0.0778098479,-0.0636332929,-0.0252107233,0.0205955654,0.96759069 +-1.08054709,1.89628661,1.08054709,0.000266800285,0.381448269,0.239582792,0.0626376569,-0.170026377,0.0205539521,1.52812815 +-0.773164928,1.89685524,0.773164928,0.00283661415,0.165745959,0.0805478767,-0.10930641,-0.181030244,0.0205330532,1.09346449 +0.097821258,1.8969264,-0.097821258,0.000439117197,0.18683672,0.0970426276,-1.02884018,0.00406797975,0.0204807576,0.13884221 +0.0814718455,1.89770067,-0.0814718381,0.000280632637,0.197736993,0.111167274,-1.0065366,0.0187439024,0.0204794724,0.115604445 +0.0688132346,1.89856672,-0.0688132346,0.000123023638,0.295073986,0.20317097,-0.895011842,0.0314059258,0.0204786304,0.0976063982 +-1.22875845,1.89938593,1.22875845,6.28646303e-05,0.0500133149,0.0392661802,0.838903248,-0.00202998798,0.0205941908,1.73781013 +-1.22344708,1.89942718,1.22344708,0.000131952969,0.0505910777,0.0275747236,0.841092706,0.0064512454,0.0205940288,1.73029828 +-0.101205952,1.90023136,0.10120596,0.000302894186,0.20245567,0.105901584,-0.925120592,-0.00995079614,0.0204697996,0.143411785 +-1.21775222,1.90038502,1.21775222,0.000170962143,0.0542003736,0.0268062744,0.757799685,0.026254179,0.020592805,1.72224522 +-0.899093568,1.90046394,0.899093568,0.000751708052,0.165949866,0.0808057636,-0.145260856,-0.216336071,0.0205468535,1.27178288 +-0.134697154,1.90058136,0.134697154,0.000379247183,0.209913284,0.106435508,-0.880302787,-0.0343814567,0.0204791091,0.192450583 +1.03366292,1.9006629,-1.03366303,0.000965561718,0.13893275,0.0671287104,-0.114199303,-0.21995616,0.0206579864,1.46192527 +0.501110196,1.90077496,-0.501110196,0.00512104668,0.163518131,0.0788139403,-0.121236831,-0.0178789124,0.0205695704,0.712117314 +0.86106205,1.90088236,-0.86106205,0.00294466224,0.162743747,0.0792389363,-0.118990034,-0.182300344,0.0206200723,1.21912956 +0.330097556,1.90108728,-0.330097556,0.00390047207,0.177666664,0.0862232074,-0.53983444,-0.0726273507,0.0205259696,0.467188537 +-0.240340829,1.90136099,0.240340829,0.00100801908,0.195652753,0.0963471085,-0.715989172,-0.0767323971,0.0204781592,0.340413988 +-0.0843164623,1.90153706,0.0843164697,0.000285766961,0.202186853,0.113735624,-0.911936164,0.0157547835,0.0204660054,0.119511038 +0.984066904,1.90205646,-0.984066963,0.00139381527,0.149498701,0.0723073706,-0.150295362,-0.233905017,0.0206472762,1.39193535 +-0.0713822097,1.90269136,0.0713822097,0.000123709033,0.26392442,0.182565644,-0.81805408,0.0538422577,0.0204645954,0.10119947 +0.290961981,1.90288389,-0.290961981,0.00295817852,0.181579247,0.0883569792,-0.654905915,-0.0783619136,0.020513406,0.412521541 +0.944872618,1.9032681,-0.944872618,0.00215176609,0.158260852,0.0770159066,-0.164092839,-0.222906768,0.0206357557,1.3365798 +-0.880357981,1.90330708,0.880357981,0.00188488443,0.166076511,0.0808468536,-0.143418685,-0.212504685,0.0205430277,1.24511158 +0.06875135,1.90352273,-0.0687513575,7.90362974e-05,0.294776589,0.202994704,-0.892158031,0.03164858,0.0204761699,0.0976744518 +0.0813430548,1.90357518,-0.0813430622,0.000207009318,0.197394431,0.110951439,-1.0022428,0.0191086177,0.0204765536,0.115641378 +-0.248289809,1.90366936,0.248289794,0.00186256785,0.193232581,0.0948772579,-0.703288198,-0.079321079,0.0204754006,0.351910412 +0.0977614298,1.90374923,-0.0977614298,0.000256849045,0.186853081,0.0970272273,-1.02328658,0.00372128678,0.020477226,0.139083818 +-0.76740694,1.90378559,0.76740694,0.00131072896,0.165432766,0.0803611577,-0.11510691,-0.169303492,0.0205270909,1.08537281 +0.139488161,1.90394306,-0.139488146,0.000223251176,0.188745335,0.0939112306,-0.983996034,-0.0210687146,0.0204842016,0.197266072 +0.13963525,1.90412354,-0.13963525,0.000572849647,0.188753143,0.0939070359,-0.983654976,-0.0211823061,0.020484142,0.197474808 +0.139631689,1.90412962,-0.139631689,3.68771014e-09,0.188753188,0.0939073786,-0.98365283,-0.0211799294,0.0204841401,0.197469875 +0.139638633,1.90413344,-0.139638633,3.38763789e-06,0.188753054,0.0939068645,-0.983642817,-0.0211855583,0.0204841364,0.197479963 +0.139635682,1.90413821,-0.139635682,0.000120255099,0.188753098,0.093907021,-0.983641565,-0.0211833231,0.0204841346,0.197475627 +0.139661759,1.90416324,-0.139661744,0.000524269824,0.188753083,0.0939062461,-0.983584523,-0.0212061573,0.0204841252,0.197511673 +0.13958624,1.90416479,-0.139586255,0.000177546113,0.188748196,0.0939073861,-0.983687937,-0.0211531632,0.0204841103,0.197404861 +-0.125297815,1.90577066,0.125297815,0.000499826914,0.208208755,0.10617359,-0.892595232,-0.0301195011,0.0204737466,0.177852809 +-0.198535517,1.90613699,0.198535532,0.00182929216,0.208245754,0.103996135,-0.77088207,-0.0586825497,0.0204807427,0.281747371 +-0.256553084,1.90648842,0.256553113,0.00233701291,0.191511109,0.0938290283,-0.687532067,-0.0816230625,0.0204715617,0.363164842 +-1.21484518,1.906744,1.21484518,0.000296649872,0.0557970181,0.0279276073,0.735077977,0.0213983767,0.0205864459,1.71811318 +-0.770168543,1.90857899,0.770168483,5.66742383e-05,0.16519627,0.0802493766,-0.113528162,-0.165798157,0.0205240138,1.08938015 +1.21833038,1.90873623,-1.21833038,0.000290447439,0.0515907854,0.0253921058,0.694961429,0.0274393409,0.0206881594,1.72310495 +-0.764945686,1.90894926,0.764945686,0.00211626524,0.165201351,0.0802290663,-0.115174487,-0.160103515,0.0205227416,1.08187139 +1.22869933,1.90909982,-1.22869933,0.000102366183,0.0452401638,0.0355870202,0.768426895,-0.00322278403,0.020689318,1.73776734 +1.05900884,1.90913916,-1.05900884,0.00093613629,0.150795028,0.0774705857,-0.0557421744,-0.17523092,0.0206527729,1.49776113 +1.22391653,1.9091568,-1.22391653,0.000222260802,0.0474335328,0.0258579329,0.785513282,0.00479018595,0.0206888225,1.73100293 +-0.249372855,1.90953505,0.249372855,0.000479872135,0.192954749,0.0947073326,-0.69707191,-0.0805345252,0.0204722062,0.353551775 +0.209132284,1.91140866,-0.209132284,0.00231282972,0.188920975,0.0926637724,-0.850450456,-0.0618562661,0.0204929113,0.295976609 +1.21488202,1.91146874,-1.21488202,0.000235141109,0.0543972477,0.0270702261,0.663496912,0.0353910439,0.0206855666,1.71822464 +0.414320886,1.91155446,-0.414320886,0.00965003856,0.169302657,0.0818070248,-0.281771868,-0.0544876121,0.0205445495,0.588156879 +-0.430967361,1.91160822,0.430967331,0.00259247539,0.169806629,0.0814926326,-0.342047155,-0.0845413879,0.0204171408,0.609621644 +-0.779443026,1.91198277,0.779443026,0.00266913278,0.165074944,0.0801802874,-0.117769256,-0.166384473,0.0205232911,1.10233021 +-0.770908952,1.91209447,0.770909011,0.000118888565,0.165090576,0.0801921934,-0.114162713,-0.161990553,0.0205218345,1.09040499 +0.920455754,1.91222572,-0.920455754,0.0021996107,0.15981093,0.0777766556,-0.162313655,-0.204715863,0.0206255466,1.30254102 +0.115313254,1.91256094,-0.115313254,0.000224339426,0.186612308,0.0943720043,-1.00703859,-0.007119413,0.0204751119,0.163300589 +0.451598942,1.91273987,-0.451598942,0.0055956631,0.167512834,0.0809170157,-0.21211499,-0.037352711,0.0205534659,0.639851809 +-0.304177374,1.9128437,0.304177374,0.00276387017,0.180509612,0.0871686563,-0.59306109,-0.108574033,0.0204492342,0.436144561 +1.0779593,1.91313267,-1.0779593,0.000309808645,0.338743508,0.205801427,-0.00529038906,-0.174508899,0.0206479747,1.524562 +-0.845507264,1.91356671,0.845507264,0.00131141988,0.165891364,0.0806325227,-0.140646532,-0.198498517,0.0205317363,1.19679022 +-0.363820016,1.91388106,0.363820016,0.0056215683,0.174275339,0.0836793706,-0.470642924,-0.116825841,0.0204282235,0.520881116 +1.02008152,1.91442239,-1.02008152,0.00100444327,0.141288921,0.0678025633,-0.148781151,-0.202143461,0.0206458606,1.44281828 +0.118863314,1.9144522,-0.118863307,0.000277518848,0.187069461,0.0942035764,-1.00209379,-0.00839657988,0.0204746015,0.168439493 +-1.00054407,1.9146471,1.00054407,0.0012247992,0.152806193,0.073793754,-0.107124478,-0.19631356,0.0205454715,1.41534615 +0.205664903,1.91490054,-0.205664903,0.000556853076,0.189001232,0.0927487761,-0.854408979,-0.0614786334,0.0204904787,0.291207522 +0.207576275,1.91508567,-0.207576275,6.08504124e-05,0.188953981,0.0926920325,-0.850773096,-0.0621857978,0.0204906855,0.293946862 +0.0691385791,1.9155463,-0.0691385791,0.000123363527,0.293105006,0.201749459,-0.885740399,0.0338842571,0.0204712208,0.0978572071 +-0.243488193,1.91587996,0.243488193,0.00155789708,0.194622368,0.0956980437,-0.701859713,-0.081174165,0.0204700753,0.344748259 +0.20980224,1.91676998,-0.20980224,0.00168054411,0.188743547,0.0925722867,-0.845235467,-0.063637875,0.0204901565,0.29696402 +0.11625205,1.91684234,-0.11625205,0.000112173402,0.186608076,0.0942096114,-1.00305104,-0.00791255757,0.0204730295,0.164776102 +-0.770249248,1.91707528,0.770249248,0.00261129928,0.165005609,0.0801429972,-0.113553658,-0.156619713,0.020518329,1.08941877 +-0.324676931,1.91709566,0.324676931,0.00318819517,0.178363472,0.0859752297,-0.547286808,-0.109854594,0.020437343,0.46200949 +-0.109401025,1.91726971,0.109401032,0.000246885407,0.203743234,0.105198838,-0.908666372,-0.0215994939,0.0204627924,0.155462593 +0.118565239,1.91755128,-0.118565246,5.65866139e-05,0.186986342,0.094176352,-0.999899387,-0.00892087352,0.0204729252,0.168161526 +0.204819784,1.91755712,-0.204819798,0.000108828317,0.188914105,0.092720978,-0.854125619,-0.0617792271,0.0204889346,0.2899113 +0.0817847326,1.91777468,-0.0817847326,0.000284701207,0.196061015,0.110203423,-0.993036807,0.0208983421,0.0204701144,0.115758359 +0.971057057,1.91789603,-0.971057057,0.00108332036,0.152679861,0.0739320517,-0.164859876,-0.222530916,0.0206337292,1.37350619 +1.2051127,1.91816485,-1.2051127,0.000248648576,0.0616621971,0.0314706527,0.576685786,0.0429897867,0.0206787698,1.704458 +-0.152963787,1.91833758,0.152963802,0.000946913613,0.211120486,0.106609516,-0.835615933,-0.0455177836,0.020471843,0.21714431 +-1.02538466,1.91843307,1.02538466,0.000639340957,0.146986693,0.0711618066,-0.102065362,-0.160609543,0.0205455273,1.45015872 +1.20070779,1.91876674,-1.20070779,0.000148735999,0.0790034235,0.0467933938,0.507246137,0.0704837814,0.0206772033,1.69822335 +1.19714832,1.91910279,-1.19714832,6.3189822e-05,0.152424231,0.131389067,0.463638514,0.0897948891,0.02067592,1.69318902 +0.207208887,1.91942859,-0.207208902,0.00145776791,0.18883875,0.0926411152,-0.848660707,-0.0633553118,0.020488333,0.293237329 +-1.0302453,1.91973305,1.0302453,0.000467570178,0.14630647,0.0710112154,-0.0975832716,-0.155286863,0.0205445848,1.45705867 +0.0982685387,1.92019296,-0.0982685313,0.000263017282,0.18583408,0.0965446755,-1.01117277,0.00412931712,0.0204694308,0.139088631 +0.117588617,1.92032218,-0.117588617,0.000200138631,0.186739087,0.0941120908,-0.999326527,-0.00888641551,0.0204713661,0.166630387 +-0.759621739,1.9210304,0.759621799,0.00276919408,0.164916366,0.0800617561,-0.110073678,-0.143758029,0.0205126815,1.07431448 +-1.05574989,1.92111778,1.05574989,0.000647427281,0.158691153,0.0804576129,-0.081283845,-0.0995810926,0.0205440782,1.49313772 +-0.070827052,1.92129993,0.070827052,0.00018337433,0.260053515,0.179560229,-0.815218806,0.0531018637,0.0204541255,0.101146415 +0.992693305,1.92135644,-0.992693305,0.000694974791,0.148473948,0.0718417689,-0.151046261,-0.211445779,0.0206364337,1.4041127 +-0.083670713,1.92141652,0.0836707056,0.000443726574,0.200007111,0.112274572,-0.903273106,0.0131177204,0.0204550512,0.119527377 +-0.100433812,1.92146146,0.100433819,0.000429444801,0.201155767,0.10505899,-0.914310932,-0.0160994045,0.0204584897,0.143522352 +-0.575988054,1.9217366,0.575988054,0.0046905512,0.164930075,0.07931979,-0.163522407,-0.0221412927,0.020453563,0.81526351 +-1.07504559,1.92252946,1.07504559,0.000230818128,0.27553916,0.160079405,-0.0648989603,-0.0831330568,0.0205415804,1.52042472 +0.121536359,1.92284405,-0.121536359,0.000313611235,0.187038153,0.0940477774,-0.992240965,-0.0114030205,0.0204707459,0.171986997 +0.110263348,1.92340374,-0.110263348,0.000229170677,0.186007619,0.0948836803,-1.0018425,-0.00365632982,0.0204692315,0.155984968 +-1.22345138,1.92461276,1.22345138,0.000199253875,0.0498432666,0.0266239792,0.872951031,-0.00297657913,0.0205699317,1.73023939 +-1.2288022,1.92462993,1.22880232,9.43642808e-05,0.0480610579,0.0377007052,0.859633625,-0.00758274831,0.020569941,1.73780692 +-0.13872388,1.92498541,0.13872388,0.000513110717,0.209824592,0.106218673,-0.858265102,-0.0448908806,0.02046578,0.196862906 +-0.117239341,1.92552972,0.117239341,0.000256661122,0.206115305,0.10533946,-0.894316018,-0.0313611217,0.0204601884,0.166207552 +0.595370591,1.92617404,-0.595370591,0.00585863553,0.163153425,0.078896217,-0.064778626,0.039647609,0.0205644332,0.842742741 +-0.835032225,1.9265492,0.835032225,0.00255844044,0.164449245,0.0797913894,-0.14370285,-0.181026429,0.0205212757,1.18226135 +1.21059442,1.92655492,-1.21059442,9.44785061e-05,0.057964392,0.0296177976,0.667199552,0.021737095,0.0206734743,1.71207786 +0.862208605,1.92671108,-0.862208664,0.00292235939,0.161746457,0.078619048,-0.126766697,-0.15864718,0.0206051636,1.22042823 +-0.188030615,1.92728567,0.188030601,0.001231145,0.209502608,0.104842477,-0.773466349,-0.062706843,0.0204689279,0.266434819 +-1.07485306,1.92735791,1.07485306,0.000304624438,0.254160702,0.145516515,-0.0821060464,-0.083100453,0.020538928,1.52013969 +-1.19727349,1.92743826,1.19727349,9.76754964e-05,0.144423231,0.123371802,0.506526828,0.0381656289,0.020563025,1.69333673 +-1.20070314,1.92748749,1.20070314,0.00021967577,0.0759762675,0.0463529341,0.562234163,0.0303995609,0.0205639768,1.69818759 +-0.443340182,1.92760146,0.443340182,0.00387427304,0.169289038,0.0812703148,-0.30369094,-0.0777073875,0.0204083957,0.627304316 +-1.05529654,1.92761242,1.05529654,0.000886596274,0.152931944,0.0766085908,-0.0990308523,-0.0954991132,0.0205404125,1.49248338 +-1.20452976,1.92763758,1.20452976,0.000465159625,0.0621643551,0.032617867,0.648311734,0.0253583565,0.0205640551,1.70360649 +-1.02936757,1.92776728,1.02936757,0.00109337829,0.145241141,0.0701474398,-0.109739169,-0.15129219,0.0205394719,1.45580769 +-1.21747851,1.92777944,1.21747851,0.0002046585,0.053816516,0.026756946,0.799862981,0.00466156052,0.020566592,1.72178972 +1.0745976,1.92858434,-1.0745976,0.00020172706,0.289916456,0.169275954,-0.088815704,-0.103423968,0.0206418261,1.51987231 +-0.205160365,1.92913485,0.20516035,0.0013423264,0.206118762,0.102648772,-0.746222794,-0.0664649159,0.020467734,0.290912449 +1.05448246,1.92929649,-1.05448246,0.000618899416,0.148229003,0.0743919462,-0.117001787,-0.11743439,0.0206413586,1.49142146 +-0.940799415,1.93043876,0.940799415,0.00146951538,0.160322994,0.0775467977,-0.149992466,-0.201622114,0.0205306001,1.33051443 +-0.112841353,1.93060255,0.112841353,0.000165513367,0.204874188,0.105332337,-0.894701958,-0.0299169496,0.020456465,0.160429344 +-0.960180283,1.93063498,0.960180342,0.00169580523,0.159412175,0.0770881549,-0.141327724,-0.203888789,0.0205323882,1.3579632 +1.02684665,1.93096089,-1.02684665,0.00106655515,0.14056614,0.0674923882,-0.149465635,-0.183254972,0.0206364561,1.45236742 +0.0689990371,1.93117356,-0.0689990371,9.41114704e-05,0.288791627,0.198521808,-0.877194405,0.0370343477,0.0204648189,0.0981284678 +0.0815521926,1.9312799,-0.0815521926,0.000193069834,0.194485039,0.109241836,-0.982914507,0.0216968823,0.0204639565,0.115908153 +0.0979551971,1.93149078,-0.0979551971,0.00014243742,0.185558394,0.0964004248,-1.00104356,0.00386496074,0.0204640459,0.139131159 +0.163136393,1.93161023,-0.163136393,0.000950446702,0.189461604,0.0936362818,-0.922836065,-0.0413091853,0.0204746928,0.231644362 +1.19605017,1.93219304,-1.19605017,4.66984966e-05,0.175380051,0.152974427,0.500818908,0.0228129216,0.020666156,1.6915251 +1.1997335,1.93251312,-1.1997335,0.000107103348,0.0855483562,0.0527439006,0.546997905,0.0276704468,0.0206668228,1.69673419 +-0.855907738,1.93259859,0.855907798,0.00344813336,0.164077803,0.0795366541,-0.149656028,-0.194870248,0.0205190722,1.21115112 +1.20415401,1.93289828,-1.20415401,0.000206277444,0.0628138781,0.0326603353,0.616608143,0.0240487307,0.0206675455,1.70298553 +1.22878182,1.93309796,-1.22878182,7.00009623e-05,0.0431889668,0.0337843299,0.792128682,-0.00710136117,0.0206705313,1.73779333 +1.2237885,1.93311048,-1.2237885,0.000153736342,0.0462588146,0.0246268734,0.819209456,0.00031007803,0.0206700712,1.73073149 +1.21779656,1.93312597,-1.21779656,0.000183268305,0.0508867167,0.0251618307,0.742828846,0.0157660656,0.0206694771,1.72225761 +-0.433525652,1.93365228,0.433525681,0.00136740459,0.169838965,0.0815474913,-0.312000275,-0.0758218542,0.0204040371,0.61368221 +0.315946907,1.93390203,-0.315946907,0.00304948655,0.179434627,0.0872924104,-0.569245279,-0.0852617174,0.0205004308,0.447007626 +-0.438373268,1.93420351,0.438373268,7.66566227e-05,0.169629619,0.0814543217,-0.302507162,-0.0760122314,0.0204033088,0.620739341 +0.961606622,1.93507564,-0.961606622,0.00127542776,0.15687415,0.0761143118,-0.171209544,-0.20408766,0.0206179693,1.36035371 +0.098040387,1.93608809,-0.098040387,0.000294892816,0.185407534,0.0963266939,-0.99739933,0.00405384228,0.0204619896,0.139047772 +0.081612289,1.93670678,-0.081612289,0.000281652756,0.194357142,0.109251879,-0.978617907,0.0220185686,0.0204616133,0.115793981 +0.163014591,1.93716824,-0.163014606,0.000375603762,0.189234734,0.0935298502,-0.91913718,-0.0429140329,0.0204717238,0.231206834 +0.0690291747,1.93745494,-0.0690291747,0.000122155034,0.288687229,0.198462188,-0.872708559,0.0374893136,0.020462269,0.0979756638 +0.75568819,1.9380511,-0.75568819,0.00462725246,0.160150647,0.0775531381,-0.0589229539,-0.0457471348,0.0205790326,1.06915581 +0.1535891,1.93843102,-0.1535891,0.00063404988,0.188631341,0.0934900045,-0.933938622,-0.0364953354,0.0204692185,0.217445374 +-0.784134865,1.93920135,0.784134805,0.00202240422,0.164026335,0.0795532018,-0.120753273,-0.146806851,0.0205060858,1.10894966 +1.0757345,1.93939185,-1.0757345,0.000324406108,0.235975981,0.13344568,-0.131219357,-0.122615367,0.020637827,1.52149391 +-0.439255327,1.93963575,0.439255327,0.00163578894,0.169634461,0.0814812556,-0.296676457,-0.073158443,0.0204005167,0.621711612 +1.21298647,1.93983412,-1.21298659,0.000155686328,0.0542699918,0.0271939244,0.707791984,0.0170042533,0.0206635147,1.71546865 +-0.126809537,1.94079375,0.126809537,0.000344358385,0.207210794,0.105345584,-0.868899107,-0.0423966199,0.0204535909,0.179746315 +-0.117474452,1.94109893,0.117474452,0.000215079301,0.205451131,0.104879841,-0.884409189,-0.0365397185,0.0204514246,0.166790962 +0.168915883,1.94146776,-0.168915883,0.000994113507,0.189054772,0.093337588,-0.905827641,-0.0467532501,0.0204704087,0.23942548 +-0.467093289,1.9416889,0.467093319,0.00400651665,0.1686728,0.0810263678,-0.263008475,-0.0599151887,0.0204049964,0.660667598 +0.106223762,1.94180346,-0.106223755,0.000288288487,0.18556869,0.0954462513,-0.986866295,-0.00223641959,0.0204600673,0.150391519 +-0.430593938,1.94206297,0.430593938,0.00288633537,0.169998601,0.0816619694,-0.310962409,-0.0759119838,0.0204007663,0.609519303 +-0.165159449,1.94222164,0.165159434,0.000701957033,0.211426988,0.106326163,-0.798695803,-0.0605468825,0.020460166,0.235283077 +-0.966957867,1.94225264,0.966957867,0.000615656143,0.157228544,0.0758415908,-0.14578034,-0.19595252,0.020524893,1.36759961 +-0.0713162422,1.94234657,0.0713162422,0.000125594612,0.257959843,0.177792788,-0.798630774,0.0501572713,0.0204426479,0.10102012 +0.981080532,1.9426924,-0.981080592,0.00116105599,0.150571465,0.0725782439,-0.169667497,-0.211165041,0.0206204597,1.38769305 +0.133919016,1.94358873,-0.133919016,0.00046450767,0.188516423,0.0940872878,-0.955026388,-0.0228230897,0.0204627998,0.191038534 +-0.084376581,1.94371724,0.084376581,0.000289355608,0.198903382,0.111501873,-0.88827157,0.00766596943,0.0204429012,0.119491346 +-1.21382165,1.94423318,1.21382165,0.000256059662,0.0559519827,0.0283917002,0.783730924,0.000670189038,0.0205498841,1.71663773 +1.0561657,1.94432354,-1.05616581,0.00100297411,0.135168061,0.0659932792,-0.152798772,-0.124157131,0.0206333511,1.49381626 +-0.910444438,1.94443703,0.910444438,0.00156411203,0.162167668,0.0784548447,-0.160089388,-0.195079386,0.0205192119,1.28760028 +-0.101444744,1.94509304,0.101444736,0.000212102212,0.200167507,0.104567431,-0.898175418,-0.0257518571,0.0204452761,0.143622667 +0.839720547,1.94560242,-0.839720547,0.00527251279,0.160149932,0.0776379332,-0.109134465,-0.116014346,0.0205891971,1.18850052 +-0.104984544,1.94577265,0.104984544,0.000115030416,0.201337129,0.104705796,-0.893805981,-0.0289754868,0.0204457957,0.148553759 +-0.962596536,1.94663596,0.962596476,0.000142698555,0.157668307,0.0760134459,-0.151244983,-0.193871602,0.0205212235,1.36153853 +-0.144000441,1.94668698,0.144000441,0.000422237063,0.209648445,0.105864599,-0.835556686,-0.0569632798,0.0204542428,0.205006361 +-0.588064134,1.94835329,0.588064134,0.00417166902,0.165143803,0.0794738233,-0.143964142,-0.00955561176,0.0204352587,0.832829654 +-0.556879997,1.94845796,0.556880057,0.0048910547,0.165533543,0.079556413,-0.145658031,-0.0216462743,0.0204228312,0.789385498 +-0.071117267,1.94862247,0.071117267,5.14772073e-05,0.257001847,0.17704165,-0.795828164,0.0495738871,0.0204391368,0.100990295 +-0.0842114836,1.94870114,0.0842114836,9.86658415e-05,0.198524877,0.111253001,-0.884936333,0.00661661383,0.0204401482,0.119496316 +-0.101312608,1.94880378,0.1013126,5.18999295e-05,0.199989527,0.104478553,-0.895600259,-0.0272383019,0.0204431955,0.143651396 +1.21739554,1.94887376,-1.21739566,0.000138429867,0.0503632315,0.0248738434,0.772222757,-0.000183989992,0.020657666,1.72177529 +1.22358191,1.94888437,-1.22358179,0.000117639305,0.0455678329,0.0237961654,0.838973343,-0.00782250147,0.0206581689,1.73052454 +1.22873712,1.94889331,-1.228737,5.358833e-05,0.0419655591,0.0327011757,0.805847347,-0.0116540575,0.0206585899,1.7378155 +-1.22347414,1.9493984,1.22347414,0.000129495616,0.0490792654,0.0257818326,0.909716964,-0.012254498,0.0205458757,1.73036194 +-1.22873008,1.94944489,1.22873008,6.07529291e-05,0.0460182428,0.0361507311,0.881671309,-0.0129577843,0.0205458459,1.73779535 +1.01664412,1.9495064,-1.01664412,0.0010438225,0.142413735,0.0681469887,-0.165678889,-0.183088377,0.0206225496,1.43794179 +-1.21726656,1.9497304,1.21726656,9.1376467e-05,0.0534489118,0.0267941616,0.839749098,-0.00948268827,0.0205450766,1.72156453 +-0.102868773,1.94983888,0.102868773,0.00017446639,0.200484887,0.104558393,-0.893095553,-0.0288122557,0.0204430278,0.145737708 +-0.967787385,1.95001495,0.967787385,0.00133996038,0.156460389,0.0753437951,-0.151093468,-0.191459522,0.0205196142,1.36873651 +-0.959893048,1.95126724,0.959893048,0.000671391899,0.157188535,0.0757126957,-0.154777348,-0.191476181,0.0205178577,1.35767245 +-0.101450935,1.9520452,0.101450928,0.000284669106,0.199878395,0.104398914,-0.893474758,-0.0279764738,0.0204414539,0.143658057 +-0.0843418688,1.95302868,0.0843418688,0.000290285621,0.198421016,0.111169584,-0.882205248,0.00589011051,0.0204378124,0.119473629 +1.19292867,1.95354819,-1.19292879,4.64685872e-05,0.17372334,0.146334887,0.428730816,-0.0600732677,0.0206513349,1.68708515 +1.02950656,1.95376348,-1.02950656,0.0014803235,0.13607569,0.0645536929,-0.168673798,-0.17907308,0.0206228141,1.45613194 +-1.2152251,1.95378542,1.2152251,9.89309483e-05,0.0546630807,0.0274988189,0.81842792,-0.0176176876,0.0205410384,1.71867001 +-0.0712343231,1.95406175,0.0712343231,0.000126145344,0.257527798,0.177394301,-0.792565823,0.048884958,0.0204361007,0.100938603 +0.731828928,1.9542253,-0.731828928,0.00575396605,0.159526378,0.0771735385,-0.0516320951,-0.00140848663,0.0205643196,1.03561842 +-0.133238435,1.95428991,0.133238435,0.000379717589,0.207760021,0.105248258,-0.848514915,-0.0511007607,0.0204474851,0.189802274 +-1.0130105,1.95454645,1.0130105,0.00175703946,0.14634794,0.0698824003,-0.141530484,-0.16275236,0.0205190908,1.43310988 +1.19690478,1.95522642,-1.19690478,0.000104437589,0.0855937749,0.0510255657,0.493745685,-0.0513182282,0.0206506774,1.69270825 +-0.962383866,1.95534682,0.962383807,0.000384264713,0.156886563,0.0755476654,-0.154697046,-0.191686481,0.0205150656,1.36117768 +0.130649403,1.95596194,-0.130649403,0.000604233122,0.187742725,0.0939002931,-0.950507641,-0.0201667696,0.0204560664,0.185182557 +-1.21684849,1.95640862,1.21684849,0.000337911624,0.0533802174,0.0266227536,0.831090927,-0.0201724786,0.0205387492,1.72096336 +-1.2232573,1.95708585,1.22325742,0.0002813506,0.0490159355,0.0254833028,0.905304134,-0.0159655306,0.0205385443,1.73004293 +-1.228737,1.95713758,1.22873688,0.000129036955,0.0459521301,0.0358721688,0.879105091,-0.0147359893,0.0205384586,1.73779273 +1.2013979,1.95747423,-1.20139778,0.000146164573,0.0627210885,0.0319494642,0.596599042,-0.0388737693,0.0206495933,1.69906282 +-1.19145918,1.95765281,1.19145906,6.69158471e-05,0.143346578,0.116078593,0.366351545,-0.0498312861,0.0205408707,1.6850121 +-0.11734876,1.95844984,0.117348768,0.000347077934,0.20458883,0.1043538,-0.872338295,-0.042371925,0.0204417817,0.168051511 +-0.16178748,1.95851302,0.16178748,0.000440583506,0.210944399,0.10611771,-0.793496847,-0.0632437766,0.0204504728,0.230212748 +-0.445811898,1.95856142,0.445811898,0.00524608418,0.169478387,0.0814789385,-0.276532352,-0.0630139783,0.0203916524,0.630702674 +0.0683710501,1.95872068,-0.0683710501,0.000172218599,0.286246955,0.197009981,-0.85644567,0.03945712,0.0204528458,0.097688444 +0.080809027,1.95884323,-0.080809027,0.000396769319,0.193855464,0.109220907,-0.958001375,0.0223613735,0.0204513595,0.115442552 +0.0970300585,1.95900035,-0.0970300585,0.000404685066,0.185905188,0.0966681466,-0.975573957,0.00308697671,0.0204511099,0.138594329 +-0.142549664,1.95990276,0.142549664,0.000473121036,0.209361464,0.105720021,-0.828908622,-0.0594254732,0.0204465855,0.202727094 +-1.19562697,1.9599694,1.19562697,0.000151185479,0.0793358535,0.0459364541,0.457640588,-0.0599559993,0.020538114,1.69090605 +0.411917359,1.96032286,-0.411917329,0.00544902729,0.169957846,0.0822885185,-0.266199231,-0.0527073964,0.0205102097,0.583852053 +1.2083509,1.96105409,-1.2083509,0.00023072258,0.0561891571,0.0278156213,0.667787075,-0.0398404635,0.0206477735,1.70889163 +-0.221870199,1.96111393,0.221870199,0.00210177596,0.199071616,0.0983610824,-0.702155411,-0.0874129906,0.0204493627,0.317741424 +0.122292355,1.96209025,-0.122292362,0.000359658938,0.18711558,0.0940477699,-0.954846561,-0.0160804149,0.0204518139,0.174191788 +1.21630442,1.96219885,-1.21630454,0.000223186042,0.0504542515,0.0245599095,0.740685642,-0.0229659081,0.0206476357,1.72017813 +1.2230407,1.96224284,-1.2230407,0.000202478244,0.0454624668,0.0232445318,0.816510201,-0.0147978598,0.0206479672,1.72970247 +1.22878027,1.96224928,-1.22878027,9.39900201e-05,0.0420034975,0.0321491919,0.78723222,-0.0143577736,0.020648405,1.73781967 +-1.20045137,1.9632678,1.20045137,0.000236433683,0.063256219,0.0321762562,0.593035936,-0.0531729944,0.0205341689,1.69773018 +-1.08033323,1.96335697,1.08033323,0.000329233735,0.120498806,0.0618903749,-0.162284777,-0.135229468,0.0205136109,1.5279206 +1.19184422,1.96358538,-1.19184422,2.57255124e-05,0.16461049,0.135050759,0.394019127,-0.0952997506,0.0206441619,1.68561947 +-0.571779907,1.96361411,0.571779907,0.00212577474,0.165345311,0.0795028433,-0.128252298,0.000694850925,0.0204156581,0.81078732 +0.928833485,1.96399105,-0.928833485,0.00168097683,0.159358144,0.0773559362,-0.165375352,-0.172578231,0.0205932166,1.31373191 +0.113973036,1.96411741,-0.113973044,0.000314876786,0.186091647,0.0947468877,-0.960342228,-0.00944071077,0.0204502903,0.161811292 +0.15864265,1.96529329,-0.158642635,0.000611918804,0.188563392,0.0932734758,-0.903193235,-0.0440997891,0.0204561353,0.224460453 +1.19587755,1.96592176,-1.19587755,5.76927123e-05,0.0817908496,0.0467940867,0.466648996,-0.0924704745,0.0206429269,1.691324 +-0.17661044,1.96767116,0.17661044,0.000952204864,0.210248247,0.105356038,-0.763937593,-0.0720397681,0.0204471257,0.250621498 +-0.348842323,1.96795034,0.348842323,0.00579296984,0.175058573,0.0843003467,-0.456079781,-0.115323089,0.0204063542,0.499301255 +0.348387599,1.96861935,-0.348387599,0.00224745693,0.176534951,0.0858696997,-0.457467139,-0.0867834687,0.0204876903,0.493728876 +-0.967078924,1.96874344,0.967078865,0.00115464814,0.155443951,0.0746542439,-0.157401919,-0.187319696,0.0205063168,1.36769187 +0.737642407,1.9689796,-0.737642407,0.00167028455,0.159451619,0.0771408603,-0.047787834,0.00571312755,0.0205547325,1.04465902 +1.20031023,1.96909571,-1.20031023,8.08671539e-05,0.0617679544,0.0308061522,0.584141374,-0.073627755,0.020640986,1.69759393 +1.18967092,1.96932316,-1.18967092,0.00010215104,0.155306816,0.124023721,0.323456526,-0.0975419879,0.020639427,1.68255401 +-1.18968046,1.96989572,1.18968046,3.2734024e-05,0.148425311,0.118640222,0.338022321,-0.093985036,0.0205308255,1.68254757 +1.08249927,1.9703393,-1.08249927,0.00041107263,0.106224127,0.0543263555,-0.210255787,-0.182890251,0.0206208713,1.53097391 +-1.08300102,1.97078371,1.08300102,0.000316760998,0.100039929,0.0502957478,-0.169178933,-0.146169677,0.0205076151,1.53169692 +0.337654233,1.97181261,-0.337654233,0.000335710036,0.177534595,0.086386621,-0.485123068,-0.0909371451,0.0204827804,0.478849769 +1.19390595,1.97233236,-1.19390595,0.0002390593,0.0810356438,0.0451944023,0.410195768,-0.103538863,0.0206377208,1.68854392 +0.976120591,1.97241235,-0.976120591,0.0011753866,0.153899074,0.0741740689,-0.178555056,-0.186600745,0.0205977559,1.38090384 +0.121412739,1.97244227,-0.121412739,0.000613725744,0.187114432,0.0941090435,-0.94715941,-0.0151740741,0.020446578,0.172310859 +0.756474614,1.97278929,-0.756474674,0.00464966241,0.159334645,0.0770477131,-0.0616235882,-0.00863546133,0.0205556266,1.07036507 +-1.19410789,1.97289431,1.19410777,7.49493774e-05,0.0805249959,0.0459581465,0.440508127,-0.100148112,0.0205269363,1.68880808 +-1.06271958,1.9750011,1.06271946,0.000965377141,0.109762385,0.0505908839,-0.180683836,-0.11775545,0.0205082446,1.50301039 +0.0976935923,1.97514224,-0.0976935923,0.000317560422,0.186159074,0.0969066694,-0.96122098,0.00289380015,0.0204439387,0.138832316 +-1.18691611,1.97521663,1.18691611,9.58862438e-05,0.132908463,0.103272021,0.267976165,-0.0865263417,0.0205241945,1.67863083 +0.0814311951,1.97578883,-0.0814311951,0.00027931598,0.19364965,0.109118201,-0.943966389,0.02269952,0.0204440281,0.115709499 +0.902195215,1.97579908,-0.902195215,0.0027672865,0.160226539,0.0777113661,-0.148921147,-0.147778183,0.0205805022,1.27611935 +-0.0833822414,1.97596502,0.0833822414,0.000493004511,0.197768033,0.110862188,-0.866685212,0.0027556459,0.0204251446,0.119242802 +-0.0704322904,1.97597623,0.0704322904,0.000206420867,0.258508205,0.178270131,-0.783729911,0.0463767797,0.0204236638,0.100708067 +-0.100292683,1.97612262,0.100292683,0.00044033787,0.199374586,0.104104094,-0.876361251,-0.0329888873,0.0204282273,0.143442661 +1.19851816,1.9764756,-1.19851816,0.00020771526,0.0614315346,0.0301336329,0.539466679,-0.0910869688,0.0206350926,1.69506919 +-1.19942248,1.97649658,1.1994226,0.000137224823,0.0632863715,0.0319269188,0.593315065,-0.0816989094,0.0205222685,1.69632351 +0.0689543411,1.97654378,-0.0689543337,0.000121021905,0.284654796,0.195814133,-0.842751622,0.0395344868,0.0204457957,0.0979652554 +1.20301354,1.97709203,-1.20301354,0.000394095259,0.0589544401,0.0288568176,0.589067101,-0.0822122321,0.0206349418,1.70139885 +0.248305008,1.97799277,-0.248304993,0.00244182162,0.185258701,0.0906860083,-0.722965121,-0.0910289064,0.0204622056,0.351839542 +0.661917329,1.97835541,-0.661917269,0.00785209797,0.162279338,0.0786824226,-0.0295785144,0.0648311451,0.0205331165,0.938001394 +-1.20112407,1.97909927,1.20112395,0.000232353661,0.0619535856,0.0309841651,0.606896996,-0.0841058344,0.0205199961,1.69872725 +-1.19159377,1.97910202,1.19159377,0.000230795704,0.077904366,0.0432670303,0.375580698,-0.100623839,0.02051978,1.68524551 +0.239679188,1.98049009,-0.239679202,0.00170204171,0.1857059,0.0909683406,-0.738858581,-0.0886272863,0.0204596017,0.339472651 +-0.28800264,1.98052776,0.28800264,0.00180078973,0.183741912,0.0893740281,-0.578549743,-0.0954845175,0.0204253439,0.407580435 +-0.148664832,1.98155141,0.148664832,0.000714427908,0.208831236,0.105085813,-0.803638339,-0.0698960274,0.0204352774,0.213401124 +-0.196973592,1.98179495,0.196973592,0.00136233529,0.205792874,0.102476336,-0.723616481,-0.0798995048,0.0204392318,0.279864371 +0.278645366,1.98183084,-0.278645366,0.00260115252,0.182649657,0.0892535225,-0.639597178,-0.0929499865,0.0204658229,0.394194007 +-0.549730778,1.98239613,0.549730778,0.00583866099,0.165714428,0.0797069445,-0.133897945,-0.0157119483,0.0203990433,0.779201329 +0.144342929,1.98252416,-0.144342929,0.000694548944,0.18795535,0.0935108885,-0.907963514,-0.0347432308,0.0204446595,0.204330117 +-0.672639847,1.98339236,0.672639847,0.00570439966,0.163514122,0.0790245384,-0.0848932415,-0.000329009024,0.0204469021,0.952649951 +0.104566142,1.98360145,-0.104566149,0.000296668964,0.187164515,0.0964241177,-0.948307633,-0.00240805116,0.0204401296,0.148531377 +-1.19720173,1.98374009,1.19720173,0.000390227913,0.0627234131,0.0310863499,0.537139058,-0.0926791653,0.0205145106,1.69317591 +-1.06630123,1.9849515,1.06630123,0.000924158201,0.100542732,0.0454422794,-0.189776823,-0.125133157,0.0205005575,1.50807953 +-0.119415767,1.9856143,0.119415775,0.000395437935,0.203574061,0.103578381,-0.851829708,-0.0514039285,0.020427078,0.169789925 +-0.919273615,1.9857378,0.919273615,0.00375793152,0.158608481,0.0762515962,-0.174203008,-0.175146565,0.0204920415,1.30033422 +1.06754875,1.98589563,-1.06754875,0.00124165136,0.0997465476,0.0449453592,-0.226297349,-0.154963776,0.0206064638,1.50983095 +0.0687392727,1.98614621,-0.0687392727,0.000146959166,0.283697128,0.195265681,-0.83454603,0.0396836549,0.0204415284,0.0979534909 +0.0811552107,1.98634601,-0.0811552107,0.000362823921,0.193780899,0.109266698,-0.934165716,0.0226133969,0.0204389933,0.115695693 +0.0973216593,1.98656821,-0.0973216593,0.000438208866,0.186571985,0.0971192494,-0.950242817,0.00267174328,0.0204384215,0.13879472 +0.190789491,1.9867332,-0.190789491,0.00263594184,0.188689679,0.0928981006,-0.827584982,-0.0648723096,0.0204503145,0.273059189 +0.335487574,1.98685837,-0.335487574,0.00293997163,0.177851677,0.086630635,-0.48307088,-0.0934741572,0.0204734094,0.476275057 +0.250331849,1.98699296,-0.250331849,0.0012201221,0.18501702,0.0905737281,-0.712444186,-0.0944505706,0.0204573553,0.354825974 +-0.113455147,1.98714113,0.113455147,0.000288340438,0.201526731,0.103329264,-0.858063459,-0.0462735258,0.0204247702,0.161074609 +-0.276231498,1.98766232,0.276231498,0.00180015713,0.186548918,0.0910407975,-0.592481494,-0.0949045792,0.0204246882,0.390986383 +-1.00343311,1.98917365,1.00343311,0.00166570023,0.146335229,0.0694613457,-0.155521423,-0.171439022,0.0204940122,1.41962194 +-0.126235485,1.9893285,0.12623547,0.000366587134,0.204765096,0.103945293,-0.837727726,-0.057374429,0.0204266347,0.17926456 +-0.171877399,1.98937035,0.171877399,0.000580206979,0.20831269,0.10425514,-0.760705292,-0.0806465968,0.0204338357,0.24509795 +-0.284545064,1.98943913,0.284545064,0.00047094826,0.184313893,0.0897388235,-0.577418983,-0.0957350284,0.0204219576,0.403148144 +1.09532535,1.98963904,-1.09532547,0.000297255145,0.0671799034,0.0330498517,-0.185516343,-0.216115028,0.0206107404,1.54903436 +0.153347433,1.99106407,-0.153347433,0.000238999375,0.188444227,0.0933807492,-0.887809992,-0.0433229841,0.0204417463,0.217561841 +0.353422105,1.99132705,-0.353422135,0.00373328337,0.176209673,0.0857533514,-0.431311131,-0.0826029405,0.0204733294,0.500439167 +-0.56633544,1.99154639,0.56633538,0.0051612854,0.165514857,0.0796498358,-0.108964175,0.012071304,0.0203942172,0.801832676 +0.937950492,1.99159706,-0.937950492,0.00138753909,0.158576533,0.076804556,-0.170165703,-0.154622331,0.0205768123,1.3266772 +0.245207727,1.99169862,-0.245207727,0.00142777164,0.185291961,0.0907613635,-0.720510066,-0.0931886435,0.0204541329,0.34722805 +-0.923341393,1.99174702,0.923341393,0.000525153475,0.158137977,0.0759961009,-0.173954681,-0.175573483,0.0204879455,1.30605984 +-1.03933239,1.99201012,1.03933239,0.0012343257,0.12967445,0.0602762215,-0.167337582,-0.148836225,0.0204946343,1.46993232 +0.158090502,1.99226379,-0.158090502,0.00084111566,0.188159272,0.0931155458,-0.880611241,-0.0472942218,0.0204418581,0.22412996 +-0.288778722,1.99312222,0.288778722,0.0036729218,0.183664069,0.0893852264,-0.567267358,-0.0951868892,0.0204197466,0.408946961 +1.21386266,1.99339342,-1.21386266,0.000909474853,0.0501814932,0.0234219562,0.662371516,-0.0864239633,0.0206234269,1.7168659 +0.51713872,1.99342489,-0.517138779,0.00460157916,0.162830308,0.0787115842,-0.0512842834,0.0398956425,0.0205086619,0.731733918 +1.22158277,1.99362707,-1.22158265,0.000481451454,0.0449944176,0.0217872318,0.755923748,-0.0404932648,0.0206242185,1.72779512 +1.22867703,1.99371159,-1.22867703,0.000229478756,0.042069979,0.030569056,0.737596452,-0.0249039419,0.0206247568,1.73782921 +0.928423941,1.9940989,-0.928423882,0.000408453896,0.159390002,0.0772698596,-0.165854782,-0.149569303,0.0205729492,1.31348896 +-0.119439259,1.9957782,0.119439259,0.000315897953,0.203117207,0.103330612,-0.844695449,-0.0531387255,0.020421274,0.169598117 +0.99552685,1.99641407,-0.99552685,0.002175709,0.148660272,0.0710515976,-0.186757505,-0.179955006,0.0205844399,1.40828562 +-1.09953451,1.9975493,1.09953451,0.000305243011,0.0422915071,0.0199738946,-0.145423576,-0.185831845,0.0204758812,1.55504465 +-0.28033334,1.99841094,0.28033334,0.00174852763,0.185186952,0.0902793333,-0.579430103,-0.0982524157,0.0204177294,0.396813303 +-0.071483165,1.99862039,0.071483165,0.000124048529,0.258077979,0.178467393,-0.763646424,0.0441213697,0.0204111207,0.101252481 +-0.127317339,1.99888027,0.127317339,0.000512132421,0.204361677,0.103698418,-0.829221666,-0.0605491102,0.0204211753,0.180730224 +-0.0844100341,1.99960959,0.0844100416,0.000285934424,0.197829708,0.110942639,-0.847957313,-0.000479632523,0.0204124171,0.119528174 +-0.940261483,2.00062466,0.940261483,0.00129684177,0.155803472,0.0746372566,-0.172572672,-0.173812151,0.0204830393,1.32978857 +-0.101295657,2.00083566,0.101295657,0.000266837917,0.19868876,0.103739738,-0.858108997,-0.0369262099,0.0204149149,0.143389463 +-1.16851819,2.00120974,1.16851819,0.000191248721,0.0464222133,0.0293977894,-0.0117848963,-0.0425938331,0.0204891805,1.65261054 +-0.185367569,2.00145507,0.185367584,0.00124991219,0.207156003,0.103398733,-0.729578078,-0.0860102475,0.0204277504,0.263906568 +0.154328406,2.00150847,-0.154328406,0.000982327154,0.188427165,0.0933732539,-0.87744379,-0.044066757,0.0204363763,0.218644649 +-1.10475636,2.00152469,1.10475636,0.000245216012,0.035483785,0.0167348217,-0.13401565,-0.183862865,0.0204694252,1.56239474 +1.10404134,2.00201559,-1.10404134,0.000160627271,0.0436376557,0.0209248327,-0.165542915,-0.235208333,0.0206037108,1.56141102 +1.16795373,2.00226712,-1.16795385,0.000126621992,0.0412765294,0.0262557399,0.0407774113,-0.0789353028,0.0206175819,1.65174699 +1.167503,2.00276041,-1.167503,7.86223245e-06,0.0390083194,0.0246587023,0.0367242396,-0.0785360262,0.0206171833,1.65111268 +-0.225735188,2.00297642,0.225735188,0.00193389296,0.197778165,0.0976458713,-0.669441044,-0.0950627998,0.0204268061,0.321095765 +1.16642761,2.00313425,-1.16642761,0.000197392466,0.0384048633,0.0241776127,0.0339093767,-0.0822051987,0.0206166226,1.64958489 +-0.0843008161,2.00313497,0.0843008161,7.4045689e-05,0.197760835,0.110918701,-0.845157146,-0.000802375842,0.0204104315,0.119532108 +-0.0714329034,2.00317693,0.0714329034,3.94969611e-05,0.257529616,0.178243801,-0.760914624,0.0439496972,0.0204084311,0.101352394 +-0.101156369,2.00329232,0.101156369,3.45572553e-05,0.198640525,0.103712261,-0.85615027,-0.0371569842,0.0204135254,0.143326297 +-0.102670692,2.00335932,0.102670684,0.000148110004,0.199061006,0.103767261,-0.854569435,-0.0385831036,0.0204138178,0.145341694 +-1.03671038,2.003649,1.03671038,0.00105024269,0.129398987,0.0599951707,-0.172213912,-0.151376486,0.0204862468,1.46623588 +1.1086669,2.00374842,-1.1086669,0.000292065728,0.040508423,0.019666316,-0.150853515,-0.22855626,0.0206027385,1.5679276 +1.01578927,2.00388861,-1.01578915,0.00147863082,0.138616621,0.0653290972,-0.191846043,-0.173491031,0.0205843188,1.43694377 +0.530352831,2.00435305,-0.530352831,0.00189819362,0.162600011,0.078660734,-0.0316670239,0.0441537425,0.020502815,0.750700891 +-0.150220752,2.00504279,0.150220752,0.000514472078,0.207661927,0.104436025,-0.784662724,-0.0769878179,0.0204216521,0.215331286 +-0.661765277,2.00505018,0.661765277,0.00238291477,0.163590208,0.0790153369,-0.0602883399,0.0127827507,0.0204247702,0.938465714 +-1.04410625,2.00517249,1.04410625,0.00114702946,0.12487822,0.0574914701,-0.173274055,-0.150807589,0.0204845686,1.47668731 +0.131563693,2.00570679,-0.131563678,0.000497614732,0.188128114,0.0942938998,-0.900943756,-0.0248906687,0.0204318203,0.186118662 +-0.101223372,2.00579143,0.101223372,0.000248302589,0.198458597,0.10362678,-0.854036748,-0.037432339,0.0204121359,0.143283501 +0.952105403,2.00629497,-0.952105403,0.00201812899,0.154993415,0.0746587664,-0.175820947,-0.151680991,0.0205690954,1.34666538 +-0.0844020918,2.00673556,0.0844020918,0.000280868378,0.197647497,0.110854298,-0.842092276,-0.000777757261,0.0204084553,0.119511791 +-0.0715794414,2.00781345,0.0715794414,0.000121562734,0.256727576,0.177704558,-0.75713861,0.0440332629,0.0204058327,0.101382315 +0.117883071,2.00829697,-0.117883071,0.000382987579,0.18781805,0.0947732776,-0.915705085,-0.0135300783,0.0204288103,0.166905746 +-1.20986068,2.00832963,1.2098608,0.000360285456,0.0537904575,0.0252452288,0.661311448,-0.0975255743,0.0204933286,1.71102214 +-0.16488865,2.00844717,0.16488865,0.000597767124,0.20671086,0.103589281,-0.759857655,-0.0841119662,0.0204215478,0.234557241 +-1.22021079,2.0085609,1.22021067,0.000327270885,0.0489161573,0.0234005246,0.794914186,-0.0470686592,0.0204936732,1.72565925 +-1.2288357,2.0087533,1.2288357,0.000148924679,0.0460364707,0.0322913975,0.799377263,-0.0278401859,0.0204929374,1.73785698 +1.04768777,2.00891566,-1.04768789,0.00169656391,0.121029451,0.0554789267,-0.200910181,-0.176933616,0.0205863137,1.48174345 +-0.918930054,2.00908327,0.918930054,0.00200363179,0.157235175,0.0754876137,-0.176789567,-0.16753915,0.0204766244,1.29966283 +0.0687739104,2.00917506,-0.0687739104,0.000121113248,0.287416637,0.198547974,-0.813827991,0.0395759195,0.0204313919,0.0973068848 +-1.15415549,2.00941157,1.15415549,0.000159004645,0.0268821791,0.0153606655,-0.0451455936,-0.0737675577,0.0204675496,1.63223028 +-1.20871818,2.00956035,1.20871818,0.000390871835,0.0540344603,0.0252825711,0.641300023,-0.099923417,0.0204918534,1.70940518 +1.0845536,2.01026225,-1.0845536,0.00084772316,0.0782773718,0.0336800516,-0.211311862,-0.186515525,0.0205919985,1.53380036 +-1.2094655,2.01027179,1.20946538,7.50036997e-05,0.0538056605,0.0251753554,0.651172459,-0.0995638222,0.0204912797,1.71046531 +-1.22003198,2.01049948,1.2200321,0.000129116292,0.048902601,0.0233133584,0.787874222,-0.048234567,0.0204916745,1.72540879 +-1.22883606,2.01068926,1.22883594,5.83049405e-05,0.0460269935,0.0320940502,0.794201314,-0.0283832625,0.0204909407,1.73785961 +0.925316155,2.01090336,-0.925316155,0.00172027119,0.15932557,0.0771566182,-0.16283229,-0.134959251,0.0205605272,1.3091259 +0.115939878,2.01122928,-0.115939878,0.000203830437,0.187628239,0.0949642733,-0.914165795,-0.0122939711,0.0204273313,0.164327845 +0.081290476,2.01158571,-0.081290476,0.000278196181,0.196064442,0.111182466,-0.910180986,0.0235810429,0.0204276349,0.114990778 +-1.17389619,2.01181817,1.17389631,0.000470137573,0.0571302921,0.0263466313,0.064295277,-0.0935597345,0.0204801504,1.66021609 +1.17300534,2.01255035,-1.17300546,0.000291391072,0.0578828193,0.0260667522,0.0904247612,-0.119210981,0.020608224,1.6588918 +-1.12248325,2.01260304,1.12248325,0.000391292328,0.0196095929,0.00931119826,-0.0885371715,-0.165052742,0.020454796,1.58764172 +0.908726096,2.0130918,-0.908726096,0.00272560585,0.159320503,0.0771367401,-0.149306044,-0.115607895,0.0205558762,1.28557527 +0.119711019,2.0131166,-0.119711019,4.59730581e-05,0.188049242,0.0947889611,-0.908254027,-0.0155405691,0.0204266068,0.169653162 +0.522941828,2.01315975,-0.522941828,0.000211007486,0.162586823,0.078659676,-0.0302142594,0.0483110584,0.0204953216,0.740754247 +-1.14703941,2.01331425,1.14703941,8.9310568e-05,0.0177678932,0.00942997541,-0.0596765354,-0.0905626491,0.0204569418,1.62221873 +1.17254364,2.01331615,-1.17254364,1.8977762e-05,0.0572880916,0.0256455597,0.0843492001,-0.119343877,0.0206076317,1.65824211 +0.0685912892,2.01355028,-0.0685912818,2.3983026e-05,0.287678838,0.198850974,-0.809967637,0.039531406,0.0204293504,0.0971838981 +-1.14409339,2.01364231,1.14409339,0.000221893279,0.0174100194,0.0091138836,-0.063525565,-0.100249425,0.020455284,1.61803341 +0.0975959972,2.01370192,-0.0975960046,0.000202531868,0.187024415,0.0979363695,-0.925725639,0.000767366902,0.0204259381,0.138023704 +0.0811920315,2.01371264,-0.0811920315,3.02112712e-05,0.19622311,0.11131493,-0.908017516,0.0234471932,0.0204266328,0.114928909 +0.0975896418,2.01382232,-0.0975896418,5.10193104e-06,0.187028944,0.0979408473,-0.925605834,0.000747172919,0.0204258822,0.138019979 +0.0978815779,2.0138309,-0.0978815779,0.000129295193,0.187036559,0.0978980064,-0.925395608,0.000553492922,0.0204258841,0.138426021 +0.0975921452,2.01387191,-0.0975921452,0.000196667403,0.187031686,0.0979421213,-0.925560117,0.000748933526,0.020425858,0.138021335 +0.628242195,2.01396966,-0.628242195,0.00527594797,0.16270557,0.0789080933,0.00843898486,0.0981295481,0.0205045007,0.891872883 +1.1711899,2.0141511,-1.17118979,0.000506754324,0.057007134,0.0254583247,0.0785748288,-0.122171104,0.0206066985,1.65632021 +0.0812266469,2.01458693,-0.0812266469,0.000277460582,0.196264058,0.11134135,-0.907287896,0.023409944,0.0204261877,0.114946231 +1.13368893,2.01472282,-1.13368893,0.000500540831,0.0210929867,0.0108163878,-0.0737301484,-0.196239024,0.0205983799,1.60344887 +-0.680872917,2.01515079,0.680872917,0.00672404049,0.163135499,0.0788126513,-0.071072571,0.0139589421,0.0204251669,0.964236856 +0.068649061,2.01534867,-0.0686490536,0.00012088177,0.287831724,0.198953152,-0.808606982,0.0394765884,0.0204283837,0.0972109586 +0.118084483,2.01548529,-0.11808449,8.41170331e-05,0.187830538,0.0947806314,-0.908570826,-0.0142376171,0.0204253085,0.167255625 +0.497595012,2.01590037,-0.497595012,0.00600028783,0.16403839,0.0793835968,-0.0783524066,0.0320205837,0.0204880591,0.704156876 +1.04679596,2.01709747,-1.04679608,0.00100845331,0.121469311,0.055703599,-0.199653357,-0.178943366,0.0205802359,1.48050904 +-0.108794019,2.01769829,0.108794019,0.000166740589,0.199314117,0.102995783,-0.837334514,-0.0471367836,0.0204068404,0.153876036 +0.542714238,2.01784778,-0.542714238,0.00440713484,0.162679598,0.0787543952,-0.0218013655,0.0607965998,0.0204948243,0.767852604 +0.312088817,2.01824903,-0.312088817,0.00372402044,0.179858357,0.0878889039,-0.530919135,-0.0969572216,0.0204499438,0.441754758 +0.122443467,2.01837897,-0.122443467,0.0005515347,0.188094735,0.0947100148,-0.899774849,-0.0181702375,0.020424163,0.173355192 +-1.08866298,2.01863265,1.08866298,0.00088362291,0.066951409,0.0282121506,-0.182422742,-0.1635423,0.0204616878,1.5396688 +0.515938342,2.01902699,-0.515938342,0.000905411202,0.162773222,0.078759931,-0.0389108434,0.0475080125,0.0204895418,0.730576754 +0.113714233,2.02049685,-0.113714233,0.000261195644,0.187818214,0.0955684111,-0.90724051,-0.0106341532,0.0204227883,0.16097191 +0.40143919,2.02298403,-0.40143919,0.0102013629,0.171353161,0.0832032338,-0.266711056,-0.060410507,0.0204621498,0.572074056 +-1.09548056,2.02353382,1.09548068,0.000704241975,0.0616346076,0.0256590471,-0.172560677,-0.168845713,0.0204545278,1.54927659 +-1.18123174,2.02357626,1.18123162,0.000844500144,0.0583859198,0.0256050304,0.215692922,-0.145042911,0.0204701647,1.67058921 +0.825952888,2.0239501,-0.825952888,0.00721551152,0.157856971,0.0761742592,-0.0909683257,-0.0206388272,0.0205320567,1.16993022 +1.17923737,2.02450514,-1.17923737,0.000576314633,0.0568808131,0.0240559187,0.203235641,-0.176110387,0.0205966402,1.66769767 +1.17886388,2.02464581,-1.17886388,0.000205014498,0.0570291169,0.024106374,0.198647469,-0.177025482,0.0205965061,1.667171 +-0.145739213,2.02468824,0.145739213,0.00110556744,0.205898881,0.103620023,-0.779583335,-0.0816664845,0.0204093568,0.208077818 +0.528608978,2.02473903,-0.528608978,0.00585402176,0.162575826,0.0787047371,-0.0238741133,0.057391841,0.0204868913,0.748188734 +1.09538388,2.02506566,-1.09538388,0.000438675866,0.0654177517,0.0272578821,-0.19908686,-0.204950035,0.020582797,1.54916561 +1.17865872,2.0251348,-1.17865884,2.48851684e-05,0.0569699258,0.0240410082,0.195340544,-0.177731186,0.0205961186,1.6668824 +1.17874384,2.02576208,-1.17874384,0.000525928917,0.0569350831,0.0240228698,0.195557907,-0.178068355,0.0205956101,1.66700137 +1.17791224,2.02579999,-1.17791224,0.00101708423,0.0571343079,0.0240999106,0.191352457,-0.179239705,0.0205954537,1.6658231 +-1.20421088,2.02617216,1.20421088,0.000462905911,0.0545328781,0.0249364506,0.551478326,-0.119795769,0.020471843,1.70301342 +-1.217659,2.02629685,1.217659,0.000484565622,0.0490558855,0.0229049455,0.718219757,-0.0578044951,0.0204734188,1.72203171 +-1.22883022,2.02640271,1.22883022,0.000219950234,0.0457421057,0.0305762533,0.744193017,-0.0314921886,0.020473199,1.7378304 +-0.98759675,2.02688432,0.98759675,0.00169428415,0.14739354,0.0698104575,-0.171624541,-0.167514175,0.0204663817,1.3969214 +-0.839091301,2.02691197,0.839091241,0.00291061355,0.160536394,0.0774491727,-0.146556616,-0.107385054,0.020455461,1.18699908 +1.10103083,2.0269537,-1.10103095,0.000813618419,0.0633105487,0.0263032857,-0.182826445,-0.205550179,0.0205821823,1.55712736 +-1.15889931,2.02759886,1.15889931,0.000404452963,0.0480440259,0.0205581449,-0.00914374366,-0.130594686,0.020454172,1.6389395 +-0.963361502,2.02797747,0.963361442,0.00141435023,0.151826307,0.0723609179,-0.171361759,-0.16663976,0.0204640161,1.36287653 +-0.119854473,2.02825308,0.119854473,0.000335783494,0.200872913,0.102104567,-0.818428993,-0.0596822165,0.0204029381,0.169581488 +-0.827308595,2.0285821,0.827308595,0.00226568128,0.160549194,0.0774748027,-0.143283442,-0.0956582204,0.0204533525,1.17064798 +-0.974965274,2.02915621,0.974965274,0.000811781676,0.150602937,0.0716566592,-0.172603071,-0.168483853,0.0204636697,1.37936711 +0.198950723,2.02940249,-0.198950723,0.000703989179,0.187137648,0.0920495987,-0.785193741,-0.0772368535,0.020427851,0.281359643 +-0.639143169,2.02977729,0.639143109,0.00368624553,0.164104566,0.0792728886,-0.0503574349,0.0237230398,0.0203983579,0.904948115 +0.198418155,2.02984548,-0.198418155,0.000585573551,0.187161103,0.0920661017,-0.7859236,-0.077050142,0.0204275455,0.28061229 +0.198482946,2.02988577,-0.198482931,6.5215e-08,0.187157169,0.0920637026,-0.785772145,-0.0770873576,0.0204275306,0.280706763 +0.198314339,2.0299418,-0.198314339,0.000958024291,0.187166303,0.0920712277,-0.785985589,-0.0769667029,0.0204274803,0.280463606 +0.198446751,2.03002024,-0.198446736,0.000664939638,0.187160328,0.0920663923,-0.785738647,-0.0770634413,0.0204274449,0.280652463 +0.198699221,2.03004956,-0.198699206,0.000506740063,0.187143803,0.0920566916,-0.785233855,-0.0771644637,0.0204274524,0.281005412 +-0.0833437517,2.0301528,0.0833437517,0.000524602656,0.196780533,0.11052186,-0.820409179,-0.00168762123,0.0203953311,0.119051874 +-0.0708740354,2.03018141,0.0708740354,0.000226580421,0.253543854,0.175662428,-0.741196811,0.0443366729,0.020392932,0.101213098 +-0.0997060686,2.03023338,0.0997060686,0.000519482419,0.197330445,0.103161603,-0.831518888,-0.0404283255,0.020398384,0.142456263 +0.755676866,2.03081679,-0.755676866,0.00468775956,0.159425706,0.0770718828,-0.0460330993,0.0425471924,0.0205150265,1.06891036 +-0.213408828,2.03126335,0.213408828,0.00141333812,0.198734581,0.0983460918,-0.671597838,-0.104763985,0.0204102844,0.304326087 +0.11671982,2.03173232,-0.11671982,0.000271759171,0.188303232,0.0952790901,-0.893929303,-0.0132377259,0.0204170682,0.165135935 +1.02936852,2.0321815,-1.02936852,0.00113033783,0.130548537,0.0607150272,-0.195352942,-0.173944622,0.0205661431,1.4557749 +-0.819106817,2.03455758,0.819106817,0.00454023154,0.160643861,0.0775222704,-0.133852959,-0.0838058144,0.0204471927,1.15890396 +-1.15106738,2.03593922,1.15106738,0.000236709428,0.043578878,0.0177121032,-0.0444374047,-0.151980281,0.0204404108,1.62791836 +-1.14712775,2.03687358,1.14712775,0.000604999193,0.0437157452,0.0176998936,-0.0556733124,-0.157002643,0.0204385538,1.62232673 +-1.11881506,2.0379045,1.11881506,0.00108839339,0.0470824242,0.0188997984,-0.127358839,-0.180354729,0.0204374399,1.58245564 +-0.117492586,2.03820372,0.117492586,0.000255625084,0.200053781,0.102069423,-0.811564267,-0.0595439263,0.0203969851,0.166376352 +-0.121879756,2.03854728,0.121879764,0.00037967242,0.200505316,0.101797819,-0.807186186,-0.0634432286,0.0203973241,0.172574967 +-1.01531959,2.03882957,1.01531959,0.00201203953,0.139228612,0.065157041,-0.167804316,-0.166292056,0.0204564482,1.43652463 +-0.119635642,2.03925467,0.119635649,7.42431075e-05,0.200269684,0.101797029,-0.80965656,-0.0618173741,0.0203966778,0.169507071 +-0.829615235,2.03934669,0.829615235,0.0041565951,0.160362393,0.0773661286,-0.141798288,-0.093110241,0.0204467643,1.1736728 +1.13335896,2.03942823,-1.13335896,0.00130779878,0.0485195257,0.0197061673,-0.095684804,-0.212112606,0.0205790885,1.602983 +1.07164216,2.04024649,-1.07164228,0.00129898754,0.10380885,0.046126768,-0.175883293,-0.20798552,0.0205664299,1.51554036 +0.0682916418,2.04080057,-0.0682916418,0.000173538196,0.288536668,0.199301928,-0.791511774,0.0398665741,0.0204139706,0.097522825 +0.0970949829,2.04084873,-0.0970949829,0.000548312848,0.188580289,0.0986465439,-0.898189425,-0.000414443435,0.0204121154,0.13855876 +0.0808028802,2.04088569,-0.0808028802,0.000399477081,0.197247356,0.111848861,-0.884538293,0.0211512055,0.0204121601,0.115346894 +-0.23608315,2.04128981,0.236083135,0.00302386703,0.193922251,0.0954839736,-0.630166769,-0.106646329,0.0204029232,0.335935414 +-0.119638316,2.04189157,0.119638309,0.000200451643,0.20010072,0.101712294,-0.807247996,-0.0622686967,0.0203952175,0.169519648 +-1.04060316,2.0432291,1.04060316,0.00152909919,0.123840317,0.0565932021,-0.171455935,-0.16407609,0.0204514135,1.47224331 +0.149129242,2.04402399,-0.149129242,0.00150453381,0.188685656,0.0938099995,-0.84279108,-0.0433250181,0.0204132702,0.212227106 +1.20214677,2.04469967,-1.20214677,0.000588169787,0.0502799042,0.0217357464,0.417671412,-0.149341777,0.0205818247,1.70011055 +1.21611118,2.0449698,-1.21611118,0.000458207418,0.0441901907,0.0196625013,0.546569467,-0.0742046908,0.0205825437,1.71986032 +1.22883511,2.04505563,-1.22883511,0.000218079644,0.04142268,0.0257482342,0.562563062,-0.0393822268,0.0205834415,1.73785508 +1.20093632,2.04561663,-1.20093632,3.27664275e-05,0.0508005545,0.0219249632,0.401727945,-0.152777508,0.0205810163,1.69840527 +-0.176073596,2.04599309,0.176073611,0.000814245606,0.205411732,0.102727041,-0.712150574,-0.0968303084,0.0203999728,0.249777481 +-0.165067315,2.04613972,0.1650673,0.000722993747,0.205307126,0.10289295,-0.731145263,-0.0947902501,0.020398818,0.234074473 +-0.85313642,2.04614186,0.85313642,0.00371225411,0.158621967,0.0763591826,-0.154486462,-0.110903695,0.0204444528,1.20663941 +1.21580243,2.04772711,-1.21580231,4.98365771e-05,0.0441424213,0.019532308,0.535156488,-0.0757140592,0.0205803029,1.71944177 +1.22882092,2.04785371,-1.2288208,2.34087056e-05,0.0414029472,0.0254140254,0.553025007,-0.0400266685,0.0205811746,1.73785353 +1.20027351,2.04789567,-1.20027363,3.36554258e-05,0.0504896082,0.0216511507,0.389593691,-0.155548394,0.0205792151,1.69747436 +1.2013514,2.04795289,-1.2013514,3.00050724e-05,0.0502948835,0.0216130968,0.401507378,-0.153535098,0.0205792654,1.69900608 +-1.16643476,2.04795289,1.16643476,0.000502167677,0.060181208,0.0253397003,0.0991492644,-0.19808951,0.0204379484,1.64959645 +-1.07527804,2.04819989,1.07527804,0.00150961825,0.100633666,0.0442716256,-0.160930365,-0.179504707,0.0204389971,1.52073741 +0.940756679,2.04859638,-0.940756738,0.00186277134,0.157802746,0.0762291849,-0.161819786,-0.131898612,0.0205373839,1.33054256 +-0.659496665,2.04874825,0.659496665,0.00510380045,0.164190561,0.0794537142,-0.0393664762,0.0389270931,0.0203940533,0.933808446 +-0.976719081,2.04976439,0.976719141,0.00136268232,0.148870066,0.0706533268,-0.174912393,-0.1650206,0.0204488747,1.3814584 +-1.18753386,2.0498085,1.18753386,0.000520402507,0.0569456108,0.0245528426,0.272071153,-0.160358667,0.02044129,1.67943406 +1.21536553,2.05002141,-1.21536553,0.000656881428,0.0441528782,0.0194935203,0.524002552,-0.0770583302,0.0205783956,1.71881127 +1.22882926,2.05014539,-1.22882926,0.000315704587,0.0413674116,0.0252343342,0.544037223,-0.0400524959,0.0205792971,1.73785257 +1.20046175,2.05036736,-1.20046175,0.000737354159,0.0503936782,0.0215950552,0.388973087,-0.157149389,0.0205772109,1.69773519 +0.136059076,2.05134344,-0.136059076,0.000546580239,0.189573824,0.0949345604,-0.848878145,-0.0328007676,0.0204081777,0.193861321 +0.996260226,2.05153298,-0.996260285,0.00257821521,0.1482566,0.0707382113,-0.185614675,-0.169420823,0.0205462053,1.4090507 +-0.172224984,2.05244827,0.172224969,0.000553569698,0.205346093,0.102773361,-0.713971138,-0.0988790691,0.0203953963,0.24458921 +-0.397693455,2.05277061,0.397693455,0.00332661532,0.171418756,0.0827277675,-0.315923899,-0.0766199306,0.0203615129,0.565311432 +0.0974947214,2.05302429,-0.0974947214,0.000242485752,0.189342827,0.0992055163,-0.886260569,-4.51634405e-05,0.0204056632,0.138549134 +-1.07609248,2.05302668,1.0760926,0.000874191523,0.10036809,0.0441482291,-0.157606989,-0.182787523,0.0204344112,1.5219363 +0.0811037272,2.0537703,-0.0811037272,0.000277188607,0.198123187,0.112506062,-0.873409092,0.0223345123,0.0204050243,0.115263425 +-1.08430934,2.053864,1.08430946,0.000927980174,0.0952842459,0.041511748,-0.14851144,-0.191897184,0.020431364,1.53347719 +0.0685260966,2.05452943,-0.0685260966,0.000120463563,0.288952202,0.199540451,-0.781774879,0.0414428562,0.0204059612,0.0973922834 +-0.100875452,2.0559063,0.100875452,0.000273253885,0.196191594,0.102278151,-0.807852745,-0.0422082841,0.0203847568,0.142732635 +-0.0841927156,2.05645752,0.0841927156,0.000251111051,0.196894154,0.110634044,-0.795275688,-0.00618197396,0.0203808732,0.119094461 +-0.0714137703,2.0565815,0.0714137703,7.51915941e-05,0.254034907,0.175670624,-0.714140534,0.0413722917,0.020377744,0.101007327 +-0.10132619,2.05658865,0.101326197,1.92592652e-05,0.196197957,0.102197252,-0.807121217,-0.0426916741,0.0203844309,0.143402398 +-0.0841755569,2.05696321,0.0841755569,9.857901e-06,0.196869999,0.110618256,-0.794857442,-0.00621619914,0.020380592,0.119094513 +-0.364370823,2.05698037,0.364370793,0.00705894781,0.172817871,0.0834071115,-0.373377025,-0.0877062529,0.0203644987,0.518297851 +-0.0761910677,2.05701447,0.0761910677,0.000101474201,0.232693791,0.151676178,-0.743900061,0.0236290507,0.0203786492,0.107750781 +-0.0713929236,2.05704379,0.0713929236,1.01043815e-06,0.254022717,0.175649017,-0.713721991,0.0413251854,0.0203774646,0.100998789 +-0.100823566,2.05705309,0.100823566,1.21074081e-05,0.196137637,0.102249444,-0.806779444,-0.0423018634,0.0203841068,0.142725095 +0.110462956,2.05727363,-0.110462949,0.000225951051,0.189336717,0.0968331993,-0.872604072,-0.0102955736,0.0204038862,0.156830385 +1.08524787,2.05732822,-1.08524787,0.000429353735,0.0940929353,0.0410027467,-0.160419077,-0.226695523,0.0205552112,1.53482652 +-0.0714107081,2.05747509,0.0714107081,7.5001095e-05,0.253996074,0.175624162,-0.713363826,0.0412227288,0.0203771982,0.101004429 +-0.0841913298,2.05748153,0.0841913298,0.000249966834,0.196849301,0.110613942,-0.794257104,-0.00625181757,0.0203803089,0.119091019 +-0.101314075,2.05751944,0.101314075,0.000218563102,0.196136206,0.102167062,-0.806280673,-0.0428352207,0.0203839112,0.143388167 +0.626212776,2.05771995,-0.626212776,0.00389466924,0.163004249,0.0791989192,0.0231289864,0.117435798,0.0204742327,0.888291597 +-0.100843519,2.05822301,0.100843519,0.000202108742,0.196074069,0.102238528,-0.805535018,-0.0424182974,0.020383494,0.142684579 +-0.178854764,2.05840349,0.178854764,0.000980455312,0.204385906,0.10217347,-0.699938416,-0.101489328,0.0203925613,0.253449202 +1.09197104,2.05868673,-1.09197104,0.00137689989,0.0905859843,0.0391917266,-0.144651905,-0.232260734,0.020555092,1.54431188 +1.08354926,2.05903721,-1.08354938,0.000705945538,0.0956779793,0.0418463722,-0.160228133,-0.225722075,0.0205536,1.53244007 +-0.7469365,2.05937576,0.7469365,0.00839325227,0.162501559,0.0786280632,-0.0786758065,0.000268016011,0.0204118211,1.06008971 +-0.213029206,2.06128764,0.213029206,0.00139755162,0.197633788,0.0978969038,-0.651682019,-0.113680407,0.0203920901,0.302905142 +0.115866363,2.06146717,-0.115866363,0.000447291241,0.189180851,0.0960440338,-0.865282953,-0.0137438681,0.0204019248,0.164319217 +-0.102665246,2.06162119,0.102665253,0.000335870369,0.196131945,0.102012776,-0.801259995,-0.0450437069,0.0203817375,0.145217329 +-1.15796328,2.06226325,1.15796328,0.000351907656,0.0613233149,0.0251629278,0.0366847701,-0.229771018,0.0204192735,1.63767433 +-1.19264209,2.06237411,1.19264197,0.000353572657,0.0560421534,0.0240618512,0.32694754,-0.165310264,0.0204283036,1.68669987 +-1.21233714,2.06267452,1.21233714,0.000485748751,0.0493501425,0.0217761006,0.559155166,-0.0797339454,0.0204320066,1.71455359 +-1.22874689,2.06292534,1.22874689,0.000220882939,0.0451223291,0.0261742622,0.628402531,-0.0390117243,0.0204324815,1.73776114 +0.108946435,2.0629735,-0.108946435,0.000224157629,0.18972984,0.097447522,-0.86828059,-0.00874434505,0.0204008017,0.154397711 +0.257259816,2.06314158,-0.257259816,0.00261731073,0.184098884,0.0904436037,-0.646381199,-0.0999823064,0.0204136688,0.365106761 +-1.19012284,2.06334496,1.19012296,0.000194274093,0.0564097613,0.0241013523,0.299448341,-0.170342699,0.0204263832,1.68314672 +-1.15285552,2.06394172,1.15285552,0.000907204812,0.0632038042,0.02598463,0.0171034709,-0.233471364,0.0204167776,1.63042963 +0.998738587,2.06416917,-0.998738527,0.000350509043,0.147486493,0.0702726096,-0.18468757,-0.168697834,0.0205372665,1.41276932 +0.861131549,2.06475735,-0.861131549,0.00452336902,0.158514753,0.0764978379,-0.103027895,-0.0326854475,0.0205118079,1.21954513 +-0.911012471,2.06553483,0.911012471,0.0042640497,0.154223278,0.0738115534,-0.183254272,-0.144819841,0.020436326,1.2891593 +0.89876163,2.06559062,-0.89876157,0.00270413002,0.158425182,0.0764686242,-0.132753849,-0.0730780363,0.0205184333,1.27315938 +-1.15740275,2.06586647,1.15740287,1.66871614e-05,0.0618880875,0.0253903568,0.0324315019,-0.234912127,0.0204152483,1.63689458 +-1.15945399,2.06623483,1.15945387,0.000577199797,0.0612877347,0.0251736455,0.0454549417,-0.230769649,0.0204150379,1.63977039 +0.167811349,2.06629968,-0.167811334,0.00102583109,0.188959554,0.0937135592,-0.796934783,-0.0571678244,0.020403171,0.238462269 +-1.19097316,2.06684661,1.19097304,0.000805323711,0.0564500801,0.0241235252,0.303374529,-0.17209594,0.0204225238,1.68433833 +-1.21142769,2.06711102,1.21142781,0.000741691096,0.0494703241,0.0217210222,0.538178504,-0.0826874077,0.0204266328,1.71326566 +-1.2287451,2.06733227,1.2287451,0.000345011038,0.0450244509,0.0257152934,0.613326371,-0.0392538756,0.0204274114,1.73775673 +0.144280747,2.06783485,-0.144280761,0.000432769069,0.189059123,0.0943357497,-0.825792491,-0.0397646017,0.0204002615,0.205193028 +0.273185551,2.06788325,-0.273185521,0.00326912827,0.183116123,0.0898904055,-0.608366013,-0.10480231,0.0204124041,0.388722986 +0.0971793979,2.06790519,-0.0971793979,0.000360658771,0.190007985,0.099595651,-0.870995045,-0.0014211731,0.0203976575,0.138837367 +0.0682582185,2.06792736,-0.0682582185,0.000179072071,0.286999345,0.197868407,-0.771843791,0.0434838235,0.0203978345,0.0974816307 +0.08080405,2.06797409,-0.08080405,0.000413358648,0.19827199,0.11256814,-0.860466361,0.0223804563,0.0203968976,0.115425408 +1.13483644,2.0690074,-1.13483632,0.00361560751,0.0666147843,0.0272674784,-0.0511564016,-0.27410543,0.0205538906,1.60507107 +-0.135115281,2.0691762,0.135115281,0.000512166647,0.200864598,0.101358272,-0.760539711,-0.0839595199,0.020381311,0.191089362 +-0.135038272,2.0692277,0.135038286,1.17285217e-05,0.200855702,0.101358019,-0.760599256,-0.0839123353,0.02038127,0.190984428 +-0.135158837,2.06929922,0.135158837,0.000360852631,0.20085749,0.101354077,-0.760362327,-0.0839951783,0.0203812346,0.191155091 +-0.135039613,2.06933284,0.135039613,0.000193859931,0.200849175,0.101354703,-0.760501683,-0.0839316472,0.0203812141,0.190986633 +-0.135099992,2.06936622,0.135099992,3.96174946e-05,0.20085147,0.101352163,-0.760401011,-0.0839885995,0.0203811917,0.191074729 +-0.134910062,2.06972003,0.134910077,0.000627414207,0.200808033,0.101343162,-0.760297358,-0.0838408396,0.0203809775,0.190794513 +-1.11617291,2.07001138,1.11617291,0.00163222617,0.0769946277,0.0323767178,-0.0962972641,-0.235125199,0.0204121526,1.57872033 +0.21688129,2.07125854,-0.21688129,0.00174258021,0.187123775,0.0922999159,-0.716495514,-0.0835248232,0.0204053428,0.309740782 +-1.15399778,2.07161498,1.1539979,0.000865025446,0.0645778254,0.0266449656,0.0225291401,-0.241891429,0.0204101428,1.63204098 +0.113769278,2.07310653,-0.113769278,0.000305685709,0.189856291,0.0966939554,-0.855071902,-0.0122336708,0.0203951225,0.161212251 +-0.991944015,2.0731647,0.991944075,0.00146318786,0.143330902,0.0674794987,-0.173907205,-0.162533194,0.0204303451,1.40325463 +0.695490003,2.07407713,-0.695489943,0.00349187152,0.162080467,0.0787625164,-0.00276369136,0.122071236,0.0204722863,0.983626008 +0.132440716,2.07418871,-0.132440716,0.000422403798,0.189863145,0.095348902,-0.831559539,-0.0302263536,0.0203957967,0.188558698 +1.00059175,2.07794785,-1.00059175,0.00128490187,0.147298187,0.0702029392,-0.179405123,-0.168874368,0.020527048,1.41530824 +0.979759455,2.0787344,-0.979759455,0.00156899216,0.151655734,0.0726499557,-0.172562256,-0.150340915,0.0205240101,1.38566494 +-0.945245028,2.08217716,0.945245028,0.00200833217,0.149576351,0.0711015835,-0.184126526,-0.149649203,0.0204252657,1.33706558 +1.05654001,2.08342052,-1.05654001,0.00117367785,0.117885806,0.0538882874,-0.16489692,-0.202825338,0.0205300804,1.49417567 +-0.0833793059,2.08370471,0.0833792984,0.000512611645,0.195190102,0.10970401,-0.76853025,-0.00888046436,0.0203650463,0.119150139 +-0.0708718225,2.08380318,0.0708718225,0.000224854404,0.251663059,0.174578309,-0.693456292,0.0390532613,0.0203612931,0.101262197 +-0.0995589867,2.08385801,0.0995589867,0.000451649481,0.194920629,0.102029793,-0.778531194,-0.0459701382,0.0203685071,0.142286301 +0.270902842,2.08511186,-0.270902842,0.00148208067,0.183345914,0.0901118517,-0.603180707,-0.107459545,0.020401312,0.385282576 +0.170197576,2.0858407,-0.170197576,0.000834982668,0.189428464,0.0940933153,-0.774321079,-0.0603287704,0.0203920119,0.243070126 +0.140582234,2.08639479,-0.140582234,0.000571083277,0.189520255,0.0948419571,-0.812018633,-0.0383275785,0.0203891508,0.201111466 +-0.290671021,2.08665466,0.290671021,0.00213273265,0.181518525,0.0884623602,-0.510970533,-0.110138923,0.020368956,0.411669672 +0.102014244,2.08772016,-0.102014251,0.000130674816,0.19039458,0.0993071645,-0.850452065,-0.00234476291,0.0203866009,0.144303769 +-0.305436492,2.08801413,0.305436492,0.00247014151,0.178653955,0.0868256167,-0.48370719,-0.106530488,0.0203667451,0.432883948 +-0.233561039,2.08807564,0.233561039,0.00169588136,0.192474127,0.0948906615,-0.608273447,-0.118835241,0.0203754082,0.331314296 +0.18458806,2.08811522,-0.18458806,0.00173207454,0.188289583,0.0932157412,-0.75559026,-0.0699677467,0.0203920938,0.262715936 +1.03808653,2.09111667,-1.03808653,0.00116982532,0.130660176,0.0610046461,-0.169026136,-0.189670771,0.0205211304,1.46808338 +-0.915479302,2.09158468,0.915479302,0.00276406459,0.152639985,0.0729776174,-0.187266231,-0.133315697,0.0204175469,1.29543757 +0.955689132,2.09186935,-0.955689073,0.000780269736,0.156166181,0.0752274841,-0.158282071,-0.127897233,0.0205105375,1.35209 +-0.587807298,2.09317732,0.587807238,0.00737367105,0.166020572,0.0803828016,-0.0172253363,0.0699794739,0.0203388296,0.833900452 +0.940251589,2.09327841,-0.940251589,0.00221330649,0.156500474,0.0753851384,-0.149628013,-0.106202178,0.0205066726,1.33017445 +1.0456326,2.0933373,-1.0456326,0.000294480618,0.126876533,0.0589301474,-0.166571319,-0.193861932,0.0205205325,1.47877586 +0.0986678451,2.09342957,-0.0986678451,0.000209309364,0.190572456,0.10001941,-0.847393274,0.000149052474,0.0203832705,0.139695793 +1.04388881,2.093431,-1.04388881,0.000605644716,0.128150895,0.0596348085,-0.167315304,-0.192794502,0.0205200762,1.47631097 +-0.978541493,2.09379745,0.978541493,0.00192736345,0.1457607,0.0688758641,-0.177150518,-0.160380214,0.0204147827,1.38424206 +1.16545081,2.09395504,-1.16545081,0.00148493599,0.0581934229,0.023755677,0.0691880733,-0.246900454,0.0205367226,1.64831257 +0.08211454,2.09410882,-0.0821145475,0.000279943109,0.198281601,0.112491533,-0.840476453,0.0253334083,0.0203815252,0.116206191 +0.125345275,2.09412837,-0.125345275,0.000482430594,0.191030651,0.0967375189,-0.818256021,-0.0242724791,0.0203838926,0.178105071 +-0.386259943,2.09450841,0.386259973,0.0051328293,0.171707198,0.0830064341,-0.313653588,-0.0790397823,0.0203425791,0.549635828 +0.0996563286,2.09460974,-0.0996563286,8.2222432e-05,0.190706566,0.0999565572,-0.845178664,-0.000750383711,0.0203826521,0.141090766 +0.0694530979,2.09480453,-0.0694530979,0.000121145167,0.283475876,0.194922566,-0.75698173,0.0486632138,0.0203812402,0.0982346013 +1.04434121,2.09487748,-1.04434109,3.34132756e-06,0.127974823,0.0595481694,-0.166627511,-0.193084747,0.0205190536,1.47697234 +0.0694493577,2.09498954,-0.0694493577,4.88751493e-06,0.283430398,0.194886997,-0.75683713,0.0486825928,0.0203811247,0.0982361138 +-0.158931047,2.09501338,0.158931047,0.000422509067,0.201984271,0.101311028,-0.699923754,-0.105246112,0.020367194,0.225135326 +0.082092531,2.0950861,-0.082092531,2.9318202e-05,0.198261693,0.112480275,-0.839582264,0.0253370106,0.0203809477,0.116217636 +0.098626256,2.09512973,-0.098626256,2.78660627e-05,0.190669596,0.100080751,-0.84558028,0.00017315321,0.0203823131,0.139725849 +0.0694568381,2.09533167,-0.0694568306,0.000121586432,0.283376217,0.194850698,-0.756608486,0.0487395786,0.0203809123,0.0982337669 +-0.162362993,2.09561872,0.162362993,0.000543250702,0.201727569,0.101122513,-0.694577217,-0.10606999,0.0203672685,0.229798481 +-0.429892182,2.09608412,0.429892182,0.00625050021,0.170483038,0.0824491829,-0.240086257,-0.0397551954,0.0203382503,0.609339356 +1.04286075,2.0965445,-1.04286075,0.000842442911,0.128666013,0.0599300228,-0.166605219,-0.191375375,0.0205176454,1.47485459 +0.082143411,2.0969007,-0.082143411,0.00028128305,0.198240057,0.112489089,-0.838110626,0.0254973285,0.0203798357,0.116209045 +0.100484446,2.09694386,-0.100484446,5.39877074e-05,0.190780357,0.0999041274,-0.842141271,-0.00131166936,0.0203813761,0.142197818 +1.04523551,2.09698772,-1.04523551,0.000786627119,0.127897039,0.0595410019,-0.16441673,-0.194313899,0.0205174722,1.47821224 +-1.09931648,2.09702015,1.09931648,0.000800899288,0.0937141478,0.0407982059,-0.0961436778,-0.234023929,0.0203912966,1.55474269 +-0.157205403,2.09708667,0.157205403,0.000135698108,0.201805338,0.101254322,-0.70096612,-0.105090953,0.0203658864,0.22278145 +0.0987414643,2.09830284,-0.0987414569,0.000231339305,0.190765455,0.100161135,-0.842600465,0.000396043877,0.0203804467,0.139720678 +-0.200148493,2.09848452,0.200148493,0.00143082824,0.198255062,0.0985068753,-0.644705892,-0.119879261,0.020369526,0.284626901 +-0.113210112,2.09858179,0.113210112,0.000600363128,0.195780605,0.100455366,-0.757998824,-0.0635731444,0.0203615595,0.160733789 +0.114264086,2.09858966,-0.114264086,0.000249689794,0.191178709,0.0975297317,-0.826606333,-0.0152162109,0.0203807112,0.163101822 +-0.299408466,2.09865689,0.299408466,0.000215399254,0.179329723,0.0872510225,-0.489545405,-0.110532694,0.0203606579,0.42495352 +-0.147755072,2.09920287,0.147755057,0.000440074102,0.200566038,0.101069823,-0.711882472,-0.096860908,0.0203642696,0.209042728 +0.777382374,2.09960246,-0.777382433,0.000903227832,0.15912424,0.0768740773,-0.0423695892,0.0824639797,0.020469889,1.10069406 +-0.160384893,2.10033154,0.160384893,0.000435828842,0.201581687,0.101077743,-0.693959296,-0.107080579,0.0203641299,0.227015167 +0.675725758,2.10128975,-0.675725818,0.0035588704,0.163072154,0.0793427303,0.0105786789,0.157718554,0.0204490628,0.955791354 +0.7942487,2.10158205,-0.7942487,0.00476122834,0.158658877,0.0765970647,-0.0513000935,0.0727749392,0.0204724036,1.12396049 +0.595345855,2.10325933,-0.595345795,0.00520885829,0.162667841,0.0791440606,0.0309254956,0.123761266,0.0204313565,0.846784234 +0.235042065,2.10367751,-0.235042095,0.00170482439,0.1854963,0.0915317982,-0.657964885,-0.0935584307,0.0203871187,0.33287251 +-0.279469609,2.10411358,0.279469609,0.00178009784,0.182956964,0.0893955603,-0.520425022,-0.116185263,0.0203600023,0.395514637 +1.22863078,2.10500836,-1.22863078,0.000532412785,0.0407106355,0.0210306551,0.341685325,-0.0413507186,0.0205334257,1.73774457 +1.20620418,2.10501504,-1.2062043,0.00108790502,0.0451344773,0.0190811604,0.281288177,-0.107884176,0.0205319095,1.70602477 +-0.154954717,2.10526538,0.154954717,0.000347173685,0.201093137,0.101000302,-0.696390033,-0.105097979,0.0203609914,0.219233215 +-1.03942466,2.10530472,1.03942478,0.000373334304,0.127426729,0.0586240664,-0.147793517,-0.17240718,0.0203977749,1.46997488 +1.18303514,2.10531998,-1.18303514,0.00167651428,0.0536338016,0.0219294,0.147469833,-0.231150657,0.0205298848,1.67325401 +-1.03993142,2.10536695,1.0399313,0.000680955476,0.127117142,0.0584531203,-0.147876516,-0.172359332,0.0203976966,1.47069097 +-1.03870583,2.10581756,1.03870595,0.000737460505,0.127593234,0.0587158166,-0.148054317,-0.172279671,0.0203974303,1.46895647 +-0.0713105574,2.10600138,0.0713105574,0.000117980104,0.250453949,0.174956247,-0.669457972,0.038334094,0.020348791,0.101023465 +-1.03984427,2.10608482,1.03984416,0.000757992908,0.127214879,0.058508262,-0.147503957,-0.172634512,0.0203970745,1.47057164 +-1.0396328,2.10632706,1.0396328,4.85022356e-05,0.127320796,0.0585677475,-0.1475804,-0.17242527,0.0203969069,1.47027302 +-0.360074431,2.10646558,0.360074461,0.00332926866,0.172588021,0.0835065544,-0.359038591,-0.0928945169,0.0203384645,0.511577308 +-0.0838038251,2.10648966,0.0838038251,0.000270613469,0.194982141,0.109905966,-0.742373288,-0.00963824335,0.0203524865,0.11870797 +-0.305522025,2.10651755,0.305522025,0.00283567561,0.178388074,0.0867621377,-0.474755883,-0.108002007,0.0203564502,0.432814002 +-1.03992462,2.10652924,1.03992462,6.41031438e-05,0.127258211,0.0585392118,-0.14699249,-0.172855079,0.0203967076,1.47068417 +-0.0999667048,2.10666895,0.0999667048,0.000269657146,0.193806961,0.101617418,-0.754339159,-0.0466201194,0.0203563794,0.141612902 +-1.03906953,2.10667419,1.03906953,0.00110822206,0.127469987,0.05865236,-0.147946611,-0.172127783,0.0203966983,1.46947134 +-0.529294014,2.10694599,0.529294014,0.00565946195,0.167317748,0.0809197575,-0.0716109276,0.045186758,0.0203221291,0.750633836 +0.681173861,2.10718346,-0.681173861,0.00166163116,0.162935227,0.0792889744,0.0113393879,0.160101712,0.0204454772,0.9636693 +-1.04084754,2.10776424,1.04084754,0.000830405275,0.12706247,0.0584563762,-0.144815147,-0.174097583,0.0203955434,1.47198272 +0.139687598,2.10783696,-0.139687598,0.000555573672,0.19030574,0.0955232233,-0.792845011,-0.0366996974,0.020376388,0.198253602 +0.480690032,2.10833573,-0.480690002,0.00415604841,0.165849566,0.0805876628,-0.0862002075,0.0302510373,0.020410955,0.679838181 +0.157495916,2.10847545,-0.157495916,0.000690833724,0.190286025,0.0951072276,-0.769255459,-0.0498857982,0.0203775298,0.223412126 +-0.121246353,2.10905123,0.121246353,0.000976843177,0.196981132,0.100288399,-0.738663256,-0.0753009543,0.0203564372,0.172104776 +0.674185812,2.10913324,-0.674185753,0.00213228399,0.16303283,0.079342559,0.0109655475,0.16044344,0.0204424355,0.953764439 +-1.12395668,2.10974979,1.12395668,0.000937750796,0.0840398595,0.0360066295,-0.055256445,-0.285498083,0.0203775056,1.58968592 +-1.08690691,2.10975528,1.08690679,0.0012552212,0.103986658,0.0461725108,-0.097855553,-0.228837967,0.0203842968,1.53737605 +0.969378591,2.109797,-0.969378531,0.00214433763,0.153315306,0.073676154,-0.157127947,-0.131925836,0.0205000453,1.37118483 +0.761342824,2.10983586,-0.761342883,0.00298214541,0.15998894,0.0773631409,-0.0362277068,0.10467279,0.0204584282,1.07813752 +-0.0836295187,2.11041641,0.0836295187,0.000132094196,0.194717377,0.109768115,-0.737926662,-0.00989228394,0.0203502774,0.118668504 +-0.0711448565,2.11051536,0.0711448565,6.26711262e-05,0.249965653,0.174742132,-0.665191591,0.038725622,0.0203461926,0.10098549 +-0.0997561365,2.1105566,0.0997561365,8.33399245e-05,0.193648264,0.101594411,-0.749953449,-0.0475500636,0.0203542206,0.141568407 +0.11594826,2.11063671,-0.11594826,0.00052238506,0.191491634,0.0976940393,-0.813558578,-0.0154618323,0.0203740764,0.164865971 +-0.103156604,2.11141396,0.103156604,0.000106436906,0.19428362,0.101603791,-0.745837629,-0.0513305739,0.0203540288,0.146117613 +-0.296493173,2.11178708,0.296493173,0.00145317207,0.179435655,0.0874084085,-0.488569349,-0.112746596,0.0203535929,0.419947177 +0.679324746,2.11382627,-0.679324746,0.00451874314,0.163013577,0.0793408006,0.0125004984,0.164678246,0.0204393622,0.961037159 +-0.491609216,2.11428833,0.491609186,0.00933696143,0.16805169,0.0812876597,-0.108955994,0.00181323662,0.0203159358,0.699123442 +-1.09556746,2.11475801,1.09556746,0.000190757084,0.100742742,0.0444988795,-0.0848325789,-0.245454609,0.0203778446,1.54959214 +0.10523241,2.11515355,-0.105232418,0.000323484302,0.191313729,0.0993470922,-0.820034742,-0.00511199608,0.0203706827,0.149533629 +0.950640976,2.11552024,-0.950640976,0.00263219187,0.156020746,0.0751641393,-0.144169763,-0.109546259,0.0204930808,1.3448354 +-1.22862864,2.1156292,1.22862864,0.000438764633,0.0442950279,0.0231508911,0.447909862,-0.0402783081,0.0203787591,1.73765266 +-1.20611882,2.11563158,1.20611882,0.000904979708,0.0497507602,0.021308383,0.34703207,-0.100511074,0.0203762334,1.70581675 +-1.18295193,2.11583734,1.18295193,0.0011058182,0.0600512177,0.0251253992,0.171409607,-0.21765241,0.0203720629,1.67305374 +0.689441085,2.11658621,-0.689441085,0.00379767059,0.162751079,0.0791693032,0.0113941757,0.162345588,0.0204400979,0.97520411 +-0.222450182,2.11677432,0.222450197,0.00145695987,0.193174124,0.0954929292,-0.604401648,-0.123590663,0.0203580167,0.315576136 +-0.238771826,2.11778307,0.238771826,0.000878663035,0.1893287,0.0932129845,-0.583826423,-0.127301723,0.0203570314,0.339915395 +0.208528608,2.11810446,-0.208528593,0.00136364298,0.187415183,0.0927688852,-0.697194934,-0.0834157914,0.0203761123,0.296071559 +-1.10545778,2.11925077,1.10545778,0.000676358235,0.0966928154,0.0424166992,-0.0709462389,-0.265054941,0.020371696,1.5634129 +-0.0838386267,2.11935997,0.0838386267,0.000279302825,0.194630921,0.109770335,-0.728696465,-0.0104776267,0.020345401,0.118632883 +-0.100006424,2.11946154,0.100006424,0.000245107862,0.193295121,0.1014155,-0.740530014,-0.0475951172,0.0203495827,0.14151296 +0.279613912,2.12050962,-0.279613912,0.00280306744,0.182699263,0.0899710357,-0.568612814,-0.107297793,0.0203780737,0.396124601 +-0.0713698417,2.12063527,0.0713698417,0.000121773992,0.249236673,0.174122185,-0.656073332,0.0379176661,0.0203402806,0.100991905 +0.349470854,2.12126136,-0.349470854,0.00348917651,0.177098438,0.0866923779,-0.39633894,-0.0943444818,0.0203840602,0.494294524 +0.34241432,2.12134743,-0.342414349,0.0029507752,0.177702233,0.0870309621,-0.414919943,-0.0964278802,0.0203831494,0.484294713 +-0.190139428,2.12153912,0.190139428,0.00134497951,0.197570279,0.0983144343,-0.642105639,-0.124710009,0.020354135,0.2705293 +0.0685202107,2.12200451,-0.0685202107,0.000182187592,0.274696618,0.188644171,-0.733794212,0.050917685,0.0203639083,0.0979031026 +0.0811640173,2.12220311,-0.0811640173,0.000402106962,0.197042018,0.111967005,-0.813344002,0.0236591399,0.0203640312,0.115930602 +-1.17201376,2.12222815,1.17201376,0.00103490998,0.0658659935,0.0277295858,0.123804756,-0.237848371,0.0203661192,1.6575582 +0.0976912528,2.12234879,-0.0976912528,0.000282892113,0.191892892,0.101052284,-0.81639576,-0.00236239983,0.0203657132,0.139485881 +1.09572065,2.12269092,-1.09572077,0.000967410277,0.0992212668,0.0442442335,-0.0945223495,-0.291429788,0.0205006562,1.54958332 +1.20962965,2.12337089,-1.20962965,0.000689619046,0.0455753133,0.0195667408,0.225480616,-0.0957764387,0.0205175783,1.71079814 +0.347127914,2.12338471,-0.347127914,0.000763602438,0.177323863,0.0868226588,-0.40214175,-0.0959579423,0.0203822218,0.491120785 +1.22869897,2.12345552,-1.22869897,0.000330367649,0.0412468053,0.0221211892,0.270519853,-0.041048415,0.0205188449,1.73776817 +0.130501255,2.12367129,-0.130501255,0.000464865327,0.190756544,0.0964704752,-0.788507164,-0.028094545,0.0203669649,0.185311764 +1.18921173,2.12368512,-1.18921173,0.000760420109,0.0535443909,0.0220734887,0.131023094,-0.206457794,0.0205158852,1.68192029 +-0.108396105,2.1243012,0.108396098,0.000275678991,0.194142953,0.100559764,-0.732105851,-0.0590531901,0.0203475673,0.153503731 +0.3465662,2.1243906,-0.3465662,4.75391607e-06,0.177398339,0.0868703946,-0.403119504,-0.0959406346,0.0203815065,0.490315765 +0.347696036,2.12509465,-0.347696036,6.24323866e-06,0.177290007,0.0868147463,-0.400028169,-0.0956616551,0.0203810781,0.491946548 +0.348919749,2.12533188,-0.348919779,5.43542483e-05,0.177216381,0.0867757872,-0.397353917,-0.0947270766,0.0203809682,0.493606418 +-1.22865152,2.12533545,1.22865152,0.0003671468,0.0441900864,0.0234242305,0.412656784,-0.0408192165,0.0203701742,1.73767662 +-1.20746565,2.12533998,1.20746553,0.000761452538,0.0493891872,0.021203991,0.321168959,-0.0961159319,0.0203678198,1.70771348 +1.09658957,2.12538624,-1.09658957,0.000845622155,0.0991582498,0.0442328714,-0.0909745172,-0.294464886,0.0204984918,1.55081308 +-1.18520117,2.12551188,1.18520117,0.000516988512,0.059663482,0.0249657873,0.164606825,-0.209189609,0.0203643776,1.67622554 +1.09618986,2.1256001,-1.09618986,0.0001311042,0.0994416848,0.0443852618,-0.0915838107,-0.294327617,0.0204982292,1.5502497 +1.09634864,2.12573266,-1.09634864,4.90736447e-08,0.0993644968,0.0443450473,-0.091222994,-0.294570953,0.0204981491,1.55047524 +1.09640563,2.12589121,-1.09640574,2.90832832e-05,0.0993542075,0.0443403013,-0.0910486132,-0.294782937,0.0204980187,1.55055451 +1.09625494,2.12589884,-1.09625494,2.97669693e-08,0.0994551629,0.0443946011,-0.0912733525,-0.294607222,0.020497987,1.55034435 +1.09612477,2.12601614,-1.09612465,0.000389073219,0.0995714888,0.0444580615,-0.0913586617,-0.29434365,0.020497879,1.55015731 +0.345663726,2.12616467,-0.345663726,0.000721736171,0.177460462,0.0869197696,-0.404184431,-0.0957981944,0.0203802045,0.488990813 +0.885900438,2.12673688,-0.885900438,0.00430782,0.158544511,0.0764365122,-0.0912523717,-0.014930319,0.0204720441,1.25371599 +-0.987030864,2.12755895,0.987030864,0.00138337875,0.142647281,0.0672963038,-0.175832003,-0.152908474,0.0203867871,1.39631808 +0.347611606,2.1287992,-0.347611606,0.0040287408,0.177340195,0.0868702307,-0.400083363,-0.0949010849,0.0203782916,0.49168098 +-0.138150394,2.12906504,0.138150394,0.00061479595,0.197923347,0.0999835581,-0.69685173,-0.0962162018,0.0203451682,0.1961357 +1.11263311,2.12936735,-1.11263311,0.000812294777,0.090833813,0.0398556665,-0.0647018775,-0.294927001,0.0204983242,1.57350087 +-1.12800252,2.12962937,1.12800252,0.00165882648,0.087215513,0.0376359038,-0.0380141325,-0.307259321,0.0203603022,1.59539163 +-0.963800073,2.13028717,0.963800073,0.00113543845,0.146203905,0.0693905205,-0.179027304,-0.142397523,0.0203870181,1.36319327 +0.376910061,2.13068891,-0.376910061,0.00268830545,0.17479457,0.0854676142,-0.327195138,-0.0663817227,0.0203798413,0.53303802 +0.212812409,2.1307025,-0.212812394,0.00205766084,0.187068552,0.0926393121,-0.681369424,-0.084882535,0.020368075,0.302021325 +0.145395547,2.13085842,-0.145395547,0.0004653777,0.191352025,0.0961603895,-0.762598217,-0.0420038588,0.0203631334,0.207566947 +-0.619789064,2.13121676,0.619789064,0.00890936609,0.166313499,0.0807826743,0.00454667304,0.100128569,0.0203268547,0.8793782 +-1.08327127,2.13243389,1.08327127,0.000840659719,0.110697515,0.0500896312,-0.0783098638,-0.228294253,0.0203672592,1.53202474 +1.09804952,2.13315821,-1.09804952,0.000862006797,0.101273313,0.0457118899,-0.0791241303,-0.308044463,0.0204933621,1.55287647 +-0.172837779,2.13316011,0.172837764,0.000887796399,0.199134216,0.0995679125,-0.649356246,-0.119813949,0.020344317,0.246631935 +1.08974934,2.13361955,-1.08974934,0.00120662304,0.10487131,0.0473300554,-0.0950179845,-0.279197484,0.0204920843,1.54113841 +-1.18148351,2.13380766,1.18148351,0.000699884724,0.0627658069,0.0262989458,0.129721463,-0.223060042,0.0203578938,1.67092013 +-0.148846492,2.13472319,0.148846492,0.000625265471,0.19861123,0.0999916121,-0.677985847,-0.107301913,0.0203428362,0.211438537 +0.824932933,2.13488054,-0.824932933,0.00322574819,0.158647925,0.0765352249,-0.0544995703,0.0621018484,0.0204544012,1.16699767 +0.0981072187,2.1350894,-0.0981072187,0.000322985637,0.191856831,0.101190962,-0.803636074,-0.00217265193,0.02035762,0.139420509 +0.0814926326,2.13587451,-0.0814926252,0.000280715059,0.197001159,0.112196006,-0.801980734,0.0233781226,0.0203552432,0.115807906 +0.0687660724,2.13656545,-0.0687660724,0.000121705969,0.273910612,0.188359737,-0.722417235,0.0503893644,0.0203543082,0.0977187008 +0.14098756,2.13658524,-0.14098756,0.00064910244,0.19135043,0.0963771194,-0.763549924,-0.0384735167,0.0203596689,0.20067887 +-0.09930709,2.13801098,0.09930709,0.000236086082,0.192080945,0.100781575,-0.720939457,-0.0472347215,0.0203398075,0.141180784 +-0.0833578408,2.13811707,0.0833578408,0.000245079078,0.193731487,0.109359309,-0.709487379,-0.0103032989,0.0203353651,0.118495807 +-0.0711053684,2.13822246,0.0711053759,0.000102103637,0.248106405,0.173288465,-0.641685307,0.0381840877,0.0203302931,0.101046033 +-1.11083078,2.13828635,1.11083078,0.000904705084,0.0985794216,0.0437080935,-0.0438751355,-0.282360345,0.0203564018,1.57112968 +1.16247475,2.13837147,-1.16247475,0.00138400914,0.0643242151,0.0265262779,0.0157526527,-0.295266479,0.0205006581,1.6439923 +1.16339397,2.1394155,-1.16339397,0.000145776619,0.0641378686,0.0264541637,0.0194548946,-0.294886708,0.020499941,1.64529514 +0.175275028,2.13971543,-0.175275028,0.000812268234,0.189100146,0.0943002924,-0.727229476,-0.0630136505,0.0203592051,0.248071074 +1.16271675,2.13988018,-1.16271663,0.00062388496,0.0644426346,0.0265902989,0.0164678022,-0.296225548,0.0204994306,1.64433849 +1.01321018,2.14011788,-1.01321018,0.0036173244,0.143613368,0.0683262944,-0.158989459,-0.161350399,0.0204830337,1.43385899 +1.16392946,2.14027286,-1.16392946,0.000785362907,0.0640489683,0.0264287591,0.0194610395,-0.292863697,0.020499317,1.6460495 +1.16334772,2.14057374,-1.16334772,0.000437840703,0.0643246397,0.0265417285,0.0173319522,-0.294849008,0.0204990655,1.64523053 +0.780342281,2.14108539,-0.780342221,0.00729348231,0.159692109,0.0771733299,-0.0308642983,0.118234731,0.0204389747,1.10436201 +0.460710377,2.14271832,-0.460710377,0.00483329175,0.167559013,0.081574358,-0.116219096,0.0162714384,0.0203793868,0.651997387 +-0.508082509,2.14326882,0.508082509,0.00227651908,0.167339325,0.0810824335,-0.0757671073,0.0305607151,0.0203036852,0.721844316 +-0.0710650161,2.1437161,0.0710650161,0.000129756299,0.247793525,0.172640473,-0.637328267,0.0388501808,0.0203275159,0.100931488 +-0.0996270478,2.14397979,0.0996270478,0.000249727193,0.191513687,0.100530006,-0.714602947,-0.0478644893,0.0203367695,0.141532481 +-0.0834651738,2.14405632,0.0834651738,0.000298115949,0.193294868,0.109019205,-0.704229116,-0.00961588509,0.0203324333,0.118570805 +0.464989126,2.14491439,-0.464989126,0.000294046127,0.167101398,0.0813319013,-0.105492517,0.020550482,0.0203782823,0.658101857 +-1.14929998,2.14571714,1.14929998,0.000893310877,0.0791144818,0.0337859504,-0.00286556967,-0.273889542,0.020348968,1.62545347 +0.183892727,2.14625025,-0.183892712,0.000685141189,0.188753724,0.0940773562,-0.709648788,-0.0679704398,0.0203560814,0.260190248 +1.04407692,2.14664078,-1.04407692,0.00138397852,0.136381,0.0647720471,-0.141489968,-0.180332899,0.0204809997,1.47654855 +-0.12336193,2.14705014,0.12336193,0.000555195438,0.194772422,0.0991135538,-0.694912016,-0.0824232101,0.0203357898,0.175284863 +-0.108126529,2.14707017,0.108126536,0.00035832604,0.192600489,0.0999189839,-0.70712471,-0.0611769035,0.0203351323,0.153178781 +0.462690324,2.14714837,-0.462690294,0.000240153575,0.167369917,0.0814846307,-0.109962247,0.018131325,0.0203764103,0.654863894 +-0.144183427,2.14749694,0.144183427,0.000469581399,0.19760327,0.0996456295,-0.671262503,-0.106136531,0.0203346498,0.204651579 +-0.85396415,2.14785576,0.85396415,0.00295819249,0.156556159,0.075406231,-0.138267398,-0.035122294,0.0203731004,1.20776224 +-0.735191703,2.14819884,0.735191643,0.00460066553,0.164267957,0.0797519535,-0.0325329304,0.0778360218,0.0203501582,1.04024363 +0.11073979,2.14837503,-0.110739782,0.000212911051,0.192348868,0.0995063037,-0.78019923,-0.0126070855,0.0203502327,0.156815246 +0.115724549,2.14893079,-0.115724549,0.000319492829,0.192502141,0.0988116339,-0.774457753,-0.0175842308,0.0203501545,0.163902774 +0.0683566928,2.14908504,-0.0683566928,0.000170234882,0.271676719,0.186807305,-0.711916447,0.0495207272,0.0203459989,0.0976172537 +0.0810440034,2.14930964,-0.0810440108,0.00042669932,0.196694583,0.11214155,-0.788988233,0.0210701898,0.0203465782,0.11577566 +0.0976099595,2.14938998,-0.097609967,0.000414010778,0.192613527,0.101806544,-0.787578583,-0.0052493969,0.0203485992,0.139485732 +-0.90392518,2.14979887,0.90392524,0.00256547751,0.152000487,0.072835505,-0.174576283,-0.0931954309,0.0203752313,1.27950144 +0.464167446,2.15046191,-0.464167476,0.00138093811,0.167265654,0.0814353824,-0.107362248,0.0210112296,0.0203740261,0.65693444 +-0.23997587,2.15202999,0.23997587,0.00177364284,0.187354907,0.0922824442,-0.562351823,-0.130440116,0.0203359965,0.340053439 +-0.948867381,2.15205526,0.948867381,0.00187322136,0.14727883,0.0701508075,-0.179609925,-0.128696874,0.0203695428,1.34236574 +-0.74651289,2.15214872,0.74651283,0.00358304987,0.163953781,0.0795750991,-0.0413944274,0.0671163052,0.0203504991,1.05616057 +0.173387751,2.15271235,-0.173387751,0.000273564889,0.189322785,0.0945742875,-0.718511581,-0.0620136224,0.0203511082,0.245803952 +0.170132011,2.15389752,-0.170132011,0.000505512813,0.18942827,0.0947460681,-0.721203923,-0.059532091,0.0203503259,0.241004243 +0.459842622,2.15390587,-0.459842622,0.00600867439,0.167695165,0.0816941559,-0.118646488,0.0163300391,0.0203708205,0.650602758 +-0.968294501,2.15470695,0.968294501,0.000889515679,0.144214019,0.0683962181,-0.178300858,-0.136311442,0.0203669388,1.3695811 +0.485529929,2.15494347,-0.485529929,0.00452050101,0.166513145,0.0810861588,-0.0813894421,0.0469845273,0.0203731339,0.686704576 +0.114805363,2.15501142,-0.114805363,2.51008769e-05,0.192819446,0.0991414413,-0.768619657,-0.0175538659,0.0203463677,0.162854344 +-0.998383105,2.15529251,0.998383105,0.00205184054,0.138964921,0.0654064193,-0.168894112,-0.144798532,0.0203633998,1.41232872 +-1.07593429,2.1555028,1.07593429,0.00220999052,0.119771473,0.0554338992,-0.0594600141,-0.223210484,0.0203520115,1.52174187 +0.175923422,2.15606642,-0.175923422,4.1840929e-05,0.189312935,0.0945825428,-0.712631702,-0.0633894652,0.0203491505,0.249475956 +1.22864842,2.15619063,-1.22864842,0.000267044554,0.0424825028,0.0243849102,0.154385239,-0.0382833481,0.0204927903,1.73777854 +1.21659029,2.15630913,-1.2165904,0.000583589135,0.0462552309,0.0204512961,0.13402155,-0.0685097501,0.0204917807,1.72072375 +0.11258328,2.15646148,-0.11258328,0.000179942304,0.192742497,0.0994798914,-0.769737363,-0.0155760562,0.0203452948,0.159664705 +0.118136652,2.15658236,-0.118136652,0.000294500293,0.192916945,0.0990341157,-0.763415277,-0.0204149298,0.0203455556,0.167464018 +1.2021215,2.15670013,-1.2021215,0.00116240978,0.0528898016,0.0221008379,0.0981692672,-0.150318667,0.0204904899,1.70025969 +0.173149705,2.1577034,-0.173149705,0.000637595775,0.189401045,0.0946938992,-0.714700401,-0.0621346533,0.0203480106,0.245343044 +-0.208140239,2.15786648,0.208140254,0.00125174085,0.193436533,0.0959385335,-0.596332073,-0.128964692,0.0203303304,0.295543671 +-0.838974655,2.15889287,0.838974655,0.00367486826,0.157361716,0.075906463,-0.127657712,-0.0122117456,0.0203637835,1.18674791 +-0.723393023,2.16033578,0.723393023,0.00641398598,0.164738446,0.0800303519,-0.0185265578,0.0878823698,0.0203375053,1.02348721 +-0.184217632,2.16058397,0.184217632,0.000845824135,0.195950702,0.0976737365,-0.618525386,-0.130217269,0.0203271937,0.262389958 +0.115735531,2.16103315,-0.115735531,0.000435170339,0.193173096,0.099345766,-0.76167345,-0.0189733692,0.0203426108,0.164029211 +0.902673006,2.16113997,-0.902673125,0.00272910972,0.157774702,0.076080367,-0.0833133683,-0.0210697744,0.0204511639,1.27738214 +0.180923879,2.16120195,-0.180923894,0.000911595067,0.18898122,0.0943963751,-0.702857375,-0.0660614669,0.0203458965,0.256136477 +-1.174752,2.16131306,1.174752,0.00102915824,0.0687199757,0.0288534276,0.0429000817,-0.244358778,0.020337889,1.66152406 +-0.165143192,2.16162539,0.165143192,0.000702144695,0.197917908,0.0991058499,-0.633576751,-0.118289776,0.0203257762,0.236451864 +-1.1287775,2.16312385,1.1287775,0.00064676773,0.0883440971,0.0395073108,-0.0345320925,-0.359286696,0.0203406252,1.59648514 +0.136910722,2.16351342,-0.136910722,0.000717478862,0.19201839,0.0972924978,-0.742117047,-0.0411014631,0.0203416403,0.196721345 +-0.120030634,2.16361737,0.120030634,0.00036987706,0.193336695,0.0987053663,-0.680746496,-0.0805428922,0.0203264449,0.170646682 +-0.737221658,2.1644125,0.737221599,0.00306912768,0.164488524,0.0799066797,-0.0264027808,0.0850619227,0.0203397907,1.04307973 +-1.04658902,2.1644299,1.04658902,0.00093662279,0.127645418,0.0594621859,-0.109029569,-0.168498561,0.0203492902,1.48011613 +-0.847125888,2.1645081,0.847125888,0.00216633012,0.156691417,0.0755454674,-0.132059634,-0.019476369,0.0203607492,1.19813192 +-1.0337193,2.16490293,1.0337193,0.000876071514,0.130893961,0.0611566193,-0.127656251,-0.152358294,0.0203509443,1.46194243 +-0.110982358,2.16516018,0.110982351,0.000365983433,0.191458181,0.0991105959,-0.686048031,-0.067659162,0.0203254428,0.157402724 +0.26317203,2.16518974,-0.26317203,0.00198798091,0.18398574,0.0910122171,-0.571173608,-0.0996095836,0.0203475635,0.373790503 +-1.03799522,2.16536045,1.0379951,0.000145595506,0.129874513,0.0606048591,-0.123537339,-0.15366222,0.0203500725,1.46803272 +-0.839377999,2.16587853,0.839378059,5.63962603e-05,0.157210395,0.0758364648,-0.125989377,-0.0085720988,0.0203590728,1.1875391 +-0.129157946,2.16628075,0.129157931,0.000803126371,0.194370046,0.0987526551,-0.66876924,-0.0922075212,0.0203248374,0.183466747 +-1.04036355,2.1666019,1.04036355,0.000150695865,0.129351899,0.0603573471,-0.118947454,-0.157259613,0.0203487687,1.47136962 +-0.833293021,2.16667128,0.83329308,0.00243800343,0.15768595,0.0761066675,-0.118353702,-0.00102254935,0.0203570314,1.17874968 +-0.0996681079,2.16714573,0.0996681005,0.000293369376,0.189472273,0.0996927917,-0.689363003,-0.0506567694,0.0203243569,0.142010704 +1.10698497,2.16729259,-1.10698497,0.00109675317,0.109398641,0.0516822897,-0.0224183239,-0.371299952,0.0204717275,1.56552672 +-0.0833828747,2.1676755,0.0833828747,0.000335539225,0.191142097,0.107666872,-0.681336403,-0.00698268553,0.0203199666,0.118778124 +1.15533864,2.16778827,-1.15533864,0.00108745834,0.0764411166,0.0332435481,-0.0485780388,-0.300153434,0.0204801504,1.63390672 +1.10603023,2.16779137,-1.10603023,0.00115977542,0.110576093,0.0523692816,-0.0213310551,-0.37020883,0.0204712339,1.56417632 +-0.0709218085,2.16781211,0.0709218085,0.000145755563,0.245185852,0.169829145,-0.617813349,0.04271717,0.0203142632,0.100989349 +0.575150967,2.16789007,-0.575150967,0.00721459556,0.163447887,0.0796747878,0.030612329,0.140774086,0.0203752667,0.81442374 +1.15601921,2.16827607,-1.15601909,0.000692646776,0.0765059441,0.0332952067,-0.0480662137,-0.297264874,0.0204799213,1.6348685 +-1.11565971,2.16916299,1.11565959,0.000852124533,0.101469606,0.0473078303,-0.00452119485,-0.345995307,0.0203375276,1.57795942 +-1.22870898,2.16932774,1.22870898,0.000271349185,0.0443786904,0.0259780046,0.252865285,-0.0396074057,0.0203383509,1.73779011 +-1.21690392,2.16947126,1.21690392,0.000586798182,0.047788348,0.0211625621,0.215233922,-0.0640710294,0.0203371923,1.72109425 +-1.20272624,2.16964245,1.20272624,0.000462003722,0.0558722503,0.0234421138,0.14207828,-0.131049603,0.0203352552,1.70104253 +-1.03870106,2.17080331,1.03870106,0.000254629442,0.130331799,0.0609237365,-0.121346772,-0.151835904,0.0203458052,1.46900189 +-0.841740847,2.17137623,0.841740847,0.000690281857,0.157111824,0.0757950246,-0.124723926,-0.00901387911,0.0203553122,1.19070542 +-1.19501126,2.17162275,1.19501126,0.000611947733,0.060327366,0.0253393985,0.103907637,-0.162168235,0.020332722,1.69006777 +-1.14650345,2.17242694,1.14650345,0.000687877706,0.085974142,0.0384719484,-0.0332016721,-0.297456473,0.02033283,1.62149847 +-0.313119054,2.17286015,0.313119054,0.00274799252,0.174805194,0.0851263627,-0.429480016,-0.115090013,0.0203209575,0.448687106 +-0.949228704,2.17309904,0.949228644,0.00147341902,0.146973342,0.0700343102,-0.176640332,-0.117453001,0.0203528237,1.34276664 +0.282101333,2.17349601,-0.282101333,0.00381838251,0.182687551,0.0903034061,-0.531653285,-0.106121302,0.0203426871,0.401104152 +0.0687167794,2.17369437,-0.0687167794,0.000124848433,0.272624284,0.187463284,-0.698789477,0.0487604365,0.0203289576,0.0972251147 +0.940292358,2.17382956,-0.940292299,0.00243293284,0.156325936,0.0753529221,-0.10588102,-0.0698688552,0.020449182,1.33168757 +0.0817504302,2.1756618,-0.0817504227,0.000232734368,0.196522385,0.112362824,-0.771576762,0.0203723349,0.0203288719,0.115631305 +-0.837012708,2.17591715,0.837012649,0.00221914076,0.15745385,0.0759949759,-0.118887067,0.000594425015,0.0203512739,1.18394542 +0.0987753198,2.17601085,-0.0987753272,0.000226265751,0.193248674,0.102469683,-0.763016939,-0.0067366329,0.0203309469,0.13973701 +-0.0997402519,2.17625022,0.0997402519,0.000395270501,0.188860103,0.0992591903,-0.680821061,-0.0497322679,0.0203194879,0.142027885 +0.0686248392,2.17640615,-0.0686248392,1.55488597e-05,0.272346169,0.187226519,-0.697355032,0.0487142652,0.0203270838,0.0971995965 +0.0987608656,2.17647433,-0.0987608656,3.15961711e-06,0.193282217,0.102495372,-0.762501061,-0.00680902554,0.0203306414,0.139742658 +0.0893279612,2.17652607,-0.0893279612,0.000140561417,0.195057452,0.108161643,-0.767290056,0.00835699122,0.0203293115,0.126329541 +0.0991700366,2.17653942,-0.0991700441,0.000276870822,0.193299949,0.102454543,-0.762053907,-0.00715532992,0.0203306396,0.140284434 +0.0817219988,2.17654896,-0.0817219988,1.16285919e-05,0.196475908,0.112334929,-0.770938218,0.0202021133,0.020328274,0.115631357 +-0.963752151,2.17662883,0.963752151,0.00105605857,0.145065829,0.0689829364,-0.175374582,-0.126514673,0.0203488898,1.36313748 +-0.0709991232,2.17674494,0.0709991232,0.000134554328,0.244313449,0.168278903,-0.612408936,0.0426600911,0.020309737,0.101063877 +0.0817410275,2.17698288,-0.0817410275,0.000239040091,0.196472064,0.112332076,-0.770647824,0.020155197,0.0203279778,0.115639225 +-0.0836929083,2.17725444,0.0836929083,0.00030254919,0.190087959,0.106800795,-0.674600065,-0.00685673207,0.0203153323,0.119163916 +0.0988217816,2.17737317,-0.0988217741,0.000276085746,0.193297878,0.102504984,-0.761686325,-0.00692844437,0.0203300454,0.139779523 +0.882660449,2.17738104,-0.882660449,0.00411586976,0.157998532,0.076181829,-0.0622373223,0.020627819,0.0204355754,1.24916935 +0.0686670765,2.1777308,-0.0686670765,0.000127709223,0.272289813,0.187153265,-0.696593702,0.0486934781,0.0203261338,0.0972099006 +-0.475792885,2.17943668,0.475792885,0.0049289884,0.167589515,0.0813041702,-0.119609721,0.00660811644,0.0202948675,0.673699379 +0.125229329,2.1798737,-0.125229314,0.000427286897,0.193124488,0.0987351909,-0.73807168,-0.0328941904,0.0203307327,0.179706544 +0.147702634,2.1803751,-0.147702649,0.000502438575,0.191251516,0.0966331586,-0.722259343,-0.0491480567,0.0203307904,0.210829943 +-0.280198157,2.18058324,0.280198157,0.00197051279,0.17906341,0.0876558423,-0.485309899,-0.130590871,0.0203166921,0.400952935 +-1.16722667,2.18082833,1.16722667,0.000738426927,0.0814399645,0.0362070948,-0.034834221,-0.233410716,0.0203252677,1.65087914 +-0.153533369,2.18174982,0.153533369,0.00109724863,0.196096554,0.0985921249,-0.627922177,-0.114259504,0.0203128494,0.219342917 +-1.22870302,2.182024,1.22870302,0.00017680593,0.0441434011,0.0265115034,0.209831238,-0.0363104194,0.0203298684,1.73777044 +-1.21870613,2.18217754,1.21870613,0.000389146851,0.0474397093,0.0211496875,0.182225809,-0.054735709,0.0203290135,1.72363174 +-1.20670772,2.18236136,1.20670772,0.000505121716,0.0556850731,0.0233629569,0.125036478,-0.107798576,0.0203274675,1.70666218 +0.587418973,2.18250132,-0.587418973,0.00528483,0.163402885,0.0796769783,0.0354009867,0.152298361,0.0203650463,0.831803977 +-0.722566903,2.18251872,0.722566843,0.00346416631,0.164971098,0.0802592635,-0.0123349288,0.0985167399,0.0203240141,1.02219129 +1.22869241,2.18300295,-1.22869241,0.000139704294,0.0427106768,0.0255279243,0.0648901016,-0.0281660445,0.0204730313,1.73772311 +1.21979308,2.18317699,-1.21979308,0.000307970826,0.0465793237,0.0207136329,0.0546979532,-0.0457836166,0.0204723384,1.725137 +-1.09008467,2.18333673,1.09008467,0.00143378868,0.126362652,0.0625051036,0.0477119051,-0.304958045,0.0203325823,1.54176092 +1.20910704,2.18338537,-1.20910716,0.000365726388,0.0544557348,0.0227957908,0.0375133753,-0.0957141593,0.0204713959,1.71002388 +-1.02926314,2.18375444,1.02926314,0.000608803472,0.132392958,0.0620548241,-0.134010047,-0.144019291,0.0203364622,1.45560622 +0.221300781,2.1855886,-0.221300781,0.00197598548,0.186816573,0.0929855034,-0.629915476,-0.089077279,0.0203317273,0.315370023 +0.567352414,2.18559241,-0.567352414,0.00178026734,0.163786888,0.0799031109,0.0251169335,0.142128199,0.0203585643,0.804020405 +-0.990080714,2.18703675,0.990080774,0.000827205193,0.140499353,0.0664200261,-0.165189236,-0.130112708,0.0203374419,1.40054774 +1.04451859,2.18707418,-1.04451859,0.00131773355,0.142524406,0.0686730668,-0.120803006,-0.172480136,0.0204512514,1.47719252 +1.04343367,2.18712711,-1.04343367,0.000880547625,0.143052161,0.0689560622,-0.121945962,-0.170327485,0.0204512384,1.47566891 +-0.909209609,2.18790841,0.909209609,0.00326886028,0.150963753,0.0723464042,-0.169750392,-0.0766184926,0.0203445591,1.28670514 +-0.252790838,2.18847942,0.252790838,0.0021213498,0.18294394,0.0899565145,-0.523446858,-0.130781457,0.020313032,0.359015554 +1.04332542,2.18960953,-1.0433253,0.00119684951,0.143323675,0.0691203251,-0.121170789,-0.168397129,0.0204495881,1.47550476 +-1.13023233,2.18975234,1.13023233,0.000240451773,0.332968831,0.195372075,-0.0347758122,-0.465237737,0.0203249417,1.59854364 +-0.17835182,2.19135904,0.17835182,0.00105312758,0.194373131,0.0969867781,-0.599425554,-0.130119085,0.0203072447,0.254721045 +-0.22875078,2.19136477,0.22875078,0.00159119547,0.187104583,0.0924055204,-0.55171293,-0.135770053,0.0203096401,0.324334741 +1.15095508,2.19181871,-1.1509552,0.000352962525,0.253634095,0.145390049,-0.0889204666,-0.305419296,0.020467354,1.62770832 +1.15157163,2.19204354,-1.15157163,0.000277136511,0.252880186,0.145332277,-0.0890979394,-0.300482154,0.0204672404,1.62857938 +0.136901021,2.1921463,-0.136901021,0.000424368365,0.19224754,0.0978988558,-0.720995545,-0.0415101722,0.0203229021,0.195265681 +1.03157556,2.19290257,-1.03157544,0.00118822232,0.145081148,0.0699181259,-0.120493948,-0.154339761,0.0204462539,1.45887053 +-0.203790367,2.19380093,0.203790367,0.00190460484,0.191823035,0.0952669904,-0.573514938,-0.133992523,0.0203055944,0.289577663 +-1.14492702,2.19393301,1.14492702,0.000256030209,0.305080891,0.18603003,-0.0566647686,-0.350356787,0.0203197747,1.61926937 +-1.1202631,2.19401956,1.1202631,0.000304769492,0.372599483,0.223346815,0.0276422575,-0.470447838,0.0203224272,1.58447099 +1.11440861,2.19496131,-1.11440861,0.00038607404,0.37177214,0.214111969,0.0529736392,-0.481794268,0.0204551872,1.57602608 +1.11367118,2.19536138,-1.11367118,0.000400036224,0.374536037,0.215898439,0.0563535914,-0.481483161,0.0204547253,1.574983 +-0.100035876,2.19566989,0.100035876,0.00034303611,0.187570438,0.0983552411,-0.659925759,-0.0495061651,0.0203091539,0.142880499 +0.307564169,2.19622731,-0.307564169,0.00349925505,0.181000888,0.0894927904,-0.478602469,-0.0960588679,0.0203264393,0.43627879 +-0.454253793,2.19632435,0.454253793,0.00402474543,0.16784662,0.0814593807,-0.146609753,-0.0116957249,0.0202886052,0.644562423 +0.155715555,2.1968143,-0.155715555,0.00108592934,0.191366702,0.0966692716,-0.699522257,-0.0570948422,0.0203203931,0.22259064 +-1.16150188,2.19712615,1.16150188,0.000288984942,0.268449306,0.168213412,-0.0932244062,-0.225210771,0.0203145463,1.64278197 +-0.0838042647,2.19754195,0.0838042647,0.000351305585,0.187806576,0.105174303,-0.655232191,-0.00650169188,0.0203054398,0.11966107 +-0.0708732903,2.19775963,0.0708732903,0.000153876666,0.240464836,0.164676785,-0.594549179,0.0457807109,0.0202994402,0.101170063 +1.22870255,2.19882154,-1.22870255,0.000112266542,0.0424891375,0.0260500032,0.0248721316,-0.0218457859,0.0204614215,1.73774421 +1.22124863,2.1989789,-1.22124863,0.000246942916,0.0463271998,0.0206689462,0.0197734088,-0.0328405164,0.0204608683,1.72720242 +1.21230316,2.19916749,-1.21230316,0.000322424225,0.0549689978,0.02301047,0.0100541823,-0.0648082718,0.0204600394,1.71455097 +0.23779732,2.19957352,-0.23779732,0.00198396575,0.185678139,0.092433311,-0.590484738,-0.0954257399,0.0203228462,0.339520842 +0.786149383,2.20027161,-0.786149323,0.00426059216,0.160620213,0.077807501,-0.0109531973,0.148035452,0.0203955527,1.11559379 +0.578462303,2.2016387,-0.578462303,0.00470709056,0.163711235,0.0799339339,0.0303537026,0.160487592,0.0203470886,0.819150269 +-0.360214025,2.20200348,0.360214025,0.00494372379,0.170683742,0.0829207301,-0.322734535,-0.0902030319,0.0202994645,0.512674212 +-0.139229044,2.20204639,0.139229044,0.000751815096,0.194729567,0.0986110121,-0.620360494,-0.103726208,0.0203034189,0.198544949 +0.991870284,2.20212674,-0.991870284,0.00188363041,0.15111953,0.0726267099,-0.12230818,-0.106013253,0.0204368513,1.40278804 +0.0985829681,2.20402384,-0.0985829681,0.000460958458,0.193764567,0.102590196,-0.737691283,-0.0137143983,0.0203122161,0.140946403 +0.0682666749,2.20404983,-0.0682666749,0.000190745224,0.266425729,0.18212606,-0.681723714,0.0495705083,0.0203079544,0.0976793244 +0.0813741237,2.20412159,-0.0813741237,0.000454792054,0.194715202,0.110932775,-0.748908162,0.0141148465,0.0203096885,0.116391122 +-1.10102034,2.20479727,1.10102034,0.000494550448,0.448650658,0.275905788,0.149821639,-0.453089118,0.0203181244,1.55722976 +1.19577491,2.2052691,-1.19577503,0.000536243198,0.072195977,0.0311455056,0.0171039458,-0.112010278,0.02045542,1.69108701 +-1.01208329,2.2052691,1.01208329,0.000715124363,0.136944965,0.0646013394,-0.155564651,-0.130704045,0.020321561,1.43138075 +-0.115856126,2.20553708,0.115856126,0.000223048191,0.190197825,0.0979864895,-0.639810085,-0.0762018338,0.0203039404,0.163926139 +1.19658077,2.20594049,-1.19658077,0.00016504465,0.0716913939,0.0309013147,0.0146081727,-0.108617455,0.0204549506,1.69222331 +1.19543755,2.2063539,-1.19543755,0.000312266726,0.072615616,0.0313398056,0.0145398322,-0.112355337,0.0204546303,1.69061399 +0.986715674,2.20686913,-0.986715674,0.00207506353,0.151897356,0.0730579197,-0.11713469,-0.0981712788,0.0204326492,1.39553869 +-0.393844485,2.20712686,0.393844485,0.00513103232,0.169145584,0.08215224,-0.256720662,-0.0718484446,0.0202963874,0.561744809 +1.19574773,2.20721459,-1.19574773,1.84851597e-05,0.0729255378,0.0315078646,0.0142492661,-0.109254085,0.0204540286,1.69105136 +-0.981890202,2.2073741,0.981890202,0.000731145614,0.141894519,0.0673218668,-0.167093068,-0.120416008,0.0203225277,1.38924277 +1.19642961,2.20778275,-1.19642961,0.000193057014,0.0720098689,0.0310665667,0.0133656291,-0.106687389,0.020453658,1.69201112 +-0.118329495,2.20856428,0.118329503,0.000130933433,0.190521151,0.0978039429,-0.634729981,-0.0798578039,0.0203023683,0.167495325 +0.990449429,2.20890474,-0.990449429,2.82017827e-05,0.151469484,0.0728355572,-0.118540727,-0.10117425,0.0204317793,1.40085948 +-0.120383687,2.20931602,0.120383687,0.00027944133,0.190744922,0.0978167132,-0.631872654,-0.0824880227,0.0203019269,0.170378059 +0.184390128,2.20953655,-0.184390128,0.00131650479,0.188817948,0.0948838294,-0.661128283,-0.0706297532,0.0203123651,0.263325334 +1.06825638,2.21027493,-1.06825626,0.00136390259,0.171780467,0.0888145715,-0.0242581535,-0.21168986,0.0204368588,1.51076639 +-0.071122162,2.21040821,0.0711221546,0.000140306322,0.237139076,0.161467105,-0.58483386,0.0454155058,0.0202928819,0.101410478 +-0.116671063,2.21043253,0.116671063,0.000134960545,0.190027818,0.0977590233,-0.634093761,-0.0774116367,0.0203013346,0.165115014 +0.832543731,2.21049619,-0.832543731,0.00603764178,0.159535468,0.0771421194,-0.0238469355,0.0998551995,0.020398166,1.1793313 +0.994176328,2.21097517,-0.994176328,0.000698232849,0.151059926,0.0726532787,-0.119033575,-0.1025903,0.0204308219,1.40605009 +-0.084348537,2.21098471,0.0843485296,0.00033001299,0.186679751,0.104204126,-0.643456101,-0.0096508842,0.0202987008,0.120284647 +-0.102166228,2.21103048,0.102166228,0.000311257027,0.187443137,0.0979637429,-0.644191265,-0.0552278385,0.020301884,0.14567709 +-1.04627395,2.21154809,1.04627407,0.000741839758,0.137801781,0.0660186037,-0.0936257839,-0.130804136,0.020316869,1.47965574 +-1.01439238,2.2117703,1.01439238,0.000309909956,0.136545971,0.0644590482,-0.153085127,-0.128289238,0.0203165542,1.43467915 +-0.119569562,2.21191144,0.11956957,9.59299214e-05,0.190500006,0.0977392197,-0.630039096,-0.0818704888,0.0203003585,0.169263855 +-1.19778824,2.21239138,1.19778836,0.000273107871,0.0757319331,0.0328809433,0.0514834598,-0.0880462751,0.020308638,1.69393229 +1.06723833,2.21244836,-1.06723833,0.00118852349,0.172828317,0.08939372,-0.0268833321,-0.204246819,0.0204355586,1.50932622 +-1.0448122,2.21245313,1.04481232,0.000569657481,0.138046116,0.0661395565,-0.0959792882,-0.129316688,0.0203162879,1.4775883 +-1.04580021,2.21246624,1.04580021,0.000151306071,0.138077915,0.0661830902,-0.0941840112,-0.12938036,0.0203162935,1.47898805 +1.19653094,2.21248817,-1.19653094,0.000222262068,0.0725065395,0.0314183608,0.0176454969,-0.0991486311,0.0204502866,1.69215202 +-1.0112462,2.21255016,1.0112462,0.000273783546,0.137101382,0.0647347867,-0.155437201,-0.127895355,0.020316042,1.43025851 +-0.117156252,2.21303439,0.117156252,0.000188103309,0.190017805,0.0977115408,-0.631011486,-0.0784538835,0.0202998873,0.165855467 +-0.931131482,2.21321011,0.931131482,0.00134613691,0.148466244,0.0709895417,-0.169988364,-0.0860554874,0.0203225762,1.31792545 +-0.240026116,2.21366739,0.240026116,0.00102533528,0.18388252,0.0907029882,-0.527007818,-0.132271037,0.0202934667,0.341386557 +1.18867874,2.21368122,-1.18867874,0.000468796759,0.105489686,0.051330708,0.0114302281,-0.0775921196,0.0204494838,1.68105614 +-1.19606519,2.21380758,1.19606507,0.000290935335,0.0774105042,0.033669211,0.0427520387,-0.0913743749,0.0203077178,1.69150162 +1.1890415,2.21442485,-1.18904161,3.12301418e-05,0.106138885,0.0517561659,0.0126729086,-0.0743327513,0.0204489678,1.68156767 +-1.19696641,2.21575069,1.19696641,1.16864776e-05,0.077625908,0.0338011384,0.0429528467,-0.0856655836,0.0203065947,1.69278121 +-0.549952209,2.21576524,0.549952209,0.00327090663,0.16751948,0.0816446766,-0.00995580759,0.0965626165,0.0202704724,0.777917802 +-0.119611099,2.21599364,0.119611099,0.000274370075,0.190358892,0.0976802334,-0.625957131,-0.0816664472,0.0202977452,0.169257998 +0.211126164,2.21646595,-0.211126164,0.00246350584,0.187371522,0.0937964842,-0.624374747,-0.0838270932,0.0203086473,0.300185621 +0.122481711,2.21650839,-0.122481719,0.000552144076,0.194441915,0.100273401,-0.708440781,-0.0365820453,0.0203057639,0.173378661 +-0.558550477,2.21656513,0.558550537,0.00300404709,0.167345256,0.0815874636,-0.000909764261,0.101264291,0.0202714968,0.790100992 +0.989251971,2.2167232,-0.989251971,0.00141446071,0.151431322,0.0728209689,-0.112538695,-0.0939789563,0.0204259213,1.39907575 +-1.19722652,2.21692538,1.19722641,0.00013635114,0.0776862949,0.033865124,0.044216007,-0.0827362537,0.0203060172,1.69314981 +-1.19871879,2.21717,1.19871879,0.000297422463,0.0756401569,0.0328652747,0.0460462794,-0.0789090768,0.0203061625,1.69524813 +0.0994800329,2.21732736,-0.0994800329,0.000321964268,0.193666682,0.102793105,-0.727971196,-0.0164916459,0.0203028973,0.141502231 +0.119735494,2.21754384,-0.119735494,0.000282407156,0.194367543,0.100626446,-0.710066199,-0.0339693874,0.0203048121,0.169437885 +-1.01325035,2.21782565,1.01325035,0.000250525016,0.136914775,0.0646547899,-0.154473096,-0.126241475,0.0203121025,1.4330467 +0.124473728,2.21790171,-0.124473728,0.000352416537,0.194397539,0.10019166,-0.705233753,-0.0384578444,0.0203048866,0.176241308 +-0.16040647,2.21802783,0.16040647,0.000633137068,0.194124311,0.097583212,-0.590234399,-0.11554879,0.020289259,0.228067726 +0.082102254,2.21816492,-0.082102254,0.000301663502,0.193796724,0.110330388,-0.739711583,0.0145759508,0.0202997662,0.116788343 +0.0688841045,2.21886277,-0.0688841045,0.000129992171,0.263479054,0.179742932,-0.673226774,0.0510146394,0.0202973094,0.0979868844 +-0.271086991,2.21891284,0.271086991,0.00146203174,0.179364547,0.0880547464,-0.481198013,-0.123498663,0.0202922858,0.384236872 +-1.01907933,2.21891499,1.01907933,0.00109757879,0.137465179,0.0651324391,-0.14840737,-0.126076773,0.0203114096,1.44125283 +1.19007194,2.21942544,-1.19007194,0.00025689014,0.104969412,0.0514332391,0.0179423038,-0.0657826662,0.0204453263,1.68301761 +-1.05565739,2.21955872,1.05565739,0.000463998673,0.15386501,0.0772341639,-0.0402302817,-0.134184778,0.0203105863,1.49292505 +0.123269469,2.21973157,-0.123269469,0.000331287127,0.194555089,0.100336544,-0.704740584,-0.0378703438,0.020303648,0.174574375 +1.18304574,2.21979666,-1.18304574,0.000181119438,0.258935541,0.176941082,0.0112734083,-0.0214329772,0.0204455089,1.67309046 +-1.19016266,2.21982288,1.19016266,0.00030863774,0.112015411,0.0550793968,0.027694039,-0.0625427216,0.0203021578,1.68315482 +0.121179886,2.22036386,-0.121179886,0.00022730515,0.194497347,0.100525908,-0.706186354,-0.0360252485,0.0203030277,0.171604872 +1.18345547,2.2204268,-1.18345559,1.40450666e-05,0.259351939,0.177674577,0.0139868548,-0.0179491974,0.0204450693,1.67366862 +-0.13498044,2.22067475,0.13498044,0.000547868083,0.193289399,0.0981377438,-0.60559845,-0.101171836,0.0202918965,0.192958981 +-1.1911329,2.22131371,1.1911329,1.44948754e-05,0.113045171,0.0557489581,0.0299471654,-0.0555146895,0.0203012433,1.68453193 +-1.00377285,2.22152233,1.00377285,0.000622181164,0.138419256,0.06545569,-0.155348092,-0.120853156,0.0203094557,1.41960394 +-0.643136382,2.22161961,0.643136382,0.0073347697,0.16652289,0.0811590925,0.0377966315,0.154102951,0.020273244,0.912957966 +-1.22865808,2.2223196,1.22865808,0.000133709094,0.0427241288,0.027230151,0.10268835,-0.0187544376,0.0203071442,1.73770475 +-1.19144678,2.22239852,1.19144678,0.000189924453,0.113305397,0.0560065657,0.0328636356,-0.0528201908,0.0203007571,1.68497694 +-1.22218025,2.22240114,1.22218025,0.000294192141,0.0460399017,0.0207539015,0.099294275,-0.021235697,0.02030701,1.72854316 +-1.2144053,2.22249889,1.2144053,0.000370391703,0.0550789684,0.0232778657,0.0790532604,-0.0313530155,0.0203066319,1.7175467 +0.122332677,2.22324944,-0.122332677,0.000326541864,0.194693148,0.100525491,-0.702860296,-0.0377872586,0.0203010943,0.173191756 +0.15966782,2.2232821,-0.159667835,0.000894669094,0.191574395,0.0971052945,-0.675931036,-0.0633329973,0.0203014128,0.228204072 +-0.555363297,2.22416067,0.555363297,9.73321439e-05,0.167482033,0.0816792175,0.000314255245,0.102651142,0.0202665534,0.785788536 +-1.1852417,2.22488117,1.18524158,0.000124649378,0.27671662,0.20013833,0.0376047529,-0.0149978381,0.0202982631,1.67619598 +1.18468344,2.22517538,-1.18468332,0.000112159956,0.252386451,0.173518911,0.0209409911,-0.0127858818,0.0204415265,1.6753974 +-1.18627107,2.22595286,1.18627107,6.050662e-06,0.276978761,0.20115383,0.0424793139,-0.0054916623,0.0202976093,1.67765689 +0.536921561,2.22602105,-0.536921561,0.00374701037,0.165878624,0.0813006237,-0.0219444018,0.127966821,0.0203211475,0.759571731 +1.22873461,2.22635078,-1.22873461,0.000109659857,0.0413863622,0.026359342,-0.0146296211,-0.0107522961,0.0204419848,1.73785293 +-1.06560993,2.2263639,1.06560993,0.000636908459,0.169311315,0.0883208066,0.0136590004,-0.139999822,0.020305071,1.50700247 +1.22291851,2.22644687,-1.22291851,0.000240065507,0.0449191108,0.0201723874,-0.0110133523,-0.0123748472,0.0204416234,1.72962689 +1.21593893,2.22656202,-1.21593893,0.000342922605,0.0536710769,0.022568373,-0.0119599523,-0.0163620356,0.0204409361,1.71975529 +-1.06545818,2.22661829,1.06545818,4.84023803e-06,0.169641018,0.0885268673,0.0134991044,-0.138997361,0.020304922,1.50678861 +-1.06542242,2.22682953,1.06542253,0.000562982459,0.169644922,0.088515155,0.0128463823,-0.138725087,0.0203047842,1.50673687 +-0.102145746,2.22689772,0.102145746,0.000369078538,0.186855778,0.0977202281,-0.627597094,-0.0570131317,0.0202932227,0.146195859 +-1.18663299,2.22695136,1.18663299,8.20967616e-05,0.276479006,0.201150909,0.0470011607,-0.00361056486,0.0202971864,1.67816973 +1.0854944,2.22709417,-1.0854944,0.000406793843,0.426998377,0.251767606,0.0954134315,-0.273074031,0.0204267092,1.53514445 +-0.0841049552,2.22759938,0.0841049552,0.000394934585,0.185511023,0.103429615,-0.626514316,-0.0104759894,0.0202902034,0.120408222 +-0.070775114,2.22779655,0.070775114,0.000167512015,0.23559092,0.159968063,-0.567554533,0.0452057607,0.0202843286,0.101324722 +-0.875846028,2.22781992,0.875845909,0.00256601861,0.154196739,0.0741765946,-0.133672073,-0.01238098,0.0203130487,1.23910046 +-0.560461819,2.22828436,0.560461819,0.00316584506,0.167383566,0.0816420764,0.00290712924,0.10759405,0.020264484,0.792833924 +-0.178940997,2.2286284,0.178940997,0.00147135777,0.192684978,0.0963338166,-0.56591785,-0.12707673,0.0202828292,0.254379034 +1.08474684,2.22866559,-1.08474696,0.000395260577,0.424159288,0.249737561,0.0912915543,-0.262875378,0.0204257537,1.53408682 +-0.792813063,2.22938538,0.792813063,0.00327125983,0.160439894,0.0778346583,-0.0596402325,0.0780121386,0.0203037634,1.12122536 +-0.250416696,2.22941113,0.250416696,0.000695463677,0.181975856,0.0897150785,-0.507510066,-0.128176749,0.0202837251,0.355499655 +0.934249997,2.22942114,-0.934249997,0.00299539464,0.157051012,0.075781703,-0.0622604266,-0.018548999,0.0204066243,1.3220073 +-0.546511889,2.2318418,0.546511889,0.00312043121,0.167470485,0.081692256,-0.0114882533,0.0958459228,0.0202624947,0.773048937 +0.0685714856,2.2318759,-0.0685714856,0.000191084546,0.258920133,0.176187485,-0.661869526,0.0516520515,0.0202883556,0.0981303081 +0.0817635059,2.23200345,-0.0817635059,0.000443692785,0.192900792,0.109679796,-0.726467073,0.012204268,0.0202903077,0.117043264 +0.0991627946,2.23209953,-0.0991628021,0.000483146752,0.19407624,0.103148162,-0.714537859,-0.0204828754,0.0202927459,0.141986251 +-0.972494423,2.23234582,0.972494483,0.00140300661,0.143681347,0.0683202073,-0.162914157,-0.10472545,0.0203032829,1.37556458 +-0.302125752,2.23289156,0.302125752,0.00226475368,0.174335033,0.0852269679,-0.427229226,-0.11868915,0.0202815402,0.429949731 +-1.04387498,2.23315644,1.04387498,0.00052218925,0.136751086,0.0652886182,-0.109350801,-0.122008741,0.0203010961,1.47626221 +0.881522536,2.23445487,-0.881522536,0.00254527573,0.158409834,0.0764488578,-0.031362325,0.0607651919,0.020392146,1.24932694 +-1.22867322,2.23528194,1.22867322,0.000107278232,0.0416435525,0.0267594922,0.0897733569,-0.0131982137,0.0203004926,1.73772013 +-1.22287416,2.23534703,1.22287416,0.000234136125,0.0451844297,0.0204297807,0.091108501,-0.0109060481,0.0203004219,1.72951829 +-1.21603131,2.23579311,1.21603131,0.000448706618,0.0543386005,0.023060238,0.0780904889,-0.0105820289,0.0202999841,1.71983743 +-0.158430427,2.23605752,0.158430427,0.000597370381,0.192784682,0.0970816687,-0.574444294,-0.114282459,0.0202777404,0.22561416 +1.21243441,2.23636961,-1.21243453,0.000373512856,0.0617471933,0.0265636966,-0.00777741009,-0.00743497862,0.0204336997,1.71489751 +-0.465746045,2.23637629,0.465746045,0.00447873771,0.167417049,0.08148247,-0.122085676,0.00645923242,0.0202664416,0.659461558 +-0.555857778,2.23674726,0.555857718,0.00360894646,0.167334452,0.0816569924,-4.61633317e-06,0.108909845,0.020259209,0.786249459 +0.150258183,2.23749352,-0.150258183,0.000906612491,0.192802787,0.0982429832,-0.672142029,-0.0587311313,0.0202917792,0.215174615 +-1.0810076,2.23759294,1.0810076,0.000283815287,0.471916974,0.295880139,0.145847529,-0.188227862,0.020296311,1.52877891 +-1.0808059,2.23789024,1.08080602,3.804466e-06,0.472281724,0.296157688,0.145969912,-0.185701907,0.0202961341,1.52849531 +-1.08076215,2.23814607,1.08076215,0.000247522257,0.471046239,0.295211464,0.144362509,-0.184891358,0.0202959739,1.5284313 +0.191763043,2.23938704,-0.191763043,0.00116344239,0.189361274,0.095505394,-0.632250905,-0.077486299,0.0202915128,0.272845656 +-0.956732512,2.24235892,0.956732512,0.00143758091,0.145690471,0.0694511384,-0.16126591,-0.0878535807,0.0202963855,1.35349917 +-0.131551176,2.24270821,0.131551176,0.000633026066,0.191790327,0.0977060869,-0.587304652,-0.0953636616,0.0202784818,0.187274307 +-0.745001793,2.24301982,0.745001793,0.00359946443,0.163799241,0.0797595978,-0.00925035402,0.130766198,0.0202845223,1.05362391 +-0.334096074,2.24341655,0.334096074,0.00313779479,0.171735615,0.083783716,-0.35852924,-0.102100879,0.0202731043,0.473913789 +0.373542726,2.243577,-0.373542726,0.00691243261,0.175759643,0.0867579579,-0.321454108,-0.0570978969,0.0202947315,0.531442881 +-0.0711015314,2.24594879,0.0711015388,0.000138389296,0.235440627,0.160083532,-0.54980725,0.0440591834,0.0202742033,0.101334251 +-0.0845164955,2.24655628,0.0845164955,0.000323211483,0.185060963,0.103279345,-0.608466566,-0.0124839926,0.0202794597,0.120422281 +0.915179312,2.24686313,-0.915179312,0.00271886773,0.157256559,0.0758754686,-0.0410398506,0.0226156171,0.0203903224,1.29512477 +-0.102310911,2.24735141,0.102310911,0.000433521171,0.186427876,0.0977667198,-0.607019424,-0.0573167466,0.0202806816,0.145720586 +0.169719204,2.24904513,-0.169719204,0.000854007783,0.191714585,0.0973855332,-0.647322178,-0.0706218779,0.0202835947,0.24160248 +-0.22252509,2.24911833,0.22252512,0.00121612661,0.185405374,0.0919469222,-0.520646393,-0.134263009,0.0202663653,0.31519258 +-0.172780365,2.24972153,0.17278038,0.00209885649,0.192309424,0.0964160115,-0.551536262,-0.124119751,0.0202676896,0.245993346 +1.22875309,2.25104928,-1.22875309,8.65965631e-05,0.0403352343,0.0258417837,-0.0104935709,-0.00603690464,0.0204239413,1.73784494 +1.22370815,2.25108886,-1.22370815,0.000183031225,0.0436664373,0.0197204035,0.000264937058,-0.00173708587,0.0204237569,1.73070979 +1.21814191,2.25135612,-1.21814179,0.000258483225,0.0507836752,0.0215726923,0.00466742646,0.00782444607,0.0204232652,1.72283792 +-0.150156423,2.25290251,0.150156423,0.000933077536,0.191520095,0.0969281569,-0.564478695,-0.106087767,0.0202685315,0.213258237 +-0.283638477,2.25348854,0.283638477,0.000806308177,0.17610319,0.0864336267,-0.441203028,-0.117654689,0.0202675294,0.404196143 +0.413192987,2.25451088,-0.413192987,0.00578873279,0.172975108,0.0852442682,-0.230673954,-0.0236833617,0.0202880986,0.591219664 +-0.113671325,2.25604916,0.113671333,0.000574724807,0.188152462,0.0977016166,-0.5888502,-0.0723472834,0.0202738512,0.161424369 +0.244233787,2.2562387,-0.244233802,0.00164331368,0.185195655,0.0926842988,-0.560424566,-0.0832944065,0.0202807635,0.346327454 +0.346794546,2.25625563,-0.346794546,0.00522548845,0.178092062,0.0882438347,-0.385586739,-0.0764236674,0.0202835295,0.493045896 +-0.101933941,2.25670099,0.101933949,0.000317735918,0.186359942,0.0978542641,-0.597260714,-0.0571106039,0.0202747695,0.145577624 +-0.0841973349,2.25677943,0.0841973349,0.000383133622,0.184926748,0.10331206,-0.597058654,-0.0123009281,0.0202734489,0.120333225 +0.273563206,2.25702763,-0.273563206,0.00245402753,0.183309942,0.0913766101,-0.516180634,-0.0912890509,0.0202818662,0.388726771 +-0.0708268806,2.25702786,0.0708268806,0.000174286877,0.236368194,0.161090434,-0.537408948,0.0437363088,0.0202680714,0.101278722 +0.129292011,2.25840688,-0.129292026,0.000593581644,0.195776552,0.101111867,-0.669784129,-0.0514087752,0.0202758852,0.184223652 +0.0999652371,2.25855327,-0.0999652371,0.000351967348,0.19359906,0.103354745,-0.695355117,-0.0241957754,0.0202739313,0.141606167 +1.01528728,2.25886941,-1.01528728,0.00120756321,0.147351533,0.0707798228,-0.114087597,-0.0820112005,0.0204020124,1.4358362 +0.714933097,2.25907087,-0.714933097,0.00691164518,0.16263096,0.0793081075,0.0184637737,0.232996076,0.020332722,1.01124978 +0.0824805498,2.25912094,-0.0824805498,0.000305087189,0.191638231,0.109375529,-0.706954837,0.0118553778,0.0202712081,0.116746068 +0.0692339167,2.25978756,-0.0692339167,0.000131076798,0.255892813,0.174691692,-0.640524924,0.0518743321,0.0202687103,0.0979168639 +0.0692323297,2.25984526,-0.0692323372,5.06650076e-06,0.255887687,0.174689516,-0.640465975,0.0518692136,0.0202686694,0.0979167148 +-0.967763305,2.25993538,0.967763305,0.00161022868,0.14441365,0.0687179342,-0.156489283,-0.0892997533,0.0202813223,1.36914766 +0.0692369714,2.26000834,-0.0692369714,0.000133334979,0.255874008,0.174687579,-0.640326262,0.0518540069,0.0202685576,0.0979176983 +0.0824477077,2.26006579,-0.0824477151,4.14938913e-05,0.191613138,0.109374568,-0.706030428,0.0117618097,0.0202705655,0.116740048 +0.705760479,2.26027369,-0.705760479,0.00463944394,0.162883759,0.079478763,0.0197363794,0.23720333,0.0203290693,0.998413801 +-0.308058947,2.26027775,0.308058918,0.000693241367,0.173067629,0.0846856385,-0.404887438,-0.117355697,0.0202650186,0.43976146 +0.0998822972,2.26043391,-0.0998822898,4.20515644e-05,0.193596736,0.103399843,-0.693769217,-0.0246579126,0.0202726237,0.141585141 +0.101196796,2.26130772,-0.101196796,0.000350609567,0.193798482,0.103357717,-0.692060888,-0.0260040909,0.0202721003,0.143304348 +-0.380391032,2.26158929,0.380391002,0.00703854673,0.169015735,0.0824383944,-0.272113293,-0.0729280114,0.0202630293,0.542289853 +-0.921805859,2.26185632,0.921805918,0.00130843162,0.149477407,0.0715488791,-0.144890487,-0.047304526,0.0202859938,1.30375159 +0.480422139,2.26218748,-0.480422139,0.00487468438,0.169442594,0.0834432691,-0.112302087,0.0714930147,0.0202845149,0.680521905 +0.0825145841,2.26279759,-0.0825145766,0.000309662486,0.19144915,0.109334074,-0.703931451,0.0115826763,0.0202686433,0.116725549 +-1.20658946,2.26283383,1.20658946,0.000241525675,0.0730585754,0.0329607949,0.102432221,0.0148484055,0.0202835947,1.70638037 +0.498690009,2.26367402,-0.498690009,0.00273994706,0.168115944,0.0827297866,-0.0707279667,0.0954957679,0.0202849936,0.707239687 +0.708830953,2.26502347,-0.708830953,4.4169301e-05,0.162792683,0.0794251114,0.020430455,0.239609331,0.0203261673,1.00296533 +-0.430083454,2.26549983,0.430083454,0.00453810208,0.168085337,0.0819747075,-0.185157418,-0.0254262649,0.0202598646,0.61010778 +0.955105782,2.26579237,-0.955105782,0.00236435514,0.154103875,0.0742584988,-0.0540463775,-0.0168889351,0.0203838889,1.35116386 +0.099980779,2.26593208,-0.0999807864,0.000293948018,0.193468273,0.103426345,-0.689953685,-0.0251756068,0.0202686563,0.141463131 +-0.296968043,2.26632833,0.296968073,0.00101469096,0.17382592,0.085197635,-0.419964671,-0.117452264,0.0202601533,0.423899472 +0.702224195,2.26664281,-0.702224195,0.00254405383,0.162992746,0.0795684829,0.0180391558,0.239743575,0.0203229617,0.993420064 +-1.20539629,2.26697373,1.20539641,0.000125818362,0.0754967257,0.034301158,0.105534568,0.0189762916,0.0202812012,1.70470893 +-0.910866022,2.26703405,0.910866022,0.00156678318,0.150561109,0.0721563771,-0.136479557,-0.0310005732,0.0202819221,1.28822446 +0.181834579,2.26725602,-0.181834579,0.0014470804,0.191239655,0.0970833376,-0.624054551,-0.0765503719,0.0202698801,0.259675443 +-1.20107949,2.26739907,1.20107937,0.000157310409,0.108600922,0.0575027689,0.138794929,0.0230977554,0.0202789158,1.69860387 +-0.924913943,2.26769757,0.924913943,0.000631795381,0.149114624,0.0713381097,-0.143171996,-0.0472864918,0.0202810634,1.3081584 +-1.19748211,2.2677536,1.19748211,6.71629095e-05,0.235025719,0.176204517,0.180108279,0.0286391098,0.0202768799,1.69351637 +-0.128137693,2.26848984,0.128137693,0.00079297187,0.190936178,0.0977180451,-0.565026641,-0.0889309123,0.0202613696,0.182566226 +-0.205936879,2.26857734,0.205936864,0.00169963902,0.18624872,0.0927641988,-0.518297374,-0.129876047,0.020253785,0.29173854 +0.710574806,2.26905036,-0.710574806,0.00411738781,0.162793413,0.0794317201,0.0207845755,0.24228707,0.0203235652,1.00523937 +-1.20707381,2.26924372,1.20707369,0.000165841484,0.0724941939,0.0327413976,0.108842537,0.0188141465,0.0202805027,1.70706475 +1.20113814,2.26924992,-1.20113814,0.000200438371,0.0998520181,0.0516453534,0.0727685317,0.0276813041,0.0204088092,1.69876885 +0.124730237,2.26961756,-0.124730237,0.000911609153,0.196245074,0.101838075,-0.665172458,-0.0497479588,0.020267738,0.177417338 +1.20545006,2.26974392,-1.20545006,0.000381161459,0.0719170868,0.0322911665,0.0461761802,0.019283032,0.0204095282,1.70486963 +1.19724226,2.2697506,-1.19724226,8.89022631e-05,0.198837012,0.142856896,0.098008655,0.0449407138,0.0204079803,1.69325888 +-1.00536573,2.27007389,1.00536573,0.000523089198,0.139338955,0.0660111308,-0.154158294,-0.105398513,0.0202718247,1.42181373 +-0.920940518,2.27043867,0.920940518,0.0010644868,0.14962481,0.0716162771,-0.140745163,-0.0417061783,0.0202792753,1.30255461 +-1.00162113,2.27047467,1.00162113,0.00119776488,0.139567405,0.0660871938,-0.155858591,-0.10419824,0.0202715285,1.41651773 +-1.20521498,2.27062893,1.20521498,0.000138304487,0.0750236064,0.0340603143,0.110029571,0.0178833604,0.0202792361,1.70443976 +0.296982884,2.27078152,-0.296982884,0.00290682237,0.181754157,0.0905618295,-0.469996899,-0.0834628418,0.0202721246,0.421124756 +-1.00376034,2.27078533,1.00376046,0.000121859215,0.139247015,0.065916732,-0.155668497,-0.1050473,0.0202712398,1.41955113 +-1.20086753,2.27084637,1.20086753,0.00013542267,0.107099377,0.0565769933,0.14159672,0.02119736,0.0202770364,1.69829142 +0.611826062,2.27085066,-0.611826062,0.00537108816,0.164320618,0.0805698782,0.0312947705,0.215475053,0.0202964451,0.870870709 +-1.19724441,2.27102613,1.19724441,5.88101611e-05,0.228581131,0.170833409,0.180905595,0.0252732486,0.0202750303,1.69316745 +-0.866218805,2.27130651,0.866218805,0.00204905798,0.154869497,0.0746078342,-0.108844444,0.025962906,0.0202793702,1.2262485 +-1.00451016,2.27167773,1.00451016,0.000332905416,0.139150277,0.0658662319,-0.155533552,-0.104949288,0.0202706326,1.42061055 +0.705453575,2.27229238,-0.705453515,0.00237747608,0.162942633,0.0795661137,0.0194314811,0.245665386,0.0203195475,0.997882426 +-0.108976588,2.2724905,0.108976588,0.000243925577,0.18724215,0.0976195261,-0.577636242,-0.0649570525,0.0202628803,0.154634729 +-0.251882762,2.27302051,0.251882762,0.00174843776,0.179817781,0.0888376087,-0.468530923,-0.125496387,0.0202507712,0.356705308 +0.511609375,2.27335143,-0.511609375,0.00436313404,0.167825535,0.0826274529,-0.057310164,0.119709283,0.0202790257,0.72453928 +-1.00345969,2.27335644,1.00345957,0.000600794272,0.13922736,0.0658900067,-0.155583218,-0.104001164,0.0202694163,1.41911936 +1.20961714,2.27376842,-1.20961714,0.000273393467,0.0643467382,0.0285645258,0.0460085683,0.0243526548,0.0204068497,1.71070862 +1.2286489,2.27455711,-1.2286489,0.000102389764,0.0394804254,0.0252020434,0.00599300908,-0.00489031989,0.0204070974,1.737795 +1.22410107,2.27456284,-1.22410107,0.000212844796,0.0428975001,0.0194427799,0.0241497345,0.00249812216,0.0204070341,1.73136246 +1.21928525,2.27495527,-1.21928525,0.000248819822,0.0484196767,0.0207627211,0.0335444473,0.018041566,0.0204066448,1.72455227 +-1.22877347,2.27597666,1.22877347,9.43936029e-05,0.0381229408,0.024560228,0.101054795,-0.00813979749,0.0202814471,1.73785102 +1.05391896,2.27597785,-1.05391884,0.00120002276,0.153483078,0.0756409913,-0.114442423,-0.0816672593,0.0203965884,1.49049675 +-1.22394371,2.27598834,1.22394371,0.000205424352,0.0427734405,0.0193870924,0.114703305,0.000872249948,0.020281205,1.73102021 +1.07469821,2.2760427,-1.07469821,0.000398752076,0.251120716,0.134043187,-0.0777273029,-0.111053623,0.0203974228,1.51988363 +-1.21824169,2.27607727,1.21824169,0.000259903085,0.052322071,0.0224951394,0.118182473,0.0149731738,0.0202803258,1.72295272 +-1.07524765,2.27626038,1.07524765,0.000273204292,0.278330088,0.156839967,-0.0464594923,-0.114047296,0.0202694442,1.52068543 +0.27379021,2.27629566,-0.27379021,0.000269991491,0.183282644,0.0915181488,-0.505974233,-0.0898530632,0.0202672835,0.390982956 +-1.05823302,2.27638721,1.05823302,0.000719895237,0.147531241,0.0727169737,-0.108199947,-0.0963151976,0.020270152,1.49662113 +1.02515602,2.27647996,-1.02515602,0.00124823453,0.145820379,0.0700332969,-0.112841479,-0.0762824789,0.0203916673,1.44981551 +0.981949091,2.27786207,-0.981949091,0.00210399181,0.151270449,0.0728039443,-0.0691635609,-0.0414739624,0.0203809272,1.38938498 +1.19737649,2.27818465,-1.19737649,9.16559948e-05,0.180892378,0.129081666,0.106861696,0.0444760583,0.0204017796,1.69344556 +1.20125771,2.27829647,-1.20125759,0.000210312064,0.0938012972,0.0482912213,0.0838920474,0.0337082297,0.0204022396,1.69893479 +1.02366304,2.27839732,-1.02366304,0.000884000096,0.145932257,0.07007581,-0.11107295,-0.0735910758,0.0203900915,1.44771302 +-0.84890753,2.27849936,0.84890759,0.00498922588,0.156157747,0.0753494054,-0.0909965113,0.054667905,0.0202719904,1.20145643 +1.07471526,2.27857399,-1.07471526,0.000397480559,0.241397291,0.1279791,-0.0847443789,-0.11009711,0.0203960482,1.51990747 +0.927095771,2.27880621,-0.927095771,0.00262991455,0.156237334,0.0753912032,-0.0280345082,0.0268795379,0.0203685462,1.31164885 +1.20562768,2.27917147,-1.2056278,0.000405320956,0.0689768791,0.0309634302,0.0610481054,0.0258021988,0.0204024892,1.7051183 +-0.228201956,2.27923393,0.228201956,0.00101104134,0.182845578,0.0907062367,-0.496157199,-0.131574377,0.0202441495,0.323851317 +1.05394912,2.27934313,-1.05394912,0.00119775522,0.151347592,0.074330464,-0.117860563,-0.0792666897,0.0203945562,1.49053907 +-0.101423346,2.27989674,0.101423346,0.000237228654,0.185551643,0.0982219353,-0.575901031,-0.0574642792,0.0202596523,0.143515661 +0.149691433,2.27998972,-0.149691433,0.000394406379,0.195111543,0.100111961,-0.641418934,-0.0664888546,0.0202602856,0.212086827 +0.111903921,2.28010488,-0.111903921,0.000334804616,0.194306076,0.102715731,-0.669438124,-0.0379906967,0.020259209,0.158591509 +0.263882339,2.28019047,-0.263882339,0.00122616626,0.184002146,0.0920576602,-0.520396531,-0.0858771279,0.0202633105,0.375784665 +1.02520597,2.28045988,-1.02520597,0.00165513321,0.145432219,0.0698033422,-0.111928433,-0.0734817833,0.0203891154,1.44988596 +-1.07456493,2.28050065,1.07456493,6.98435833e-05,0.251518279,0.139335454,-0.0619237646,-0.115660802,0.0202667248,1.51975143 +0.154097378,2.28135014,-0.154097363,0.000708540261,0.19479847,0.0998635292,-0.636720955,-0.0689434931,0.0202593617,0.218137965 +-1.05726707,2.28164244,1.05726719,0.000147792831,0.140792623,0.0685359463,-0.119002722,-0.0962027833,0.020266531,1.49528527 +-0.0843659267,2.28170753,0.0843659267,0.000289456628,0.18403542,0.103474937,-0.571241081,-0.00854579546,0.0202578288,0.119352944 +-1.21592379,2.28264236,1.21592379,6.52106901e-05,0.0559529178,0.0243250206,0.129682139,0.0176353976,0.0202764105,1.71972072 +0.147306904,2.28332067,-0.147306919,0.000374243798,0.195306018,0.100415178,-0.640735805,-0.0653508455,0.0202578604,0.208619788 +0.807481408,2.28357172,-0.807481408,0.00560327619,0.160206407,0.0777611658,0.0103512788,0.192750067,0.0203391667,1.14304316 +-0.0714911595,2.28366685,0.0714911669,0.00012449488,0.236488774,0.163163707,-0.509410799,0.0447440036,0.0202519167,0.101110429 +0.150109053,2.28377938,-0.150109053,9.95623213e-06,0.195282698,0.100245006,-0.637926817,-0.0675381348,0.0202575792,0.21283792 +0.210142612,2.28382993,-0.210142612,0.00143518893,0.188524738,0.0952741802,-0.589414418,-0.078284286,0.0202584174,0.29772374 +-0.0842374936,2.28388929,0.084237501,3.57845747e-05,0.183975115,0.103492767,-0.568981946,-0.00812136289,0.0202563144,0.119270124 +-0.101043858,2.28391099,0.101043858,3.45755907e-05,0.18545188,0.0982954875,-0.572102308,-0.0571271926,0.0202567391,0.143194005 +-0.102845013,2.28400278,0.102845013,6.32956799e-05,0.185804754,0.0982907265,-0.570782006,-0.0590233542,0.0202563461,0.1455926 +-0.0714772642,2.28404498,0.0714772642,5.70985821e-06,0.236507699,0.163201526,-0.509011149,0.0447555482,0.0202516597,0.10110531 +-0.0714826882,2.28424478,0.0714826882,0.000113624075,0.236507475,0.163210124,-0.508806646,0.044757966,0.0202515349,0.101104006 +-0.750378132,2.28485537,0.750378132,0.000942373998,0.163284734,0.0795915723,-0.00180898875,0.153822407,0.0202550534,1.06148875 +-0.7708745,2.28500414,0.7708745,0.00254453556,0.16179958,0.0787107572,-0.0193355493,0.135060787,0.0202572942,1.09025121 +-0.0842539817,2.28503704,0.0842539817,0.000263166614,0.18396157,0.103512175,-0.567737103,-0.00805067923,0.0202555526,0.119232558 +0.102760293,2.28521514,-0.102760293,0.000164717727,0.193800077,0.103402168,-0.672680318,-0.0311355013,0.0202550292,0.146247461 +-1.03894365,2.28557205,1.03894365,0.00128509058,0.133454621,0.0630711094,-0.148057133,-0.103410423,0.0202626288,1.46929276 +0.151120096,2.28579569,-0.151120111,0.000578040897,0.195280224,0.100243993,-0.635887444,-0.0684029311,0.0202560928,0.21403262 +-0.10103184,2.2859602,0.101031832,0.000230542006,0.185436994,0.0983160809,-0.569950461,-0.0567250475,0.0202553906,0.143046066 +-0.235857099,2.28608847,0.235857099,0.00136849005,0.181623116,0.0900396183,-0.484806776,-0.128862336,0.0202404056,0.334332824 +-1.03884339,2.28633666,1.03884339,0.000338377489,0.133334845,0.0629916787,-0.148570091,-0.103213608,0.0202620793,1.46915388 +-1.07590425,2.28691626,1.07590425,0.000281343411,0.233776391,0.127523929,-0.0710714757,-0.117976993,0.020262612,1.5216347 +-1.03896964,2.28740764,1.03896976,0.000712583889,0.133111611,0.0628622845,-0.148535952,-0.102805346,0.020261351,1.46933138 +0.0686485022,2.28824472,-0.0686485022,0.000170775151,0.250884235,0.172019273,-0.613732517,0.0498094708,0.0202487782,0.0980046242 +-1.21806097,2.28842974,1.21806097,0.000191784653,0.0519206002,0.0223016161,0.131857812,0.0113152536,0.0202741493,1.72271776 +-1.22383118,2.28846741,1.22383118,0.000210412196,0.0425519422,0.0191885307,0.126413137,-0.00257438095,0.0202752221,1.73088109 +-1.22875321,2.28847885,1.22875321,9.70717592e-05,0.0378209651,0.0242648721,0.110610463,-0.010538822,0.0202755239,1.73784256 +0.0817131996,2.28852177,-0.0817131922,0.000366891269,0.189831436,0.108699568,-0.679348886,0.00768196257,0.0202504303,0.116572268 +-0.743090153,2.28908992,0.743090153,0.00509015517,0.163635433,0.0797989815,0.00308408821,0.159650728,0.0202513784,1.05116081 +0.0989069119,2.2890923,-0.0989069119,0.000274349848,0.193561092,0.103871264,-0.671068132,-0.0292797145,0.0202519335,0.140994459 +-0.118854739,2.28924036,0.118854731,0.000651119568,0.189140171,0.097639665,-0.553731322,-0.0754712969,0.0202482995,0.169099942 +0.280578613,2.28963947,-0.280578613,0.00211118814,0.183178693,0.0915538892,-0.493260384,-0.0837447047,0.020257283,0.399395406 +-1.05866838,2.289855,1.05866838,0.000713333429,0.134908229,0.0650463924,-0.124563217,-0.0947018117,0.0202608556,1.4972564 +0.578591645,2.29173422,-0.578591645,0.00466981716,0.16544348,0.0812930018,0.0208012108,0.192684084,0.0202740934,0.822864532 +-0.938817382,2.29222631,0.938817382,0.00113100722,0.147713974,0.0704483986,-0.137450159,-0.0458709225,0.0202620905,1.32771194 +-0.652581155,2.29248285,0.652581155,0.0124711832,0.16708912,0.0818104148,0.0514982641,0.182365268,0.0202343259,0.925392449 +-1.21353519,2.2930398,1.21353531,0.00030315842,0.056424126,0.0244174488,0.13339445,0.00978039764,0.0202704873,1.7162863 +-0.227115616,2.2942307,0.227115616,0.0012417289,0.182659432,0.0907802805,-0.489576221,-0.128570035,0.020233212,0.322538048 +-0.749358892,2.29438663,0.749358892,0.00428450387,0.163341507,0.0796318054,0.0017230612,0.161619067,0.0202478282,1.06004035 +0.0989139229,2.29675603,-0.0989139304,0.000303636567,0.193648711,0.104070455,-0.664082408,-0.0297872089,0.02024615,0.140672266 +0.0817788392,2.2970612,-0.0817788392,0.000302354136,0.189886451,0.109002829,-0.670491695,0.00677559013,0.0202441458,0.116359323 +0.068756938,2.29768419,-0.068756938,0.000130686763,0.25145328,0.172838658,-0.603339911,0.0486384891,0.0202419423,0.0978729203 +-0.109841675,2.29823327,0.109841675,0.000346328481,0.187309206,0.0978764743,-0.550395846,-0.0641725361,0.020244088,0.156408012 +-0.761087298,2.29824591,0.761087298,0.00244130613,0.162694216,0.0792383403,-0.00510813389,0.154409885,0.0202457961,1.07642436 +0.863188982,2.29949045,-0.863188982,0.00478168065,0.158827484,0.0768602416,0.000857925043,0.133061722,0.0203376748,1.22229016 +-0.877258062,2.30097795,0.877258062,0.00329493498,0.154519081,0.0743651018,-0.0992308557,0.032084018,0.0202567969,1.24115694 +0.207087934,2.30136251,-0.207087934,0.000799255038,0.189348981,0.0960072502,-0.581481457,-0.0779091418,0.0202449393,0.29371807 +0.214187548,2.30355263,-0.214187548,0.000749010593,0.188548207,0.0954623669,-0.572519004,-0.0787028223,0.0202435683,0.304323971 +-0.145666122,2.30375552,0.145666122,0.000515569176,0.191295743,0.0972516462,-0.522697866,-0.0984217972,0.0202329382,0.206125721 +0.262019217,2.30500841,-0.262019187,0.00147958449,0.18513152,0.0929361805,-0.512288928,-0.0820232704,0.0202438906,0.372292221 +-0.149241477,2.30651522,0.149241477,0.000961438462,0.191416085,0.0971902013,-0.517771721,-0.101005979,0.0202304795,0.211257696 +-0.14274101,2.30706072,0.142741024,0.00033747757,0.190861493,0.0972627476,-0.521903515,-0.0948722512,0.0202311259,0.201963544 +-0.0992446393,2.30912852,0.0992446393,0.000379923149,0.185210496,0.0984970704,-0.54612273,-0.0504310876,0.0202374682,0.141444683 +-0.148084134,2.30913281,0.148084134,0.000133246373,0.191353157,0.0972160399,-0.516305864,-0.0998584926,0.0202285293,0.209698498 +-0.0830386877,2.30926037,0.0830386877,0.000453791174,0.184605777,0.104452796,-0.539861202,-0.00538095087,0.0202370547,0.118347876 +-0.0706999749,2.30936861,0.0706999674,0.00019570216,0.238476187,0.165182665,-0.480565786,0.0451030321,0.020233009,0.100751758 +0.210776269,2.30943489,-0.210776269,0.000173675304,0.189104065,0.0958831981,-0.572985053,-0.0779688582,0.0202387609,0.299435675 +0.114342034,2.30977035,-0.114342034,0.000288419717,0.196227849,0.103434086,-0.644972861,-0.0451210476,0.0202372838,0.161820427 +-0.474297017,2.31014037,0.474297017,0.00657073967,0.166617662,0.0815253779,-0.103170693,0.0300460923,0.0202287901,0.673079729 +0.496692896,2.31048918,-0.496692896,0.00450011296,0.169407353,0.0837025419,-0.101878718,0.117024593,0.0202490669,0.70281142 +-0.145694599,2.31093669,0.145694613,0.000152527617,0.191098928,0.097212255,-0.516385198,-0.0975300223,0.0202273969,0.206257224 +-1.19243991,2.31100631,1.19244003,0.000124766506,0.14640756,0.10361772,0.168814555,-0.00656813709,0.0202543512,1.6865232 +1.00374675,2.31142783,-1.00374675,0.000893528224,0.147219136,0.0707016662,-0.0702226907,-0.0332477055,0.0203612819,1.41951323 +-0.970221519,2.31152344,0.970221519,0.00145880075,0.144383818,0.0684979558,-0.137932956,-0.0627616197,0.0202446785,1.37219286 +0.926154017,2.31163144,-0.926154017,0.00233635469,0.155566558,0.0750533119,-0.0101453718,0.0527046323,0.0203436371,1.31105459 +1.22315323,2.31178522,-1.22315323,0.000200052222,0.0444791503,0.019863179,0.0573495738,-0.00880215596,0.0203803536,1.7298398 +1.22881436,2.31182575,-1.22881436,9.34893105e-05,0.041014526,0.0256644003,0.0256501194,-0.0108538689,0.0203804914,1.73784614 +1.21658444,2.31193018,-1.21658444,0.000254779006,0.049526725,0.0212260969,0.0757968649,-0.00482410239,0.020380035,1.72055018 +-0.148919746,2.31197834,0.148919761,0.000409403496,0.19118385,0.097130619,-0.513644576,-0.0998384207,0.02022627,0.210813463 +0.120072849,2.31319356,-0.120072849,0.000441265758,0.197492003,0.103267133,-0.63700825,-0.0516281016,0.0202350654,0.170142263 +-1.19658065,2.31330204,1.19658065,0.00029166165,0.0885521472,0.0446682833,0.159118056,0.00109037512,0.0202550981,1.69237971 +0.650048077,2.31335926,-0.650048137,0.00601962022,0.163738757,0.0803981647,0.0399377644,0.264335036,0.0202743765,0.923331976 +-0.147735953,2.3135581,0.147735938,0.00031002285,0.191220999,0.0972117484,-0.512915254,-0.0988604203,0.0202250388,0.209123433 +-1.00486207,2.31442046,1.00486207,0.000929795671,0.137436196,0.0647150353,-0.150015593,-0.0883182436,0.0202408154,1.42143834 +-1.20155025,2.31605864,1.20155025,0.000488157297,0.069150731,0.0307261869,0.155167744,-0.00226190733,0.0202552304,1.69940853 +-1.02525461,2.31611466,1.02525461,0.000306482136,0.132180274,0.0620028861,-0.150767311,-0.0973092318,0.0202398542,1.44993412 +-0.295381188,2.31627035,0.295381188,0.00274807704,0.172904462,0.0851642638,-0.398322612,-0.110217497,0.0202253461,0.418363154 +-1.02486098,2.31640935,1.02486098,0.00027169683,0.132232621,0.0620263256,-0.150802225,-0.0970675722,0.0202396363,1.44937599 +0.0681174546,2.31675744,-0.0681174546,0.000158360956,0.251285166,0.173750371,-0.581728578,0.0468633063,0.020228548,0.0974037945 +-1.02536297,2.31682992,1.02536297,0.00032611849,0.132024139,0.0619131699,-0.150740102,-0.097029008,0.0202393755,1.45008683 +0.123368725,2.31685853,-0.123368718,0.000600143161,0.197533935,0.103177212,-0.63158679,-0.0545252785,0.0202323981,0.174826577 +0.0808442086,2.31701064,-0.0808442086,0.000365963991,0.18948397,0.109367438,-0.649659753,0.00500417454,0.0202299599,0.115579888 +0.215515271,2.31724119,-0.215515271,0.00234497339,0.188999996,0.0958208144,-0.565111518,-0.0767514631,0.0202329289,0.305747062 +0.0975189507,2.31756544,-0.0975189507,0.000384915678,0.193282783,0.104284026,-0.647217393,-0.0313645676,0.0202309936,0.139386937 +-1.02497065,2.31773496,1.02497065,0.00032105649,0.132161915,0.0619784035,-0.150402069,-0.0965173095,0.0202387646,1.44952893 +0.116364747,2.31835461,-0.116364747,0.000199305534,0.196524456,0.103397533,-0.63665092,-0.0480585955,0.0202311296,0.16478917 +0.119830921,2.31865096,-0.119830921,0.000108304361,0.197573721,0.103371494,-0.633147895,-0.0522216707,0.0202311054,0.169980541 +-0.120542303,2.31865358,0.120542303,0.000555180945,0.188843101,0.0977284834,-0.527357519,-0.0738011599,0.0202254374,0.170919508 +0.325798541,2.31964207,-0.325798541,0.0030929062,0.180824965,0.0903321579,-0.421298683,-0.0595751703,0.0202370435,0.461860806 +1.21421826,2.32089138,-1.21421814,0.000294757861,0.0514585711,0.0221850835,0.0914966017,-0.00718692038,0.0203732848,1.71724391 +-1.08347595,2.32210255,1.08347595,0.000516663422,0.103381209,0.0502292179,-0.119764432,-0.146313384,0.0202434864,1.5323652 +0.122664727,2.3222959,-0.122664735,0.000818117463,0.197898209,0.103432789,-0.628622949,-0.0545307659,0.02022833,0.173759446 +0.117129631,2.3223598,-0.117129624,0.000261087029,0.196675047,0.103389516,-0.632709742,-0.048788514,0.0202282313,0.165958881 +1.21580982,2.32281709,-1.21580982,0.000129606284,0.0498259291,0.021366436,0.0891479105,-0.0122621013,0.0203719959,1.71950006 +1.22288966,2.32291794,-1.22288966,0.000100358695,0.0449156091,0.0199920982,0.0681735426,-0.0123297209,0.0203721989,1.72951293 +-0.206618756,2.32292295,0.206618756,0.00144092261,0.184514299,0.0923388302,-0.482519805,-0.12010967,0.0202110168,0.292345703 +1.22878909,2.32300234,-1.22878909,4.58411741e-05,0.0414340422,0.0257872529,0.032631211,-0.0126388827,0.0203723311,1.73785663 +1.08545196,2.32557845,-1.08545208,0.000393711351,0.088292405,0.0403806493,-0.160073504,-0.157708779,0.0203687102,1.53508747 +0.172663927,2.32598066,-0.172663927,0.000689892913,0.194821686,0.0997818336,-0.594559014,-0.0759062022,0.020225035,0.244344339 +0.18016164,2.32687736,-0.18016164,0.000676249736,0.193884552,0.099160485,-0.587753952,-0.0763291866,0.0202246271,0.254836887 +1.08633101,2.32737017,-1.08633101,0.000363711908,0.0835520476,0.0379595719,-0.160719931,-0.160044596,0.0203676634,1.53633094 +-0.605085254,2.327389,0.605085254,0.006510932,0.166869,0.0818548203,0.0236297995,0.173255384,0.0202103592,0.857283831 +-0.103876367,2.32753754,0.103876367,0.000199996735,0.185744092,0.09826985,-0.526777029,-0.0561082587,0.0202225167,0.147008568 +1.18574333,2.327739,-1.18574333,0.000108427128,0.0814343393,0.0507307537,0.102502957,-0.0111510213,0.0203674678,1.6769377 +-1.21497667,2.32857752,1.21497655,0.000265368522,0.0519621409,0.0218837298,0.140346617,-0.0204633567,0.0202508271,1.71843338 +-0.0711910129,2.32859206,0.0711910129,0.000111504552,0.238936216,0.165099844,-0.45852077,0.0448149294,0.0202194471,0.100792378 +-1.22233558,2.32890821,1.22233558,0.000297130668,0.0429461598,0.0187110994,0.140400231,-0.0154378172,0.020251995,1.7288456 +-1.22864532,2.32898211,1.22864532,0.000136844348,0.0379420258,0.0234358907,0.120178558,-0.0193564687,0.0202525035,1.73777008 +-0.084146373,2.32959533,0.084146373,0.000258746091,0.184713125,0.104284331,-0.518244565,-0.00780231599,0.0202221032,0.119112849 +-0.10126166,2.33010721,0.101261668,0.000189228449,0.185228229,0.0984117985,-0.525831401,-0.0527193956,0.0202209726,0.143321544 +0.170657963,2.33028626,-0.170657963,0.000578714593,0.195201084,0.100079529,-0.593139768,-0.0756070316,0.0202218425,0.241589293 +-0.192891628,2.33052588,0.192891613,0.00136271212,0.186563775,0.0937433913,-0.486258805,-0.114903577,0.0202046391,0.273311436 +0.429069161,2.33099055,-0.429069161,0.00260195672,0.17382513,0.08634004,-0.23491326,0.0381701812,0.0202313475,0.606928468 +1.18407178,2.33100057,-1.18407178,0.000136262897,0.0743201226,0.0455406345,0.0957211554,-0.0176792983,0.0203651655,1.67457557 +0.88947612,2.33101368,-0.88947618,0.00319705717,0.157162443,0.0760186538,0.00954019558,0.11629267,0.0203195866,1.25889206 +-0.979942799,2.33110285,0.979942799,0.000901748543,0.142538145,0.0674030632,-0.13538821,-0.0595638528,0.0202304833,1.38595414 +-1.20889986,2.33112645,1.20889986,0.000423718797,0.0583070517,0.0248821098,0.141677663,-0.0195002388,0.0202479605,1.70978808 +0.097532168,2.33186221,-0.0975321606,0.000300597836,0.193191171,0.104591966,-0.634677291,-0.0325166956,0.020220086,0.138903052 +0.0809949785,2.33215284,-0.0809949785,0.000289118529,0.189824998,0.110100776,-0.634609222,0.00439689588,0.0202187859,0.115359508 +0.171446428,2.33216739,-0.171446428,8.36839627e-06,0.195224717,0.100083858,-0.591297865,-0.0758925229,0.0202204324,0.24287042 +1.1907531,2.33256912,-1.19075322,0.000249109522,0.0660954639,0.0307655353,0.099527806,-0.0059126066,0.0203644969,1.68402267 +0.172888756,2.3326211,-0.172888756,2.86533632e-05,0.195055649,0.0999693274,-0.590019286,-0.0760936663,0.0202200897,0.244808421 +0.0683721453,2.3328054,-0.0683721453,0.000125899503,0.254075885,0.176659063,-0.565870047,0.0457346439,0.0202170014,0.0973793566 +1.21410489,2.33336186,-1.21410489,0.000330946728,0.0508111566,0.0216857139,0.0831213742,-0.0226199515,0.020364223,1.71704435 +-0.103163563,2.33346367,0.103163563,0.000107626212,0.185495481,0.0983130783,-0.521606445,-0.0551028699,0.0202178787,0.146120474 +1.22213268,2.33347726,-1.22213268,0.000276053615,0.0457666591,0.0202301964,0.0605833605,-0.0168067086,0.0203644391,1.72839773 +1.22882092,2.33357358,-1.22882092,0.000125543535,0.0419389792,0.025608927,0.0209374167,-0.0153054409,0.0203646515,1.73785663 +-0.101462744,2.33369994,0.101462744,4.58146096e-05,0.18527925,0.098368451,-0.522215307,-0.0530887544,0.0202178787,0.143902943 +-0.0841543227,2.33389544,0.0841543227,8.72487653e-05,0.184678838,0.104149982,-0.513859093,-0.00832985155,0.0202186573,0.119420327 +0.16906184,2.33392477,-0.169061854,0.000679744175,0.195519015,0.100336693,-0.591870725,-0.0751272514,0.0202191323,0.239282727 +-0.0709725544,2.33393073,0.0709725469,4.47749844e-05,0.239598945,0.165345713,-0.452394664,0.0448804721,0.0202154573,0.100797094 +-1.06844735,2.33520436,1.06844735,0.00143016386,0.102368623,0.0468744747,-0.147501692,-0.108031258,0.0202309918,1.51110744 +-0.815008104,2.3355484,0.815008163,0.00401189132,0.159424767,0.0772587657,-0.0370022953,0.130025893,0.0202234723,1.15367424 +0.986182988,2.33594036,-0.986182988,0.00105645705,0.148529008,0.0713472664,-0.0370881893,-0.00113833253,0.0203392655,1.39469326 +-0.969033301,2.33614588,0.96903336,0.00055951986,0.144678801,0.0685824752,-0.129436359,-0.0495578833,0.0202276018,1.37061071 +1.18919468,2.33644342,-1.18919468,0.000342801912,0.064359799,0.0296111219,0.094030641,-0.012325014,0.0203616768,1.68182039 +-0.123692274,2.33667064,0.123692274,0.000487092882,0.18901661,0.0977289304,-0.509192705,-0.0762621164,0.0202099662,0.175916731 +-0.101721779,2.3368125,0.101721779,0.000289107673,0.185224161,0.0983366072,-0.519649386,-0.0531073809,0.0202153455,0.144033879 +0.802763462,2.33731341,-0.802763462,0.00604841206,0.160568476,0.0780899525,0.0203407872,0.231330648,0.0202951208,1.13729262 +0.984187186,2.33737183,-0.984187186,0.0018487887,0.148661897,0.0714175925,-0.034961693,0.00236359914,0.0203378033,1.39187574 +-0.0843892992,2.33766842,0.0843892992,0.000290273514,0.184677094,0.104146987,-0.509935796,-0.00871618837,0.0202156641,0.119515479 +-0.191322327,2.33780074,0.191322327,0.0001966485,0.186259106,0.0937051773,-0.481636435,-0.11245586,0.0201989729,0.271295816 +0.987844467,2.33794069,-0.987844408,0.000158074487,0.148041606,0.0710819438,-0.0379336216,-0.00113502727,0.0203382112,1.39704704 +1.19670677,2.33831143,-1.19670677,0.000364881591,0.0595393255,0.0255775992,0.0989087075,-0.0245375223,0.0203603972,1.69244313 +-0.439414084,2.33832455,0.439414084,0.00410298584,0.16758129,0.0823237225,-0.163495734,0.00239202939,0.0202157516,0.624162197 +-0.908459008,2.3384881,0.908458948,0.00296205468,0.15211606,0.072923705,-0.0987396389,0.015221226,0.0202283692,1.28597653 +0.173512563,2.33859158,-0.173512563,0.000764418743,0.195143431,0.100048125,-0.586224556,-0.0751083195,0.0202154946,0.245475441 +-0.0711952895,2.33872843,0.0711952895,0.000125467137,0.239552274,0.165070787,-0.446700335,0.0447546057,0.0202116836,0.10085921 +0.986857712,2.33884668,-0.986857712,0.000572129735,0.148270324,0.0712089017,-0.035956528,0.00012033456,0.0203372575,1.39566481 +0.985758126,2.33891606,-0.985758126,0.000372814015,0.148453712,0.0713092163,-0.0350070968,0.00149625039,0.0203369539,1.39410949 +-1.1779089,2.33909369,1.1779089,0.000106633743,0.0705423951,0.043242462,0.0714198276,-0.0313317031,0.020242542,1.66586769 +-0.281087071,2.33909726,0.281087071,0.00115559669,0.174229056,0.086162366,-0.409145832,-0.11234805,0.0202084985,0.398540258 +1.19754434,2.33951879,-1.19754446,5.92895049e-05,0.0586304665,0.0251076482,0.0975800902,-0.027575992,0.0203595813,1.6936307 +-0.196093157,2.33996201,0.196093157,8.49842763e-05,0.185542911,0.0932155028,-0.478409171,-0.114583343,0.0201971643,0.27814135 +-0.975203931,2.34018731,0.975203872,0.000643189996,0.143444046,0.0678707659,-0.130435556,-0.0523158982,0.0202247649,1.37938595 +-0.957927167,2.34181404,0.957927167,0.0020131527,0.146036819,0.0693587735,-0.119934298,-0.0332613513,0.0202238578,1.35491598 +1.06844032,2.34239292,-1.06844032,0.0011953807,0.0985752493,0.0445559546,-0.159512416,-0.0814955384,0.0203541443,1.51102757 +0.388728827,2.34254313,-0.388728797,0.0028447872,0.176531374,0.0879119709,-0.319140375,-0.00356398011,0.0202213265,0.550190926 +1.19534206,2.34297419,-1.19534206,0.000294559431,0.0592119098,0.0253009703,0.0950456485,-0.0313936397,0.0203569997,1.69051421 +0.831216216,2.34317374,-0.831216156,0.00400495296,0.159652203,0.0775158405,0.0260074679,0.210794061,0.0202992503,1.17638874 +-0.560262203,2.34379554,0.560262203,0.00286480971,0.165835381,0.0813246742,0.00708969031,0.143770009,0.0201997124,0.796851039 +0.986068964,2.34400225,-0.986068964,0.00157464447,0.148292691,0.0712247789,-0.0320507474,0.00410906412,0.020333169,1.39452481 +-0.192261949,2.34406495,0.192261949,0.000591394724,0.185973972,0.0935876146,-0.475980788,-0.112080827,0.0201941784,0.272448629 +-0.531371117,2.34464335,0.531371057,0.00513699464,0.165712416,0.0812856704,-0.0331566222,0.11120107,0.0202064198,0.753773451 +1.06955791,2.34467721,-1.06955791,0.00111115503,0.0962733552,0.0433377288,-0.160520554,-0.0824212432,0.0203527007,1.51260829 +-1.17405713,2.34478021,1.17405725,0.000182443284,0.0558518507,0.0327565707,0.0530582927,-0.0413768031,0.0202400163,1.66044366 +1.1977644,2.34480262,-1.1977644,0.000468110782,0.0586241186,0.0250345934,0.0933193639,-0.0328415036,0.020355694,1.69391739 +0.0682556853,2.34502935,-0.0682556853,0.000149799918,0.255595803,0.178503096,-0.554484367,0.0450791493,0.0202082098,0.0974399298 +0.0806804001,2.34509563,-0.0806804001,0.000345624954,0.189886063,0.11049214,-0.621752262,0.00362826651,0.020209441,0.115199357 +0.0969178826,2.34540772,-0.0969178826,0.000517009408,0.193126231,0.104750685,-0.623040318,-0.0322937407,0.0202100892,0.138399273 +-1.18333745,2.34658074,1.18333757,0.00025007801,0.0693006516,0.0315595455,0.0794287398,-0.0257885531,0.0202363022,1.67354536 +-0.220653206,2.34681988,0.220653206,0.00185555802,0.182022139,0.0910980254,-0.453679293,-0.112950072,0.0201958753,0.312218308 +-0.130711198,2.34694481,0.130711213,0.000554547063,0.189418435,0.0977538526,-0.496220976,-0.080674842,0.0202008653,0.185784817 +-0.116615377,2.34719896,0.116615377,0.000346036511,0.18772459,0.0979389921,-0.50426358,-0.0673096329,0.0202026442,0.165664837 +1.00370169,2.34720874,-1.00370169,0.0012066256,0.141059145,0.067171827,-0.0535332188,-0.0106606316,0.0203359369,1.41945064 +-0.19744131,2.34777927,0.19744131,0.00166693679,0.184935063,0.0929554999,-0.473229587,-0.114040457,0.0201918408,0.27993533 +0.314478606,2.34832525,-0.314478606,0.00230728486,0.182108656,0.0913020447,-0.435854554,-0.0552985966,0.0202151164,0.44735685 +-0.993267775,2.34841204,0.993267834,0.000611334923,0.138756037,0.0652361512,-0.13299346,-0.0604752116,0.0202189721,1.40473974 +-1.01590347,2.3489995,1.01590347,0.000574453326,0.133489102,0.0623774081,-0.140149206,-0.0779139847,0.0202181321,1.43685865 +-0.15834339,2.34986973,0.15834339,0.000705201353,0.190162361,0.0968680531,-0.48089546,-0.0977988541,0.0201906636,0.225780278 +-1.10544086,2.35015917,1.10544086,0.000331729243,0.0467576087,0.0205148607,-0.113420352,-0.158758521,0.0202269051,1.56340098 +-1.21115947,2.35039997,1.21115947,0.000450409629,0.0535660163,0.0223617274,0.121476524,-0.038110286,0.0202348828,1.71296096 +-1.04945886,2.35049486,1.04945886,0.00185348617,0.118452914,0.0545706563,-0.141636908,-0.0927290171,0.0202172734,1.48423934 +-1.22071815,2.35053396,1.22071815,0.000326969952,0.0445782319,0.0191191267,0.122678138,-0.0216124989,0.0202360656,1.72647989 +-1.22868121,2.35064554,1.22868121,0.000148723877,0.0389152169,0.0229998715,0.0987639651,-0.0241596326,0.020236617,1.73774242 +-0.851120591,2.35171127,0.851120591,0.00375174684,0.157143146,0.0758913979,-0.0540507734,0.0940743014,0.0202140268,1.20429039 +-0.303102106,2.35203791,0.303102076,0.00483251223,0.172039762,0.0850220397,-0.371837109,-0.0992994905,0.0202027764,0.430372626 +-1.03922486,2.35366654,1.03922486,0.000496844004,0.123216905,0.0570105836,-0.139658511,-0.0875634402,0.0202150065,1.46971416 +-1.17981732,2.3540082,1.17981732,0.000463830744,0.0650829896,0.0288814902,0.0621090047,-0.0349357277,0.0202317163,1.66859043 +-1.10820413,2.35407066,1.10820413,8.04309093e-05,0.037634626,0.0161816888,-0.113301724,-0.162245065,0.0202249791,1.56732297 +0.39778477,2.35419631,-0.39778474,0.00191809004,0.17607297,0.0877304301,-0.301541895,0.00800304674,0.0202129651,0.563443184 +-0.124519438,2.35453844,0.124519438,0.000215052758,0.188761875,0.0977612808,-0.494238377,-0.0754532367,0.0201946758,0.176995158 +-1.18984962,2.35555506,1.18984962,0.000357493409,0.064336136,0.0271230433,0.0904674232,-0.0456403159,0.0202287585,1.68275523 +1.1115247,2.35560894,-1.1115247,0.000386904081,0.024014378,0.00997989532,-0.127324834,-0.177402675,0.0203499515,1.57201517 +-1.02130151,2.35579777,1.02130151,0.000521220441,0.131534413,0.0612891465,-0.138626158,-0.0780165642,0.0202135406,1.44451356 +-1.11190128,2.35579872,1.11190128,0.000374423224,0.0344658867,0.0148180602,-0.106650427,-0.159490436,0.020224439,1.57254279 +-0.150975227,2.35608864,0.150975227,0.000603522582,0.190445542,0.0973394886,-0.479118049,-0.0924155116,0.0201862566,0.21515286 +-0.275057256,2.35612488,0.275057226,0.0020328972,0.174700186,0.0866556317,-0.40632084,-0.109984279,0.0201952495,0.390785664 +-0.189990282,2.35622406,0.189990282,0.00055942859,0.185724959,0.0937057287,-0.468921185,-0.108580217,0.0201846622,0.268963873 +1.15893054,2.3563652,-1.15893066,0.000236843451,0.0229504965,0.0112068309,-0.0159260537,-0.110686183,0.0203486718,1.63911796 +1.12842286,2.35754442,-1.12842298,0.00033067906,0.0204837434,0.00895631872,-0.0903262943,-0.157610744,0.0203482583,1.59585047 +1.11549032,2.35776949,-1.11549032,0.00017313569,0.020485783,0.00852608122,-0.119809888,-0.175569728,0.020348208,1.57761431 +0.325082719,2.35803938,-0.325082719,0.00280000735,0.181738436,0.0911153257,-0.420195043,-0.0455463827,0.0202088952,0.461604357 +-0.291934907,2.35918069,0.291934907,0.000939509948,0.172602937,0.0854326561,-0.388390601,-0.104120523,0.0201966707,0.415293276 +1.15185642,2.3595562,-1.15185642,0.00025559307,0.0174701624,0.00806369539,-0.0398672074,-0.130004063,0.0203463379,1.62907767 +0.403537899,2.35998058,-0.403537899,0.00207126327,0.175968945,0.0877167583,-0.293752253,0.0172439739,0.0202089045,0.571313083 +-0.0838984624,2.36062169,0.0838984698,0.000503529969,0.184516996,0.103913315,-0.486378253,-0.00925609842,0.0201949552,0.120252937 +-0.101666607,2.36064863,0.101666614,0.000579343061,0.185145155,0.0982015207,-0.500157952,-0.0519449487,0.020193439,0.145739049 +-0.0703966618,2.36075425,0.0703966618,0.000210170838,0.240676761,0.164546594,-0.420534909,0.0454536229,0.0201913174,0.100883394 +-1.14828098,2.36142492,1.14828098,0.000255599211,0.0245002937,0.0114916358,-0.0318510942,-0.127672553,0.0202265419,1.62397456 +-1.0174129,2.36143517,1.0174129,0.00046746555,0.132626131,0.0618124753,-0.136514202,-0.0726072714,0.0202099867,1.43905675 +0.392782629,2.36234355,-0.392782629,0.0026390967,0.176664665,0.0881118178,-0.311485559,0.00699630892,0.0202068873,0.556235731 +-1.14470148,2.36257005,1.14470148,0.000354420132,0.02244661,0.0102301296,-0.041589871,-0.136208996,0.0202252511,1.61891413 +0.114659309,2.36402988,-0.114659309,0.000107261279,0.197990879,0.104580328,-0.599032283,-0.0499898307,0.020196246,0.162794292 +-1.19154787,2.36433148,1.19154787,0.000404663151,0.0618095919,0.0257791914,0.0820506141,-0.0540366769,0.0202228855,1.68514848 +-1.186481,2.36468506,1.18648088,0.000586090959,0.0635357052,0.0265231319,0.0754235685,-0.0562746599,0.0202222206,1.67801654 +0.111823909,2.36487055,-0.111823909,0.000317109632,0.196877152,0.104484923,-0.601225734,-0.0460401177,0.0201955736,0.158532068 +1.04498565,2.3656261,-1.04498565,0.00198066328,0.124161422,0.0579083115,-0.0975133181,-0.0389239043,0.020334268,1.47788465 +0.0972159207,2.36599302,-0.0972159207,0.000262224494,0.193012908,0.105143547,-0.603696048,-0.0326356664,0.0201942734,0.138164014 +0.081162259,2.36625886,-0.081162259,0.000278556516,0.190460384,0.111310914,-0.600405633,0.00550812017,0.0201936159,0.115330458 +0.118329972,2.36630416,-0.118329979,0.000408031861,0.198363721,0.104603387,-0.595163763,-0.0528876185,0.0201945323,0.167702794 +0.142049268,2.36634731,-0.142049283,0.00133911159,0.199220836,0.103390664,-0.583022833,-0.0679529607,0.0201943796,0.20264861 +-0.381459892,2.36681437,0.381459892,0.00790267996,0.168515384,0.0830635279,-0.262463152,-0.0443427749,0.0201994907,0.545674443 +0.0688799843,2.36691666,-0.0688799843,0.000120815836,0.25486508,0.178980678,-0.535602629,0.0475075431,0.0201921128,0.0978450328 +0.114563793,2.3680377,-0.114563793,1.96239489e-05,0.197966218,0.104619764,-0.596259117,-0.0499162301,0.0201932937,0.162657231 +0.488932073,2.36813545,-0.488932073,0.00442792568,0.171152636,0.0849787891,-0.139555544,0.130990744,0.0202060454,0.69332993 +0.804433942,2.36901808,-0.804433942,0.00409757672,0.160119206,0.078008838,0.0235799607,0.250210643,0.0202710349,1.13915646 +0.25407806,2.3692975,-0.25407806,0.00176759716,0.187329978,0.0948799103,-0.504156291,-0.0620361194,0.0201959703,0.360919446 +0.112202302,2.36941838,-0.112202309,0.000178648537,0.197039858,0.104550973,-0.596602798,-0.0461964086,0.0201922078,0.159173995 +-0.96720612,2.36993408,0.96720612,0.000993578811,0.145179898,0.0687716156,-0.110797435,-0.0299274065,0.0202043746,1.36790514 +-0.120242685,2.37177277,0.120242693,0.000375736767,0.187767655,0.0980070159,-0.485538363,-0.0671831816,0.0201777294,0.171026334 +1.04810321,2.37183046,-1.04810321,0.00113112491,0.121421486,0.0563875809,-0.0977497697,-0.0384090729,0.0203303285,1.48229396 +1.20768809,2.37188911,-1.20768809,0.00104785815,0.0539652109,0.0225802884,0.0611410961,-0.064777106,0.0203358363,1.70815289 +1.21914458,2.37210178,-1.21914458,0.000773861771,0.0484771095,0.0209008567,0.0313469283,-0.033828415,0.0203360338,1.72435725 +1.2286911,2.37227917,-1.2286911,0.000350879593,0.0434740633,0.024447497,-0.0232693553,-0.025290478,0.0203364715,1.73785973 +0.0689124465,2.37277412,-0.0689124465,0.000121419864,0.25380519,0.178528607,-0.530507326,0.0483411141,0.0201877356,0.097996451 +0.0810929239,2.37285614,-0.0810929239,0.000300286163,0.190513626,0.111453004,-0.593240321,0.00597621175,0.0201887265,0.115372121 +0.243713617,2.37286115,-0.243713602,0.00260271784,0.188301995,0.0955361426,-0.516198158,-0.0627490133,0.0201921612,0.345764279 +-0.914885879,2.37303782,0.914885879,0.00222398876,0.15243046,0.072974354,-0.0817694068,0.0278721824,0.0202027913,1.29511261 +0.859698892,2.37306905,-0.859698892,0.00775367673,0.157851845,0.0765558854,0.0362217277,0.187237382,0.0202814154,1.2176404 +0.0969830155,2.37310672,-0.0969830155,0.000313318102,0.193048358,0.105279453,-0.596667409,-0.032125935,0.0201889873,0.138016522 +-0.161853403,2.37388158,0.161853403,0.000784768898,0.18862167,0.0963031128,-0.464936227,-0.0939568728,0.0201716218,0.229858562 +-1.09601009,2.37399292,1.09601009,0.000946839689,0.0704708546,0.0299597904,-0.153156474,-0.109330446,0.0202063434,1.55006421 +1.16401458,2.37406349,-1.16401458,0.000592460623,0.0439725295,0.0177860726,-0.0197022911,-0.0968322605,0.020334987,1.64630795 +0.117067814,2.37423682,-0.117067814,0.000377065473,0.198399171,0.104743354,-0.589933515,-0.0514892563,0.0201885235,0.165816203 +-1.00566506,2.37518477,1.00566506,0.000689623586,0.13576591,0.0634739101,-0.12607719,-0.0572075285,0.0202008542,1.42231059 +-0.579746246,2.37617564,0.579746246,0.00409472687,0.165989682,0.0815953985,0.0101304669,0.183079273,0.0201806799,0.823572814 +-0.138588682,2.37630439,0.138588682,0.000397272495,0.189894676,0.0977855176,-0.471783996,-0.0838745981,0.0201705936,0.197249159 +0.591379404,2.37704897,-0.591379404,0.00352855306,0.167512715,0.0830621943,-0.0215278603,0.267310262,0.020213373,0.837246776 +-1.04195428,2.3773303,1.04195428,0.000751649437,0.121682681,0.0560253486,-0.129694581,-0.07812953,0.0202001855,1.47356176 +-1.09967792,2.37919402,1.09967792,0.000235612024,0.0661505908,0.027831899,-0.152943477,-0.110700652,0.0202032048,1.55526507 +0.582242012,2.37949038,-0.582242012,0.00327449618,0.167732999,0.0831890181,-0.0227736719,0.258715838,0.0202096775,0.824192584 +0.167811662,2.37970448,-0.167811662,0.000881158863,0.196727112,0.101425476,-0.56003356,-0.0694820508,0.0201838519,0.238280386 +-1.20482612,2.37994623,1.20482612,0.000681145,0.0559802614,0.023130646,0.0842906982,-0.0618072897,0.0202124808,1.70411706 +-1.21778905,2.38013792,1.21778917,0.000633634569,0.0471278355,0.0198204946,0.0823981911,-0.0329346657,0.0202135332,1.72245204 +-1.2285881,2.38029766,1.22858822,0.000285957998,0.0403120779,0.0219543353,0.0523112193,-0.0318177603,0.0202141274,1.73772645 +0.19429183,2.38070869,-0.194291845,0.0023336336,0.193914399,0.0993187279,-0.54498744,-0.0698484927,0.0201838445,0.276427835 +1.1558516,2.38108444,-1.1558516,0.000688806584,0.041146256,0.016328318,-0.046107091,-0.112690225,0.0203298926,1.63472819 +0.300422072,2.3813715,-0.300422072,0.00201859372,0.184343383,0.0928110778,-0.445298672,-0.0529500172,0.0201895908,0.426485568 +-1.10452175,2.38156724,1.10452175,0.00106911385,0.063413769,0.0264991689,-0.145424068,-0.111699156,0.020202212,1.56210709 +0.18210803,2.38162613,-0.182108045,0.000735288893,0.195137545,0.100159533,-0.552322328,-0.0703447461,0.0201824754,0.259478837 +-0.464136362,2.38172817,0.464136362,0.00496523362,0.167339772,0.0826360658,-0.132830247,0.0489121601,0.0201850235,0.659730554 +1.12590253,2.38188815,-1.12590265,0.000910431496,0.0476379693,0.0192447156,-0.105095148,-0.114970103,0.020328803,1.59228635 +1.10418439,2.3821106,-1.10418439,0.00114715821,0.0532817692,0.021820182,-0.146437779,-0.116501212,0.0203284174,1.56163454 +0.393218637,2.3821125,-0.393218637,0.00489269709,0.17691265,0.0883320197,-0.314952433,0.015915487,0.0201928932,0.556464434 +-0.0712188333,2.38237405,0.0712188333,0.000135337032,0.241564199,0.165557951,-0.394352764,0.0442004353,0.0201719534,0.100973584 +1.04126239,2.38259959,-1.04126239,0.00136278244,0.125567824,0.0586555228,-0.0785688385,-0.0273378901,0.0203205477,1.47257996 +-0.0848611742,2.38323021,0.0848611742,0.000313085853,0.184515208,0.104279883,-0.463620245,-0.0103514232,0.0201753862,0.120280415 +0.925733864,2.3833735,-0.925733924,0.00254232716,0.154418021,0.074632965,0.0315947011,0.106047362,0.0202887319,1.30939126 +-0.130500048,2.38409972,0.130500048,0.000664793653,0.189056531,0.0977958664,-0.4706617,-0.0772408098,0.0201645847,0.185751438 +-0.102722451,2.38454485,0.102722451,0.000348173897,0.185060516,0.0984931365,-0.482672036,-0.051700484,0.0201732218,0.145549476 +1.10959649,2.3848269,-1.10959649,0.00048188612,0.049717553,0.020161096,-0.138878435,-0.11997325,0.0203264952,1.56927896 +-0.546993971,2.38509727,0.546993971,0.0034066746,0.165561557,0.0815449134,-0.0244397856,0.155025601,0.0201796945,0.77483815 +-1.15216053,2.38560486,1.15216041,0.000643767824,0.0520960353,0.0212921724,-0.0417992286,-0.108994134,0.0202060807,1.62946033 +0.552660942,2.38657713,-0.552660942,0.00370597141,0.169123769,0.083986178,-0.069496125,0.223581433,0.0202001203,0.781866789 +0.147189811,2.38687325,-0.147189811,0.000751036452,0.199491799,0.103522047,-0.565276265,-0.067723617,0.020178657,0.209887862 +-0.988275528,2.38772583,0.988275528,0.00102256192,0.140498981,0.0660273209,-0.115217738,-0.0407663286,0.0201927368,1.39806831 +-1.14783633,2.38808179,1.14783633,0.000975230359,0.0513141155,0.0208526943,-0.0545572937,-0.115506396,0.0202037022,1.62334657 +-0.149719238,2.38817716,0.149719223,0.000694106508,0.188439637,0.0968377143,-0.460947335,-0.0865134597,0.0201606788,0.212477356 +0.133868933,2.38863993,-0.133868918,0.000541710353,0.199153081,0.104042441,-0.570690393,-0.0610797741,0.0201775245,0.190520436 +-0.0845530704,2.38875484,0.0845530704,0.00012820751,0.184603587,0.104493968,-0.457463086,-0.00991632883,0.0201701783,0.120135903 +-0.0709613487,2.388906,0.0709613487,6.30779396e-05,0.242412448,0.1665335,-0.386353195,0.0443120524,0.0201657079,0.100894861 +-0.102364428,2.3891511,0.102364428,7.11154353e-05,0.185041174,0.0985790417,-0.478768885,-0.0513156988,0.0201689191,0.145338461 +-0.105474532,2.3894012,0.105474532,0.000297452789,0.185383171,0.098468706,-0.47738573,-0.054476656,0.020168459,0.149485379 +0.249625802,2.38958883,-0.249625802,0.00244706683,0.188393459,0.0955977738,-0.504897475,-0.0599261522,0.0201805364,0.354045302 +-1.18804598,2.3913064,1.18804598,0.000537471322,0.0641965866,0.0268438365,0.0575307049,-0.0737650692,0.0202026945,1.68016565 +1.18028307,2.39174581,-1.18028307,0.000743317709,0.0560571998,0.0229631476,0.0245066844,-0.0960185155,0.0203218423,1.66924036 +-0.102498166,2.39422154,0.102498166,0.000338301441,0.185049862,0.0986898988,-0.474356174,-0.0513684675,0.0201648101,0.145219907 +0.0691932663,2.39444304,-0.0691932663,0.000115286413,0.250374734,0.177756459,-0.50542444,0.0517153367,0.0201709196,0.0978827029 +-0.0847536027,2.39482117,0.0847536027,0.000312321616,0.184540123,0.104581334,-0.451260477,-0.010002465,0.0201650634,0.120117158 +1.17078304,2.39546943,-1.17078304,0.000514297397,0.0571289994,0.0232529938,0.0165543556,-0.103677861,0.0203191265,1.65587258 +0.0993101299,2.39576054,-0.0993101299,0.000153719709,0.194316372,0.105728127,-0.573974729,-0.0292959362,0.020171497,0.140457049 +-0.071223706,2.39600253,0.071223706,0.000135264592,0.24278152,0.167313501,-0.378491402,0.044436276,0.0201595165,0.100971401 +-1.03277862,2.3963418,1.03277874,0.000273829239,0.125740856,0.0579434484,-0.121605232,-0.0651085451,0.0201881956,1.46066773 +0.587537825,2.39641142,-0.587537825,0.000768642582,0.168025061,0.0834434703,-0.0279542767,0.272677034,0.02019809,0.832370937 +0.0812278613,2.3967247,-0.0812278539,0.000265786948,0.191575766,0.112788044,-0.565062523,0.00924314745,0.0201703813,0.114896625 +-0.30530408,2.39676976,0.30530408,0.00350469304,0.172504053,0.0858368501,-0.370196134,-0.0843260586,0.0201733895,0.432482421 +-0.266898841,2.39746833,0.266898811,0.00316439848,0.174781606,0.0873097032,-0.404054403,-0.101440541,0.02016408,0.377883106 +0.0968701765,2.39774895,-0.0968701765,0.000198967202,0.193716049,0.105851442,-0.572620034,-0.0267403778,0.0201698989,0.13701728 +0.491011024,2.39782238,-0.491011024,0.00501104258,0.171533704,0.0853242725,-0.149603188,0.146926552,0.0201852787,0.695903659 +0.932022214,2.39827538,-0.932022214,0.000927840476,0.153416783,0.0741256177,0.0368810073,0.108595133,0.0202785246,1.318385 +0.122294806,2.39880276,-0.122294806,0.000678490789,0.199514002,0.105055481,-0.564458728,-0.0578084663,0.020169314,0.174749538 +-1.03547907,2.39929199,1.03547907,6.95330527e-05,0.124393627,0.0572042987,-0.12105865,-0.0654355139,0.0201863851,1.46450841 +0.0690992251,2.39980459,-0.0690992326,2.80495569e-05,0.249131426,0.177143753,-0.498974323,0.052555386,0.0201667007,0.0978742614 +0.0811340958,2.3999629,-0.0811340958,4.47680359e-05,0.191667169,0.11289414,-0.560893476,0.00933817122,0.0201678518,0.114853829 +0.096761398,2.40009713,-0.0967614055,1.99225997e-05,0.193790823,0.105899394,-0.570075214,-0.0264882296,0.0201680604,0.136943772 +0.0972710326,2.40014148,-0.0972710326,0.000154837384,0.193842173,0.105850667,-0.570277691,-0.0267343055,0.0201680455,0.137635857 +0.692552865,2.40058208,-0.692552865,0.00469079055,0.164047986,0.0808138773,0.0259585492,0.331344008,0.0202181935,0.980184197 +-0.888520598,2.40083337,0.888520539,0.00395108759,0.156237692,0.0752757266,-0.0496200919,0.081186004,0.0201792177,1.25689435 +-1.03069913,2.40091991,1.03069913,0.000247167016,0.12625438,0.0581710227,-0.119840018,-0.0614263639,0.020185316,1.45775104 +0.0968008041,2.40098214,-0.0968008041,0.000178567774,0.193802595,0.105901234,-0.569164276,-0.026477769,0.0201673489,0.136967853 +-0.177410126,2.40111637,0.177410126,0.0014882735,0.186285496,0.0949618593,-0.448289752,-0.0939712524,0.0201474987,0.252138048 +0.0811649784,2.40115428,-0.0811649784,0.000236268359,0.191727281,0.112940155,-0.559374988,0.00919773616,0.0201669075,0.114863247 +0.0691172034,2.40174794,-0.0691172034,0.000103266233,0.249004364,0.177101627,-0.496395081,0.0525602438,0.0201651435,0.0978534445 +-0.194699109,2.40186501,0.194699109,0.00190586934,0.183939219,0.0932326391,-0.449416578,-0.103061587,0.0201475173,0.278723419 +1.17153549,2.40277624,-1.17153549,0.000245440693,0.0572399274,0.0232983287,0.0130352173,-0.107395463,0.0203136895,1.65697658 +0.920177042,2.40291667,-0.920177042,0.00279460335,0.15433155,0.0746495053,0.0427328534,0.127884269,0.0202728733,1.3017236 +0.634633422,2.40340281,-0.634633482,0.00365836616,0.166403264,0.0823856592,-0.00837442745,0.303135902,0.0202031713,0.897682011 +0.707226753,2.40372801,-0.707226753,0.0044245855,0.163695931,0.0805257857,0.0308640823,0.329652667,0.0202202611,1.00135028 +-1.02059865,2.40386963,1.02059865,0.00105073606,0.129408598,0.0598686896,-0.115457326,-0.0527960919,0.0201831069,1.44339252 +0.0999253765,2.4050293,-0.0999253839,0.000131661451,0.194495693,0.105788246,-0.565552652,-0.0298680812,0.0201642271,0.141323715 +-1.03903425,2.40596294,1.03903425,0.000252307946,0.122226961,0.0559643023,-0.11911314,-0.0648404956,0.0201823767,1.46954048 +0.175475627,2.40597653,-0.175475627,0.000955995172,0.196145624,0.100997642,-0.539464474,-0.0683797523,0.0201634467,0.248922706 +-1.08418703,2.40625167,1.08418703,0.0011151291,0.0995887518,0.0441907868,-0.112556413,-0.0911583453,0.0201849341,1.5333463 +-1.03216636,2.40650463,1.03216636,0.000115067349,0.125665754,0.0578235239,-0.117786869,-0.0599246249,0.0201817658,1.4598887 +1.16217089,2.40653396,-1.16217089,0.00164303789,0.0588133186,0.0239711478,0.00112561136,-0.113986276,0.0203112997,1.643659 +-0.163223624,2.40695047,0.163223609,0.00050397357,0.187768757,0.0962210819,-0.446019232,-0.0897644162,0.0201432109,0.233087271 +0.577587962,2.40803385,-0.577587962,0.00425785081,0.168672994,0.0839212462,-0.0495187119,0.267734438,0.0201881658,0.817874014 +0.927229822,2.410671,-0.927229762,0.000832437479,0.153672904,0.074303098,0.0461843982,0.121463262,0.02026782,1.31179321 +-1.06380939,2.41092157,1.06380939,0.000983918319,0.109843716,0.0494417846,-0.112095609,-0.0777163878,0.02018076,1.50446808 +-0.972209632,2.41105175,0.972209632,0.00150485057,0.144026861,0.0679720789,-0.0936940163,-0.0140309762,0.0201765355,1.3750366 +-1.03872669,2.41153193,1.03872669,0.000837134838,0.123297855,0.0565592907,-0.114477664,-0.0625901148,0.0201787017,1.46909618 +1.02499843,2.4118464,-1.02499843,0.00109293871,0.133843407,0.0631886423,-0.0300385989,-0.000515948283,0.0202940945,1.44981253 +-0.123729013,2.41296864,0.123729013,0.000414906943,0.188396856,0.0982750356,-0.457028478,-0.0694804937,0.0201403648,0.175502181 +1.02946806,2.41343093,-1.02946806,0.000116286217,0.131740868,0.0620309934,-0.034485206,-0.00349890394,0.020294074,1.45618534 +-1.08928835,2.41347909,1.08928823,0.000364529318,0.096813187,0.0427422188,-0.107239008,-0.0909196213,0.0201806873,1.54057407 +-0.134935454,2.41350913,0.134935454,0.000635448436,0.18809031,0.097718142,-0.452397883,-0.0751596019,0.0201396402,0.191136226 +-1.15850186,2.41362238,1.15850186,0.000653513416,0.0700395778,0.0292256456,-0.00190894864,-0.117951006,0.0201856401,1.63843215 +1.12398827,2.41376686,-1.12398839,0.0011153277,0.0757608563,0.0322092921,-0.046944432,-0.0917177796,0.0203054585,1.5895772 +0.945870996,2.41426253,-0.945870996,0.00185463543,0.151375353,0.0730028972,0.0377839021,0.0996177271,0.0202698354,1.3377701 +1.03526497,2.41457129,-1.03526497,0.000487292622,0.127392575,0.0596322566,-0.0380991735,-0.00964401197,0.0202942193,1.4642477 +0.593743324,2.41542721,-0.593743324,0.00530397333,0.168230072,0.0837045312,-0.0336320102,0.289343506,0.0201846398,0.840548158 +-0.956201792,2.41623163,0.956201792,0.00167341623,0.147387788,0.0698969662,-0.0819497854,0.00385677721,0.0201725774,1.35272133 +-1.09596395,2.41643524,1.09596395,0.00158817368,0.0940819606,0.041332256,-0.097903274,-0.0954599455,0.0201793034,1.55000663 +0.448323309,2.41701198,-0.448323309,0.0045412695,0.174268395,0.0869224519,-0.218740135,0.105234772,0.0201700777,0.635068536 +-0.421612889,2.41716242,0.421612859,0.00675743911,0.168521956,0.0836181045,-0.206573844,0.0156582706,0.0201684479,0.60011375 +-0.801326096,2.41717219,0.801326096,0.00380928605,0.160104126,0.0778574795,0.00277515873,0.203330696,0.020159144,1.13339007 +-0.0833823383,2.41729212,0.0833823457,0.000379009522,0.184539288,0.105259284,-0.4267627,-0.00718259998,0.0201436151,0.119452983 +-0.0704861656,2.41748524,0.0704861656,0.000158457653,0.245107323,0.171224043,-0.35469085,0.0457152687,0.0201385878,0.100962251 +-0.100282952,2.4177494,0.100282952,0.000376374112,0.184694111,0.0990473479,-0.454085112,-0.0490342304,0.020142477,0.143677831 +-0.498440325,2.41795588,0.498440325,0.0030071761,0.1667649,0.0825862959,-0.0982081816,0.11367885,0.0201603174,0.706827521 +-1.15351152,2.41828275,1.15351152,0.00167039968,0.0718370304,0.0301017612,-0.0109170713,-0.122579828,0.0201821048,1.6313746 +1.09633493,2.41830564,-1.09633482,0.00139742147,0.0881779268,0.0385169126,-0.0798843727,-0.0767906606,0.020301681,1.55053031 +-0.117835686,2.41832805,0.117835686,0.000411514397,0.187660545,0.0986676812,-0.454096705,-0.0636458546,0.0201371145,0.167067736 +0.981785536,2.41870809,-0.981785476,0.00161237689,0.14652507,0.0702974573,0.0163595341,0.0523239188,0.0202761237,1.38918865 +-0.922851682,2.41909528,0.922851682,0.00204408867,0.15185985,0.0725980252,-0.0599715561,0.0491327681,0.0201677587,1.30522752 +1.07384121,2.41974211,-1.07384121,0.00160788267,0.102924615,0.0462229252,-0.0593091697,-0.0513994172,0.0202966146,1.51865935 +0.158640146,2.41994715,-0.158640131,0.000635849894,0.198527798,0.102805234,-0.538520336,-0.0664515793,0.0201529376,0.225768656 +1.10377109,2.42077208,-1.10377109,0.000464647688,0.0839126259,0.036331106,-0.0741171837,-0.0838604495,0.0203000978,1.56103849 +-0.892074347,2.42078543,0.892074347,0.00169863144,0.156169623,0.0752059817,-0.0425275192,0.0892707631,0.0201643258,1.2622354 +-1.19122815,2.42125344,1.19122815,0.000586486829,0.0635156035,0.0265049003,0.0379001573,-0.0939815789,0.0201808754,1.68472838 +0.712420344,2.42143774,-0.712420285,0.0041122972,0.163269952,0.0803644434,0.0325126275,0.337670386,0.0202078577,1.00840747 +-1.21210289,2.42180705,1.21210289,0.000647100795,0.05356602,0.0224994682,0.0100350771,-0.0464550108,0.0201817621,1.71425462 +0.115017973,2.42186522,-0.115017973,0.000269922079,0.198098555,0.105305471,-0.547633767,-0.0480403379,0.0201511271,0.162835032 +-1.16842675,2.42186737,1.16842675,0.00062059128,0.0686261579,0.0286813881,0.00614548195,-0.114335455,0.0201798044,1.65241694 +-1.22869122,2.42187357,1.22869122,0.000287368865,0.0426776595,0.0207961332,-0.0347901471,-0.0364902243,0.020182332,1.73771524 +-0.684383154,2.42219996,0.684383154,0.00507232081,0.16378662,0.080320999,0.0424552336,0.269472927,0.0201491173,0.968447566 +-1.02998447,2.42282343,1.02998447,0.00217190362,0.127262756,0.0586547665,-0.109732464,-0.0499231629,0.020170657,1.4566853 +1.01349688,2.42284608,-1.01349688,0.00179192855,0.136827007,0.0648490191,-0.0118717682,0.0193668511,0.0202824399,1.43338358 +-0.125369638,2.42300606,0.125369638,0.000406289735,0.188634634,0.0984895602,-0.448635787,-0.0701961666,0.0201315973,0.177660614 +-1.18595839,2.42359638,1.18595827,0.000216199987,0.0647915378,0.0270186774,0.0272649247,-0.100621141,0.0201788414,1.67730594 +0.0952021703,2.42417336,-0.0952021703,0.000373519666,0.193504155,0.106416233,-0.54202652,-0.0281434469,0.0201488994,0.135725573 +0.0684361607,2.42432308,-0.0684361607,0.00016290546,0.246853888,0.175263241,-0.46520263,0.0547559634,0.0201465208,0.0976178199 +0.0800341815,2.42434645,-0.0800341815,0.000381873309,0.192865223,0.11406932,-0.525356591,0.00902928226,0.02014824,0.114127234 +-0.662603259,2.42451262,0.662603199,0.0053935172,0.163994282,0.0804705918,0.032153815,0.25804925,0.020147182,0.937443376 +-1.09205067,2.42467642,1.09205079,0.000444641686,0.0984491259,0.0435947441,-0.100118317,-0.0921807066,0.0201732386,1.54446828 +0.137964293,2.42485952,-0.137964293,0.000303359877,0.199138403,0.104101673,-0.541564345,-0.0612819009,0.020148987,0.195295617 +0.109174214,2.42501664,-0.109174214,0.000148984254,0.196565062,0.105551168,-0.545673609,-0.0409814492,0.0201486312,0.154529899 +0.112913586,2.42513609,-0.112913586,6.72504757e-05,0.197685689,0.105297275,-0.545739353,-0.0457537994,0.0201485939,0.159958839 +-0.880197942,2.42516184,0.880197942,0.00217236509,0.157254443,0.075898841,-0.0333341137,0.110114336,0.0201596208,1.24561882 +-0.238005459,2.4266839,0.238005459,0.00273737358,0.177641377,0.0895315707,-0.422699034,-0.0978198424,0.0201378241,0.338416338 +1.09921288,2.42672849,-1.09921288,0.00018882865,0.0881866813,0.0385147892,-0.0751346722,-0.078043513,0.0202950668,1.55461931 +1.02937555,2.42750025,-1.02937555,0.00219911267,0.132390246,0.0623572208,-0.024199767,0.00358037534,0.0202832147,1.455845 +0.932633102,2.42758965,-0.932633042,0.00205829716,0.153040648,0.0739958212,0.0525088161,0.120988317,0.0202559177,1.31917322 +0.113071509,2.42771101,-0.113071509,0.000185448996,0.197688743,0.105301715,-0.543367743,-0.0457624309,0.0201465692,0.160252884 +1.18878543,2.42772079,-1.18878531,0.000738650211,0.0591260083,0.0246453192,0.03093227,-0.0971751958,0.0202933066,1.68120718 +1.21066678,2.4277606,-1.21066678,0.000748418912,0.0543617308,0.023042202,-0.0349951498,-0.0455323309,0.0202934574,1.71215296 +1.22885501,2.42779684,-1.22885501,0.000339578401,0.045446232,0.0223141909,-0.121974707,-0.0304886363,0.0202943012,1.73787546 +0.135352433,2.42829275,-0.135352418,0.000188859107,0.199223101,0.104343027,-0.539261043,-0.0605163351,0.0201462377,0.191713616 +0.125449985,2.42851353,-0.125449985,0.000193735483,0.198541626,0.104811057,-0.540719688,-0.0537401177,0.0201459844,0.177441627 +0.217048317,2.42872596,-0.217048317,0.000960790319,0.192663863,0.0986368135,-0.508390725,-0.0571313798,0.0201489329,0.306992948 +-0.0710800886,2.43030572,0.0710800886,0.000111540627,0.246468291,0.173087895,-0.340780795,0.0444325879,0.0201257225,0.101041727 +-0.083292149,2.43066072,0.083292149,0.000256799598,0.184794933,0.106191985,-0.412780583,-0.00511089899,0.0201309454,0.118398085 +-0.535174847,2.43089175,0.535174847,0.00329970196,0.165667862,0.0820118934,-0.0531477034,0.165372193,0.0201504827,0.759137511 +-1.15783739,2.43105364,1.15783739,0.0010558397,0.0738897547,0.0311390553,-0.00703416718,-0.122696668,0.0201733466,1.6374625 +1.18754375,2.43130302,-1.18754375,0.000149213956,0.0594760664,0.024782354,0.029099904,-0.0993176252,0.0202905759,1.67946851 +-0.828749418,2.43137789,0.828749418,0.002260576,0.159147605,0.077212967,-0.0044313902,0.178529248,0.020150492,1.17210543 +0.140623763,2.43142176,-0.140623763,0.000374987663,0.198934078,0.103935309,-0.536134064,-0.0611157864,0.020143887,0.199015245 +1.18531549,2.43144965,-1.18531537,0.0006922881,0.0597450845,0.0248887241,0.0263579339,-0.100817665,0.0202905871,1.67630541 +1.21007323,2.43148685,-1.21007335,7.86156161e-05,0.0547810756,0.0231900215,-0.0392004251,-0.0463701375,0.0202906039,1.71133161 +-1.08284354,2.43148756,1.08284354,0.00096951169,0.103046894,0.0459253266,-0.099196434,-0.0784441978,0.0201683305,1.53140163 +-0.0992607474,2.43152332,0.0992607474,0.000363616797,0.184153438,0.0993394926,-0.443803251,-0.0464948006,0.0201300327,0.141088411 +-1.18767917,2.43154407,1.18767917,0.000850499724,0.0655763075,0.0274551194,0.026513163,-0.102377683,0.0201732051,1.67975092 +1.22884226,2.43164039,-1.22884214,3.65083615e-05,0.045606032,0.0220790617,-0.128527433,-0.0308941808,0.0202913806,1.7378763 +0.136422381,2.43207407,-0.136422381,5.73523248e-05,0.199199542,0.104267947,-0.536175728,-0.0611298829,0.0201432575,0.193240538 +0.208767265,2.43233538,-0.20876725,0.000909447146,0.193663523,0.0993191302,-0.512177467,-0.0579011291,0.0201458186,0.295314491 +-1.21012557,2.43251848,1.21012557,0.000517174252,0.0554423854,0.0232981779,-0.00924460404,-0.0501326956,0.0201737303,1.71150255 +-1.22866082,2.43257666,1.22866082,0.000233376777,0.043261461,0.0204042755,-0.0594433509,-0.037245743,0.020174263,1.73771727 +0.106555931,2.43280721,-0.106555939,0.000130042463,0.195891708,0.10575708,-0.536372483,-0.0381425098,0.020142369,0.150748819 +1.1874156,2.43294644,-1.1874156,0.000124165541,0.0596780665,0.0248862691,0.028187098,-0.0995778367,0.0202893019,1.67928541 +-0.960987866,2.43316531,0.960987866,0.00191216602,0.146951526,0.0696231946,-0.0746325999,0.00823648553,0.0201607347,1.35952497 +1.2100122,2.43317485,-1.2100122,0.000218451503,0.0549467392,0.0232632291,-0.0419713333,-0.0464422107,0.0202893,1.71124303 +1.22884059,2.43336368,-1.22884047,0.000101215264,0.0456762388,0.0220735427,-0.131614611,-0.0309154782,0.0202900507,1.73787165 +0.311914295,2.43373084,-0.311914295,0.00336126448,0.184084028,0.0930170044,-0.428568006,-0.0223151334,0.020155279,0.443856746 +1.18611073,2.4348495,-1.18611085,0.00115567038,0.0605510511,0.0252995007,0.0280351676,-0.0994277969,0.0202878416,1.67743051 +0.168411657,2.43544531,-0.168411672,0.00123008084,0.197206736,0.101887077,-0.524065971,-0.0648094341,0.0201412607,0.240051523 +-0.790341377,2.43546486,0.790341377,0.00435874891,0.160633802,0.078216657,0.0156654157,0.225350231,0.0201445315,1.11820126 +-0.695642352,2.43572569,0.695642352,0.00444282452,0.1632016,0.0799968839,0.0405953936,0.275824666,0.0201397687,0.984405458 +-0.246090963,2.43575907,0.246090963,0.000401623256,0.176872998,0.0891402587,-0.415030032,-0.0976729691,0.0201333873,0.350247383 +-0.158339232,2.43600225,0.158339232,0.000756315596,0.187918887,0.096848689,-0.430168748,-0.0830418915,0.0201167557,0.224155143 +-0.88813293,2.43620634,0.88813293,0.00169411872,0.157077014,0.0757755116,-0.0305403154,0.107529633,0.0201522,1.25663781 +0.136377618,2.4363091,-0.136377618,0.000303986482,0.198997021,0.104204021,-0.533238947,-0.061061997,0.0201399103,0.193062067 +0.212420523,2.43784094,-0.212420523,6.10447314e-05,0.193365008,0.0991361514,-0.50727278,-0.0564131252,0.0201419573,0.300681204 +0.210051596,2.43847203,-0.210051596,0.000722140539,0.193645805,0.0993321538,-0.508030832,-0.0566508733,0.0201413538,0.297246248 +0.217259824,2.43906164,-0.217259809,0.00105775066,0.192939341,0.098859258,-0.504130125,-0.0542756021,0.0201414973,0.307333201 +0.128773779,2.43988895,-0.128773779,0.000234720661,0.198315665,0.104545489,-0.529844522,-0.0558830723,0.0201369505,0.182167709 +0.141673833,2.44010901,-0.141673833,0.000378590921,0.19877629,0.10387814,-0.530659556,-0.0613671169,0.0201371033,0.200470164 +-0.798752844,2.4402895,0.798752785,0.000408390071,0.160379171,0.078053847,0.0140469745,0.22171855,0.0201414153,1.13012803 +1.10912931,2.44028997,-1.10912931,0.00119783555,0.0874692574,0.038248498,-0.0612356961,-0.0835481212,0.0202840697,1.56856346 +0.0687560216,2.44090271,-0.0687560216,9.91595152e-05,0.245778084,0.17408289,-0.444333047,0.0542002283,0.0201327186,0.0976092219 +0.0962447077,2.4411881,-0.0962447077,0.000231077254,0.193519801,0.106396802,-0.52392,-0.0281775631,0.0201354176,0.13658002 +0.0806776583,2.44130683,-0.0806776658,0.000226146934,0.193438858,0.114345498,-0.505285919,0.0079272138,0.0201345794,0.114504598 +0.691333652,2.44182944,-0.691333592,0.00600640103,0.164283022,0.081178546,0.0171681866,0.351180732,0.0201862827,0.97848177 +-0.115373775,2.44207358,0.115373775,0.000157282106,0.187768862,0.0992298424,-0.439914346,-0.0621132925,0.020116603,0.163207754 +0.211571157,2.44212461,-0.211571142,0.00125145726,0.19348152,0.0992419198,-0.506009698,-0.0555576459,0.0201387014,0.299355477 +-0.126610637,2.44222546,0.126610637,0.000384903949,0.188674867,0.0987103283,-0.434796631,-0.0710806996,0.0201146174,0.180519164 +-0.0829861239,2.44296288,0.0829861239,0.000258433371,0.184881553,0.106643856,-0.399099529,-0.00474917796,0.0201192852,0.117954031 +-0.0986080915,2.44309402,0.0986080915,0.000224161166,0.184147894,0.0996613875,-0.432414949,-0.0458606258,0.0201195218,0.140136033 +0.970439315,2.44317389,-0.970439315,0.00170540763,0.147585228,0.0709392279,0.0360402539,0.0809071958,0.0202542581,1.37302935 +-0.0710790381,2.44324613,0.0710790381,0.000112548179,0.246641427,0.173841611,-0.326394916,0.044315692,0.0201130565,0.101039872 +-0.150146455,2.44377923,0.150146455,0.00036391418,0.188376009,0.0975090414,-0.427191764,-0.0788241252,0.0201101992,0.212613389 +1.19021583,2.44604135,-1.19021583,0.000755807152,0.0619270205,0.0260761604,0.00574995577,-0.0945611745,0.0202789456,1.68322253 +1.21132708,2.44667149,-1.21132708,0.000843926682,0.0561090186,0.0238511097,-0.0744924024,-0.0446081012,0.0202787761,1.71307826 +-0.155975223,2.44705343,0.155975223,0.000302647852,0.187992349,0.0970987231,-0.42479673,-0.0812914073,0.0201073885,0.221058905 +1.22883403,2.44718075,-1.22883403,0.000382194703,0.0461657718,0.022535827,-0.158277109,-0.0304286908,0.0202792995,1.7378372 +-0.791438937,2.44718599,0.791438878,0.00477068312,0.16050677,0.0781832933,0.0182468612,0.231741771,0.0201359801,1.11991763 +-0.352641046,2.44721937,0.352641046,0.00563103566,0.170902699,0.0854491293,-0.305464178,-0.0385435708,0.0201439597,0.501078546 +0.0965805128,2.44724011,-0.0965805054,0.000189792758,0.193390965,0.10635291,-0.518239498,-0.0291290395,0.0201305561,0.137055814 +0.0808374956,2.44771481,-0.0808375031,0.000238718203,0.193419814,0.114248566,-0.49778235,0.00709841587,0.0201293081,0.114726253 +0.0687623173,2.44803739,-0.0687623173,0.000104617604,0.245312124,0.17322582,-0.435417175,0.0541186705,0.0201266259,0.0976117998 +-0.109890088,2.44835734,0.109890088,0.000145012629,0.186795726,0.0994931906,-0.435483783,-0.0571303777,0.0201123878,0.155492887 +-0.982326567,2.44900513,0.982326567,0.00172045268,0.142307758,0.0669230819,-0.0789572597,-0.00198435271,0.0201512948,1.38939428 +-0.682862818,2.44920802,0.682862818,0.00518266391,0.163422331,0.0802413002,0.0389767252,0.284811109,0.020129811,0.966427803 +0.103762105,2.44965959,-0.103762105,0.000146026578,0.194574594,0.105720699,-0.520168304,-0.0350327492,0.0201289076,0.14684242 +-0.256644487,2.44969368,0.256644487,0.00203940785,0.176074803,0.0888051167,-0.401670396,-0.0915445462,0.0201260187,0.363947153 +-0.694106638,2.45004892,0.694106579,0.00434386358,0.163124442,0.0800091997,0.0445054024,0.285163999,0.0201291759,0.982438207 +-0.113165922,2.45035172,0.113165922,0.00015295601,0.187564969,0.0994417518,-0.435176879,-0.0603055619,0.020109741,0.160215929 +-0.110873759,2.45204735,0.110873759,0.000135580427,0.187048435,0.0994955525,-0.432704985,-0.0581502505,0.0201088693,0.156951696 +-0.147607908,2.4520998,0.147607908,0.000293944089,0.188396215,0.0977851003,-0.422648966,-0.077825278,0.0201031826,0.20894748 +1.08632874,2.45341706,-1.08632874,0.00164026266,0.101053767,0.0451668277,-0.0553716384,-0.0585314035,0.0202731863,1.53631806 +0.222691745,2.45437002,-0.222691745,0.00112996786,0.192648545,0.0987224206,-0.499070019,-0.0489625372,0.0201308895,0.314961731 +-0.579277098,2.45472884,0.579277098,0.00486313645,0.165531442,0.0819518864,-0.0186833646,0.237934321,0.0201267246,0.82011652 +0.281820625,2.45504475,-0.281820625,0.00482867798,0.18715483,0.0949788466,-0.459771991,-0.0344275609,0.0201366246,0.400887072 +0.112516351,2.45546675,-0.112516351,0.0002450014,0.196517453,0.104982272,-0.518174171,-0.0454067439,0.0201244857,0.159757629 +-0.113296807,2.45562935,0.113296807,0.000195421206,0.187429816,0.0994264334,-0.432064354,-0.0604056641,0.0201054737,0.160342753 +-0.0706525743,2.45695162,0.0706525743,0.000135129943,0.24714981,0.174299493,-0.31284216,0.0453772545,0.020099882,0.100824371 +-1.19035947,2.45709085,1.19035947,0.00058056484,0.0706232041,0.0301334523,-0.00343637355,-0.0993579179,0.0201561674,1.68344331 +-0.0827539712,2.45713377,0.0827539712,0.000310196192,0.184663475,0.106621154,-0.384514689,-0.0053558005,0.0201061517,0.118081205 +-0.0985940099,2.45751739,0.0985940099,0.000272789242,0.184242174,0.0997596756,-0.41880542,-0.0460130423,0.0201065931,0.140652105 +-0.165893897,2.45753717,0.165893897,0.000593392353,0.186184585,0.0959863365,-0.421845973,-0.0830805153,0.0201012492,0.234725609 +-0.806179285,2.45756578,0.806179285,0.00237455289,0.160440072,0.078088522,0.019491069,0.225290626,0.0201291665,1.14028823 +-0.241723284,2.45780706,0.241723269,0.00153812137,0.177124649,0.0896995217,-0.407765925,-0.0934706926,0.0201170035,0.342745364 +-1.21156335,2.45821333,1.21156335,0.000711569737,0.0590605885,0.0250008497,-0.0699322,-0.0495069735,0.0201562941,1.71343136 +-1.22873783,2.45822334,1.22873783,0.000318024569,0.0452671573,0.021531336,-0.122661598,-0.0367340297,0.0201565847,1.73772001 +0.109639689,2.45826793,-0.109639689,0.000173622189,0.195547521,0.105053633,-0.51515168,-0.0422703028,0.0201221444,0.155535266 +0.794156075,2.45848131,-0.794156075,0.00505992491,0.159468725,0.0781777352,0.0460668504,0.309394538,0.0201982837,1.12356329 +0.113844097,2.46128321,-0.113844097,0.000321479019,0.196454555,0.104909487,-0.513750494,-0.0455210805,0.0201197863,0.161358058 +-0.188287288,2.46254539,0.188287273,0.00147282344,0.182852849,0.0936402529,-0.422967702,-0.0903344974,0.0201013517,0.266914546 +-0.124806076,2.46265769,0.124806076,0.000427543302,0.188668638,0.099139221,-0.422394872,-0.0700907782,0.0200968143,0.177563876 +1.13009131,2.46297455,-1.13009143,0.00156896096,0.0839138627,0.036536403,-0.0298811942,-0.0963313356,0.020265786,1.59829068 +-0.210749865,2.46492624,0.210749865,0.00141982047,0.179915369,0.0917375982,-0.414066792,-0.0898172408,0.0201040823,0.298361063 +0.098036617,2.46496415,-0.098036617,0.000413257105,0.193641961,0.105980016,-0.501483023,-0.0365812294,0.0201161448,0.140816689 +0.0678597093,2.46515059,-0.0678597093,0.000196182606,0.243786037,0.169678092,-0.415211529,0.0526269786,0.0201121047,0.0975036174 +0.0810046792,2.46519423,-0.0810046792,0.000459521456,0.192707926,0.112711057,-0.47827214,-0.000780628528,0.0201148055,0.116370261 +-1.06696951,2.46540713,1.06696951,0.00132978649,0.117003731,0.0532366186,-0.0830171853,-0.0517279766,0.020144714,1.50916195 +0.978893697,2.46551466,-0.978893638,0.00155423896,0.145679086,0.0698823482,0.0410211869,0.076969251,0.0202404913,1.38462162 +0.133324116,2.46710587,-0.133324116,0.000594559475,0.198187381,0.104119919,-0.510270655,-0.0614577755,0.0201155711,0.190903991 +-1.11885071,2.46718907,1.11885071,0.00133588933,0.0994446725,0.0441981368,-0.0506620966,-0.107710809,0.0201450344,1.5824461 +0.329052031,2.46745539,-0.329052031,0.00426377077,0.183209807,0.0925721452,-0.413689673,0.00513358973,0.0201316234,0.466757953 +-0.797382176,2.47034216,0.797382236,0.00441247644,0.160614818,0.0782993063,0.0267955847,0.245779261,0.0201191939,1.12788546 +-0.0988681167,2.47412801,0.0988681167,0.000311940123,0.183989018,0.0998026803,-0.404544473,-0.047404971,0.020091353,0.140593588 +0.367970288,2.47433805,-0.367970288,0.00230348017,0.179436579,0.0901698992,-0.366462529,0.0333498642,0.0201287735,0.525214672 +-0.0829979032,2.47445059,0.0829979032,0.000264473812,0.184345603,0.106723666,-0.366194367,-0.00609634072,0.0200895127,0.118017986 +-0.0708753392,2.47492313,0.0708753467,0.000114699476,0.248463959,0.174936265,-0.293136895,0.0451305732,0.0200818069,0.100762375 +-1.0924871,2.47509813,1.0924871,0.00105082593,0.111367315,0.0503589883,-0.0663080364,-0.0785757825,0.0201384742,1.54506612 +0.169083983,2.47510386,-0.169083983,0.00123019773,0.196736068,0.101939633,-0.500513375,-0.0654167458,0.0201102011,0.240600318 +0.12363255,2.47616029,-0.12363255,0.000815487467,0.19662185,0.104178719,-0.505330443,-0.0519254878,0.0201082081,0.1761702 +-1.0476985,2.47662044,1.0476985,0.00141022296,0.12475761,0.0573072173,-0.0796396583,-0.0316439942,0.0201360565,1.48180842 +1.11846066,2.47690439,-1.11846066,0.00156684371,0.0940975696,0.0418132581,-0.0344596282,-0.083401978,0.0202541705,1.58184803 +1.0078609,2.47712088,-1.0078609,0.00245156907,0.137536973,0.0652588159,0.0200670436,0.0495390408,0.0202395301,1.42560863 +-0.312740266,2.47724199,0.312740266,0.00376380049,0.173124194,0.0872480571,-0.345944196,-0.0586052202,0.0201200861,0.444049001 +-1.17056656,2.47764277,1.17056656,0.00101805083,0.0818075836,0.0353493914,0.000955513678,-0.119733222,0.0201410502,1.65575576 +0.157586128,2.47780442,-0.157586142,0.000625623914,0.197366685,0.102687247,-0.50342834,-0.0627392456,0.0201079734,0.224410698 +-0.136502773,2.47782779,0.136502758,0.000523952185,0.188159764,0.0984484479,-0.41334796,-0.0739339665,0.0200838987,0.193619937 +-0.151219785,2.47881842,0.151219785,0.000427372288,0.187048882,0.0971362442,-0.413781196,-0.0803980082,0.0200841911,0.215309545 +-1.06440914,2.47909284,1.06440902,0.000454143505,0.120983832,0.055302009,-0.0813059136,-0.0468804836,0.0201351847,1.50554347 +-0.936842144,2.47959328,0.936842144,0.00229575392,0.151645005,0.072508283,-0.0322937295,0.0735598803,0.0201245043,1.32506061 +1.13364673,2.47992229,-1.13364673,0.00171630189,0.0880408287,0.0388047621,-0.0219898261,-0.0894578099,0.0202520937,1.60332048 +-1.11179554,2.48024035,1.11179554,0.0016990701,0.10675402,0.0480419211,-0.0552817434,-0.101925075,0.0201353692,1.5724597 +-0.18547529,2.48044372,0.18547529,0.000298405706,0.182732224,0.0938670337,-0.416161656,-0.0864097923,0.0200880636,0.2633937 +0.501469195,2.48074651,-0.501469135,0.00666670408,0.172833145,0.0866523311,-0.176506847,0.202859029,0.0201292261,0.714563012 +-0.123454794,2.4807601,0.123454794,0.000452411768,0.187979728,0.0991386771,-0.412596107,-0.0689171255,0.0200826507,0.175290644 +-0.483502626,2.48171139,0.483502626,0.005357699,0.168020666,0.0840330571,-0.144891694,0.135556892,0.0201201085,0.685254812 +-1.13270092,2.4836762,1.13270092,0.00142813183,0.0989086255,0.0439678989,-0.0368373953,-0.110332921,0.0201342963,1.60196149 +-0.0708549917,2.48370576,0.0708549917,0.000147090643,0.24820973,0.174555048,-0.285112858,0.0450172611,0.020074334,0.100962348 +-0.0830546916,2.48386908,0.0830546916,0.000338983693,0.184141651,0.106631376,-0.357335627,-0.00686397869,0.0200816393,0.118383422 +-0.0990279466,2.48406339,0.0990279466,0.000270825345,0.184035972,0.0999193341,-0.396210223,-0.0483702943,0.0200835317,0.141171083 +-0.192404404,2.48436832,0.192404389,0.00033441087,0.181577906,0.0931809098,-0.416197002,-0.0853281319,0.0200861003,0.273168236 +-0.171396509,2.48444891,0.171396524,0.000621580752,0.184143752,0.095087491,-0.413081706,-0.0840526447,0.0200828519,0.242768005 +-1.22866237,2.48458171,1.22866225,0.000217898443,0.0473971441,0.0225694403,-0.184916928,-0.0365946889,0.0201383755,1.73772287 +-1.21199477,2.48475003,1.21199489,0.000484795368,0.063014254,0.0268811341,-0.128161669,-0.0502665266,0.0201382171,1.71414995 +-1.19199228,2.48495173,1.19199216,0.000341629318,0.0760394111,0.0330327079,-0.0324772559,-0.0996173397,0.0201375391,1.6858604 +-0.107481875,2.48538399,0.107481875,0.000374457333,0.185388207,0.0996268541,-0.403429985,-0.0554068498,0.0200805608,0.152632087 +0.102367029,2.48576975,-0.102367029,0.000128489453,0.19315429,0.105193928,-0.4883762,-0.0344076045,0.0200992562,0.144797221 +0.774037242,2.48645306,-0.774037242,0.00530544063,0.159730285,0.0785380229,0.0467626527,0.34374395,0.020170426,1.0954541 +-0.280208915,2.48779058,0.280208886,0.00166708557,0.174493283,0.0883059576,-0.379638165,-0.073414214,0.0201060325,0.400744021 +-1.15528417,2.48791122,1.15528417,0.000674207928,0.0900318548,0.0394215621,-0.0143261235,-0.121257007,0.0201330204,1.63420784 +-1.18466187,2.4883101,1.18466187,0.000474747241,0.0797031671,0.0347177982,-0.0283909589,-0.104990289,0.0201347694,1.67542255 +-0.145800397,2.48904228,0.145800397,0.000254565501,0.187663913,0.0978614241,-0.407007098,-0.0788457468,0.0200750064,0.207381353 +-0.416457951,2.48960447,0.416457951,0.00397371314,0.170741349,0.0858959034,-0.231596142,0.0493969545,0.0201170985,0.590418637 +0.0688056573,2.49023271,-0.0688056499,0.000133168112,0.246677086,0.171049014,-0.384988904,0.0510226265,0.0200898815,0.0974819958 +-0.970843315,2.49032831,0.970843375,0.00223429874,0.146143794,0.0691153109,-0.0526114106,0.0328703895,0.0201212615,1.37410581 +-1.01984775,2.49044156,1.01984775,0.00107750692,0.134880438,0.0626863837,-0.0768754631,-0.00829996821,0.0201253835,1.44295263 +0.0822246149,2.49092722,-0.0822246224,0.000305295107,0.193234339,0.113442786,-0.455436289,-0.000797545479,0.0200930946,0.116440251 +0.164749414,2.49120736,-0.164749414,0.000380881916,0.197009236,0.102305949,-0.493923753,-0.0629947931,0.0200974774,0.235114247 +0.0997123122,2.49156117,-0.0997123048,0.000222671501,0.192499191,0.105306283,-0.481920868,-0.0323206224,0.0200943835,0.141153231 +0.101619065,2.49199414,-0.101619065,0.000305641064,0.192596555,0.10513968,-0.482831836,-0.0332854874,0.0200941507,0.143806979 +-0.332441479,2.49224091,0.332441479,0.00412767148,0.172668979,0.0870700702,-0.335263997,-0.0372070074,0.0201111753,0.472919762 +-0.117002107,2.49307537,0.117002107,0.000300114276,0.18724215,0.0993214622,-0.404561371,-0.0637232289,0.0200734306,0.167155802 +0.0996098742,2.49326086,-0.0996098742,2.77451982e-05,0.192456931,0.105311923,-0.480088741,-0.0326852165,0.0200929884,0.14110373 +0.0821179673,2.49326491,-0.0821179748,6.05134555e-05,0.19318971,0.113448553,-0.452545643,-0.00105284899,0.0200911053,0.116396278 +1.05553746,2.49337196,-1.05553746,0.00241479394,0.127635032,0.0595461875,-0.0177509822,-0.0124456175,0.0202376824,1.49283826 +-1.00008655,2.49343014,1.00008655,0.00236835144,0.139280811,0.065153487,-0.0675029308,0.00790698081,0.0201214328,1.41474628 +0.0687135085,2.49344087,-0.0687135085,3.35428122e-05,0.246792093,0.17109023,-0.380911201,0.0507747717,0.0200870447,0.0974728316 +0.100301787,2.4938755,-0.100301787,4.24128302e-05,0.192439958,0.105197854,-0.480725944,-0.0328341052,0.0200925581,0.142015442 +-0.371727347,2.49484491,0.371727347,0.00270937523,0.171870857,0.0866475478,-0.29215005,0.00657232478,0.0201112721,0.526656568 +0.178667545,2.49513721,-0.178667545,0.00148878177,0.195729643,0.101361498,-0.489144832,-0.0589822792,0.0200957581,0.253897965 +-1.22869885,2.49520016,1.22869885,0.000244563911,0.0478738621,0.0232364759,-0.210344702,-0.0349792801,0.0201315247,1.73772335 +-1.21359992,2.49536848,1.21359992,0.000539010216,0.0638856143,0.0272468794,-0.157143727,-0.0474025235,0.020131439,1.71636963 +-0.183561385,2.49545312,0.183561385,0.00115581672,0.181993559,0.0937236771,-0.412762105,-0.0850305036,0.0200764686,0.260424793 +0.0996462107,2.49555612,-0.0996462107,0.000308825256,0.192329243,0.105297022,-0.478316903,-0.0325796194,0.0200910922,0.141008854 +-1.19547319,2.49556994,1.19547319,0.000585475645,0.0781070665,0.0340244099,-0.059466511,-0.0914726406,0.0201308485,1.69073367 +0.0822016448,2.49646163,-0.0822016522,0.000300636806,0.193218619,0.113578483,-0.449132383,-0.000841141387,0.0200883783,0.116347216 +0.0688584447,2.49782348,-0.0688584521,0.0001303975,0.2472395,0.171657041,-0.375793189,0.0508984402,0.0200831108,0.0974856913 +-0.512017012,2.49798107,0.512017012,0.00283026998,0.167242184,0.083691217,-0.112473905,0.179554284,0.0201084856,0.725832164 +-0.151267558,2.49801397,0.151267558,0.000555435079,0.186808348,0.0972925052,-0.404725313,-0.081305705,0.0200692378,0.21512571 +1.2286731,2.49805355,-1.2286731,0.000290804048,0.0481128767,0.0241031256,-0.255705297,-0.0287650786,0.0202396587,1.73769855 +1.2156198,2.49815059,-1.2156198,0.000646043627,0.0608544126,0.0262493305,-0.194643408,-0.0383249409,0.020238569,1.7192378 +1.19994199,2.4982655,-1.19994199,0.000479440438,0.0709241629,0.0309410095,-0.0750782266,-0.0765635446,0.0202375688,1.69706523 +-0.245768338,2.49891853,0.245768338,0.00139673322,0.17690511,0.0902239755,-0.395559371,-0.0801121891,0.0200903248,0.35131225 +0.137898892,2.49896765,-0.137898892,0.00063753617,0.197683394,0.10398604,-0.489167988,-0.059189342,0.0200896095,0.196068957 +0.947621703,2.50198746,-0.947621703,0.00356419128,0.149988204,0.0724882409,0.0785144791,0.131740749,0.0202026013,1.34147263 +0.154868782,2.50203538,-0.154868782,0.000740055926,0.197161019,0.102970518,-0.487313211,-0.0604569912,0.0200879257,0.219675541 +0.751602948,2.50251293,-0.751603007,0.00669668708,0.160834312,0.0793727785,0.0318208598,0.356057644,0.0201520137,1.0636338 +1.07054579,2.50254226,-1.07054567,0.0017240427,0.122079551,0.05648252,-0.0234902482,-0.0313118473,0.0202328954,1.51408124 +-0.198209539,2.50329566,0.198209539,0.00139418256,0.180513233,0.0928070322,-0.412053645,-0.0833104253,0.0200727638,0.280701965 +-1.17029047,2.50461102,1.17029047,0.00106903713,0.0925136209,0.0409193709,-0.00811233185,-0.110781059,0.0201234072,1.65521741 +1.19263887,2.50530696,-1.19263887,0.000735176553,0.0759855211,0.033372663,-0.0510394722,-0.0737999752,0.0202319603,1.68666792 +-0.576227367,2.50547147,0.576227367,0.00293527148,0.165610909,0.0823998526,-0.0406160802,0.26282835,0.0200926475,0.816543639 +1.22870445,2.50583696,-1.22870445,0.000219966198,0.0481962487,0.0244824849,-0.270433009,-0.0274147019,0.0202334709,1.73772132 +1.21668971,2.50597167,-1.21668971,0.00048415846,0.0613498837,0.0264997091,-0.214731157,-0.0353448726,0.0202323869,1.72072959 +1.2022754,2.50613379,-1.20227551,0.000599664985,0.0729669407,0.0319601186,-0.097982958,-0.0694673806,0.0202313289,1.7003442 +-0.137553096,2.50706959,0.137553096,0.000483003067,0.187330067,0.0983461663,-0.394788325,-0.0762451664,0.020061072,0.195052043 +-0.102273829,2.50724506,0.102273829,0.000149640691,0.183782056,0.0999562591,-0.377905965,-0.0541719198,0.0200626403,0.144787997 +-1.02979183,2.5073843,1.02979183,0.00070792,0.136071667,0.0633870512,-0.0702585429,-0.0145506924,0.0201138388,1.45673251 +0.448391467,2.50806308,-0.448391438,0.00596235925,0.174461529,0.0877384394,-0.280541778,0.149921656,0.0201041885,0.637764752 +-0.0992142856,2.50811529,0.0992142856,0.000188153281,0.183246687,0.100055143,-0.37403968,-0.0518096872,0.0200625416,0.140593588 +-0.0833851993,2.508564,0.0833852068,0.000263303751,0.182942688,0.10648264,-0.332690984,-0.00787455495,0.0200581346,0.118101299 +-1.05928516,2.50868773,1.05928528,0.000673810369,0.129492596,0.0597729273,-0.0744044781,-0.0403795764,0.0201141741,1.49807858 +1.17285454,2.50892377,-1.17285454,0.00178485934,0.0838321447,0.0370807908,0.00867169909,-0.0777026489,0.0202292316,1.65878248 +0.357265145,2.50897026,-0.357265145,0.00413226848,0.180406958,0.0910618678,-0.391984582,0.042031806,0.0201019812,0.508200884 +0.881682694,2.50911498,-0.881682694,0.00333262305,0.154773757,0.0752956271,0.0863209143,0.23359473,0.020179322,1.24698126 +-0.0712991655,2.5091176,0.0712991655,0.000113796428,0.247862682,0.175364658,-0.259023756,0.0451900661,0.0200487524,0.100924373 +0.986072719,2.50951171,-0.986072719,0.00098962232,0.143858165,0.0689009875,0.0575968772,0.082432285,0.0202093665,1.39549148 +-0.0712624118,2.51025271,0.0712624118,2.69048924e-05,0.2479323,0.175461307,-0.257958204,0.0452874005,0.0200478528,0.100898415 +-0.0833131745,2.51047397,0.0833131671,9.44705826e-05,0.18296805,0.106557772,-0.330722749,-0.00781359896,0.0200566091,0.118050262 +0.867889643,2.5105207,-0.867889643,0.00324745709,0.155369118,0.075706467,0.083020404,0.250516266,0.0201749038,1.22740602 +0.3938483,2.51064825,-0.3938483,0.00738347881,0.177908152,0.0895963907,-0.353970319,0.0859056711,0.0201006383,0.559408307 +-0.0990528837,2.51080155,0.0990528837,9.89415275e-05,0.183222204,0.100120641,-0.371484429,-0.0518987514,0.020060515,0.140452877 +-0.125134572,2.51106715,0.125134587,0.000359919271,0.187124148,0.0989887863,-0.393310517,-0.0715484172,0.0200589448,0.177605182 +-0.599229991,2.51132536,0.599229991,0.0076626041,0.164768487,0.0818454102,-0.01754147,0.286321402,0.0200871043,0.849123597 +0.883163154,2.51196861,-0.883163154,0.000376905809,0.154609486,0.0752121881,0.0875606015,0.232830048,0.0201772582,1.24909675 +0.773885369,2.5121367,-0.773885369,0.00238513015,0.15952003,0.0785219297,0.0495851114,0.353920221,0.0201489329,1.09540117 +1.12031198,2.51221919,-1.12031198,0.00113146217,0.105788834,0.0480300635,-0.0666684359,-0.0816735923,0.0202280041,1.58447552 +1.13213062,2.51237941,-1.13213062,0.000912754913,0.104295485,0.047456108,-0.0574995056,-0.0686351955,0.0202274248,1.60117745 +-0.849169254,2.51242518,0.849169254,0.00313925068,0.160040647,0.0777513683,0.0241191406,0.210994452,0.0200924501,1.20282269 +0.967857599,2.51291347,-0.96785754,0.00160858326,0.146405071,0.0704201311,0.0704622269,0.107953236,0.0202013757,1.36931562 +-0.104278192,2.51305747,0.104278192,0.000110781679,0.184274584,0.0999705717,-0.376429677,-0.0553694442,0.0200581532,0.147522956 +-1.11656249,2.51330066,1.11656249,0.00121482578,0.116904065,0.0534061641,-0.0763403922,-0.119413123,0.0201136116,1.57917714 +0.885908842,2.51375866,-0.885908842,0.00233977847,0.154408231,0.0751009583,0.0881300196,0.229530767,0.0201765485,1.25291824 +-0.494434446,2.51398945,0.494434446,0.00109426421,0.168284073,0.0845167264,-0.142884016,0.168890849,0.0200979561,0.702794433 +0.882371366,2.51440597,-0.882371366,0.00104548468,0.154664949,0.07525599,0.0890267268,0.234894261,0.020175118,1.24801624 +-0.071355544,2.51446819,0.071355544,0.000111601577,0.247825533,0.175559223,-0.253513753,0.0452937633,0.020044053,0.100932747 +0.880607426,2.51454091,-0.880607486,0.00182755687,0.154760271,0.0753177404,0.0886090249,0.237493113,0.0201747343,1.24549353 +0.267962456,2.51519418,-0.267962456,0.00193011551,0.189288408,0.0966746882,-0.463247091,-0.0220999531,0.02009123,0.379700035 +-1.13059759,2.51520658,1.13059759,0.00092793291,0.113810197,0.0517893396,-0.063963227,-0.106371768,0.0201139189,1.59897399 +-0.113180816,2.51546526,0.113180809,0.000136971299,0.186396748,0.0997285321,-0.385307014,-0.0609977916,0.0200562347,0.160605267 +-1.06237376,2.51711321,1.06237376,0.000954796618,0.130580932,0.0603647567,-0.0706941709,-0.0444646031,0.0201083682,1.50248146 +1.0584594,2.51754141,-1.0584594,0.00204457762,0.128893912,0.0602491833,-0.00656512845,-0.0142385187,0.0202202369,1.49700904 +-1.01251566,2.51773691,1.01251566,0.00212761411,0.138941973,0.064965643,-0.0587642193,0.00804525614,0.0201048292,1.43235254 +-0.0833924711,2.51780105,0.0833924711,0.000254748855,0.182728589,0.106622994,-0.322896987,-0.00760248024,0.0200502798,0.117969066 +0.288696557,2.51801229,-0.288696557,0.00251846691,0.187516347,0.0955723524,-0.443431556,-0.00571976323,0.0200909674,0.408693343 +0.209348515,2.51839018,-0.2093485,0.00308817299,0.193787247,0.0998185351,-0.47287941,-0.0525085777,0.0200816728,0.298795909 +0.141886741,2.51864958,-0.141886741,0.000365807849,0.197244883,0.103651538,-0.475916266,-0.0626073033,0.0200740844,0.203076974 +0.119833156,2.5190618,-0.119833156,0.000445926387,0.19446376,0.103583947,-0.473461509,-0.0491443686,0.020072367,0.169549495 +-0.110754363,2.52001286,0.110754371,0.000106641564,0.185987577,0.0999317244,-0.378709555,-0.0585277975,0.0200523306,0.15721482 +-0.1179941,2.520859,0.1179941,0.000361689716,0.186480388,0.0994943008,-0.382829189,-0.0654671118,0.0200517531,0.167069346 +0.119043112,2.52114534,-0.119043112,3.88266089e-05,0.194364488,0.10361585,-0.471506029,-0.0490466915,0.0200706236,0.168492466 +0.0810873061,2.52115941,-0.0810873061,0.000433588226,0.193327576,0.114369743,-0.417784721,-0.00192761421,0.0200670678,0.115943976 +0.0978068709,2.52132511,-0.0978068709,0.000456060254,0.192095205,0.105881475,-0.452899575,-0.0347156078,0.0200694557,0.139881253 +0.0682593957,2.52136207,-0.0682594031,0.000181075389,0.248665243,0.173980132,-0.34768796,0.0500724502,0.0200621951,0.0975800604 +0.119658142,2.52150106,-0.119658135,9.68553504e-05,0.194325626,0.103539333,-0.471753448,-0.0491587929,0.0200704038,0.169399977 +0.117762886,2.52153325,-0.117762886,0.00025732076,0.194195926,0.103778817,-0.469802141,-0.0482062995,0.0200702157,0.166615114 +0.790177345,2.52254033,-0.790177345,0.00460814359,0.158582851,0.0779676586,0.0612364598,0.343326896,0.0201447718,1.11783695 +-1.0568639,2.52263379,1.05686402,0.000484889606,0.133292496,0.0618043393,-0.0710072741,-0.0376305394,0.0201043468,1.49469638 +0.119062342,2.52300024,-0.119062349,0.000246413721,0.194278926,0.103578575,-0.470048755,-0.0491247848,0.0200690813,0.168483764 +-1.19042969,2.52306247,1.19042969,0.000614886521,0.091569975,0.0406195037,-0.0699929222,-0.0832880586,0.0201129541,1.68376696 +0.258345336,2.52317715,-0.258345336,0.00151840108,0.190030217,0.097238414,-0.463863909,-0.0261787064,0.0200838465,0.365957677 +-0.0987904072,2.52318811,0.0987903997,0.000192984153,0.182967931,0.100393385,-0.359443665,-0.0517622605,0.0200505145,0.13974449 +0.1209241,2.52329969,-0.1209241,0.000310401054,0.194374159,0.103507914,-0.470818609,-0.0495492816,0.0200689733,0.171081468 +-0.110967398,2.52498126,0.110967398,8.31048383e-05,0.186153367,0.100053586,-0.375557035,-0.059761472,0.0200483855,0.157177225 +-0.222552538,2.52514482,0.222552538,0.00160382129,0.17790848,0.0913891867,-0.403571755,-0.0822935924,0.0200627372,0.315825492 +0.550456047,2.52521944,-0.550456047,0.00480089663,0.171583652,0.0863091126,-0.135202453,0.286737174,0.0200973805,0.782288432 +-1.05283332,2.52537274,1.05283332,0.000833356986,0.133979827,0.062179219,-0.068148084,-0.0322319977,0.020101998,1.4890058 +-0.514517665,2.52628279,0.514517665,0.00407302845,0.167547107,0.0841456279,-0.122262806,0.200225964,0.0200868398,0.729646564 +0.270589679,2.52668953,-0.270589679,0.000379201025,0.188845903,0.0964513347,-0.460674852,-0.020075269,0.020083027,0.38362658 +-0.139249846,2.52764177,0.139249846,0.000651427195,0.186030403,0.0979414657,-0.387884051,-0.0745624378,0.0200460386,0.198017687 +-1.16344833,2.52785969,1.16344833,0.00080764934,0.123141512,0.0577270091,-0.00936901476,-0.06181667,0.0201083198,1.64553726 +1.00456429,2.52788544,-1.00456417,0.00215713074,0.142399371,0.0680573657,0.0529185832,0.0583169311,0.0202008504,1.42107248 +-0.86615169,2.52803397,0.86615169,0.0021715234,0.15953213,0.0774019063,0.0258898716,0.199875742,0.0200824924,1.22638738 +1.1651988,2.52847958,-1.1651988,0.000785088283,0.115494683,0.0547879674,0.00894840527,-0.0152735626,0.0202140342,1.64795542 +-0.163273335,2.52954054,0.163273335,0.0015536265,0.184105277,0.0958947539,-0.398631006,-0.0815365463,0.0200472064,0.233575284 +-0.130652994,2.53035235,0.130652994,0.000620272127,0.186736852,0.098688066,-0.382874846,-0.0742088258,0.0200441219,0.185750693 +0.171453297,2.53091931,-0.171453297,0.000838869542,0.196737468,0.102357358,-0.469994783,-0.0602523535,0.0200647619,0.242848784 +1.18439746,2.53291225,-1.18439746,0.000598298153,0.101561263,0.046598617,-0.00803887844,-0.0495072417,0.0202099551,1.67504323 +-0.581508458,2.53377938,0.581508458,0.0043891957,0.165840983,0.0827943757,-0.0471504927,0.286907941,0.0200705584,0.824282765 +-1.22857022,2.53385353,1.22857022,0.000225358759,0.0485977829,0.025106756,-0.301445067,-0.0269610509,0.0201069042,1.73769462 +-1.21934009,2.53402996,1.21934009,0.000496594817,0.066083692,0.0281152781,-0.265188158,-0.0325712115,0.020106947,1.72463989 +-0.208970249,2.53407454,0.208970249,0.000577845378,0.179184124,0.0924171731,-0.406062067,-0.0799304247,0.0200530589,0.29796505 +-1.20826173,2.53424168,1.20826161,0.000648444111,0.0864145309,0.037850365,-0.167848468,-0.0531993732,0.0201065447,1.70897079 +-1.05325782,2.53434825,1.0532577,0.00082264049,0.135147229,0.062910676,-0.0623028651,-0.0296879467,0.0200952571,1.48956954 +0.146971881,2.53436255,-0.146971881,0.00093615416,0.196930528,0.103345647,-0.46709007,-0.0625513494,0.0200612675,0.208808035 +-0.465059727,2.53437185,0.465059757,0.00457248185,0.169778675,0.0856754482,-0.196341842,0.146911532,0.0200828798,0.659185529 +-0.274052322,2.53449249,0.274052322,0.00208024937,0.174746841,0.0891409963,-0.389145255,-0.063383311,0.0200685803,0.389922142 +-0.110962719,2.53546143,0.110962719,0.000249693258,0.185971379,0.100117281,-0.366556674,-0.0608566441,0.0200401805,0.157014221 +1.08522475,2.5355072,-1.08522475,0.00119060837,0.125065237,0.0588554405,-0.0194591768,-0.0921231359,0.0202115234,1.53484821 +-0.930413842,2.53620577,0.930413902,0.00226220838,0.153538704,0.0736680776,0.00182830542,0.120774381,0.0200833101,1.31618404 +-0.0710497797,2.53651357,0.0710497797,0.000111309077,0.248008892,0.176666707,-0.230359837,0.0460701436,0.0200256463,0.100981526 +-1.18380117,2.5366621,1.18380117,0.00036851663,0.110895663,0.0508479886,-0.0159499049,-0.0733516738,0.0201035608,1.67431879 +0.261908561,2.53667641,-0.261908561,0.00103119388,0.189525351,0.0969920829,-0.460081011,-0.0231071468,0.0200733654,0.370809495 +-0.0980317965,2.53667951,0.0980317965,0.000167504433,0.182896644,0.100763783,-0.345736772,-0.0505612567,0.0200399682,0.138996854 +-0.0828840733,2.53671575,0.0828840733,0.000219978479,0.1826462,0.107133806,-0.301337868,-0.00626082858,0.0200347714,0.117719606 +0.0688071102,2.53706646,-0.0688071102,0.000120165212,0.250135005,0.176330507,-0.328917384,0.0496598594,0.0200475194,0.0976826549 +-0.827248812,2.53736377,0.827248812,0.00266308384,0.160500571,0.0782146826,0.0415577665,0.26128909,0.0200717691,1.17170453 +-0.908791244,2.53737855,0.908791244,0.00198638788,0.157174259,0.0758889988,0.0162941087,0.149317473,0.0200802349,1.28614366 +0.0815146193,2.53774118,-0.0815146267,0.000276749575,0.193810791,0.115302786,-0.402011156,0.000126488972,0.0200520866,0.11571154 +-0.247800022,2.53774834,0.247800022,0.00162452448,0.176605999,0.090540722,-0.400502563,-0.0698013455,0.0200606566,0.352474868 +-0.0994712263,2.53834152,0.0994712189,5.16137843e-05,0.183323458,0.100773096,-0.346962631,-0.0522064827,0.0200385619,0.140826374 +0.0980459824,2.5386467,-0.0980459824,0.000327561109,0.191524237,0.105998836,-0.438589752,-0.0325729363,0.020054033,0.139167219 +-0.400559992,2.53925157,0.400559992,0.00502305757,0.172341824,0.0874094963,-0.278271705,0.062137939,0.0200819373,0.567948222 +1.13202679,2.53927588,-1.13202679,0.000342545856,0.374713063,0.204401433,-0.0324632525,-0.110743627,0.0202108622,1.60103202 +-0.0980219543,2.53957057,0.0980219543,0.000187213387,0.182800561,0.100804642,-0.34276706,-0.0513173975,0.0200374387,0.138874099 +-1.13169372,2.54067659,1.13169372,0.0003356706,0.394295573,0.218007505,-0.0255862437,-0.155663356,0.0201020762,1.60052407 +1.12294626,2.54071784,-1.12294626,0.00040154712,0.375176609,0.201313093,-0.0365648009,-0.155482784,0.0202102587,1.58820295 +-1.12088037,2.54089332,1.12088025,0.000436444825,0.409813404,0.2239905,-0.0314435661,-0.208069444,0.0201010015,1.58528411 +-0.0829010829,2.54130626,0.0829010829,0.000260400149,0.182430044,0.107138678,-0.296389997,-0.00594231905,0.0200303923,0.117583357 +0.653231859,2.54140449,-0.653231859,0.0116761429,0.166647479,0.0833778381,-0.0215725265,0.384711027,0.0201007165,0.927770436 +-0.0711590946,2.54195642,0.0711590946,0.000112329602,0.247569993,0.17641151,-0.225394607,0.046755936,0.0200202204,0.100970939 +-0.102183968,2.54307222,0.102183968,0.000113708993,0.183855116,0.100661583,-0.346944839,-0.054815799,0.0200347044,0.144566983 +0.990422964,2.54349661,-0.990422964,0.0021966435,0.144516796,0.0694309473,0.0782433823,0.083975777,0.0201847777,1.40098453 +-1.08007848,2.54413104,1.0800786,0.00104307185,0.142754659,0.0685345829,-0.0378844328,-0.106322847,0.0200903509,1.52751541 +-1.15782154,2.5441618,1.15782154,0.000288199721,0.385177672,0.227783039,0.0386460349,-0.0181302503,0.020099543,1.63757956 +1.15882576,2.54481244,-1.15882576,0.000302422501,0.380537719,0.226952791,0.0564652383,0.0378663056,0.0202039778,1.63894248 +0.594854355,2.54564953,-0.594854355,0.00595488865,0.170368284,0.0857076198,-0.0915935859,0.346170902,0.0200876016,0.844603717 +1.17754555,2.54620123,-1.17754543,0.000404520601,0.153572619,0.0778477862,0.0572110265,0.0168837178,0.0201990511,1.66535306 +1.07679951,2.54655242,-1.07679951,0.00105737522,0.13119863,0.0625829846,0.0050241556,-0.0837108493,0.0202023592,1.52294767 +-1.17729735,2.54666138,1.17729735,0.000321797939,0.163557082,0.0825721845,0.0525863059,-0.017087739,0.0200951342,1.66511321 +-0.967993557,2.54767823,0.967993557,0.00206740061,0.148844376,0.0708138049,-0.00936179049,0.0741075054,0.0200784951,1.36932039 +-1.07645726,2.54791212,1.07645726,0.000243774208,0.145926327,0.0704268217,-0.0330683142,-0.103486434,0.0200873557,1.5224005 +0.0811754614,2.54791832,-0.0811754614,0.000254391576,0.193468183,0.115273774,-0.38910675,-0.00045504421,0.0200431701,0.115697756 +0.0975233167,2.5480895,-0.0975233167,0.000163118777,0.191474676,0.106139772,-0.427423507,-0.0333193094,0.0200458746,0.138946265 +0.0686127096,2.54810858,-0.0686127096,0.00011653929,0.249568731,0.176424071,-0.315246344,0.0490146019,0.0200375728,0.0978378654 +0.102053732,2.54932785,-0.102053732,0.000316713413,0.1915593,0.105373032,-0.435054928,-0.0351403356,0.0200453196,0.145072073 +0.269511849,2.54951644,-0.269511878,0.00106756703,0.188405856,0.0963827372,-0.463714391,-0.0143440049,0.0200627781,0.381557643 +0.285310745,2.5497489,-0.285310715,0.002074196,0.187005281,0.0954523683,-0.461315483,0.000922229141,0.0200635735,0.403769791 +-0.21558702,2.55022049,0.21558702,0.00140229613,0.178625941,0.0922249928,-0.400772452,-0.0800729096,0.0200416874,0.306380272 +0.182298362,2.55149603,-0.182298347,0.00095235504,0.196215972,0.102000833,-0.457362682,-0.0578885153,0.0200495087,0.258571863 +0.51073885,2.55156803,-0.51073885,0.00335844979,0.174205184,0.0880535245,-0.217258841,0.258075297,0.0200699251,0.724555552 +0.224610552,2.55198431,-0.224610567,0.00123904727,0.19205153,0.0988661125,-0.462437302,-0.0414833315,0.0200563855,0.31963706 +1.1983428,2.55280495,-1.1983428,0.000481078925,0.112377286,0.0526536703,-0.074089177,-0.0247485545,0.0201941486,1.69488239 +-1.19467819,2.5539279,1.19467807,0.000275286351,0.13004823,0.0614235885,-0.0441320874,-0.0306982361,0.0200922117,1.68959129 +1.22870576,2.55400372,-1.22870576,0.000194779859,0.0475491509,0.0259244647,-0.3504816,-0.0157267246,0.0201951042,1.7378161 +1.22102642,2.55407572,-1.22102642,0.00042847218,0.0616966337,0.0266789421,-0.318834901,-0.0134901647,0.0201944783,1.72695482 +-0.109123841,2.55415463,0.109123841,0.000124478654,0.185461774,0.100309543,-0.350102842,-0.0608721823,0.0200259108,0.154704854 +1.21180749,2.55416179,-1.21180749,0.000465405261,0.0807783529,0.0357078984,-0.224589914,-0.0229931287,0.0201935954,1.71391606 +-1.17183328,2.5554781,1.17183328,0.000129430104,0.43008256,0.278860539,0.134003669,0.0533287711,0.0200894866,1.65738547 +-1.07394838,2.5558269,1.07394838,0.000957644312,0.147607699,0.07143455,-0.027650347,-0.0943073183,0.0200809836,1.51882732 +-0.903358042,2.55632257,0.903358102,0.00198913156,0.158363372,0.0766347051,0.0314239673,0.17273888,0.0200652461,1.27842557 +1.1718545,2.55718565,-1.1718545,0.000170088169,0.411775649,0.267136693,0.138956189,0.0850851312,0.0201919097,1.65730453 +-1.19151723,2.55750966,1.19151723,0.000178950286,0.135533094,0.0645045415,-0.0227983426,-0.030284483,0.0200896952,1.6851027 +1.0971787,2.55870223,-1.0971787,0.000403723272,0.371894062,0.204497412,0.0470336415,-0.214746982,0.0201962665,1.55175674 +0.167673901,2.55882668,-0.167673901,0.000842048728,0.196510509,0.102564283,-0.452632904,-0.0617936254,0.0200418346,0.237692654 +-0.490919232,2.55887318,0.490919232,0.0047862865,0.169350564,0.0856276527,-0.18541348,0.201219901,0.0200608671,0.695829451 +-0.856050909,2.55909252,0.856050968,0.00210816786,0.160392374,0.0780938342,0.0500371009,0.241247565,0.0200582258,1.21163356 +-0.104381502,2.55924654,0.104381494,0.00013263787,0.184223294,0.100623541,-0.336510599,-0.0574648045,0.0200219061,0.147723794 +-1.22873259,2.5595777,1.22873259,0.000106241605,0.0473160855,0.02506865,-0.34243682,-0.0174011812,0.020089535,1.73777413 +-1.22165132,2.55972195,1.2216512,0.000233664585,0.0639673918,0.0269715954,-0.317161232,-0.0172239169,0.0200894717,1.727759 +-1.21315408,2.55989456,1.21315408,0.00028545197,0.0877537131,0.0381642729,-0.230571955,-0.0232265405,0.0200890768,1.71574175 +0.116410628,2.5601964,-0.116410628,0.000533317274,0.193625927,0.103851058,-0.438950151,-0.0493258052,0.0200364757,0.166148469 +0.132710636,2.56051302,-0.132710636,0.000673072063,0.194491506,0.103230186,-0.447529793,-0.0529929847,0.020037543,0.188808173 +-0.128218859,2.56127644,0.128218859,0.000534404884,0.185948744,0.0990243554,-0.362684578,-0.0774226785,0.0200190768,0.181498125 +0.430609524,2.5618248,-0.430609524,0.00904995948,0.174893677,0.0881930441,-0.331854969,0.153424591,0.0200625099,0.613603592 +0.0974639431,2.56215358,-0.0974639505,0.000233040322,0.191079378,0.106105849,-0.415330797,-0.0302129872,0.0200330392,0.138052389 +0.0813165009,2.56264448,-0.0813165009,0.000257958862,0.193685055,0.115988277,-0.371720433,0.000480845687,0.020029489,0.115184158 +-1.20057833,2.56305933,1.20057845,0.00019024717,0.120305389,0.0557440482,-0.107679442,-0.0199091658,0.0200862158,1.69789612 +-0.0709752589,2.56339312,0.0709752589,0.00011976192,0.244663268,0.174196228,-0.204835027,0.0482541732,0.0200039092,0.100821331 +-0.118749261,2.56344914,0.118749261,0.000249692297,0.185624093,0.0997412205,-0.353199422,-0.0697234869,0.0200175382,0.168011025 +-1.09340572,2.5634973,1.09340572,0.000355001714,0.416703939,0.233749673,0.0675826743,-0.223137096,0.0200799648,1.54636002 +-1.18560708,2.56362987,1.18560708,0.000166574158,0.210830152,0.113226369,0.110826083,0.0313228294,0.0200842153,1.67674422 +0.068949461,2.56377435,-0.068949461,0.0001116067,0.24961859,0.177548438,-0.294627488,0.0491955876,0.0200223643,0.0976641551 +-0.0829386339,2.56386232,0.0829386413,0.000281934685,0.182378799,0.107266635,-0.273834586,-0.00791473128,0.0200128239,0.117773078 +-0.0989244804,2.56419039,0.0989244804,0.000215849112,0.182715043,0.100841917,-0.322619677,-0.0534115955,0.0200179238,0.140360042 +0.882203341,2.56450939,-0.882203341,0.00189347879,0.15396224,0.0750748217,0.10901247,0.247564957,0.0201332495,1.24762845 +0.178647891,2.56498909,-0.178647906,0.000584285241,0.195847005,0.101925746,-0.452687979,-0.0596251525,0.020038221,0.25375697 +0.20679535,2.56548142,-0.206795365,0.000975677278,0.193565279,0.099967733,-0.460658729,-0.0464976765,0.0200392492,0.294883877 +-0.286498755,2.56581235,0.286498725,0.00224890863,0.174642816,0.0894062072,-0.387997955,-0.040482156,0.0200455673,0.40880844 +1.19629228,2.56598449,-1.19629228,0.00033165855,0.132563621,0.0639626235,-0.0400296822,-0.00988684222,0.0201829821,1.69192648 +-1.090819,2.5661478,1.090819,7.78330432e-05,0.416283637,0.234169051,0.0767146721,-0.220191032,0.0200775154,1.54270816 +1.20816386,2.56680608,-1.20816386,0.000221893351,0.10427314,0.0480938181,-0.173035055,-0.00876259618,0.0201828107,1.70870972 +-0.101659521,2.56691647,0.101659521,0.000153680667,0.183263406,0.100757547,-0.324959874,-0.056092985,0.0200162493,0.144440919 +0.941899955,2.56701279,-0.941899955,0.00164490263,0.150134221,0.0728354082,0.10712295,0.163771167,0.0201502908,1.33211446 +1.09095871,2.56721067,-1.09095871,0.000356460834,0.364354491,0.201761201,0.0791459829,-0.207856223,0.0201890748,1.54297531 +-0.367133439,2.56837797,0.367133468,0.00312723266,0.17380029,0.0885592401,-0.328056961,0.0421724394,0.0200601704,0.52359283 +-1.18071127,2.56869555,1.18071127,7.05049679e-05,0.490930557,0.333490044,0.227248311,0.108249463,0.0200804621,1.66982079 +-0.0993125439,2.56914759,0.0993125439,0.000237268716,0.18281056,0.100831226,-0.319819719,-0.0539338402,0.0200140718,0.141160607 +-0.915585816,2.56986094,0.915585876,0.00188955723,0.157474115,0.0761207491,0.0348856002,0.164550751,0.0200564899,1.29546762 +-0.0830747932,2.56992936,0.0830748007,0.0003106324,0.182143301,0.106978074,-0.269520462,-0.0092020072,0.0200081505,0.118233338 +0.147908121,2.56995845,-0.147908121,0.000852533907,0.196045205,0.103064992,-0.445513904,-0.0632427111,0.0200296082,0.210693628 +0.940012634,2.57016635,-0.940012634,0.00111606647,0.150261849,0.0729254112,0.109068938,0.167478755,0.0201473646,1.32957017 +-0.0708155036,2.57024193,0.0708155036,0.000133566515,0.243615463,0.173083887,-0.198549449,0.048795335,0.0199986529,0.100852959 +-1.1957314,2.57045984,1.1957314,0.000142580073,0.144512683,0.0693070292,-0.0473949462,-0.00767430989,0.020080436,1.69104266 +-0.128365815,2.57051373,0.128365815,9.34971467e-05,0.18583329,0.0991068631,-0.357984006,-0.0783920437,0.0200119391,0.182079151 +0.947960973,2.57109904,-0.947960973,0.00100931083,0.149555027,0.0725085437,0.107103899,0.156025171,0.0201490782,1.3406564 +0.102652058,2.57120132,-0.102652058,0.000450425548,0.191882983,0.105713204,-0.410933703,-0.0352158956,0.0200250987,0.145580217 +-1.21050131,2.57121944,1.21050131,0.000155504604,0.10665758,0.0478345752,-0.197169587,-0.00954243354,0.0200809389,1.71200728 +1.19083548,2.57137394,-1.19083548,0.000254463841,0.208982691,0.114080168,0.105018772,0.0451542586,0.0201775804,1.68420815 +1.22869527,2.57139063,-1.22869515,0.000117075397,0.0463347845,0.0256523211,-0.354828328,-0.0117677599,0.0201806668,1.73775804 +1.22208643,2.57145476,-1.22208643,0.000257375184,0.0596955158,0.0257837679,-0.330312908,-0.00550404796,0.0201802012,1.72841132 +1.21415615,2.57153225,-1.21415615,0.000288742915,0.0792277828,0.0349159352,-0.248285115,-0.00552604161,0.0201794598,1.71719551 +0.941435456,2.57173038,-0.941435397,0.000111368179,0.150151402,0.0728660598,0.109774999,0.16569075,0.0201463494,1.33154881 +-1.08894134,2.5717864,1.08894134,0.000324627326,0.401481092,0.224963531,0.0759037137,-0.205765545,0.0200722776,1.54002881 +-0.978476405,2.57189298,0.978476405,0.00189315842,0.148834407,0.0708168373,0.000570384786,0.0763369128,0.0200617667,1.38417065 +1.03571975,2.57223701,-1.03571975,0.00212767906,0.140549868,0.0671555474,0.0584242791,0.0224265978,0.0201774463,1.46485949 +-0.126202539,2.57250834,0.126202539,0.000162779004,0.185786441,0.0992631167,-0.355039954,-0.0768551081,0.0200100057,0.178990513 +0.943179309,2.5728519,-0.943179309,0.00043700356,0.150016919,0.0727955326,0.110089876,0.163455456,0.0201459639,1.3339622 +0.0807887614,2.57353783,-0.0807887539,0.000174414308,0.193855256,0.116437323,-0.357294768,0.000506509794,0.0200193748,0.114905417 +0.0686728731,2.57359314,-0.0686728731,7.00582459e-05,0.249479368,0.177995756,-0.28217271,0.0493487194,0.0200130008,0.0976376384 +0.542278767,2.5736742,-0.542278767,0.00416980684,0.173232466,0.0876731873,-0.185585335,0.307964534,0.020054996,0.768455386 +0.0965895206,2.57372713,-0.0965895206,0.000129925989,0.191119671,0.106381029,-0.403168797,-0.0297917426,0.0200223513,0.137393609 +-1.22874141,2.57489347,1.22874141,9.15723213e-05,0.0467308909,0.0250666123,-0.353177816,-0.0127313975,0.0200787652,1.73779655 +-1.22268867,2.5749898,1.22268867,0.000201282499,0.0621045381,0.0260704644,-0.334028006,-0.00904012378,0.0200786758,1.72923625 +-1.2154237,2.57510519,1.2154237,0.000231007711,0.0859069973,0.0371300429,-0.254571915,-0.00727058388,0.0200783424,1.71896136 +-1.19025755,2.57526135,1.19025755,0.00012291981,0.22595419,0.123698987,0.106003553,0.0439490043,0.0200761277,1.68330145 +1.18628502,2.57588005,-1.18628502,0.000106390158,0.452763975,0.322249413,0.235913768,0.111378118,0.0201739483,1.67777169 +-0.892314196,2.57610321,0.892314196,0.00360303815,0.159105226,0.0772135854,0.0484383404,0.205528259,0.0200493112,1.26252341 +-0.128652215,2.57669806,0.128652215,6.36773693e-05,0.185722351,0.0991353467,-0.35487774,-0.0794953108,0.0200067442,0.182453871 +-0.105334207,2.57694769,0.105334207,0.000227277007,0.183762401,0.100842699,-0.322552413,-0.061805483,0.0200076867,0.149248317 +0.124824718,2.57735348,-0.124824718,0.000576624763,0.19354631,0.103252642,-0.432616115,-0.053326197,0.0200218298,0.177481547 +1.02669168,2.5773921,-1.02669168,0.00128290069,0.141729638,0.0678996742,0.0708464682,0.037546441,0.0201707762,1.45206356 +-0.240750596,2.57840419,0.240750581,0.00134992239,0.177523762,0.0917045474,-0.395718575,-0.0645214692,0.020027779,0.343272328 +-0.190090597,2.57856584,0.190090582,0.00129589997,0.180070356,0.0938918069,-0.392939687,-0.0868471339,0.0200111195,0.268986642 +-1.18569577,2.57926369,1.18569577,5.36895241e-05,0.502683818,0.348473281,0.247290909,0.111106232,0.0200730357,1.67685008 +0.0688018799,2.57964182,-0.0688018799,0.000103009799,0.249893457,0.178515837,-0.274057925,0.0482794307,0.0200067442,0.0975963846 +-0.125997961,2.58016324,0.125997961,0.000504842319,0.185866952,0.0995350033,-0.349000037,-0.0788632035,0.0200036671,0.178396344 +0.0808893144,2.58030891,-0.0808893144,0.000237366316,0.194349244,0.117025912,-0.349743783,0.000704903156,0.0200126208,0.114758 +-0.152158141,2.58082962,0.152158141,0.000285356567,0.184090003,0.0973176882,-0.368683815,-0.0871263966,0.020002773,0.215192229 +-0.155010015,2.58085108,0.155010015,0.000161707911,0.183937117,0.097102873,-0.370771676,-0.0879878104,0.0200027041,0.219264179 +0.0966077894,2.58092332,-0.0966077894,0.000309009687,0.191072688,0.106560811,-0.3963283,-0.0288753249,0.020015249,0.137058124 +-0.15569894,2.58093953,0.155698955,0.000695489813,0.183876306,0.0970462635,-0.37103489,-0.0880833119,0.020002611,0.220240682 +0.826106906,2.58132076,-0.826106906,0.00614173571,0.156205997,0.0767046809,0.0930533633,0.323687911,0.0201039184,1.17017245 +-0.182384193,2.58142781,0.182384178,0.00107251224,0.180738255,0.0944229811,-0.391600311,-0.0879787952,0.0200074762,0.258276999 +-0.320925355,2.58164454,0.320925355,0.00342705892,0.174186975,0.0890872106,-0.385217041,-0.00245164055,0.0200424157,0.459578753 +-1.02299535,2.58181286,1.02299535,0.00206772191,0.14453283,0.0683647096,-0.0218522698,0.0191740524,0.0200579632,1.44711375 +-0.155406147,2.58197212,0.155406132,7.5069278e-05,0.183854938,0.09706112,-0.370635003,-0.088142395,0.0200017616,0.219832927 +-0.154433787,2.58291125,0.154433787,0.000497698667,0.183898449,0.0971600115,-0.369167626,-0.0881017223,0.0200009383,0.218437105 +0.243253917,2.58293986,-0.243253917,0.00146335037,0.189903438,0.0976170599,-0.460403323,-0.0270598419,0.0200319216,0.347121626 +0.942125082,2.58324838,-0.942125082,0.00180621329,0.150003657,0.0728167295,0.116064064,0.167726308,0.0201370921,1.33239758 +-0.959668279,2.58332014,0.959668279,0.00189597171,0.15196757,0.0727538243,0.0217603855,0.109809704,0.0200508386,1.3577987 +-0.155853093,2.58471537,0.155853093,0.000697908399,0.183764055,0.0970428735,-0.370358616,-0.0886489227,0.0199990366,0.220428288 +-1.20120025,2.58610177,1.20120025,0.000272834965,0.154159635,0.0742310807,-0.0804955736,0.0149707319,0.0200693458,1.6988579 +1.05994797,2.58689427,-1.05994797,0.00151545566,0.151034951,0.0751913562,0.0888757184,-0.0463075228,0.0201730281,1.49912643 +-0.600061655,2.58771086,0.600061655,0.00507427845,0.166023761,0.0832519457,-0.053025417,0.344814181,0.0200227089,0.849086046 +-0.184472084,2.58774018,0.184472099,0.00022416572,0.180325523,0.0942572504,-0.391784638,-0.088075906,0.0200024806,0.261357903 +-0.180546165,2.58810186,0.180546179,0.000171877764,0.180593804,0.0945166349,-0.389057875,-0.0883603543,0.0200020019,0.255719185 +0.136522472,2.58878183,-0.136522472,0.000861538108,0.194715649,0.103139825,-0.428012431,-0.0622963831,0.0200119335,0.194332778 +-1.1965158,2.5891273,1.1965158,0.00018636389,0.23776871,0.131867751,0.0839638263,0.0484186262,0.0200665053,1.69223285 +-1.20642877,2.58983541,1.20642877,0.000273495563,0.13197197,0.0617096685,-0.141612411,0.0168736987,0.0200668778,1.70624471 +0.171714723,2.5900228,-0.171714723,0.000477355468,0.195442677,0.102019183,-0.439237475,-0.0601577014,0.0200137924,0.243017793 +0.221531153,2.59124851,-0.221531153,0.00134563388,0.191954225,0.0990477428,-0.452343732,-0.0368463658,0.0200207382,0.315060228 +1.20150733,2.59154105,-1.20150721,0.00031947135,0.144402534,0.0708204731,-0.0738494769,0.0150653021,0.0201602653,1.69941795 +-0.185860738,2.59162569,0.185860738,0.000210998624,0.180301905,0.09429086,-0.3926875,-0.0877859741,0.0199989639,0.263301581 +-1.19261205,2.59164858,1.19261205,8.14303203e-05,0.502121329,0.358742267,0.255668551,0.0995742455,0.0200641397,1.68671203 +-0.265420079,2.59381533,0.265420109,0.00269465381,0.176073134,0.0908517987,-0.399213314,-0.049448736,0.0200207699,0.378061295 +-0.0707389191,2.59400225,0.0707389191,0.000134522488,0.242108911,0.170463115,-0.176998585,0.0482361168,0.0199807305,0.100689501 +-0.797001302,2.59401989,0.797001362,0.00774247246,0.16115661,0.0790057108,0.071233958,0.341543138,0.0200281087,1.12925673 +1.1968739,2.59408998,-1.1968739,0.000169894134,0.229086161,0.129076913,0.0874937475,0.0355201811,0.0201563351,1.69286478 +-0.0834939182,2.5944922,0.0834939256,0.000311929587,0.182799309,0.107546903,-0.248848081,-0.0138097517,0.0199887026,0.118765533 +-0.100264832,2.59479141,0.10026484,0.000233606537,0.183387548,0.10155724,-0.302009732,-0.0588907376,0.0199927874,0.142490447 +-1.03152466,2.5952177,1.03152466,0.00197636522,0.14549619,0.0690953583,-0.0154395401,0.0143734571,0.0200482979,1.45899141 +1.19331634,2.59610605,-1.19331634,7.07908184e-05,0.457408011,0.339178354,0.233975962,0.0682712197,0.0201536287,1.68783307 +0.501250148,2.59677029,-0.501250148,0.00441919779,0.174525395,0.0884278119,-0.252942353,0.268517166,0.0200348459,0.711810589 +1.07796705,2.59684396,-1.07796705,0.000507768709,0.324129134,0.182570815,0.163149074,-0.149459705,0.0201694593,1.52461338 +0.354752809,2.59772372,-0.354752839,0.00446189754,0.179283813,0.0909749195,-0.427402377,0.0775219202,0.0200245306,0.503183246 +0.0953671485,2.59777045,-0.0953671485,0.000438784569,0.191209301,0.107361749,-0.374902844,-0.0313224532,0.0199995488,0.135881722 +0.0683580041,2.59778261,-0.0683580041,0.000174460758,0.249765337,0.178715691,-0.250233084,0.0467949584,0.0199893061,0.0974472165 +0.0800952762,2.59782124,-0.0800952837,0.000428592204,0.194974899,0.117991447,-0.324838102,0.000643730629,0.0199961495,0.114154823 +0.328143656,2.59797287,-0.328143656,0.00310841086,0.181079954,0.0920412019,-0.455594957,0.04624651,0.020024227,0.465912133 +-0.696730316,2.59807515,0.696730375,0.00393963512,0.163279414,0.0810037479,0.0314035155,0.400974721,0.0200165082,0.985326529 +-0.696750343,2.59808445,0.696750343,0.00382056902,0.163278893,0.0810033828,0.031412635,0.400981247,0.0200165026,0.98535502 +-0.696791291,2.59809685,0.696791291,0.0038115615,0.163278371,0.0810028687,0.0314292833,0.400966883,0.020016497,0.985412061 +-0.696742415,2.59810948,0.696742475,0.00360188237,0.163279429,0.0810039043,0.0314081833,0.400999814,0.0200164821,0.985343754 +-0.696676254,2.59813714,0.696676195,0.00341821508,0.163282096,0.0810062811,0.0313240886,0.400994807,0.0200164579,0.985249162 +-0.696805656,2.59816742,0.696805716,0.00314082764,0.163279161,0.081003651,0.0314571783,0.401031494,0.0200164411,0.985432267 +-0.106048338,2.59867144,0.106048338,0.000431077613,0.184238672,0.101467565,-0.30733338,-0.0659018308,0.0199896563,0.150250763 +-0.100141466,2.59938407,0.100141466,0.00027222131,0.183448136,0.101715907,-0.297631174,-0.0592731759,0.0199888851,0.142176166 +-0.0834922567,2.60002089,0.0834922493,0.00036730268,0.182840407,0.107767083,-0.243171409,-0.0141004557,0.0199840367,0.118614607 +0.994601429,2.60005045,-0.994601429,0.00192791782,0.144913927,0.0699118078,0.112108126,0.0946625918,0.0201434344,1.40674508 +0.201921389,2.60009241,-0.201921403,0.00109930977,0.19225876,0.099469997,-0.449960142,-0.0488581508,0.0200105291,0.289090425 +0.912616491,2.6001265,-0.912616491,0.00198312406,0.151550859,0.0738190487,0.122058123,0.213532329,0.0201134365,1.29064 +1.21029758,2.60026765,-1.21029758,0.000261860085,0.108399093,0.0504905991,-0.18330276,0.0214533471,0.0201537795,1.71187401 +-0.0708629787,2.60031986,0.0708629787,0.000156621245,0.241246805,0.169726327,-0.171283692,0.0479829982,0.0199752282,0.10071896 +-1.05727077,2.60211563,1.05727077,0.0016773924,0.158541381,0.0780792311,0.0101936217,-0.037720792,0.0200436246,1.49540615 +-0.178963348,2.60240626,0.178963348,0.00121720124,0.180615649,0.0948296413,-0.384530097,-0.0911499113,0.0199867655,0.253221989 +-1.22865939,2.60297966,1.22865939,9.6118456e-05,0.0467579961,0.0250572357,-0.33898142,-0.00724130077,0.0200580526,1.73776364 +-1.22368217,2.60303903,1.22368217,0.000211250153,0.0588472411,0.0245951228,-0.328687966,0.00156468921,0.0200579856,1.7307241 +-1.21770978,2.60311031,1.21770978,0.000378652825,0.0788547546,0.0337220952,-0.263655543,0.0145667978,0.0200577304,1.72227681 +-0.976428092,2.60392189,0.976428032,0.00167603756,0.151118696,0.0723783299,0.0336657353,0.0976399258,0.0200366881,1.38107312 +0.610995293,2.60460949,-0.610995293,0.00289709819,0.171529219,0.0868340954,-0.0961921513,0.38725993,0.0200388096,0.864791691 +1.21726036,2.60526466,-1.21726036,0.000290116732,0.0733856857,0.0321345143,-0.256333768,0.0222990457,0.0201508775,1.72165227 +1.22346139,2.60526609,-1.22346139,0.000251307385,0.0555277392,0.0239424482,-0.319221258,0.00515093049,0.0201514121,1.73042274 +1.22862804,2.60526729,-1.22862804,0.00011436292,0.0445266664,0.0247591585,-0.333833635,-0.00776110403,0.0201515984,1.73773026 +0.163428307,2.60602665,-0.163428292,0.000687075721,0.194853723,0.102077872,-0.431223035,-0.0603114553,0.0199983232,0.231633127 +0.634075522,2.60630465,-0.634075522,0.00299976533,0.170181006,0.0860090405,-0.0698526427,0.404204547,0.0200410541,0.897515178 +0.113666557,2.60692644,-0.113666564,0.000199470014,0.191969603,0.103987418,-0.398773104,-0.0448886342,0.0199923236,0.160768688 +-1.07574844,2.60728359,1.07574844,0.000571316399,0.312707424,0.171757206,0.0866473913,-0.111193001,0.0200393163,1.52154016 +-0.121208265,2.60766292,0.121208265,0.00085712818,0.185687304,0.100390054,-0.32862711,-0.0808518603,0.0199798197,0.172260493 +-0.833843112,2.60788488,0.833843112,0.00345297065,0.160923123,0.0787355527,0.0753183141,0.305530459,0.0200209338,1.18042159 +0.116245516,2.60983491,-0.116245516,0.000329215778,0.192113414,0.103662692,-0.399755746,-0.0470404848,0.0199898519,0.164434999 +0.114601538,2.61006451,-0.114601545,0.000161073141,0.19203721,0.103900224,-0.396965057,-0.0460964292,0.0199894775,0.16211836 +0.115392797,2.61014175,-0.115392797,1.65806773e-06,0.192081153,0.103730448,-0.398545384,-0.0467465818,0.0199894849,0.163285628 +0.175740182,2.61084747,-0.175740182,0.000758314563,0.19420965,0.101326786,-0.432836831,-0.0571834967,0.0199954212,0.249040514 +-1.00888693,2.61089253,1.00888693,0.00146831805,0.14796555,0.0705689937,0.0170584917,0.0558116175,0.0200341195,1.42696679 +0.115522251,2.61094546,-0.115522251,4.18519085e-05,0.192035496,0.103695251,-0.398078471,-0.0468685068,0.0199887902,0.163459837 +-0.372647434,2.61098003,0.372647434,0.00418610312,0.174635783,0.0896890089,-0.34762463,0.0736435205,0.0200224798,0.530713737 +0.168284833,2.61286736,-0.168284833,0.000293994381,0.194677606,0.101799831,-0.429472417,-0.0605286136,0.0199921913,0.23879689 +-0.286947608,2.61421514,0.286947608,0.00306757772,0.176108718,0.0909986347,-0.400123894,-0.0216795392,0.0200113542,0.40990299 +0.120878518,2.61469626,-0.120878518,0.000234543098,0.192231789,0.1034071,-0.400538832,-0.0492895469,0.0199854057,0.170954973 +0.310979843,2.61500764,-0.310979843,0.00203346903,0.182776198,0.093229048,-0.463843018,0.0409353264,0.0200085863,0.442245781 +0.989839792,2.61561251,-0.989839792,0.00150321343,0.145333096,0.0702521801,0.125321791,0.105395757,0.0201295149,1.40031695 +0.116088003,2.61723566,-0.116088003,0.000293973979,0.191834629,0.103624657,-0.393893003,-0.0475811288,0.0199825931,0.164181635 +-0.225075573,2.61975098,0.225075558,0.000681043079,0.177490443,0.0927315056,-0.402220666,-0.0740795508,0.0199832469,0.31831646 +-0.225557536,2.6208024,0.225557521,0.000675539777,0.17746307,0.0927272141,-0.402152985,-0.0737805665,0.0199825205,0.319005877 +-0.22499156,2.62093639,0.22499156,7.47392551e-05,0.177483678,0.0927484557,-0.402225673,-0.0740433633,0.0199822467,0.318221867 +0.0688839853,2.62098885,-0.0688839778,0.000108284104,0.248027623,0.176641226,-0.220534205,0.0441965945,0.0199658573,0.0974614993 +-0.225115255,2.62126064,0.225115255,8.43255912e-05,0.177480981,0.0927507207,-0.402301729,-0.0740160197,0.0199819561,0.318395078 +-0.223676011,2.62175417,0.223676026,0.000837278902,0.177566439,0.0928332955,-0.401309997,-0.0746142268,0.0199810807,0.316335678 +0.330287039,2.62184381,-0.330287039,0.00100748637,0.180388168,0.0918157175,-0.463277042,0.0614069737,0.0200022552,0.470316082 +0.0988178924,2.62184644,-0.0988178924,0.000119666322,0.190872461,0.106692828,-0.356755137,-0.0354518853,0.0199760199,0.139749691 +0.0815714523,2.62203717,-0.0815714523,0.000241226458,0.194868326,0.117462002,-0.300141841,-0.00448387861,0.0199718885,0.115378812 +1.00078583,2.62219405,-1.00078583,0.00078565249,0.145032033,0.0702208653,0.126618817,0.0946450979,0.0201274343,1.41556609 +0.0980526879,2.62230158,-0.0980526954,0.000106318548,0.190818548,0.106819272,-0.354922771,-0.0349280052,0.0199754816,0.138669685 +-0.225508839,2.62231612,0.225508854,0.000803380215,0.177470043,0.0927557722,-0.402965903,-0.0735449791,0.0199810024,0.318927974 +0.0980711654,2.6223352,-0.0980711654,1.70950614e-08,0.190821022,0.106816754,-0.354909331,-0.0349596441,0.0199754499,0.138697535 +0.0980531424,2.62235355,-0.0980531424,3.60978625e-08,0.190817878,0.106818564,-0.354871631,-0.0349442028,0.0199754313,0.138673887 +0.0688416809,2.62237287,-0.0688416883,1.01423702e-05,0.247950435,0.176530913,-0.218870729,0.0440209024,0.0199645702,0.0974750966 +0.0964150578,2.62238002,-0.0964150652,0.00012063577,0.191224962,0.107955307,-0.349367946,-0.031909205,0.0199750196,0.136351541 +0.0980558619,2.62239408,-0.0980558544,0.000230947466,0.190818265,0.106818721,-0.354836494,-0.0349411294,0.0199753847,0.138674915 +0.0815781727,2.62254715,-0.0815781727,9.65519303e-06,0.194858387,0.117438123,-0.299695522,-0.00461703353,0.0199714117,0.115419261 +0.0816042945,2.62300253,-0.0816042945,0.000259290391,0.194853023,0.117430948,-0.29928425,-0.00472613564,0.0199710093,0.115436502 +1.20472527,2.62304211,-1.20472527,0.000208573008,0.12359786,0.0598536879,-0.0842667967,0.0386143364,0.0201321337,1.70387936 +1.20058334,2.62333369,-1.20058334,0.000126649829,0.194802955,0.109504104,0.0510186218,0.0332754441,0.0201289635,1.69802165 +-0.224291608,2.62340069,0.224291608,0.000442578195,0.177537084,0.0928360596,-0.402051806,-0.0745343491,0.019979259,0.317203373 +1.19735789,2.62351322,-1.19735789,5.30986435e-05,0.401982516,0.299371868,0.176768601,0.0257378127,0.0201265775,1.69346011 +0.0688738152,2.6236701,-0.0688738078,0.000117528572,0.247922227,0.176448286,-0.217174217,0.0438549109,0.0199634172,0.0974726304 +1.2104094,2.62426519,-1.2104094,0.000182493881,0.096382156,0.0447872765,-0.148217216,0.0374016315,0.0201323237,1.71188021 +0.237594306,2.62427807,-0.237594306,0.00135265896,0.189420015,0.0976921171,-0.460575521,-0.0167556666,0.0199931283,0.337831199 +0.527152181,2.62433171,-0.527152181,0.00424545165,0.174564153,0.0886896253,-0.235261723,0.322137117,0.0200114269,0.747278214 +-0.120965324,2.62570453,0.120965317,0.000334323937,0.185535952,0.100632504,-0.318799466,-0.083285965,0.0199623089,0.172561079 +0.265990436,2.62630558,-0.265990436,0.00306071411,0.186404347,0.0957323313,-0.471858621,0.000266505405,0.0199959464,0.379433721 +0.143561944,2.62681127,-0.143561929,0.00052172225,0.193386719,0.102277525,-0.411227703,-0.0617953725,0.019975109,0.203253284 +-0.329927266,2.6270597,0.329927295,0.00482359156,0.175069392,0.0902731791,-0.402748525,0.0346453264,0.0200026296,0.471486926 +-0.412872136,2.62753725,0.412872136,0.00604022061,0.173106879,0.0888093039,-0.336164206,0.152685523,0.0200048126,0.58678782 +-0.920747638,2.62793422,0.920747638,0.00199025543,0.158321247,0.0768492669,0.0793865696,0.206134737,0.0200135857,1.30224061 +-1.22871745,2.62829018,1.22871757,8.17733016e-05,0.0483916104,0.0255843643,-0.311230063,-0.00626470987,0.0200386494,1.73778832 +-1.22395706,2.628304,1.22395706,0.000179967799,0.0572333485,0.0239029005,-0.303002954,0.00565679511,0.0200387463,1.73105574 +-1.21824455,2.62832046,1.21824455,0.000256552099,0.0731480494,0.031028945,-0.244799271,0.0176980663,0.0200387072,1.72297645 +0.877708077,2.62842512,-0.877708077,0.00290013407,0.153231442,0.0749560893,0.132476404,0.268842936,0.0200784113,1.24133635 +-0.0713658482,2.62857032,0.0713658556,0.000145808866,0.237107784,0.166379064,-0.143861026,0.0444271378,0.0199517161,0.101160944 +-0.104172632,2.6291821,0.104172632,0.000181065698,0.18478772,0.102785714,-0.282385379,-0.0729228705,0.0199610889,0.147386968 +0.815335095,2.6292572,-0.815335155,0.00606889138,0.157074898,0.0773922652,0.10323257,0.345572084,0.0200594254,1.1550231 +0.168759048,2.62930083,-0.168759048,0.000635557924,0.19357878,0.101294465,-0.424757987,-0.0580776297,0.0199743994,0.23895207 +-0.0847031251,2.62942839,0.0847031325,0.00034242589,0.183368891,0.108251542,-0.218863055,-0.0231340025,0.0199582353,0.119996168 +0.203486294,2.62954044,-0.203486294,0.00178313581,0.190615565,0.0987512171,-0.447741866,-0.0447005853,0.0199841671,0.290193975 +-1.20522749,2.6298275,1.20522749,8.89642033e-05,0.124489993,0.0587972701,-0.0823348016,0.0435824282,0.0200377293,1.70445275 +-1.20547211,2.62996793,1.20547211,0.000162959812,0.123463109,0.0582305714,-0.0852304697,0.0436486192,0.0200376399,1.70479822 +-1.20110655,2.63019347,1.20110655,0.000118437885,0.18562299,0.10044352,0.0372352637,0.0529618859,0.0200375766,1.69862461 +-1.19767308,2.63049555,1.19767308,5.16605833e-05,0.379408389,0.263610154,0.143756852,0.0495893881,0.0200370811,1.69376886 +-0.102443531,2.63050437,0.102443531,0.000230064863,0.18458575,0.102898531,-0.278741032,-0.0713181347,0.0199598223,0.145012289 +-1.20530915,2.63050866,1.20530915,3.71293822e-06,0.123984441,0.0585339591,-0.0827712938,0.0440749153,0.0200372376,1.70457041 +-1.20557308,2.63076496,1.20557308,0.000167622362,0.1229496,0.0579451993,-0.0856747031,0.0435784459,0.0200370383,1.70493996 +-1.20118988,2.63080144,1.20118988,5.874035e-06,0.184891909,0.100015752,0.0365114585,0.0530589446,0.0200371463,1.69874477 +0.144835025,2.63103199,-0.14483501,0.000146432401,0.193231657,0.102159575,-0.409416884,-0.0619703941,0.0199710932,0.205177188 +-1.19775736,2.63104558,1.19775736,2.42901115e-06,0.377534449,0.262157917,0.142335057,0.0490028113,0.020036703,1.69389009 +0.883837461,2.63139582,-0.883837402,0.000623868487,0.152934998,0.0747710019,0.13601321,0.261859596,0.0200779848,1.25006723 +-0.0712307319,2.6315527,0.0712307319,2.84405451e-05,0.236900821,0.166199982,-0.140492767,0.0443525873,0.0199494548,0.101151749 +-0.0846753344,2.63159633,0.0846753344,5.00501737e-05,0.183460832,0.108313262,-0.216990843,-0.0235171299,0.0199564509,0.120111495 +0.705566049,2.63164663,-0.705566049,0.00591607159,0.164477617,0.0822925493,0.013803307,0.42234078,0.0200320613,0.998494387 +-0.102474861,2.63165474,0.102474861,1.95467474e-05,0.184605986,0.102927998,-0.278159499,-0.0714800134,0.0199587792,0.145151958 +1.07546782,2.63174176,-1.07546782,0.000286327995,0.238961592,0.130299583,0.164888054,-0.0689272135,0.0201453548,1.52099454 +1.21778977,2.63185072,-1.21778977,0.000251686579,0.0679627955,0.0295423791,-0.220912755,0.0221362375,0.0201283582,1.72234201 +1.22374797,2.63188696,-1.22374785,0.000194735214,0.0530148447,0.0228125602,-0.279057801,0.00467595086,0.0201288126,1.73076868 +1.22871256,2.63191748,-1.22871268,8.86360358e-05,0.0451717936,0.0247833747,-0.291974872,-0.0108055267,0.0201289058,1.73779035 +0.142294064,2.63205242,-0.142294064,0.00028114731,0.193050727,0.102207147,-0.408031344,-0.0611742735,0.019969603,0.201598212 +-0.103510372,2.63215351,0.103510372,0.000175810579,0.184736088,0.102894679,-0.279484153,-0.0729212463,0.0199582875,0.146498874 +-1.20505071,2.63230801,1.20505071,0.000192880965,0.122850128,0.0578953065,-0.0818327367,0.0432100594,0.0200358592,1.70420039 +-1.20086384,2.63239002,1.20086384,0.000136014132,0.182408035,0.098377645,0.0364592411,0.0520683341,0.0200359616,1.69827926 +-1.19740474,2.63244653,1.19740474,5.70836637e-05,0.370677412,0.256545842,0.141008958,0.0472251847,0.0200356971,1.69338739 +-0.994492054,2.63256478,0.994491994,0.00112259039,0.150337279,0.0720750168,0.0496795624,0.0887532234,0.0200157706,1.40674174 +-0.102497123,2.63297081,0.102497123,0.000314711418,0.184615746,0.102982409,-0.276843518,-0.0719702914,0.0199574735,0.145090416 +0.881461203,2.63318181,-0.881461203,2.64767277e-05,0.153028339,0.0748367235,0.135909483,0.2653009,0.0200754721,1.24674392 +1.0565201,2.63334703,-1.0565201,0.000858251238,0.150256336,0.0753731206,0.12929903,0.0136627043,0.0201376155,1.49419725 +-0.939430952,2.63363957,0.939430952,0.00142472063,0.155987442,0.0754167587,0.073824577,0.18293488,0.0200111922,1.32865822 +-0.0847260356,2.63408208,0.0847260356,0.000326289621,0.183482468,0.108418889,-0.21425727,-0.0240233615,0.0199540574,0.120034598 +0.887857437,2.63433886,-0.887857437,0.00132824713,0.152653769,0.0746112987,0.137728125,0.257159144,0.0200771634,1.25568998 +-0.0713048428,2.63500237,0.0713048428,0.000140427408,0.236893415,0.166431069,-0.136803418,0.044009719,0.0199461263,0.101082169 +0.973054528,2.63515949,-0.973054528,0.00158908742,0.146651894,0.0710528865,0.139265507,0.135378152,0.0201070216,1.37624621 +1.0303874,2.63540721,-1.0303874,0.000741075783,0.142403141,0.0690006837,0.120732978,0.0588015765,0.0201273412,1.45724082 +0.747885108,2.63551903,-0.747885108,0.00504322816,0.1618945,0.0805977732,0.0440534279,0.402331978,0.0200393256,1.05801249 +1.02621746,2.63602781,-1.02621746,0.000646793633,0.142914206,0.0693041906,0.124861225,0.0649818331,0.0201256108,1.45133221 +-0.13230747,2.63604856,0.13230747,0.000709283166,0.185135216,0.0999661833,-0.326278389,-0.0918647572,0.0199513864,0.187526435 +0.603389263,2.63643384,-0.603389263,0.00476389518,0.1723046,0.0874347389,-0.124486834,0.397882551,0.0200116932,0.85414654 +1.07492125,2.63662148,-1.07492125,7.13547124e-05,0.228718922,0.124294735,0.166394532,-0.0572160482,0.020141568,1.52022994 +0.8838799,2.63723588,-0.8838799,0.00187375268,0.152915642,0.0747665316,0.138501763,0.263063699,0.0200730152,1.2501266 +0.140883133,2.63758278,-0.140883133,0.000335358054,0.192691386,0.102190919,-0.403302789,-0.0604233854,0.0199635271,0.199417427 +0.14749226,2.63772178,-0.14749226,0.000514279644,0.192808136,0.101857245,-0.409023583,-0.0605460033,0.0199639965,0.208713621 +1.05590212,2.6398623,-1.05590212,0.000213796069,0.151131973,0.075990431,0.13594313,0.0218837913,0.0201323461,1.49333119 +1.1960665,2.63991451,-1.1960665,5.45970361e-05,0.321139544,0.233793572,0.153660268,0.0201341771,0.0201129001,1.69162643 +0.628155351,2.64012837,-0.628155351,0.0046359906,0.171269044,0.0868053064,-0.0840186551,0.417133093,0.020011412,0.889282942 +1.19974411,2.64054966,-1.19974411,0.000126056766,0.156482518,0.085439533,0.045926217,0.0392962992,0.0201148931,1.69682729 +-0.985618711,2.64058924,0.985618711,0.0026733072,0.151621819,0.0728582293,0.0630136058,0.111518711,0.0200095922,1.39446056 +1.20415449,2.64130569,-1.20415449,0.000220661212,0.106651135,0.0506006107,-0.066707626,0.0415472947,0.0201172121,1.70306468 +1.07640612,2.6414206,-1.07640612,0.000309703231,0.2159089,0.116133884,0.156022161,-0.0536501668,0.0201368015,1.52231061 +0.878600538,2.64212132,-0.878600538,0.00224679289,0.153223947,0.0749737173,0.137232497,0.271005899,0.0200667363,1.24260116 +0.31750387,2.64284587,-0.31750387,0.00289293518,0.181327298,0.0925964192,-0.479211986,0.0615425557,0.0199777521,0.450900465 +-0.607874036,2.64379025,0.607873976,0.00313190441,0.166793227,0.0841484591,-0.0694286153,0.393803596,0.0199750047,0.861532688 +-0.536575854,2.6438787,0.536575854,0.00592946773,0.169020057,0.0860316977,-0.180685818,0.326339185,0.0199766532,0.7613253 +1.02950191,2.64456487,-1.02950191,0.000755283691,0.14286828,0.0693744272,0.130003914,0.0637374669,0.0201197844,1.45599592 +-0.146156341,2.64487982,0.146156341,0.000665276602,0.183916599,0.0987307504,-0.340525031,-0.0958771259,0.0199414026,0.206941277 +0.119147323,2.64544582,-0.119147331,0.000263771886,0.191094354,0.103305273,-0.375050455,-0.0530858263,0.0199549068,0.168885186 +-0.810104489,2.64586163,0.810104489,0.00229722029,0.161775425,0.0796016455,0.093068637,0.375533849,0.0199884642,1.14665556 +1.05786645,2.64603305,-1.05786657,0.000923176354,0.147892341,0.0740334168,0.13053453,0.0272385031,0.0201267283,1.49609101 +-0.162328899,2.64619398,0.162328899,0.00111605285,0.181678101,0.0966533571,-0.36392355,-0.0972285792,0.0199397057,0.23062858 +0.11556749,2.64671278,-0.11556749,0.000351144554,0.190807402,0.103762142,-0.368925601,-0.0492974371,0.0199531745,0.163724393 +-0.172423929,2.64766455,0.172423929,0.00145934126,0.180808604,0.0959014371,-0.372881204,-0.0959678441,0.01994114,0.244893953 +0.0977245718,2.64824486,-0.0977245718,0.000504249765,0.190453321,0.106430866,-0.332175553,-0.0411192663,0.0199507456,0.14042294 +0.0808190405,2.64847374,-0.0808190405,0.000515817897,0.195123538,0.117492139,-0.273110002,-0.0102929808,0.0199468322,0.116120249 +0.0679100007,2.64847708,-0.0679100007,0.000206698227,0.247819036,0.175998613,-0.184581667,0.0408976227,0.0199396797,0.0975590199 +-0.130331427,2.64959311,0.130331427,0.000464564859,0.185385495,0.100645855,-0.316758931,-0.0931187868,0.0199373495,0.184577644 +-1.07729352,2.64986897,1.07729352,0.000302256492,0.17630282,0.0891435668,0.0426618606,-0.0708421618,0.019996725,1.52352989 +0.119545802,2.65009904,-0.119545802,0.000350677699,0.190879315,0.10319031,-0.372802198,-0.0529579408,0.0199497901,0.169254884 +0.723240972,2.65032244,-0.723240972,0.00271472009,0.163503885,0.0816991106,0.0292788111,0.425229639,0.0200202577,1.02372944 +-1.22373438,2.65103579,1.22373438,0.000241874804,0.0570134372,0.0238485858,-0.276944816,0.0115127619,0.0200213492,1.73080778 +-1.22869885,2.65105033,1.22869897,0.000111804722,0.0505281053,0.026470013,-0.28792882,-0.00534778461,0.0200210363,1.73782945 +-1.07733941,2.65121937,1.07733953,2.25601361e-05,0.171683699,0.0865057632,0.041000288,-0.0698758736,0.0199954156,1.52360082 +-0.120426893,2.65197563,0.120426893,0.000347558118,0.185869664,0.101634949,-0.304116219,-0.0876719132,0.0199350324,0.171255082 +-1.21791112,2.65217638,1.21791101,0.000477453868,0.0698606372,0.0294765197,-0.218788981,0.0180200674,0.0200209115,1.7225523 +1.211447,2.65225434,-1.211447,0.000307907088,0.0765370578,0.0340390839,-0.135609716,0.0251699537,0.0201105773,1.71340942 +-1.07797873,2.65272546,1.07797873,0.000303174456,0.167635113,0.0841084048,0.0389153548,-0.0696149096,0.0199941751,1.52449739 +1.03227937,2.65293288,-1.03227937,0.00117389532,0.141727835,0.068705067,0.130995303,0.0679839402,0.0201127548,1.45990598 +0.11408107,2.65418935,-0.11408107,0.000162981727,0.190602288,0.104092672,-0.358639896,-0.0491684601,0.0199452396,0.161470264 +1.21698749,2.6548965,-1.21698761,0.000239872723,0.0658461899,0.0284528993,-0.188094169,0.0157000888,0.0201093052,1.72124982 +1.22337675,2.6550045,-1.22337675,0.000256043539,0.0526177436,0.0225660913,-0.244830877,0.001511927,0.0201096665,1.73028648 +1.22870135,2.65509462,-1.22870135,0.000116506271,0.0468896851,0.0253920015,-0.260091692,-0.0164826456,0.0201097205,1.73781729 +-0.140729606,2.65568089,0.140729606,0.000373057876,0.184674591,0.0996422544,-0.331304789,-0.0962233767,0.0199295487,0.199488476 +-0.57683742,2.65568781,0.57683742,0.00401936192,0.167833462,0.0851184502,-0.128840894,0.373457611,0.0199645255,0.816412568 +0.714510322,2.65602469,-0.714510262,0.000291639706,0.164179578,0.0821625441,0.0222765282,0.430360585,0.0200134087,1.01213753 +-0.114236385,2.65716839,0.114236385,0.000290104683,0.185129255,0.102223247,-0.287867755,-0.0818552971,0.0199298505,0.162657276 +-1.0595324,2.65718293,1.05953228,0.000891352363,0.141677871,0.0689189956,0.0321997106,0.00695846602,0.0199948233,1.49841309 +0.276282221,2.65831327,-0.276282221,0.00381661882,0.184491456,0.0948353931,-0.489425242,0.0268325321,0.0199605003,0.393270016 +-1.05963469,2.65927529,1.05963469,8.34915845e-05,0.140905812,0.0685017481,0.0329339616,0.0082962364,0.0199930202,1.49856484 +-1.06058621,2.66160989,1.06058621,0.000892316573,0.138939843,0.0673726127,0.0314641558,0.00975834113,0.0199911576,1.49990141 +-0.0703940764,2.66169262,0.070394069,0.000183388562,0.239796251,0.171862125,-0.104044855,0.0450379103,0.0199202374,0.100495137 +-0.0828055292,2.66179156,0.0828055292,0.000426420622,0.185621098,0.111481719,-0.180258319,-0.021953702,0.0199265424,0.118183568 +-0.0990849137,2.66214895,0.0990849137,0.000484045595,0.184832051,0.104537979,-0.248192579,-0.0721908808,0.0199276451,0.14135842 +0.702097297,2.66247082,-0.702097297,0.00483843591,0.165303811,0.0829046741,0.00328537636,0.434337258,0.0200053826,0.993710756 +-0.935014486,2.66251421,0.935014427,0.00181183941,0.15755333,0.0764941946,0.101228423,0.213279441,0.0199889261,1.32261205 +0.356392324,2.66269445,-0.356392324,0.0041254703,0.178296536,0.0909646451,-0.485438257,0.128477424,0.0199630205,0.504681885 +0.16604203,2.66274118,-0.16604203,0.000589761767,0.190885991,0.100131392,-0.414514363,-0.0572867393,0.0199411996,0.236156851 +-0.927307963,2.66294241,0.927307963,0.00196388317,0.158280388,0.0769565031,0.103022322,0.225770444,0.0199881215,1.31181502 +1.19142461,2.66299343,-1.19142449,8.48407508e-05,0.209559202,0.142977297,0.140472323,-0.00653627608,0.0200956594,1.6850884 +0.178216666,2.66376233,-0.178216666,0.00109386153,0.190491498,0.0995877907,-0.424587846,-0.051097393,0.0199416243,0.253302515 +0.234871343,2.66432619,-0.234871328,0.00231634639,0.187821478,0.0970838368,-0.461676896,-0.00994391367,0.0199491642,0.333265901 +-0.773329616,2.6643312,0.773329616,0.00313233049,0.162730306,0.0805055276,0.0834159404,0.426754743,0.0199679565,1.09479845 +1.19567525,2.66540289,-1.19567525,0.000200761162,0.11486645,0.0590831526,0.0641457886,0.0284005087,0.0200967025,1.69110036 +-1.03507674,2.66634631,1.03507674,0.00084012025,0.145512432,0.0699026287,0.054347299,0.0593495332,0.0199891869,1.46383309 +-0.859556019,2.6666975,0.859556079,0.00413504569,0.161083594,0.07899189,0.110891514,0.332289308,0.0199776515,1.21632946 +-0.248887599,2.66717672,0.248887599,0.00242173974,0.176871136,0.0927385986,-0.434406579,-0.0484026149,0.0199431833,0.353324741 +-0.908979177,2.66769385,0.908979177,0.00215292,0.159083575,0.0775520876,0.106531367,0.257790923,0.0199824274,1.2856245 +0.473558545,2.66783476,-0.473558545,0.00615848694,0.175082102,0.0891895071,-0.353020132,0.288736582,0.0199687071,0.673389554 +-1.0319742,2.66811848,1.0319742,0.000664026244,0.145848796,0.0700992495,0.0584186576,0.064765729,0.0199875552,1.459445 +0.951913357,2.66814804,-0.951913357,0.00350681948,0.148609221,0.0722630322,0.162101403,0.175971895,0.0200708061,1.34664011 +1.20077682,2.66829681,-1.20077682,0.000385838299,0.0887328833,0.0406641662,-0.0313524827,0.0271168724,0.020097211,1.69831562 +0.0683323964,2.66846538,-0.0683323964,0.00014200341,0.248606116,0.175139248,-0.158324614,0.0415158831,0.0199187733,0.0974672139 +-0.506626904,2.66850185,0.506626904,0.00643600943,0.170951784,0.0875325873,-0.247553259,0.3132388,0.0199588891,0.718399942 +0.0818712786,2.66921329,-0.0818712786,0.000329375529,0.194903016,0.117299914,-0.251559138,-0.0122531727,0.0199249666,0.116724446 +0.0997458324,2.66977072,-0.0997458324,0.000347795285,0.189974904,0.106380627,-0.315007865,-0.0436765179,0.0199281909,0.142138436 +0.121835962,2.6706295,-0.121835962,0.000355949276,0.190186173,0.102720387,-0.361495048,-0.0590995923,0.0199305527,0.173657089 +0.208442673,2.67087412,-0.208442658,0.00188992766,0.188642263,0.0978556797,-0.451865256,-0.0310333688,0.0199395213,0.29630658 +-1.03538656,2.67107868,1.03538656,9.10783492e-05,0.145493105,0.0699518993,0.0591690466,0.0618527047,0.0199852847,1.46428359 +-0.447007895,2.671211,0.447007895,0.00788708311,0.172737539,0.088966772,-0.33109498,0.233541712,0.019966023,0.635282993 +-1.18794179,2.6714654,1.18794179,8.86871567e-05,0.157666326,0.0962061137,0.0947903991,0.000135766342,0.0200083833,1.68014264 +-1.03370333,2.67303824,1.03370333,0.000607361086,0.145704523,0.0700441003,0.0626478493,0.0660488456,0.0199838057,1.46189189 +-0.157286078,2.67370653,0.157286078,0.00106293953,0.182393134,0.0978412181,-0.353227675,-0.0987935215,0.0199093893,0.224473298 +-1.19256568,2.67471361,1.1925658,0.00021648976,0.110180721,0.0535034277,0.0305263009,0.0291616321,0.020004889,1.68668211 +0.149903417,2.67483568,-0.149903432,0.000678178738,0.190213338,0.100720242,-0.393719196,-0.058172971,0.0199278444,0.212354824 +-0.0987532288,2.67499399,0.0987532288,0.000233776242,0.184701711,0.1050639,-0.232752383,-0.0742483437,0.0199133717,0.140225828 +-0.0828361362,2.67553473,0.0828361362,0.000252545229,0.186144799,0.112546183,-0.162683755,-0.0225746557,0.0199115612,0.117642611 +0.135758862,2.67569113,-0.135758862,0.000613541517,0.189881429,0.101376422,-0.380934775,-0.057835348,0.019925708,0.192467272 +-1.03746164,2.67624688,1.03746176,0.00128933124,0.144360229,0.0692880005,0.0603379384,0.0648447797,0.0199813824,1.4672029 +-0.0707027018,2.67630053,0.0707027018,0.000109781984,0.240173593,0.173565194,-0.0872045606,0.0447680652,0.0199046712,0.100412361 +0.105561182,2.67657566,-0.105561182,0.000318429316,0.189588025,0.105338611,-0.324150801,-0.0465375558,0.0199229233,0.150153801 +1.08673704,2.67746353,-1.08673704,0.000480765215,0.12304721,0.0604850911,0.0853706524,-0.0193537828,0.0201013908,1.53703189 +-1.00815701,2.67777944,1.00815701,0.000700384378,0.149318293,0.071714662,0.0904950947,0.103511244,0.0199814178,1.42610979 +0.0813371018,2.6784277,-0.0813371018,0.000213091349,0.195195973,0.117924958,-0.241078675,-0.0107709225,0.0199169759,0.116170019 +0.0987860933,2.67845201,-0.0987860933,0.000145138038,0.189846531,0.106642492,-0.306070834,-0.0436011255,0.0199209321,0.141011536 +0.0681696236,2.67846751,-0.0681696162,9.7133292e-05,0.249313876,0.176291734,-0.145342737,0.0423929095,0.0199100915,0.0974239036 +0.397973657,2.67868471,-0.397973627,0.00535765523,0.175405905,0.089460656,-0.465668768,0.196837887,0.0199500248,0.564727783 +-1.19866097,2.67899656,1.19866097,0.00019285141,0.0903682113,0.0402711518,-0.0598308928,0.0221340191,0.0200003386,1.69531095 +-0.228405952,2.6792264,0.228405952,0.000943387626,0.178053394,0.0938462242,-0.42963931,-0.0603543334,0.0199242067,0.324436218 +-1.20305014,2.67944646,1.20305014,0.000411030313,0.0829674453,0.0362796187,-0.0973080099,0.0173882376,0.0199999977,1.70147014 +-1.18379247,2.67985964,1.18379259,0.000105730214,0.129674047,0.0757299811,0.0899029672,-0.0225490667,0.0200017467,1.67425251 +-0.136256397,2.68005919,0.136256397,0.000458189286,0.184939206,0.100564085,-0.312805027,-0.0999229327,0.0199008323,0.192796081 +-0.113831319,2.68075585,0.113831319,0.000236840657,0.186507776,0.103632137,-0.268703967,-0.0895878822,0.0199036766,0.161010057 +0.721918881,2.68076992,-0.721918941,0.00367864082,0.163998738,0.0820512623,0.0324756429,0.435725212,0.0199930463,1.02159762 +-0.112494208,2.68127561,0.112494208,0.000103933293,0.186486289,0.103845678,-0.265140742,-0.088762328,0.0199033935,0.159126759 +-0.113371119,2.68242574,0.113371126,3.21256903e-06,0.18653962,0.103731468,-0.266866505,-0.089568004,0.0199018996,0.160422012 +-0.112631708,2.68268824,0.112631708,5.84050504e-05,0.186513826,0.103886068,-0.264185816,-0.0888800174,0.0199017972,0.159339532 +1.01145983,2.68302965,-1.01145983,0.00119122502,0.143529773,0.0695772395,0.159754366,0.103830636,0.02007908,1.43075669 +-0.113350399,2.68342185,0.113350399,0.000102537706,0.186544612,0.103767894,-0.266128659,-0.0896969065,0.019900756,0.160360947 +1.1798172,2.68351889,-1.17981732,0.000103673985,0.140134007,0.0860650316,0.110040605,-0.0617714636,0.0200854223,1.66858482 +-1.18866563,2.68464899,1.18866563,0.000262670714,0.0995026827,0.0470044315,0.0312261768,0.0123303207,0.0199967586,1.68114436 +-0.75892961,2.68494439,0.75892961,0.00298313354,0.163622111,0.0812858567,0.0795296505,0.453078657,0.0199491587,1.0746851 +0.975736678,2.68512654,-0.975736678,0.00139371539,0.145811439,0.0707210302,0.167613834,0.150785893,0.0200652573,1.38009286 +-0.116560802,2.68517113,0.116560794,0.000266302348,0.186312184,0.103366792,-0.271780461,-0.0914438963,0.0198980793,0.1648525 +0.749361515,2.68550491,-0.749361575,0.00299923983,0.161985636,0.0807348415,0.0601688996,0.412034988,0.0199962575,1.06011391 +-0.185359985,2.68551159,0.185359985,0.000601532403,0.180439502,0.0962433442,-0.387358844,-0.0925081819,0.0198978968,0.263002217 +0.999190569,2.68629313,-0.999190569,0.00115740008,0.143630892,0.069495298,0.164532676,0.119727075,0.0200723521,1.41372669 +-0.111253731,2.68664217,0.111253738,0.000106850712,0.186280236,0.104133978,-0.256296784,-0.0878825411,0.0198975671,0.157350242 +0.550261915,2.68672085,-0.550261915,0.00419192389,0.17470324,0.0890754089,-0.226640984,0.387422711,0.0199623443,0.782943726 +-0.0706518665,2.68733501,0.0706518665,0.000112650348,0.240310639,0.174280837,-0.0749519393,0.0462509543,0.0198928211,0.100522086 +-0.0822836757,2.68735409,0.0822836757,0.000272839272,0.186668783,0.113656588,-0.147139445,-0.0208094232,0.0198987648,0.117085397 +-0.0974684954,2.68745136,0.0974684954,0.000283222587,0.184628427,0.105646864,-0.217364013,-0.0726250559,0.0198998321,0.138687178 +0.172129005,2.68776178,-0.172129005,0.00100193825,0.18897742,0.0991472453,-0.4202829,-0.0505338609,0.0199184604,0.244219914 +-0.286384881,2.68776894,0.286384881,0.00242278655,0.175556749,0.0918959528,-0.475803673,0.0104132127,0.0199355874,0.406934798 +-0.786509275,2.68779087,0.786509275,0.00331299659,0.162881851,0.0806521103,0.0963461995,0.435294092,0.0199511312,1.11282825 +0.0991902053,2.68819857,-0.0991902053,0.000325489382,0.189710751,0.106777631,-0.297924757,-0.044275865,0.0199129265,0.141032487 +-0.195057929,2.68823528,0.195057929,0.00159651949,0.179631367,0.0955719501,-0.396073461,-0.0912298039,0.0198976304,0.276700169 +1.20856845,2.68825221,-1.20856845,0.000332584779,0.0756783411,0.0331863947,-0.104514152,0.00544909481,0.0200849175,1.70928693 +-1.21400917,2.68833733,1.21400917,0.000332589261,0.0706928447,0.0298297666,-0.177638441,0.00695715472,0.0199933071,1.71696901 +0.506791353,2.68838215,-0.506791353,0.00461693201,0.175043687,0.0893674642,-0.318373442,0.346105009,0.019952096,0.718969345 +-1.09370065,2.68855834,1.09370065,0.00052021211,0.0720905066,0.0317010172,-0.0200968273,-0.0661649704,0.0199648105,1.54691005 +0.94239223,2.68862796,-0.94239217,0.00279381219,0.14926511,0.0726569295,0.170153812,0.192446053,0.0200485662,1.33355093 +-1.22193384,2.68870664,1.22193384,0.00026015396,0.0617271625,0.0260162074,-0.23847042,0.00537169911,0.0199928265,1.72818875 +-1.2287128,2.68879771,1.22871292,0.000120232959,0.055668585,0.0282697454,-0.262360066,-0.0158651248,0.0199922305,1.73777652 +0.0816770419,2.68882036,-0.0816770345,0.000304832211,0.195435613,0.118287146,-0.230062783,-0.0119810272,0.0199083425,0.116159432 +-0.620361507,2.68884039,0.620361567,0.0048930021,0.167605072,0.084920384,-0.082622081,0.444761038,0.0199314021,0.877818704 +0.139236867,2.689533,-0.139236867,0.000651216367,0.18923898,0.100889027,-0.379431158,-0.0581711195,0.0199115518,0.197585911 +0.0684612468,2.68963289,-0.0684612468,0.000130770073,0.249611095,0.176847637,-0.129504129,0.0411848351,0.0199008286,0.0973873734 +1.18466115,2.69011593,-1.18466115,0.000248540513,0.0930223167,0.0445960499,0.0579265058,-0.00606883969,0.0200828929,1.67543602 +1.21285665,2.69070792,-1.21285653,0.000231213489,0.0673335642,0.0288370196,-0.145092607,-0.00215116818,0.0200836435,1.71535444 +1.22150624,2.6908927,-1.22150624,0.000279381493,0.0552885272,0.0236012712,-0.215742379,-0.00563965179,0.0200834479,1.72758794 +1.22871041,2.69104671,-1.22871041,0.000127101812,0.0499293283,0.0258339085,-0.245358393,-0.0308870412,0.0200834386,1.73777699 +-1.19484282,2.69146085,1.19484282,0.000644723827,0.0860818177,0.0379142128,-0.0530283675,0.0107510202,0.0199902579,1.68988121 +-1.01837182,2.6917038,1.01837182,0.000490324048,0.147797316,0.0710394159,0.0966657475,0.103496194,0.0199699961,1.44059277 +-0.8393327,2.69171619,0.83933264,0.00287073874,0.16173014,0.0796400681,0.121991932,0.38439846,0.019955745,1.1876123 +-0.241472766,2.69304514,0.241472751,0.00170372997,0.177439138,0.0935187042,-0.44764623,-0.0476348996,0.0199138317,0.343244314 +1.07149506,2.69360447,-1.07149506,0.00141940999,0.124933288,0.0605198666,0.0948151723,0.0747063234,0.0200833343,1.51547325 +0.113111362,2.69364452,-0.113111362,0.000220512942,0.188753009,0.103917852,-0.330402941,-0.0505833402,0.0199075881,0.160225317 +0.12237145,2.69398236,-0.12237145,0.000265713577,0.188884526,0.102381252,-0.349572897,-0.0573964529,0.0199083872,0.173442125 +-1.00109172,2.69579148,1.00109172,0.00174972916,0.150534764,0.0725069195,0.113497548,0.131695196,0.0199676417,1.41642261 +1.1033473,2.6958375,-1.1033473,0.000307521957,0.0759631246,0.0347139686,0.0144982496,-0.0483078882,0.0200781114,1.56040442 +-0.139144644,2.69583988,0.139144644,0.000299316132,0.184389219,0.100432634,-0.31119594,-0.102269612,0.0198825542,0.19717969 +1.17146826,2.69646931,-1.17146826,0.000112780173,0.0943678245,0.0525370054,0.0858225226,-0.0938356519,0.0200796444,1.65683901 +0.194878757,2.69692969,-0.194878757,0.00134846929,0.187302575,0.0977351964,-0.440991729,-0.034741804,0.0199133363,0.276523918 +1.19091225,2.69749546,-1.19091225,0.000309133844,0.0820160657,0.0364042744,-0.0168687049,0.00616690097,0.0200785603,1.68427634 +-0.229870528,2.69824147,0.229870528,0.000935465912,0.178075403,0.0941889659,-0.435650289,-0.0572357103,0.0199016817,0.32658127 +-0.134101868,2.70012641,0.134101868,0.000160268668,0.184808418,0.101004086,-0.30235377,-0.100652963,0.0198773928,0.190199092 +-1.16557634,2.70035791,1.16557634,0.000183981057,0.0602904186,0.0295900516,0.0294095818,-0.088591136,0.0199805386,1.64861798 +-0.195593432,2.70066404,0.195593446,0.000813584658,0.179665178,0.0958103836,-0.399551243,-0.0895922482,0.0198827107,0.277498186 +-1.20617998,2.70079708,1.20617998,0.000289589429,0.0733385161,0.031160472,-0.136248648,-0.000147324638,0.0199832246,1.70591497 +0.705859542,2.70099759,-0.705859542,0.00511659682,0.165313199,0.0830015168,0.00839883182,0.452108324,0.0199718457,0.998770475 +-0.335068911,2.70112324,0.335068911,0.00165530934,0.175197065,0.0914862975,-0.481284857,0.0911519453,0.019929504,0.476000071 +0.119921461,2.70112634,-0.119921461,6.16356847e-05,0.188354552,0.102496162,-0.341409564,-0.0567279309,0.0199009664,0.170206502 +1.15935171,2.70242977,-1.15935171,0.000201458344,0.0758602172,0.0398045182,0.036819309,-0.104776271,0.0200717617,1.63964343 +-1.21131134,2.70293999,1.21131134,0.000297498395,0.0721351802,0.0305064544,-0.160837919,0.000493557891,0.0199820455,1.71321857 +-0.0710116997,2.7029953,0.0710116997,0.000104795552,0.238209069,0.172966033,-0.0544876195,0.0471135043,0.0198751539,0.10061074 +-1.22075701,2.70304012,1.22075701,0.000371444738,0.0642737821,0.0271913745,-0.226374909,0.00114813168,0.0199821759,1.72657347 +-1.2286588,2.70316315,1.2286588,0.000169171486,0.0574332923,0.0286977906,-0.256789863,-0.0213542171,0.0199816972,1.73774946 +0.993629336,2.70347118,-0.993629396,0.000564028567,0.143899217,0.0696693882,0.177288413,0.13324587,0.0200557373,1.40597343 +-0.136386156,2.70376062,0.136386156,0.000232397244,0.184600025,0.100808576,-0.304889262,-0.102317728,0.0198727157,0.193265632 +-0.313184679,2.70382357,0.313184679,0.00177886756,0.174846962,0.0915370211,-0.485703021,0.0491171703,0.0199218672,0.445099324 +-0.0830066428,2.70409393,0.0830066353,0.000240413123,0.186561882,0.113860659,-0.127531856,-0.0235717781,0.0198795386,0.11759074 +-1.11364412,2.70438147,1.113644,0.000327798276,0.0426147208,0.0175727438,-0.0550859869,-0.084721528,0.0199561678,1.57504737 +-0.0986440629,2.70479703,0.0986440703,0.000251742254,0.18446134,0.105849661,-0.202710941,-0.0762987435,0.0198796056,0.139722437 +-0.129698977,2.70485902,0.129698977,0.000297873863,0.185058504,0.101755306,-0.288458645,-0.100127637,0.0198723692,0.183592558 +0.114468515,2.70492482,-0.114468515,0.000269457378,0.188514665,0.103864938,-0.323624194,-0.0531586334,0.0198967177,0.162314504 +1.11122191,2.70498824,-1.11122191,0.000188012229,0.0527077913,0.022993803,-0.0205979496,-0.0614847243,0.0200659037,1.57160449 +0.378810853,2.70571208,-0.378810823,0.00154250138,0.175366551,0.0896741971,-0.514721096,0.190979496,0.0199283808,0.539238632 +1.17651343,2.70616055,-1.17651343,0.000287239964,0.0797933564,0.0361006148,0.0497088619,-0.0265883729,0.0200747531,1.66397548 +1.21002913,2.70617104,-1.21002913,0.00049845007,0.0692924932,0.0296604168,-0.127993852,-0.00706086121,0.0200725682,1.71137893 +1.2201978,2.70644307,-1.2201978,0.0004691043,0.0575485229,0.0246013217,-0.207587808,-0.00647719763,0.0200720076,1.72576094 +-0.141424537,2.70652747,0.141424537,0.000288509647,0.184152827,0.100373872,-0.312976599,-0.102987379,0.0198690966,0.200250804 +0.0683479607,2.70664787,-0.0683479607,0.000202128867,0.249006718,0.177318409,-0.106676996,0.0402932838,0.0198843945,0.097523883 +1.22867155,2.70666981,-1.22867155,0.000212881234,0.0510689914,0.0257091839,-0.245687395,-0.0366645679,0.020071907,1.73774588 +0.0809045136,2.70672655,-0.0809045136,0.000487411016,0.195966899,0.119389489,-0.207127571,-0.0132642807,0.019891208,0.115437701 +-0.183769211,2.70675039,0.183769196,0.000947981142,0.180497959,0.09667781,-0.381050736,-0.0950809866,0.0198708568,0.260408193 +0.0974576175,2.7069664,-0.0974576175,0.000515755615,0.189567715,0.107496455,-0.275892615,-0.0470370948,0.0198948681,0.139038324 +0.123902738,2.70705557,-0.123902731,0.000379448786,0.188263327,0.102077462,-0.345288515,-0.057627514,0.0198951494,0.175761789 +1.11994004,2.70721912,-1.11994004,0.000300520711,0.050731115,0.0224041976,-0.0260666236,-0.0805817842,0.0200635009,1.58387649 +-1.15565085,2.70760298,1.15565085,0.000249543198,0.0406565517,0.0179836378,-0.0175979715,-0.119697139,0.019970268,1.63451695 +1.19799733,2.70761395,-1.19799733,0.000441132288,0.0735711455,0.0316961147,-0.0718797892,-0.00640520826,0.0200724285,1.6942749 +-1.08064008,2.70802736,1.08064008,0.00151339953,0.100811131,0.0461809896,-0.0051412317,0.0369222574,0.0199545957,1.52843785 +-1.13402545,2.70847201,1.13402545,0.000283588975,0.0374908857,0.0160156488,-0.0444233082,-0.0996788517,0.0199605003,1.60384154 +1.02364075,2.70873022,-1.02364075,0.00102899177,0.139327541,0.0671398267,0.159814224,0.114435375,0.0200584829,1.44788623 +-0.160381749,2.70963526,0.160381749,0.000730598869,0.18209514,0.0982018039,-0.350077659,-0.101604067,0.0198643506,0.228072524 +0.118732236,2.70985508,-0.118732229,0.000270874734,0.188291684,0.102778345,-0.332113087,-0.0566946119,0.0198919158,0.168472677 +-1.12246394,2.7101593,1.12246394,0.000208364421,0.0315666907,0.0127328951,-0.0685828775,-0.0969075933,0.0199536067,1.58754516 +0.395079941,2.71174383,-0.395079941,0.00374051766,0.175309345,0.08969713,-0.503080368,0.221958548,0.0199232474,0.560733438 +-0.098575592,2.71181822,0.098575592,9.88728789e-05,0.184503749,0.105966136,-0.197691485,-0.0759850442,0.0198714044,0.139976472 +-0.103339113,2.71183276,0.103339113,0.000251302408,0.184918866,0.105460711,-0.211861506,-0.0824405178,0.0198702086,0.146326944 +1.14211082,2.71197534,-1.14211082,0.000359030673,0.0474709719,0.0217486415,-0.0328371003,-0.125499114,0.0200601295,1.61536658 +-0.0829021484,2.71216965,0.0829021484,0.000162322278,0.186662421,0.114069194,-0.119139783,-0.0236351602,0.0198705606,0.117780074 +-0.0708592683,2.71218896,0.0708592683,7.84550793e-05,0.23725988,0.172116011,-0.043777056,0.0484226756,0.0198653601,0.100722462 +-0.11410518,2.71220398,0.11410518,0.000341034349,0.185804963,0.103748813,-0.252849132,-0.0935820937,0.0198666994,0.162229627 +-1.17096281,2.71375132,1.17096281,0.000405933592,0.0708037168,0.0305446032,-0.00795344543,-0.0265934523,0.0199700035,1.65623593 +-0.380660206,2.71530032,0.380660176,0.00277657341,0.174985453,0.0913107097,-0.464276433,0.170445785,0.0199219976,0.539555907 +-0.19339177,2.71599531,0.19339177,0.00110240781,0.179693788,0.0960888565,-0.404578805,-0.0878396481,0.0198629405,0.274287879 +-0.54391706,2.71635151,0.54391706,0.00553341536,0.170475692,0.0874163136,-0.226168633,0.394724369,0.0199054163,0.770166337 +1.05079484,2.71664381,-1.05079484,0.00175674399,0.134689659,0.0646147728,0.142753556,0.101398669,0.0200584941,1.48619413 +1.183424,2.71678877,-1.18342412,0.00042833449,0.0786241144,0.0340752602,-0.0104455845,-0.00629867427,0.0200669356,1.67374873 +1.09299254,2.71713758,-1.09299254,0.000901581603,0.098415181,0.0450752899,0.0217871666,0.0590899959,0.0200611632,1.54576039 +0.159077123,2.71787405,-0.159077123,0.000882530003,0.186875626,0.0990399122,-0.401906431,-0.0484031737,0.0198864546,0.226452261 +1.16288853,2.71853781,-1.16288853,0.000514814281,0.0758719072,0.0334673151,0.0114054736,-0.0238590688,0.0200639125,1.64464521 +-0.0992854759,2.71912813,0.0992854685,0.000283134577,0.184325248,0.105956621,-0.192088664,-0.0788715631,0.0198625829,0.140626013 +-0.847163975,2.71958494,0.847164035,0.00372842932,0.161594361,0.0796979591,0.135838181,0.397034645,0.0199331176,1.19909644 +0.1794945,2.71979451,-0.1794945,0.00186683133,0.186166734,0.0977412909,-0.432417989,-0.0393615551,0.0198881924,0.256313741 +-0.399948269,2.72004938,0.399948299,0.00450133113,0.174231678,0.0908286422,-0.455024868,0.205787152,0.0199165884,0.566517472 +-0.0834153295,2.72067261,0.0834153295,0.000257498177,0.186626375,0.114065252,-0.109340042,-0.0251882467,0.0198604744,0.1181622 +-0.646343231,2.72142744,0.646343231,0.00546462461,0.167483881,0.0848629549,-0.0622651055,0.483351052,0.0199004076,0.916010976 +-0.0711979419,2.72198439,0.0711979493,0.000111969326,0.235953316,0.170596361,-0.0304772705,0.0487637408,0.019853998,0.100865632 +0.137109339,2.72294474,-0.137109339,0.000706643215,0.18708992,0.100209415,-0.369041324,-0.0587454177,0.0198823418,0.19627066 +0.469514906,2.72332907,-0.469514936,0.00498244958,0.174916148,0.0895839334,-0.414726377,0.331997156,0.0199238621,0.667855203 +-0.279173732,2.72435713,0.279173732,0.00161609484,0.17622678,0.0928849652,-0.496859491,0.0158932097,0.0198952649,0.397330016 +-0.885923386,2.72472405,0.885923386,0.00334944832,0.159697026,0.0783353522,0.150713563,0.343556941,0.0199352968,1.25313544 +-0.16409348,2.72523355,0.16409348,0.00079822581,0.18191646,0.0981836468,-0.35991025,-0.0988724232,0.0198455453,0.234942958 +-0.136567995,2.72724485,0.136567995,0.000406102365,0.184323043,0.100952551,-0.303981513,-0.101316616,0.0198439602,0.19482325 +-1.16010833,2.7274065,1.16010833,0.000625097076,0.0623640791,0.0259133615,-0.0421927199,-0.037691623,0.0199562442,1.64082122 +-0.807940364,2.72750425,0.807940364,0.00359956175,0.162774503,0.0807129666,0.123128846,0.447926581,0.01991909,1.14424706 +-1.17365777,2.72910643,1.17365777,0.000679506222,0.0796723738,0.0341645963,-0.0401754677,-0.00528515456,0.0199577212,1.66004741 +-1.10685289,2.72915888,1.10685289,0.000945648178,0.0757717639,0.0325705856,-0.054810714,0.0229384229,0.0199420732,1.56544268 +1.10372102,2.72940159,-1.10372102,0.000557802501,0.0849185064,0.0375844985,-0.0155902272,0.0522004366,0.0200490244,1.56099784 +0.373562217,2.73004723,-0.373562217,0.00246556499,0.175149024,0.0898722634,-0.550250888,0.203315109,0.0199090708,0.530159473 +1.04969668,2.73030305,-1.04969668,0.00116864278,0.134861887,0.0645461082,0.150462776,0.108011901,0.0200465154,1.48473835 +-1.13296747,2.73152566,1.13296747,0.000732930785,0.0657827184,0.0275487639,-0.0586349629,-0.00425206171,0.0199462622,1.60234451 +-0.150238931,2.73175192,0.150238931,0.000429384294,0.183143049,0.0997562334,-0.326079249,-0.103265151,0.0198378079,0.213608995 +0.906463385,2.73175907,-0.906463385,0.00558365788,0.151794881,0.074169457,0.189310372,0.251485467,0.0199985802,1.28467441 +1.11535645,2.73199725,-1.11535645,0.00084786152,0.0802632123,0.0350284502,-0.0245354436,0.0292468499,0.0200482309,1.5773946 +-0.11812821,2.73246384,0.11812821,0.000254977087,0.185277134,0.103382811,-0.248753086,-0.0990897343,0.0198405702,0.167191237 +1.01051283,2.73393321,-1.01051283,0.00120820059,0.141903684,0.0684248209,0.188510075,0.129808679,0.0200333241,1.42916858 +0.0690339282,2.73413134,-0.0690339208,0.000131860463,0.248870596,0.177886724,-0.0694011673,0.037827637,0.0198625904,0.097662963 +1.03005958,2.7348032,-1.0300597,0.000612379343,0.138509601,0.0665914193,0.172829315,0.118916139,0.0200375151,1.45677733 +0.0995323211,2.73487544,-0.0995323211,0.000293834193,0.188871145,0.107372127,-0.258250058,-0.0531013012,0.0198713969,0.140792951 +-0.295545548,2.7351737,0.295545518,0.00192873657,0.175302669,0.09234716,-0.522816896,0.044002939,0.0198887121,0.420963138 +-1.06318009,2.73527813,1.06318009,0.00245205103,0.131619394,0.0619454943,0.0679738224,0.0982069522,0.019937247,1.50374365 +0.082203716,2.73529387,-0.082203716,0.000216457236,0.195287302,0.118940577,-0.179844603,-0.0183951147,0.0198677052,0.116259389 +0.0690040365,2.73533368,-0.0690040365,6.622076e-06,0.248922437,0.177940473,-0.0680734292,0.037781477,0.0198617112,0.0976821333 +-0.32202208,2.73535538,0.32202208,0.00223021326,0.175008178,0.0920316875,-0.518670678,0.0864564329,0.0198922306,0.456378132 +0.082200624,2.73545647,-0.082200624,3.12463089e-06,0.195279583,0.118935868,-0.179709747,-0.0184179954,0.0198675785,0.116264865 +0.0847799778,2.73549438,-0.0847799852,0.000181851938,0.194339365,0.11729899,-0.191232026,-0.0235824604,0.0198680293,0.119897164 +0.0822025165,2.73554039,-0.082202509,0.000218177956,0.195279539,0.118939184,-0.179627553,-0.0184123833,0.0198675282,0.116263106 +0.0995328277,2.73554111,-0.0995328352,3.70286261e-06,0.188847587,0.107358269,-0.257728934,-0.0533701666,0.0198708288,0.140843928 +0.0997964218,2.73556757,-0.0997964293,0.00023685112,0.188853845,0.107309438,-0.258484125,-0.0534212813,0.0198707543,0.141174823 +0.0995348096,2.73592186,-0.0995348096,4.57645183e-05,0.188850403,0.107366107,-0.257364035,-0.0533690751,0.0198704489,0.140829578 +0.0690280348,2.73594189,-0.0690280348,0.000131991153,0.248916969,0.177992031,-0.0672607422,0.0377729721,0.0198613647,0.0976888314 +0.245312989,2.73612571,-0.245312974,0.0015198671,0.182665914,0.0947701856,-0.51171267,0.0239936095,0.0198810268,0.347020388 +-0.121319532,2.73637772,0.121319532,0.000257366162,0.184959128,0.102947727,-0.254647464,-0.100609981,0.0198353492,0.171865523 +-0.37190938,2.73668671,0.37190938,0.0022653779,0.175076485,0.0917430967,-0.494306862,0.171049863,0.0198993925,0.52647388 +1.14416301,2.73676252,-1.14416301,0.000939843769,0.0695600584,0.0293434653,-0.0408735089,-0.0270193052,0.020048555,1.61826849 +-1.11854351,2.7369771,1.11854351,0.000560616842,0.0656777844,0.0273841657,-0.0750507265,0.011347197,0.0199381299,1.58199978 +1.1685555,2.73720169,-1.1685555,0.000660657126,0.0838807523,0.0365309753,-0.00325475074,0.012340555,0.0200508609,1.65265894 +0.98645395,2.73722839,-0.986453891,0.00153662392,0.1449458,0.0701793358,0.194687188,0.153807744,0.0200233813,1.39527631 +0.325512201,2.73723984,-0.325512171,0.00236805715,0.178092048,0.091738835,-0.55826205,0.13130641,0.0198915303,0.460481167 +-1.0142982,2.73728418,1.0142982,0.00164432288,0.148050025,0.0710138306,0.140580297,0.154001072,0.019935824,1.43455803 +-0.0999214798,2.73730636,0.0999214798,0.000302346889,0.183692664,0.105531417,-0.183552578,-0.0817034021,0.0198409539,0.142557874 +-0.0834271312,2.73796225,0.0834271312,0.000317470025,0.186150372,0.11369694,-0.0933853239,-0.0268606618,0.0198405311,0.118990704 +-0.0707952231,2.73800564,0.0707952306,0.000130383822,0.234517157,0.168298855,-0.0106509421,0.049699381,0.0198361147,0.100932576 +0.164409041,2.73810482,-0.164409041,0.000761177856,0.185679227,0.0983587876,-0.408385396,-0.0412509553,0.0198674891,0.233570576 +-0.115059838,2.73877287,0.115059838,0.00021305203,0.184797734,0.103807859,-0.233199328,-0.0964486748,0.0198338423,0.162877068 +-0.908300519,2.73902726,0.908300519,0.00230072835,0.158560127,0.077622816,0.162089869,0.322376579,0.0199265033,1.28529024 +-0.119252577,2.73919439,0.119252577,9.88442844e-05,0.185043991,0.103214696,-0.248897403,-0.099851191,0.0198318753,0.168991104 +0.124165297,2.73925328,-0.124165297,0.000347048684,0.186711401,0.101504914,-0.333237082,-0.0577707812,0.0198690668,0.176548064 +0.502679944,2.73968554,-0.502679944,0.00496417331,0.174824536,0.0896904618,-0.370046198,0.390472054,0.0199103691,0.712611914 +-1.19797015,2.73984265,1.19797015,0.00060177967,0.080080919,0.0344063826,-0.0983119607,-0.000865907525,0.0199530516,1.69426918 +0.250729024,2.74031591,-0.250729024,0.00170138758,0.181937426,0.0943580866,-0.518263161,0.0304776803,0.019877689,0.354774803 +1.18853879,2.74041653,-1.18853879,0.000620988198,0.0809385777,0.0352372751,-0.0386879519,0.0063334899,0.0200480651,1.68089175 +-0.962406933,2.74050212,0.962406933,0.0022163745,0.154876366,0.0751136616,0.1632673,0.236410141,0.0199309811,1.361148 +0.964841664,2.74057102,-0.964841723,0.00119988329,0.147649586,0.0716383085,0.200054616,0.182706803,0.0200118143,1.36498487 +-0.219330743,2.74057436,0.219330743,0.00130131596,0.178124979,0.0951267108,-0.467153847,-0.0548759326,0.0198457222,0.310342997 +0.310882539,2.74060678,-0.310882568,0.00296809874,0.178918943,0.0922915339,-0.565249383,0.112841614,0.0198870916,0.440069616 +-0.959941387,2.74142671,0.959941328,0.00118890987,0.15510805,0.075263299,0.164518863,0.241075307,0.0199301206,1.35769522 +0.248418793,2.74146366,-0.248418793,1.19299348e-05,0.182098046,0.0944796354,-0.517486274,0.0284981318,0.0198764373,0.351694465 +0.856269956,2.74161363,-0.856269956,0.00409659278,0.154663399,0.0760449246,0.162855566,0.31989491,0.0199709907,1.21237898 +0.246255726,2.74216986,-0.246255726,0.00104119955,0.182190254,0.0945794582,-0.515017331,0.0271196924,0.0198750813,0.348535478 +0.116395652,2.74227428,-0.11639566,0.000432848552,0.186810851,0.102555349,-0.313905001,-0.056365408,0.0198651683,0.165579557 +-0.119435221,2.74357677,0.119435221,0.000367798581,0.184910566,0.103174351,-0.247272551,-0.100036547,0.0198265184,0.169227779 +-1.20129895,2.74372959,1.20129895,0.000378846365,0.079583481,0.0341020264,-0.1143457,-0.000432129717,0.0199504029,1.69900942 +-1.21623445,2.74379158,1.21623445,0.000504365598,0.0731306449,0.0313853398,-0.196098357,0.00344429933,0.0199522804,1.72012949 +-1.2286675,2.74401593,1.2286675,0.000229220197,0.0609110668,0.0282446407,-0.25081414,-0.0304014906,0.0199529771,1.73771393 +1.01926589,2.74447584,-1.01926589,0.000138923584,0.140347809,0.0675293878,0.187751383,0.127692759,0.020026356,1.44169831 +0.249407887,2.74459529,-0.249407902,0.001116917,0.181805715,0.0943394303,-0.521210909,0.0318680443,0.0198732093,0.352951288 +0.247577026,2.74481559,-0.247577026,0.000982334022,0.181924403,0.0944375396,-0.518550158,0.0298520159,0.0198726356,0.35041517 +0.313529134,2.74534941,-0.313529104,0.000180410265,0.178514287,0.0920972377,-0.56997925,0.119555697,0.0198831037,0.444170147 +-0.961616516,2.74538875,0.961616576,0.00143393653,0.154983893,0.0751911253,0.167425692,0.241811559,0.0199268777,1.36003757 +0.146392763,2.74622107,-0.146392763,0.000468866201,0.185643911,0.0992397144,-0.381155699,-0.0488768294,0.0198604334,0.208779693 +-0.973101318,2.74646091,0.973101258,0.00171942892,0.153352529,0.0741934478,0.163734019,0.22619988,0.0199268069,1.37619138 +1.07960165,2.74649072,-1.07960165,0.00114158832,0.119871683,0.0556998588,0.0967121646,0.098728776,0.0200367123,1.52682281 +-1.03602147,2.74679089,1.03602147,0.00166431,0.140794069,0.0669858381,0.1198458,0.137898907,0.0199285913,1.46524489 +-0.388768107,2.74688721,0.388768107,0.00376296625,0.174691573,0.0914954916,-0.505477011,0.215121552,0.0198908877,0.551856995 +-0.130440503,2.74757743,0.130440503,0.000267975411,0.184496552,0.10224665,-0.274558514,-0.10282623,0.0198201295,0.184526831 +0.0986317843,2.74846673,-0.0986317843,0.000199675225,0.188805446,0.107599899,-0.247135341,-0.0510405377,0.0198607985,0.139487579 +-0.239609659,2.7488606,0.239609659,0.00113838539,0.177081779,0.0942762122,-0.498467386,-0.0328565761,0.0198452342,0.339113563 +0.308592618,2.74966073,-0.308592618,0.00146234955,0.178615019,0.0922356918,-0.571878493,0.116473317,0.0198776983,0.436927825 +-1.19165897,2.74967527,1.19165897,0.000450155436,0.0816876739,0.03510236,-0.0934100077,0.00463514728,0.0199444704,1.68532705 +-1.1633954,2.74997473,1.1633954,0.00096288207,0.0829473436,0.0355875604,-0.0361445583,0.00623055408,0.0199399833,1.64548421 +-0.0710517094,2.75068092,0.0710517094,0.000127223262,0.233086675,0.16647622,0.00875667762,0.0487035811,0.0198212396,0.100851491 +-0.0841017142,2.75152469,0.0841017142,0.000294451223,0.18589589,0.113541521,-0.0772074312,-0.0300388113,0.0198244434,0.119382277 +-0.101222098,2.75160265,0.101222098,0.000284260605,0.183438689,0.10536015,-0.174779803,-0.0838467926,0.0198236518,0.143685892 +-0.598842382,2.75173092,0.598842382,0.0046582208,0.170001477,0.0870027468,-0.163145244,0.479042113,0.0198699534,0.847642958 +0.821229696,2.75190282,-0.821229696,0.00843392219,0.157136977,0.0776255429,0.144829363,0.367513537,0.019954253,1.16344666 +0.130803168,2.75193214,-0.130803168,0.000513594016,0.185872167,0.100816078,-0.343436718,-0.0519123599,0.019856967,0.185677767 +1.0168035,2.75245476,-1.01680338,0.000107528191,0.14047645,0.0675176457,0.193557605,0.133467317,0.020018341,1.43833208 +1.19531798,2.75290442,-1.19531798,0.000535292202,0.0802094191,0.034879297,-0.0748920441,0.011097881,0.0200379565,1.69055533 +1.21353233,2.75319171,-1.21353233,0.000625074608,0.0700336248,0.0306042545,-0.177638739,0.0124618988,0.0200363956,1.71631622 +1.22869182,2.75343251,-1.22869182,0.000283712492,0.0553214997,0.025717631,-0.254466295,-0.0423302129,0.0200360939,1.73775649 +0.120705143,2.7540257,-0.120705143,0.000661391881,0.186185867,0.101800188,-0.320603877,-0.0558143072,0.0198550001,0.171578288 +-0.635079145,2.7557044,0.635079145,0.0044208481,0.168828666,0.085997045,-0.0912729353,0.506762326,0.0198675897,0.899484873 +-0.145348176,2.75576591,0.145348176,0.000325518165,0.183790326,0.10079632,-0.31292963,-0.105359554,0.01980762,0.205871224 +-1.01323652,2.75620723,1.01323652,0.00034744275,0.147298768,0.0705380514,0.155240044,0.173738539,0.0199215133,1.43341041 +-0.149069354,2.75744772,0.149069354,0.000291450677,0.183494762,0.100455821,-0.321825415,-0.104265675,0.0198053606,0.211568594 +-0.917944491,2.75773621,0.917944491,0.00227682176,0.157858223,0.077199854,0.175838903,0.323053777,0.019911373,1.29878199 +-1.19606912,2.75794291,1.19606912,0.000465091958,0.083709158,0.0362164266,-0.0921361446,0.0132349962,0.0199395176,1.69155407 +-0.106623515,2.75804877,0.106623515,0.000132172412,0.183529183,0.104546808,-0.192259967,-0.0876606405,0.0198141951,0.151972368 +-1.21387935,2.75815082,1.21387935,0.000579777639,0.0764894336,0.0330338664,-0.179116935,0.00920635927,0.0199418999,1.71674252 +-1.22870207,2.75832582,1.22870195,0.000265056675,0.0620892309,0.0281639453,-0.247627586,-0.030756779,0.0199429821,1.73770571 +0.311638951,2.75965571,-0.311638951,0.00205526431,0.177995741,0.0919753164,-0.589878738,0.12957482,0.0198705643,0.440952122 +0.330767602,2.76001096,-0.330767602,0.00164575735,0.177891314,0.0918326005,-0.58198452,0.165156111,0.0198737495,0.467900306 +-1.1288631,2.76012802,1.1288631,0.000546708936,0.0970423967,0.0427822992,-0.00902959611,0.0508727096,0.0199277159,1.59654164 +-1.02139699,2.7610693,1.02139688,0.000887384289,0.145774841,0.0696329325,0.152319223,0.166651145,0.0199183896,1.44479728 +-1.0977937,2.7612617,1.0977937,0.00139589456,0.112918794,0.0512780175,0.0237527788,0.0885516554,0.0199223738,1.55263031 +1.02329969,2.76136899,-1.02329957,0.0012002117,0.139230266,0.0666813254,0.18879807,0.134191155,0.0200123638,1.44730449 +1.01062393,2.76161098,-1.01062393,0.00142950937,0.141890094,0.0683133304,0.200687319,0.141656816,0.020008754,1.42942548 +-0.149720922,2.76245689,0.149720922,3.27774142e-05,0.183361813,0.100454397,-0.325671345,-0.102910183,0.0197997782,0.212526098 +1.18166804,2.76248097,-1.18166792,0.000538371678,0.0846691281,0.0369894616,-0.045282308,0.0174540114,0.0200310685,1.67123973 +-0.565490484,2.7625525,0.565490484,0.0012399425,0.171140343,0.0880323425,-0.223859593,0.459527105,0.0198591948,0.803074181 +1.09495831,2.76307964,-1.09495831,0.000512792496,0.111944422,0.0510526337,0.0713592991,0.0981914401,0.0200240072,1.54860675 +0.0985209271,2.76355791,-0.0985209271,0.000258471089,0.188602,0.107592873,-0.238319457,-0.0485595092,0.0198491178,0.139352933 +1.19190586,2.76380587,-1.19190586,0.000294724276,0.0832668617,0.0364129208,-0.0612507947,0.0165096261,0.020029651,1.6857574 +1.21196973,2.76416349,-1.21196973,0.000324507651,0.0734290853,0.0323122516,-0.169553578,0.0185148045,0.0200277474,1.71413445 +0.766592622,2.76418829,-0.766592622,0.00464784494,0.161315173,0.0803570002,0.0945731923,0.421724439,0.0199275836,1.0877533 +0.0690925717,2.764292,-0.0690925792,0.000133473208,0.248878092,0.179898411,-0.0243733358,0.0338399857,0.0198415276,0.0978908613 +0.0973952413,2.76429749,-0.0973952413,0.000149216794,0.188714206,0.10786356,-0.234198868,-0.0482450426,0.0198486298,0.137818336 +0.08110594,2.76445699,-0.08110594,0.000299233478,0.195991173,0.120812967,-0.141646877,-0.019699214,0.0198463481,0.114843801 +1.22868919,2.76446128,-1.22868919,0.000147239218,0.056503199,0.0257419106,-0.255373001,-0.0422776118,0.0200273339,1.73778152 +0.151486993,2.76453447,-0.151486993,0.000699345721,0.18462263,0.0986697599,-0.394004732,-0.0427977927,0.0198478028,0.216696382 +1.11085713,2.76467466,-1.11085713,0.00113191199,0.105645165,0.047625605,0.0527771488,0.0787550732,0.0200247616,1.57103205 +-0.101305306,2.76500702,0.101305306,0.000251115649,0.183291301,0.105305068,-0.168816447,-0.0827889815,0.0198076162,0.144642338 +0.0973911062,2.76509452,-0.0973911136,0.000178979026,0.188699484,0.107873604,-0.233739078,-0.0481596515,0.0198481698,0.137776434 +-0.147651926,2.76530933,0.147651926,4.74305998e-05,0.183470488,0.100643098,-0.320304006,-0.103464022,0.0197966937,0.209552497 +-0.0705277547,2.76558304,0.0705277547,0.000161925243,0.231565967,0.164506093,0.0299152769,0.0501393974,0.0198044982,0.100756265 +-0.251739562,2.76559067,0.251739562,0.0021910253,0.176643312,0.0941509753,-0.520480096,-0.0103381202,0.0198311955,0.356345922 +-0.083844617,2.76561737,0.083844617,0.000358118559,0.185700208,0.113478705,-0.063011542,-0.0305812899,0.0198082402,0.119745329 +1.14875889,2.7660079,-1.14875889,0.00137968617,0.0905495882,0.0396308303,0.00592095498,0.0307941735,0.0200288352,1.62476635 +0.0811267793,2.7660985,-0.0811267793,0.000226826305,0.196059719,0.120905243,-0.139836043,-0.0199922528,0.0198454019,0.114811242 +0.190165967,2.76616335,-0.190165967,0.0011170191,0.182654142,0.0962632373,-0.462581187,-0.0164486207,0.0198494773,0.270070702 +-1.14632344,2.76638341,1.14632344,0.00108313211,0.0934232026,0.0408798084,-0.0188148972,0.045209378,0.0199254546,1.62145209 +-0.734552443,2.76667976,0.734552503,0.00357637438,0.166024551,0.0835372582,0.0506892391,0.535973787,0.0198702887,1.03889155 +0.0691130981,2.76673698,-0.0691130981,9.6888034e-05,0.24888733,0.179979339,-0.0204431657,0.033261992,0.0198401753,0.0978402495 +0.0991840586,2.76695704,-0.0991840661,0.000201303104,0.188360989,0.107379213,-0.240215749,-0.0480240285,0.0198468231,0.140281916 +-1.01187789,2.76707363,1.01187801,0.00145993475,0.14733091,0.0705716684,0.164290309,0.183131412,0.0199130997,1.43137932 +-0.23437655,2.76760507,0.23437655,0.000508049445,0.177244365,0.0947491229,-0.511683702,-0.0321425349,0.0198209025,0.332349122 +-0.142921478,2.76800632,0.142921478,0.000697587267,0.183692485,0.101117112,-0.302553236,-0.104254,0.0197942518,0.202432513 +0.178427383,2.76867175,-0.178427383,0.000737046881,0.183038145,0.0969394445,-0.441275686,-0.0221886728,0.0198439285,0.252834737 +-0.107295454,2.76930285,0.107295454,0.000329101342,0.183200806,0.104409233,-0.188838363,-0.088333115,0.0198003575,0.152853012 +1.08856332,2.76955748,-1.08856332,0.00123051577,0.115144253,0.0527656041,0.0870969743,0.104392886,0.0200177729,1.53955662 +-1.1142602,2.77106571,1.1142602,0.00149336015,0.105049126,0.0469547771,0.0047262595,0.0796150118,0.0199175905,1.57594049 +0.595949948,2.77144527,-0.595949948,0.00323832268,0.173729971,0.0887529925,-0.190635383,0.485901505,0.0198926032,0.842807412 +0.596192479,2.77156329,-0.59619242,0.00317733339,0.173720494,0.0887474716,-0.190271676,0.486146361,0.0198925268,0.843150914 +0.595843136,2.77171206,-0.595843077,0.00206070277,0.173729673,0.0887556598,-0.191092759,0.486071557,0.0198923796,0.842654586 +0.596105993,2.77173185,-0.596106052,8.29061051e-08,0.173726797,0.0887523219,-0.190470874,0.4862279,0.0198923796,0.843034863 +0.596326232,2.77193427,-0.596326232,0.00599013967,0.173713565,0.0887436569,-0.190048277,0.486316293,0.0198922213,0.843337715 +0.596007645,2.77204657,-0.596007645,0.00334303407,0.173723713,0.0887537822,-0.190910429,0.48647213,0.0198920928,0.842887759 +-1.1701436,2.77282333,1.1701436,0.00112497027,0.0899683386,0.0392644219,-0.0325241126,0.034126915,0.0199246295,1.65513968 +-0.159833521,2.77353859,0.159833521,0.000630333961,0.182741225,0.0998517722,-0.350793362,-0.0980292559,0.0197876841,0.226135463 +-0.172897637,2.77399111,0.172897637,0.000782480696,0.18164295,0.0986258835,-0.385131717,-0.0916156769,0.019788865,0.24487637 +1.09777009,2.77502036,-1.09777009,0.00102328672,0.113399953,0.0516735204,0.0702715591,0.101390168,0.0200142208,1.55256212 +-0.547322631,2.77569437,0.547322631,0.0021772841,0.171655878,0.0886407197,-0.271725148,0.452453315,0.0198475737,0.777799249 +0.188305512,2.77571011,-0.188305497,0.00104569911,0.182080001,0.0961616114,-0.461958408,-0.0128120622,0.0198391937,0.267186582 +-0.238735065,2.77591372,0.23873508,0.000216303917,0.176831335,0.094558455,-0.526927888,-0.0236403644,0.0198134184,0.338803053 +0.969816983,2.77627087,-0.969816983,0.000474265777,0.146910295,0.0711792782,0.217302591,0.187401816,0.019982513,1.37245524 +0.193676114,2.77641368,-0.193676099,0.00143992214,0.181692153,0.0957748145,-0.474271446,-0.00747839455,0.0198399201,0.275095701 +0.845145345,2.7764535,-0.845145345,0.0038047703,0.15544337,0.076565221,0.172625661,0.340454608,0.0199357513,1.19709599 +0.956652224,2.77700138,-0.956652284,0.00324468967,0.148200795,0.0719592199,0.216157481,0.202340066,0.0199759454,1.35383368 +1.19094181,2.77799749,-1.19094181,0.000910801115,0.0880218372,0.0390021838,-0.0482187606,0.0300199091,0.0200173315,1.6843344 +1.21155429,2.77826619,-1.21155429,0.000749712694,0.0774967447,0.034453027,-0.161179066,0.0237490591,0.0200156979,1.71348655 +1.22873151,2.77848959,-1.22873163,0.000339256425,0.0582691208,0.0264976192,-0.253861725,-0.0412586108,0.0200153962,1.73778009 +-0.491333783,2.78073597,0.491333753,0.00260546873,0.173314646,0.0903174877,-0.398629218,0.395576775,0.0198477618,0.695003271 +-0.359736979,2.781672,0.359736979,0.00376211107,0.174770474,0.0922649205,-0.571152091,0.187256515,0.0198530573,0.509154022 +-0.205518067,2.78228402,0.205518067,0.000971041096,0.179343283,0.0967710242,-0.455204487,-0.0593528971,0.0197920911,0.290759295 +-0.72253412,2.78232956,0.72253412,0.00421812152,0.166650027,0.0841181576,0.0393786319,0.553076982,0.0198542662,1.0222044 +-0.10302268,2.78271675,0.10302268,0.000296228769,0.182830215,0.105040967,-0.160080507,-0.0868336558,0.0197869986,0.146035984 +-0.0849604607,2.7843256,0.0849604607,0.000324711989,0.185053349,0.113049611,-0.043399211,-0.0345415846,0.0197866689,0.120417282 +1.14302266,2.78452158,-1.14302254,0.0015271547,0.0982781053,0.0436288938,0.0204718448,0.0582626052,0.0200120043,1.6167264 +-0.244005069,2.7849257,0.244005069,0.00258434983,0.176705375,0.0945250168,-0.545547247,-0.00861056708,0.0198061001,0.345818847 +-0.0711699203,2.78543949,0.0711699203,0.000140384363,0.229788214,0.162234247,0.060434211,0.0495148078,0.0197816677,0.100860685 +-0.480502129,2.78638816,0.480502158,0.0032237086,0.173727199,0.0906870365,-0.419804752,0.385852128,0.0198438354,0.679806471 +1.16358936,2.78678179,-1.16358936,0.00125348358,0.0946852714,0.0422239974,-0.00158709381,0.0468945354,0.0200103819,1.64570725 +-0.228792816,2.78691626,0.228792816,0.00108357018,0.177282199,0.0951377526,-0.520242989,-0.0314586014,0.0197961964,0.323845476 +-0.123575628,2.78700018,0.123575628,0.000753291533,0.183872402,0.102634601,-0.249757022,-0.0965070724,0.0197749753,0.176448137 +0.0681527555,2.78701448,-0.0681527555,0.000184840348,0.25109148,0.182553902,0.00839403179,0.0334694795,0.0198266227,0.0976193994 +0.0804928169,2.78710747,-0.0804928169,0.000426400104,0.195419103,0.12060301,-0.119110644,-0.0239098333,0.0198307093,0.115281522 +-1.11015558,2.78725529,1.11015558,0.00104468304,0.113275632,0.0510360263,0.0147593804,0.101561904,0.0199071448,1.5701009 +0.0963375717,2.78748178,-0.0963375717,0.000458304188,0.18761462,0.10764046,-0.219226763,-0.0516236834,0.0198320374,0.137885585 +-0.730251431,2.78816772,0.730251431,0.00314109074,0.166530833,0.0840305835,0.0485555008,0.555520058,0.0198500603,1.03296185 +-0.17863059,2.7885778,0.17863059,0.0011955495,0.181191474,0.0984209701,-0.402732879,-0.0859403014,0.0197735224,0.253163099 +-0.724136174,2.78894615,0.724136233,4.18146883e-05,0.166733474,0.0841992646,0.0411865562,0.558500946,0.0198484156,1.02469623 +-0.717271984,2.78982139,0.717271984,0.00249427906,0.16703777,0.0844464004,0.0285799094,0.557375133,0.0198467392,1.01464689 +-0.811942577,2.78993011,0.811942577,0.00730425958,0.1628685,0.0811580047,0.1487073,0.491682976,0.0198659245,1.15098786 +0.12086875,2.79062748,-0.12086875,0.000499749847,0.184487849,0.101385713,-0.31560266,-0.0483788475,0.019830443,0.171474427 +-1.18243563,2.79063988,1.18243563,0.00158790522,0.0941088721,0.0416419096,-0.0344985574,0.0522140339,0.0199144464,1.67248046 +-0.171187818,2.79069734,0.171187803,0.000564447022,0.181581229,0.0988946706,-0.384996474,-0.0893220007,0.0197689738,0.242777467 +-1.20679832,2.79116511,1.20679832,0.00122020557,0.0849407986,0.0372540914,-0.130600706,0.0285778753,0.0199181512,1.70693862 +-1.22855687,2.79125595,1.22855687,0.000570736534,0.0647035912,0.0279612336,-0.239749432,-0.0285575129,0.0199201256,1.73771453 +0.976945877,2.79193473,-0.976945877,0.00224650302,0.14614892,0.0706716925,0.220666096,0.186353892,0.0199719742,1.38207555 +-0.313188285,2.79271364,0.313188285,0.00373412599,0.174628302,0.092642881,-0.613107383,0.118314177,0.0198342875,0.443690628 +-1.05433404,2.79304504,1.05433393,0.00135344511,0.138736725,0.0652466193,0.127806023,0.156397298,0.0198984817,1.49107575 +-0.898063362,2.79345703,0.898063421,0.00390298059,0.159301922,0.078404285,0.194357634,0.376119614,0.0198772606,1.27033556 +1.05146289,2.79360008,-1.05146289,0.0024671955,0.133171394,0.0628099889,0.169507772,0.13636902,0.0199911762,1.48764229 +-0.11014539,2.79372644,0.11014539,0.000296855869,0.183088899,0.104343481,-0.184422895,-0.0905266702,0.0197722726,0.156246111 +0.145008653,2.79408407,-0.145008653,0.000578782463,0.182855472,0.0984669998,-0.381181598,-0.035307128,0.0198250432,0.20530805 +-0.103078812,2.79411173,0.103078812,0.000157045914,0.182665274,0.105009332,-0.157683179,-0.0862825885,0.0197743475,0.146925777 +-0.084774144,2.79446387,0.084774144,0.000200898838,0.184779227,0.112837732,-0.0366186872,-0.0342260785,0.0197755769,0.120748788 +-0.0708577558,2.79451585,0.0708577558,7.95957239e-05,0.22952269,0.161520034,0.0721438825,0.0505515151,0.0197719391,0.100865766 +-0.175279289,2.79554486,0.175279289,0.000404750666,0.181306705,0.0986325443,-0.399486601,-0.0863319114,0.0197646786,0.248533234 +0.114470273,2.79564214,-0.114470273,0.000191086176,0.184775099,0.102840282,-0.289595366,-0.0487132668,0.019826103,0.162505373 +-1.06644058,2.79565907,1.06644058,0.00101520307,0.13523899,0.0632444993,0.110839948,0.145194232,0.0198971853,1.508219 +0.140563861,2.79581594,-0.140563861,0.00032743215,0.182947263,0.0988856778,-0.37123248,-0.0368248522,0.0198235549,0.199098289 +-0.722119689,2.79605055,0.722119689,0.00293563143,0.166944325,0.0844054595,0.0358940177,0.564357519,0.0198418815,1.02150583 +0.119587705,2.79747248,-0.119587712,9.62141057e-05,0.184248418,0.101502255,-0.309925675,-0.0479561388,0.019825168,0.169897124 +0.523435116,2.79754829,-0.523435116,0.00734925456,0.174277306,0.0896816999,-0.372348756,0.472077191,0.019864263,0.742750168 +0.716672182,2.7982316,-0.716672182,0.00440076599,0.165774703,0.0833090767,0.037088491,0.470657259,0.01988874,1.01769114 +-0.48628056,2.79880023,0.48628059,0.00103593373,0.173842549,0.0908554867,-0.425810337,0.406464428,0.0198307075,0.688297272 +-0.480724692,2.7990334,0.480724692,0.00190494629,0.173860595,0.0909090117,-0.43546024,0.398217112,0.0198312551,0.680486977 +0.146803677,2.79981637,-0.146803677,0.000711546047,0.182371542,0.0982238948,-0.38583371,-0.0319200382,0.0198210254,0.208008945 +-1.07297111,2.80101037,1.07297111,0.000319643674,0.13232021,0.061545182,0.104696631,0.142742753,0.0198943429,1.51746309 +-0.0711246282,2.80119109,0.0711246282,0.00014548043,0.229153425,0.16138801,0.0815609396,0.0509349555,0.0197645556,0.100919768 +-1.06677997,2.80123901,1.06678009,2.76728533e-05,0.13556768,0.0633601621,0.1151793,0.149160057,0.0198935159,1.50877035 +0.103158399,2.80126977,-0.103158407,0.000127251449,0.186427772,0.105690077,-0.244208783,-0.0481743552,0.0198231991,0.14675197 +0.12416698,2.80130219,-0.124166988,0.000293231104,0.183700308,0.100813329,-0.32411623,-0.0435340665,0.0198222157,0.176186278 +-0.0851230621,2.80186009,0.0851230621,0.000337263104,0.184753716,0.112930425,-0.0290138759,-0.0349472687,0.0197674241,0.120813161 +-0.103567436,2.80246496,0.103567444,0.000416717259,0.18260093,0.105028823,-0.152453482,-0.0865582079,0.019765215,0.147031575 +0.115644239,2.80284047,-0.115644231,0.000253928243,0.184517384,0.102416843,-0.293225229,-0.0470595621,0.0198216066,0.163853735 +0.143223166,2.80285597,-0.143223166,0.000890781812,0.182396904,0.0984493569,-0.378225029,-0.033383511,0.0198180489,0.202883661 +0.445135772,2.80411196,-0.445135772,0.00493691582,0.174584314,0.0901387632,-0.543119788,0.39286375,0.0198519211,0.630352139 +-0.491868943,2.80488896,0.491868973,0.00278461305,0.173919156,0.0909111127,-0.419871241,0.41972968,0.019824611,0.695919096 +-1.06506646,2.80489087,1.06506634,0.00085260364,0.13647294,0.0638305694,0.120820992,0.153416246,0.019890856,1.50634372 +0.803175032,2.80505466,-0.803175032,0.0033331227,0.1589012,0.0788487718,0.14120245,0.399726689,0.0198996048,1.13717484 +-1.01222014,2.80545712,1.01222014,0.00239231158,0.148499444,0.0711483806,0.195506901,0.199044958,0.0198838152,1.43158817 +-0.201043189,2.80552173,0.201043189,0.000808780082,0.178635567,0.0965903178,-0.489655435,-0.0530369394,0.0197626576,0.285694361 +0.196550399,2.80581284,-0.196550399,0.00109406922,0.180216074,0.095241718,-0.497385025,0.00976423547,0.0198172573,0.278289258 +-0.484822124,2.80699778,0.484822124,0.00179349363,0.174134731,0.0911588594,-0.441225857,0.415826559,0.0198237188,0.686033547 +-0.728535712,2.80700517,0.728535652,0.00459669903,0.166921854,0.0844205171,0.0493665524,0.56832087,0.0198337343,1.03047872 +0.254496753,2.8074131,-0.254496753,0.00301648304,0.177474469,0.0926725715,-0.595314443,0.074276343,0.0198309887,0.363126636 +-1.07259655,2.80748987,1.07259655,0.000747697661,0.135158986,0.0629808828,0.105648182,0.150678396,0.0198903121,1.51692021 +-0.566743731,2.80784249,0.566743731,0.00574764609,0.172292858,0.089182429,-0.262023538,0.510680437,0.0198161509,0.803520977 +0.414159596,2.80835199,-0.414159596,0.00376210455,0.174585938,0.090173535,-0.6049456,0.360088229,0.0198473092,0.587581277 +0.0806887969,2.80874801,-0.0806887969,0.000254082202,0.197645441,0.122900724,-0.0937352479,-0.0268303733,0.0198184028,0.114421055 +0.0965776891,2.80893636,-0.0965776891,0.000177871028,0.187842965,0.108534858,-0.206577867,-0.0497339591,0.0198197216,0.137006402 +-0.144081101,2.80894375,0.144081101,0.000532869657,0.182376117,0.100839853,-0.300635457,-0.0961789712,0.0197496563,0.20382145 +0.0685866401,2.80933738,-0.0685866401,0.000109934619,0.252800137,0.185370445,0.0427200906,0.0279739369,0.0198150091,0.0972235873 +0.237483919,2.80945468,-0.237483919,0.00179861719,0.178577825,0.0935727283,-0.570582509,0.0555389188,0.0198256597,0.33956027 +0.0685437322,2.81260085,-0.0685437247,3.60744161e-05,0.253108263,0.185842767,0.0475387238,0.0275309701,0.0198129863,0.0972036198 +0.0997292772,2.81264496,-0.0997292697,0.000217009263,0.187260285,0.107524298,-0.219838351,-0.0483646765,0.0198171623,0.141254365 +0.0804510489,2.81270051,-0.0804510564,9.61845217e-05,0.198018044,0.123372525,-0.0880839005,-0.0264972411,0.0198158696,0.114141084 +0.0960776359,2.81348133,-0.0960776284,7.02248435e-05,0.187823758,0.1087403,-0.201413155,-0.0491472706,0.0198166966,0.13637799 +-0.129089117,2.81376624,0.129089117,0.000551364501,0.182919323,0.101890825,-0.256618977,-0.0998627543,0.0197448898,0.182752877 +0.900429845,2.81665468,-0.900429785,0.00270838244,0.151929215,0.0744392723,0.216884524,0.276978195,0.0199191049,1.27405608 +-0.13060829,2.8168714,0.13060829,6.31472649e-05,0.182698905,0.101680651,-0.262945712,-0.0989064053,0.0197412446,0.185158998 +0.068632789,2.81745672,-0.0686327964,0.000106185915,0.253251046,0.186052531,0.0543162897,0.026779633,0.0198103935,0.0971854851 +0.930897832,2.81806993,-0.930897832,0.0021468231,0.149833217,0.0730951428,0.224300206,0.241495967,0.0199290682,1.31670499 +-1.06378126,2.81835699,1.06378138,0.0011356239,0.138181448,0.0646698475,0.127589703,0.153095007,0.0198818184,1.50444472 +-0.125794679,2.81837821,0.125794679,0.000327539456,0.182666749,0.102273002,-0.240504295,-0.0978643447,0.0197411049,0.178137824 +-1.13642001,2.81850505,1.13642001,0.00133180467,0.118881196,0.0547981635,0.0172556154,0.127133057,0.0198899508,1.6073699 +0.0806417763,2.8185823,-0.0806417763,0.000243293252,0.198260665,0.123574555,-0.0829264522,-0.0273469873,0.0198123939,0.114209667 +-0.128739983,2.81961799,0.128739998,5.84760091e-05,0.182731479,0.101884805,-0.255765438,-0.0984475017,0.0197389219,0.182448387 +1.2285924,2.81987309,-1.2285924,0.000451177359,0.0635722652,0.0287805889,-0.246998906,-0.0375299603,0.0199798401,1.73778772 +1.21064448,2.81987381,-1.21064448,0.000996074639,0.0892872065,0.0408241339,-0.137588799,0.0385856889,0.0199797433,1.71240139 +1.18910682,2.81987476,-1.18910682,0.00151233061,0.101725444,0.0467599817,-0.014155657,0.0673384815,0.0199806187,1.68193722 +0.0963944793,2.82022762,-0.0963944793,0.00025962299,0.187822923,0.108803518,-0.199308574,-0.0486182123,0.019812353,0.136546105 +0.392436504,2.82049465,-0.392436504,0.00553817395,0.17447269,0.0903058574,-0.644498467,0.334439576,0.0198379662,0.55673027 +-0.194702536,2.82073951,0.194702521,0.00106515759,0.178796351,0.0969761088,-0.485603362,-0.0528073385,0.0197436791,0.2769849 +-0.137236372,2.82162285,0.137236372,0.00044521087,0.182277024,0.101221472,-0.287369967,-0.0953246802,0.0197363254,0.194187835 +-0.0841071606,2.82383204,0.0841071606,0.000535429688,0.184528381,0.113232277,-0.0122638065,-0.0330852196,0.0197454058,0.120870918 +-0.102421403,2.82390022,0.102421403,0.000592279597,0.182380915,0.105061747,-0.143786475,-0.0809192955,0.0197434444,0.147188231 +-0.0702183619,2.82396317,0.0702183619,0.000230802718,0.229303926,0.162523195,0.109927624,0.0550281629,0.0197419431,0.100911677 +-1.15615237,2.82445192,1.15615225,0.0010500605,0.116287515,0.0535355732,0.00623825379,0.118816003,0.0198888704,1.6352756 +1.11839819,2.82562065,-1.11839819,0.00152999,0.118456237,0.0540034026,0.0584981218,0.117642611,0.0199736934,1.58211577 +-0.161998928,2.82587481,0.161998913,0.000495170709,0.180773824,0.0992178693,-0.38526386,-0.0823591948,0.0197320729,0.230301589 +-0.130691648,2.82718945,0.130691633,0.000396600721,0.182443559,0.101677731,-0.26451987,-0.095917277,0.0197310708,0.184955552 +0.114692777,2.8274734,-0.114692777,0.000219072972,0.183139682,0.102065831,-0.292233795,-0.0399795324,0.0198056307,0.1623936 +-0.46376425,2.82749557,0.46376425,0.00227729115,0.174730182,0.0919739157,-0.508790731,0.410601258,0.0198057368,0.655908465 +-0.413655758,2.82818913,0.413655788,0.00386765413,0.175730556,0.0930214077,-0.593126655,0.346110404,0.0198103189,0.585163355 +0.278425366,2.82923317,-0.278425366,0.0034527448,0.175535053,0.0916205347,-0.654027998,0.131290495,0.0198167358,0.395300567 +1.08164334,2.83006072,-1.08164334,0.00146171614,0.130167425,0.0601101443,0.107549898,0.125758782,0.0199682191,1.52979922 +1.03396475,2.83075094,-1.03396475,0.0017412093,0.139420539,0.0662257373,0.199455768,0.149083331,0.0199563988,1.46248603 +0.120231867,2.83085632,-0.120231867,0.000533203478,0.18234548,0.100947946,-0.312750638,-0.0363491923,0.0198031738,0.17039381 +0.753773093,2.83191776,-0.753773153,0.00583774876,0.16280213,0.0814248696,0.0999273956,0.453332394,0.0198607799,1.06833017 +0.402565181,2.8325603,-0.402565181,0.00284340768,0.174033269,0.0901661143,-0.661525011,0.374965936,0.019827364,0.572162747 +-1.09793234,2.83323359,1.09793234,0.00178876275,0.133864328,0.061444141,0.046479091,0.145344734,0.0198783781,1.55288339 +0.116664156,2.83347917,-0.116664156,0.000142145116,0.182429388,0.101347029,-0.301084548,-0.0383274816,0.0198013261,0.16552186 +-0.966737092,2.83401775,0.966737032,0.00171429256,0.153606102,0.0745595545,0.23491998,0.295567423,0.0198540781,1.36717844 +-0.625339389,2.8340373,0.625339389,0.00217191782,0.171169057,0.0881589428,-0.156508371,0.568879068,0.0197936073,0.884625196 +-0.168269411,2.83427501,0.168269426,0.000704505772,0.180323049,0.0988133699,-0.408162892,-0.077488251,0.019724505,0.239132226 +0.111297354,2.83457184,-0.111297362,0.000320257212,0.183732867,0.10341882,-0.271581888,-0.0403299481,0.0198011566,0.157599568 +0.419580489,2.83461308,-0.419580489,0.00202755048,0.174356878,0.0903301463,-0.624525487,0.398176461,0.0198240429,0.595520735 +0.173680812,2.83497334,-0.173680812,0.000994295115,0.180075914,0.0962218195,-0.462953329,-0.000122801284,0.0197991785,0.24658151 +1.09318185,2.83511686,-1.09318185,0.0013999053,0.127601445,0.0585163943,0.086247012,0.121466145,0.0199652128,1.54609799 +0.673088551,2.83555245,-0.673088551,0.00840412918,0.169128537,0.0857380629,-0.0302322134,0.5104298,0.0198466443,0.955177486 +-1.12828648,2.83564425,1.12828648,0.00132819207,0.128728613,0.0597270578,0.0297465622,0.152227849,0.0198785644,1.5958091 +-0.11510548,2.8361187,0.11510548,0.000272464822,0.182609469,0.103864573,-0.181736052,-0.0882565379,0.0197265297,0.162817031 +1.01570368,2.83650827,-1.01570368,0.00197823602,0.143441081,0.068646796,0.218189612,0.161484197,0.0199466068,1.43673956 +0.963509917,2.83677053,-0.963509917,0.00191090151,0.148519143,0.0721800253,0.241545245,0.210699588,0.0199265815,1.36272538 +-1.1769743,2.83677387,1.1769743,0.000661312602,0.11446128,0.0529400483,0.020848196,0.120297655,0.0198808461,1.66457355 +1.15659106,2.83703518,-1.15659094,0.000723413017,0.116589062,0.0539920069,0.0362571478,0.121485539,0.0199656039,1.63569224 +0.0958100781,2.83747172,-0.0958100855,0.000322724867,0.187259555,0.10865587,-0.193729818,-0.046586439,0.0198007785,0.136668578 +0.0681831837,2.83761954,-0.0681831837,0.000166432641,0.254972398,0.187482372,0.0752099603,0.0276309028,0.0197991785,0.0973258466 +0.0801950693,2.83762789,-0.0801950693,0.000365280779,0.19843486,0.123821735,-0.068936564,-0.0260818303,0.0198007803,0.114430502 +0.318283647,2.83768821,-0.318283647,0.00556244515,0.173913032,0.0905048922,-0.702630341,0.213586926,0.0198111907,0.452875376 +0.16400665,2.83822775,-0.164006636,0.000592123135,0.180324465,0.0968596116,-0.440684706,-0.00585665461,0.0197949186,0.232724994 +-0.21958369,2.83830357,0.21958369,0.00181187643,0.177107364,0.0957027599,-0.576284587,-0.00811475608,0.0197375193,0.311335921 +1.15142119,2.83883667,-1.15142119,0.000838766631,0.118452713,0.0548945367,0.043211028,0.12762779,0.0199639052,1.62840033 +-1.19654953,2.83894968,1.19654953,0.000759142567,0.101889946,0.0465279706,-0.0148923285,0.0608157665,0.0198814664,1.69222665 +-1.21412599,2.83898902,1.21412611,0.000750400824,0.0875888467,0.0390044376,-0.130424678,0.0200132206,0.0198842455,1.71708429 +-1.2287519,2.83901858,1.2287519,0.000343370048,0.0676426589,0.0312884934,-0.227676466,-0.0290667154,0.0198858846,1.73776925 +-0.334886491,2.83911324,0.334886521,0.00497683743,0.17451492,0.0929485857,-0.673119307,0.193351731,0.0197921973,0.475050986 +-0.962720394,2.83925509,0.962720335,0.00151479372,0.154135242,0.0748961195,0.240613222,0.304893255,0.0198494699,1.3615247 +1.13705456,2.83935165,-1.13705456,0.000642144121,0.121378183,0.0561801828,0.0550029576,0.126945078,0.0199630633,1.60804832 +0.896423757,2.84011316,-0.896423757,0.00254350202,0.152228609,0.0746489391,0.225150138,0.286361307,0.019896606,1.26860416 +-0.963620365,2.84032321,0.963620305,0.000808421348,0.154056221,0.074840419,0.241037175,0.303983003,0.0198487099,1.36278701 +-0.960247815,2.84077477,0.960247815,0.00261769723,0.154323295,0.0750378147,0.240994886,0.309663951,0.0198477302,1.35801089 +-0.962760389,2.84084773,0.962760448,2.50405592e-05,0.154141158,0.0749047622,0.241834775,0.305442214,0.0198481157,1.36158633 +1.15453708,2.84233809,-1.15453696,0.000482122879,0.120087765,0.0559947677,0.047080908,0.130220249,0.019960681,1.63280344 +-0.156396046,2.84252906,0.156396046,0.000706915453,0.180732936,0.0996125415,-0.366990805,-0.0803672671,0.0197158139,0.222182348 +-0.314193904,2.84253693,0.314193875,0.00463326089,0.174179524,0.0930169299,-0.69434166,0.159318984,0.0197807066,0.446133465 +0.171949804,2.84317636,-0.171949819,9.1630478e-05,0.179733038,0.0961846486,-0.464879662,0.00139286707,0.0197929163,0.244670272 +1.16298926,2.84411955,-1.16298914,0.000544478477,0.117374778,0.0547297448,0.0326992422,0.117446736,0.0199585967,1.64472723 +1.08310544,2.84437609,-1.08310544,0.0015901248,0.131686971,0.0607509278,0.102662235,0.120220549,0.0199576262,1.53185499 +0.221157506,2.84575224,-0.221157506,0.00162671204,0.177468285,0.0936984122,-0.564669132,0.0554527268,0.0197921898,0.313685954 +-0.644048154,2.84584785,0.644048154,0.00278687733,0.170812473,0.0878729895,-0.125044852,0.591741145,0.0197832137,0.911276996 +-0.865638494,2.84639978,0.865638494,0.00618422031,0.161059037,0.0799541995,0.215159416,0.462910652,0.0198253691,1.22536242 +-0.0712512136,2.84838009,0.0712512136,0.000137538023,0.229134411,0.164724544,0.142203912,0.058412306,0.0197156817,0.101150297 +0.116919175,2.84872818,-0.116919175,0.000410444132,0.181729496,0.101151899,-0.304230124,-0.0346593894,0.0197915472,0.165468469 +-0.0846368521,2.84901452,0.0846368521,0.000317973841,0.184565127,0.114188574,0.0181890707,-0.0303044729,0.0197190214,0.120082378 +-0.102184504,2.85013556,0.102184504,0.000321319938,0.182504386,0.105555296,-0.117794089,-0.0775499493,0.0197165478,0.144867033 +1.22871315,2.85203671,-1.22871315,0.000243957125,0.0654157177,0.031077873,-0.229634956,-0.0370593108,0.0199500471,1.73780072 +1.21540415,2.85211945,-1.21540415,0.00053848885,0.0925090462,0.0427945182,-0.131129235,0.0299076475,0.019949466,1.71897745 +-1.22870409,2.85218239,1.22870409,9.53253184e-05,0.0685560629,0.0321724638,-0.224383712,-0.0289112926,0.0198765825,1.73778224 +0.172545031,2.85221243,-0.172545031,0.000356718054,0.179175273,0.0959261209,-0.470910221,0.00641466863,0.0197851788,0.245118096 +1.19941473,2.85221744,-1.19941473,0.000757308735,0.11041487,0.0521576591,-0.00715914182,0.0740682334,0.0199494008,1.69636333 +-1.21581256,2.85228491,1.21581256,0.000210804807,0.0886126161,0.0396375023,-0.129459828,0.0183377825,0.0198749211,1.7195493 +-1.20034218,2.85240817,1.20034218,0.000140534787,0.103986174,0.0478510931,-0.0100171948,0.0632670373,0.0198722724,1.69766903 +0.140783221,2.85242176,-0.140783221,0.000251776393,0.179883212,0.0978069231,-0.388071328,-0.0181814041,0.0197867639,0.199102938 +-0.105251469,2.85264683,0.105251461,0.000315634185,0.182379246,0.105162911,-0.13113904,-0.0787630379,0.0197134409,0.149100453 +-0.0844136104,2.8526473,0.0844136178,0.000111399117,0.184662282,0.114490308,0.0235954989,-0.028735986,0.019715732,0.119776472 +-0.101813979,2.85279083,0.101813979,5.75905397e-05,0.182449818,0.105644509,-0.113901183,-0.0765770748,0.019714186,0.144351095 +0.185596943,2.85280967,-0.185596943,0.000924819906,0.178592041,0.0952432528,-0.499609411,0.0204900876,0.0197854601,0.262835622 +-0.6390571,2.8528564,0.639057159,0.00129973632,0.171299756,0.0882750154,-0.13930048,0.595997632,0.0197765101,0.904399753 +-0.0712352917,2.85285878,0.0712352917,5.68090181e-05,0.229400426,0.165313005,0.148505181,0.0590301268,0.0197115187,0.101139933 +-1.1625973,2.85325789,1.16259718,0.000983697129,0.125783339,0.0591919348,0.0407201871,0.153939307,0.0198683105,1.64423156 +1.03778315,2.85327768,-1.03778315,0.00111164094,0.141519904,0.0670689866,0.188836008,0.13961859,0.0199400857,1.46786356 +-1.19694126,2.85398316,1.19694126,0.000207024743,0.106467992,0.0491842367,-0.00300731184,0.0737349167,0.0198705886,1.69285107 +1.02268803,2.85422754,-1.02268815,0.00177179009,0.143283576,0.0684486181,0.219033256,0.155062214,0.0199342389,1.44665945 +-0.896346331,2.85467124,0.89634639,0.00216003438,0.158989891,0.0785308704,0.232776493,0.417255878,0.0198247749,1.26865089 +0.0971579701,2.85482359,-0.0971579701,0.000336629484,0.186553985,0.10833966,-0.196613535,-0.0439373292,0.0197905675,0.13765201 +0.985870838,2.85540581,-0.985870838,0.00139613391,0.146788761,0.0709132329,0.237765044,0.194504455,0.0199183095,1.39431024 +0.138294533,2.85563445,-0.138294518,0.000297175546,0.179867849,0.0980729237,-0.381049603,-0.0184418354,0.0197850373,0.195584774 +0.204130173,2.85585666,-0.204130173,0.00114928931,0.17792131,0.0944053978,-0.544314981,0.040432658,0.0197844915,0.289990932 +0.0811301544,2.85595536,-0.0811301544,0.000252124504,0.198739648,0.124024078,-0.0582998283,-0.0267709419,0.0197898429,0.114934437 +-0.650898576,2.8563509,0.650898635,0.0028320956,0.170707166,0.0878442526,-0.115197793,0.603192091,0.0197747964,0.920972288 +-1.0138166,2.85677052,1.0138166,0.00139929331,0.148902759,0.0711730644,0.228367269,0.224641383,0.0198451709,1.43421638 +0.0688145235,2.85705662,-0.0688145235,0.000109848428,0.25421676,0.186070278,0.100548103,0.025539156,0.0197882596,0.0974726453 +0.141826138,2.85746002,-0.141826138,0.00045479738,0.179611728,0.0976758897,-0.392249167,-0.0156802479,0.019783536,0.200583532 +0.140480906,2.85760641,-0.140480906,5.00814303e-06,0.179637671,0.0977506936,-0.389066756,-0.0166503526,0.019783536,0.198714778 +-0.102016233,2.85777974,0.10201624,0.000342613988,0.182391226,0.105602376,-0.111922532,-0.0756855011,0.0197094902,0.144419014 +0.713611364,2.85788274,-0.713611364,0.00593273016,0.1659078,0.0836306289,0.0371801257,0.487854272,0.0198302027,1.01105618 +0.140147552,2.85795379,-0.140147537,9.82762358e-05,0.179636642,0.0977805853,-0.38814944,-0.0167049244,0.0197833702,0.198244378 +0.140623391,2.85814166,-0.140623376,0.000125502207,0.17962338,0.0977414623,-0.389731586,-0.0162983164,0.0197831988,0.198934808 +0.905738652,2.85858965,-0.905738592,0.00299624214,0.151938096,0.0744819418,0.238486916,0.277960896,0.0198814962,1.2814225 +0.140378237,2.85869169,-0.140378222,0.00031355946,0.179613531,0.0977558345,-0.389322191,-0.0163645782,0.019782817,0.198565379 +-1.17295146,2.85877228,1.17295158,0.000300132844,0.124276645,0.0585830323,0.047060743,0.153649107,0.019864412,1.65899706 +-1.07107902,2.8590982,1.07107902,0.0013682287,0.142132282,0.0661628395,0.11282368,0.152501523,0.0198571179,1.51486659 +-0.0846517161,2.85944653,0.0846517161,0.000301668188,0.184381232,0.114332438,0.0296846014,-0.0281005576,0.0197093207,0.119868115 +-1.22872674,2.85957336,1.22872663,0.000240786962,0.0685597211,0.0325950608,-0.21955128,-0.028177049,0.0198701415,1.73777795 +-1.21664035,2.85965395,1.21664047,0.00052987755,0.0885841176,0.0397184752,-0.127326906,0.0165728536,0.0198685862,1.72068429 +-1.20212936,2.85975075,1.20212936,0.000557429623,0.104749814,0.0483986624,-0.00771880709,0.0608184114,0.019865999,1.70016146 +-1.19766021,2.85982418,1.19766009,0.000362430699,0.111683421,0.0522314869,0.0136435684,0.0810357109,0.0198652688,1.69381523 +-0.0714508891,2.86111999,0.0714508891,0.000130197426,0.229406774,0.165504977,0.15857619,0.0599947013,0.0197035931,0.101192534 +-0.134609252,2.86205339,0.134609252,0.00110375241,0.181259096,0.101123869,-0.29126507,-0.0819866806,0.0196973551,0.191474795 +0.0972634256,2.8623991,-0.0972634256,0.000102585997,0.186050758,0.108011372,-0.197590619,-0.0432447009,0.0197856296,0.13824895 +-1.13035917,2.86257076,1.13035917,0.000972390291,0.136398613,0.0633033141,-0.0427333377,0.200931489,0.0198639575,1.59872746 +0.0810777023,2.86287045,-0.0810777023,0.000127380816,0.198492289,0.123782806,-0.0546426699,-0.0261562616,0.0197853949,0.115203001 +0.0686783791,2.86293364,-0.0686783791,4.92243707e-05,0.25432381,0.185802788,0.106938817,0.0260688774,0.0197846554,0.0975306034 +-0.225591287,2.8632133,0.225591272,0.00127929903,0.176052958,0.0952541381,-0.630565166,0.0201155152,0.0197174456,0.321640313 +1.19419706,2.86342621,-1.19419706,0.000351621973,0.120071031,0.0577751473,0.0234306306,0.0999997407,0.0199380778,1.68895137 +-0.181568921,2.86360741,0.181568921,0.00079380325,0.178557113,0.0976593643,-0.482151687,-0.0451961197,0.0196980201,0.257084668 +0.176066488,2.86364198,-0.176066488,0.000634772761,0.178557187,0.095514439,-0.489495575,0.0148693584,0.0197771434,0.249762058 +1.14542997,2.86473918,-1.14543009,0.000281466113,0.13553904,0.0644108877,-0.000636733836,0.210584491,0.0199411679,1.61993229 +-1.00583208,2.86478567,1.00583208,0.00209972076,0.150491148,0.0722093657,0.244501889,0.235516578,0.0198372733,1.42282546 +-0.1698488,2.86503649,0.1698488,0.000552508223,0.179360271,0.0984962285,-0.44338426,-0.058653757,0.0196940918,0.240439504 +0.965824783,2.86545253,-0.965824783,0.000479439623,0.149363637,0.0726818144,0.253819704,0.213565394,0.0199013464,1.36624908 +0.843809903,2.86592412,-0.843809962,0.00336487289,0.15566656,0.0768392086,0.20055519,0.350817949,0.0198522042,1.19512975 +0.954590261,2.86597776,-0.954590201,0.00211487641,0.149560124,0.0728539377,0.254000515,0.227059692,0.0198963508,1.35027635 +0.549025774,2.86607075,-0.549025774,0.00748085231,0.173149198,0.0893794671,-0.353612483,0.549826264,0.0198046397,0.77925384 +-1.17670321,2.86664724,1.17670321,0.000565368158,0.129776612,0.0620456897,0.0653884932,0.1551238,0.0198574457,1.66421914 +-0.250300139,2.8666873,0.250300169,0.00485008769,0.175604269,0.0946018323,-0.673457026,0.062024571,0.0197235011,0.356216162 +1.14846063,2.86695123,-1.14846063,0.000582599139,0.141078398,0.0681131929,0.0132069644,0.215828478,0.0199383833,1.62421417 +1.13214815,2.86719799,-1.13214815,0.000830315636,0.133903414,0.0629383698,0.002481075,0.173215851,0.0199409593,1.60110867 +0.0688156486,2.86781931,-0.0688156486,0.000115144139,0.254307956,0.185555577,0.113722719,0.0252908785,0.0197815541,0.0975328311 +0.105178833,2.86801243,-0.10517884,0.000274322985,0.183973938,0.105264515,-0.24229756,-0.0371838138,0.0197812207,0.148898512 +-1.10554659,2.86818409,1.10554659,0.00104845117,0.127883375,0.0569792688,-0.0482318848,0.13942565,0.0198643003,1.56365323 +0.0813536867,2.86858678,-0.0813536867,0.000266018382,0.198693961,0.123915225,-0.0508061685,-0.0267452616,0.019781692,0.115331583 +0.0977494046,2.86866403,-0.0977494046,0.000219698224,0.186026394,0.108058602,-0.198123038,-0.0429475717,0.0197813995,0.138596043 +1.2287358,2.86967397,-1.2287358,0.000174633227,0.0653531253,0.0320618302,-0.213582218,-0.0353828445,0.0199325643,1.73779273 +1.21785629,2.86981606,-1.21785629,0.00038496143,0.0924888998,0.0429242924,-0.123235986,0.0240270682,0.0199317578,1.72240615 +1.20479822,2.86998653,-1.20479822,0.000498041452,0.114429012,0.0547040999,-0.00190229877,0.0711738765,0.0199311208,1.70393825 +-0.967485845,2.87011957,0.967485845,0.00094980828,0.154335305,0.0751844123,0.270337522,0.303530961,0.0198244117,1.36823249 +-0.4281452,2.87041068,0.42814523,0.00077614293,0.176241264,0.0937198102,-0.632750869,0.414569765,0.0197686087,0.606294274 +1.10153317,2.87069893,-1.10153317,0.000832621125,0.127299666,0.0576296188,-0.000930409413,0.0895417258,0.0199427623,1.55790687 +-0.641709149,2.87098622,0.641709089,0.00189195317,0.17143774,0.0885476246,-0.142563269,0.61637789,0.0197609477,0.907825351 +0.162538111,2.87101126,-0.162538111,0.000770669139,0.178948611,0.0964212418,-0.453609586,0.00207369914,0.0197720435,0.230281502 +0.117041007,2.87285447,-0.117040999,0.000339511316,0.180741251,0.100806318,-0.310833275,-0.0299327709,0.0197760556,0.166323721 +-1.15783477,2.87327051,1.15783477,0.000635539822,0.154769182,0.0763863623,0.0287164953,0.241623104,0.0198524874,1.63748574 +-0.117526874,2.87344503,0.117526874,0.000429885084,0.181606233,0.103552915,-0.193799391,-0.0726694763,0.0196910743,0.166786268 +-1.02832043,2.87368488,1.02832031,0.00161660183,0.149012983,0.0708110183,0.208507478,0.199011654,0.0198375899,1.45439374 +-0.418590218,2.87444353,0.418590248,0.00316132326,0.175917938,0.0936395228,-0.654818952,0.402873516,0.0197635163,0.592613816 +-0.58693707,2.87453842,0.58693707,0.00372149423,0.173695534,0.0904420316,-0.259726852,0.592075944,0.0197546463,0.835050404 +1.09564078,2.87587619,-1.09564078,0.00110707362,0.130383581,0.0596706159,0.0194646828,0.0680955872,0.0199391544,1.54956341 +-0.158093452,2.87607765,0.158093452,0.000640831771,0.179628819,0.0993148237,-0.402959824,-0.0592239201,0.0196836423,0.223860532 +-0.854181528,2.87867165,0.854181528,0.00365603156,0.16206865,0.0809091628,0.212865755,0.49658227,0.0197948869,1.20929933 +0.111560762,2.87937641,-0.111560762,0.000321844505,0.181670636,0.102421723,-0.283731699,-0.0306108259,0.0197722819,0.158490419 +-0.88259089,2.87974024,0.88259089,0.00297255954,0.160442799,0.0796961263,0.246599957,0.453416049,0.0198011249,1.24939418 +-0.433881938,2.88006258,0.433881938,0.00294249598,0.176245615,0.0937885568,-0.631952941,0.43392539,0.0197591837,0.614219964 +-0.174681753,2.88022661,0.174681753,0.000765995996,0.1784762,0.097945258,-0.481501877,-0.0426013768,0.0196799096,0.247976512 +-0.167810559,2.88039327,0.167810544,0.000133552414,0.178785682,0.0983672068,-0.455854833,-0.0487403572,0.0196793769,0.23833935 +-0.0837885439,2.88079572,0.0837885439,0.000388865534,0.184149817,0.114659123,0.04838695,-0.0213629305,0.0196902473,0.119567148 +-0.100595191,2.88082957,0.100595191,0.000382898812,0.182021797,0.105908893,-0.101550594,-0.0661596432,0.0196889006,0.14362824 +-0.070877254,2.88087654,0.070877254,0.000159350631,0.230954677,0.167054534,0.181451678,0.0636378378,0.0196857415,0.101091772 +0.803075671,2.88098717,-0.803075671,0.00419939356,0.159006327,0.0790240318,0.165910229,0.407129049,0.0198289324,1.13698196 +1.18972433,2.88190365,-1.18972433,0.000406376494,0.141529247,0.0710114688,0.103878163,0.137729958,0.0199185368,1.68253958 +-0.129804254,2.88286638,0.129804254,0.000683406368,0.181308389,0.101742886,-0.269585609,-0.0739571154,0.019679226,0.184170246 +0.120277077,2.8831768,-0.120277077,0.000533978804,0.180417299,0.100464605,-0.327271312,-0.0251652077,0.0197683275,0.170826688 +0.242650688,2.88377643,-0.242650688,0.00181908475,0.174503833,0.0920296088,-0.663869917,0.107877515,0.0197688341,0.343436062 +-1.17009175,2.8838191,1.17009175,0.00045574244,0.175422639,0.0906118378,0.0943655521,0.25025782,0.0198416803,1.65486193 +0.198869944,2.88408804,-0.198869944,0.0010426247,0.177120358,0.0942549855,-0.554779053,0.0483801551,0.0197652038,0.282187164 +-0.901623726,2.88420224,0.901623726,0.00389990071,0.159093857,0.0787443742,0.262594342,0.419064403,0.0198010672,1.27605104 +-1.04848981,2.88556337,1.04848981,0.00187264313,0.148409575,0.0701290667,0.184632435,0.161565006,0.0198344607,1.48295593 +-1.08687305,2.88646317,1.08687305,0.00101422332,0.134195462,0.0613491721,0.0283101406,0.0903828293,0.0198486596,1.53721261 +-0.107720912,2.88688612,0.107720912,0.000247700751,0.181874245,0.104847454,-0.147940412,-0.0657719746,0.0196811315,0.153322756 +-0.171932325,2.8871901,0.17193234,9.14732009e-05,0.178552061,0.0981273204,-0.483386099,-0.0422825068,0.0196729284,0.244312748 +1.14234376,2.8875916,-1.14234376,0.00011304918,0.413572133,0.233332261,-0.0189110022,0.220084667,0.0199233815,1.61557007 +1.18486834,2.88778019,-1.18486822,0.000385562744,0.150113925,0.0763232037,0.137181371,0.158093914,0.019912554,1.67570961 +0.0976289809,2.8883605,-0.0976289809,0.000448130042,0.18516776,0.107418872,-0.20316565,-0.0403632559,0.0197669007,0.13965407 +-1.13125157,2.88836241,1.13125157,0.000391912152,0.429269463,0.22970663,-0.082873717,0.169972956,0.0198511109,1.59999156 +1.14508426,2.8885324,-1.14508438,0.000236678126,0.425995499,0.246116534,0.00562786963,0.232557952,0.0199209582,1.61944187 +0.0682607591,2.88881493,-0.0682607591,0.000217976485,0.256266773,0.186410218,0.132052496,0.0288159586,0.0197672509,0.0976837948 +0.0809806958,2.88881755,-0.0809806958,0.000500547991,0.198134094,0.12357185,-0.0434411466,-0.0238549113,0.0197677072,0.115855232 +0.236411273,2.88883996,-0.236411273,0.000413514732,0.174605712,0.0922655463,-0.65838176,0.103270628,0.0197651256,0.334749073 +-0.419031918,2.890028,0.419031918,0.00268849172,0.176060587,0.0939953774,-0.687334061,0.426299632,0.0197489522,0.593350947 +-1.01591384,2.89007115,1.01591384,0.0016026072,0.151318401,0.0728483647,0.258026123,0.209721446,0.019819241,1.43694592 +1.13173282,2.89063454,-1.13173282,0.000301255233,0.391235173,0.215855539,-0.017225571,0.137204736,0.0199241005,1.60052133 +0.831241727,2.8911972,-0.831241608,0.00270050787,0.15665108,0.0774956569,0.202011228,0.370865524,0.019824462,1.17812145 +0.867047846,2.89164639,-0.867047906,0.0031183355,0.154660612,0.0762248337,0.225886911,0.327199847,0.0198348146,1.22727537 +1.18648863,2.89227366,-1.18648863,0.000336217461,0.155765653,0.0799248219,0.149534836,0.158828765,0.0199068673,1.67797399 +-1.1537689,2.89228439,1.1537689,0.000260276836,0.499174833,0.297998101,0.0592670441,0.275173187,0.0198385902,1.63173568 +-0.788976073,2.89351702,0.788976073,0.00585456984,0.165630221,0.0837800428,0.136622861,0.57282573,0.0197732672,1.11778283 +-1.11260939,2.89394784,1.11260939,0.0003685556,0.344949514,0.174174815,-0.0846259743,0.0359360725,0.0198541973,1.57364345 +0.239583716,2.89416122,-0.239583716,5.81498607e-05,0.174222231,0.0920154229,-0.671323478,0.111693896,0.0197614804,0.339543521 +-0.0713147968,2.89520025,0.0713147968,0.000130691449,0.230770245,0.16673547,0.193984985,0.0650200397,0.019672472,0.101190045 +0.296111286,2.89570045,-0.296111286,0.00291130599,0.172192514,0.0902927443,-0.787630618,0.224853173,0.0197683573,0.419349253 +1.10931623,2.89596176,-1.10931623,0.000277637795,0.33583349,0.172878057,-0.0292871483,-0.033202678,0.0199272353,1.56891155 +-0.182110772,2.89601755,0.182110757,0.000966039835,0.178255782,0.0978088379,-0.537074804,-0.0204049982,0.0196665116,0.257860839 +-0.0845449343,2.89615202,0.0845449343,0.00030197794,0.183547467,0.114225328,0.056422051,-0.0190422684,0.0196762048,0.119965091 +-0.164480537,2.89621949,0.164480537,0.000911527895,0.178679928,0.0986218303,-0.453662038,-0.0431504622,0.0196648296,0.233003303 +-0.101846166,2.89709592,0.101846166,0.000284079491,0.181851149,0.106051065,-0.100681484,-0.0626740456,0.0196742564,0.144522443 +1.17871666,2.8973794,-1.17871666,0.000408281863,0.210727736,0.117898285,0.212198704,0.245057598,0.0198994819,1.66701186 +0.242730975,2.8975184,-0.242730975,8.46123949e-05,0.173834905,0.0917822719,-0.684203029,0.122026399,0.0197579227,0.343947023 +0.470081359,2.89754725,-0.470081359,0.00405272143,0.173202381,0.0904718041,-0.641470194,0.555394709,0.0197704285,0.665326238 +-1.16463459,2.8976922,1.16463447,0.000184267687,0.526723325,0.335919917,0.177540079,0.303790748,0.0198287666,1.64714301 +1.04185343,2.89778543,-1.04185355,0.00140347867,0.145585194,0.0698927715,0.205987155,0.107076466,0.0199065357,1.47347355 +1.228616,2.898283,-1.228616,0.000178849717,0.0632353276,0.0327567086,-0.17394352,-0.0291905534,0.0199023131,1.73775184 +1.22055697,2.89840031,-1.22055697,0.000393476366,0.0897473767,0.0417988785,-0.0952946246,0.0167195667,0.0199012738,1.72635329 +0.116109043,2.89844322,-0.116109043,0.000396778691,0.180659622,0.101170845,-0.31554693,-0.0262419432,0.0197585039,0.164472595 +1.21088421,2.89854097,-1.21088421,0.000526699878,0.117273621,0.0568566658,0.0144816544,0.0619730726,0.0198997222,1.71267223 +-0.221517652,2.89931202,0.221517652,0.00164181227,0.176500052,0.0959630385,-0.682929516,0.0398939252,0.0196785685,0.314101398 +0.232535541,2.89933825,-0.232535556,0.00115223473,0.174426749,0.0923081711,-0.657185435,0.103550762,0.0197577942,0.329155743 +1.10499585,2.89963889,-1.10499585,0.00037057075,0.333558559,0.17299509,-0.00413260981,-0.067965053,0.0199253261,1.56279135 +-0.122300237,2.90002537,0.12230023,0.000399329001,0.181523368,0.102740712,-0.239301443,-0.0667548329,0.0196652599,0.17400533 +0.96768856,2.9003849,-0.96768856,0.000731434557,0.150151059,0.0732647032,0.275382847,0.206117615,0.019870773,1.36852515 +1.19953942,2.90043616,-1.19953942,0.000434065732,0.152220443,0.0777558759,0.11224632,0.117321186,0.0198965389,1.6965661 +1.03613806,2.90091181,-1.03613806,0.00100169727,0.146533608,0.0706146061,0.218983963,0.111170068,0.0199021492,1.4654386 +1.18052411,2.90118456,-1.18052411,0.000244302937,0.22557871,0.128512487,0.241026044,0.24656494,0.0198943485,1.66953957 +0.255700082,2.90124488,-0.255700082,0.00127513509,0.173339427,0.0914237797,-0.715654254,0.149205267,0.0197574906,0.361717999 +-0.540531099,2.90204239,0.540531099,0.00951310992,0.175634891,0.0924304202,-0.402627259,0.593324602,0.0197307505,0.769269109 +0.149641544,2.90253806,-0.149641559,0.000477047695,0.178630739,0.0970227346,-0.443859577,0.00225627469,0.0197518356,0.213854462 +0.238482133,2.9042182,-0.238482118,0.000922855805,0.17393741,0.0919364393,-0.679552197,0.11633718,0.0197534095,0.337508619 +-1.19237995,2.90456891,1.19237995,0.000508275989,0.154941276,0.0785898715,0.161011174,0.142831862,0.0198178049,1.68641329 +0.969845831,2.90485573,-0.969845831,0.00104197673,0.150112495,0.073235184,0.277186126,0.203002214,0.0198676474,1.37159944 +-0.36284849,2.90513253,0.36284849,0.0033354992,0.174978077,0.0937290862,-0.800733209,0.34532845,0.0197385363,0.517226338 +1.17358565,2.90539289,-1.17358565,0.000161670381,0.558114707,0.38862431,0.317375839,0.302686006,0.0198894367,1.6597569 +0.968595028,2.90572095,-0.968594968,1.62759079e-05,0.150263071,0.0733428448,0.27844283,0.204267532,0.0198663063,1.36983979 +0.970789909,2.90641189,-0.970789969,0.000127265521,0.150198087,0.0733145252,0.277546167,0.200557604,0.0198667813,1.37292695 +1.03744388,2.90654588,-1.03744388,0.000485420809,0.146946907,0.070976451,0.222049505,0.10533385,0.0198980216,1.46725571 +-0.111264333,2.90655231,0.111264341,0.000297417922,0.18161422,0.10476622,-0.159047842,-0.063140206,0.0196631737,0.157854155 +0.363630831,2.90695357,-0.363630801,0.00259999232,0.172633976,0.0904762596,-0.842837632,0.401111841,0.019762367,0.514976501 +-1.09865284,2.90728664,1.09865284,0.000343853782,0.318699837,0.162977904,0.0130979568,-0.0532453507,0.0198416021,1.55387425 +-1.07030797,2.90768814,1.07030809,0.00129477843,0.14218685,0.0672130361,0.126749307,0.0517490953,0.0198295303,1.51382279 +0.969287992,2.90808415,-0.969287992,0.00267941528,0.150363222,0.0734279156,0.280223846,0.202793747,0.0198643673,1.37080371 +0.142557681,2.9081502,-0.142557681,0.000879906176,0.178561211,0.0974633917,-0.425814837,-0.00222221296,0.0197480153,0.20296751 +1.1755563,2.90857792,-1.17555618,0.000105749721,0.574680388,0.408172607,0.359599859,0.304810286,0.0198849253,1.66251469 +-1.19960213,2.90875459,1.19960213,0.000356673932,0.147116199,0.0740107074,0.138260141,0.113814637,0.0198144894,1.6966778 +-0.0707706362,2.90882277,0.0707706437,0.000136566116,0.23157385,0.166722715,0.205843627,0.0653513521,0.0196621399,0.101077929 +-0.101780906,2.90885615,0.101780906,0.000216379267,0.181659833,0.106156349,-0.101870157,-0.0581092536,0.0196650773,0.145261839 +-0.0842033923,2.90886307,0.0842033923,0.000297114166,0.183317006,0.114023462,0.0618480332,-0.0163188446,0.0196663905,0.120214127 +0.101653427,2.91029382,-0.101653434,0.000166864775,0.184538946,0.10695757,-0.222854704,-0.0387632437,0.0197522063,0.143791735 +0.962561727,2.9105165,-0.962561727,0.000887917355,0.150549561,0.0735522136,0.279436082,0.212176025,0.0198585801,1.36127388 +-1.18675661,2.91129661,1.18675661,0.000275622355,0.245097294,0.141940504,0.284262091,0.222627267,0.0198065713,1.67846036 +0.161618382,2.91194749,-0.161618382,0.00107779051,0.177743256,0.096150957,-0.479404807,0.017988814,0.0197445657,0.229573309 +1.03212321,2.91246986,-1.03212321,0.00143490941,0.147531942,0.0713770986,0.23153545,0.113255225,0.0198894627,1.45973432 +0.0993834287,2.91353607,-0.0993834361,0.00021150129,0.185136408,0.107826829,-0.209467649,-0.0404405259,0.0197501499,0.140628099 +-0.133767813,2.91416383,0.133767813,0.000711048488,0.180225492,0.101176403,-0.318905711,-0.0529274084,0.0196503736,0.190001339 +-1.22866106,2.9146843,1.22866094,0.00017277358,0.0671456531,0.0344594568,-0.173995674,-0.0187242161,0.0198160075,1.73768985 +-1.22208059,2.914747,1.22208059,0.000380276411,0.0861457065,0.0392206199,-0.108310945,0.00634898758,0.019815268,1.7283833 +0.0821389854,2.91476154,-0.0821389854,0.000270430144,0.199122027,0.124286711,-0.0314459577,-0.0257596355,0.0197494086,0.116192386 +-1.21418297,2.91482234,1.21418297,0.00042497681,0.10736002,0.051156532,0.00800988264,0.0361264423,0.0198128913,1.71721387 +0.100154452,2.91505003,-0.100154452,7.63902135e-05,0.184925944,0.10755676,-0.214820132,-0.0396007784,0.0197490156,0.141741887 +0.0993701965,2.91525078,-0.0993702039,1.69510113e-05,0.18510443,0.107800953,-0.210085362,-0.0402524658,0.0197489206,0.140723854 +0.0689662248,2.91529703,-0.0689662248,6.42526065e-05,0.256414682,0.185448825,0.163850024,0.0245957114,0.0197482258,0.0975430682 +0.0689594522,2.91548324,-0.0689594522,2.55596746e-07,0.256440341,0.185465515,0.164015099,0.0246020202,0.0197480917,0.0975424424 +0.0716691911,2.91549635,-0.0716691911,0.000104002465,0.244751588,0.172842935,0.124200247,0.0142332064,0.0197482277,0.101355791 +0.0821201578,2.91552901,-0.0821201578,1.45403474e-05,0.199139878,0.124293134,-0.0311600119,-0.0256859846,0.0197488554,0.116208866 +0.0689657331,2.91569734,-0.0689657331,6.55024778e-05,0.256454527,0.185470387,0.164182201,0.0245775022,0.0197479278,0.0975413024 +0.08214771,2.91615272,-0.08214771,0.000274018646,0.199203849,0.124337405,-0.0308436025,-0.0257408228,0.0197484028,0.116213202 +0.0994561613,2.9166503,-0.0994561613,0.000257086678,0.185130045,0.107816078,-0.210242704,-0.0400798619,0.0197479185,0.140752777 +0.148578167,2.91671634,-0.148578167,0.000248169235,0.178294837,0.0969432443,-0.452339649,0.00676649855,0.0197391957,0.211998224 +0.366642505,2.91681266,-0.366642535,0.0029121784,0.172342956,0.0904170349,-0.860714495,0.422609389,0.0197537243,0.519676089 +-1.18203521,2.91708946,1.18203533,0.000113750197,0.607867837,0.450158,0.467157096,0.286368012,0.0197985191,1.67178297 +1.06557059,2.91733837,-1.06557059,0.0011002532,0.147108644,0.0725222826,0.184818164,-0.00135059352,0.0199020468,1.50701642 +0.336218268,2.91734076,-0.336218268,0.00190865085,0.172072887,0.0903604999,-0.845419288,0.346310884,0.0197539404,0.475637645 +0.127629772,2.91893959,-0.127629772,0.000697643962,0.179659992,0.0997012034,-0.369053364,-0.0131558785,0.0197428204,0.180961907 +-1.19784415,2.91909051,1.19784415,0.000290791679,0.161823958,0.0835091546,0.190418541,0.125858366,0.0198004171,1.69413984 +0.186869115,2.91911602,-0.186869115,0.00219956972,0.176375166,0.0943107009,-0.560996532,0.0505575016,0.0197400395,0.266252667 +0.556967497,2.91974878,-0.556967497,0.00615792535,0.172765747,0.0899182931,-0.365882576,0.613480926,0.0197531134,0.791411161 +-0.485501021,2.92039156,0.485500991,0.0103272442,0.177372336,0.0944001153,-0.571583152,0.565315247,0.0197221059,0.692157209 +-0.979385972,2.92093372,0.979386032,0.00145839027,0.15429534,0.0753715411,0.317505389,0.29350096,0.0197841357,1.38507497 +-1.21226549,2.92102623,1.21226549,0.000194033317,0.118860401,0.0579733923,0.0482008308,0.0480365232,0.0198040772,1.71447408 +0.115450189,2.92166996,-0.115450189,0.000271442928,0.180738151,0.101527691,-0.321466446,-0.023848433,0.0197418965,0.164138764 +0.293821812,2.922225,-0.293821812,0.00184604316,0.171428576,0.0901831985,-0.834255457,0.251996428,0.0197492093,0.416972429 +-0.102617107,2.92229223,0.102617115,0.000355564174,0.181564897,0.106117219,-0.0997586846,-0.0542767048,0.0196534488,0.145540416 +-1.22868478,2.92242503,1.2286849,0.000117724405,0.0669107288,0.0345573165,-0.162698239,-0.0166210011,0.019806698,1.73770082 +1.03655684,2.92245388,-1.03655684,0.000987219741,0.147761986,0.0717953965,0.239994645,0.105534606,0.0198808908,1.46596801 +-1.22252631,2.92247796,1.22252619,0.000258811138,0.085161835,0.0388169475,-0.100505173,0.00638459716,0.019806115,1.72899079 +-1.21513546,2.9225421,1.21513534,0.00030087406,0.106814064,0.0510721654,0.0133189345,0.0337455235,0.0198039245,1.71853817 +-1.08614898,2.92320275,1.08614898,0.00043726794,0.287392735,0.150792345,0.135946751,-0.11627014,0.0198256392,1.53622985 +-0.0848201662,2.92328167,0.0848201662,0.000315749872,0.183483958,0.114138588,0.0693515241,-0.0146043878,0.0196542516,0.120291933 +-1.19243062,2.92371607,1.19243062,0.000187472615,0.26167807,0.156246066,0.343210667,0.196838647,0.019790601,1.68648291 +-0.254982948,2.92383361,0.254982948,0.00196165289,0.176194683,0.0952737853,-0.796176791,0.126554966,0.0196739621,0.363564402 +1.06246042,2.9239099,-1.06246042,0.000329226488,0.149020076,0.0741570294,0.208796233,-0.00398417516,0.019895982,1.50263667 +-0.0712212175,2.92447615,0.0712212175,0.000136531016,0.233137265,0.167553499,0.217068061,0.0654806122,0.0196491014,0.100996546 +-0.976700783,2.92521906,0.976700723,9.11382813e-05,0.154608727,0.0756394565,0.323419213,0.299120009,0.0197799131,1.38130486 +-0.121990941,2.92548895,0.121990949,0.00033226714,0.180945963,0.102819018,-0.244721249,-0.0536186881,0.0196428429,0.172894284 +0.285159349,2.92683625,-0.285159349,0.00258099823,0.171241298,0.0901482031,-0.825416267,0.23660785,0.0197438374,0.404735625 +-0.975391567,2.92697835,0.975391507,0.00264247716,0.154778004,0.0757716522,0.325265467,0.302102774,0.0197781604,1.37947047 +-0.976851761,2.92733979,0.976851821,1.58169205e-05,0.154671222,0.0756973401,0.325762868,0.298921883,0.0197781902,1.38153946 +0.477944553,2.92747068,-0.477944583,0.00404389855,0.172730595,0.0903719366,-0.644114137,0.588246524,0.019744141,0.676494598 +-1.18791902,2.92757273,1.18791902,8.07349206e-05,0.619151115,0.477448046,0.557720721,0.255328506,0.0197841711,1.68010211 +-0.688689709,2.92968655,0.688689709,0.00490140868,0.170338601,0.0879595131,-0.048567608,0.66977638,0.0197200812,0.976322412 +-0.154385567,2.92980123,0.154385567,0.00142320199,0.178591818,0.0991783589,-0.455830634,-0.0263095852,0.0196370743,0.220397919 +-0.976170063,2.92983389,0.976170003,0.00188285462,0.154758975,0.0757808685,0.328874916,0.300599664,0.0197760686,1.38055432 +-0.196950749,2.930089,0.196950763,0.00177716732,0.177560121,0.0972310528,-0.65837431,0.0292979162,0.0196405146,0.280450046 +-0.332230508,2.93059492,0.332230508,0.00242056209,0.174906433,0.0941097215,-0.859153271,0.294490755,0.0197049603,0.472430468 +-0.612076104,2.93062091,0.612076104,0.00616685953,0.173439115,0.0907062888,-0.234129161,0.663786292,0.0197075065,0.868143201 +-0.140857026,2.93071222,0.140857026,0.000711879518,0.179132894,0.100092053,-0.381927222,-0.0364650078,0.0196363665,0.20144546 +1.08296931,2.93116498,-1.08296931,0.000368566863,0.296940595,0.162787333,0.214676231,-0.165392503,0.0198982973,1.53162205 +0.110432371,2.93126249,-0.110432371,0.000295506587,0.182191923,0.103453323,-0.288281798,-0.0275317263,0.0197354313,0.15699777 +1.22876132,2.9322691,-1.22876132,0.000106831634,0.0608486459,0.0327117145,-0.105962008,-0.0208485629,0.0198602024,1.73783851 +1.22290921,2.93233061,-1.22290921,0.000234774037,0.08170899,0.0379515477,-0.0446955189,0.00917889923,0.019859137,1.72956181 +1.2158854,2.93240452,-1.2158854,0.00031303399,0.109114118,0.0529264808,0.0479479171,0.0419627056,0.0198570285,1.7196281 +0.118130222,2.93335557,-0.118130229,0.000671231712,0.179984912,0.100818381,-0.342318475,-0.0182396546,0.0197330974,0.168080956 +0.647946358,2.93383622,-0.647946358,0.00787222665,0.169633776,0.0870038942,-0.102453388,0.589562058,0.0197446942,0.917008579 +0.369901299,2.93386793,-0.369901299,0.00406084722,0.172353372,0.0908083096,-0.88743943,0.456154227,0.0197362751,0.52376157 +0.92363131,2.93479991,-0.923631251,0.0030033756,0.15217039,0.0747350901,0.282498658,0.262951553,0.0198155344,1.30645382 +1.06176829,2.93577313,-1.06176829,0.0010886034,0.149415627,0.0748737603,0.228305981,0.00480494043,0.01988177,1.50162303 +0.444877297,2.93582106,-0.444877297,0.00286756479,0.172544315,0.0905322582,-0.744219244,0.574391246,0.019737225,0.63104558 +1.08074892,2.93610811,-1.08074892,0.000109924804,0.290659726,0.160235494,0.243287206,-0.166532233,0.0198940076,1.52850056 +-0.301747859,2.93616557,0.301747859,0.00398054812,0.174414888,0.09419965,-0.891478002,0.244967595,0.019687539,0.429837912 +-0.220660418,2.93622303,0.220660418,0.00199979451,0.176950365,0.096510835,-0.754717648,0.0742969066,0.0196445156,0.313132703 +0.456513792,2.93622994,-0.456513762,0.00204286491,0.172788858,0.0906466693,-0.717145443,0.588828444,0.0197357833,0.647011638 +-0.122277342,2.93703246,0.122277342,0.000385930703,0.180595145,0.102728598,-0.255815268,-0.0454850644,0.0196336452,0.173890173 +-0.0706692487,2.93728209,0.0706692487,0.000124887141,0.23510237,0.169283912,0.223972723,0.0660789534,0.0196390282,0.100877911 +-0.98874259,2.93732858,0.98874259,0.00133847003,0.154538855,0.0757064894,0.33135727,0.271808416,0.0197723806,1.39829803 +-0.113231823,2.93734455,0.113231823,0.00032230487,0.18097353,0.104266234,-0.183375955,-0.0468211249,0.0196364354,0.160446137 +-0.0841989294,2.93734455,0.0841989294,0.00030983836,0.183578938,0.114330761,0.0724496469,-0.0111276908,0.0196429975,0.120301336 +1.20116675,2.93751788,-1.20116663,0.000261149165,0.196654752,0.107018992,0.249481991,0.120718375,0.0198450442,1.69871533 +-0.101915352,2.9375248,0.101915345,0.00026683358,0.181230381,0.105985329,-0.104524679,-0.0470874794,0.0196408182,0.145743221 +1.20235026,2.93803763,-1.20235026,0.000191022671,0.193958759,0.105273113,0.24218826,0.115161866,0.0198443811,1.7003926 +0.842742264,2.93863678,-0.842742264,0.00431668805,0.156395122,0.0773974732,0.234280556,0.36000219,0.0197775513,1.19304013 +1.20172012,2.93912649,-1.20172012,5.83415294e-06,0.197685599,0.107739888,0.252153307,0.118524253,0.0198428128,1.69950891 +-0.7708565,2.93966579,0.77085644,0.00774230249,0.16716367,0.0852038786,0.131165043,0.622735977,0.0197294578,1.09237564 +1.19669461,2.9401679,-1.19669461,0.000172518005,0.311873317,0.196763515,0.427448153,0.169520438,0.0198367611,1.69239092 +1.20189905,2.94050288,-1.20189905,7.96389431e-05,0.197281167,0.107607841,0.255127162,0.116692036,0.0198408179,1.6997534 +-0.438569248,2.9411006,0.438569248,0.00311186514,0.178392082,0.0963407606,-0.722619295,0.531620145,0.0197097808,0.620382428 +1.19734752,2.94159389,-1.19734764,9.17719899e-06,0.313099533,0.197983295,0.431229144,0.16433005,0.0198345892,1.69332564 +0.616707921,2.941854,-0.616707921,0.00649785763,0.170668349,0.0879761502,-0.186117828,0.602705538,0.0197347347,0.872879624 +0.0987321064,2.94219398,-0.0987321064,0.000482786301,0.185587808,0.107803166,-0.215713352,-0.0354782902,0.0197265297,0.141486287 +0.0680101961,2.94224262,-0.0680101961,0.000249581062,0.260777116,0.188140631,0.18208313,0.0275311302,0.0197279491,0.0974753499 +0.0812936351,2.9422946,-0.0812936351,0.000587730785,0.200372338,0.125041172,-0.0245640166,-0.0219442416,0.0197277982,0.116506383 +1.1929642,2.94238448,-1.1929642,7.36242655e-05,0.639444709,0.524427593,0.632056653,0.200844333,0.0198310353,1.68711555 +1.19755018,2.94290376,-1.19755018,2.32640577e-05,0.31389451,0.199078068,0.436308205,0.161024436,0.0198325887,1.69360328 +1.19370365,2.94365048,-1.19370353,4.01115813e-06,0.6399616,0.527241528,0.638990343,0.193834469,0.0198288988,1.68817258 +0.926168084,2.94422483,-0.926168144,0.00033516172,0.152490556,0.0749415159,0.28892985,0.259173006,0.0198071562,1.31014919 +1.19392657,2.94490218,-1.19392657,1.02711228e-05,0.641000628,0.53008163,0.645315588,0.188139513,0.0198268835,1.68847895 +1.08017457,2.94500446,-1.08017457,0.000366150925,0.277581245,0.152723387,0.257928699,-0.146768421,0.0198817011,1.52765298 +1.22873616,2.94719648,-1.22873616,0.000111049609,0.0604794472,0.0327972211,-0.0767897293,-0.0160692986,0.0198409259,1.73785877 +1.22362471,2.94723082,-1.22362471,0.000240848371,0.0780675858,0.0361422375,-0.0221203044,0.00819767825,0.0198399071,1.73062944 +1.20219731,2.94747019,-1.20219731,0.000154736888,0.190015569,0.10306599,0.25975132,0.100063443,0.0198317971,1.7001673 +1.21768236,2.94750309,-1.21768224,0.000288484764,0.104307756,0.0504197404,0.063082993,0.0315477476,0.0198376514,1.72222543 +1.21271336,2.9475987,-1.21271348,0.000177304348,0.132007778,0.0671498924,0.132848114,0.0535734147,0.0198349375,1.71513224 +-1.03390014,2.9476521,1.03390014,0.00126633525,0.152322441,0.0740720034,0.30434221,0.176923737,0.0197751075,1.462201 +0.196671799,2.94776249,-0.196671784,0.00189477368,0.174448013,0.093183279,-0.62380147,0.0824556351,0.0197221115,0.279631078 +0.765207291,2.94836593,-0.765207291,0.00582337799,0.162088677,0.0813238695,0.145645559,0.474068344,0.0197478086,1.08280468 +-0.120617226,2.94911885,0.120617233,0.000368061184,0.180521116,0.102948263,-0.250139385,-0.039657671,0.0196244586,0.171023786 +1.19790208,2.94955277,-1.1979022,0.000117660689,0.30166167,0.190201476,0.43343699,0.136551708,0.0198235977,1.69409299 +-0.0709592029,2.94994879,0.0709592104,0.000136718663,0.237211689,0.171151683,0.228811204,0.0671362877,0.0196288489,0.10063418 +0.91620636,2.95084667,-0.91620636,0.00198469986,0.152717412,0.0751056299,0.285907418,0.273106396,0.0197963472,1.29598975 +-0.0845288485,2.95126653,0.0845288485,0.000315460667,0.184239179,0.115097828,0.0777097791,-0.00790081359,0.0196312703,0.119887963 +1.19432414,2.95127654,-1.19432414,5.11777034e-05,0.612289786,0.503524244,0.630111575,0.152342558,0.0198179446,1.68903279 +0.34750855,2.95211029,-0.34750852,0.00225081155,0.171061546,0.0902375281,-0.935652375,0.429407537,0.0197224747,0.491593003 +-0.102287695,2.95256352,0.102287695,0.000345438602,0.181243539,0.106384777,-0.103605516,-0.0418799445,0.0196278542,0.14508462 +-0.251703054,2.95283103,0.251703054,0.0017400533,0.177074015,0.0961622596,-0.859247088,0.14783442,0.0196438674,0.35839954 +0.270852536,2.95355415,-0.270852566,0.00131758628,0.17023629,0.0899571478,-0.834994614,0.233181,0.019721169,0.383540243 +-1.20438111,2.95356011,1.20438111,0.000229758938,0.169936821,0.0914362296,0.261271477,0.0724541545,0.0197560079,1.70331144 +-1.0594089,2.95437264,1.0594089,0.00100413244,0.151289806,0.0752968565,0.281698585,0.0724241883,0.0197766684,1.49828458 +-1.19998264,2.95510316,1.19998264,0.000134149974,0.27463454,0.175225079,0.442837805,0.102100492,0.0197487976,1.6970911 +-1.20672572,2.95528531,1.20672572,0.000194645472,0.160333723,0.0854016319,0.234328791,0.0605818555,0.0197552368,1.70663166 +-0.198765323,2.95614529,0.198765323,0.00129007641,0.177589223,0.0973149389,-0.712836146,0.053793475,0.0196199324,0.282724351 +-1.19631755,2.95638919,1.19631755,5.81234999e-05,0.614791274,0.510243356,0.683777809,0.112615868,0.0197444614,1.69190764 +-0.861637712,2.95650029,0.861637712,0.00349597051,0.16299963,0.0819509178,0.272278935,0.507434964,0.0197370667,1.2187618 +0.231460363,2.9573369,-0.231460378,0.00148717198,0.172362506,0.0914587528,-0.746030688,0.1556651,0.0197168384,0.330336452 +-0.654114366,2.95734286,0.654114366,0.00711348746,0.172546268,0.0899750963,-0.142106086,0.694589019,0.019690888,0.926593781 +-1.07798016,2.95925593,1.07798016,0.000341390085,0.241119534,0.129485697,0.298968852,-0.0678443164,0.0197729934,1.52454829 +0.639414787,2.95931768,-0.639414787,0.000432234752,0.17006664,0.0875307322,-0.12066251,0.608887613,0.0197190177,0.905977488 +0.124841429,2.95944023,-0.124841437,0.000564271526,0.179348871,0.0998222902,-0.39168939,-0.00635005161,0.0197091252,0.178669423 +-0.724206209,2.960042,0.724206269,0.00728658773,0.169693828,0.0874594972,0.0282765105,0.67169708,0.0197010506,1.02574372 +0.444038361,2.96070623,-0.444038361,0.00503833452,0.172545254,0.0911245644,-0.794182062,0.614759088,0.0197115447,0.628997445 +0.215357006,2.96104288,-0.215357006,0.00130726199,0.172987714,0.0920544341,-0.691404998,0.12115559,0.0197099708,0.305854857 +0.928488791,2.96124911,-0.928488791,0.00200148625,0.153022096,0.0752981529,0.302122891,0.253310889,0.0197912175,1.31319666 +-1.20481956,2.96381712,1.20481956,0.000195340559,0.167094976,0.0901096016,0.273422778,0.0519906841,0.0197451934,1.70392323 +-1.0288614,2.96400881,1.0288614,0.00131574343,0.153777152,0.0753835142,0.338540465,0.179213241,0.0197592173,1.45511019 +-0.228743628,2.96406436,0.228743643,0.00125895825,0.177308574,0.096621722,-0.840529084,0.112310618,0.0196253378,0.326958597 +0.775165498,2.96421099,-0.775165498,0.00160162419,0.16124326,0.0808156133,0.162674278,0.463990301,0.0197330825,1.09752083 +-1.20054102,2.96474004,1.20054102,0.00010843957,0.26964885,0.173107833,0.456754923,0.0691022277,0.0197387338,1.6978724 +0.150755867,2.96502233,-0.150755852,0.000723517151,0.176255941,0.0958409905,-0.493865639,0.0248789936,0.0197033007,0.21326977 +0.468671799,2.96526098,-0.468671799,0.00344763231,0.173444152,0.0915688351,-0.702385068,0.633534908,0.0197044387,0.663333654 +-1.19697571,2.96550918,1.19697571,4.74203844e-05,0.592769802,0.494200528,0.689896405,0.0621358156,0.0197348204,1.69283009 +-0.0702855438,2.96582651,0.0702855363,0.000136124261,0.240058959,0.174057752,0.237276778,0.0686081871,0.0196188334,0.100372747 +-0.083670035,2.9658308,0.0836700276,0.00029517489,0.184847742,0.115837336,0.0827665031,-0.00354973646,0.0196213108,0.119432777 +-0.101175159,2.96610498,0.101175152,0.000204180164,0.18110466,0.106564783,-0.105525345,-0.0352957509,0.0196181163,0.14437373 +-1.02537084,2.96640325,1.02537084,0.000107296699,0.153866634,0.0755179971,0.347029895,0.187729582,0.019756075,1.4502368 +-0.294151515,2.96653223,0.294151515,0.00181419286,0.175521865,0.0952527821,-0.951609313,0.257801741,0.0196537469,0.418512583 +-1.05555141,2.96689796,1.05555141,0.000356734352,0.154857591,0.0781758577,0.327379018,0.0706060082,0.0197624601,1.49286342 +0.101482786,2.96695423,-0.101482794,0.000176389687,0.185425624,0.107465178,-0.231737912,-0.0288456306,0.0197069831,0.143545568 +-0.137885913,2.9673214,0.137885913,0.000240380949,0.179248512,0.100924186,-0.39211607,-0.0172060877,0.0196055975,0.195070788 +0.0688353032,2.96750689,-0.0688352957,0.000132771864,0.262512922,0.189369619,0.206746474,0.0242605601,0.0197058357,0.0974631086 +-0.360547721,2.96812749,0.360547721,0.00810948666,0.175466582,0.0950784236,-0.938073158,0.432536244,0.0196799263,0.514659822 +0.082437396,2.96831369,-0.082437396,0.000306857051,0.201578304,0.125983819,-0.0166564323,-0.0237159599,0.0197055433,0.116680369 +0.152757451,2.96855354,-0.152757451,0.000358488382,0.176037967,0.0956400484,-0.502948284,0.0285634808,0.0197006613,0.216149628 +-1.07493353,2.96878242,1.07493353,0.000121006393,0.229047269,0.124077752,0.349092126,-0.0648075342,0.0197593365,1.5202744 +0.100291394,2.96918559,-0.100291394,0.000213535342,0.185797438,0.107932217,-0.224306107,-0.0294598751,0.0197051894,0.141901135 +-0.108697668,2.9696281,0.108697668,0.000374161842,0.180766985,0.105332151,-0.165566802,-0.032402806,0.0196119454,0.154330835 +0.101217352,2.96986532,-0.101217352,0.000217338675,0.18560569,0.107670702,-0.230261907,-0.028558407,0.0197044965,0.143196151 +0.0823742971,2.97004223,-0.0823742971,4.04020102e-05,0.201686308,0.126058936,-0.0160622969,-0.0234259237,0.0197039638,0.116693273 +0.0687467456,2.97005224,-0.0687467456,2.39766505e-05,0.263031542,0.189769909,0.208751097,0.0243840478,0.0197035912,0.0974632651 +0.100253403,2.97016668,-0.100253403,1.6164593e-05,0.185822621,0.107936583,-0.224454805,-0.0290633775,0.0197042543,0.141917378 +0.703917801,2.97027111,-0.703917861,0.00452395808,0.165857196,0.0843481794,0.0157244951,0.547425449,0.0197167955,0.995724857 +0.149987504,2.97028399,-0.149987519,0.000324924389,0.176150382,0.0958823785,-0.494716793,0.0257624201,0.0196993276,0.212275863 +0.151446417,2.97062945,-0.151446432,6.92661433e-06,0.175994664,0.0956716985,-0.50156945,0.0279835314,0.0196991526,0.214412719 +0.100821018,2.97081304,-0.100821018,6.06730682e-05,0.185704678,0.107787348,-0.228521973,-0.0285840258,0.0197035428,0.142660782 +-1.21802771,2.97115564,1.21802783,0.00025178268,0.0985864326,0.0470204279,0.0547260121,0.00481646601,0.0197435617,1.72256875 +-1.22388446,2.97115707,1.22388446,0.000204028373,0.0774358436,0.03489298,-0.0466080792,0.00188537152,0.0197447371,1.73085141 +-1.22876489,2.9711585,1.22876477,9.28194859e-05,0.0673513114,0.0352027118,-0.0945388153,-0.00908141583,0.0197448395,1.73775339 +0.154269204,2.97119164,-0.154269204,0.000781614508,0.175824821,0.0954960361,-0.510718286,0.0324204303,0.0196991134,0.218255162 +0.100293718,2.97125816,-0.100293718,0.000302025262,0.185857564,0.10797146,-0.224727958,-0.0288243238,0.0197031666,0.141903549 +-1.02451396,2.97145009,1.02451384,0.000568021904,0.153998986,0.0756728351,0.352991909,0.189228714,0.0197517108,1.44905782 +-0.11963734,2.97158074,0.11963734,0.000423442892,0.179796547,0.10254325,-0.273322761,-0.0269344952,0.0196068548,0.17114599 +1.20920002,2.97164321,-1.20920002,0.000294839439,0.131948739,0.0675497353,0.203694791,0.0161492471,0.0198023822,1.71009588 +-0.14440614,2.97180653,0.144406155,0.000440367381,0.178713083,0.100073025,-0.442088872,-0.0101426318,0.0196008403,0.20437023 +0.151068896,2.97196579,-0.151068881,0.00039959405,0.175920606,0.0956577361,-0.501437247,0.0279077142,0.0196981207,0.213829786 +0.0824399814,2.97197676,-0.082439974,0.00031221041,0.201816574,0.126174882,-0.015627088,-0.022902051,0.0197020415,0.11668241 +0.0688445419,2.97292089,-0.0688445419,0.000135365583,0.263625205,0.190533236,0.210585743,0.0246721283,0.0197008513,0.0974733755 +0.148378134,2.97300291,-0.148378134,0.000215588574,0.176236913,0.0961158499,-0.489704758,0.0245138239,0.019697316,0.209908843 +-1.21806347,2.97303128,1.21806359,2.038397e-05,0.098228775,0.0468119606,0.0559275746,0.0033414741,0.0197414644,1.72262692 +-1.22389901,2.97303772,1.22389901,3.45411463e-05,0.0771763474,0.034743946,-0.0451098569,0.00145375822,0.0197426043,1.73087955 +-1.22876167,2.97304296,1.22876167,1.57257728e-05,0.0674781948,0.0352613963,-0.0926979482,-0.00909138843,0.0197426975,1.73775661 +-0.928441823,2.97314072,0.928441882,0.00210432429,0.157953843,0.0784181058,0.34973973,0.395453691,0.0197338201,1.31350195 +-0.17102094,2.97328448,0.17102094,0.00107574242,0.178529382,0.0987811163,-0.617855787,0.0210334677,0.0195995998,0.243332788 +0.629550755,2.97345614,-0.629550755,0.00394779723,0.170515522,0.0881191939,-0.153699994,0.624614596,0.019704083,0.891447127 +-0.918074667,2.97360563,0.918074727,0.00182043843,0.158715263,0.0789693892,0.343290985,0.415033549,0.0197314993,1.29897809 +-1.21729565,2.97363377,1.21729565,0.000172525572,0.101443507,0.048758924,0.0691135675,0.0027992134,0.019740561,1.72152996 +-1.02820325,2.97449565,1.02820325,0.000786391087,0.153828174,0.0756597593,0.356028914,0.182033151,0.0197496023,1.45419145 +-1.07466233,2.97524858,1.07466233,0.000222412127,0.220063254,0.119238362,0.371850997,-0.0477520898,0.0197493844,1.51990652 +-1.05502844,2.97550941,1.05502844,0.000660654681,0.155053943,0.0786971971,0.351445675,0.0799019784,0.0197529513,1.4921397 +0.75808984,2.97713685,-0.7580899,0.000900928979,0.162659779,0.0818468034,0.142464533,0.492396265,0.0197163988,1.07344604 +0.768012762,2.97714972,-0.768012762,0.000437130744,0.161818102,0.0812294856,0.160823375,0.477654576,0.0197176952,1.08762288 +-0.142166525,2.97725582,0.142166525,0.000209482605,0.178749159,0.100299753,-0.434519142,-0.00841046218,0.0195966121,0.201374725 +0.64646852,2.97744513,-0.64646852,0.00537284045,0.169594243,0.0873086825,-0.102436803,0.613089919,0.0197018702,0.915421903 +-0.101519451,2.97773123,0.101519458,0.000341484963,0.180967778,0.106688239,-0.105012447,-0.0312503502,0.0196092557,0.144104138 +-0.328930378,2.97802782,0.328930378,0.00296649709,0.175260052,0.0951069593,-0.962718964,0.355609238,0.0196603108,0.468187273 +-0.0841570646,2.97825003,0.0841570646,0.000302132743,0.185209289,0.116192929,0.0866774023,0.000128505984,0.0196120813,0.119460687 +0.124216333,2.97873688,-0.124216333,0.000458842522,0.178750873,0.0997779518,-0.398197025,-0.00252379081,0.0196942538,0.176594719 +-0.144245595,2.97881293,0.144245595,2.73080295e-05,0.178646252,0.100068174,-0.451851994,-0.0060565765,0.0195950326,0.204430699 +-0.0709101334,2.97924423,0.070910126,0.000131052788,0.241848916,0.17602171,0.242530629,0.0710453764,0.0196088776,0.100658804 +-0.148481861,2.97962046,0.148481861,0.00046022181,0.178694308,0.0999504477,-0.478305131,-0.0004020622,0.0195941068,0.210083976 +-1.2176044,2.98018551,1.21760452,0.000202623647,0.0974886566,0.0462018326,0.0537768118,-0.00387434452,0.0197365656,1.72195768 +-1.22369957,2.98020864,1.22369969,0.000198813432,0.0769683495,0.034512531,-0.0488670059,-0.00102531514,0.0197374895,1.73057771 +-1.22877896,2.98022842,1.22877884,9.04925109e-05,0.0681382567,0.0354626179,-0.0978549421,-0.0108615011,0.0197375007,1.73776078 +-0.144915447,2.98226333,0.144915432,0.000245089788,0.178684041,0.100074761,-0.461666763,-0.00292039686,0.0195921324,0.205236211 +0.789011121,2.98427939,-0.789011121,0.00590666616,0.160528034,0.0803481042,0.187159002,0.446023881,0.0197155718,1.11643791 +1.19669175,2.98428345,-1.19669175,4.88901023e-05,0.484086245,0.393872559,0.572611988,-0.0368212424,0.0197704453,1.69249117 +1.20005333,2.98467302,-1.20005333,0.000112766473,0.244816601,0.151936799,0.430509627,0.00884256605,0.0197749492,1.69724488 +0.987090588,2.98498869,-0.987090647,0.0021823626,0.153791979,0.0761027038,0.33781144,0.161201209,0.0197958201,1.39671326 +1.20408702,2.98514152,-1.20408702,0.00017853512,0.151066065,0.0798052698,0.288246453,0.0138335973,0.0197818857,1.70294929 +0.229596987,2.98533201,-0.229596987,0.00136896188,0.170512497,0.0907088146,-0.787797332,0.179136232,0.0196934789,0.325764716 +1.01768124,2.9854238,-1.01768124,0.00271517318,0.153902203,0.0767108798,0.327880383,0.116599731,0.0198073629,1.43948507 +1.0750246,2.98588324,-1.0750246,0.000528250122,0.223810703,0.123886481,0.35935992,-0.0637358576,0.0198247582,1.52048969 +-0.137075663,2.98654485,0.137075663,0.000265124138,0.178740472,0.100818798,-0.405801475,-0.00688998215,0.0195900407,0.193910971 +0.598754525,2.98834348,-0.598754525,0.00482902117,0.171653539,0.0896054804,-0.279892623,0.658546925,0.0196856316,0.84742415 +-0.936636746,2.98859835,0.936636746,0.00249584951,0.157617986,0.0782964006,0.371542871,0.37945047,0.0197231974,1.32495117 +1.05591786,2.98985457,-1.05591786,0.00158027292,0.157302976,0.0821449682,0.339881361,0.0339117311,0.0198167153,1.49346352 +-0.832101822,2.98997831,0.832101822,0.00509356055,0.165003106,0.0836697817,0.250736564,0.555304587,0.0197048057,1.17717385 +0.874114454,2.99079657,-0.874114454,0.00554307923,0.154961988,0.0765922144,0.283192784,0.325375915,0.019737307,1.23790336 +1.19621718,2.99105167,-1.19621718,2.41474809e-05,0.455744207,0.365839988,0.5578807,-0.0672595352,0.0197642185,1.69178975 +0.122381791,2.99156523,-0.122381791,0.000263678841,0.179062232,0.100192763,-0.398991793,0.000601104926,0.0196811687,0.174424693 +1.19966614,2.99179745,-1.19966614,5.65987248e-05,0.235106692,0.144527808,0.427626044,-0.0150343217,0.0197685082,1.69666708 +-0.886822224,2.99240017,0.886822224,0.00199384033,0.161416382,0.0810043737,0.321667761,0.472906291,0.0197120924,1.25426841 +1.20380402,2.99269104,-1.20380402,0.000294565049,0.145386115,0.076175496,0.290375024,-0.00366940722,0.019775169,1.70251894 +-0.173309982,2.99269962,0.173309982,0.00167129852,0.178521246,0.0987958163,-0.662671506,0.040867988,0.0195844825,0.246351302 +-1.19619751,2.99325085,1.19619751,6.23212763e-05,0.476099133,0.384310097,0.629478812,-0.100078814,0.0197104979,1.69184029 +1.22382736,2.99361444,-1.22382748,0.000188359525,0.071400851,0.0322461575,0.0321770199,-0.00977696665,0.0197864231,1.7307874 +1.22874224,2.99364424,-1.22874224,8.64162357e-05,0.0646220222,0.0348438472,-0.0160428155,-0.0166712906,0.0197868999,1.73773837 +1.21797812,2.9936533,-1.21797812,0.000175070658,0.089018032,0.0415520705,0.111181587,-0.0168004297,0.0197847933,1.72251546 +-1.19984484,2.99382162,1.19984484,0.000143515805,0.240450561,0.151894256,0.461732477,-0.0399478227,0.019713236,1.69699883 +-0.0836350098,2.9938283,0.0836350098,0.000373118732,0.185498551,0.116571546,0.0874497443,0.00587063096,0.0196008123,0.119431376 +-0.0707516298,2.99386811,0.0707516372,0.000153983303,0.244235188,0.1785568,0.246169567,0.073196277,0.0195987076,0.10099107 +1.21444881,2.99393582,-1.21444881,0.000257695356,0.103494868,0.0500532202,0.158677101,-0.0130523313,0.0197813548,1.71749616 +0.114128359,2.99411154,-0.114128351,0.000383682258,0.18149969,0.103119947,-0.337867379,-0.00535577675,0.019679565,0.162481517 +-0.100467578,2.99411273,0.100467578,0.000348587782,0.180936262,0.10689164,-0.109784499,-0.0236316547,0.0195967648,0.143520594 +-1.20422173,2.99450707,1.20422173,0.000347563619,0.150024951,0.0799127743,0.285123557,-0.0202049166,0.0197172426,1.70318937 +0.318298966,2.99546218,-0.318298936,0.00167277351,0.169306219,0.0899021029,-1.02469587,0.42870456,0.0196829326,0.45154357 +1.02936757,2.99560261,-1.02936757,0.00227759592,0.153419286,0.0767628029,0.331221044,0.0995854437,0.0198015999,1.45590734 +0.132032543,2.99560976,-0.132032543,0.000612970558,0.177005783,0.0980878323,-0.445600808,0.0121760322,0.0196769573,0.187570065 +-0.919881105,2.99590135,0.919881046,0.00168965501,0.158905819,0.0791960955,0.363121182,0.410329044,0.0197153222,1.30152714 +-0.249415696,2.99615145,0.249415696,0.00234775385,0.176584452,0.0964058861,-0.973177612,0.195900545,0.0196017008,0.354359388 +1.21781051,2.99639058,-1.21781051,8.98990475e-05,0.0884424448,0.041194059,0.113228597,-0.0202485807,0.0197821837,1.72228467 +1.2237705,2.99643588,-1.22377038,0.000119405711,0.0712223724,0.032106217,0.0332068764,-0.0116119152,0.0197837315,1.73071337 +1.22873712,2.99647331,-1.228737,5.42983544e-05,0.0649637207,0.0349916853,-0.0152973244,-0.0173932929,0.0197841749,1.73773754 +-0.12109483,2.9967761,0.12109483,0.000371406117,0.179152533,0.102398872,-0.301852822,-0.0123343356,0.0195853189,0.171614856 +0.309194028,2.9982779,-0.309193999,0.00141389645,0.16917181,0.0898709446,-1.01150966,0.40939346,0.0196792018,0.438681871 +-1.0797627,2.99834418,1.0797627,0.000335776975,0.179485023,0.0940210894,0.333631963,0.0116367117,0.0197221171,1.52703154 +0.081090413,2.99836421,-0.081090413,0.000467525388,0.204418689,0.128292233,-0.005039501,-0.0105394907,0.0196768641,0.116400987 +0.0679963976,2.99854159,-0.0679963976,0.000196366629,0.270847499,0.198676884,0.22267656,0.0321396813,0.0196777806,0.0975888669 +0.0983682722,2.99858809,-0.0983682722,0.000437924435,0.186761647,0.108769476,-0.225777745,-0.019153038,0.019675253,0.141218513 +0.192685932,2.99961877,-0.192685947,0.00152570929,0.171518594,0.0918637365,-0.678724408,0.110861219,0.0196760185,0.273376673 +-0.851238668,3.00022769,0.851238668,0.0012414339,0.164282545,0.083100073,0.289586872,0.532837152,0.0197011102,1.20463562 +0.961146176,3.00071144,-0.961146176,0.00279532326,0.154157937,0.0761840343,0.341557145,0.199224621,0.0197685324,1.35973108 +-0.114873491,3.00101376,0.114873499,0.000263504247,0.17941238,0.103659831,-0.247223958,-0.0128289675,0.0195851065,0.162777007 +1.19157648,3.00176287,-1.19157648,7.59898176e-05,0.404933989,0.31313175,0.483157516,-0.106308311,0.0197592359,1.68519425 +0.144935742,3.00187588,-0.144935742,0.000798705965,0.174694642,0.0953936949,-0.520585775,0.0341567472,0.0196701288,0.207392335 +-0.15712595,3.00376225,0.157125935,0.000622746593,0.178407818,0.0995373726,-0.570911109,0.0257854331,0.019575648,0.222798645 +1.19553137,3.00391102,-1.19553137,0.000176607908,0.220157877,0.131317988,0.377343804,-0.0481079519,0.0197625551,1.69078732 +0.923043191,3.00406456,-0.923043191,0.00230046641,0.154950216,0.0765599683,0.328092754,0.252319753,0.0197454207,1.30612063 +-0.120093159,3.00513196,0.120093167,0.000210558719,0.178953126,0.102391846,-0.304534286,-0.00768357515,0.0195798352,0.170538455 +1.20027149,3.00647449,-1.20027161,0.000333681382,0.142357677,0.0732640624,0.26010558,-0.0310165435,0.0197677165,1.69749081 +-1.06229806,3.00661492,1.06229806,0.00100337283,0.145000696,0.0726088732,0.348555326,0.119758226,0.0197240021,1.50233269 +-0.754363239,3.00698757,0.754363179,0.00831859559,0.169403747,0.0872831717,0.1140991,0.648037016,0.0196757708,1.06875074 +0.757333934,3.00715637,-0.757333875,0.00457767909,0.162982732,0.0822594315,0.153140828,0.500795126,0.0196800046,1.07156456 +0.316195905,3.00949717,-0.316195905,0.00179618492,0.168688148,0.089829959,-1.05561483,0.443762571,0.0196712539,0.448600948 +-0.127455235,3.01005888,0.127455235,0.000506271201,0.178628191,0.101673126,-0.367296278,0.000429254025,0.0195736531,0.180545539 +0.174994498,3.01031542,-0.174994498,0.000753026106,0.171511203,0.0924738124,-0.63704443,0.090042606,0.0196645763,0.24925302 +-0.283983946,3.01033592,0.283983946,0.00318466499,0.175281078,0.0956757292,-1.05656171,0.289162189,0.0196068846,0.403257966 +-1.19006777,3.0108285,1.19006777,7.20034441e-05,0.406836092,0.307950616,0.519720554,-0.183633268,0.0197065603,1.68316793 +0.118611813,3.01150799,-0.118611813,0.000427231018,0.179399103,0.100908883,-0.383151293,0.002915469,0.0196617506,0.168199718 +-0.0712745562,3.01246977,0.0712745562,0.000120270648,0.247631922,0.182446033,0.248845279,0.0764854774,0.0195835121,0.100965485 +-1.19436073,3.0129981,1.19436073,0.000167464445,0.223997056,0.135293335,0.414219379,-0.105509177,0.0197071694,1.6892395 +-0.868443251,3.01368284,0.868443251,0.00227243989,0.163001567,0.0822637305,0.321200579,0.503082216,0.0196936969,1.22853255 +-0.0839806572,3.01369858,0.0839806572,0.000277456333,0.185621262,0.117081858,0.0905043706,0.0131434314,0.0195853449,0.118947849 +-1.01082134,3.01377058,1.01082134,0.00159680226,0.153937921,0.0759648159,0.416169107,0.225335419,0.0197150428,1.42952585 +0.235035181,3.01441097,-0.235035181,0.00130868657,0.167966917,0.0894410387,-0.870305538,0.232386231,0.0196676366,0.334516704 +0.0687353611,3.01490235,-0.0687353611,0.000122929574,0.272673965,0.201888874,0.229897112,0.0358133912,0.0196608938,0.0978734568 +-0.100529581,3.0151403,0.100529581,0.000265931158,0.180320144,0.106802285,-0.112704411,-0.0126291215,0.0195806138,0.142365664 +0.0813925713,3.01536989,-0.0813925713,0.000283929141,0.205438495,0.129599512,0.00413630158,-0.00632196851,0.0196598042,0.115873471 +-1.21122539,3.01541543,1.21122539,0.000300885615,0.111211181,0.0539953187,0.122783497,-0.0407558158,0.0197090302,1.71298981 +-1.19951081,3.01559925,1.19951081,0.000253788632,0.145888567,0.075940989,0.261634439,-0.0654929951,0.0197080597,1.69652367 +1.08367455,3.01616502,-1.08367443,0.000331859774,0.158808425,0.0824794546,0.260675907,-0.00707292184,0.0197737776,1.53264451 +-1.03828418,3.0162828,1.03828418,0.0013952239,0.149633035,0.0733805299,0.384083867,0.187505484,0.0197165105,1.46836972 +0.0980112404,3.01630163,-0.0980112329,0.00036048764,0.187047899,0.109333552,-0.219839886,-0.0149062211,0.0196587201,0.139485553 +0.204889253,3.01656866,-0.204889253,0.000998119591,0.169668123,0.0908216164,-0.754285216,0.156445011,0.0196648967,0.290477991 +0.334918857,3.01929092,-0.334918857,0.00320234103,0.169833884,0.0909319669,-1.07137036,0.505382776,0.0196602494,0.474237323 +-0.101762071,3.01964879,0.101762079,0.000133015681,0.180162475,0.1064872,-0.12942937,-0.00942125451,0.0195767302,0.144325852 +-0.0836488381,3.02057815,0.0836488381,0.000126320432,0.185644701,0.117200509,0.0915269405,0.0151439589,0.0195808485,0.118786745 +-0.0710359216,3.02060032,0.0710359216,6.21545478e-05,0.248991758,0.183891997,0.251079708,0.0770291165,0.0195781626,0.100933678 +-1.08414102,3.02092028,1.08414102,0.000245013274,0.140669018,0.0711977035,0.308103949,0.0693068057,0.0196941346,1.53330398 +-0.100101568,3.02092505,0.100101568,7.82287098e-05,0.180165678,0.106753126,-0.114724427,-0.0096756639,0.0195768364,0.142072856 +-1.21524489,3.02118683,1.21524489,0.000209485923,0.0926083773,0.0423197262,0.0425256491,-0.0460680574,0.0197075866,1.71873593 +-1.22260463,3.02130151,1.22260463,0.000247932301,0.0753949881,0.0329934582,-0.0668748915,-0.0153698996,0.019707229,1.72914469 +-1.22873735,3.02139711,1.22873735,0.000112781832,0.0722621679,0.0367847122,-0.12161883,-0.0203992222,0.0197067857,1.73781836 +0.188577414,3.021451,-0.188577428,0.000742390286,0.169771791,0.0911225304,-0.708703518,0.124603748,0.0196600109,0.268308192 +1.21432555,3.02237511,-1.21432555,0.000254114973,0.0887401029,0.0406723507,0.097855404,-0.0469191372,0.019765351,1.71731782 +1.22221577,3.0224297,-1.22221565,0.000265622162,0.0730151087,0.0325378999,0.00283531751,-0.0211716965,0.0197666548,1.72847605 +1.22878599,3.02247643,-1.22878599,0.000120817145,0.0667154416,0.034905497,-0.0597800761,-0.0240806229,0.0197668094,1.73776793 +0.940468609,3.0233984,-0.94046855,0.00226611784,0.155045748,0.0766441375,0.353598505,0.226857454,0.0197353978,1.33091569 +0.523752689,3.02352428,-0.523752749,0.00916380715,0.17470704,0.0932110548,-0.552663326,0.734380603,0.0196439996,0.743991971 +-0.120045893,3.02377319,0.120045893,0.000292066863,0.178598225,0.102410316,-0.321608871,0.00187013438,0.0195666272,0.169911936 +0.152370855,3.024683,-0.152370855,0.000713811547,0.17202659,0.0937242955,-0.57693994,0.0570405461,0.0196543559,0.216850936 +0.106248155,3.02555299,-0.106248155,0.000365843793,0.183725595,0.105757497,-0.291037947,-0.00512004364,0.0196487457,0.150644958 +-0.937307715,3.02557802,0.937307715,0.0020911938,0.15750967,0.07832627,0.408133984,0.368301809,0.0196966827,1.32578027 +-0.100148976,3.02558541,0.100148968,0.000218314162,0.17991595,0.1066892,-0.116844334,-0.00774500472,0.0195736364,0.141875908 +0.0808233395,3.02576208,-0.0808233395,0.000317298429,0.207188755,0.131459907,0.0172879528,-0.00171625242,0.0196486879,0.115054041 +0.0966336876,3.02583218,-0.0966336876,0.000236289983,0.187851071,0.110277124,-0.206812978,-0.0120372493,0.0196485408,0.137515128 +-0.0837737694,3.02600479,0.0837737694,0.000264437345,0.185730338,0.117355324,0.0906442404,0.0168272723,0.0195771344,0.118708037 +0.0688569397,3.0260644,-0.0688569397,0.000145092621,0.275287747,0.204902425,0.237205386,0.037637908,0.019648606,0.0980398878 +0.114785485,3.026402,-0.114785485,0.000102137434,0.179692596,0.101472095,-0.372761428,0.00493551884,0.0196476374,0.163492233 +0.266746312,3.02660656,-0.266746312,0.00154256914,0.166566283,0.0888452083,-1.00673139,0.336681783,0.0196553655,0.379072487 +-0.071229741,3.02693057,0.0712297335,0.000114712144,0.250243902,0.185220748,0.250121564,0.0776599199,0.0195738915,0.100957222 +-0.146339089,3.0275116,0.146339089,0.000632649811,0.178216204,0.0998559073,-0.54755199,0.0285274275,0.0195576735,0.208634004 +1.08794928,3.02832651,-1.08794928,0.00027025945,0.132358655,0.0664775744,0.212677032,0.012132735,0.019752996,1.53873217 +0.176603019,3.028754,-0.176603019,0.000568952644,0.169708237,0.0915063322,-0.667191327,0.100898646,0.0196517818,0.250715464 +-0.106826454,3.02911282,0.106826462,0.000204040407,0.179569036,0.105374508,-0.190500051,-0.00201833993,0.0195680279,0.151162863 +-1.0900594,3.02920532,1.0900594,0.000296266575,0.121914349,0.0596546382,0.241278142,0.0533574298,0.01969078,1.54161382 +0.255483031,3.02949762,-0.255483001,0.00128870038,0.166713431,0.0889725983,-0.967379808,0.304990649,0.0196539778,0.361937732 +1.06729305,3.02968788,-1.06729305,0.000987196923,0.136569887,0.0689240918,0.290744632,0.0774954408,0.0197671559,1.50947642 +-1.20872402,3.03007078,1.20872402,0.000279311556,0.104683712,0.0489124432,0.0823781565,-0.0676832795,0.0197027419,1.70946586 +-0.199896097,3.03061175,0.199896097,0.00124115939,0.179504395,0.0987556875,-0.873908758,0.118773036,0.0195553955,0.282720625 +-0.199029341,3.03165007,0.199029341,0.00116038939,0.179536134,0.0987922475,-0.872776091,0.11817266,0.0195542034,0.281511664 +-1.18221283,3.03173304,1.18221283,9.8028926e-05,0.305197716,0.204470828,0.365414739,-0.261502802,0.0197036471,1.67209339 +-0.199460119,3.03189564,0.199460119,0.000357446115,0.17952089,0.0987786576,-0.875433862,0.119284295,0.0195541885,0.282141417 +1.18116975,3.03232789,-1.18116975,0.000119452685,0.248991996,0.160407558,0.269660473,-0.218386963,0.01974204,1.67059922 +-0.198886618,3.03245187,0.198886603,0.00021153671,0.179520637,0.0987903699,-0.87355864,0.118527099,0.0195536446,0.281318158 +-0.199451163,3.03256178,0.199451163,0.000459073461,0.179484233,0.0987673923,-0.877374947,0.119993098,0.0195536297,0.282110304 +-1.21345747,3.03339601,1.21345747,0.000261987065,0.0935526267,0.0424414016,0.0270465482,-0.050651025,0.0197009537,1.71618056 +-1.22179496,3.03351855,1.22179496,0.000300493324,0.0767533183,0.0334846899,-0.083593592,-0.0176367741,0.0197005123,1.72797203 +-1.22873926,3.03362083,1.22873926,0.000136657254,0.0726618543,0.0364536047,-0.143377215,-0.024435807,0.0197000485,1.73779333 +-1.00322306,3.03386736,1.00322306,3.72712057e-05,0.153968006,0.0761578307,0.446932435,0.244355425,0.0196974017,1.41883802 +-0.583860636,3.03421807,0.583860636,0.00458927918,0.178968638,0.0962284505,-0.404726297,0.763952553,0.0196259134,0.826150119 +-0.9995628,3.03555632,0.9995628,0.00222151354,0.154038489,0.0762043819,0.450176865,0.252958357,0.0196954403,1.41366696 +-0.140446067,3.03607845,0.140446052,0.000444581412,0.178321511,0.100358613,-0.515896916,0.0266370848,0.019551998,0.199718997 +-1.06845033,3.03619766,1.06845033,0.000726505124,0.136896178,0.0679008737,0.355625987,0.15612261,0.0196958408,1.5111115 +-1.18740177,3.03648305,1.18740177,0.000239519417,0.197531283,0.1098639,0.324213594,-0.173542514,0.0197003819,1.67943287 +-0.437798321,3.03658772,0.437798321,0.00445747189,0.18099536,0.0996226594,-0.871654749,0.66317904,0.0196326934,0.62025547 +-0.558823407,3.03689003,0.558823407,0.00613302365,0.180251554,0.0973623693,-0.475182265,0.753411233,0.0196240321,0.791218162 +1.18637729,3.03791046,-1.18637729,0.000282153953,0.175223038,0.0926676914,0.252061397,-0.149625272,0.019743219,1.67796457 +-1.00134969,3.03800559,1.00134969,1.89121911e-05,0.153921872,0.0761410147,0.452991158,0.248802483,0.0196937677,1.41626 +0.859529972,3.03829646,-0.859530032,0.00666345982,0.156967431,0.0779145509,0.301222384,0.346696198,0.0196838174,1.21831679 +-0.679953098,3.03853416,0.679953098,0.0068996409,0.173752561,0.0911744758,-0.0813761503,0.719401956,0.0196365789,0.962985873 +0.133627579,3.03872347,-0.133627579,0.000618177175,0.174135357,0.0960671306,-0.493693769,0.0324403308,0.0196381193,0.189393863 +-1.00478113,3.03889942,1.00478113,0.000539583911,0.153508767,0.075910531,0.450786263,0.244537771,0.0196933597,1.42102814 +-0.117852725,3.03909636,0.117852718,0.000105912819,0.17851761,0.102590583,-0.326067418,0.00879333727,0.0195570178,0.167535156 +-0.463745236,3.04071665,0.463745266,0.00513159856,0.181789875,0.100063622,-0.827146411,0.715203941,0.0196275525,0.657119751 +0.123740427,3.04073143,-0.12374042,0.000490693084,0.176456183,0.0985031724,-0.438916445,0.021485541,0.0196356811,0.175226718 +0.274215072,3.04108047,-0.274215072,0.00186259695,0.16590634,0.0887583122,-1.06060839,0.37687099,0.0196450129,0.389666587 +0.224664047,3.04154062,-0.224664047,0.001062089,0.165876091,0.0887494013,-0.901243329,0.237048253,0.0196426101,0.318814576 +-1.00206542,3.04187894,1.00206554,0.000379123521,0.15380767,0.0760593712,0.456667125,0.247305229,0.0196910985,1.41721094 +-1.19362867,3.04218149,1.19362867,0.000419030199,0.138051212,0.068645522,0.204392433,-0.117144302,0.0196965504,1.68824077 +1.10210538,3.04224896,-1.10210538,0.000322031847,0.104816437,0.0495226569,0.102312863,-0.0487395525,0.0197410546,1.55864668 +-0.250408322,3.04233193,0.250408351,0.0017904602,0.176085398,0.096471265,-1.08987725,0.254361212,0.0195644647,0.358258247 +-0.199058622,3.04250455,0.199058622,0.000811493723,0.17920655,0.0987152532,-0.899665296,0.126783296,0.0195460021,0.281514049 +-1.17094445,3.04313421,1.17094445,0.000141095923,0.219440132,0.129990891,0.222798154,-0.285561502,0.0196987502,1.65615082 +0.489400268,3.0443902,-0.489400238,0.00456533814,0.175702065,0.0948253274,-0.718607068,0.761910677,0.0196202379,0.69445312 +-0.997637033,3.04450035,0.997637033,0.00203051954,0.154128075,0.0762830451,0.45794484,0.254040658,0.0196888298,1.41091859 +1.17147207,3.04451036,-1.17147207,0.00014491794,0.191627741,0.110124148,0.185170114,-0.275762379,0.0197402611,1.65684974 +1.19262648,3.04460907,-1.19262648,0.000410343346,0.129957959,0.0627916455,0.194063127,-0.115900032,0.0197451226,1.68680286 +-1.00549471,3.04486036,1.00549471,0.000750856765,0.153314948,0.0757287741,0.455611497,0.243704751,0.0196893495,1.42202258 +-0.113160461,3.04495764,0.113160454,0.000286455965,0.178911194,0.10385786,-0.277633876,0.00975030847,0.0195539109,0.160522074 +-0.11786481,3.04522228,0.11786481,4.58088944e-05,0.178604111,0.102648169,-0.333147079,0.0119914971,0.0195523482,0.16763711 +1.0729413,3.04568601,-1.0729413,0.000797360728,0.127460241,0.0631248131,0.263492078,0.0938743353,0.0197473019,1.51750541 +0.0970945805,3.04581547,-0.097094588,0.000295734499,0.187471449,0.110092707,-0.211750686,-0.00692561921,0.0196281411,0.137416884 +-0.122623943,3.04637074,0.12262395,0.000419985648,0.178412274,0.102157421,-0.374951243,0.0170770921,0.0195505004,0.17390132 +1.21013856,3.04651451,-1.21013856,0.000187998405,0.09202604,0.041880805,0.0956905186,-0.0726371258,0.0197491273,1.71142244 +-1.07614517,3.04665732,1.07614517,0.000866412534,0.125791892,0.0608642809,0.300623983,0.14578101,0.0196884554,1.52193522 +-0.0706350207,3.04667234,0.0706350207,0.000182331918,0.254938871,0.190112829,0.246647954,0.0774396881,0.0195614286,0.100794911 +-0.0826969594,3.04667759,0.0826969594,0.000431418594,0.185967028,0.117925771,0.0864065886,0.0235665403,0.0195634589,0.118022457 +-0.098391898,3.04700089,0.0983918905,0.000432345259,0.179419488,0.106594525,-0.128329754,0.00207550661,0.0195593834,0.140415326 +0.130048409,3.04732156,-0.130048409,7.47858576e-05,0.174350947,0.0964657366,-0.487036586,0.0334313214,0.0196290296,0.184750944 +0.081454955,3.04768157,-0.081454955,0.000246883777,0.206654608,0.131038517,0.0207317919,0.00174769759,0.0196250044,0.115255579 +0.265105754,3.04826808,-0.265105754,0.000938840734,0.164891273,0.0882829055,-1.05833924,0.360751003,0.0196387004,0.376730591 +1.21088958,3.0482688,-1.2108897,0.00010431579,0.0887364447,0.0399564728,0.0836396664,-0.0738896281,0.0197484884,1.71249473 +1.22065008,3.04841423,-1.22065008,0.00017520407,0.0746642277,0.0328608975,-0.0262618773,-0.0308547243,0.0197494905,1.72629845 +1.22878289,3.04853582,-1.22878301,7.97333632e-05,0.0685620978,0.0347425565,-0.102829903,-0.0307415593,0.0197493173,1.73780036 +1.04502881,3.04925847,-1.04502881,0.00154185947,0.144439518,0.0712063164,0.338882327,0.102978155,0.0197477546,1.47798812 +0.0694802925,3.04959297,-0.0694802999,0.000106640997,0.276433438,0.205764994,0.240930542,0.0382330492,0.019621728,0.0982856378 +1.20841956,3.04985476,-1.20841956,0.000544615847,0.0930725336,0.0421739034,0.0916332304,-0.0808861256,0.0197471902,1.70898056 +-1.10591364,3.04997873,1.10591364,0.000414038193,0.0750887096,0.0327388756,0.0643003061,-0.000583536923,0.0196838658,1.56415987 +0.105658732,3.05090499,-0.105658732,0.000231719401,0.18391721,0.106518544,-0.284309417,0.00509428047,0.0196240246,0.14948228 +0.0968386903,3.0509522,-0.0968386903,4.44875368e-05,0.187428489,0.110120013,-0.211930305,-0.00530871656,0.0196231827,0.137288019 +1.00183856,3.05099392,-1.00183856,0.000711426721,0.153843492,0.0763371214,0.390263826,0.136697412,0.0197340157,1.41682029 +0.0813684613,3.05100775,-0.0813684613,5.31609039e-05,0.206622079,0.131014004,0.0213359818,0.00274863304,0.0196217056,0.115258433 +0.0694588125,3.05114412,-0.0694588125,1.35543842e-05,0.27657035,0.205841288,0.240986884,0.038296096,0.0196201261,0.0983046517 +1.21024084,3.05121803,-1.21024096,0.000300212298,0.0893895999,0.0402264483,0.080173634,-0.0750522017,0.0197467227,1.71157503 +1.22036326,3.05131531,-1.22036326,0.000450976775,0.0753119066,0.0331449285,-0.0309448205,-0.0307319611,0.0197476167,1.72589052 +1.22878766,3.05144501,-1.22878766,0.000204660377,0.0687293783,0.0346662849,-0.109268196,-0.0310895145,0.0197473951,1.73780453 +-0.325835347,3.05181456,0.325835347,0.00156718737,0.174989685,0.0968467593,-1.19679987,0.466822952,0.0195916891,0.461099893 +0.0982812047,3.05187559,-0.0982812047,9.16949939e-05,0.186688572,0.109385684,-0.226455331,-0.00310512772,0.019622542,0.139271677 +0.0694788545,3.05208874,-0.0694788545,0.00010526659,0.2766096,0.205831736,0.240888506,0.0381650738,0.0196191408,0.0982997268 +0.126878738,3.0528264,-0.126878724,9.75791772e-05,0.175121039,0.0972864553,-0.469535142,0.0329261012,0.0196225811,0.180177137 +0.140286773,3.05295491,-0.140286773,0.000339227408,0.172231257,0.0948064327,-0.5426085,0.0545427278,0.0196243096,0.19876118 +0.130983502,3.05297351,-0.130983502,4.69379011e-05,0.173595414,0.0959826484,-0.499767423,0.0396363884,0.0196227133,0.186200842 +0.081429556,3.05306387,-0.081429556,0.000243302988,0.206578955,0.130954921,0.0213311668,0.00280485768,0.0196196605,0.115259826 +0.998175979,3.05341077,-0.998175919,0.00169924251,0.153857023,0.0762978047,0.392512918,0.141979128,0.0197300445,1.41164613 +0.999858677,3.05341196,-0.999858677,0.000426882703,0.15383631,0.0762955695,0.393034905,0.139472559,0.0197307635,1.41403294 +-1.17671132,3.05403495,1.17671132,0.000349538575,0.167348355,0.0859703347,0.207026452,-0.193680286,0.0196892507,1.66430736 +0.0969703719,3.05415797,-0.0969703719,0.000207242105,0.18735154,0.110080212,-0.213385418,-0.00481076632,0.0196201783,0.137315795 +0.178180248,3.05440736,-0.178180248,0.000704526552,0.16748555,0.0904523134,-0.73605001,0.134050101,0.0196264721,0.25409627 +1.00100982,3.05460024,-1.00100994,6.54234191e-06,0.153668821,0.076211445,0.393115491,0.138324216,0.0197298788,1.41566312 +1.00000119,3.0547049,-1.00000119,0.000264574512,0.153847992,0.0763021559,0.39403984,0.139153466,0.0197295174,1.41425359 +-0.840485573,3.05472898,0.840485573,0.00305500929,0.166003153,0.084465526,0.305701315,0.529721618,0.0196615085,1.18874216 +1.15752435,3.05474496,-1.15752435,0.000202664,0.134583712,0.066422984,0.0655759722,-0.297554433,0.0197386034,1.63711905 +1.17744541,3.05480242,-1.17744529,0.000367545232,0.148519173,0.0736500844,0.167077497,-0.18691875,0.0197386369,1.66529775 +-1.15919924,3.05489349,1.15919924,0.000237355416,0.151105404,0.0757043213,0.0961899012,-0.313043058,0.019692786,1.63955569 +0.429056346,3.05490851,-0.429056346,0.00396602135,0.173932344,0.094508782,-0.970387459,0.748324692,0.0196151342,0.610981405 +-0.331420183,3.05495977,0.331420213,0.000926570967,0.17500934,0.0969564989,-1.20801675,0.488391966,0.0195906702,0.469138145 +1.11416411,3.055336,-1.11416411,0.000229586629,0.0780029446,0.0341071188,-5.94481826e-05,-0.0975384861,0.0197292119,1.5757829 +0.166713119,3.05565691,-0.166713133,0.00121882919,0.167906195,0.0910251141,-0.68261528,0.104868293,0.0196242873,0.237019286 +1.00490069,3.05578351,-1.00490069,0.000943931227,0.152672708,0.0756356791,0.389000326,0.135720283,0.0197296645,1.42114806 +1.00079405,3.05583644,-1.00079405,0.000459017901,0.153749645,0.0762341991,0.394220352,0.138189495,0.0197287295,1.41535687 +-0.156445295,3.05616307,0.156445295,0.000399652432,0.178448334,0.0995289758,-0.667900741,0.0614364296,0.0195349269,0.221330315 +-0.149410963,3.05649638,0.149410963,0.000288472278,0.178457662,0.100160964,-0.609030306,0.0543290414,0.0195366777,0.21133928 +1.1220237,3.05730152,-1.1220237,0.000307329232,0.0814126879,0.0356997997,-0.0115425996,-0.145817012,0.0197313968,1.58686471 +-0.569973588,3.05754781,0.569973588,0.000799065514,0.18049182,0.0977223217,-0.461053729,0.784681916,0.0196073093,0.807300985 +0.999546528,3.05767632,-0.999546468,0.00163546926,0.153981104,0.0763593763,0.396030426,0.138533846,0.0197265428,1.41358709 +-0.159175232,3.0577867,0.159175232,0.000684841769,0.178470492,0.0994029641,-0.690155327,0.066418685,0.0195337031,0.225271091 +0.20944953,3.05785799,-0.20944953,0.00100850803,0.16457659,0.0883692354,-0.893648386,0.223343998,0.0196273047,0.298692167 +-1.04742038,3.05848575,1.04742038,0.00116121687,0.145984516,0.071528174,0.417803049,0.192448527,0.0196825992,1.48136592 +-1.12594497,3.05877376,1.12594497,0.000266508607,0.0756775886,0.0319181569,-0.0261153094,-0.150360167,0.0196836367,1.59242404 +-0.268920869,3.05903053,0.268920839,0.00273254723,0.17453064,0.0961150303,-1.19205904,0.331355482,0.0195588302,0.383635044 +-1.1396929,3.05930901,1.1396929,0.000229654324,0.0951327384,0.0422422439,-0.0112287458,-0.226788223,0.0196862984,1.61185169 +-0.376161605,3.05938911,0.376161575,0.00446237437,0.177410662,0.0986689031,-1.14089239,0.612783313,0.019608533,0.53674531 +-0.117659673,3.05960464,0.117659681,0.000513237028,0.178365484,0.102559544,-0.346297026,0.0184313469,0.019542411,0.166577488 +1.14577913,3.05969095,-1.14577913,0.000326076086,0.104859784,0.0476052277,-0.0122814281,-0.28368032,0.0197368786,1.62055063 +-0.462735474,3.06050301,0.462735444,0.00120380218,0.182592064,0.101020709,-0.863071918,0.745008171,0.0196133032,0.656187534 +-0.915417194,3.06083751,0.915417194,0.00573228579,0.159778297,0.0801491216,0.421101391,0.405787081,0.0196681358,1.29666007 +-0.158460706,3.06092572,0.158460706,0.000607630936,0.178407356,0.0993968248,-0.692297697,0.0675260946,0.0195315033,0.224292636 +-1.1324662,3.06110001,1.13246608,0.000131184701,0.0764734522,0.0319507904,-0.0483153909,-0.198498428,0.0196841471,1.60167658 +-0.156838715,3.0615263,0.1568387,0.000590876793,0.178311571,0.0994179249,-0.680513799,0.0653603449,0.0195313916,0.221955389 +-0.521490216,3.06187487,0.521490276,0.00362204341,0.181654811,0.0994143784,-0.647791624,0.769593596,0.0196066666,0.737707615 +0.13311404,3.06220341,-0.13311404,0.000669584842,0.172306329,0.0951712728,-0.521869659,0.0480307229,0.0196138807,0.188620478 +-1.19932723,3.06283116,1.19932723,0.000446300721,0.116301283,0.0545614846,0.0777203739,-0.0848948881,0.0196847562,1.6962595 +0.117585897,3.06330395,-0.117585897,0.000398196426,0.178066343,0.100347817,-0.406720698,0.0234871618,0.0196112916,0.166404724 +1.09148073,3.0635581,-1.09148073,0.000942404033,0.113163069,0.0533329509,0.153391242,0.0504822209,0.0197343789,1.54362082 +-0.330641419,3.06443167,0.330641419,5.49170072e-05,0.175003707,0.0971389785,-1.23371005,0.501386166,0.0195821095,0.468546093 +-0.565430045,3.06649351,0.565430045,0.000328214519,0.181309849,0.098527804,-0.481133372,0.789320588,0.0196001977,0.801095605 +-1.04650915,3.06697607,1.04650915,0.00146340765,0.146037936,0.0714537799,0.427012354,0.193623036,0.019676771,1.48005223 +-1.18363357,3.067132,1.18363357,0.000414819951,0.131161377,0.062631987,0.130964741,-0.118025869,0.0196806528,1.67409849 +1.18461299,3.0671494,-1.18461299,0.000712326495,0.122005656,0.056916777,0.124004997,-0.135045588,0.0197357479,1.67543507 +0.386585474,3.06778622,-0.386585474,0.00710078795,0.172016725,0.0938198864,-1.13296807,0.71192795,0.0196054243,0.549621642 +-0.325395703,3.06858087,0.325395703,0.00209112093,0.174761474,0.0970540345,-1.24560857,0.493653238,0.0195773765,0.460815489 +-0.243179977,3.0685873,0.243179977,0.00273377937,0.175025761,0.0963092819,-1.14160049,0.265606701,0.0195398722,0.346722662 +-0.10058862,3.06864786,0.100588612,0.000148688559,0.178598881,0.106251672,-0.16416128,0.0114793014,0.0195434354,0.142271593 +-0.0712322071,3.06917405,0.0712322071,0.000104622217,0.260434687,0.195239171,0.231836826,0.0806393325,0.0195460971,0.100807048 +-0.571494341,3.06947708,0.571494341,0.000112206304,0.181126058,0.0982985422,-0.458735615,0.786804199,0.0195993502,0.809429407 +0.716288924,3.06965756,-0.716288924,0.00634727068,0.166443348,0.0852215365,0.105011947,0.566710591,0.0196025949,1.01573837 +-0.596730411,3.06983089,0.596730411,0.00504058786,0.179412112,0.0966622084,-0.372896463,0.774092317,0.0196023099,0.844300628 +-0.08312051,3.06991053,0.0831205025,0.000239651767,0.186289832,0.118583344,0.0711343214,0.0327644981,0.0195473507,0.117606774 +-0.0985302031,3.07037544,0.0985302031,0.000176984278,0.178620756,0.106620982,-0.144246891,0.0109525686,0.0195432026,0.139394611 +1.05276918,3.07053709,-1.05276918,0.00201828149,0.140464351,0.0686272457,0.337752044,0.102679029,0.0197269395,1.48897409 +0.109720506,3.07097149,-0.109720506,0.000140148521,0.180370256,0.102703996,-0.35875386,0.0171847865,0.019602526,0.155715957 +-0.0830587819,3.07145452,0.0830587819,3.28047172e-05,0.186318174,0.118616894,0.070104003,0.0331710018,0.019546384,0.117584176 +-0.0984655321,3.07150578,0.0984655321,1.47871087e-05,0.178584635,0.10660699,-0.145209253,0.0113417553,0.0195425041,0.139360666 +-0.0711700991,3.07152271,0.0711701065,1.94983859e-05,0.260898948,0.195624843,0.230571777,0.080574505,0.0195446685,0.100801758 +-1.05766988,3.07156348,1.05766988,0.00135563302,0.140156433,0.0677350312,0.383911222,0.184568018,0.0196745079,1.49580526 +-0.334135026,3.07172346,0.334135026,0.00183287705,0.175358415,0.0975913927,-1.24554026,0.521098137,0.0195774846,0.472963154 +-1.16507208,3.07180548,1.16507208,0.000620804145,0.140689537,0.0664358735,0.100593373,-0.212941051,0.0196773149,1.64786339 +-0.0989789218,3.07190204,0.0989789292,6.30982249e-05,0.178547993,0.106498472,-0.15127115,0.0118612135,0.0195419695,0.140038088 +-1.20619631,3.07238197,1.20619631,0.000532739214,0.0988895297,0.0441102348,-0.0163228922,-0.0581844449,0.019679578,1.70601869 +-1.21843338,3.07262874,1.21843338,0.000523864932,0.0837531388,0.0365060009,-0.131610334,-0.0180092901,0.019679103,1.72332656 +-0.0985411257,3.07281017,0.0985411182,0.000212571409,0.178551674,0.106569134,-0.147242174,0.011781903,0.0195416175,0.139402404 +-1.22862983,3.07283473,1.22862983,0.000237758519,0.0733676329,0.0348857008,-0.208570689,-0.0331829786,0.0196786467,1.73774815 +0.106279075,3.07305098,-0.106279075,0.000202225492,0.182164237,0.104599051,-0.322611094,0.0121647613,0.019600397,0.150643647 +-1.09720945,3.07310295,1.09720945,0.00119658187,0.0962850153,0.0429598987,0.14853777,0.108273134,0.0196707565,1.55184972 +-0.0831378028,3.07324672,0.0831378028,0.000239196888,0.186305404,0.118571036,0.0679783747,0.0335976668,0.0195451863,0.117623493 +1.16262674,3.07333112,-1.16262674,0.000527163153,0.123293608,0.0568723902,0.0715722591,-0.188802063,0.0197318085,1.64433563 +0.221986562,3.07423139,-0.221986562,0.00125779735,0.162876919,0.0876452625,-0.994247258,0.279666066,0.0196151789,0.316933781 +0.27048552,3.07423925,-0.27048552,0.00185522402,0.163546741,0.0884017646,-1.1573869,0.413700789,0.019612778,0.3832708 +-0.0712381899,3.07424259,0.0712381899,0.000104841907,0.261312217,0.195817634,0.228475824,0.0807598531,0.0195428748,0.100805908 +0.14988181,3.07478476,-0.14988181,0.000769319304,0.168365851,0.0920608416,-0.629497111,0.087743625,0.0196025092,0.213160664 +-0.444939405,3.07523751,0.444939405,0.00450983783,0.181851521,0.101162694,-0.955787838,0.740284562,0.0196025055,0.630326629 +0.0967293382,3.07583141,-0.0967293382,0.000378003577,0.187201291,0.110011183,-0.223331273,0.00274848705,0.0195975956,0.138179287 +0.0686689019,3.07584429,-0.0686689094,0.000202701864,0.280750155,0.207142889,0.237033173,0.0348059461,0.019594999,0.0981100127 +0.0808536261,3.07592535,-0.0808536261,0.000467669539,0.206988782,0.13057664,0.0191831272,0.00777052063,0.0195965935,0.115516342 +-0.174545437,3.07706642,0.174545437,0.00078228541,0.177989483,0.0989537463,-0.832824588,0.109524526,0.0195194241,0.246855855 +-0.578719139,3.07814217,0.578719139,0.00133129745,0.18106778,0.0982473716,-0.434528619,0.780872464,0.0195944775,0.819047511 +0.183375388,3.07939386,-0.183375388,0.000750893378,0.164752677,0.0892104134,-0.823570967,0.170621321,0.0196078308,0.260553271 +-0.121336579,3.07948565,0.121336579,0.000681819394,0.177786693,0.101751141,-0.41195485,0.0318477079,0.0195278823,0.172270015 +-0.115400881,3.07966089,0.115400873,0.000279336033,0.177823961,0.102391273,-0.355845928,0.0256599225,0.0195302851,0.163820028 +1.10749006,3.08052897,-1.10749006,0.000666443491,0.0993974358,0.0442283414,0.0551443025,0.0178403463,0.0197216738,1.5663439 +1.11774814,3.08265781,-1.11774814,0.000869327225,0.100314111,0.0443093888,0.0353860892,-0.0266205538,0.0197227485,1.58081794 +-0.478991807,3.08267879,0.478991807,0.00240942556,0.184131846,0.102409907,-0.819874048,0.763137341,0.0195966698,0.678122163 +-1.14046979,3.0827601,1.14046979,0.000616876583,0.109579116,0.048348546,0.0342559516,-0.113654591,0.0196681097,1.6129508 +-0.558966637,3.08372235,0.558966696,0.00313253561,0.182690218,0.100101709,-0.519385636,0.79215759,0.0195891559,0.791032434 +1.14877415,3.08376598,-1.14877415,0.00088295585,0.110950664,0.0491130874,0.0167656932,-0.160691783,0.0197266005,1.62478757 +-1.12325096,3.08402872,1.12325096,0.000742109842,0.0968193859,0.0418470949,0.0410752259,-0.0322941691,0.0196660645,1.58861423 +0.926590323,3.08451009,-0.926590323,0.0020860217,0.15696159,0.0777307153,0.387399673,0.231208175,0.0196672212,1.31046915 +1.03674483,3.08464766,-1.03674483,0.00174530386,0.144762546,0.0709879547,0.366963208,0.110342108,0.0197095331,1.46629 +-0.110243544,3.08500504,0.110243544,0.000269611715,0.177942306,0.103470631,-0.301540226,0.0233395845,0.0195293166,0.15633963 +0.798816502,3.08525324,-0.798816442,0.00529723801,0.161398068,0.0813177899,0.239324987,0.436029404,0.0196084362,1.13108158 +0.110593528,3.08528638,-0.110593542,0.000412033027,0.178801373,0.101591237,-0.375867009,0.0239440724,0.0195895471,0.156576931 +-1.18945265,3.0853467,1.18945265,0.00036490889,0.111707859,0.0504911803,0.0201118067,-0.081313923,0.0196702853,1.68230951 +0.20884344,3.0856185,-0.20884344,0.00140471605,0.162068784,0.0873950422,-0.960509241,0.246388808,0.0196058843,0.29674238 +-1.13162982,3.0866518,1.13162982,0.000351629133,0.0979793146,0.0420264378,0.0118634822,-0.0787118599,0.0196651369,1.60049438 +0.515726984,3.08876944,-0.515726984,0.0043468019,0.178966045,0.0981147662,-0.624851346,0.806541681,0.0195619222,0.730797768 +-0.702295184,3.08942509,0.702295184,0.00831738673,0.173934788,0.0914154127,-0.0160132125,0.703292608,0.0196067449,0.994886398 +0.918249786,3.09065866,-0.918249726,0.00236376445,0.157176509,0.0778603405,0.385676861,0.241988063,0.0196575038,1.29877758 +-0.949881196,3.09155941,0.949881196,0.00344520737,0.156818688,0.0781475082,0.483320355,0.328573644,0.0196513142,1.34410584 +-1.17212462,3.09209776,1.17212462,0.000828268065,0.126706377,0.0582794435,0.0696930811,-0.11542666,0.0196645539,1.65783978 +1.07792866,3.09316754,-1.07792866,0.00137986091,0.132102787,0.0628114119,0.251054049,0.0758677274,0.01971424,1.52445447 +1.16978884,3.09520674,-1.16978884,0.000635206758,0.117214769,0.0532084592,0.0702035949,-0.111405864,0.0197215844,1.65446496 +-0.0982637331,3.09573269,0.0982637256,0.000452071545,0.178187206,0.105706491,-0.184197187,0.0202845465,0.0195269734,0.140204221 +0.338332266,3.09594512,-0.338332295,0.00272789458,0.167399764,0.0919646472,-1.27560389,0.653217971,0.019582171,0.479168832 +0.927138865,3.0961082,-0.927138805,0.000562870817,0.15733555,0.077952452,0.395359725,0.227401868,0.0196556356,1.31140184 +-0.0827765837,3.09626961,0.0827765837,0.000378150609,0.186387748,0.117838591,0.0421690345,0.0375481397,0.0195307862,0.118115738 +1.19233239,3.09635496,-1.19233239,0.000420006225,0.109807819,0.0500143617,0.0644265115,-0.0727787763,0.0197162796,1.686252 +-0.0707027614,3.09640646,0.0707027614,0.000161476943,0.26410529,0.196355984,0.212332964,0.0804053918,0.0195296686,0.100866705 +0.31742996,3.09673309,-0.31742996,0.00214918191,0.165706873,0.0908813179,-1.28954029,0.605811894,0.0195825472,0.450588703 +-0.202535048,3.09733343,0.202535048,0.000909607043,0.177243963,0.0981311202,-1.04550481,0.179346129,0.0195056684,0.286568522 +-0.330712259,3.09800029,0.330712259,0.00164341228,0.174306169,0.0980903134,-1.34877872,0.561868489,0.0195509009,0.467799187 +-0.135197401,3.09832048,0.135197401,0.00094240217,0.175980896,0.0990706757,-0.587349534,0.0581311435,0.0195120033,0.193122953 +0.0691849738,3.09906411,-0.0691849738,0.000111670059,0.283273906,0.207539588,0.231149822,0.0311462134,0.0195722263,0.0979315415 +-0.154924408,3.09935188,0.154924408,0.000510819955,0.176271141,0.0983627141,-0.749914587,0.089723967,0.0195068773,0.220169142 +-1.19765711,3.09976864,1.19765711,0.000602181128,0.107424825,0.0481578782,-0.00476518273,-0.0264577251,0.0196623616,1.69388461 +-1.21459651,3.09993267,1.21459651,0.000617016573,0.0925660431,0.0407518633,-0.12686494,0.0018312037,0.0196625441,1.71784258 +-1.22868907,3.10007119,1.22868907,0.000281805347,0.074684903,0.0342278518,-0.224578053,-0.0302922651,0.0196623765,1.73777413 +0.0816683397,3.10021806,-0.0816683322,0.000257399632,0.207701802,0.130552799,0.0127164396,0.00874061789,0.0195727646,0.115555331 +0.0983664468,3.10028505,-0.0983664468,0.000107654174,0.186229661,0.109232597,-0.242152706,0.00890406314,0.0195741933,0.139114514 +-0.197710589,3.10059667,0.197710574,0.000453197688,0.177344143,0.0982449204,-1.03820062,0.170272231,0.0195021201,0.279879481 +-0.164131165,3.10082579,0.164131165,0.000589419564,0.176561251,0.0981050283,-0.827762723,0.105558857,0.0195042938,0.233563617 +0.923075676,3.10090446,-0.923075736,0.000760975818,0.157538697,0.0780434832,0.39695403,0.230818197,0.0196493715,1.30567014 +-0.466051579,3.10093546,0.466051579,0.00356072118,0.184775889,0.103782877,-0.900422454,0.770917952,0.0195858385,0.65963912 +0.138483971,3.10105109,-0.138483971,0.000751350482,0.167657882,0.0922926739,-0.607803106,0.0820213854,0.0195779521,0.196970522 +0.0979502276,3.10111117,-0.0979502276,0.000169903244,0.186446145,0.109471403,-0.237876564,0.0086220745,0.0195733961,0.138537273 +0.641919494,3.1011405,-0.641919494,0.00254805014,0.171705008,0.0905039236,-0.0997493416,0.675449669,0.0195498765,0.908285081 +0.0691100881,3.10131502,-0.0691100881,1.80329571e-05,0.283683151,0.20768331,0.230268762,0.0309842341,0.0195699092,0.0979215577 +0.45111084,3.10133171,-0.45111084,0.00360203162,0.177213371,0.0987211466,-0.955564857,0.843416214,0.0195553619,0.6404351 +0.0979445875,3.10135484,-0.0979445949,5.72875706e-06,0.186435282,0.109461151,-0.238003209,0.00874355435,0.0195731446,0.13854371 +0.098099798,3.1013639,-0.098099798,5.34016108e-05,0.186353847,0.10938409,-0.239584088,0.0089547364,0.0195731279,0.138749033 +0.240030915,3.10136557,-0.2400309,0.00120154535,0.161643833,0.0879298523,-1.1395148,0.369319022,0.019587487,0.340760052 +0.0816332847,3.10142398,-0.0816332847,2.46805139e-05,0.207751468,0.130549431,0.0123624494,0.00898472592,0.0195715241,0.115565941 +0.0979575068,3.10160923,-0.0979575142,0.000228662597,0.18641369,0.109446876,-0.238211155,0.00882553775,0.0195729006,0.138547093 +-0.192392409,3.10229731,0.192392424,0.000555370993,0.177162245,0.0982193947,-1.00713801,0.161095619,0.0195011068,0.272172868 +0.08168035,3.10268474,-0.08168035,0.000260122353,0.207769871,0.130536154,0.0116734318,0.00917712413,0.0195703208,0.11557056 +0.412189692,3.10317373,-0.412189692,0.00221684622,0.175029129,0.0973436013,-1.09150481,0.795774102,0.0195586178,0.584655643 +0.0691745207,3.10367203,-0.0691745207,0.000113134709,0.283897072,0.207722411,0.229469687,0.0307835415,0.019567674,0.0979144424 +-0.201031208,3.10367537,0.201031208,0.000626126537,0.176991969,0.0981436819,-1.06337416,0.182431817,0.0194999799,0.284417033 +-0.838956475,3.10380602,0.838956416,0.0028477984,0.166901305,0.0852195024,0.334641755,0.509990335,0.0196276233,1.18707883 +0.914015532,3.10441494,-0.914015532,0.0031227821,0.157805592,0.0782525688,0.389987558,0.244515389,0.0196408611,1.29276454 +0.649959564,3.10477853,-0.649959505,0.00318714511,0.171293184,0.0901644602,-0.0751568004,0.670800149,0.0195466951,0.919669271 +0.123676807,3.10525608,-0.123676814,0.000534457387,0.172140568,0.0962005556,-0.49330771,0.055816263,0.0195717197,0.17546609 +-1.08676159,3.10533428,1.08676159,0.00187581661,0.123208344,0.0570226014,0.280346811,0.15775162,0.019654328,1.53707218 +1.19414377,3.1053617,-1.19414377,0.0004720375,0.104080394,0.0467457995,0.0362440161,-0.059182059,0.0197112355,1.68885708 +1.21303415,3.10540462,-1.21303415,0.000673048256,0.0908235162,0.0403844677,-0.0754665062,-0.0113179255,0.0197087564,1.71557355 +1.228742,3.10555744,-1.228742,0.000305743364,0.0726203769,0.0335789174,-0.186908364,-0.028145235,0.0197077803,1.73778939 +-0.826852024,3.10563397,0.826852024,0.00039901142,0.167697728,0.0858160108,0.316928238,0.529974341,0.0196237471,1.17039335 +-0.812037826,3.10573149,0.812037826,0.00626556296,0.168605238,0.0865820497,0.282754034,0.553177238,0.0196196549,1.14898169 +-0.664241731,3.10643387,0.664241731,0.00528219948,0.176766574,0.094006598,-0.12817134,0.733392835,0.0195882544,0.941803694 +0.377339005,3.10663915,-0.377339005,0.00343081029,0.170468837,0.0949969292,-1.25792694,0.769240379,0.0195608903,0.536021352 +-1.02241814,3.10725451,1.02241814,0.00208688248,0.150398761,0.0737095475,0.49774766,0.215794295,0.0196470264,1.44626832 +-1.18252349,3.10729814,1.18252349,0.000554826751,0.12078514,0.0550124869,0.038406942,-0.0526620671,0.0196563713,1.67251277 +0.931122839,3.1081233,-0.931122839,0.00273683015,0.157730848,0.0781078413,0.405720532,0.216417179,0.0196464285,1.31689537 +1.18560803,3.10855532,-1.18560815,0.00073324854,0.107811131,0.0484835245,0.0410741195,-0.0629514754,0.0197101794,1.67674112 +0.114387073,3.10914612,-0.11438708,0.000255778315,0.175063312,0.0987165794,-0.430530608,0.0429706909,0.0195666477,0.162577182 +0.1692601,3.10949516,-0.1692601,0.000505474629,0.162314191,0.0883366391,-0.810018122,0.152537987,0.0195796527,0.239552021 +0.219866171,3.10957527,-0.219866171,0.00112763082,0.159991771,0.0868844688,-1.08434737,0.31624198,0.0195817817,0.313543022 +-0.196706101,3.10960722,0.196706116,0.000708047883,0.176417813,0.0978961661,-1.05957901,0.175995588,0.0194957219,0.27829954 +-0.98334527,3.10961819,0.98334527,0.00227989303,0.154363543,0.076401867,0.512529731,0.266809583,0.019641513,1.39107513 +0.325546175,3.1097281,-0.325546175,0.000968541601,0.165922523,0.0916307569,-1.33172643,0.650096476,0.0195685886,0.461934745 +-1.00701213,3.11002207,1.00701213,0.00113703625,0.152448028,0.0750554055,0.518538594,0.228531823,0.0196434688,1.42482114 +0.584555149,3.11068702,-0.584555149,0.00251863408,0.17681697,0.095510006,-0.321761757,0.754737258,0.0195319243,0.826696634 +-1.14294553,3.11142921,1.14294553,0.000585590955,0.121776499,0.0551423803,0.102621168,-0.0186724216,0.0196523033,1.61645591 +-0.0711363256,3.11167908,0.0711363256,0.000120065451,0.265624493,0.197231859,0.194230258,0.0830519199,0.0195194371,0.101034656 +0.645309031,3.11168599,-0.645309031,0.00029045975,0.171682149,0.0905897096,-0.0869664624,0.678136885,0.019538682,0.91332382 +-0.0996943712,3.11172485,0.0996943712,0.000270177086,0.176958859,0.104662903,-0.220552191,0.0274860933,0.0195162874,0.141611069 +0.174987882,3.11203933,-0.174987897,0.000322911743,0.161576718,0.0878642052,-0.842941284,0.170393407,0.0195782147,0.247658804 +-0.083619304,3.1121068,0.0836192966,0.000276232167,0.186054781,0.117144145,0.0174994059,0.0419560745,0.0195203014,0.118772782 +1.154562,3.11222291,-1.154562,0.00191233493,0.117179707,0.0528315492,0.0600017682,-0.0702117831,0.0197115056,1.63297367 +1.19164431,3.11223125,-1.19164431,0.000603172579,0.106513157,0.0479449779,0.0392866135,-0.0503527783,0.0197060239,1.6853205 +0.745612621,3.11242533,-0.745612621,0.00712684682,0.165351152,0.0843543634,0.177853882,0.527296662,0.0195610002,1.05563533 +1.21158159,3.11245346,-1.21158147,0.000852514117,0.0935374796,0.0417120568,-0.0714715198,-0.00627979264,0.0197031312,1.71351707 +1.22873092,3.11259103,-1.22873092,0.000393488124,0.0734115168,0.0335284136,-0.190858096,-0.0264843628,0.0197021198,1.73777163 +-0.167038411,3.11302137,0.167038396,0.000810765545,0.17521064,0.0973953456,-0.885583282,0.123121113,0.0194966588,0.237906903 +0.164245784,3.11402297,-0.164245784,0.000470884552,0.162565112,0.0886889249,-0.791729689,0.146505848,0.0195741523,0.232466415 +0.66486609,3.11480236,-0.664866209,0.00296515808,0.170526564,0.0894601643,-0.036759194,0.649436951,0.0195388757,0.940468252 +1.10009265,3.11514521,-1.10009265,0.00143731385,0.124324277,0.0574578792,0.178226888,0.0539173819,0.0197013915,1.55588102 +-0.956053734,3.11552215,0.956053734,0.0017625367,0.156354472,0.0778223649,0.508801699,0.303286374,0.0196357109,1.35333025 +0.582051516,3.11559749,-0.582051456,0.00134825113,0.177066997,0.0957934111,-0.330551565,0.759911537,0.0195258223,0.823206902 +-1.12112701,3.11607409,1.12112701,0.000789866608,0.120037451,0.0543743335,0.154619426,0.0544299893,0.0196491871,1.58561373 +0.588108897,3.11612773,-0.588108897,0.00235739886,0.176606834,0.0953552872,-0.307725072,0.75298363,0.0195256844,0.831716061 +0.582582593,3.1161828,-0.582582593,9.00479608e-06,0.177068129,0.0957958102,-0.328607678,0.759945154,0.0195251126,0.823959351 +1.11368704,3.11634016,-1.11368704,0.000887901697,0.12186648,0.0558690093,0.141325414,0.0256307796,0.0197033994,1.57507443 +0.304750443,3.11642456,-0.304750472,0.00190823385,0.163510144,0.0900311619,-1.33294511,0.592332602,0.0195651744,0.431633949 +0.168873325,3.1165328,-0.16887331,2.73348542e-05,0.16154021,0.0879754424,-0.826768994,0.159273088,0.0195733644,0.239368439 +-0.225740924,3.11653566,0.225740924,0.00164756086,0.17372337,0.0967092365,-1.24493289,0.270951331,0.019495355,0.321413398 +0.582158685,3.11669159,-0.582158685,9.42572399e-07,0.177126616,0.0958563238,-0.330310285,0.760703862,0.0195244588,0.823370159 +0.582490981,3.11675382,-0.582490921,2.01264652e-06,0.177106932,0.0958341286,-0.328813255,0.760219991,0.0195243601,0.823840082 +0.581094801,3.11705732,-0.581094801,0.00330566941,0.177203014,0.0959512517,-0.335782826,0.76237762,0.0195240136,0.821819723 +0.10824278,3.11731052,-0.108242787,0.000248482829,0.177948296,0.101669185,-0.368951887,0.0360873081,0.0195589885,0.153808296 +-0.38265276,3.11744404,0.38265276,0.0043405965,0.178735718,0.101339646,-1.28120375,0.725768924,0.0195546634,0.546292186 +0.582682252,3.11760879,-0.582682312,0.000225372103,0.177150369,0.0958707333,-0.327639073,0.759482861,0.0195232388,0.824078977 +0.170548737,3.1177187,-0.170548737,1.20282948e-05,0.161296934,0.0878479108,-0.839264452,0.165044203,0.0195725337,0.241817057 +0.582047701,3.11779332,-0.58204776,6.05546047e-05,0.17723906,0.0959703699,-0.330394655,0.760628879,0.0195230115,0.823184073 +-1.13242233,3.11823726,1.13242233,0.0006428294,0.119717553,0.0538920313,0.115816295,0.0185210779,0.0196481869,1.6016202 +0.113732912,3.11853981,-0.113732904,0.000406953302,0.174045622,0.0981541723,-0.43746388,0.0481305011,0.0195576809,0.162031919 +-0.826270938,3.11863375,0.826270938,0.000696402392,0.168103859,0.0860774443,0.323835701,0.518796623,0.0196152348,1.16949201 +0.120567426,3.11937261,-0.120567426,0.000323039276,0.171530485,0.0961284712,-0.494607598,0.0597193986,0.0195582602,0.171197563 +-1.15071678,3.11967802,1.15071678,0.00102204818,0.118432701,0.053335987,0.0819935948,0.0145382648,0.0196479559,1.62743211 +0.649339437,3.11970353,-0.649339437,0.00431817863,0.171621352,0.0905410722,-0.0724152625,0.670047581,0.0195293706,0.918698788 +-0.116499133,3.11985183,0.116499141,4.192899e-05,0.17559807,0.10071177,-0.428935826,0.045567438,0.0195043813,0.164762065 +-0.116401665,3.1198554,0.116401665,0.00021208504,0.175605506,0.100735798,-0.427764505,0.0454778485,0.019504426,0.164622217 +-0.116590187,3.1198864,0.11659018,0.000241972943,0.175595447,0.100700624,-0.429854631,0.045679763,0.0195043236,0.164891109 +-0.116463467,3.12002277,0.116463467,3.87368782e-05,0.175593644,0.100713305,-0.428805888,0.0455950499,0.0195042957,0.164716214 +-0.116522633,3.12005687,0.11652264,4.68040162e-05,0.175584659,0.100698344,-0.429562479,0.0456779785,0.0195042472,0.164798737 +-0.116715565,3.12016797,0.116715558,0.000233454732,0.175570413,0.100676894,-0.431690753,0.0460448042,0.0195041131,0.165064335 +-0.116388701,3.12026119,0.116388701,0.000145702827,0.175587714,0.100723892,-0.428255945,0.0456006713,0.019504182,0.164602771 +0.168855086,3.12070417,-0.168855086,9.30033202e-05,0.161272407,0.0879019871,-0.835980177,0.162183776,0.0195696689,0.239231795 +0.164020374,3.1208539,-0.164020374,0.000368674577,0.161993086,0.0884381458,-0.801316679,0.151051328,0.0195679646,0.232196331 +0.171589643,3.12101603,-0.171589643,0.000690366316,0.161008164,0.0877869353,-0.855811715,0.170936272,0.0195695218,0.243097559 +0.135101944,3.12281561,-0.135101944,0.000719634292,0.166242838,0.0918002501,-0.621492326,0.0908227265,0.0195574313,0.192447484 +0.204500318,3.12302423,-0.204500318,0.00101315696,0.159213409,0.0868101195,-1.07811713,0.280585438,0.019570509,0.292411625 +-0.0997668207,3.12357807,0.0997668207,0.000256686093,0.176363245,0.104012273,-0.245110482,0.0319240838,0.0195088442,0.142473102 +-0.0833631083,3.12366486,0.0833631009,0.000258304208,0.186087146,0.11685285,0.00226840377,0.0437641554,0.0195128378,0.119049422 +-0.0708109885,3.12370014,0.0708109885,0.000115290852,0.266631365,0.197299048,0.182399362,0.0834971219,0.0195117909,0.101127714 +-0.154402494,3.12538648,0.15440248,0.000656266988,0.174249202,0.097208336,-0.803851485,0.105446175,0.019490866,0.21885711 +0.0971885249,3.12695742,-0.0971885249,0.000420806085,0.183458865,0.107158102,-0.261307508,0.0227486324,0.0195494127,0.13896209 +0.068430692,3.12696695,-0.068430692,0.000208024081,0.287102908,0.208731636,0.215995997,0.0294774249,0.0195475481,0.0978433862 +0.0809118301,3.12702274,-0.0809118301,0.000495203771,0.2079954,0.130089089,-0.00533847511,0.0153713925,0.0195487477,0.115692645 +-1.18688869,3.12796926,1.18688869,0.00186132046,0.116892785,0.052730035,0.022166118,0.0180736668,0.019644618,1.67873299 +0.169309676,3.12806034,-0.169309676,0.00108323037,0.160759568,0.0877842605,-0.858191252,0.167500034,0.0195636228,0.239657566 +-1.20876765,3.1282196,1.20876753,0.00107568805,0.103239074,0.0460307039,-0.0995592549,0.0284894072,0.0196452178,1.70967841 +-1.2286694,3.1283145,1.22866952,0.000508585654,0.0772016197,0.0338174812,-0.229987681,-0.0241210442,0.0196452104,1.73782814 +1.007707,3.12926483,-1.007707,0.00188514288,0.153043151,0.0751214996,0.431738049,0.118384853,0.0196615439,1.42569685 +0.839175701,3.13066626,-0.839175701,0.00479073683,0.160955787,0.0803846121,0.337512821,0.351326048,0.0195760503,1.18909562 +-0.276042998,3.13086295,0.276042968,0.00181473466,0.170056835,0.0958491489,-1.47775054,0.465190679,0.0194953028,0.390932709 +-0.269245923,3.13116336,0.269245923,0.00117903017,0.170317024,0.0959136263,-1.45631588,0.444377512,0.0194923524,0.381272733 +-0.140844434,3.13123345,0.140844434,0.000656002085,0.173543066,0.0973939598,-0.706772268,0.087897934,0.0194903277,0.200118691 +0.26387769,3.13278341,-0.26387769,0.00310375448,0.159288764,0.0875518396,-1.34020746,0.491136432,0.0195548721,0.375727087 +-1.10023689,3.13405514,1.10023689,0.000920055783,0.128337473,0.0592057444,0.269018948,0.146816328,0.0196384378,1.55601931 +1.13610721,3.13537359,-1.13610721,0.000788044534,0.122959569,0.0562707782,0.121735439,0.0045290608,0.0196921676,1.60681033 +1.12087286,3.13550997,-1.12087274,0.000671260059,0.126159072,0.0583195277,0.166658357,0.0384380482,0.0196886603,1.58530855 +-1.11956954,3.13604736,1.11956954,0.000607662543,0.125500783,0.057157211,0.192016006,0.0838046819,0.0196378399,1.58334112 +0.483856261,3.1362381,-0.483856261,0.00257468503,0.180227742,0.101308718,-0.822146535,0.874471426,0.0195078328,0.685834408 +-0.100492686,3.1366992,0.100492686,0.000368603971,0.17577067,0.10358046,-0.269365996,0.0365060642,0.0195006505,0.142615378 +0.33517015,3.13682079,-0.33517015,0.00144111132,0.166053161,0.0935456529,-1.40380883,0.718890309,0.0195304602,0.474614084 +-0.273438156,3.13687301,0.273438185,9.40219761e-05,0.169629887,0.0957914442,-1.49888504,0.468333066,0.0194896888,0.387614846 +-0.0839560032,3.13724136,0.0839560032,0.000287212722,0.186200485,0.116753325,-0.0204708241,0.0467509627,0.019504521,0.119133152 +-0.27731365,3.13738275,0.27731365,8.86314665e-05,0.16994065,0.0960903987,-1.50433731,0.480477273,0.0194900576,0.392807335 +-0.0712330341,3.13788605,0.0712330341,0.000124605926,0.268359125,0.197160602,0.160827518,0.084806025,0.0195033476,0.10106878 +-0.850691319,3.13855696,0.850691319,0.00366208167,0.166539282,0.0848701224,0.379622638,0.461060941,0.0196068566,1.20329881 +1.07787561,3.13924694,-1.07787561,0.00129770872,0.135459915,0.0638777763,0.275875092,0.0598152243,0.0196763761,1.52437901 +-0.293361396,3.14140248,0.293361396,0.0017134815,0.170845047,0.097033821,-1.51122081,0.533594847,0.0194924381,0.414967149 +-0.804175377,3.14224625,0.804175377,0.00332272006,0.170945689,0.0882033184,0.2865991,0.523235977,0.0195947345,1.1375103 +-0.908091903,3.14372325,0.908091903,0.00320747518,0.161853731,0.0814509988,0.473233104,0.353020996,0.0196128432,1.28502226 +-0.261353195,3.14468122,0.261353195,0.00117140438,0.168980241,0.0953803957,-1.4800359,0.432859451,0.0194809753,0.36977753 +-1.06070209,3.14552164,1.06070209,0.00109885377,0.142089799,0.0676942393,0.43194139,0.171972573,0.0196278337,1.50006878 +1.05296636,3.14615393,-1.05296636,0.00120354665,0.145860508,0.0703698397,0.377367944,0.0761230737,0.0196648706,1.4892509 +0.145163655,3.14638352,-0.145163655,0.000473104155,0.162922591,0.0898494646,-0.71516943,0.120785311,0.019541407,0.20531559 +-1.11179161,3.14666319,1.11179161,0.00016615566,0.128576964,0.0589179248,0.238830313,0.124390811,0.0196316857,1.57248282 +-1.05731881,3.14733696,1.05731881,0.000954616582,0.14402844,0.0688607693,0.447641402,0.174270689,0.0196264889,1.49529254 +0.788971186,3.14753199,-0.788971186,0.00492776046,0.163902104,0.0828231424,0.269980013,0.432453394,0.0195373632,1.11695313 +-0.823463917,3.14830351,0.823463917,0.0022301022,0.169727162,0.0869417563,0.336169481,0.47804004,0.0195951983,1.16496956 +-1.05891025,3.14855075,1.05891025,6.16892294e-06,0.143364802,0.0684234053,0.442383349,0.172651932,0.0196258705,1.49756086 +0.986364722,3.14926672,-0.986364722,0.00472881924,0.156923831,0.0773122162,0.456180751,0.126731277,0.019634977,1.3953464 +-0.525039136,3.14928102,0.525039136,0.00479874574,0.188588887,0.106532879,-0.68519032,0.807549715,0.0195491072,0.744414449 +-0.276789874,3.1499064,0.276789874,0.00171910913,0.169223741,0.0963558033,-1.55915666,0.495266438,0.0194802582,0.391655505 +-1.05824447,3.15002227,1.05824447,1.14771483e-05,0.143803656,0.0686711147,0.446120501,0.172676355,0.0196249261,1.49663472 +0.0690866783,3.15022063,-0.0690866858,0.000115744457,0.287874043,0.208137557,0.19965452,0.0311567709,0.0195281971,0.0978018269 +-0.128254265,3.15024424,0.128254265,0.000599558465,0.172412097,0.0978677422,-0.612913966,0.0801418275,0.0194828082,0.181667522 +-0.11916735,3.15093374,0.119167358,0.000169991414,0.172500387,0.0984917954,-0.526307106,0.0659375414,0.0194857363,0.169340342 +0.0817980468,3.15124297,-0.0817980394,0.000266502728,0.206011191,0.128365979,-0.0270565078,0.0191094447,0.0195280984,0.115755469 +-0.0999669954,3.1513133,0.0999670029,0.000261294423,0.174728155,0.102911554,-0.293298811,0.0424726978,0.0194923803,0.14265655 +-0.0707354397,3.1514287,0.0707354397,0.000125265942,0.27065599,0.197169527,0.142700315,0.0837634057,0.0194961205,0.100877456 +-0.0834450722,3.15148759,0.0834450722,0.000299907348,0.186685473,0.116942383,-0.0408091247,0.0489825085,0.0194964651,0.119048238 +-1.05577958,3.15196514,1.05577958,0.00114104291,0.144268885,0.0689890906,0.4524858,0.172509849,0.0196231939,1.49311459 +-1.06058264,3.15200925,1.06058264,0.000719485921,0.143761694,0.0685162768,0.436594367,0.170675993,0.0196239986,1.49990487 +-0.340853512,3.1520381,0.340853512,0.00183759909,0.173784867,0.0998912826,-1.51567829,0.687887609,0.0195036251,0.483140349 +-0.144175887,3.15204906,0.144175887,0.000546379131,0.171790332,0.0963874459,-0.784301639,0.106892571,0.0194773711,0.205027282 +0.0983899087,3.15209198,-0.0983899087,0.000241016445,0.180798784,0.104958497,-0.291481525,0.0313373953,0.0195278022,0.139186129 +-1.00973594,3.15234542,1.00973594,0.00207778718,0.152335703,0.0746929646,0.540529013,0.197378665,0.0196153056,1.42830586 +0.0986451283,3.15262222,-0.0986451283,0.000158554452,0.18056421,0.104756534,-0.295248419,0.0321130268,0.0195273105,0.139570162 +-0.112245135,3.15262794,0.112245135,0.000337694422,0.173426658,0.100221634,-0.440761149,0.0571836829,0.0194873866,0.159041137 +0.0983642936,3.15282845,-0.0983642861,1.12746256e-05,0.180696875,0.104883023,-0.292336792,0.0317592174,0.0195271391,0.13919431 +0.069005698,3.15287471,-0.0690057054,2.13566782e-05,0.288159907,0.208212301,0.197215766,0.0315350667,0.0195258372,0.0978007913 +0.0817442983,3.15289474,-0.0817442909,3.33879871e-05,0.205871999,0.128243342,-0.0284985639,0.0196193736,0.0195266232,0.115762807 +1.13320017,3.1531198,-1.13320005,0.000805320975,0.128101543,0.0590322837,0.145230308,0.0409891643,0.0196770616,1.60272956 +0.0983975902,3.15354252,-0.0983975902,0.000176579284,0.180673838,0.104873419,-0.293123603,0.0317646563,0.0195265356,0.139198542 +-0.223801926,3.15406084,0.223801911,0.00159481401,0.169260517,0.0951775014,-1.38204026,0.310306728,0.0194673408,0.317245364 +0.127213374,3.1540637,-0.127213374,0.000423199352,0.165845633,0.0923998803,-0.6033445,0.0860244855,0.0195303187,0.179987296 +0.0989484638,3.15410423,-0.0989484638,0.00012563121,0.180270568,0.104544647,-0.300590694,0.0329352319,0.0195260886,0.139963314 +0.0818038881,3.15450048,-0.0818038881,0.000268822769,0.205784917,0.128161892,-0.0301093683,0.0197817553,0.0195253026,0.115766667 +-0.971328914,3.15482664,0.971328855,0.0020924157,0.15555945,0.0771706998,0.544913888,0.248480484,0.0196098331,1.37414217 +-0.162354901,3.1548667,0.162354887,0.000954084098,0.171144128,0.0958743244,-0.947837472,0.146742895,0.0194703862,0.230269074 +0.104445636,3.1549089,-0.104445644,0.000249996956,0.177503929,0.102232873,-0.358977556,0.0437719785,0.0195262749,0.147712618 +1.18135631,3.15501022,-1.18135631,0.000879548606,0.120221063,0.0550963655,0.057151258,0.0117042754,0.019670954,1.67074895 +0.069082953,3.1554563,-0.069082953,0.000116755597,0.288247764,0.208181769,0.194489554,0.0318283662,0.0195237342,0.0978006348 +1.03710318,3.15616655,-1.03710318,0.00265231333,0.149831057,0.0726104677,0.404198825,0.0850903988,0.0196508896,1.46679497 +-1.11686015,3.15621877,1.11686015,0.000333174685,0.130705059,0.059925925,0.232592717,0.142919257,0.0196262859,1.57959449 +-0.727992654,3.15659618,0.727992654,0.00441969931,0.175979674,0.0924406722,0.0963971317,0.599722505,0.0195694268,1.03024435 +-1.05760229,3.15675449,1.05760229,0.0006892737,0.144518897,0.0690849423,0.449373901,0.164397404,0.0196202137,1.49568689 +-0.332314193,3.15695262,0.332314163,0.000808350334,0.172824055,0.0994984657,-1.5595355,0.678140283,0.0194953196,0.471636713 +0.213040307,3.15754557,-0.213040307,0.00129104685,0.156713516,0.0862056389,-1.20096934,0.331566542,0.0195417758,0.302537173 +0.130786359,3.15860176,-0.130786359,0.000290308904,0.16418162,0.0911497995,-0.640189886,0.0950174332,0.0195270423,0.185107827 +-1.10533047,3.15946889,1.10533059,0.0010853475,0.133359462,0.0613337941,0.265366077,0.1378555,0.019623952,1.56324911 +-1.13760352,3.15974808,1.13760352,0.000764357625,0.131051287,0.0593758598,0.14028962,0.113979608,0.0196245704,1.60883033 +1.05677557,3.1602385,-1.05677557,0.000406482606,0.146229163,0.0702617243,0.373196304,0.0704552382,0.0196541324,1.49467039 +-0.947671592,3.16050863,0.947671592,0.00176976901,0.157771677,0.0787180886,0.532615066,0.276457012,0.019604871,1.34075809 +-0.119058125,3.16063261,0.119058132,0.000465823541,0.171792775,0.0981259793,-0.544156969,0.0689982995,0.0194805916,0.168856323 +-0.18541342,3.16174483,0.185413405,0.00125562074,0.169967026,0.0950838774,-1.17011118,0.20283781,0.0194618963,0.264575899 +-0.604507685,3.16281891,0.604507685,0.0033782071,0.184073359,0.101089135,-0.347765625,0.731535375,0.0195447877,0.85508275 +0.130957335,3.16320872,-0.130957335,3.2737782e-05,0.1637398,0.0909267664,-0.650939763,0.0983626619,0.0195232797,0.185495406 +0.506003559,3.16321135,-0.506003559,0.00489513902,0.18366605,0.104299188,-0.70680213,0.884017944,0.019470837,0.716608047 +0.129121825,3.1637466,-0.129121825,8.13729421e-05,0.164144367,0.0912637934,-0.635553062,0.0943419859,0.0195225198,0.182860389 +0.296609342,3.16430044,-0.296609342,0.00192111963,0.159839749,0.0901656896,-1.50546515,0.651135981,0.0195056573,0.42043525 +0.441572607,3.16506362,-0.441572607,0.00278420863,0.178928405,0.103109986,-1.09823251,0.927771628,0.0194748528,0.625342965 +1.04972923,3.16530776,-1.04972935,0.00129433325,0.148482442,0.071618326,0.395016789,0.0710441917,0.0196481701,1.48479092 +-0.0712435097,3.16534901,0.0712435022,0.000120460973,0.271130502,0.196445867,0.114046022,0.0847763047,0.0194883216,0.101021126 +0.126760438,3.16541266,-0.126760438,0.000255735969,0.165350109,0.0923074558,-0.61071384,0.0898038968,0.0195209365,0.179448754 +-0.0841123015,3.16623306,0.0841123015,0.000277725863,0.186268896,0.116525777,-0.070553869,0.0516107008,0.0194881652,0.119268343 +0.131672099,3.16630149,-0.131672114,0.000730961678,0.16344142,0.0907902867,-0.663258851,0.100823686,0.0195210557,0.186380163 +0.203842282,3.16630673,-0.203842282,0.000943726045,0.156197965,0.0861339644,-1.19926059,0.310749948,0.0195344388,0.289860487 +0.750488043,3.16638589,-0.750488043,0.00330971251,0.167001545,0.0853204206,0.219472021,0.480011016,0.0195001159,1.06302905 +-0.100867815,3.16677332,0.100867823,0.000292590848,0.173846647,0.102372594,-0.326667875,0.0473483652,0.0194837246,0.143021166 +0.128695905,3.167871,-0.128695905,0.000242558875,0.164058596,0.0913057253,-0.637567103,0.0941838995,0.0195192769,0.182160437 +1.15704048,3.16804624,-1.1570406,0.000868273666,0.129247785,0.0593445487,0.0952170268,0.061377041,0.0196629558,1.63639736 +1.10066223,3.16829419,-1.10066223,0.000925175613,0.140727252,0.0654865056,0.215869963,0.0594526343,0.0196612645,1.55666637 +-0.494587392,3.16868544,0.494587362,0.00252607069,0.18889606,0.108108342,-0.847534955,0.812949657,0.0195390359,0.700825691 +1.22868216,3.16954803,-1.22868216,0.000427469786,0.0783359855,0.0357338339,-0.19174394,-0.0200658422,0.0196544975,1.7377497 +1.2103411,3.1696322,-1.2103411,0.000923091487,0.107453145,0.0490330644,-0.0538937449,0.0350892656,0.0196545366,1.71180868 +1.18927121,3.169734,-1.18927133,0.000754241133,0.120840654,0.0556510352,0.0577999204,0.0450927876,0.019656999,1.68200874 +-0.33143568,3.17037511,0.33143568,0.00244386471,0.172639832,0.100298114,-1.61233044,0.691277444,0.0194808319,0.469420969 +-0.595529199,3.1712482,0.595529199,0.00144022249,0.185137317,0.102101684,-0.378554553,0.733156323,0.019538179,0.842488885 +-0.58453083,3.17148185,0.58453083,0.00252251211,0.185880661,0.102968648,-0.425326794,0.740559101,0.0195370037,0.826901555 +0.420388252,3.17198467,-0.420388252,0.00219573709,0.17616041,0.101879112,-1.21031749,0.91978699,0.0194701515,0.595756531 +-1.14548576,3.172791,1.14548576,0.000994866597,0.133861646,0.0607736111,0.136801451,0.141023621,0.0196174253,1.62000835 +-0.221884668,3.17299032,0.221884653,0.000257548149,0.166390628,0.0939973444,-1.46572983,0.335291147,0.0194540266,0.316121191 +-0.205106676,3.17334032,0.205106676,0.00140041264,0.167616904,0.0944038928,-1.34235573,0.275160491,0.0194532275,0.290754199 +1.08050144,3.17340016,-1.08050156,0.00111941481,0.145628661,0.0688398108,0.291962385,0.0630315244,0.0196512751,1.5280869 +0.26859796,3.17340946,-0.26859796,0.00199078955,0.156731874,0.0882785097,-1.53023696,0.559857011,0.0195060242,0.381250501 +-0.376052707,3.17353392,0.376052678,0.00114650931,0.178659901,0.104150951,-1.43420076,0.769353747,0.0194944423,0.531922936 +0.322388381,3.17357612,-0.322388381,0.00102701108,0.161771476,0.0923896432,-1.57077348,0.754362941,0.0194872897,0.458254725 +1.05629325,3.17483592,-1.05629325,0.000604358676,0.149814859,0.0720951185,0.374011725,0.0580083281,0.0196439642,1.49394667 +-1.22872579,3.17505932,1.22872579,0.000409929809,0.0802743435,0.0359422155,-0.184238747,-0.017128434,0.0196169913,1.73780751 +-1.20999956,3.17507076,1.20999956,0.000874052523,0.111128405,0.0505886897,-0.0446376279,0.068859227,0.0196173564,1.71132278 +-1.18888962,3.17507553,1.18888962,0.0011500885,0.126224011,0.0580795854,0.0715498254,0.116331488,0.0196175966,1.68146658 +-0.398299396,3.17580533,0.398299366,0.0023642024,0.18158327,0.10619697,-1.35678613,0.809764624,0.0195002966,0.563737452 +0.190801039,3.17582512,-0.190801054,0.00133452564,0.156544,0.08646065,-1.13280177,0.271730006,0.0195258576,0.270587265 +-0.590580583,3.17645311,0.590580583,0.000466008059,0.185899287,0.102800652,-0.396256685,0.728509903,0.0195340309,0.835598767 +-0.907112062,3.1764555,0.907112002,0.00208331575,0.162249863,0.0816889554,0.496867716,0.33202669,0.0195907634,1.28413165 +-0.0709173977,3.17797041,0.0709173977,0.000110152978,0.271514535,0.19627364,0.0918351933,0.0837742239,0.0194807407,0.101085059 +-0.10036476,3.17804241,0.10036476,0.000160371128,0.173043132,0.101894259,-0.347324401,0.0499336794,0.019477725,0.142983228 +-0.0837067366,3.17806005,0.0837067366,0.000241572532,0.186163425,0.116429687,-0.0911090821,0.0521378368,0.0194812417,0.119281799 +-1.14136517,3.17828751,1.14136529,0.000766804849,0.135668188,0.0616152436,0.148293689,0.156736359,0.0196140371,1.61419439 +-0.105937093,3.17881632,0.105937093,0.00024282196,0.172120214,0.100559056,-0.416559547,0.0583282635,0.0194753539,0.150406331 +0.0974766761,3.17883396,-0.0974766761,0.000408630352,0.179017633,0.103980646,-0.324006349,0.038012825,0.0195061285,0.139409155 +0.0810072869,3.17891455,-0.0810072944,0.000524055155,0.204440773,0.126841843,-0.0583598129,0.0264021792,0.0195062794,0.115858257 +0.068392396,3.17892885,-0.068392396,0.000237654196,0.291058362,0.209269539,0.166635394,0.0357235745,0.0195056424,0.0978148282 +-1.13305271,3.17894959,1.13305271,0.000901331427,0.136966661,0.0623602457,0.172771752,0.152908325,0.0196133535,1.60241807 +0.222787648,3.17963791,-0.222787634,0.00108688988,0.155459017,0.0868444815,-1.33840322,0.395866871,0.0195129812,0.315774739 +1.22869146,3.17964268,-1.22869158,0.000243291783,0.078835994,0.0365576148,-0.186686009,-0.0206875689,0.01964592,1.73777556 +1.21225572,3.17972708,-1.21225572,0.000534905994,0.108189464,0.0495635867,-0.0557207912,0.0393058434,0.0196456481,1.71452928 +1.19251561,3.17982769,-1.19251561,0.000477227179,0.122718677,0.0568317622,0.0579077974,0.0611552186,0.0196475759,1.68660927 +1.10921717,3.17994785,-1.10921717,0.00119250163,0.141911983,0.0658974573,0.20086959,0.0609912686,0.0196536444,1.56875694 +0.463062942,3.18065739,-0.463062942,0.00137508102,0.181571245,0.105009049,-0.978951216,0.927614331,0.0194525998,0.655432642 +0.847342849,3.1813345,-0.847342849,0.00606108364,0.162615001,0.081221953,0.37886104,0.312469482,0.0195309818,1.20042765 +-0.412369668,3.18164992,0.412369668,0.00201586192,0.183088213,0.107162438,-1.29990447,0.820345759,0.0194991566,0.583404303 +1.17724895,3.18178463,-1.17724895,0.00084265077,0.12733005,0.0588148423,0.0803901479,0.0788478404,0.0196483806,1.66491282 +-0.762543201,3.18193722,0.762543201,0.00135589531,0.17581737,0.0918262154,0.220275313,0.531793475,0.0195607245,1.08031201 +0.20780769,3.18237019,-0.20780769,0.000876640901,0.155204147,0.0864027515,-1.29029465,0.337691635,0.0195166208,0.294846982 +0.899970353,3.18266964,-0.899970412,0.00255838037,0.16177839,0.0803314969,0.430007517,0.226704031,0.0195584502,1.27326846 +0.925572276,3.18285561,-0.925572217,0.00151190232,0.161518112,0.0799801126,0.456745774,0.182580397,0.0195728987,1.30980754 +0.945786178,3.18305492,-0.945786119,0.00257467618,0.161118895,0.0797090605,0.465926588,0.156253338,0.0195825081,1.33785725 +1.09865868,3.18359375,-1.09865868,0.000802824798,0.145108268,0.0677308515,0.22977984,0.0545590743,0.0196497999,1.55382562 +-0.118921079,3.18389463,0.118921079,0.000486200006,0.169610649,0.096964851,-0.599035144,0.0772064179,0.0194692779,0.169646636 +-0.1786578,3.18426299,0.178657785,0.00162443577,0.167155921,0.0939820483,-1.18288231,0.199758798,0.0194507297,0.253662616 +0.106486656,3.18464446,-0.106486656,0.000484979944,0.172721744,0.0988247916,-0.440552473,0.0561020672,0.019501498,0.15172556 +-0.59586066,3.18495035,0.59586072,0.00224386575,0.186139435,0.102808781,-0.373319775,0.710494578,0.0195295364,0.842783928 +-0.220044076,3.1857729,0.220044076,0.000332232681,0.165388122,0.0940011591,-1.51073933,0.336491108,0.0194456242,0.312822104 +1.15579247,3.18590188,-1.15579247,0.00125069683,0.134218648,0.0620155632,0.114405334,0.0974058807,0.0196476672,1.63465834 +-0.398200959,3.18603802,0.398200929,0.000125703766,0.181803212,0.106902845,-1.38104963,0.820220828,0.0194909442,0.56376642 +-0.462907374,3.18638659,0.462907344,0.0028862874,0.188965768,0.109886348,-1.01740265,0.820069373,0.0195140298,0.656004906 +-0.143896148,3.18654037,0.143896148,0.000575785874,0.168147102,0.0950249881,-0.867379248,0.121672153,0.0194599871,0.20361641 +-1.02041364,3.18689871,1.02041364,0.00111309055,0.151362687,0.0737270564,0.546352923,0.161438003,0.0195934754,1.44368565 +0.367451489,3.18718433,-0.367451489,0.00332163973,0.167501271,0.0975474417,-1.51525593,0.889574289,0.0194597021,0.521718085 +-1.18221545,3.18761969,1.18221545,0.000506738259,0.12983951,0.0598342866,0.0935410559,0.150303915,0.0196099617,1.67206287 +-1.08964419,3.18796134,1.08964419,0.00191733066,0.14458859,0.0668277889,0.311482847,0.134354129,0.0196054243,1.54119825 +-0.677399755,3.18799877,0.677399755,0.00356153608,0.180879131,0.0968830958,-0.0549071915,0.629658997,0.0195397474,0.958030343 +-0.100667223,3.18876576,0.100667238,0.000248685974,0.172646135,0.101666518,-0.370117784,0.0509018116,0.0194722991,0.142758295 +-0.0839437842,3.18939781,0.0839437842,0.000274719612,0.186411887,0.116581716,-0.111581281,0.0512701645,0.0194752123,0.11904493 +-1.22866356,3.18984413,1.22866356,0.000189779166,0.0810388774,0.036795482,-0.170208544,-0.0166591499,0.0196078811,1.73778701 +-1.21197593,3.18996978,1.21197593,0.000416559516,0.112328842,0.0513970368,-0.0358352736,0.0787205249,0.0196082704,1.71418464 +-0.0711031556,3.19005442,0.0711031556,0.000119101955,0.27211985,0.196256578,0.0721748173,0.0821169019,0.0194742437,0.100836277 +-1.19195032,3.19012022,1.19195032,0.000361717597,0.128887638,0.0596545041,0.0800951049,0.146772116,0.0196087528,1.68586099 +-0.391291499,3.19043136,0.391291529,0.00206112489,0.18077679,0.106584929,-1.42809558,0.815005898,0.0194838978,0.55372721 +-0.675908089,3.19047809,0.675908148,0.00031468505,0.181118637,0.0971002132,-0.059527792,0.628905654,0.0195379723,0.955946207 +0.314404517,3.19053507,-0.314404517,0.000463661301,0.159723699,0.0918636099,-1.64097595,0.756325126,0.0194686297,0.44683975 +-0.404268414,3.19074774,0.404268414,0.00212072814,0.182760537,0.107689194,-1.35188985,0.820209086,0.0194885358,0.571969211 +-0.677910864,3.19184065,0.677910864,0.000707749336,0.18111667,0.0970387533,-0.0509900935,0.624693871,0.0195374452,0.958821595 +-0.676888049,3.1921277,0.676888049,1.65902566e-05,0.181202993,0.0971269011,-0.0549899712,0.625161052,0.0195370801,0.957332432 +-1.15246892,3.1927135,1.15246892,0.000655835145,0.139323771,0.0647207722,0.157998681,0.194630861,0.0196060687,1.62985253 +0.15955919,3.19286203,-0.15955919,0.00215905835,0.15754275,0.0873776674,-0.966495097,0.185047671,0.0195075739,0.22729075 +0.335637122,3.19366288,-0.335637093,0.00155001646,0.162923306,0.0944938883,-1.60785031,0.819056988,0.0194569938,0.475595981 +-0.672831357,3.19367838,0.672831357,0.00125394668,0.18156679,0.0975030884,-0.0706071183,0.626472592,0.0195354857,0.951553345 +-0.140186831,3.19402075,0.140186831,0.000332595548,0.167573035,0.0949816182,-0.848029375,0.118553698,0.0194574725,0.198458567 +0.426203489,3.19410515,-0.426203489,0.00164195942,0.177878782,0.104707837,-1.23191905,0.959917903,0.0194386821,0.603519678 +-0.888265729,3.19447136,0.888265729,0.00174451643,0.164591998,0.0832425356,0.487106919,0.343262494,0.0195772052,1.25796449 +0.114338934,3.1946826,-0.114338942,0.000360365317,0.167473197,0.0947281942,-0.54965657,0.0738893673,0.0194947179,0.162727982 +-1.00061107,3.19484353,1.00061107,0.00170949346,0.153278276,0.0752739757,0.570821762,0.177151531,0.019585738,1.41544974 +-0.143769145,3.1949265,0.14376913,1.65017918e-05,0.167152882,0.0945985764,-0.890198231,0.126185983,0.0194558799,0.203727677 +-0.23698464,3.19509745,0.23698464,0.00168923358,0.165092468,0.0949322954,-1.62964249,0.411919713,0.0194380004,0.335699856 +-0.677898228,3.19621587,0.677898228,0.00178172742,0.181471616,0.0972134769,-0.0491814502,0.614420414,0.0195344388,0.958726168 +0.593335986,3.19628215,-0.593335927,0.00238898164,0.181626856,0.100677438,-0.255592972,0.736485362,0.0194250476,0.839111328 +-0.146709785,3.19634223,0.146709785,0.000747360755,0.166911945,0.0944707319,-0.921459556,0.133366376,0.0194542166,0.207641751 +0.498853624,3.19650936,-0.498853594,0.00307731121,0.186442137,0.108111501,-0.744219065,0.899587572,0.0194270238,0.706805825 +-0.14278768,3.19687891,0.14278768,3.2813281e-05,0.16701591,0.0945836306,-0.88479495,0.124540381,0.0194553193,0.202265725 +-0.487241566,3.19800043,0.487241566,0.00127431122,0.190535635,0.110284418,-0.883017898,0.783635378,0.019513566,0.690438271 +-0.107191518,3.19835663,0.107191518,0.000311184995,0.171096414,0.0996936187,-0.477997005,0.0605259873,0.0194660109,0.152520716 +0.933020115,3.19902825,-0.933020115,0.000484778662,0.162582964,0.0804839358,0.472257316,0.160760805,0.0195621978,1.3202517 +0.978989184,3.19945359,-0.978989184,0.00234727212,0.1609561,0.0794995576,0.486663818,0.0995683074,0.0195865128,1.38537848 +1.16717112,3.19963646,-1.16717124,0.000717295159,0.138408765,0.0650260448,0.121932775,0.129446387,0.0196334198,1.6507206 +-0.673504174,3.20005202,0.673504174,0.00120400067,0.181973755,0.0976155922,-0.0686092898,0.607680082,0.0195312779,0.952494979 +-0.139562979,3.20076394,0.139562994,0.000291483128,0.167016953,0.0948299691,-0.85728395,0.118612312,0.0194547921,0.197518617 +-0.752354145,3.20085311,0.752354145,0.0025634584,0.17771852,0.0931421071,0.203354985,0.518738687,0.0195465721,1.06589782 +0.703439534,3.20146132,-0.703439534,0.00418864004,0.171934411,0.0898890644,0.116607755,0.52752316,0.0194397084,0.99523145 +0.256152093,3.2014904,-0.256152064,0.00133999251,0.154315531,0.0879413635,-1.61383092,0.552447319,0.0194800012,0.365012527 +1.19189894,3.20168781,-1.19189894,0.000553394086,0.13843973,0.066741921,0.117824495,0.104569159,0.0196245965,1.68565178 +0.0986573622,3.20391202,-0.0986573622,0.00023177969,0.177232429,0.103003643,-0.355783373,0.0372481979,0.0194868874,0.139589116 +-0.0704559907,3.20425701,0.0704559907,0.000130143351,0.273169577,0.196480498,0.0533314049,0.0787943304,0.0194671303,0.100514449 +0.0691741779,3.20434809,-0.0691741779,9.91322158e-05,0.29306531,0.209927291,0.139101207,0.0330955312,0.0194869675,0.097855784 +-0.0831850544,3.2043798,0.0831850544,0.000312409102,0.187324181,0.117137842,-0.133957535,0.049208276,0.0194677562,0.118711799 +-0.0997957736,3.2045145,0.0997957736,0.000237681743,0.171860009,0.10121192,-0.39883092,0.0512699857,0.0194650386,0.142456934 +0.0993914977,3.20485449,-0.0993914902,0.000141304234,0.176741645,0.102617122,-0.365987033,0.0389110371,0.0194862504,0.140617594 +0.0819873139,3.20486689,-0.0819873139,0.000219998183,0.204706594,0.126626089,-0.0884881467,0.0241928641,0.0194865819,0.115959212 +0.0986176431,3.20496941,-0.0986176357,1.09006533e-05,0.17718409,0.102982588,-0.357316345,0.0374296233,0.0194861069,0.139597341 +0.081980288,3.20508122,-0.081980288,5.63089861e-06,0.204715028,0.126629412,-0.0887560397,0.024203768,0.0194864273,0.115960151 +0.0786014199,3.20509434,-0.0786014199,9.94558504e-05,0.228163362,0.148068398,-0.0284939893,0.026516702,0.0194863975,0.111159489 +0.0691520423,3.20512891,-0.0691520423,3.28433271e-06,0.293153256,0.209961191,0.138250858,0.0330269746,0.0194863565,0.0978579223 +0.0819896385,3.20531917,-0.0819896385,0.000221058915,0.204718441,0.126634002,-0.0890641809,0.0241891369,0.0194862522,0.115961298 +-0.911296964,3.20566702,0.911296964,0.00210474012,0.162151754,0.0815924406,0.523649037,0.297935873,0.0195715521,1.28933072 +0.0691747665,3.20582271,-0.0691747665,9.97001553e-05,0.293262333,0.210053816,0.137774393,0.0327555723,0.0194858555,0.0978607088 +0.0986748934,3.20613933,-0.0986748859,0.000300980435,0.177112103,0.102949984,-0.359323502,0.0375480354,0.0194852278,0.139606938 +-1.22874093,3.20748425,1.22874093,0.000266802119,0.0803930461,0.037961714,-0.132168725,-0.0197317675,0.0195964444,1.73779178 +-1.21481526,3.2075367,1.21481526,0.000587449817,0.109567821,0.050726667,-0.00647186302,0.069039993,0.0195968114,1.71809685 +-1.19807637,3.20759821,1.19807637,0.00062234787,0.128117234,0.0604055524,0.106111199,0.145270526,0.0195975006,1.6944232 +0.582358718,3.20802689,-0.582358778,0.00197909609,0.183255389,0.102324508,-0.295529485,0.749978185,0.0194094628,0.823626101 +-0.531760216,3.20859575,0.531760216,0.00174162071,0.191479936,0.109445959,-0.655066788,0.729660273,0.0195118785,0.752357662 +-0.120118245,3.20889807,0.120118245,0.000441122742,0.167358577,0.0961023197,-0.670520782,0.0839470625,0.0194581077,0.170939758 +-0.86303091,3.20890999,0.86303091,0.0033851394,0.168191016,0.0856441408,0.447200775,0.356450379,0.0195634402,1.22130764 +-1.18543911,3.2092371,1.18543911,0.000612308504,0.13858214,0.0659018904,0.132402286,0.21941936,0.0195975918,1.67650437 +0.452075362,3.20976973,-0.452075362,0.00148392306,0.182920918,0.108566642,-1.06528044,0.95379293,0.0194151253,0.639716983 +0.13299264,3.20995975,-0.13299264,0.000705331506,0.160667807,0.0899279788,-0.761474133,0.118306451,0.0194880497,0.188790917 +-0.778865099,3.21007013,0.778865099,0.00246963976,0.175945878,0.0915702879,0.275567174,0.475762784,0.0195451099,1.10222709 +0.585026979,3.21025395,-0.58502692,0.000313502213,0.183254406,0.102284543,-0.281356901,0.744967878,0.0194065254,0.827423394 +0.227271557,3.21027565,-0.227271557,0.00113819516,0.153608724,0.0871357247,-1.54226482,0.443688869,0.0194838867,0.324995577 +1.07117343,3.21031213,-1.07117343,0.00107590156,0.152483836,0.0729434788,0.329169184,0.0244441535,0.0196200274,1.51488125 +0.583966315,3.2104938,-0.583966255,0.000374496274,0.183397964,0.102443039,-0.285989404,0.746891022,0.019406233,0.825927496 +-1.13822937,3.21069527,1.13822937,0.000327408256,0.130427688,0.0572419986,0.0521649383,0.265110672,0.0195940994,1.60975754 +0.582394719,3.21070457,-0.582394719,0.00145949796,0.183449164,0.102589034,-0.295258045,0.750128865,0.0194059256,0.823692024 +-0.143736497,3.21096659,0.143736497,0.000477447145,0.165845349,0.0943855345,-0.9350577,0.129288211,0.0194500033,0.203330517 +0.123690285,3.21122217,-0.123690285,0.000453884248,0.162802175,0.0915806666,-0.674041688,0.0963592231,0.0194852669,0.175557613 +-1.13224554,3.21158361,1.13224566,0.00081968325,0.130858004,0.0574005619,0.0680287331,0.236230478,0.0195931792,1.60127223 +0.591865838,3.21164703,-0.591865778,0.0022213948,0.182630047,0.101581044,-0.256384075,0.730415404,0.0194058772,0.837039232 +0.585699618,3.21206522,-0.585699618,0.000580112275,0.183269903,0.102282695,-0.278040498,0.739946604,0.0194045119,0.828357399 +0.307191193,3.21254635,-0.307191193,0.00117779826,0.157826573,0.0919900835,-1.73114645,0.75718528,0.0194428619,0.434950948 +-0.216265202,3.21337175,0.216265187,0.00078650174,0.162557811,0.0936592966,-1.6091969,0.346403122,0.0194290467,0.306107938 +1.21695721,3.21342039,-1.21695721,0.000539295201,0.106753618,0.0497331582,-0.0230994057,0.0345198996,0.0196144879,1.72105539 +0.383498371,3.21344709,-0.383498371,0.00163807732,0.171121567,0.101776794,-1.49431634,0.946499825,0.0194205418,0.543681264 +1.22879791,3.21353245,-1.22879791,0.000248946017,0.0779380575,0.0385411419,-0.138993353,-0.022997519,0.019615382,1.73780084 +1.15019083,3.2140255,-1.15019083,0.000897558697,0.14019464,0.0645298213,0.0589726083,0.215877295,0.0196290743,1.62673545 +1.11495197,3.21404552,-1.11495197,0.000914473203,0.138383627,0.0623958632,0.100267798,0.0591960549,0.019637946,1.5768671 +-1.03076339,3.21405625,1.03076339,0.0010813222,0.152310371,0.0740989074,0.525875568,0.111427054,0.0195760429,1.45798326 +0.792032957,3.21496153,-0.792032957,0.0042956071,0.16645205,0.0840732232,0.312248468,0.358043253,0.0194694549,1.12127042 +0.584523976,3.21513557,-0.584523976,0.00130684313,0.183710426,0.102774881,-0.279504538,0.740285695,0.0194006227,0.826661408 +-1.01094222,3.21523237,1.01094222,0.000956019852,0.153061599,0.0750821233,0.579428196,0.135889992,0.0195724294,1.43011653 +1.20360589,3.21538305,-1.20360577,0.000489735336,0.127834618,0.0610179454,0.0890081525,0.0824998468,0.0196122751,1.70217061 +-0.969648004,3.21542311,0.969647944,0.00226457487,0.156859964,0.0778739974,0.585522771,0.196066111,0.0195693225,1.37193763 +-0.436841398,3.21593428,0.436841398,0.00161881,0.187928617,0.111670747,-1.18485403,0.819624662,0.0194796305,0.61921823 +-1.06510234,3.21611834,1.06510234,0.00137118204,0.149733543,0.071073167,0.416783392,0.0956053585,0.0195816085,1.50644433 +1.10714746,3.2169385,-1.10714746,0.000764176366,0.140388146,0.0637763664,0.124198042,0.0264712255,0.0196360648,1.56583834 +-0.536063731,3.21748614,0.536063731,0.000688651518,0.191876516,0.109670714,-0.632802188,0.713371217,0.0195063669,0.758632243 +-0.0709121376,3.21853733,0.0709121376,0.000119564487,0.274035007,0.196753204,0.0282573923,0.0764418691,0.0194604844,0.100566432 +-1.14777243,3.21858883,1.14777243,0.000591784657,0.148585275,0.0704262704,0.0945349038,0.304854304,0.0195895545,1.62320924 +0.910730302,3.21884775,-0.910730243,0.00235101674,0.163839072,0.0812409073,0.465624332,0.170496494,0.019531168,1.28827345 +-0.0837540478,3.2194314,0.0837540478,0.000274556514,0.186922312,0.116888337,-0.16610001,0.0476625115,0.0194607191,0.118773684 +-0.52890408,3.21943641,0.52890408,0.00139720528,0.192085221,0.110265277,-0.668901503,0.718948185,0.0195024386,0.748321891 +-0.268070936,3.2194562,0.268070936,0.00212977408,0.164756507,0.0969194546,-1.85372066,0.555891871,0.0194261558,0.379865795 +0.410311162,3.21954679,-0.410311192,0.000841453497,0.176823199,0.106129862,-1.35751176,0.985146224,0.0194070786,0.582914233 +-0.552972794,3.22017574,0.552972794,0.00178888883,0.191035077,0.108394697,-0.559401453,0.693984509,0.0195060801,0.782171488 +-0.100516722,3.22024536,0.100516714,0.00029080658,0.170691207,0.100703366,-0.436456621,0.0520739853,0.0194581747,0.142537042 +-0.250278115,3.22084141,0.250278115,0.000779443129,0.163104534,0.0955251232,-1.82895303,0.495464087,0.0194245093,0.355950803 +-1.09970582,3.22100163,1.09970582,0.00124159793,0.134934813,0.0599028505,0.17445837,0.0748155862,0.0195837561,1.55542898 +0.117177159,3.22106266,-0.117177166,0.000387600739,0.16621992,0.0945571065,-0.61045748,0.0835579261,0.019477278,0.166347116 +-0.298857868,3.22149563,0.298857868,0.00290887244,0.168083519,0.0998703316,-1.85638154,0.665302277,0.0194288176,0.424226522 +0.357793182,3.22156882,-0.357793152,0.00202680868,0.166432649,0.0992468297,-1.65610409,0.922617912,0.0194162726,0.507540822 +-1.17826533,3.22187281,1.17826545,0.000409966655,0.145270944,0.0700217038,0.166734427,0.274528235,0.0195901357,1.66643548 +0.680217206,3.22233582,-0.680217147,0.0044643851,0.174137503,0.0919382423,0.0721573979,0.548659146,0.0194086656,0.962765574 +1.16074514,3.22256374,-1.16074514,0.000596593542,0.157569259,0.0765902102,0.0989960432,0.261058033,0.0196155664,1.64163303 +-0.120105281,3.22264624,0.120105281,0.000470317522,0.166432843,0.0956945568,-0.70739609,0.086176157,0.019452313,0.171546042 +-0.20193994,3.22275543,0.20193994,0.000752530235,0.161900043,0.0933532342,-1.53832507,0.308627158,0.0194257349,0.285995483 +-0.613145947,3.22394609,0.613145947,0.00241107773,0.18763566,0.103352956,-0.286931455,0.626080751,0.01950901,0.868229508 +0.188815445,3.22467327,-0.188815445,0.000786871999,0.154584423,0.0872629732,-1.31081223,0.292815626,0.0194805302,0.267126232 +0.288154781,3.22513771,-0.288154781,0.00189203944,0.15531978,0.0907831267,-1.77708805,0.704015315,0.0194353554,0.408285648 +0.128218591,3.22514558,-0.128218591,0.000357622106,0.160814464,0.0905924067,-0.750813305,0.109776691,0.0194760282,0.181971923 +-0.330511272,3.22552943,0.330511272,0.00313674472,0.172727138,0.103842825,-1.80709124,0.755935133,0.0194275174,0.469721019 +0.527621746,3.22562385,-0.527621746,0.00136742718,0.188420027,0.110053666,-0.572556078,0.851640224,0.0193901099,0.748230457 +1.04994404,3.22587347,-1.04994404,0.00079918257,0.15767014,0.0766565204,0.403471053,0.00794057455,0.0196016058,1.48496795 +-0.941922545,3.22588444,0.941922545,0.00338492286,0.159524828,0.0797281861,0.573729515,0.225416929,0.0195609722,1.3328234 +-0.467745781,3.22623491,0.467745781,0.00103663513,0.190889269,0.112779632,-1.00129497,0.782378674,0.019481644,0.661876261 +0.191586867,3.22691727,-0.191586867,0.000811293488,0.154315859,0.0872601271,-1.3411386,0.304248005,0.0194779225,0.271064699 +0.189691737,3.22736979,-0.189691737,0.000535432366,0.154401407,0.0872726887,-1.32895064,0.297814727,0.0194779914,0.268487245 +-0.990380168,3.22740507,0.990380168,0.00141694827,0.155712053,0.0771028325,0.597786665,0.148118228,0.0195624512,1.40126085 +1.05358326,3.22741127,-1.05358326,0.000747699814,0.157840565,0.0766073763,0.391257077,0.00460865861,0.019602159,1.49005187 +0.155645087,3.22800255,-0.155645087,0.0005525694,0.156861484,0.088142544,-1.02043104,0.180292875,0.0194780007,0.220430166 +-0.107619785,3.22825456,0.107619785,0.000315875135,0.168447912,0.0986771584,-0.546939433,0.0652389154,0.0194528643,0.152619734 +0.143564075,3.22866964,-0.143564075,0.000321105443,0.158531353,0.0892158747,-0.908865213,0.148836136,0.0194749385,0.20318149 +-0.505293965,3.22885323,0.505294025,0.000731517619,0.191815004,0.111727647,-0.800431132,0.737839222,0.0194878206,0.714687765 +0.191391796,3.22970152,-0.191391796,0.00103591534,0.154112875,0.0872634351,-1.35234189,0.305444896,0.0194745567,0.270785123 +0.937037706,3.22981882,-0.937037706,0.00208971626,0.164508805,0.0814487115,0.492750943,0.12583594,0.0195364282,1.32543945 +0.253580838,3.2301755,-0.253580838,0.000959928613,0.152709246,0.0882525817,-1.72170711,0.561467469,0.0194479227,0.359452367 +1.05028808,3.23051214,-1.05028808,0.000143930883,0.158300743,0.0770301372,0.403709859,0.00243848213,0.0195979588,1.48546755 +-0.100064896,3.23066711,0.100064896,0.000169735169,0.169653624,0.100210644,-0.458624244,0.0522037074,0.0194531605,0.142522573 +-0.0833532363,3.23066735,0.0833532363,0.000244133291,0.186864495,0.116856441,-0.186567113,0.0459409766,0.019454537,0.11876151 +-0.0705512539,3.23067069,0.0705512539,0.000112355701,0.275072813,0.197327867,0.0111360997,0.0725162998,0.0194537453,0.100557894 +0.0977732837,3.23115826,-0.0977732837,0.000483485404,0.175072879,0.10196501,-0.406803697,0.0448144823,0.0194665827,0.139852583 +0.0811756551,3.23132706,-0.0811756551,0.00050231861,0.205079943,0.127163053,-0.121803015,0.0242160894,0.0194670446,0.116124064 +0.068479307,3.23142481,-0.0684792995,0.000234831969,0.298539817,0.214265779,0.117452964,0.025906831,0.0194675252,0.0979702026 +-0.211250544,3.23174739,0.211250558,0.000298396975,0.16059871,0.0932227373,-1.6641953,0.347124666,0.0194198824,0.299790889 +-0.216498494,3.23200369,0.216498479,0.00049545808,0.160769343,0.0935504064,-1.70303607,0.368009806,0.0194194783,0.30707714 +-1.18305576,3.2322793,1.18305564,0.00049264828,0.15049535,0.0745085403,0.202103198,0.282014549,0.0195840895,1.67319047 +-0.175952941,3.23256731,0.175952926,0.000937543227,0.161816001,0.0928633586,-1.34248459,0.219967201,0.0194296893,0.24903518 +0.474463403,3.23315716,-0.474463403,0.00190060434,0.187095731,0.112295821,-0.924105823,0.943229079,0.0193811562,0.671874404 +0.315387338,3.23485112,-0.315387338,0.000857490173,0.158995345,0.0944539011,-1.78956568,0.811063647,0.0194132533,0.446848929 +0.687073886,3.23544455,-0.687073886,0.00064657419,0.174330801,0.091811724,0.0975665152,0.519343436,0.0193977859,0.972574472 +0.300338805,3.23546886,-0.300338775,0.00059163355,0.156258866,0.0924666449,-1.83608902,0.767924249,0.0194180794,0.426351845 +1.0028187,3.23555613,-1.0028187,0.00148756511,0.161517486,0.0794608071,0.496286064,0.0459765382,0.019566875,1.41824329 +1.0486865,3.23561358,-1.04868662,0.00139607955,0.159106791,0.0776355639,0.410896808,-0.00177051791,0.019592084,1.48312891 +-1.13750088,3.23589325,1.13750076,0.000123526261,0.338898063,0.172379181,-0.052317664,0.289941072,0.0195788816,1.60872924 +1.20608211,3.23592472,-1.20608211,0.00024082679,0.134265468,0.0652226657,0.115210764,0.11228916,0.0195925906,1.70570135 +-1.1719662,3.23598289,1.1719662,0.000403005048,0.184296787,0.0975118876,0.18176654,0.409314573,0.0195801649,1.65752602 +0.154466867,3.23608565,-0.154466867,0.000577893225,0.156590909,0.0882769451,-1.04005599,0.182092413,0.0194704533,0.21913594 +0.705202281,3.23632431,-0.705202281,0.00351722632,0.173240557,0.0905400068,0.138844132,0.488735229,0.0194046851,0.997719228 +0.437321037,3.23639536,-0.437321037,0.000741365249,0.183818519,0.112375878,-1.18120444,0.969264686,0.0193815548,0.618837833 +0.238008887,3.23678541,-0.238008887,0.000943549094,0.152224541,0.0878503919,-1.69078863,0.504081905,0.0194478389,0.337741703 +-1.13269949,3.23694611,1.13269949,0.000289396878,0.329276204,0.165514424,-0.0429922566,0.234977752,0.0195773989,1.60191524 +0.151681885,3.23697519,-0.1516819,0.000166517697,0.156904042,0.0884427354,-1.01449251,0.173307538,0.0194697622,0.215064928 +1.21049488,3.23731709,-1.21049488,0.000141583703,0.131372467,0.06374643,0.106422968,0.0978702903,0.0195905901,1.71197867 +1.22876596,3.23756361,-1.22876596,0.000103771672,0.0777633712,0.0398084745,-0.107471928,-0.0243374016,0.0195939224,1.73783386 +1.22034311,3.2376914,-1.22034311,0.000222228802,0.106083855,0.0499566235,-0.00263445522,0.0325350314,0.019592192,1.72592175 +1.14709401,3.23779798,-1.14709401,0.000331099087,0.396476597,0.215080619,0.00056793727,0.28012374,0.0196148213,1.62235463 +-0.177853018,3.23805642,0.177853018,0.000164193116,0.161161482,0.092756696,-1.38444495,0.229790419,0.0194271989,0.252012134 +-0.175397187,3.23810577,0.175397187,2.92821478e-05,0.161210164,0.092725046,-1.36050677,0.222040474,0.0194278695,0.248662472 +-1.04826391,3.23812866,1.04826391,0.00147652754,0.15274407,0.0739222616,0.490737855,0.063095063,0.019562507,1.48265207 +-0.75765872,3.23861313,0.75765872,0.00249871006,0.179363847,0.0934460238,0.23629652,0.431797922,0.0195212122,1.07224977 +0.14502427,3.23886704,-0.145024285,0.000233773884,0.158157095,0.0893604904,-0.947189629,0.156791911,0.0194670316,0.20547241 +-0.120785803,3.239573,0.12078581,0.000422157958,0.16556555,0.0958732739,-0.751493573,0.0869244188,0.0194461141,0.171299666 +-0.140216649,3.23959565,0.140216649,0.000325209316,0.163591772,0.0940838978,-0.983506083,0.129579395,0.0194407422,0.199031323 +1.12014401,3.23976064,-1.12014401,0.000323457731,0.348560929,0.174982294,0.0105656264,-0.00948748738,0.0196290407,1.5842104 +-1.14625502,3.2398026,1.1462549,0.000224052201,0.390378296,0.222347096,0.03251886,0.344057441,0.0195768271,1.62106359 +0.105788268,3.2399776,-0.105788268,0.000310616859,0.169654667,0.0978894979,-0.531186938,0.0652455091,0.0194606259,0.151022509 +1.08566988,3.24005365,-1.08566976,0.000939877587,0.151732564,0.073209323,0.252290308,-0.0556457527,0.0196104348,1.53538072 +-0.164942443,3.24029589,0.164942443,0.000632947835,0.161885098,0.0931501016,-1.24979663,0.192877769,0.0194310956,0.23333022 +-0.455302477,3.24043727,0.455302477,0.000959474477,0.190397859,0.113611542,-1.0812645,0.782085419,0.0194651391,0.644313097 +-0.728333831,3.2417798,0.728333831,0.0026675472,0.182364136,0.0961167142,0.139831856,0.449855596,0.0195135102,1.03057384 +-0.210835531,3.24181414,0.210835531,0.000645032502,0.159807175,0.093220897,-1.70300663,0.351077974,0.0194152985,0.298750579 +1.15626526,3.24196982,-1.15626526,0.000236740743,0.435749292,0.256077826,0.0814785585,0.342094511,0.0196007155,1.63529634 +-0.100560233,3.24197102,0.100560233,0.000302844623,0.168741792,0.0999366269,-0.487257183,0.053212136,0.0194486268,0.142557159 +-0.470301062,3.24201298,0.470301032,0.000382344559,0.191791862,0.113898054,-0.988711536,0.765263915,0.0194693841,0.665744185 +1.11419249,3.24209285,-1.11419249,0.000269987824,0.344268352,0.172835574,0.0378324278,-0.072520785,0.019628413,1.57580245 +1.18902445,3.24210358,-1.18902445,0.000862536253,0.162564576,0.082083635,0.20503296,0.195478857,0.0195852481,1.68168664 +-0.175386459,3.24228883,0.175386474,0.000191407118,0.160961419,0.0927681699,-1.37459874,0.223600507,0.0194263682,0.248444825 +-0.14579384,3.24240565,0.14579384,0.000425691658,0.163075775,0.0937710777,-1.05478764,0.140819177,0.0194380116,0.206898794 +0.754116178,3.24243641,-0.754116178,0.00366162742,0.16986689,0.0867320076,0.267421633,0.395783544,0.019423604,1.06814337 +-1.08157277,3.24251366,1.08157277,0.000892321055,0.142059401,0.0671033189,0.303378463,-0.00657035597,0.0195632651,1.52973723 +-0.0837842673,3.24283266,0.0837842673,0.000277284737,0.186571777,0.116720147,-0.216473639,0.0439728349,0.0194488075,0.118777417 +-0.179033637,3.24300003,0.179033637,0.000759269344,0.160728544,0.0927860588,-1.41620779,0.236737296,0.0194245242,0.253470123 +1.20947731,3.24303555,-1.20947719,0.000111067675,0.139285833,0.0688859895,0.136860937,0.108647786,0.0195817016,1.71051323 +-1.17691267,3.24339962,1.17691267,0.00029426493,0.203936517,0.113415077,0.2457847,0.405506521,0.0195764415,1.66450202 +-1.03566456,3.24347115,1.03566456,0.000828709744,0.153422311,0.0746822506,0.527001083,0.0737537593,0.0195571501,1.46495032 +-0.0709498972,3.24379277,0.0709498972,0.000120279277,0.276938975,0.198422268,-0.0128767639,0.0678067431,0.0194473211,0.100582838 +1.21156812,3.24455214,-1.21156812,0.000288759009,0.130546138,0.0637784079,0.12141037,0.0933240503,0.0195808131,1.71345842 +-0.221953362,3.24472618,0.221953362,0.000864301575,0.160274461,0.0942520201,-1.78752029,0.397794455,0.0194101874,0.314245641 +0.41819033,3.24513054,-0.41819036,0.00112132553,0.180410773,0.110262685,-1.31352139,0.985492706,0.0193706714,0.593235254 +-1.20189464,3.24516964,1.20189452,0.000472561311,0.141599149,0.0710299164,0.206579134,0.204265758,0.019574834,1.69994712 +1.00568616,3.24523616,-1.00568616,0.000999223324,0.161796734,0.0795342475,0.499100894,0.0371494852,0.0195595883,1.42235315 +-1.10804558,3.24532437,1.10804558,0.000430630636,0.283462644,0.137310147,0.0415123031,-0.0549685843,0.0195654407,1.56722283 +0.151836991,3.24537611,-0.151836991,0.000568208925,0.156370029,0.0884457603,-1.0389328,0.176397085,0.0194623601,0.215038344 +-0.25104332,3.24578142,0.25104332,0.0011707535,0.16164504,0.0962012634,-1.94307041,0.514312923,0.0194070954,0.355802476 +1.22878909,3.24602604,-1.22878909,0.000125057646,0.0768467858,0.0399753265,-0.0842934921,-0.0243805498,0.0195830707,1.7378211 +-0.13487336,3.2460475,0.134873375,0.000297077233,0.163830012,0.0946644843,-0.933429837,0.11756523,0.0194399245,0.190940827 +1.2209971,3.24614716,-1.22099721,0.00027513798,0.104125351,0.049265936,0.0163013916,0.0280429684,0.0195812955,1.72680128 +-1.22866225,3.24739027,1.22866225,0.000232119928,0.0791590661,0.0400111079,-0.0437492207,-0.0269158706,0.0195706096,1.73779106 +-1.22064424,3.24748945,1.22064424,0.000511271239,0.103515454,0.0491203219,0.0634219497,0.0433949158,0.0195708126,1.72645068 +-1.21102118,3.24760842,1.21102118,0.000530172721,0.126296103,0.0620471686,0.170478195,0.129962817,0.0195716955,1.71283972 +-1.1667186,3.24772215,1.1667186,0.000152532506,0.50316292,0.329833388,0.211026132,0.485580444,0.0195737705,1.65010381 +0.122392356,3.24872541,-0.122392356,0.000802625262,0.161284596,0.0918160677,-0.749639273,0.105657727,0.0194567256,0.17460835 +1.00572383,3.24907851,-1.00572383,0.000128578948,0.16232717,0.079852879,0.499810845,0.032874193,0.0195564236,1.42241693 +0.881688416,3.24913955,-0.881688416,0.00336884474,0.166229427,0.0826827064,0.459142685,0.184404507,0.0194875821,1.24817443 +1.00273407,3.24930191,-1.00273407,0.00135438074,0.162466496,0.0799525604,0.503817618,0.0362746306,0.0195546132,1.41817284 +-0.535136342,3.24950075,0.535136402,0.00126448658,0.193443641,0.111115381,-0.624955773,0.65081507,0.0194799453,0.756862044 +0.456559718,3.24952316,-0.456559747,0.000897417543,0.186508358,0.113775097,-1.05627608,0.968426049,0.0193611234,0.646605372 +-0.14508982,3.24972963,0.145089805,0.000481360272,0.162510842,0.0937272757,-1.06921029,0.140068263,0.0194352288,0.205820888 +-0.809182107,3.25102854,0.809182048,0.00701380149,0.175441802,0.0902826115,0.375890553,0.360423028,0.0195255,1.14569724 +1.18291306,3.25156641,-1.18291306,0.000412515248,0.224430904,0.125573725,0.279561222,0.315235913,0.0195699092,1.67303705 +1.00690603,3.25220704,-1.00690603,0.00109285349,0.162760422,0.0801906213,0.500310302,0.0277365521,0.0195539463,1.42402995 +0.352010012,3.25226665,-0.352010012,0.00111098285,0.165090561,0.101233333,-1.77461028,0.938828409,0.0193790775,0.498818249 +0.0988833904,3.25228548,-0.0988833904,0.000247106393,0.174044207,0.101793461,-0.448679388,0.0434036963,0.0194490142,0.14014703 +1.07304287,3.25233245,-1.07304287,0.00045733992,0.158448488,0.0786126703,0.323077559,-0.103936151,0.0195974186,1.51756763 +-1.17179251,3.25268292,1.17179251,0.000124096812,0.541983962,0.376809597,0.30900979,0.476856351,0.0195715185,1.65725994 +0.0820793584,3.25327301,-0.0820793584,0.000274697202,0.205971092,0.12759459,-0.166329324,0.0212856419,0.0194494035,0.116300702 +-0.111174896,3.25341368,0.111174896,0.000420573168,0.166271389,0.0976608247,-0.658028603,0.0706485957,0.019442264,0.157611787 +0.0692690909,3.25423932,-0.0692690909,0.000119007309,0.308305442,0.220767245,0.0734327734,0.0189717207,0.0194506869,0.0981196314 +0.317437083,3.25446796,-0.317437083,0.00105047447,0.159124911,0.0965092704,-1.85346174,0.838494301,0.0193876028,0.449470043 +0.104104221,3.2556293,-0.104104221,0.000293027144,0.171446204,0.0999108031,-0.517677605,0.0559232011,0.0194472969,0.147523448 +0.235796809,3.25607753,-0.235796809,0.000956395466,0.150843158,0.0877697915,-1.76275158,0.508802056,0.0194248315,0.334568709 +0.658496618,3.25650978,-0.658496618,0.00248075346,0.17832765,0.0960463211,0.0177897625,0.516724586,0.0193655081,0.931428313 +-0.099963285,3.25717783,0.099963285,0.00024396884,0.167560101,0.0995013788,-0.521509528,0.0515669361,0.0194422193,0.142594397 +-0.0832976624,3.25719213,0.083297655,0.000283308851,0.186285511,0.116547741,-0.246225208,0.0402245708,0.0194416419,0.118779182 +-0.0705704391,3.25722075,0.0705704391,0.00011638063,0.277890235,0.198791862,-0.0321743973,0.0620781891,0.0194402281,0.100589313 +0.0987188891,3.25737691,-0.0987188891,8.02561408e-05,0.173870474,0.101816416,-0.458790302,0.0436796546,0.0194450822,0.140228897 +-0.595674038,3.25745249,0.595674038,0.00266376627,0.190318465,0.105543837,-0.353216648,0.577353716,0.0194851309,0.842768669 +-0.472619832,3.25755453,0.472619861,0.0011841387,0.19275935,0.114977986,-0.968080699,0.73492378,0.0194578171,0.668683171 +0.0819514468,3.257586,-0.0819514394,0.000102189413,0.206169128,0.127690241,-0.175021678,0.0212015137,0.0194461066,0.116341248 +0.0691798329,3.25772119,-0.0691798404,3.75928284e-05,0.309650064,0.221650735,0.067034483,0.0181512944,0.019448176,0.0981445536 +1.07049656,3.2577548,-1.07049656,0.000992272981,0.160657465,0.0804191828,0.345478386,-0.110589378,0.0195898376,1.51396847 +-1.00347543,3.2578702,1.00347543,0.00214632507,0.15563181,0.0770024657,0.611804485,0.0896947309,0.0195423886,1.41988111 +-0.889877617,3.25840759,0.889877677,0.00208181283,0.166482136,0.084030591,0.527366638,0.249696791,0.0195343904,1.25863957 +-1.06951642,3.25854683,1.06951642,0.000720657583,0.147256538,0.0723057911,0.396452844,-0.0639526099,0.0195473526,1.512707 +1.17739391,3.25976563,-1.17739403,0.000168385741,0.536103368,0.375310153,0.374199927,0.3987014,0.0195557121,1.66523087 +1.09746313,3.25996494,-1.09746313,0.000321294414,0.335191309,0.179193988,0.213241041,-0.191147462,0.0196049623,1.55205882 +0.475055158,3.26077509,-0.475055188,0.00100699905,0.190659195,0.116888471,-0.905044556,0.925771236,0.0193433017,0.672144294 +1.19636822,3.26124525,-1.19636822,0.000375144737,0.178227872,0.0937711224,0.269688606,0.193427444,0.0195561182,1.69210911 +0.83107537,3.26137209,-0.83107537,0.00305148191,0.168487012,0.084631376,0.390051454,0.246963054,0.0194483381,1.17603314 +-1.09422123,3.26159358,1.09422123,0.000302608707,0.277521431,0.143060744,0.215625614,-0.173311129,0.0195474364,1.54762363 +-0.309637308,3.26208162,0.309637308,0.000870509422,0.169497132,0.104792051,-1.97459316,0.723255396,0.019392062,0.43843931 +0.0693490431,3.26208973,-0.0693490431,0.000119211058,0.310225844,0.222184256,0.0596771799,0.0221008733,0.019446969,0.0981949121 +0.277542531,3.26280022,-0.277542502,0.000867511379,0.151950449,0.0906061977,-1.93574715,0.696608424,0.0193893351,0.392822742 +0.0821983069,3.26300216,-0.0821983069,0.000277645275,0.206900015,0.128479391,-0.181831539,0.0243144687,0.0194424819,0.1164148 +1.20265985,3.26345611,-1.20265985,0.00030829641,0.153274447,0.0783085078,0.220143914,0.148274943,0.0195560902,1.70096636 +0.0991201773,3.26377463,-0.0991201773,0.000356330915,0.174121752,0.102277279,-0.470592797,0.045397304,0.0194402654,0.14040722 +-0.494459152,3.26465726,0.494459152,0.00121797936,0.194339707,0.115108907,-0.831908464,0.688123822,0.0194614809,0.700341702 +-0.281521559,3.26469159,0.281521529,0.00119433377,0.163969368,0.0998658165,-2.06604671,0.645590961,0.0193912573,0.398605049 +0.139532924,3.26529026,-0.139532924,0.00052154914,0.1567716,0.0894855186,-0.981102228,0.155067265,0.019444814,0.198681355 +-1.04091501,3.26609206,1.04091501,0.000999932061,0.153318524,0.0753169432,0.544063687,0.0306126177,0.0195412524,1.47220027 +0.254518032,3.26625156,-0.254518032,0.000893679739,0.15020512,0.0889583677,-1.89933419,0.601775765,0.0193975698,0.360301018 +0.392742872,3.2664516,-0.392742842,0.00128313934,0.175259665,0.109139405,-1.55459225,1.00903726,0.0193492621,0.55591011 +1.19065762,3.26719403,-1.19065762,0.000255891209,0.25594455,0.151686415,0.38518995,0.288656294,0.0195415374,1.684021 +-0.387848318,3.26800132,0.387848318,0.00172166864,0.183224246,0.113561109,-1.57825541,0.825971425,0.0193986334,0.54897505 +-0.0709345341,3.26917481,0.0709345341,0.000120784607,0.276662797,0.198499203,-0.0490993261,0.0629165098,0.0194354281,0.100625172 +1.08782184,3.26926708,-1.08782184,0.000149704589,0.331808776,0.182305604,0.306411624,-0.26423043,0.0195936039,1.538468 +-0.0837332606,3.27001381,0.0837332532,0.000280110515,0.185793728,0.116932817,-0.272389948,0.040404968,0.0194359478,0.118786111 +-0.327411801,3.27024531,0.327411801,0.00104228,0.172079459,0.107512355,-1.9672215,0.778223753,0.0193858724,0.463793516 +0.781015038,3.27057791,-0.781015038,0.00336336205,0.169717684,0.0858918652,0.328281194,0.309790313,0.0194144715,1.10632074 +-1.19901443,3.27070785,1.19901431,0.000296356855,0.171955153,0.0934600085,0.351967812,0.226218879,0.0195558053,1.69571781 +0.526880324,3.27071643,-0.526880383,0.00229210453,0.193106085,0.115597986,-0.543834388,0.813550055,0.0193286501,0.745788515 +-0.636042118,3.27079058,0.636042118,0.00189225446,0.189445823,0.10270258,-0.207782581,0.462595433,0.0194799397,0.900214136 +-0.100592956,3.27080369,0.100592956,0.000419346587,0.166623145,0.0997893438,-0.556352019,0.053187184,0.0194366332,0.142704383 +-0.901386917,3.27091455,0.901386976,0.00170114555,0.16567792,0.0834070221,0.549031019,0.215180039,0.0195271466,1.27496445 +-0.365559608,3.27120566,0.365559608,0.0021801868,0.179960534,0.111869618,-1.71541417,0.817630351,0.0193866082,0.517647326 +-1.20261919,3.27139449,1.20261919,0.000193115644,0.16564247,0.089447163,0.336300522,0.196886137,0.0195547789,1.70081186 +0.379129469,3.27185941,-0.379129469,0.000655419659,0.172824934,0.107836306,-1.64261794,0.997456729,0.0193455573,0.536755085 +-0.12766774,3.27193856,0.127667755,0.000457038986,0.16194427,0.094993785,-0.920106471,0.107337914,0.0194333047,0.180718571 +0.538067937,3.27234936,-0.538067937,0.00075466081,0.193209291,0.115143262,-0.473151565,0.787462056,0.0193268973,0.761766016 +1.18547761,3.27245283,-1.18547761,0.000112619222,0.574866235,0.433633566,0.534435272,0.350014925,0.0195288043,1.67669415 +1.08595598,3.27326298,-1.0859561,0.000326336158,0.328906655,0.182114273,0.334513992,-0.267080188,0.0195863452,1.53583097 +-1.08522034,3.27341032,1.08522034,0.000242982947,0.274763972,0.14719446,0.338141561,-0.250253618,0.0195338782,1.53491473 +0.961195827,3.27386093,-0.961195827,0.00284133037,0.16649425,0.0823530629,0.528134942,0.0560844317,0.0195110366,1.36008012 +-1.19358671,3.275177,1.19358671,0.000208641897,0.264969587,0.165761292,0.485936761,0.296676755,0.0195543226,1.68804169 +-1.20086277,3.2773366,1.20086277,0.00034710957,0.175418422,0.0965032801,0.379324168,0.207731605,0.0195499565,1.69834232 +-0.433232605,3.27739692,0.433232605,0.00202866481,0.19130078,0.118187517,-1.23235798,0.77836144,0.0194081496,0.612836003 +0.300653845,3.27790499,-0.300653845,0.000248700439,0.15379025,0.0946159661,-2.01099133,0.813441515,0.0193606708,0.425312698 +-0.166585356,3.2779479,0.166585371,0.000441059849,0.157450676,0.0923475325,-1.42085254,0.209957659,0.0194171052,0.235607982 +-0.873721957,3.27866626,0.873722017,0.00277915131,0.168863609,0.085485898,0.51079601,0.239560246,0.0195178241,1.23591566 +-1.18906426,3.27889872,1.18906426,8.76610648e-05,0.640674472,0.518291891,0.671026587,0.323518574,0.0195532329,1.68164575 +-1.06383717,3.27946424,1.06383717,0.000850277022,0.151850373,0.0768607482,0.481805533,-0.0840598866,0.0195311327,1.50461555 +-1.19563067,3.28098583,1.19563067,0.000202374635,0.273821026,0.173788279,0.523036778,0.26824683,0.019548798,1.69094253 +0.303514659,3.28230572,-0.303514659,0.000188009857,0.153893992,0.0950622633,-2.03296518,0.830501854,0.0193539504,0.429484069 +0.123158082,3.28237438,-0.123158075,0.000377225544,0.159437418,0.0921328142,-0.822367966,0.112837039,0.0194307454,0.174235344 +0.67619288,3.28280878,-0.67619288,0.00256598368,0.176451191,0.0931649804,0.0883223712,0.436623573,0.0193465333,0.956483841 +0.998023748,3.28288794,-0.998023808,0.000821965863,0.164704353,0.0813601092,0.529296219,0.00693489984,0.0195198823,1.41142559 +0.180728614,3.28358865,-0.180728599,4.26425504e-05,0.151743665,0.0874801502,-1.47159433,0.295913756,0.019424567,0.255625367 +0.181011558,3.2836597,-0.181011558,0.000482969859,0.151706383,0.0874647871,-1.47474229,0.296895891,0.0194244869,0.25603348 +-1.02430725,3.28368211,1.02430713,0.00082968059,0.15456292,0.0769026056,0.600390196,0.0223399661,0.0195261855,1.44890547 +0.44697547,3.28394318,-0.44697544,0.000522434013,0.190532431,0.119744778,-1.08418846,0.839803815,0.0193101056,0.6323331 +0.45710507,3.28394318,-0.45710507,7.43632627e-05,0.193015873,0.120379508,-0.992571592,0.811903596,0.019306777,0.646927476 +0.40628022,3.28394318,-0.40628022,0.000993866939,0.181215972,0.116847374,-1.42963696,0.94331491,0.0193270445,0.575776219 +0.463721156,3.28394318,-0.463721156,0.000192426713,0.19372803,0.12017969,-0.942111194,0.79142046,0.0193053745,0.656088054 +0.520151794,3.28394318,-0.520151794,0.000351496856,0.198227346,0.11612352,-0.517668366,0.587607026,0.0193018597,0.735744715 +0.545596719,3.28394318,-0.545596659,0.000984199578,0.197647095,0.11322163,-0.360749781,0.506711364,0.0193051733,0.77220124 +0.50612843,3.28394318,-0.50612843,0.000326809619,0.198708445,0.11766319,-0.603909731,0.630913794,0.0193007495,0.716118574 +0.589918554,3.28394318,-0.589918554,0.000651918992,0.192518726,0.107541122,-0.146473795,0.410996318,0.0193122011,0.834789336 +0.571233928,3.28394318,-0.571233928,0.000501238159,0.19480145,0.109993689,-0.238052547,0.450075984,0.019308487,0.808049917 +0.61100316,3.28394318,-0.61100316,0.000750165549,0.190363795,0.106379248,-0.074762933,0.376701474,0.0193177406,0.86425823 +0.635976076,3.28394318,-0.635976017,0.000192453983,0.187799886,0.104972377,0.011130129,0.334289134,0.0193285663,0.900000095 +0.220559642,3.28394318,-0.220559642,0.000171141612,0.152093902,0.0957402289,-1.84393835,0.402347475,0.0193919502,0.312065065 +0.206975207,3.28394318,-0.206975192,0.000252486032,0.153242469,0.0951977894,-1.73434949,0.324068218,0.0193978138,0.293233275 +0.243703097,3.28394318,-0.243703112,0.000317374797,0.150764644,0.0970234424,-2.02175522,0.540858328,0.0193838514,0.344894052 +0.236125886,3.28394318,-0.236125886,0.000104555744,0.151003048,0.0962968767,-1.97622895,0.492958814,0.019386813,0.334481239 +0.266478956,3.28394318,-0.266478956,0.000272907579,0.15026316,0.0981915221,-2.11847448,0.673086524,0.0193748288,0.377150744 +0.274586976,3.28394318,-0.274586976,6.65044863e-05,0.150354624,0.0984222516,-2.14418626,0.720562279,0.0193736497,0.389233887 +0.28912425,3.28394318,-0.28912425,0.000406394975,0.151098028,0.0995446369,-2.1308763,0.79467237,0.0193702839,0.409256458 +0.315992385,3.28394318,-0.315992385,0.000330475043,0.153412521,0.102624767,-2.10295224,0.925399423,0.0193648227,0.447988063 +0.349770486,3.28394318,-0.349770486,0.00057248387,0.162325174,0.108287103,-1.90296388,0.989864588,0.0193517879,0.494849741 +0.360202312,3.28394318,-0.360202312,0.000622975931,0.165470272,0.110257104,-1.8435353,1.01046503,0.019347867,0.509869993 +0.369471014,3.28394318,-0.369470984,0.000455275935,0.168371886,0.111571357,-1.76349437,0.999466777,0.019343745,0.522716522 +0.13152796,3.28394318,-0.13152796,0.000194374588,0.158078909,0.0943154469,-0.943470955,0.0655210763,0.0194138121,0.186983868 +0.114036322,3.28394318,-0.114036322,0.00014958586,0.161263645,0.0966273174,-0.728315234,0.0326748192,0.0194119308,0.161381781 +0.110853873,3.28394318,-0.110853873,1.9726187e-05,0.161814868,0.0970108584,-0.692314267,0.0276999772,0.0194120184,0.157087699 +0.196511418,3.28394318,-0.196511418,0.00025811058,0.154190704,0.0951029211,-1.62947083,0.271777749,0.0193988867,0.278162301 +0.149800882,3.28394318,-0.149800882,0.00019281487,0.156586617,0.0939723402,-1.1372571,0.0958693624,0.0194123648,0.212026298 +0.160254225,3.28394318,-0.160254225,0.000213298947,0.155709594,0.0938274637,-1.25493276,0.127836362,0.0194102656,0.226767391 +0.154765606,3.28394318,-0.154765606,1.7303737e-05,0.156104594,0.0937714577,-1.19512379,0.108865634,0.0194120966,0.219221786 +0.179085657,3.28394318,-0.179085642,0.000192013191,0.154780924,0.0941946357,-1.47261095,0.197857067,0.0194045343,0.254040271 +-0.413262039,3.28394318,0.413262039,0.000729863474,0.194457442,0.126765579,-1.37477493,0.872792482,0.0193991512,0.584678411 +-0.450352311,3.28394318,0.450352311,0.00107998075,0.198105037,0.127668127,-1.02939057,0.817067325,0.0194077771,0.63795042 +-0.404576033,3.28394318,0.404576033,0.000409083208,0.193449095,0.126293287,-1.45310152,0.884871185,0.019396659,0.572605193 +-0.495825529,3.28394318,0.495825559,0.000447510683,0.195276007,0.121719152,-0.670973659,0.691610277,0.0194314606,0.701348245 +-0.210535362,3.28394318,0.210535347,9.93364083e-05,0.150034487,0.086421676,-1.9102577,0.503013372,0.0193946641,0.29834336 +-0.197445512,3.28394318,0.197445527,0.000245441857,0.15014568,0.0858253092,-1.78147244,0.459936917,0.0194004886,0.279535502 +-0.242059693,3.28394318,0.242059693,0.000171709136,0.152178541,0.0898778364,-2.12620091,0.608856916,0.0193823446,0.342946112 +-0.225938261,3.28394318,0.225938275,0.000177811075,0.151135892,0.0881066322,-2.01328897,0.5537076,0.0193887781,0.319707394 +-0.114536896,3.28394318,0.114536896,0.000136966817,0.161236614,0.0928689688,-0.766495109,0.178440198,0.0194225684,0.162052661 +-0.110517062,3.28394318,0.11051707,1.85370445e-05,0.162415221,0.0939307958,-0.716541111,0.16401872,0.0194226336,0.156593293 +-0.131589413,3.28394318,0.131589413,0.000240913621,0.156059384,0.0883053094,-0.995277226,0.24120672,0.0194209255,0.186774343 +-0.162891716,3.28394318,0.162891701,0.000176138885,0.15241918,0.0859543309,-1.39371598,0.347510457,0.0194149669,0.230616525 +-0.153738052,3.28394318,0.153738052,6.23228552e-05,0.152959257,0.0861338302,-1.28393328,0.318778068,0.0194182191,0.217827201 +-0.1448991,3.28394318,0.1448991,9.3074741e-05,0.154066145,0.0868969113,-1.16586065,0.289434999,0.0194187481,0.20513536 +-0.179505855,3.28394318,0.179505855,0.000153350964,0.150921956,0.085361138,-1.60602915,0.400467664,0.0194088686,0.254737228 +-0.315551698,3.28394318,0.315551698,0.000696119037,0.16953665,0.107254952,-2.14585328,0.841295719,0.019385729,0.447476178 +-0.343182623,3.28394318,0.343182653,0.000540448527,0.177240252,0.113922343,-1.97861338,0.880121708,0.0193881504,0.485808343 +-0.284637272,3.28394318,0.284637272,0.000215002772,0.161015451,0.09960749,-2.21840715,0.753479123,0.0193791352,0.403030097 +-0.276295871,3.28394318,0.276295841,0.000309056719,0.15853864,0.0973197967,-2.22927642,0.727262974,0.0193784051,0.391242981 +-0.260222465,3.28394318,0.260222465,0.000172894725,0.155462459,0.0938317925,-2.17875051,0.66996491,0.0193791706,0.368165433 +-0.359492779,3.28394318,0.359492809,0.000482472446,0.182184488,0.118111759,-1.86462462,0.901041687,0.0193921477,0.509220183 +-0.389714837,3.28394318,0.389714807,0.000498431327,0.189711109,0.123588815,-1.5906713,0.888450027,0.0193952043,0.551268637 +-0.505546272,3.28394318,0.505546272,0.000779901515,0.194714472,0.12033467,-0.599289298,0.66384232,0.0194382258,0.71511656 +-0.550752223,3.28394318,0.550752223,0.000927190995,0.190496176,0.112899669,-0.322594523,0.536856532,0.0194609482,0.779175401 +-0.501381695,3.28394318,0.501381695,2.08041292e-05,0.195047021,0.120986745,-0.626393199,0.675578475,0.0194353145,0.709334254 +-0.590710044,3.28394318,0.590710044,0.00114794075,0.186945841,0.10739778,-0.139132038,0.443170518,0.019468205,0.836030662 +-0.563149691,3.28394318,0.563149691,0.000379370293,0.189436078,0.111274227,-0.266238511,0.507491291,0.0194637105,0.796541095 +-0.618893862,3.28394318,0.618893862,0.000802096562,0.184461221,0.105311051,-0.0498738736,0.390556037,0.0194740854,0.875441194 +-0.636049569,3.28394318,0.636049509,9.38704907e-05,0.183083788,0.104138546,0.00581366895,0.3572914,0.0194793697,0.899999976 +0.0943354592,3.28394318,-0.0943354666,3.00823704e-05,0.169417754,0.103301093,-0.464430243,0.0151423514,0.0194091294,0.133670524 +0.0817384124,3.28394318,-0.0817384124,2.27032106e-05,0.192458659,0.123916827,-0.250438988,0.0327050164,0.0194116216,0.115816988 +0.0719854385,3.28394318,-0.0719854459,9.88249121e-06,0.286284864,0.217094406,-0.0892487839,0.0610323474,0.0194126088,0.101997539 +-0.0941302925,3.28394318,0.0941302925,2.8625429e-05,0.172384337,0.103521489,-0.460492969,0.0995394588,0.0194209609,0.133381516 +-0.0816404745,3.28394318,0.0816404745,2.23588431e-05,0.199623436,0.128218859,-0.221623123,0.0702524632,0.0194177888,0.11568734 +-0.0719759613,3.28394318,0.0719759613,9.83378141e-06,0.300431728,0.229969159,-0.0488666929,0.0592229627,0.0194145814,0.101994291 +0.613079131,3.28394318,-0.613079131,0.000904430461,0.185431644,0.103918195,-0.120316654,0.568294048,0.0193262547,0.867245555 +0.584322929,3.28394318,-0.584322929,0.00092396012,0.189188659,0.108792499,-0.218885601,0.659991205,0.0193219353,0.827078462 +0.63593173,3.28394318,-0.63593179,0.00143948826,0.182039097,0.0997724384,-0.0403965451,0.493536919,0.0193315856,0.899958909 +0.556108117,3.28394318,-0.556108117,0.000955860247,0.192226827,0.113394842,-0.371556044,0.730824113,0.0193143096,0.7866804 +0.436269522,3.28394318,-0.436269522,0.00125894591,0.187565625,0.118424393,-1.21449161,0.988815606,0.0193179026,0.61786741 +0.511912227,3.28394318,-0.511912227,0.000564242306,0.194468707,0.118724622,-0.639416516,0.836493611,0.0193108227,0.724184394 +0.534195006,3.28394318,-0.534195006,0.000161410426,0.194677323,0.116955824,-0.484633893,0.783694029,0.019311225,0.756100655 +0.460609853,3.28394318,-0.460609853,0.000358565652,0.191251516,0.120027788,-1.01790369,0.941041946,0.0193143245,0.651705265 +0.48488912,3.28394318,-0.48488909,0.000280153472,0.194584399,0.120864965,-0.816671431,0.894138336,0.0193137862,0.686527073 +0.408233762,3.28394318,-0.408233762,0.000333285949,0.180369049,0.113908142,-1.44863534,1.00602674,0.0193239078,0.577566683 +0.38837263,3.28394318,-0.38837263,0.000175933834,0.175717562,0.110935248,-1.60820174,1.01719654,0.0193292517,0.550032616 +0.373101294,3.28394318,-0.373101294,0.000479679846,0.171250537,0.107853137,-1.71454906,0.997958779,0.019332109,0.528024197 +0.341710538,3.28394318,-0.341710538,0.000725792197,0.162599683,0.101848803,-1.90990734,0.954099715,0.0193424132,0.484545022 +0.296198368,3.28394318,-0.296198368,0.000315516256,0.152928934,0.0941247493,-2.03525949,0.800197721,0.0193543211,0.418939948 +0.303284526,3.28394318,-0.303284526,1.30015305e-05,0.153786466,0.0951311067,-2.04008508,0.831145644,0.0193520188,0.429119557 +0.264197081,3.28394318,-0.264197081,0.000324582477,0.149040788,0.0895637572,-2.02039385,0.664687753,0.0193695761,0.374779463 +0.220498592,3.28394318,-0.220498592,0.00113488175,0.148477584,0.0870869309,-1.81495452,0.463660538,0.0194029361,0.313654125 +0.249515742,3.28394318,-0.249515742,0.000257212843,0.148746967,0.0887523219,-1.95525146,0.594326973,0.0193799362,0.353488982 +0.307361007,3.28394318,-0.307360977,0.000340099883,0.154715106,0.0958287418,-2.02508426,0.843365192,0.0193506517,0.434755355 +0.181394488,3.28394318,-0.181394488,0.00051647285,0.151656151,0.0874593705,-1.47907102,0.298479736,0.0194239654,0.25655362 +0.181009427,3.28394318,-0.181009427,8.38255119e-08,0.151676774,0.0874589831,-1.4758631,0.297041595,0.019424174,0.256028384 +0.12130744,3.28394318,-0.12130744,0.000152889828,0.160475656,0.092964299,-0.801749289,0.108509347,0.0194292273,0.171605423 +0.122756816,3.28394318,-0.122756816,9.24636197e-07,0.159451202,0.0922126472,-0.822170854,0.112436458,0.0194294937,0.173734277 +0.123808205,3.28394318,-0.123808213,5.19923997e-05,0.159317464,0.0921090394,-0.833531976,0.11520569,0.0194295645,0.17515552 +0.1489124,3.28394318,-0.1489124,0.000513052335,0.155065835,0.0890128762,-1.13355112,0.188013881,0.0194308404,0.212045878 +0.0986457244,3.28394318,-0.0986457169,0.000230011879,0.173939675,0.10301137,-0.515458703,0.0557943285,0.0194251072,0.140989542 +0.180540726,3.28394318,-0.18054074,0.000313102675,0.151736274,0.0874851272,-1.47040856,0.295316696,0.0194242839,0.255343437 +-0.12995629,3.28394318,0.129956305,3.61695384e-05,0.160635814,0.0946602076,-0.983094811,0.114860341,0.0194281861,0.1844621 +-0.120916024,3.28394318,0.120916024,0.000220847083,0.162093416,0.0963461101,-0.857296944,0.0963855684,0.0194293559,0.171204492 +-0.133698717,3.28394318,0.133698717,0.000417043309,0.160193712,0.0943009928,-1.02871013,0.122569583,0.0194271058,0.189596653 +-0.100130782,3.28394318,0.100130782,0.000143926562,0.165413484,0.0998080224,-0.589188337,0.0548303835,0.0194306709,0.142794371 +-0.170119151,3.28394318,0.170119166,0.0001180416,0.156526938,0.0920882449,-1.48465836,0.222098097,0.0194136184,0.240707859 +-0.163546115,3.28394318,0.163546115,0.000150153006,0.157150999,0.0924923196,-1.40075243,0.204043776,0.0194160696,0.231307194 +-0.171313807,3.28394318,0.171313807,0.000350820599,0.156476691,0.0920932516,-1.49735892,0.226305783,0.0194131006,0.242356554 +-0.204896957,3.28394318,0.204896957,0.000870166114,0.155955106,0.0928257406,-1.85150743,0.351039559,0.0193955321,0.290818751 +-0.222215906,3.28394318,0.222215921,0.000443092547,0.157057106,0.0943436325,-1.96305132,0.421225578,0.0193899069,0.314920574 +-0.366622567,3.28394318,0.366622537,0.000217579902,0.180444136,0.11325784,-1.73837698,0.823555171,0.0193750244,0.519355774 +-0.37811625,3.28394318,0.37811625,0.000361445942,0.182792485,0.114758514,-1.65850782,0.826296091,0.0193784554,0.535392821 +-0.312929899,3.28394318,0.312929899,0.000347273017,0.169505149,0.106651701,-2.05891967,0.752087235,0.0193744283,0.443153977 +-0.28340736,3.28394318,0.28340736,0.000274887105,0.163779855,0.101345658,-2.14319944,0.668096662,0.0193757769,0.401320398 +-0.326125413,3.28394318,0.326125413,0.000232551276,0.17209889,0.108659856,-2.00809669,0.782108843,0.019373307,0.462202102 +-0.430670023,3.28394318,0.430670023,0.000169268314,0.191357121,0.118830308,-1.25428474,0.777154088,0.0194004644,0.609274268 +-0.268181413,3.28394318,0.268181413,0.000590256415,0.161599174,0.099125661,-2.13016558,0.611834347,0.0193773638,0.379758447 +-0.246023357,3.28394318,0.246023372,0.000682282727,0.158752218,0.0962710306,-2.10545349,0.524305344,0.0193819329,0.349581778 +-0.434569001,3.28394318,0.434569001,1.69563391e-05,0.191967055,0.118998982,-1.22384286,0.77151072,0.0194024239,0.614917397 +-0.441659868,3.28394318,0.441659868,0.00050307723,0.19233124,0.118689381,-1.17707098,0.757347882,0.0194065999,0.624708116 +-0.615488768,3.28394318,0.615488708,0.000600613595,0.191060513,0.104658328,-0.283525765,0.471064776,0.0194693189,0.870662332 +-0.635960579,3.28394318,0.635960519,0.000225596479,0.190220907,0.10299319,-0.211289749,0.421339035,0.0194716789,0.899978578 +-0.524511099,3.28394318,0.524511099,0.000713978719,0.195085526,0.113576025,-0.667495608,0.601811826,0.0194512866,0.741985857 +-0.537281215,3.28394318,0.537281215,0.000223917974,0.195015505,0.112459771,-0.596663475,0.579693556,0.0194541477,0.760225356 +-0.552093267,3.28394318,0.552093208,0.00101914536,0.194081739,0.110710375,-0.534080744,0.564305007,0.0194563642,0.780926347 +-0.586097181,3.28394318,0.586097181,0.000395838288,0.192032471,0.106555209,-0.384432614,0.523172855,0.0194652379,0.82959199 +-0.488198727,3.28394318,0.488198727,0.000564286893,0.195244074,0.116708331,-0.85758996,0.657170773,0.0194401927,0.691295445 +0.0688543543,3.28394318,-0.0688543543,9.79383549e-05,0.314792275,0.225491107,0.0140165677,0.0444638431,0.0194398016,0.0984568745 +0.0816435739,3.28394318,-0.0816435814,0.000220481859,0.209085226,0.131456435,-0.210440964,0.0407306068,0.0194277652,0.116715081 +-0.0705413148,3.28394318,0.0705413148,6.56210614e-05,0.276828855,0.199574545,-0.0673979968,0.0659782216,0.0194289498,0.100654505 +-0.083265312,3.28394318,0.083265312,0.000145640501,0.186013758,0.117810883,-0.299122691,0.0424162857,0.0194288883,0.118778229 +-1.19127035,3.28402758,1.19127035,8.75169062e-05,0.648554444,0.534812272,0.723591745,0.284015268,0.0195478983,1.68477559 +-0.65345335,3.28429747,0.65345341,0.0019622785,0.189454108,0.101992674,-0.133009866,0.417175472,0.0194731075,0.924486279 +-1.22870493,3.28456855,1.22870493,0.000110878289,0.0775996745,0.0411263518,0.0762973279,-0.0235600192,0.0195399616,1.73773575 +-1.22290826,3.28461409,1.22290826,0.0002438089,0.0952545032,0.0458340347,0.163776547,0.0163010675,0.0195398647,1.72953761 +-1.21595073,3.28466892,1.21595085,0.000293335121,0.117222011,0.0589715354,0.259956598,0.0649453104,0.0195400137,1.71969759 +-0.892432928,3.28526735,0.892432928,0.000813717314,0.167175174,0.0842976645,0.546975672,0.206101134,0.0195166804,1.26255298 +1.21673107,3.28575993,-1.21673107,0.000419960677,0.125462011,0.063126348,0.207740441,0.0676491261,0.0195234306,1.72088099 +1.22866297,3.28604412,-1.22866297,0.000125713632,0.0725012422,0.0398774296,0.0326245911,-0.0207959991,0.0195287839,1.73775697 +1.22340035,3.2860918,-1.22340035,0.000282786845,0.093978405,0.0452623069,0.111546434,0.01301484,0.0195270479,1.73031354 +0.893692493,3.28614545,-0.893692493,0.00263986364,0.168101177,0.0835543573,0.490786254,0.124356292,0.0194620136,1.26505268 +-0.110589959,3.2866776,0.110589959,0.000260180765,0.161809012,0.0934451297,-0.723228276,0.164109871,0.0194218345,0.156541526 +-0.0942198932,3.2867527,0.0942198858,0.000240999681,0.171758145,0.103013553,-0.46756959,0.10002055,0.0194199067,0.133372515 +-0.0817283913,3.28680134,0.0817283913,0.000185560057,0.199246943,0.127857298,-0.227113664,0.0698859617,0.0194167551,0.115691952 +0.0720586851,3.28680754,-0.0720586851,8.32662263e-05,0.287043571,0.217561305,-0.0913307965,0.0586689524,0.0194096137,0.101997696 +0.0818306059,3.28680873,-0.0818306059,0.00019049368,0.192271337,0.12369518,-0.254659235,0.0303592943,0.0194085799,0.115829729 +-0.0720515475,3.28682661,0.0720515475,8.10881174e-05,0.302102178,0.231143355,-0.0510177612,0.056934692,0.0194136389,0.101994649 +0.0944401026,3.2868557,-0.0944401026,0.000247170363,0.169248194,0.103146322,-0.469579518,0.0133035434,0.0194058754,0.133680016 +0.110957354,3.28695941,-0.110957354,0.000272735255,0.161772758,0.0968861058,-0.697489738,0.0265276544,0.0194083247,0.157064602 +-0.886141896,3.28735709,0.886141896,0.00123231194,0.167678386,0.0845420733,0.538548052,0.208425313,0.0195143428,1.25378871 +0.452737778,3.28838658,-0.452737778,0.000202804295,0.191703051,0.120511316,-1.0313189,0.826693952,0.0193019211,0.640745103 +-1.08068371,3.28928161,1.08068371,0.000288077106,0.269156724,0.14851661,0.442471474,-0.237676382,0.0195214301,1.52843928 +-0.778839648,3.29058552,0.778839648,0.00418318948,0.180263519,0.0929242894,0.319008112,0.300313294,0.0194921531,1.10279536 +0.153719619,3.29096627,-0.153719619,0.000465288671,0.156749532,0.0940727741,-1.20138454,0.115143999,0.0194029491,0.217599541 +0.867918789,3.29115057,-0.867918849,0.00366231287,0.169084936,0.0842063203,0.465272784,0.146502048,0.0194446743,1.2283082 +-0.157636225,3.29182076,0.157636225,0.000216116256,0.151425079,0.0852030292,-1.35671711,0.324481964,0.0194119476,0.223296583 +-0.692245603,3.29302168,0.692245603,0.00423227018,0.188332587,0.100000441,0.0539820865,0.374738336,0.019473087,0.979768753 +-0.499435097,3.29302311,0.499435067,0.000843284884,0.196494907,0.122334979,-0.630519807,0.656553686,0.0194199681,0.70641309 +0.645070851,3.29319167,-0.64507091,0.00101643067,0.181021422,0.0984670594,-0.00623224489,0.462318808,0.0193264689,0.912911177 +-0.205794871,3.2942574,0.205794871,0.000399512384,0.148780942,0.0853176564,-1.90183091,0.473451495,0.0193899833,0.291457832 +-1.21411145,3.29432821,1.21411145,0.000287960516,0.128977239,0.0669545755,0.319742382,0.0733811259,0.019531941,1.71711981 +0.463831216,3.29522705,-0.463831246,0.0013072635,0.193245292,0.12050356,-0.919588625,0.774094224,0.0192894991,0.656189322 +-0.214958787,3.29589796,0.214958787,0.000264625618,0.149842218,0.0864961222,-1.98338342,0.494200915,0.0193839148,0.304414183 +-0.407940805,3.29604864,0.407940805,0.00127834233,0.19702062,0.128950909,-1.42402637,0.84831953,0.0193790328,0.577124178 +-0.230820388,3.29635572,0.230820373,0.000378988218,0.150421947,0.0878565237,-2.09422398,0.557382226,0.0193779171,0.326788366 +0.278137922,3.29640293,-0.278137922,0.000656193355,0.148507372,0.0977749825,-2.22618461,0.768733144,0.0193580426,0.393782258 +0.203421474,3.29657173,-0.203421459,0.000535333762,0.153505415,0.0948600248,-1.75942397,0.340041161,0.0193825942,0.287948549 +-0.1498864,3.29665899,0.1498864,0.000258141925,0.150725216,0.0846631527,-1.27510977,0.302240729,0.0194134861,0.21214664 +0.504516363,3.29719687,-0.504516363,0.000945832289,0.197936922,0.118312679,-0.591342986,0.617153823,0.0192822907,0.713772535 +-1.2286725,3.29833126,1.2286725,0.000102244645,0.0773120075,0.0414831452,0.119398855,-0.0215498023,0.0195279438,1.73772609 +-1.22353339,3.29836583,1.22353339,0.000224675547,0.0923053473,0.0445092581,0.20024766,0.00748781348,0.0195277277,1.73045754 +-1.21736598,3.29840732,1.21736598,0.000289099815,0.113704108,0.0574035682,0.292054772,0.0416325442,0.0195275731,1.721735 +-0.72068429,3.29900718,0.72068429,0.00342511642,0.185858369,0.09749984,0.153817803,0.338606536,0.0194746386,1.02027762 +-0.281863004,3.29905939,0.281863004,0.000596984231,0.161780506,0.0996866822,-2.27163291,0.701191366,0.0193650927,0.39891091 +0.453349203,3.29928017,-0.453349203,0.00110698375,0.192087859,0.122033201,-1.00807929,0.815301657,0.0192850661,0.641385019 +1.20892596,3.29942417,-1.20892596,0.000231922051,0.167248219,0.090320617,0.347892284,0.0890769511,0.019491598,1.7097671 +-0.247505292,3.29961538,0.247505307,0.000466510217,0.153188586,0.0906138495,-2.20612144,0.596349239,0.0193672329,0.350217849 +1.20497417,3.30020261,-1.20497417,0.000178390081,0.185413614,0.102110907,0.390377939,0.116524287,0.0194874797,1.70420265 +-0.351318717,3.30049396,0.351318717,0.000792510516,0.183933094,0.119003996,-1.96838498,0.847442448,0.0193684548,0.497409552 +-0.958331347,3.30133367,0.958331347,0.000910344417,0.160941735,0.0802234262,0.635734975,0.0952346474,0.0195097458,1.35530853 +0.941764832,3.30157566,-0.941764832,0.00291533256,0.169033542,0.0837794989,0.537703514,0.0474056005,0.0194757022,1.33291423 +-0.999689579,3.30171013,0.999689579,0.00129360519,0.156882167,0.0779101178,0.647849917,0.0386707634,0.019511899,1.41422844 +1.19995534,3.30192518,-1.19995534,0.000179589406,0.281510413,0.179998949,0.54926604,0.14955388,0.0194747318,1.69710159 +-0.956210852,3.30251837,0.956210911,0.000716378621,0.161159649,0.0803732947,0.635092139,0.0969481021,0.0195088442,1.352314 +-0.948479712,3.30269766,0.948479712,0.00147893419,0.161987439,0.080896832,0.625594854,0.107001863,0.0195082147,1.34136093 +-0.177869558,3.30277205,0.177869558,0.00042292662,0.147846371,0.0833515227,-1.65025187,0.388210922,0.0193978921,0.251905501 +0.230773121,3.3031106,-0.230773121,0.000405182247,0.15001291,0.0950419083,-2.0403409,0.515497983,0.019365279,0.326490045 +1.19574285,3.30327153,-1.19574285,7.73134088e-05,0.612112164,0.502532661,0.745619535,0.138392597,0.0194659457,1.69114351 +-0.486422479,3.30365944,0.486422479,0.000733004767,0.199889645,0.126180008,-0.732406735,0.660149097,0.0193938725,0.687951803 +-0.14070718,3.30370092,0.140707165,0.000197326386,0.150663346,0.0846840292,-1.18256676,0.266063213,0.0194125269,0.199556351 +-0.128061458,3.30386925,0.128061458,0.00025368252,0.152312636,0.0859801993,-1.01142681,0.234458551,0.0194157194,0.181286484 +-0.959071636,3.30399203,0.959071636,0.000412874855,0.160968944,0.0802358314,0.636982918,0.0906970352,0.0195079707,1.35635889 +0.757356763,3.30430841,-0.757356763,0.00556999212,0.171899214,0.0873239636,0.296346188,0.279588342,0.019372331,1.07195735 +0.256584585,3.30431128,-0.256584585,0.000601470878,0.148387313,0.09607701,-2.22305584,0.663162231,0.0193570796,0.363243043 +1.0304848,3.30470538,-1.03048491,0.00184255256,0.16576694,0.0828121603,0.509303689,-0.0489102229,0.0195114799,1.45739102 +-1.02856183,3.30485988,1.02856171,0.00116714963,0.154545754,0.0770272911,0.612112164,-0.00764336158,0.0195114389,1.45476508 +-0.957394898,3.30493283,0.957394898,4.50356083e-06,0.161143705,0.0803471059,0.637643099,0.0917918161,0.0195072461,1.35402966 +-0.957210064,3.30617929,0.957210004,5.13937539e-06,0.161206931,0.0803805888,0.638343275,0.0902829245,0.019506393,1.35376954 +-0.956287086,3.30639315,0.956287086,0.000700257544,0.161302358,0.080435507,0.637411118,0.0909392089,0.0195061881,1.35244668 +0.177259639,3.30641174,-0.177259624,0.000467921898,0.155997738,0.0950053483,-1.52130389,0.225849867,0.0193734113,0.250873744 +0.130471259,3.30700159,-0.130471259,0.000375137548,0.158872545,0.0948565602,-0.975099564,0.0519819334,0.0193838887,0.18474403 +-0.959800005,3.30701375,0.959800005,0.0010498754,0.160956681,0.0802428722,0.63977927,0.0858418345,0.0195059255,1.35737836 +0.314477623,3.30706215,-0.314477652,0.00109884294,0.152264476,0.101968877,-2.23647189,0.935281634,0.0193353463,0.445261598 +-0.636253834,3.30715752,0.636253834,0.000762675074,0.182917178,0.103591301,0.0253748801,0.308337599,0.0194611624,0.899999976 +-0.0934642702,3.30765629,0.0934642702,0.000436048809,0.167493939,0.0995745659,-0.518581808,0.102817342,0.0194109417,0.133302316 +-0.109472156,3.30766296,0.109472156,0.00037500076,0.157581285,0.0902073532,-0.777072489,0.166981161,0.0194139462,0.156137884 +-0.0715179071,3.30767393,0.0715179071,0.000147674276,0.313335866,0.238955855,-0.0660172403,0.0422687456,0.019404782,0.101999998 +-0.0811417028,3.30767536,0.0811417103,0.000337099045,0.196284279,0.12516059,-0.265945762,0.0671411753,0.0194077343,0.115725815 +0.109910175,3.30799389,-0.109910168,0.000390773697,0.160882294,0.0956968814,-0.739762366,0.0203130525,0.0193824191,0.15677771 +0.0937170088,3.30802965,-0.0937170088,0.000427131308,0.167733788,0.101774111,-0.508374333,0.000662644976,0.0193829797,0.133676723 +0.0715103745,3.30806255,-0.0715103745,0.000145842321,0.293388128,0.221525952,-0.107144594,0.0407731012,0.0193862859,0.101999998 +0.0812503546,3.30806327,-0.0812503546,0.000332383788,0.190953106,0.122015692,-0.286499321,0.0134252273,0.0193856973,0.115893036 +1.05637252,3.30904675,-1.05637252,0.00102105481,0.176282212,0.0927968696,0.506700993,-0.114730202,0.0195130557,1.49398673 +-0.258118838,3.30916524,0.258118838,0.000378224795,0.155317321,0.0926758498,-2.28052163,0.616950929,0.0193590857,0.365646005 +-1.05640197,3.30936742,1.05640209,0.00101570575,0.156846136,0.081572473,0.582126319,-0.0979490578,0.0195076652,1.49414825 +1.22874093,3.30938768,-1.22874093,7.53796267e-05,0.0731074661,0.040717531,0.0969156846,-0.0144579792,0.019492656,1.73780537 +1.22400713,3.30941486,-1.22400713,0.000166547907,0.0885037035,0.0423940495,0.168842614,0.00854423642,0.0194918029,1.73111045 +-0.957065642,3.30944443,0.957065642,0.00165363727,0.161330283,0.0804244652,0.639826655,0.0856990963,0.0195040442,1.35351563 +1.21832705,3.30944729,-1.21832705,0.000187450511,0.114672318,0.0570083186,0.252949983,0.0373627543,0.0194892809,1.72307706 +-0.554366887,3.30986738,0.554366887,0.000886611757,0.191386163,0.113278612,-0.275841177,0.464199901,0.0194343459,0.784083605 +-0.303575814,3.30992651,0.303575814,0.000952156843,0.168865144,0.105615847,-2.25425816,0.730944991,0.0193600506,0.430033803 +-0.63615942,3.31011558,0.63615942,0.000703463447,0.19250071,0.103710793,-0.177658975,0.35366559,0.0194515269,0.899906039 +0.518284261,3.31087112,-0.518284202,0.000660617021,0.197370321,0.116319641,-0.481626868,0.542352498,0.0192671306,0.733042002 +0.595979393,3.31092358,-0.595979393,0.0010694206,0.19062838,0.105567887,-0.100515217,0.343887955,0.019288091,0.843018949 +-0.14874509,3.31127286,0.14874509,0.000126011757,0.147874027,0.0828405768,-1.31783664,0.296696603,0.0194073021,0.211108074 +0.636183143,3.31128359,-0.636183143,0.000501619244,0.181398436,0.098973386,-0.0223509148,0.434541881,0.0193040352,0.899949551 +-0.143719986,3.31138372,0.143719986,0.000134290036,0.148475647,0.0831837207,-1.2506249,0.280894697,0.0194092803,0.203989699 +0.222801834,3.31179571,-0.222801834,0.000255746592,0.150135219,0.0942797884,-2.02769518,0.494167298,0.0193586331,0.315560281 +1.07534838,3.31186104,-1.07534838,0.000339974242,0.296122581,0.170262694,0.506819606,-0.199563175,0.0195069462,1.52082384 +-1.07513332,3.31233168,1.07513332,0.000331080635,0.258777499,0.146535173,0.556282699,-0.198791057,0.0195025671,1.52064025 +-0.121953666,3.31315899,0.121953666,0.000256381609,0.151996225,0.0860183984,-0.961164713,0.213476613,0.0194129627,0.172818482 +0.125283659,3.3134346,-0.125283659,0.000278729742,0.15974158,0.0952776074,-0.926001549,0.0411587879,0.0193761811,0.177481204 +-0.133299515,3.31365347,0.133299515,0.000217334658,0.149544165,0.0841167793,-1.11398792,0.2485753,0.019411372,0.188660413 +-0.158749282,3.31411505,0.158749282,0.000254646759,0.146788701,0.0823618919,-1.44953597,0.324167371,0.0193998385,0.22474739 +1.21121407,3.31442881,-1.21121407,0.000255538325,0.15338625,0.0815257132,0.35983336,0.0641985312,0.0194717404,1.7129705 +1.20609117,3.31449246,-1.20609117,0.000219156209,0.179307908,0.098841764,0.418461204,0.0770540759,0.0194666833,1.70578682 +0.129172772,3.31454706,-0.129172757,2.73599635e-05,0.159361854,0.094984971,-0.978982627,0.0522924699,0.0193748325,0.183227032 +1.20117068,3.31506729,-1.20117068,0.00018722887,0.277749598,0.1787588,0.576920033,0.0917482972,0.0194548629,1.69882751 +1.19707048,3.31554723,-1.19707048,8.05683521e-05,0.596444964,0.491708368,0.763785481,0.0575656965,0.0194473155,1.69302821 +-0.173009545,3.31573343,0.173009545,0.000558163796,0.145908609,0.0820137188,-1.63681543,0.363487005,0.019391574,0.24519518 +1.00942755,3.31575871,-1.00942755,0.000920366903,0.166614518,0.0829526335,0.538445055,-0.0374989733,0.019491924,1.42755508 +0.382145047,3.31657743,-0.382145017,0.000574529229,0.172137022,0.11551857,-1.67098475,0.989408374,0.0192886274,0.540463686 +0.636262655,3.31663942,-0.636262655,0.000747831655,0.186466604,0.102849469,0.0322067253,0.265451312,0.0193007533,0.900000036 +-0.18372193,3.31669807,0.18372193,0.000489935279,0.14603363,0.0824467838,-1.75812042,0.391450107,0.0193862896,0.260312676 +0.133974582,3.3169117,-0.133974597,0.000507237157,0.159212619,0.095032312,-1.0421313,0.0724348724,0.0193707626,0.189739585 +0.18209137,3.31715369,-0.18209137,0.000434679387,0.155515179,0.0948215276,-1.62058914,0.278364778,0.0193596669,0.257715851 +0.985839903,3.31738043,-0.985839963,0.00181167782,0.167463765,0.0830741897,0.556558907,-0.0152387386,0.0194807127,1.39424455 +0.414990008,3.31759882,-0.414990008,0.000833110767,0.181532681,0.119495422,-1.38368833,0.922248363,0.0192728173,0.586911678 +1.05643165,3.31774545,-1.05643165,0.000962836319,0.175031811,0.0919943824,0.508727908,-0.104977414,0.0195016898,1.49405074 +-0.891566157,3.31778407,0.891566157,0.00276152138,0.167915598,0.0842839777,0.558939695,0.146939933,0.0194932707,1.26096678 +0.169786811,3.31779385,-0.169786811,0.000458043738,0.157433212,0.0954586565,-1.47051167,0.21667853,0.0193604454,0.240410015 +-0.203506306,3.31793761,0.203506321,0.000581258268,0.146574318,0.0836228877,-1.97055435,0.440520287,0.0193741675,0.288601816 +-0.125354558,3.31804895,0.125354558,0.000397352298,0.149767309,0.0845834762,-1.02462482,0.222029597,0.0194112621,0.177656636 +0.176699057,3.31836653,-0.176699057,6.29029164e-05,0.156323165,0.0949821472,-1.56413662,0.253543556,0.0193590224,0.250343502 +1.07541251,3.31858945,-1.07541251,0.000328637514,0.285278797,0.163172141,0.498086214,-0.178069904,0.0194949936,1.52089441 +0.216828719,3.31902528,-0.216828719,0.000313967001,0.15089944,0.0941429734,-2.00242972,0.480863601,0.0193508528,0.306878924 +0.338803798,3.31915998,-0.338803798,0.000680560712,0.159496516,0.108300805,-2.08109236,0.979227006,0.019306086,0.479463607 +1.03060293,3.31929612,-1.03060293,0.001210936,0.165011495,0.082423307,0.518604517,-0.0535765849,0.0194958691,1.45753682 +0.227131963,3.31930876,-0.227131948,0.000163564051,0.149217486,0.093763262,-2.10834479,0.535597205,0.0193485022,0.321844935 +-0.244449943,3.3194921,0.244449943,0.000416018273,0.152622119,0.0899045393,-2.25447488,0.548407197,0.0193527341,0.34616068 +0.128483847,3.31956291,-0.128483847,0.000239844667,0.15970844,0.0953447446,-0.979928553,0.0540817417,0.019368818,0.181989253 +0.831106961,3.3201108,-0.831106901,0.0034427552,0.170902789,0.0854548588,0.437916934,0.159784585,0.0194024146,1.17763281 +0.236691803,3.32025933,-0.236691803,0.000512993371,0.148303449,0.0940679014,-2.1762259,0.590849161,0.0193440411,0.334923685 +0.150610119,3.32072306,-0.150610119,0.000374185678,0.158784047,0.0951645374,-1.26299262,0.142072946,0.0193645377,0.214635164 +-0.252629042,3.32093239,0.252629042,0.000421100965,0.154552877,0.0917205513,-2.30235147,0.567827761,0.0193496179,0.357829362 +-0.217150569,3.3213737,0.217150569,0.00078788423,0.148074359,0.0853132531,-2.09565401,0.470269442,0.0193644147,0.307908297 +0.991124928,3.32222652,-0.991124928,0.000273696438,0.167355642,0.0830333978,0.559646964,-0.0255777147,0.0194787793,1.40183699 +-1.01100075,3.32269144,1.01100087,0.000926855777,0.156278685,0.0778099522,0.650044918,-0.00155204162,0.0194977242,1.43000102 +-0.266805321,3.3227706,0.266805321,0.000509759702,0.159390211,0.09593568,-2.32124519,0.602425814,0.0193467177,0.377685368 +0.267886043,3.32331085,-0.267886043,0.000721514341,0.145932436,0.0951480195,-2.37130547,0.771813333,0.0193336476,0.379410744 +0.301482379,3.32385349,-0.30148235,0.00109216431,0.14900963,0.0997734368,-2.36209369,0.90779531,0.0193183664,0.426969409 +0.222965449,3.32387781,-0.222965449,0.000293991703,0.149410278,0.093607612,-2.0955193,0.528045118,0.0193450414,0.315816313 +0.995442867,3.32400107,-0.995442867,8.20899731e-05,0.167412028,0.0831809193,0.557073951,-0.0284378119,0.0194781981,1.40784323 +0.563480139,3.32465982,-0.563480139,0.000808595738,0.194045439,0.109369688,-0.219954327,0.382126331,0.0192611478,0.796989441 +0.255596638,3.32470846,-0.255596638,0.000554408645,0.146354616,0.0945365131,-2.33884883,0.710841954,0.0193343461,0.362373292 +-0.32696566,3.32481384,0.32696566,0.000974897819,0.181952387,0.116621397,-2.18359637,0.736735106,0.0193392243,0.462814718 +-0.371744156,3.32494307,0.371744156,0.000866463466,0.197444111,0.129397705,-1.81689274,0.791318536,0.0193345081,0.525805354 +-0.683386445,3.32616973,0.683386445,0.00144900754,0.190778852,0.100792766,0.0376279317,0.289314389,0.0194481406,0.967688978 +-0.597452343,3.32709956,0.597452402,0.00107663008,0.186812773,0.106651522,-0.0730473474,0.329318672,0.0194295775,0.845066607 +-0.285996526,3.32815194,0.285996526,0.000675382442,0.165963471,0.10201925,-2.35798264,0.639702857,0.0193388574,0.405496061 +0.992404938,3.32815313,-0.992404938,6.09425297e-05,0.166946396,0.0827848613,0.560273111,-0.028881494,0.0194738731,1.40357292 +0.351860672,3.32823658,-0.351860672,0.000745665224,0.163556129,0.11136061,-2.03651857,1.00785136,0.0192883313,0.498367727 +0.173958465,3.32827234,-0.173958465,0.00031915016,0.157713488,0.0959956571,-1.56545925,0.269067347,0.019348219,0.246184871 +0.110883035,3.32858562,-0.110883035,0.000251768157,0.159925088,0.0960279033,-0.782534122,0.00592212239,0.0193572883,0.156999573 +0.0945290476,3.32889891,-0.0945290551,0.000248624681,0.166042536,0.101613849,-0.545189798,-0.0180731416,0.0193580985,0.133831009 +0.0819189399,3.32906437,-0.0819189474,0.000192735912,0.18813549,0.120486364,-0.317791164,-0.00324843079,0.019362485,0.115972742 +0.0720494539,3.32907438,-0.0720494539,8.45722097e-05,0.287952781,0.216694444,-0.132928222,0.0308837052,0.0193648301,0.101999998 +-0.657713056,3.32968473,0.657713056,0.00141165277,0.193139538,0.10299924,-0.0545786396,0.289239317,0.0194408186,0.930654287 +0.533105254,3.32973146,-0.533105314,0.000759275514,0.196402252,0.114688233,-0.356915176,0.459377646,0.0192449093,0.754258275 +0.394870788,3.33005238,-0.394870788,0.000701529672,0.176306114,0.118325382,-1.56482947,0.973825276,0.0192624684,0.558592021 +-0.0720933452,3.3301332,0.0720933452,8.18684057e-05,0.316042572,0.239811748,-0.107207894,0.0405284539,0.0193983745,0.101999998 +-0.0818199143,3.33013535,0.0818199143,0.000186575387,0.191204965,0.121642277,-0.319308668,0.0735689104,0.0194005165,0.115761556 +-0.0942542553,3.33013606,0.0942542553,0.000240406662,0.161668554,0.096303694,-0.579651058,0.113404885,0.0194038413,0.133353174 +0.200321823,3.33015037,-0.200321823,0.000780173403,0.15291658,0.0948747545,-1.90077996,0.424077302,0.0193424951,0.28403011 +-0.110379651,3.33015347,0.110379651,0.000217551002,0.151420563,0.0869938284,-0.850105464,0.175398096,0.0194086526,0.156164944 +-0.99773407,3.33023691,0.99773407,0.000838509412,0.157810956,0.078456156,0.664985836,0.00590967806,0.019491734,1.41183496 +1.21875906,3.33062506,-1.21875906,0.000304838264,0.106094331,0.0520831533,0.289175451,0.0072570811,0.0194611922,1.72373569 +1.22420228,3.3306489,-1.22420228,0.000183998549,0.0846610069,0.0401723795,0.211663872,0.000538266846,0.0194627661,1.73143458 +1.22873831,3.33066845,-1.22873831,8.37510452e-05,0.0751286,0.0420799181,0.143715799,-0.0114252511,0.0194630027,1.73785019 +-0.111020081,3.33136249,0.111020073,9.19540253e-05,0.150930882,0.086687088,-0.862954855,0.176931843,0.0194082446,0.157074422 +-0.110326312,3.33146667,0.110326312,1.5059014e-05,0.151121095,0.0868619382,-0.853975236,0.174759433,0.0194081813,0.15616335 +-0.0942087099,3.33151841,0.0942087099,2.67974629e-05,0.161339238,0.0961319283,-0.583266258,0.113100134,0.0194032919,0.133354634 +-0.0720571652,3.33153939,0.0720571652,9.33445426e-06,0.315992028,0.239679247,-0.110157281,0.0404400676,0.0193978678,0.102000006 +-0.0817798972,3.33154392,0.0817798972,2.12306859e-05,0.190864831,0.121406764,-0.322801858,0.0734393001,0.0193999652,0.115763083 +-0.146245122,3.33156967,0.146245137,0.00024729615,0.143714741,0.0808998048,-1.35578656,0.279251367,0.0194008388,0.206898943 +-1.19651282,3.33197713,1.19651282,7.51375119e-05,0.546059847,0.447820961,0.767744362,-0.0661258921,0.0194890108,1.69212592 +0.312911391,3.33223438,-0.312911391,0.00113333564,0.150091827,0.102024585,-2.37256956,0.962313533,0.019303577,0.443699479 +0.110758089,3.33234382,-0.110758089,4.80764575e-05,0.159821987,0.0960446149,-0.79115963,0.00821538735,0.0193533618,0.157041669 +0.0944269598,3.33235264,-0.0944269598,7.34346104e-05,0.16583842,0.101576358,-0.551447153,-0.0180663709,0.0193545427,0.133856505 +0.0719626397,3.33236718,-0.0719626397,2.36161031e-05,0.287366509,0.216153458,-0.136146054,0.0295854565,0.0193618815,0.102000006 +0.0818284526,3.33237314,-0.0818284526,5.42948001e-05,0.187796563,0.120291628,-0.322302163,-0.00424187258,0.0193592664,0.11598511 +-1.20032406,3.33237743,1.20032394,0.000174422355,0.272177428,0.174449682,0.631879747,0.000634232536,0.0194908902,1.69751549 +0.112918302,3.33268023,-0.112918302,0.000198659938,0.159904182,0.0960740149,-0.817288995,0.0142467692,0.0193523634,0.159865737 +-0.110381767,3.33269,0.110381767,0.000193171698,0.15089646,0.0867782086,-0.858009994,0.173659205,0.0194077585,0.156173766 +-0.0942563415,3.33280396,0.0942563489,0.000241601912,0.161063552,0.0960008129,-0.586986065,0.112535104,0.0194029398,0.133361325 +-0.0720904768,3.33284736,0.0720904693,8.23332666e-05,0.315749943,0.239410132,-0.112901948,0.0406860858,0.0193974879,0.102000006 +-0.0818199739,3.33285332,0.0818199739,0.000187548692,0.19056955,0.12121097,-0.32622841,0.0733098611,0.0193995703,0.115766227 +-1.2048974,3.33285761,1.20489752,0.000175636349,0.161662251,0.0889894739,0.493104398,0.0108515397,0.0194922518,1.70398355 +-0.377516299,3.33317423,0.37751627,0.000329116039,0.201355889,0.132289231,-1.77547956,0.769559443,0.019323241,0.534160256 +0.572719157,3.33331156,-0.572719157,0.000460234529,0.192554787,0.107812673,-0.162750259,0.344918013,0.0192532539,0.810219049 +-0.449525535,3.33398533,0.449525535,0.00154449267,0.208381578,0.135972366,-1.00372088,0.673652053,0.0193243735,0.636069536 +0.983446181,3.33411336,-0.983446181,0.00129227457,0.168158174,0.0833784193,0.567368507,-0.0292056575,0.0194653701,1.39082766 +-0.524562716,3.33438349,0.524562716,0.00148197426,0.197813064,0.120964386,-0.406003088,0.470062464,0.0193874817,0.742474258 +0.393604606,3.33465171,-0.393604606,0.000100930287,0.176150382,0.118553311,-1.57874572,0.97352165,0.0192567967,0.55693996 +-1.07568502,3.33481121,1.07568514,0.000494837994,0.234950364,0.130902842,0.536932707,-0.113369003,0.0194886774,1.52146232 +0.383074999,3.33483052,-0.383074999,0.000615978031,0.172604129,0.116700679,-1.70157325,0.985356688,0.019261701,0.541798472 +0.902408123,3.33492661,-0.902408123,0.00181834516,0.171435624,0.0851017609,0.529502094,0.051889997,0.0194283295,1.27640474 +0.26146096,3.3351841,-0.26146096,0.00052671181,0.144361645,0.0945186168,-2.42852163,0.766174316,0.0193234552,0.370813578 +-0.149534777,3.33527112,0.149534777,0.000197636211,0.142833561,0.0805039182,-1.4114157,0.286481112,0.0193978325,0.2116303 +0.154669106,3.33531904,-0.154669091,0.000556660467,0.160860091,0.097589016,-1.34950805,0.179887265,0.0193430539,0.219745666 +1.00063312,3.33576369,-1.000633,0.000879877887,0.164970458,0.0817026645,0.54552716,-0.0303284228,0.0194687434,1.41514373 +0.0720518678,3.3358345,-0.0720518678,8.55820836e-05,0.286408275,0.215431109,-0.137911275,0.0291624069,0.0193585381,0.102000006 +0.0819463059,3.33585572,-0.0819463059,0.000195144938,0.187432721,0.120144837,-0.325978875,-0.00440311665,0.0193556938,0.116007358 +0.0945906341,3.33601141,-0.0945906341,0.000253032835,0.165809646,0.101687029,-0.557057202,-0.0170467775,0.0193504468,0.133912653 +-1.20602036,3.33613038,1.20602036,0.000255030318,0.157740265,0.0865011141,0.492856473,-0.00621196907,0.0194888264,1.70557213 +0.110997848,3.3363955,-0.110997848,0.000257900509,0.1603297,0.0965074226,-0.799111366,0.0126486383,0.0193486307,0.157153696 +-1.19707584,3.33655906,1.19707596,6.92506455e-06,0.537309766,0.440927267,0.774300694,-0.0998698547,0.0194833875,1.69292974 +0.399328262,3.33677578,-0.399328262,0.000794614898,0.177780762,0.119440794,-1.5132978,0.953467906,0.0192507822,0.564837813 +-0.375635892,3.33691478,0.375635892,0.000222155388,0.201973528,0.13272804,-1.7973417,0.759461641,0.0193182919,0.531509638 +-0.566214859,3.33695483,0.566214859,0.000987885636,0.191524044,0.112457588,-0.188909546,0.369898111,0.0194070935,0.801192522 +-1.19703877,3.33717561,1.19703877,2.69565226e-06,0.53543216,0.438903898,0.772561848,-0.103779808,0.019482743,1.69287813 +-1.20082474,3.33729839,1.20082486,1.61501921e-05,0.272313178,0.174833924,0.643570662,-0.0250438191,0.0194853544,1.69823158 +-0.143671155,3.33752823,0.14367114,0.000197457499,0.142798737,0.0805962682,-1.34422755,0.268376887,0.0193988681,0.203389823 +-0.381695181,3.33756399,0.381695211,0.000741477823,0.203131631,0.133611456,-1.73293865,0.753884077,0.019316975,0.539925396 +-0.177030742,3.33766603,0.177030742,0.000473650056,0.143023998,0.0813645124,-1.75775933,0.337113619,0.0193739664,0.250570625 +-1.20079148,3.33795619,1.20079148,6.41695988e-06,0.272116423,0.174601719,0.643528223,-0.0282782316,0.0194847155,1.69818521 +-1.20532382,3.33818531,1.20532382,1.05868194e-05,0.160586402,0.0884464532,0.504842281,-0.00788096897,0.0194867291,1.70459414 +-1.19652319,3.33841538,1.19652319,8.47497286e-05,0.52775526,0.430712372,0.758305848,-0.107311971,0.0194819663,1.69214296 +-1.20548558,3.33854699,1.20548546,2.2503742e-05,0.159721106,0.0878649577,0.503625274,-0.00938674714,0.0194863919,1.7048229 +-1.20529509,3.33889246,1.20529509,2.09496211e-05,0.160339788,0.088263534,0.50519526,-0.0103351315,0.0194860827,1.70455432 +-1.05656874,3.338943,1.05656874,0.00155780511,0.156744987,0.0811090916,0.597548246,-0.05926653,0.0194874741,1.49442446 +0.522841096,3.33915806,-0.522841096,0.000582758337,0.196026236,0.115914039,-0.405571699,0.477328718,0.0192316771,0.739832938 +-0.115188479,3.33930445,0.115188479,0.00013904208,0.148205817,0.0851666033,-0.950450659,0.181084335,0.0194054712,0.162909657 +-1.20030832,3.33937049,1.20030832,0.000199608941,0.270350248,0.172871456,0.633611917,-0.0324075297,0.0194837209,1.69749618 +-0.364255667,3.33942366,0.364255667,0.000704764272,0.198512018,0.129866809,-1.90379953,0.738376439,0.0193173531,0.515207112 +0.534259558,3.3395474,-0.534259558,0.000195904926,0.195911795,0.114302948,-0.336392969,0.436739147,0.0192335062,0.756048918 +0.349906802,3.33960485,-0.349906802,0.000979467528,0.161864117,0.111454777,-2.07944202,1.01726413,0.0192738734,0.495573491 +0.343182951,3.33965158,-0.343182951,0.000716759358,0.159593761,0.109774604,-2.14210653,1.00821137,0.0192770623,0.486072212 +-0.147990465,3.33979464,0.147990465,4.43571262e-05,0.142077386,0.0802605152,-1.40839756,0.275431991,0.0193961021,0.209506467 +-0.231582105,3.33981109,0.231582105,0.000434332789,0.149742335,0.0879312679,-2.25873947,0.463397503,0.0193393994,0.328039229 +-0.145746857,3.34018779,0.145746857,6.01805077e-05,0.142078474,0.0802788958,-1.38134408,0.269706994,0.0193970744,0.206363574 +0.922967792,3.34029102,-0.922967792,0.001819061,0.171749398,0.0851558968,0.548756778,0.0205503888,0.0194351543,1.30545354 +-1.20485091,3.34051657,1.20485091,0.000324108289,0.159944043,0.0878414884,0.498703033,-0.0144128818,0.019484872,1.70392036 +0.490669936,3.34053993,-0.490669906,0.00166046107,0.195727736,0.120591067,-0.606189728,0.595626116,0.019224396,0.695386291 +-1.21788371,3.34069204,1.21788359,0.000256655767,0.10332863,0.0503110588,0.333091378,-0.0353404507,0.019488629,1.7223537 +0.529442728,3.34069896,-0.529442728,0.000248428725,0.196153104,0.115102142,-0.358797044,0.449246585,0.0192302428,0.749188483 +-1.2238363,3.3407464,1.2238363,0.000198732858,0.0882016793,0.0415043756,0.241584882,-0.012819171,0.019488629,1.73077214 +0.553538918,3.34078455,-0.553538918,0.000634963741,0.194083974,0.110926516,-0.244867891,0.381227672,0.0192380995,0.782881677 +-1.22879636,3.3407917,1.22879636,9.0429894e-05,0.0830140635,0.0446818806,0.169487268,-0.016627036,0.0194887426,1.73778701 +0.569380283,3.34111547,-0.569380283,0.000486511417,0.192621067,0.107970953,-0.167824909,0.335607678,0.0192441884,0.805511415 +0.279340327,3.34123516,-0.279340327,0.000769461738,0.145332932,0.0958211645,-2.49965525,0.824798763,0.0193116274,0.39623791 +0.230600715,3.34124827,-0.2306007,0.000437282317,0.146765172,0.092759043,-2.26283455,0.596638501,0.0193275679,0.326263309 +-0.757879794,3.34156656,0.757879794,0.00422963081,0.183571175,0.0940698311,0.291552216,0.201020584,0.0194518194,1.07362759 +0.58008492,3.34162521,-0.58008492,0.000710641383,0.191293031,0.106454454,-0.129081234,0.313216478,0.0192487054,0.820456862 +0.672066987,3.34192371,-0.672066987,0.0020653184,0.178351983,0.0941149816,0.105851702,0.322607547,0.0192893948,0.951209009 +0.788716793,3.34244633,-0.788716793,0.0028701087,0.172983199,0.0872117057,0.367459953,0.173068702,0.0193588119,1.11651707 +-0.262973368,3.34249544,0.262973368,0.000300074462,0.158832282,0.096071139,-2.38560534,0.527298689,0.0193274859,0.372004062 +0.391683817,3.34249663,-0.391683847,0.00075079652,0.176621795,0.120050304,-1.60827196,0.965238452,0.0192454662,0.55399853 +-0.333077013,3.34254217,0.333077013,0.00119737291,0.18827419,0.121367358,-2.18915057,0.697235346,0.0193181075,0.471538216 +-0.155214131,3.34275818,0.155214146,0.00033050988,0.141929299,0.0804274306,-1.50572741,0.285995811,0.0193883292,0.219570041 +-0.208500475,3.34290147,0.208500504,0.000480791787,0.145660073,0.0843695924,-2.0913794,0.396692872,0.0193500686,0.295265138 +-1.02802682,3.34311938,1.02802682,0.00217413018,0.153156057,0.0761950538,0.636369705,-0.0213337243,0.0194838494,1.45404506 +-0.187053978,3.34313154,0.187053978,0.000378934928,0.142658547,0.0817769691,-1.8815521,0.353437543,0.019364113,0.264863133 +-0.599011123,3.3432889,0.599011123,0.000203448595,0.186913237,0.106490441,-0.0508748144,0.288914651,0.0194152407,0.847486079 +-0.239330143,3.34331632,0.239330113,0.000477145048,0.151586294,0.089723222,-2.31163692,0.476632535,0.0193347167,0.339115351 +0.602333188,3.34358239,-0.602333188,0.000587765127,0.18840079,0.103236362,-0.0459708199,0.263657033,0.0192605909,0.852413356 +-0.378390759,3.34385467,0.378390729,0.000706076273,0.204470694,0.13499485,-1.7706176,0.734389544,0.0193083193,0.535254002 +-0.296994984,3.34408092,0.296994984,0.000795298256,0.172679365,0.107942559,-2.37925935,0.61407733,0.0193207618,0.420538306 +0.69734627,3.34517145,-0.69734627,0.00308167981,0.176924244,0.0922533423,0.16750823,0.282280207,0.0193019845,0.986617923 +-0.126768708,3.34533024,0.126768693,0.000249544799,0.143875524,0.0822059512,-1.13856268,0.204786822,0.0194027256,0.179324105 +0.62022084,3.34600401,-0.62022084,0.0013464794,0.186724544,0.101929083,0.00516281277,0.229228854,0.0192686208,0.87732172 +0.206178188,3.34606409,-0.206178173,0.000584661379,0.150567472,0.0940631926,-2.05903292,0.501828671,0.0193257518,0.293115169 +-0.610749841,3.34676766,0.610749841,0.00126076979,0.185641751,0.105307221,-0.0135761276,0.262066185,0.0194180906,0.863877058 +0.635985494,3.34761906,-0.635985553,0.000223243551,0.185189545,0.100732267,0.0519954413,0.19907102,0.0192774013,0.899999976 +-0.44060564,3.34777236,0.44060564,0.000998486648,0.211137474,0.138495743,-1.08801818,0.650588393,0.0193010475,0.62341094 +-0.635899544,3.34787798,0.635899544,0.000507479941,0.182633549,0.10261526,0.0602008365,0.219050735,0.0194282047,0.900000036 +-0.480235726,3.34801722,0.480235726,0.0012091262,0.206345588,0.131708786,-0.707467556,0.55400753,0.0193271078,0.680140615 +0.654580951,3.34821844,-0.654580951,0.00115499285,0.179524481,0.0959394723,0.0563013665,0.33128038,0.0192749929,0.926010907 +0.572481692,3.34879112,-0.572481632,0.000771246094,0.191851974,0.107445985,-0.146965295,0.311421186,0.0192379206,0.809839487 +-1.21800661,3.34948277,1.21800661,6.16304169e-05,0.101191349,0.0489075705,0.34332782,-0.0506048054,0.0194804911,1.72255182 +-1.22388756,3.3495245,1.22388744,4.30549007e-05,0.0872589499,0.0408586226,0.252214551,-0.0169200674,0.0194805227,1.73086858 +-1.22878814,3.34955907,1.22878814,1.95499269e-05,0.0840834826,0.0453104079,0.181946471,-0.0154773537,0.0194806494,1.73779941 +-0.318981439,3.34961987,0.318981409,0.000812490704,0.183328316,0.117117047,-2.28965688,0.644931674,0.0193111412,0.451412439 +0.13476181,3.34974337,-0.13476181,0.00037007971,0.163415611,0.0989183635,-1.12769222,0.104587927,0.0193301551,0.190900117 +-0.583616018,3.34978247,0.583616018,0.000804685988,0.189257085,0.109447047,-0.107751347,0.304781795,0.0194020309,0.825457573 +-0.269023329,3.34985995,0.269023329,0.000244466413,0.161110133,0.0983410403,-2.41672587,0.520604491,0.0193193387,0.380736381 +-0.135893017,3.34998751,0.135893017,0.000230635414,0.141452193,0.0806153193,-1.28029752,0.231950343,0.0193980336,0.192205459 +-0.505042434,3.34998775,0.505042434,0.0014499221,0.202029154,0.126242653,-0.5221228,0.483637631,0.0193474777,0.714626908 +0.181360424,3.35023308,-0.181360424,0.000480036688,0.157683134,0.0972597152,-1.74812841,0.383169711,0.0193224046,0.257074356 +-0.635705471,3.35023999,0.635705471,0.000499149377,0.195912227,0.104772508,-0.123784393,0.240115225,0.0194207653,0.89979744 +-1.2174077,3.35066962,1.21740758,3.0885516e-05,0.10308364,0.049981311,0.348094761,-0.0538963489,0.0194794405,1.72170746 +-0.454167813,3.35123968,0.454167813,0.000937006902,0.210918099,0.13766335,-0.945343435,0.610839605,0.0192998443,0.642712772 +0.166034758,3.35126925,-0.166034758,0.000690658926,0.160615206,0.0981336534,-1.55755115,0.287873656,0.0193237532,0.235419482 +0.635792494,3.35146117,-0.635792494,0.00038175215,0.181242153,0.0984799489,0.00442880206,0.344256997,0.0192649309,0.8999331 +-0.148748651,3.35174656,0.148748651,0.000260058616,0.140372187,0.080006361,-1.46041632,0.254061162,0.0193861015,0.210404992 +-1.21781147,3.35196495,1.21781147,0.000201444185,0.100869678,0.0486205965,0.339740366,-0.054405991,0.0194785725,1.72227037 +0.12855795,3.35199404,-0.12855795,0.000265039795,0.163879991,0.0991872251,-1.05569255,0.0831893086,0.0193288755,0.182142094 +-1.22380233,3.35200238,1.22380233,0.000241007976,0.0872409344,0.0407707393,0.248111993,-0.0182572864,0.0194785707,1.73074281 +-1.22879398,3.35203385,1.22879398,0.000109653709,0.0843765512,0.0453820489,0.177401349,-0.0158102382,0.0194786787,1.73780215 +1.20801497,3.35272551,-1.20801497,0.000233758634,0.141813219,0.0726796314,0.35409981,-0.0386781916,0.0194385182,1.70843875 +-0.557791233,3.35273337,0.557791233,0.000619428698,0.192967534,0.114033625,-0.206840381,0.348552287,0.0193899889,0.789381623 +-0.219923645,3.35298347,0.219923645,0.000374532567,0.147176236,0.0863327533,-2.20752263,0.402013361,0.0193343293,0.311279505 +0.46370092,3.35302925,-0.46370092,0.00149688544,0.193232834,0.124461494,-0.828406751,0.696131945,0.0192091912,0.656683385 +-0.25765416,3.3530736,0.25765416,0.000296953222,0.157727957,0.0953749791,-2.39309216,0.486175358,0.0193201192,0.364503086 +-0.178642333,3.35392284,0.178642333,0.000348176603,0.140996307,0.080797106,-1.83734512,0.317758411,0.0193615723,0.253166735 +-0.539840996,3.3543148,0.539840996,0.00132406747,0.196395934,0.118528582,-0.304452866,0.386146188,0.0193751976,0.763648748 +-0.275800616,3.35442495,0.275800616,0.000325910805,0.16462341,0.10134647,-2.41944933,0.522808313,0.0193135701,0.390180826 +0.51778841,3.35445929,-0.51778841,0.000989563181,0.196332902,0.118657172,-0.405451357,0.470777541,0.0192077253,0.732480228 +-1.2152971,3.35521388,1.21529698,0.000441802491,0.105054654,0.0507877693,0.336156666,-0.0645141155,0.019475922,1.71870255 +-0.517019391,3.35529804,0.517019391,0.00042946302,0.200482905,0.123813458,-0.427202165,0.435906738,0.0193540659,0.732059121 +-0.827021778,3.3553822,0.827021778,0.0031526708,0.175941914,0.0886341631,0.457368165,0.12206623,0.0194566697,1.16969836 +-0.109570637,3.35543966,0.109570637,0.000444311823,0.146886602,0.0853026584,-0.93110317,0.158104151,0.0193989892,0.156297445 +-0.0935551375,3.35548162,0.0935551375,0.000463010394,0.156514168,0.0938650519,-0.649839044,0.105468124,0.0193947293,0.133447111 +-0.0715098977,3.35550261,0.0715098977,0.000157664486,0.311881065,0.235027179,-0.158791348,0.0448276252,0.0193884932,0.101999998 +-0.0811903775,3.35550785,0.08119037,0.000359044207,0.185605705,0.117895536,-0.383314431,0.0722778738,0.0193905104,0.115808025 +-0.201149508,3.35587645,0.201149508,0.000271113793,0.144046783,0.0835128352,-2.06536293,0.359314382,0.0193451829,0.285119057 +-0.207934231,3.3560276,0.207934231,0.000121544908,0.144796312,0.0842739269,-2.13342738,0.369824946,0.0193392001,0.294931054 +1.19265485,3.35612583,-1.19265485,8.71211232e-05,0.437403023,0.318127513,0.497751892,-0.136252135,0.0194153562,1.68676805 +0.143130109,3.35642099,-0.143130109,0.000350418879,0.162980974,0.0990563631,-1.26381898,0.170481443,0.0193215292,0.202606946 +-0.173218623,3.35647869,0.173218623,0.000401066907,0.140370548,0.0804494247,-1.78311992,0.303551853,0.0193648878,0.245476335 +-0.127110302,3.35682631,0.127110302,7.8437748e-05,0.141374111,0.0811228603,-1.18549895,0.199084371,0.0193989351,0.179957449 +0.0714792013,3.35685492,-0.0714792013,0.000133970781,0.280992538,0.211469442,-0.149564952,0.026642058,0.019338008,0.101999998 +0.0813316703,3.3568635,-0.0813316703,0.000305083726,0.18549946,0.119426139,-0.349269271,-0.00643463898,0.0193346031,0.116057351 +0.0939409882,3.3569572,-0.0939409882,0.000393115537,0.165263802,0.102054425,-0.591072679,-0.014149907,0.0193286184,0.134052321 +-0.265605152,3.35717487,0.265605122,0.000116250609,0.160446286,0.0978388935,-2.43289042,0.488614082,0.0193124637,0.375968158 +0.110312559,3.35730314,-0.110312566,0.000354473799,0.16180554,0.0980898291,-0.841281533,0.0282899514,0.0193261858,0.157422125 +1.08003545,3.35762405,-1.08003545,0.000470167113,0.208145946,0.11079599,0.318899721,-0.0687503591,0.019436663,1.5275799 +0.12500304,3.35796642,-0.125003025,0.000304303714,0.164531812,0.0998710915,-1.02039433,0.0792099833,0.0193229467,0.17711845 +-0.416183352,3.35812449,0.416183352,0.00137676205,0.214975446,0.143124297,-1.35097456,0.66069591,0.0192782208,0.58902812 +-0.1250754,3.3585155,0.1250754,0.000208045996,0.141622931,0.0814461634,-1.16142416,0.192997679,0.0193986185,0.177060723 +-0.600337148,3.35859013,0.600337148,0.000982532394,0.186786622,0.106355339,-0.0326312073,0.251817077,0.0194013286,0.84924984 +1.19721949,3.35864162,-1.19721949,0.000202546289,0.250087798,0.149923638,0.489259243,-0.0724940971,0.0194190741,1.69322383 +-0.212592334,3.35953426,0.212592334,0.000229268044,0.145717353,0.0852910355,-2.17496347,0.365372181,0.0193313472,0.301359296 +-0.301243097,3.35964656,0.301243126,0.000491730403,0.176530823,0.111588232,-2.40695429,0.556406021,0.0193041265,0.427043736 +-0.235903874,3.35970926,0.235903889,0.000355094759,0.150658429,0.0898916945,-2.32999873,0.398929805,0.019320162,0.334279239 +-0.128405184,3.3597455,0.128405169,0.000306392787,0.140563875,0.0807184353,-1.21526241,0.200410724,0.0193973184,0.181753457 +0.131925255,3.36005926,-0.131925255,0.00031438857,0.164139748,0.0995395184,-1.12640548,0.119868204,0.0193197411,0.187077463 +1.21715152,3.36008644,-1.21715152,0.000223327355,0.101318941,0.0483890884,0.284713864,-0.0346557945,0.0194402579,1.72145772 +1.22345972,3.36016226,-1.22345972,0.000185467827,0.0844295695,0.0391527601,0.206718296,-0.0132978624,0.0194415078,1.73037958 +-0.269909233,3.36018991,0.269909233,0.000314360368,0.162487552,0.0997245535,-2.44310546,0.484094262,0.0193078779,0.381893277 +1.22871602,3.36022568,-1.22871602,8.44009191e-05,0.0810877904,0.044721026,0.138280421,-0.0128681269,0.0194415953,1.73781371 +0.304547548,3.36070395,-0.304547518,0.00123443967,0.149199367,0.101500988,-2.54053879,0.902847767,0.0192741137,0.431189924 +-0.329605401,3.36079955,0.329605401,0.000695155759,0.190995917,0.124030121,-2.25047064,0.618371606,0.0192959346,0.466485858 +1.20269632,3.3616581,-1.20269632,0.000229362893,0.162291318,0.085672386,0.405153394,-0.0510351397,0.0194262993,1.70097029 +-0.126667038,3.36196566,0.126667023,0.000181575233,0.140372306,0.0807835609,-1.19926631,0.19310686,0.0193969086,0.179290652 +-0.830088735,3.3623054,0.830088735,0.000776154688,0.175763726,0.0883760899,0.46644491,0.104134999,0.0194525663,1.17415512 +0.43726024,3.3626039,-0.43726024,0.00265612337,0.19031322,0.127457991,-1.05265975,0.800958991,0.0191989131,0.619332194 +0.239989638,3.36314654,-0.239989638,0.000481148454,0.143895179,0.0919942111,-2.46565843,0.695263386,0.019305544,0.340057373 +-0.824977338,3.36378098,0.824977338,0.00220148265,0.17632632,0.0887078568,0.456106573,0.104729071,0.0194503218,1.16685057 +0.535986066,3.36423492,-0.535986066,0.001030994,0.194653124,0.114551544,-0.281773806,0.378856093,0.0192012768,0.758111119 +-0.566593766,3.36426401,0.566593766,0.000570627977,0.191776007,0.112587534,-0.15968886,0.302499115,0.0193823036,0.801695704 +0.226539791,3.36447763,-0.226539791,0.000867281109,0.145666912,0.0924400687,-2.35204649,0.627158046,0.0193058271,0.320851147 +-0.649805844,3.36452436,0.649805844,0.00106443861,0.194726616,0.103032738,-0.0673255995,0.19417724,0.0194129366,0.919724464 +0.907886863,3.36459255,-0.907886863,0.000551258796,0.173087627,0.0858417079,0.552038729,0.00863100775,0.0194087587,1.28451943 +1.18934298,3.3656764,-1.18934298,0.000129193344,0.373449922,0.254491508,0.385421395,-0.161430776,0.0194129143,1.68209827 +0.760861278,3.36607552,-0.760861278,0.00385101698,0.174201697,0.0879840404,0.326044083,0.159875989,0.0193260945,1.07707405 +-0.840922415,3.36653328,0.840922415,0.00219799299,0.174707428,0.0876847655,0.487042755,0.0887430683,0.0194510743,1.18928397 +0.272609413,3.36733532,-0.272609413,0.000705168641,0.142499268,0.0949256197,-2.64009523,0.833894849,0.0192869063,0.38775593 +0.192725331,3.36770654,-0.192725331,0.000762967393,0.152849227,0.0947179347,-1.9941498,0.511100352,0.0193101652,0.272868276 +0.182177484,3.36790252,-0.182177484,0.00024760887,0.154942632,0.0954126567,-1.8600173,0.443889588,0.0193114132,0.257971883 +-0.444774687,3.36796737,0.444774687,0.000860714354,0.214820653,0.14277488,-1.02823329,0.568743706,0.0192709267,0.629305363 +0.935969293,3.36799335,-0.935969353,0.00180404691,0.171949714,0.0851836428,0.573086619,-0.0182040799,0.019416742,1.32374024 +-0.706472337,3.36839771,0.706472337,0.00120038504,0.189360753,0.098131828,0.134423286,0.163468882,0.0194201861,0.999401093 +1.0623939,3.36845708,-1.06239402,0.00137181021,0.158895582,0.0807856694,0.42436561,-0.0385861397,0.0194434877,1.50262845 +1.20722866,3.36914945,-1.20722854,0.000300726388,0.138698578,0.0701487362,0.350826561,-0.0618767068,0.019426927,1.70732522 +0.987178504,3.36928153,-0.987178564,0.00141326198,0.16723147,0.0829625875,0.570842683,-0.0494424701,0.0194330104,1.39620209 +1.19421601,3.36945987,-1.19421601,0.000319448271,0.234800026,0.135642007,0.418667942,-0.10017769,0.0194157362,1.68899035 +-0.587477565,3.36958122,0.587477565,0.000394987524,0.189235419,0.109441966,-0.0691333041,0.246152818,0.0193823744,0.830927312 +-0.186915979,3.36970901,0.186915979,0.000309264986,0.141459659,0.0823630095,-1.95848584,0.278043598,0.0193384811,0.264509767 +0.489744902,3.37077951,-0.489744902,0.00123314559,0.196426988,0.124249414,-0.548634708,0.548713923,0.0191785246,0.69336319 +-0.149413109,3.37104297,0.149413109,0.000357812416,0.137613654,0.0794921294,-1.54075193,0.221965596,0.0193718262,0.211609989 +-0.153299883,3.37106276,0.153299898,0.000271873956,0.137567341,0.0794817507,-1.59237826,0.229310051,0.0193680525,0.217110887 +-1.00014973,3.37133265,1.00014985,0.00146661827,0.156886622,0.0775490031,0.671358109,-0.0247074794,0.0194623396,1.41458106 +-0.25241369,3.3720417,0.25241369,0.000226101605,0.156481385,0.0953179449,-2.42583942,0.39569506,0.019301042,0.356982201 +0.128072172,3.37290883,-0.128072172,0.000247077609,0.167556822,0.102541171,-1.09070003,0.138741329,0.0193073414,0.181231946 +0.668076098,3.37292433,-0.668076038,0.00116034783,0.177720994,0.0934136659,0.0982520953,0.260800093,0.019266082,0.945128441 +0.243789375,3.37296319,-0.243789375,0.000556531188,0.142249316,0.0918951109,-2.54045248,0.737129688,0.0192958489,0.345532864 +-0.202523738,3.37305641,0.202523738,0.000338292477,0.14348799,0.0843047351,-2.12154293,0.29958725,0.0193248577,0.28661406 +-0.90109843,3.37318492,0.90109843,0.00269452715,0.168210328,0.0837106258,0.596957088,0.0339040048,0.0194548238,1.27500701 +0.597447753,3.37321448,-0.597447753,0.00118979986,0.187543362,0.103574038,-0.0275822971,0.206075609,0.0192282591,0.845178783 +1.2000643,3.37400246,-1.2000643,0.000573399593,0.158878148,0.0822009444,0.364385575,-0.0771505833,0.0194216818,1.69726217 +-0.828912616,3.37409592,0.828912616,0.00257565035,0.175586954,0.0880689472,0.46600762,0.0807510167,0.0194437597,1.17233956 +0.0817806944,3.37425327,-0.0817806944,0.000194005188,0.184655637,0.119835667,-0.358270705,-0.00710061891,0.0193181429,0.115937144 +0.0719506219,3.37429762,-0.0719506219,8.49041389e-05,0.276448876,0.209299624,-0.154136285,0.0247257445,0.0193216763,0.101999998 +-0.172926575,3.37431574,0.172926575,0.000339597027,0.139260322,0.081081681,-1.83204985,0.246365815,0.0193455368,0.244698614 +0.0944157988,3.37435222,-0.0944157913,0.000252534519,0.16641739,0.103742257,-0.602911949,-0.0107789654,0.0193106886,0.133852184 +-0.407006592,3.37441826,0.407006592,0.000756863912,0.218341842,0.146687403,-1.45545793,0.610605836,0.0192559399,0.57605052 +-0.458996177,3.37461424,0.458996177,0.000686339568,0.213548213,0.140898883,-0.871590257,0.520168722,0.0192690417,0.64926219 +0.11083401,3.374686,-0.110834017,0.000309062889,0.165429145,0.101554021,-0.854901314,0.0465605929,0.019305924,0.157138363 +-0.247874871,3.3747685,0.247874871,0.000115779811,0.155080646,0.0942880064,-2.41891146,0.372587413,0.0192991607,0.350632191 +0.161166519,3.37478352,-0.161166519,0.000440930045,0.164544553,0.101716511,-1.5662508,0.349027574,0.0193024427,0.228167415 +-0.22380352,3.37480259,0.223803505,0.000340978615,0.147795141,0.088324137,-2.28118467,0.317097485,0.0193098895,0.316702843 +-0.288495958,3.37515545,0.288495958,0.000615685771,0.171265721,0.108080372,-2.45504856,0.449017972,0.0192914382,0.40834859 +0.188933253,3.37516069,-0.188933253,0.000236366235,0.153709486,0.0952979475,-1.98509264,0.516187191,0.0193048585,0.267759353 +0.914735615,3.3752408,-0.914735615,0.00161209563,0.172853142,0.085639134,0.559791982,-0.00724753179,0.0194031429,1.29407871 +0.372414172,3.37550831,-0.372414142,0.00115439261,0.174558893,0.12362802,-1.8440156,0.943585038,0.0192081407,0.527830243 +1.21554458,3.37633371,-1.21554458,0.000241050438,0.0997476727,0.0469172113,0.27022779,-0.056274578,0.0194316972,1.71924233 +1.22270334,3.37645841,-1.22270334,0.000243338902,0.0851025283,0.0389804319,0.188584894,-0.0209121574,0.0194329452,1.72936738 +1.22866833,3.37656188,-1.22866833,0.0001109203,0.0837793052,0.0454948284,0.11737866,-0.0147489719,0.0194329768,1.73780394 +0.636247158,3.37671757,-0.636247158,0.000712977315,0.183861881,0.0998134837,0.0702555031,0.133921534,0.0192539431,0.899999976 +0.893094182,3.37695932,-0.893094182,0.00259401184,0.17330417,0.0859555677,0.538758397,0.00572325801,0.0193926673,1.26320791 +-0.150289252,3.37698174,0.150289267,0.000267400523,0.136875629,0.0794037059,-1.57517731,0.209065422,0.0193648729,0.212796912 +0.963317037,3.37741041,-0.963316977,0.0019536945,0.170053557,0.0840830058,0.590432703,-0.0469451062,0.0194195993,1.36274862 +-1.08887589,3.37757158,1.08887589,0.000338144717,0.155636758,0.0765626207,0.176643059,-0.0322203264,0.0194619801,1.5399096 +-0.247247145,3.37770367,0.24724713,0.000174761721,0.154909536,0.0943054706,-2.4221313,0.358631819,0.0192965604,0.349746644 +0.398694992,3.37849712,-0.398694992,0.00129397877,0.182844192,0.127855211,-1.52925086,0.882849455,0.0191908069,0.564479709 +-0.0818949789,3.37881398,0.0818949863,0.000189490427,0.1810399,0.115336455,-0.449955255,0.0666179508,0.0193840433,0.115851782 +-0.0721035153,3.3788209,0.0721035078,8.32182413e-05,0.306774259,0.229980558,-0.212861091,0.048374109,0.0193818081,0.101999991 +-0.094389312,3.37883282,0.094389312,0.000244291499,0.151052758,0.0915817767,-0.724202156,0.0889502838,0.019389201,0.133527696 +0.237043291,3.37883878,-0.237043291,0.000522824179,0.14230597,0.0913078263,-2.54018831,0.716979444,0.019293841,0.33591491 +-0.554484725,3.37885189,0.554484725,0.00116822484,0.194636658,0.116171278,-0.193429142,0.283809632,0.019358376,0.784466743 +-1.08917272,3.37893319,1.08917272,1.68958577e-05,0.153535545,0.075245969,0.168664321,-0.0285894666,0.019461114,1.54033399 +-0.110509083,3.37900925,0.110509083,0.000238266206,0.142196015,0.0838146731,-1.01430845,0.128378943,0.0193899013,0.156334072 +-0.251038611,3.37904167,0.251038611,0.000273651734,0.156440228,0.0956304893,-2.43390703,0.360107362,0.0192946084,0.355058998 +-0.722779691,3.379076,0.722779691,0.00190040946,0.188168824,0.0965910777,0.194724426,0.123409659,0.0194157008,1.02256644 +1.09037352,3.37942696,-1.09037352,0.000337141217,0.139727324,0.0668668672,0.0709718913,-0.0943039954,0.0194192994,1.54215872 +-0.0720830187,3.37960815,0.0720830113,5.74700607e-06,0.306634963,0.229832217,-0.214594856,0.0485149994,0.0193815082,0.101999991 +-0.0818724707,3.37961078,0.0818724781,1.32194664e-05,0.180890679,0.115249895,-0.452125579,0.0665162355,0.0193837602,0.115853295 +-0.0943636,3.37964988,0.0943635926,1.74036049e-05,0.15086098,0.0914978534,-0.72668618,0.0885612145,0.0193889569,0.133530751 +-1.0897826,3.37965155,1.0897826,0.0003314676,0.151714891,0.0740597174,0.158795044,-0.0332830772,0.0194606036,1.54119265 +-0.242418051,3.37973404,0.242418066,0.000159734685,0.153572172,0.0933053717,-2.39688921,0.34051013,0.0192965921,0.34285754 +-0.110476114,3.37987638,0.110476114,1.04931278e-05,0.142023087,0.0837565288,-1.0172385,0.127514556,0.019389512,0.156336173 +-0.111008979,3.38005328,0.111008972,0.000158939656,0.14181149,0.0836027861,-1.02604222,0.128461629,0.0193893854,0.15703468 +-0.356402069,3.38007474,0.356402069,0.000395624345,0.207595557,0.13858138,-2.04340029,0.584401429,0.0192657392,0.50402981 +-0.158741266,3.38043547,0.158741266,0.000253670994,0.137522832,0.0802147537,-1.68368888,0.207074314,0.0193524845,0.224585474 +-0.0721052736,3.38047576,0.0721052811,8.32713849e-05,0.306453198,0.229703277,-0.216968417,0.0484807603,0.0193813182,0.101999991 +-0.0818984509,3.38049006,0.0818984583,0.000189044818,0.180714652,0.11517062,-0.455163509,0.0660435185,0.0193835758,0.115853742 +-0.0943934917,3.38053942,0.0943934917,0.000240811729,0.150634259,0.0914129913,-0.730141342,0.0875238851,0.0193886962,0.133530051 +0.852112532,3.38075924,-0.852112591,0.00401783502,0.173105523,0.0860332325,0.490009248,0.0438155234,0.0193705503,1.20584178 +-0.110504977,3.38084221,0.110504977,0.000240624635,0.141825035,0.0837008655,-1.02121305,0.125753582,0.0193889923,0.156323671 +0.174079001,3.38118649,-0.174079001,0.000406688807,0.159470379,0.0988501087,-1.78402138,0.447648287,0.0192986261,0.246316031 +0.0814792961,3.38127851,-0.0814792886,0.000142018471,0.18458569,0.120011359,-0.364406675,-0.00239815563,0.0193125568,0.115859494 +-0.248275891,3.38128591,0.248275891,0.000211018254,0.155122474,0.0948478654,-2.4310708,0.340062529,0.0192927122,0.351156533 +0.0717358887,3.38129568,-0.0717358887,6.1974104e-05,0.276771337,0.210280403,-0.156802863,0.0249829181,0.0193162113,0.101999998 +-0.920420289,3.38129711,0.920420289,0.00213454012,0.166780561,0.0828349814,0.625669956,0.00619819202,0.0194501802,1.30193424 +-0.386114091,3.38138556,0.386114091,0.000829329249,0.217399225,0.14682503,-1.70555902,0.594943583,0.0192503091,0.546417356 +0.0940181389,3.38153267,-0.0940181464,0.000185456709,0.166493803,0.103987128,-0.612193048,-0.000871831551,0.0193047356,0.13370122 +-0.355280638,3.38191104,0.355280638,0.000184356613,0.207731724,0.138742492,-2.05659294,0.576710403,0.0192635246,0.502451479 +-0.355884761,3.38223386,0.35588479,0.000265266601,0.208033949,0.139004752,-2.05061769,0.575874805,0.0192628372,0.503300369 +-0.355397254,3.38224483,0.355397254,4.79159496e-07,0.20787254,0.138867766,-2.05604482,0.575547874,0.019263044,0.502618432 +0.110272139,3.38225222,-0.110272147,0.000145555969,0.165523157,0.101884104,-0.868342519,0.0630638301,0.019299211,0.156850681 +-0.355110884,3.38229895,0.355110914,0.000378516968,0.207745671,0.138762131,-2.05875206,0.574873984,0.0192630757,0.502208948 +-0.355277002,3.3825109,0.355276972,9.17861712e-07,0.207855135,0.138880596,-2.05754042,0.574056864,0.0192627497,0.502447248 +-0.355538011,3.38255286,0.355538011,0.000189588347,0.207971618,0.138989955,-2.05470109,0.574240386,0.0192625318,0.502814054 +0.453198373,3.38278389,-0.453198373,0.00126915704,0.193989784,0.130219832,-0.839491546,0.691402793,0.0191617236,0.641561806 +0.25658977,3.38365746,-0.25658977,0.000897105783,0.144245788,0.0945456699,-2.6051836,0.751433432,0.0192754939,0.363209784 +0.721141696,3.38373709,-0.721141696,0.00285073207,0.174739271,0.0890954733,0.232038274,0.165303096,0.0192892104,1.02033198 +1.03873086,3.3837862,-1.03873074,0.00291236932,0.157605559,0.0779314786,0.507584691,-0.0582977608,0.0194340535,1.46916509 +-0.67685163,3.38405466,0.67685163,0.00279638707,0.192831635,0.100201972,0.0405821726,0.128846407,0.0194030143,0.959066808 +-0.476177216,3.38412189,0.476177216,0.00100057235,0.212221622,0.139113799,-0.700402141,0.44382453,0.0192696173,0.673744559 +-1.17947698,3.38452625,1.17947698,0.000237632747,0.260172397,0.161022589,0.253629267,-0.261476487,0.0194514003,1.66820621 +0.547824025,3.38454866,-0.547824025,0.00053517241,0.192673743,0.112852506,-0.183371052,0.300177902,0.0191804934,0.775278211 +-0.421451449,3.38455534,0.421451449,0.000890302414,0.219809771,0.148715228,-1.27481055,0.553947747,0.0192387439,0.596477389 +0.38496834,3.38461661,-0.38496834,0.000351259892,0.179870993,0.12809895,-1.68922305,0.91621244,0.0191883184,0.54581219 +0.118916847,3.38478351,-0.118916839,0.000211394567,0.168322369,0.103803955,-0.98575443,0.120671436,0.0192952286,0.16830942 +-0.510348797,3.38497591,0.510348856,0.00120568229,0.204652637,0.129410714,-0.436035812,0.361066878,0.019304255,0.721936703 +0.152354151,3.38507462,-0.152354151,0.000367088389,0.166507766,0.103173979,-1.48310018,0.339001596,0.0192942955,0.216126427 +-1.0145365,3.38509607,1.01453638,0.00127861055,0.154326469,0.076265648,0.659088254,-0.039393954,0.0194531232,1.43490326 +-0.195863947,3.38612819,0.195863932,0.000348906819,0.142195463,0.0842064694,-2.09249783,0.235720217,0.0193152167,0.277527869 +0.125912011,3.38694811,-0.125911996,0.000100649879,0.169936597,0.104898803,-1.09442759,0.167657003,0.0192933548,0.178679675 +0.697084367,3.38708377,-0.697084367,0.00093872397,0.175945491,0.0906622186,0.174539238,0.189355046,0.019272767,0.986704111 +-0.219072595,3.38721466,0.219072595,0.000215913198,0.146804139,0.0880935043,-2.27844048,0.25968942,0.0192995444,0.310357422 +-0.278382659,3.38820314,0.278382659,0.000683498918,0.16779311,0.105560452,-2.5038867,0.367616355,0.0192783941,0.3941513 +0.138422713,3.38821745,-0.138422728,0.000323770131,0.169335932,0.104944617,-1.27615738,0.258794934,0.0192918684,0.195894986 +0.285692602,3.38823795,-0.285692602,0.00109456154,0.14596498,0.0985395536,-2.72173238,0.826841354,0.0192537196,0.405009747 +-0.95243907,3.388556,0.95243907,0.00196883199,0.163723513,0.0811305195,0.668552935,-0.0229856446,0.0194476005,1.3478874 +-0.207960039,3.3895092,0.207960039,0.000272803241,0.144464448,0.086236462,-2.19549608,0.23846674,0.0193048716,0.294254124 +0.338434011,3.3896718,-0.338434011,0.000724658486,0.165317446,0.11766582,-2.33932662,0.916653752,0.0192099866,0.479035467 +0.196975008,3.38986635,-0.196974993,0.000690820627,0.149169043,0.0924865529,-2.16397905,0.583861589,0.0192970335,0.278699964 +-0.173667222,3.39004564,0.173667222,0.000214645683,0.13882336,0.0819725916,-1.88257527,0.196421161,0.0193296969,0.246033192 +0.342462927,3.39008093,-0.342462897,0.000581485685,0.166741967,0.118778594,-2.3031168,0.921332717,0.0192074701,0.484725773 +-0.353376687,3.39016008,0.353376687,0.000246461481,0.207396895,0.139600381,-2.08727527,0.528989792,0.0192551874,0.499750435 +0.157699198,3.39039993,-0.157699183,0.000382013561,0.164258718,0.10181804,-1.58884013,0.383574098,0.0192913953,0.223672122 +-0.327646255,3.3905077,0.327646255,0.000855000399,0.19526881,0.128856152,-2.32441449,0.469475508,0.0192630868,0.464181542 +-1.18448043,3.39120865,1.18448043,0.000577073835,0.21090214,0.113201052,0.305238247,-0.204128921,0.0194462761,1.67528272 +-0.169135734,3.39212251,0.169135734,0.000144561942,0.138008654,0.0815908015,-1.84184146,0.180435315,0.0193305071,0.239786193 +0.081523113,3.3923316,-0.0815231055,0.000178750459,0.18584761,0.121499747,-0.359705687,0.00801541656,0.0193059687,0.115410104 +-0.984808683,3.39233828,0.984808683,0.0020037042,0.159088746,0.0785563961,0.673997641,-0.0337932184,0.019446535,1.39292479 +0.0720519572,3.39234161,-0.0720519572,7.82449788e-05,0.276598155,0.211641148,-0.153205246,0.0273588579,0.0193094909,0.102000006 +0.0937064588,3.39252186,-0.0937064663,0.000233518076,0.168662697,0.105934277,-0.604758501,0.0188751929,0.0192980822,0.132664889 +-0.636292696,3.39276886,0.636292696,0.000584840425,0.181704685,0.101727344,0.0965844989,0.121593662,0.019391302,0.899999976 +0.109734282,3.39338088,-0.109734274,0.000246352254,0.168346703,0.10451857,-0.864953697,0.100075796,0.0192916151,0.155368507 +-0.99938947,3.39357042,0.99938947,0.000320608437,0.157059282,0.077439934,0.679258585,-0.0422556251,0.0194464605,1.41363239 +-0.233444065,3.3939321,0.233444065,0.000226153556,0.150487289,0.0917174146,-2.37979746,0.24948445,0.0192839634,0.330806702 +1.1012218,3.39396763,-1.1012218,0.000289562362,0.0937879235,0.0405296125,-0.0796368718,-0.151542202,0.019415522,1.55753243 +-0.222406447,3.39398241,0.222406447,0.000315163867,0.147694558,0.0893332586,-2.30897522,0.233315408,0.0192896109,0.31472978 +0.221929848,3.3940959,-0.221929848,0.000832727586,0.143054664,0.0902167335,-2.46468735,0.68655777,0.0192901436,0.31405279 +0.126909107,3.3945961,-0.126909107,0.000307291193,0.171854079,0.107042,-1.117064,0.212035537,0.0192890614,0.179717302 +-1.07421124,3.39511204,1.07421124,0.000734745874,0.131547987,0.0634175465,0.337283671,0.0125214094,0.0194478258,1.51916957 +-0.129354432,3.39528704,0.129354432,0.000227417026,0.136677653,0.0809761286,-1.35670769,0.120443642,0.0193643644,0.183080256 +0.55388093,3.39533877,-0.55388093,0.00109799637,0.191401422,0.111772612,-0.148250937,0.261776447,0.0191729032,0.783737242 +0.982436836,3.39541459,-0.982436776,0.00153248757,0.165693462,0.0815353841,0.57423687,-0.0553457327,0.0194097571,1.38949966 +0.341248393,3.39566731,-0.341248393,7.37845112e-05,0.166863739,0.119505823,-2.33559561,0.91332829,0.0191998873,0.483003139 +0.475671768,3.39578962,-0.475671738,0.00119624508,0.196617991,0.129984856,-0.604446292,0.568214178,0.0191390105,0.673233509 +-0.63605392,3.39596748,0.63605392,0.000396690099,0.195206225,0.103066996,-0.105098724,0.1166576,0.0193837974,0.899679542 +-0.898377657,3.39612794,0.898377657,0.00451713102,0.168747991,0.083706513,0.59924221,-0.00253333151,0.0194379538,1.27110016 +0.330618829,3.39616179,-0.330618829,0.000796135457,0.162741184,0.115187675,-2.42947674,0.892741561,0.0192080308,0.467742026 +-0.379760981,3.39641595,0.379760981,0.000369785237,0.217923924,0.148964539,-1.79275632,0.525655866,0.019232152,0.537232518 +1.16844475,3.39650178,-1.16844475,0.00017835015,0.160278141,0.0834532306,0.0738333091,-0.253777653,0.0194120966,1.65249836 +-1.07455468,3.39662385,1.07455468,2.26672855e-05,0.131119162,0.0631176233,0.332760155,0.0147398068,0.0194467567,1.51965892 +-0.127750948,3.39681911,0.127750948,0.000177610607,0.136556968,0.081013158,-1.34008777,0.114884406,0.0193644576,0.180808499 +0.542275906,3.39685059,-0.542275906,0.00044875138,0.19268477,0.11436528,-0.186061904,0.28983897,0.0191627908,0.767344177 +-0.706303418,3.39704871,0.706303477,0.00153428281,0.190055892,0.0975570157,0.146302074,0.0830766186,0.0193983968,0.999316096 +-0.192506224,3.39726496,0.192506224,0.000216325599,0.141522124,0.0848926157,-2.07628083,0.178366393,0.0193055458,0.272592187 +-1.0752368,3.39741445,1.07523668,0.000702857913,0.130570039,0.0627154261,0.324094027,0.0122674825,0.0194461141,1.52062035 +0.636215508,3.39748168,-0.636215508,0.000552167359,0.179234475,0.0963232443,0.0194912758,0.247371852,0.0192285273,0.899911761 +1.07684827,3.39756322,-1.07684839,0.000978110242,0.128943458,0.0612586364,0.215198189,-0.0388962254,0.0194200743,1.52303016 +0.378430158,3.39769483,-0.378430188,0.00165939622,0.181068152,0.130715191,-1.79728413,0.890330076,0.0191704389,0.535846651 +-0.130122632,3.39800096,0.130122632,0.000181556505,0.136308059,0.0808894485,-1.377491,0.115308523,0.0193608627,0.184142023 +-0.595198631,3.39827323,0.595198631,0.00103579077,0.187552959,0.107363939,-0.0113605149,0.166491538,0.0193645861,0.842767894 +-0.198993087,3.39829993,0.198993087,0.00021397497,0.142845482,0.0858765692,-2.13463974,0.182774112,0.0193004496,0.281592309 +-0.400749207,3.39871645,0.400749207,0.000583395595,0.222630441,0.152746409,-1.52139854,0.515550494,0.0192152653,0.56724751 +-0.173271388,3.39901543,0.173271388,0.00040571735,0.138625428,0.0827893093,-1.89194655,0.152327687,0.0193199459,0.245326817 +-0.126118109,3.39901662,0.126118109,0.000219566282,0.136640936,0.0813099071,-1.32315934,0.10697563,0.0193635058,0.178503707 +1.16522145,3.39911032,-1.16522145,9.66681109e-05,0.145728961,0.0730628371,0.0454571582,-0.265234441,0.019412199,1.64796197 +0.82688868,3.39913559,-0.82688868,0.00211920426,0.174113959,0.086715579,0.4515782,0.0370930582,0.019342985,1.17013943 +0.347047865,3.39916801,-0.347047865,0.000781232491,0.170164466,0.122222573,-2.25333476,0.898725033,0.01919052,0.491035104 +-1.19048464,3.39922476,1.19048464,0.000909545692,0.145349756,0.0718090534,0.289817333,-0.174005479,0.0194401052,1.68377435 +-0.269973993,3.39943767,0.269973993,0.000410562963,0.164039224,0.103308327,-2.510777,0.290810168,0.0192681048,0.382111609 +-0.160590857,3.39986706,0.160590857,0.000367472152,0.13713479,0.0817000344,-1.76193285,0.142165691,0.0193276796,0.227255031 +-0.128769636,3.39998984,0.128769636,0.000161554926,0.136243209,0.0810397193,-1.36712337,0.107343644,0.0193595067,0.182234034 +0.179583192,3.40047264,-0.179583192,0.000490793434,0.151010692,0.0936255381,-1.97923493,0.566514969,0.0192949846,0.254064828 +-0.215245485,3.40163755,0.215245485,0.000192070074,0.145897686,0.0885882154,-2.26939368,0.185318321,0.0192858186,0.3045322 +1.1150353,3.40207505,-1.11503541,0.000185603363,0.0644243807,0.0258849747,-0.134758323,-0.249392554,0.0194206424,1.57692862 +0.152061567,3.40231252,-0.152061582,0.000415763207,0.161598533,0.100411579,-1.55940628,0.408844709,0.019288009,0.21530512 +1.15526032,3.40251398,-1.15526021,0.000198219088,0.122481391,0.0583851375,0.00213970244,-0.266537577,0.0194142479,1.63380039 +-0.284954786,3.40251541,0.284954786,0.000451606116,0.171776861,0.110283121,-2.51555276,0.304143548,0.0192615334,0.403337121 +-0.12727353,3.4026773,0.12727353,0.000204396754,0.13635993,0.0814400539,-1.35605288,0.0964569226,0.0193569101,0.180112198 +-0.308693767,3.40271568,0.308693737,0.000462462194,0.185107484,0.121293738,-2.45770454,0.363702178,0.0192567538,0.436558992 +-0.308689117,3.40272427,0.308689117,7.79705806e-05,0.185106277,0.121292971,-2.4577322,0.363651782,0.0192567427,0.436552495 +-0.308699578,3.40272474,0.308699578,0.000266322342,0.185112149,0.121298023,-2.45768929,0.363672853,0.0192567408,0.436567247 +-0.308694482,3.4027276,0.308694452,4.60859337e-11,0.185109466,0.121295892,-2.45772457,0.363646507,0.0192567389,0.436560154 +-0.308695763,3.40273046,0.308695763,3.88284405e-11,0.185110494,0.121297099,-2.45772243,0.363633275,0.0192567352,0.436562032 +-0.30869922,3.40273094,0.30869922,7.98853039e-10,0.185112566,0.121298984,-2.45769691,0.363638192,0.0192567334,0.4365668 +-0.308691412,3.40273237,0.308691412,0.000204571654,0.185107723,0.121295005,-2.45774245,0.363612443,0.0192567352,0.436555684 +-0.308695644,3.40274477,0.308695644,0.000276585168,0.185109422,0.121299677,-2.45774436,0.363540769,0.0192567222,0.436561614 +-0.308843613,3.40283895,0.308843613,0.000221538809,0.18519482,0.121387608,-2.45679188,0.363377869,0.0192565694,0.436770827 +-0.572796941,3.40297484,0.572796941,0.000921209576,0.191905677,0.112784117,-0.0896242931,0.190622166,0.0193435084,0.810505986 +-1.21092153,3.40341282,1.21092153,0.000370279478,0.0998190492,0.0457101464,0.192921102,-0.106545657,0.0194391515,1.71267402 +-0.0935067385,3.40342522,0.0935067385,0.000412331399,0.147302926,0.0910910666,-0.798758209,0.0484504886,0.0193758588,0.133401394 +-1.22062969,3.4035728,1.22062969,0.000381367048,0.089187108,0.0402424671,0.100817263,-0.0411364287,0.0194389615,1.72640479 +-1.2287184,3.40370607,1.2287184,0.000173447843,0.0882508457,0.0447023623,0.013814074,-0.0241961814,0.0194388367,1.7378453 +-0.0811742321,3.40371943,0.0811742395,0.000330965879,0.176900774,0.114043891,-0.517136216,0.0445105471,0.0193724614,0.115809053 +-0.0714941025,3.40372753,0.0714941025,0.000146411287,0.296645522,0.223123118,-0.266426533,0.0455144197,0.019370459,0.101999998 +0.588693976,3.40382099,-0.588693976,0.00173836062,0.187033847,0.104417361,-0.0198937263,0.152148724,0.0191948246,0.833176613 +-0.149588704,3.40384698,0.149588689,0.000290076801,0.136051923,0.0812413469,-1.64541531,0.1154963,0.0193337817,0.211950406 +0.948007703,3.40393782,-0.948007703,0.00204814924,0.171431869,0.0847056434,0.585589945,-0.0650010258,0.0193935167,1.34088159 +-1.15396333,3.40397763,1.15396333,0.000215532535,0.145130262,0.0731169283,-0.0078805387,-0.33875227,0.0194382407,1.63199055 +-1.06894457,3.40399146,1.06894457,0.000589678937,0.133634508,0.0642197207,0.372840673,0.00828586053,0.0194411315,1.51171613 +1.12140894,3.40409327,-1.12140894,0.000160842406,0.066814281,0.0269674007,-0.121854812,-0.260521472,0.0194201805,1.58592117 +-0.109262936,3.40428042,0.109262943,0.000391181937,0.139350533,0.0840923786,-1.09437299,0.0701686591,0.0193695296,0.155873835 +0.0809528083,3.40463018,-0.0809528083,0.000148495805,0.186591059,0.122679591,-0.359555364,0.0188303571,0.0192993991,0.115058579 +0.071768418,3.40468645,-0.071768418,6.48062123e-05,0.276285559,0.212865695,-0.150823146,0.0300675519,0.0193026438,0.102000006 +0.0927384347,3.40490127,-0.0927384421,0.000197225236,0.170259744,0.107561268,-0.604902089,0.039309077,0.0192916133,0.131831273 +-1.11677587,3.40530634,1.11677587,0.00056822761,0.0894869268,0.0366937891,-0.168793663,-0.253432155,0.019441152,1.57952714 +-0.722535312,3.40546656,0.722535312,0.00198795716,0.187880903,0.0958082825,0.201197922,0.0574613288,0.0193965845,1.02235675 +0.108406715,3.40576506,-0.108406715,0.000150568245,0.170290142,0.106616169,-0.870415926,0.134198368,0.0192846768,0.154130876 +-0.241301835,3.40612984,0.241301835,0.00038541737,0.152482942,0.0946769491,-2.42977285,0.192160606,0.0192697141,0.341581166 +0.338575631,3.40663767,-0.338575631,0.000874741818,0.169322819,0.120880648,-2.39219213,0.84630698,0.0191881657,0.479013085 +0.704606652,3.40717983,-0.704606712,0.000601844513,0.175171733,0.0894384012,0.196617454,0.137502521,0.019266203,0.997661233 +0.210527852,3.40741253,-0.210527852,0.000194995519,0.143129125,0.0892136917,-2.42635107,0.665141106,0.019286124,0.298670322 +-0.48821193,3.4074192,0.48821196,0.000894305587,0.212062344,0.138755515,-0.577583373,0.342287838,0.0192497503,0.690602422 +0.300430298,3.40748715,-0.300430298,0.00159052864,0.153744787,0.105418175,-2.73646593,0.795345068,0.0192217119,0.425686836 +-0.472259998,3.40751815,0.472259998,0.00054502429,0.216225147,0.14400579,-0.705911219,0.375935912,0.0192293562,0.668342113 +-1.20106804,3.40754938,1.20106804,0.000635238597,0.118748277,0.0558304228,0.206557125,-0.141218945,0.0194352604,1.6986562 +-1.14997292,3.40756941,1.14997292,9.37662116e-05,0.124464914,0.0583676659,-0.0520587638,-0.351835638,0.0194359683,1.62636924 +-1.14292514,3.40761781,1.14292514,0.000290171563,0.114480108,0.0521673672,-0.0848541185,-0.335175395,0.0194366053,1.61636531 +0.115901738,3.40763116,-0.115901738,0.00025916443,0.172443852,0.108495817,-0.976386309,0.198934853,0.0192832649,0.164227515 +0.525057137,3.40830612,-0.525057137,0.00126240752,0.194416761,0.120172389,-0.246164352,0.327298224,0.0191361103,0.742704451 +1.13921976,3.40830898,-1.13921976,0.000178938441,0.0808948874,0.0333543867,-0.0748063549,-0.273694038,0.0194178224,1.61115682 +1.20900071,3.40850687,-1.20900059,0.00026929687,0.105655178,0.049008362,0.199586391,-0.0862826779,0.0194200035,1.70979977 +-1.00543547,3.40860367,1.00543547,0.0016030668,0.155178666,0.0761598498,0.661821663,-0.0460046381,0.0194357187,1.42232239 +1.13374782,3.40883303,-1.13374794,0.000155483955,0.0745291412,0.0304148421,-0.0950787291,-0.270496309,0.0194179676,1.60345674 +1.21981502,3.40886354,-1.2198149,0.00025095907,0.0922422633,0.0420024097,0.121369451,-0.0334786959,0.0194214303,1.72509325 +-0.7634902,3.40889502,0.7634902,0.00521969842,0.181938529,0.0914355963,0.327086568,0.0298789926,0.019404646,1.08219826 +0.499068856,3.40895033,-0.499068856,0.00160042662,0.19645153,0.126208767,-0.390654445,0.427350461,0.0191251319,0.706096649 +0.68616128,3.40901661,-0.68616128,0.00183291733,0.17588982,0.0908058137,0.148209423,0.156979933,0.0192517173,0.970750272 +-0.145766243,3.40910292,0.145766243,0.00021054536,0.13588126,0.081624493,-1.61487508,0.0941979066,0.0193304457,0.206556186 +1.22884762,3.40916109,-1.2288475,0.000114199494,0.0883536488,0.0453362204,0.0409270898,-0.0212705601,0.0194211602,1.73786724 +0.614395142,3.40935969,-0.614395142,0.00117226783,0.184348077,0.101264529,0.0443432219,0.0970846936,0.0192095712,0.869164705 +-0.641779542,3.40937567,0.641779542,0.00111033372,0.19469659,0.102155112,-0.0784231871,0.078006506,0.0193740334,0.907999218 +0.126448691,3.40986967,-0.126448691,0.00025105587,0.169785529,0.10685432,-1.16465712,0.281509846,0.0192827601,0.179833576 +-0.415869057,3.40996408,0.415869057,0.000530573539,0.224276304,0.154990077,-1.33203614,0.453589022,0.0191961974,0.588629842 +-0.257388473,3.41029644,0.257388473,0.00044622019,0.158010736,0.0996587351,-2.49887609,0.195825696,0.0192587692,0.364339411 +-0.388540506,3.41031051,0.388540506,0.00037309216,0.221495688,0.153210998,-1.68340492,0.461936474,0.0192059539,0.54970634 +-0.207168669,3.41034079,0.207168669,0.000152454639,0.144444242,0.088307105,-2.21557522,0.131145015,0.0192809161,0.293126941 +0.785890341,3.41044188,-0.785890341,0.00275058765,0.173997611,0.0868662,0.383711755,0.0588342845,0.0193157494,1.11355853 +-0.628943801,3.41049886,0.628943801,0.00119049731,0.182371438,0.10234081,0.0910723507,0.0936350077,0.0193709731,0.88970685 +0.280545592,3.4108429,-0.280545592,0.00151354296,0.145777687,0.0972364545,-2.80064821,0.748121738,0.0192358084,0.397719741 +0.635937572,3.41110897,-0.635937572,0.000644476677,0.182162777,0.0986589342,0.0935698599,0.0571778007,0.0192286763,0.899999976 +-0.995511889,3.41115189,0.99551183,0.00166886614,0.157355979,0.0773954839,0.675946474,-0.0547054335,0.01943353,1.4083035 +-0.63613075,3.41131258,0.63613075,5.82878856e-05,0.181298241,0.101308256,0.111818731,0.0823842436,0.0193763506,0.899999976 +-0.194064975,3.41138506,0.194064975,0.000111172172,0.142325521,0.0866671354,-2.11288738,0.118001327,0.0192894246,0.274785757 +-0.503654361,3.41144991,0.503654361,0.000371559872,0.208095849,0.133731499,-0.445962429,0.292489171,0.0192633383,0.713023901 +1.17411482,3.41149378,-1.17411482,0.000433320442,0.153304204,0.0742365643,0.0869285166,-0.201591417,0.0194094349,1.66051793 +-0.229056448,3.41208839,0.229056448,0.000398883742,0.14814575,0.0923956484,-2.36768913,0.131934851,0.0192680601,0.324392825 +0.0719637722,3.4122057,-0.0719637722,7.33675042e-05,0.277650654,0.214097291,-0.141816199,0.0298258942,0.0192996692,0.102000013 +0.0811041743,3.41222525,-0.0811041743,0.000167219288,0.18723686,0.123543307,-0.352033496,0.0279377755,0.0192970205,0.114957511 +0.0928040966,3.41273499,-0.0928041041,0.000216792527,0.171789244,0.109238848,-0.597252905,0.0604048409,0.0192896724,0.131547183 +0.457462281,3.41287255,-0.457462281,0.0011519593,0.199084312,0.135843247,-0.727634549,0.594213009,0.0191155318,0.648111999 +-0.460182786,3.41305256,0.460182786,0.000671461225,0.219410211,0.149041325,-0.820886135,0.376184344,0.0192075949,0.65102309 +-0.375459164,3.41309381,0.375459194,0.000619571656,0.219121665,0.151845634,-1.85161924,0.44807145,0.0192101374,0.53135705 +-0.151185766,3.41347694,0.151185766,0.000283778383,0.136318713,0.0823316574,-1.69385266,0.0794753283,0.0193189625,0.214126498 +0.108235225,3.41386223,-0.108235225,0.000237515633,0.172677994,0.109264679,-0.864147961,0.171874791,0.019282775,0.153428078 +1.20655274,3.41428947,-1.20655274,0.000370430906,0.109697558,0.0509765558,0.189180493,-0.0943675786,0.0194173753,1.70635998 +-0.559298217,3.41436315,0.559298158,0.00111469685,0.194926322,0.116555601,-0.132806569,0.182603985,0.0193222202,0.79130125 +-0.518663704,3.41442895,0.518663645,0.00137300685,0.204567283,0.129300594,-0.35516116,0.258151859,0.0192743875,0.733798981 +1.20780575,3.41451168,-1.20780575,4.05351493e-05,0.106462196,0.0492321029,0.187004194,-0.0918088034,0.0194178745,1.70814168 +1.2192719,3.41478348,-1.2192719,6.79967561e-05,0.0933406055,0.0424254127,0.109132409,-0.0359933004,0.0194194261,1.72435665 +1.22883117,3.41501021,-1.22883117,3.04680307e-05,0.0891657472,0.0452152342,0.0271944571,-0.022591373,0.0194191616,1.7378751 +0.211569935,3.41521454,-0.211569935,0.000621005427,0.142505229,0.0884518176,-2.46581101,0.649025977,0.0192793775,0.299949795 +-0.182680517,3.41579533,0.182680517,0.000402825535,0.140220881,0.0856106654,-2.02060461,0.0826936215,0.0192916803,0.259004384 +1.17064834,3.41603613,-1.17064822,0.000251407444,0.146174058,0.0693258792,0.0560346879,-0.214134067,0.0194084682,1.65563762 +0.138317913,3.41612482,-0.138317913,0.000419029733,0.163243443,0.102279387,-1.39663243,0.380125225,0.0192826055,0.196064502 +0.411195099,3.41622162,-0.41119507,0.00092138187,0.197298467,0.141262218,-1.31970263,0.740601897,0.0191235617,0.581763744 +0.644697011,3.41628933,-0.644697011,0.00183480338,0.177992418,0.0946394876,0.0466592759,0.195959598,0.0192206074,0.911923528 +-0.635831058,3.41632867,0.635831118,0.000372002774,0.194779009,0.102225676,-0.0949334875,0.0623269975,0.0193679631,0.899628103 +1.0916518,3.4165864,-1.0916518,0.00079272635,0.106800735,0.0475713573,0.051509466,-0.073795639,0.019409759,1.54399753 +-1.20789492,3.4167285,1.20789492,0.000820449553,0.102228269,0.0464542396,0.151147157,-0.116872773,0.0194290951,1.70836902 +-1.21926975,3.41691399,1.21926975,0.000557197956,0.0907455087,0.0407756194,0.0585968085,-0.0448345728,0.0194290411,1.72445703 +0.202480331,3.41700053,-0.202480331,0.000795896514,0.14217487,0.0878090709,-2.37688684,0.645855427,0.0192831177,0.28692171 +-1.22874451,3.41706896,1.22874451,0.000252531783,0.0885276794,0.0437230356,-0.0331034251,-0.0249390658,0.019428961,1.73785758 +-0.272379041,3.41723776,0.272379041,0.00026979309,0.164271519,0.106480472,-2.53541517,0.180918396,0.0192498136,0.385359704 +1.0332092,3.41731739,-1.0332092,0.00150059594,0.155541107,0.0761015713,0.511263549,-0.0659300461,0.0194043592,1.46136129 +-0.212796688,3.41761708,0.212796688,0.000126502142,0.145165682,0.0898285955,-2.26314592,0.0928924754,0.0192704108,0.301120818 +1.20664668,3.41782975,-1.2066468,0.000528722652,0.107627712,0.0497581512,0.1796536,-0.093184799,0.019416146,1.70649636 +-0.217279032,3.41791797,0.217279047,0.000159409814,0.145516917,0.0904889777,-2.29670429,0.0921269059,0.01926855,0.307569444 +-1.05377197,3.41793847,1.05377197,0.00126670708,0.140807077,0.0676248446,0.483732313,-0.00849370286,0.0194303021,1.49027038 +1.21875918,3.41801548,-1.21875918,0.000487890706,0.0944161341,0.0429331101,0.10413307,-0.0363191441,0.0194176119,1.72362542 +1.22882938,3.41817188,-1.22882938,0.000223455398,0.0895318389,0.0451677553,0.021036163,-0.02277009,0.0194173623,1.73786652 +-0.714339733,3.41820288,0.714339733,0.00191966956,0.188405186,0.0960576981,0.179332182,0.0297588892,0.0193852149,1.01070631 +0.240142822,3.41823483,-0.240142822,0.000733997091,0.139286071,0.0878218934,-2.73545742,0.652368724,0.019262366,0.339691579 +-0.441439718,3.4183104,0.441439748,0.00166424375,0.223295555,0.154474556,-1.01340652,0.388425708,0.0191874001,0.624756515 +0.63601476,3.41848445,-0.63601476,8.13219085e-05,0.178342387,0.095382683,0.0278157219,0.202473789,0.019214062,0.899905264 +-0.200660586,3.41865993,0.200660586,0.00013688991,0.1433063,0.0885896385,-2.1702621,0.0804553926,0.0192761309,0.283887267 +0.507034421,3.41912389,-0.507034481,0.000223230425,0.196239993,0.125307918,-0.309212476,0.366615474,0.0191134606,0.717848063 +0.169696689,3.41992211,-0.169696689,0.000307160895,0.149649963,0.0927935913,-1.94186151,0.588238537,0.0192868561,0.240484133 +-0.404194832,3.42006254,0.404194832,0.000377514487,0.223002046,0.157714829,-1.4824574,0.414342672,0.0191864409,0.572211623 +1.05922985,3.4208293,-1.05922997,0.00135817053,0.140857399,0.0673981309,0.362132728,-0.046209421,0.0194077808,1.49810898 +0.419774503,3.4210608,-0.419774532,0.0010345201,0.198373646,0.141551286,-1.21062779,0.698285401,0.0191130117,0.593814313 +-0.498278081,3.42124963,0.498278081,0.000825368974,0.209672883,0.137174606,-0.47675094,0.264734894,0.019245699,0.705034137 +1.15847099,3.42149067,-1.15847099,0.000510304701,0.135275885,0.0624712743,0.0133885872,-0.218248814,0.0194073226,1.63834143 +0.697332144,3.4217248,-0.697332084,0.00101565721,0.174891293,0.0893455967,0.177119255,0.118752532,0.0192533005,0.987114668 +-1.05552375,3.4218142,1.05552387,4.99368252e-05,0.139859587,0.0669740438,0.470037609,-0.00700565986,0.019427482,1.4927597 +-1.05451834,3.42191482,1.05451846,0.00112329412,0.140303954,0.0672381297,0.476310551,-0.00784588978,0.0194274243,1.49135184 +-0.093438223,3.42196298,0.0934382156,0.000218133413,0.14673996,0.0927063972,-0.843917787,0.00817044172,0.0193598922,0.132343173 +-0.108681127,3.42199683,0.10868112,0.000233893326,0.138964087,0.0859100297,-1.13251173,0.0179270431,0.0193469208,0.15393579 +0.148529142,3.42261887,-0.148529157,0.000192576787,0.157425553,0.0990992412,-1.60901451,0.493261933,0.0192845576,0.211263016 +-0.196285084,3.422647,0.196285099,0.000109448207,0.142441794,0.0884662792,-2.13570595,0.0533616953,0.0192742031,0.277812153 +-1.15826535,3.42314434,1.15826535,0.000521410257,0.159771681,0.0758467019,0.0528117158,-0.277776957,0.0194219481,1.63807487 +-0.580001712,3.42316914,0.580001712,0.000499252405,0.190292239,0.111193568,-0.0454013497,0.129472852,0.0193292387,0.820454717 +-0.0814543217,3.42325377,0.0814543217,0.000179218288,0.174782544,0.114751868,-0.563911736,0.0200001337,0.0193612669,0.115367159 +-1.05540633,3.42326045,1.05540621,0.00108693202,0.140095547,0.0670929849,0.47082004,-0.00790247321,0.0194264557,1.49259865 +-0.0720182359,3.42333364,0.0720182359,7.95426604e-05,0.286267608,0.219287962,-0.302900642,0.0388620347,0.0193601716,0.101999998 +1.11006606,3.42339993,-1.11006606,0.000504392548,0.0948113203,0.0403541103,-0.072788462,-0.161671281,0.0194081198,1.56990099 +0.162210971,3.42352104,-0.162210971,0.000313828525,0.150631383,0.0935881212,-1.83811736,0.564244032,0.0192849729,0.229595631 +-0.263843894,3.42484236,0.263843924,0.0001951374,0.160172075,0.103948921,-2.52761459,0.114955634,0.0192432385,0.37330541 +0.501900375,3.42502427,-0.501900375,0.000593068777,0.197228611,0.127391294,-0.328473657,0.370970547,0.019104002,0.710498929 +-1.05961537,3.42508411,1.05961537,0.000969493296,0.139127895,0.066368714,0.440759152,-0.0151384994,0.019424919,1.49853051 +0.409946263,3.42544913,-0.409946263,0.000184900928,0.198575392,0.143548355,-1.3168664,0.724096417,0.0191094819,0.580067813 +-0.204690024,3.42544961,0.204690009,0.000133182213,0.143794134,0.0898362398,-2.20523691,0.0441032089,0.0192670096,0.289610952 +-0.378360242,3.42553663,0.378360271,0.00032399944,0.219744653,0.155453146,-1.81751347,0.390162319,0.0191933531,0.535168827 +0.400816202,3.42558122,-0.400816202,0.000830230536,0.196261421,0.142631441,-1.45740104,0.745746136,0.0191138927,0.567102611 +-0.291248322,3.42563152,0.291248322,0.000550622412,0.173302621,0.116702743,-2.54914904,0.16993615,0.0192356352,0.412427694 +0.173502594,3.42566299,-0.173502609,0.000614490185,0.147137716,0.090974465,-2.02344251,0.600257874,0.0192840081,0.245750219 +1.11779869,3.42573261,-1.11779869,0.000424611382,0.0995215252,0.0425147302,-0.0765697435,-0.183944374,0.0194073357,1.58081567 +-0.108233079,3.42586231,0.108233087,6.0474089e-05,0.138829783,0.0861978158,-1.14266109,0.00710261241,0.0193422046,0.153555349 +-0.0931443423,3.42596555,0.0931443423,0.000100433805,0.146507964,0.0929232985,-0.855495095,-6.17327169e-06,0.0193567369,0.132141456 +-0.246793568,3.42619562,0.246793553,0.00024258958,0.153152496,0.0980926752,-2.47055125,0.0787996799,0.0192468315,0.349132001 +0.544670224,3.42621756,-0.544670224,0.00152049155,0.191836029,0.114918023,-0.11798957,0.209453106,0.0191307403,0.770520389 +-0.110737607,3.42698622,0.110737607,0.000318218488,0.138501361,0.0859626159,-1.18509257,0.00403911481,0.0193374474,0.156804383 +-0.346382946,3.42709875,0.346382916,0.000443880621,0.206253693,0.143491521,-2.20457387,0.31606251,0.0192167088,0.489874393 +-0.63627404,3.42717505,0.63627404,0.000534660183,0.180694252,0.101127103,0.124243096,0.049235031,0.0193636771,0.899999976 +-0.201621026,3.42719245,0.201621041,5.93454388e-05,0.143056184,0.089676775,-2.18391085,0.0290935673,0.0192665178,0.285416424 +0.851756573,3.42735052,-0.851756573,0.00324809109,0.174585924,0.086473085,0.501188934,-0.0268619396,0.0193373412,1.20515847 +0.0805817842,3.42741919,-0.0805817842,0.000231534286,0.186370313,0.123480894,-0.359382331,0.0493315905,0.0192925613,0.114739776 +-0.0812663063,3.42742229,0.0812663063,8.26585019e-05,0.174273148,0.114783891,-0.575851679,0.0150555028,0.0193588436,0.11528375 +0.0716345087,3.4274559,-0.0716345087,0.000102292499,0.28662765,0.220285892,-0.139886558,0.0305643193,0.0192936435,0.102000006 +-0.0719063133,3.42745614,0.0719063133,3.65348096e-05,0.284520239,0.218728527,-0.312376797,0.0373894237,0.0193579514,0.101999998 +-0.342920035,3.42749166,0.342920065,0.000535114785,0.204691961,0.142272234,-2.24315095,0.306113064,0.0192184336,0.485005081 +0.119033292,3.42753744,-0.119033292,0.000133367022,0.163562104,0.1046727,-1.10478735,0.328931481,0.0192819666,0.168438777 +0.0919450149,3.42756748,-0.0919450149,0.000292029872,0.168210998,0.107847668,-0.611843109,0.099667117,0.0192874279,0.130913973 +-0.343763232,3.42784882,0.343763262,3.15207035e-05,0.205111042,0.142683327,-2.23592949,0.306519389,0.0192176569,0.486217767 +0.10653992,3.42847109,-0.10653992,0.000299832667,0.1678036,0.107274413,-0.886821985,0.217756689,0.0192822982,0.151695371 +-1.15421176,3.42875004,1.15421176,0.000246169162,0.150794104,0.0693467036,0.00948375743,-0.291130453,0.0194178261,1.63236499 +-0.597563028,3.42912531,0.597563028,0.000971441739,0.186785132,0.107015423,0.024415195,0.0868403688,0.0193364099,0.84555614 +-0.343388617,3.42918587,0.343388647,0.000218245317,0.204524085,0.142929032,-2.24122882,0.30156368,0.0192165356,0.485685498 +-0.198350266,3.42922187,0.198350266,8.72203382e-05,0.142529935,0.089756012,-2.15596867,0.0168789495,0.0192659497,0.280890852 +-0.344468683,3.42927265,0.344468683,0.000287281262,0.205228999,0.143238008,-2.22937512,0.301520795,0.0192155689,0.487189531 +1.01728952,3.4293716,-1.01728952,0.00080445077,0.158527523,0.0774667412,0.552353203,-0.0786875486,0.01939133,1.43918633 +1.18091905,3.42946744,-1.18091917,0.000583613175,0.13702099,0.0642401055,0.0958743989,-0.161764383,0.0194075145,1.6701417 +-0.216123447,3.42954111,0.216123447,0.000140093834,0.145516172,0.0918474495,-2.29088068,0.0254017971,0.0192550365,0.305896044 +-0.149609521,3.42956495,0.149609536,0.000241138914,0.136819839,0.0846751258,-1.70739281,0.00774967857,0.019299617,0.212269932 +-0.342377633,3.4295671,0.342377633,0.000580512802,0.203999981,0.142554596,-2.24997592,0.293937206,0.0192164648,0.484232634 +-1.14490819,3.43005896,1.14490819,0.000803598436,0.141951025,0.0642414615,-0.0173664242,-0.264340162,0.0194172282,1.61916971 +-0.241209984,3.43032575,0.241209984,0.000271930563,0.151095569,0.0971344933,-2.44304681,0.042612914,0.0192446094,0.341284782 +-0.19265607,3.43043804,0.19265607,0.000126389641,0.142072886,0.0892772153,-2.10701251,0.0115077086,0.0192678645,0.272601277 +-0.179439932,3.43071628,0.179439947,0.000209644902,0.140076548,0.0876677558,-1.99664664,0.00418971106,0.0192769151,0.254190713 +0.407807797,3.4308033,-0.407807797,0.000206727011,0.199963674,0.145267993,-1.34076571,0.707279146,0.0191030353,0.577196896 +-0.417887062,3.43080425,0.417887062,0.00025511859,0.225884393,0.161226407,-1.29037273,0.361929476,0.0191651862,0.591008186 +-1.11107254,3.43081665,1.11107254,0.00164768763,0.112487033,0.0483568162,-0.0693451837,-0.148315445,0.0194182638,1.57145965 +0.599038243,3.43087101,-0.599038243,0.00109363603,0.184682488,0.102481216,0.0370517559,0.0694760233,0.0191772059,0.847476006 +-0.133803114,3.43113637,0.133803114,0.000155220609,0.136339724,0.0844679102,-1.52503109,-0.00344051793,0.019308826,0.189297318 +1.13935411,3.43115282,-1.13935411,0.000450241903,0.117041454,0.0510561466,-0.0607740022,-0.234180868,0.019405473,1.61134708 +-0.248054653,3.43140745,0.248054653,0.000179267998,0.153177783,0.0993986279,-2.47976923,0.0436030887,0.0192417055,0.350981712 +-0.421057343,3.43178463,0.421057343,0.000295063364,0.225758269,0.161141381,-1.2509129,0.3540833,0.0191641785,0.595488548 +-0.135208026,3.43188143,0.135208026,0.000153615503,0.136435658,0.0845915526,-1.54446805,-0.00566042447,0.019306425,0.191266507 +-0.107159868,3.43205833,0.107159868,0.000168067942,0.13923198,0.0874677151,-1.1416297,-0.0132100955,0.0193326902,0.151657864 +-0.163487613,3.43212104,0.163487613,0.00016658174,0.138361678,0.0862316042,-1.84922874,-0.00377748348,0.0192859396,0.231225014 +-0.268288136,3.43215537,0.268288136,0.000308784918,0.161288977,0.106738314,-2.5497005,0.0697264075,0.0192352887,0.379695475 +1.13272309,3.43219423,-1.13272309,0.000396849646,0.111339308,0.0480433926,-0.0738003403,-0.220279127,0.0194048826,1.60200799 +-0.132858589,3.43244815,0.132858589,0.000265047071,0.136408731,0.0846556127,-1.51688623,-0.00890140235,0.0193077549,0.187958479 +-0.0926185474,3.43261766,0.0926185399,0.000193971951,0.14722532,0.0943894833,-0.859688282,-0.0159206558,0.019347474,0.131075978 +-0.274202466,3.43264532,0.274202466,0.000295723847,0.164076358,0.109454818,-2.5575881,0.0860690773,0.0192332342,0.388020307 +-0.419180989,3.43265676,0.419180989,3.22217261e-06,0.225974813,0.161658481,-1.27264297,0.352433175,0.0191622917,0.592871904 +-0.134011716,3.43266678,0.134011731,1.54561371e-06,0.136403114,0.0846440718,-1.53309464,-0.00936916843,0.0193062909,0.189630643 +-0.41168803,3.43271947,0.411688,0.000244382129,0.224893421,0.160905987,-1.37277079,0.353289217,0.0191663243,0.582225084 +0.168956041,3.4327457,-0.168956026,0.000162581375,0.145828649,0.0899420157,-2.00006247,0.580024958,0.019283561,0.239354953 +-0.222613201,3.43296981,0.222613186,0.000355432741,0.146047696,0.0931462049,-2.3401916,0.00717579387,0.0192487612,0.315229893 +-0.418066591,3.43329978,0.418066591,0.000123551217,0.225897118,0.161881015,-1.28703475,0.350316793,0.0191615559,0.59128052 +-0.545481682,3.43359089,0.545481682,0.00073992234,0.198049724,0.121496275,-0.174339011,0.152998358,0.0192854851,0.77205801 +-0.244829237,3.43376923,0.244829237,0.000170047133,0.151589915,0.098771818,-2.46525908,0.0212627854,0.0192407575,0.34639135 +-0.165774047,3.43390083,0.165774047,0.000192197811,0.138683289,0.0866718069,-1.87610376,-0.0107802246,0.0192821603,0.234474123 +-0.133835196,3.43391991,0.133835182,0.000154287627,0.136445165,0.0848505795,-1.53421926,-0.0148664992,0.0193043761,0.189329997 +0.144139737,3.43405581,-0.144139737,0.000304638292,0.151673108,0.0959640816,-1.59579897,0.51954329,0.0192846153,0.204259902 +0.243605524,3.43407512,-0.243605509,0.000883841596,0.138633236,0.0871453285,-2.8228755,0.629219651,0.0192475952,0.344718933 +0.16227749,3.43422937,-0.16227749,0.000245094794,0.143678129,0.0890884846,-1.91377223,0.578255892,0.0192851461,0.229732692 +-0.0720766336,3.4343853,0.0720766336,7.31731125e-05,0.280813634,0.21822682,-0.322005957,0.033715114,0.0193507392,0.101999998 +-0.0811727494,3.4344244,0.0811727494,0.000162589015,0.174236313,0.115930893,-0.585609972,0.00480787642,0.0193509571,0.114874601 +-0.419621885,3.4344964,0.419621885,6.98125659e-05,0.22576122,0.162243515,-1.26524591,0.343592793,0.0191597193,0.593472719 +-0.382864594,3.43452597,0.382864594,0.000361275888,0.21995689,0.158063576,-1.7606765,0.347017437,0.019180486,0.541672468 +-0.515309632,3.43454409,0.515309691,0.000588935742,0.205145091,0.131841764,-0.346936762,0.198410973,0.0192503259,0.728910506 +0.130060807,3.43456936,-0.130060807,0.000183728014,0.157878026,0.101104312,-1.3221488,0.434024811,0.0192814562,0.184064776 +-0.16480653,3.43459845,0.164806515,1.98667567e-06,0.138585329,0.0866891071,-1.86773491,-0.014614936,0.0192819182,0.23315075 +0.239892751,3.43462992,-0.239892751,0.000442231831,0.138045236,0.0863843411,-2.80620217,0.625490427,0.0192499943,0.339570343 +-0.635956287,3.43470311,0.635956287,0.00055358588,0.193926141,0.101728469,-0.0844659284,0.0183181446,0.0193545725,0.899568677 +0.12419197,3.43473959,-0.12419197,0.000135172071,0.159693241,0.102736659,-1.21988583,0.402800292,0.0192813538,0.175937861 +-0.164041385,3.43494081,0.16404137,7.00811506e-05,0.13853544,0.0866955668,-1.8598088,-0.0163574703,0.0192819256,0.232030556 +-0.165835306,3.43525767,0.165835306,0.000145631871,0.138707519,0.0868885294,-1.87709177,-0.0179671347,0.0192805864,0.23454912 +-0.164818808,3.43538594,0.164818808,1.07401434e-06,0.138581395,0.0868240595,-1.86788189,-0.0186308734,0.0192809794,0.233148277 +-0.418036252,3.43586302,0.418036252,0.000376083248,0.225363597,0.163219452,-1.28674996,0.337381035,0.0191583484,0.591222346 +-0.377412796,3.43590879,0.377412796,0.000311257114,0.21826753,0.15730229,-1.83707774,0.337811589,0.0191814471,0.533958495 +1.18080831,3.43598509,-1.18080842,0.000316152116,0.13360472,0.0620852187,0.0777620748,-0.160376742,0.0194052048,1.66999173 +-0.164512366,3.43614197,0.164512366,8.14964278e-06,0.138581604,0.0870078728,-1.8643254,-0.0216546245,0.0192800742,0.232698292 +1.17735136,3.43641734,-1.17735124,0.000358740625,0.134700224,0.0624968819,0.0699738041,-0.167989135,0.0194050223,1.66511881 +0.31830892,3.4364295,-0.31830889,0.000839158427,0.170223534,0.11929328,-2.6702013,0.662065148,0.0191705525,0.451087356 +-0.199909508,3.43643761,0.199909493,0.000103038146,0.142366916,0.0912117139,-2.16488218,-0.024277404,0.0192579851,0.282854497 +0.402742773,3.43678808,-0.402742773,0.000953211158,0.201557472,0.146640942,-1.42965829,0.675694942,0.0190987252,0.569878757 +-0.165370464,3.43684936,0.165370464,4.47155471e-05,0.138621777,0.0872432888,-1.87186325,-0.0259078443,0.019278802,0.233896255 +0.722793221,3.43718886,-0.722793221,0.00254130038,0.174613118,0.0881590471,0.239330903,0.0638351142,0.0192603972,1.02248287 +0.636187077,3.43722773,-0.636187077,0.000781561655,0.177934706,0.094964318,0.028242534,0.167393446,0.0192025974,0.899900317 +0.121445894,3.43738723,-0.121445887,0.00012039415,0.158968508,0.102460392,-1.18306661,0.3926256,0.0192815382,0.172045603 +-0.95442009,3.43872023,0.954420149,0.00152974902,0.162646741,0.0799158961,0.669503629,-0.0778726861,0.0194105934,1.34987617 +-0.160012126,3.4390254,0.160012141,9.06911737e-05,0.138304204,0.0872196108,-1.82401097,-0.0354685634,0.0192786064,0.226296663 +0.123894051,3.43902731,-0.123894051,6.99477241e-05,0.156877026,0.101067729,-1.2411232,0.411491483,0.0192813165,0.17559807 +0.241328776,3.43922377,-0.241328761,0.000493641419,0.138530493,0.0864569023,-2.82063127,0.603270352,0.0192449857,0.341489434 +0.302871227,3.43936324,-0.302871227,0.000648544985,0.163284928,0.110960655,-2.78532243,0.603262365,0.0191885699,0.428778112 +0.569148242,3.44093728,-0.569148183,0.00149428425,0.188574508,0.110367194,-0.0107617099,0.110872559,0.0191365387,0.805246592 +0.884263933,3.44101024,-0.884263873,0.00288240798,0.173360705,0.0856894553,0.536321521,-0.0541681871,0.0193392187,1.25097609 +-0.207452565,3.44104433,0.207452565,0.000129902663,0.143076986,0.0925013945,-2.22305369,-0.0501277819,0.0192491971,0.293422431 +-0.164196223,3.44116426,0.164196223,9.8756871e-05,0.138533652,0.0880032852,-1.86305583,-0.0461114123,0.0192729104,0.232216448 +0.61545378,3.44164705,-0.61545378,0.000731509179,0.182509631,0.100268476,0.0860982388,0.0158067495,0.0191839859,0.871094286 +-0.301328778,3.44192886,0.301328748,0.000404240272,0.178213164,0.124383911,-2.53607655,0.0866025016,0.0192175675,0.426526606 +0.128741279,3.44249797,-0.128741279,0.000151823944,0.153342545,0.0981972143,-1.35292649,0.438252687,0.0192814283,0.182225913 +-1.17123508,3.44392133,1.1712352,0.000774460204,0.124338061,0.0566944554,0.0902800858,-0.186890125,0.0194072574,1.65639782 +-0.565446854,3.44407415,0.565446854,0.000647102192,0.193324149,0.115592025,-0.079637751,0.0970611647,0.0192968454,0.800007701 +1.16326284,3.44409251,-1.16326272,0.000599704217,0.132469982,0.060828764,0.047237426,-0.168239772,0.0194009654,1.64511871 +0.115501136,3.44440293,-0.115501136,0.00015937518,0.154966056,0.100369461,-1.10666323,0.3709867,0.0192824993,0.16339463 +0.0923872665,3.44440579,-0.0923872739,0.000199028698,0.160608113,0.104426779,-0.64951843,0.161884159,0.0192873906,0.130820513 +0.0810191929,3.44442439,-0.0810191929,0.000157398434,0.182629153,0.121656917,-0.378287107,0.0823744386,0.0192914512,0.114722468 +0.0720341653,3.44445443,-0.0720341653,6.94479895e-05,0.300901234,0.22929506,-0.141018644,0.0327274874,0.0192918051,0.101999998 +0.506456256,3.44451618,-0.506456256,0.00133457291,0.197462335,0.127703711,-0.254636973,0.296400905,0.0190802161,0.716469765 +1.08091009,3.4446187,-1.08091009,0.00117015489,0.127131909,0.0587964132,0.20512104,-0.0524447784,0.0193957519,1.52880466 +-0.118785687,3.44473076,0.118785687,0.00018122897,0.137126356,0.0874094218,-1.35550165,-0.0556972176,0.0192993525,0.168325365 +-0.184119001,3.44474125,0.184119001,0.000229567842,0.140655577,0.0901148245,-2.04269814,-0.0701329336,0.01925583,0.260512412 +0.106854767,3.44490409,-0.106854767,0.000171586609,0.156052023,0.101043291,-0.957225561,0.295366347,0.0192832891,0.151303172 +-0.468408138,3.44502163,0.468408167,0.000551193836,0.217567861,0.152828887,-0.699157298,0.227824152,0.0191724654,0.662492037 +0.752475441,3.44543052,-0.7524755,0.00266268104,0.17417033,0.0869493634,0.310919732,0.0197202303,0.019275954,1.06480324 +-0.104167983,3.44585419,0.104167983,0.000160385622,0.140094399,0.090342477,-1.1285857,-0.0528392233,0.0193124302,0.148013964 +-0.148349911,3.44598651,0.148349911,0.000144590391,0.137419313,0.0877483562,-1.71451783,-0.0682904571,0.0192761868,0.209889308 +-0.365777373,3.44602251,0.365777403,0.000425291015,0.212597653,0.156390116,-2.00455332,0.26917091,0.0191781856,0.517976761 +-1.16343141,3.4460566,1.16343141,0.000462223892,0.134357691,0.0622779615,0.103143908,-0.204601735,0.0194050707,1.64538169 +-0.213170141,3.44611931,0.213170141,0.000186235993,0.143703133,0.0938852653,-2.26528549,-0.0780835375,0.0192401148,0.301540673 +-0.312001467,3.44668841,0.312001467,0.000737631053,0.18277958,0.131235346,-2.50628853,0.107867032,0.0192090943,0.441655576 +-0.285883009,3.44714832,0.285883009,0.000329318718,0.168044522,0.117384069,-2.57812238,0.0100178644,0.0192166883,0.40479666 +0.636260271,3.44719481,-0.636260271,0.000262852642,0.180543333,0.0977654085,0.128544956,-0.0256550796,0.0192029625,0.899999976 +-0.186996073,3.44732237,0.186996073,7.83689538e-05,0.140699059,0.0907253698,-2.06975937,-0.0862602741,0.0192510448,0.264787734 +0.189491123,3.4474144,-0.189491123,0.000783145661,0.137561649,0.0831268802,-2.36030817,0.612823248,0.0192758273,0.269314051 +-0.0907996446,3.44765735,0.0907996446,0.000195299261,0.148865223,0.0977902338,-0.856207013,-0.047324907,0.019326359,0.129013568 +-0.130676031,3.4478538,0.130676031,4.74015324e-05,0.136587739,0.0875101835,-1.52172065,-0.071518071,0.0192832369,0.18480885 +-0.111972705,3.44791341,0.111972705,0.000120013065,0.138457984,0.0891275182,-1.25660086,-0.0666560233,0.0193011295,0.158537433 +-0.585576475,3.44821405,0.585576415,0.000938143639,0.18885538,0.110297814,0.000904081389,0.0567878224,0.019308148,0.82834518 +0.211512625,3.44828439,-0.211512625,0.000443764584,0.139332533,0.0838107988,-2.56463528,0.566473007,0.0192585122,0.299200237 +0.412974924,3.44857168,-0.412974924,0.000875866099,0.205022812,0.149264455,-1.23868132,0.608715117,0.0190801993,0.584174871 +-0.201772705,3.44875765,0.201772705,8.53258025e-05,0.142207995,0.0927543193,-2.1800313,-0.0940981209,0.0192432031,0.285386175 +-0.14863795,3.44884491,0.14863795,2.02277006e-05,0.137600914,0.0882120505,-1.72339439,-0.0818570405,0.0192716196,0.210330516 +-0.146088243,3.44924355,0.146088243,9.60768084e-05,0.137431711,0.0881247446,-1.69741726,-0.0830035806,0.0192729626,0.206698775 +0.0808467343,3.44931936,-0.0808467343,7.00096061e-05,0.182087228,0.121601731,-0.378671587,0.0911608115,0.0192913618,0.114665434 +0.0719171166,3.44933724,-0.0719171166,3.08282833e-05,0.304664195,0.231995523,-0.137889624,0.0330024697,0.0192914065,0.102000006 +0.0921234637,3.44941688,-0.0921234637,8.92193711e-05,0.159071118,0.103986867,-0.653634131,0.179568604,0.0192877389,0.130667537 +0.226666823,3.4494698,-0.226666823,0.0003354738,0.13783057,0.0840704367,-2.71910238,0.576839626,0.0192486066,0.32058537 +-0.20897831,3.44955039,0.208978295,2.83648715e-05,0.142874628,0.0937084854,-2.2367115,-0.10009551,0.0192386284,0.295686036 +0.172515273,3.44980121,-0.172515258,0.000356084667,0.13578099,0.0831984058,-2.15708447,0.621222854,0.0192834865,0.245015353 +0.106431298,3.44982386,-0.106431298,6.8143192e-05,0.153672144,0.10017097,-0.968484998,0.317449003,0.0192839075,0.150960475 +-0.23329635,3.4498837,0.23329635,0.00017243826,0.14664869,0.098057054,-2.39474249,-0.0920771658,0.0192294847,0.330010056 +0.437966645,3.44998264,-0.437966645,0.000811227539,0.204792202,0.146199718,-0.897038102,0.541602075,0.0190654919,0.619406819 +-0.122659922,3.45000076,0.122659922,0.000105583749,0.137249708,0.0880398154,-1.42276049,-0.077104114,0.0192869212,0.17376408 +-0.149891123,3.45010376,0.149891108,0.000110658373,0.137768492,0.088580139,-1.7368871,-0.0886555761,0.0192687307,0.212037966 +-0.0803062543,3.45033503,0.0803062543,0.000165075122,0.174068585,0.118500933,-0.59262526,-0.0160538144,0.0193322022,0.114092223 +-0.190618902,3.45038128,0.190618902,0.000153076195,0.140905827,0.0917874426,-2.09460306,-0.103727937,0.0192466844,0.269700229 +-0.0717977881,3.45043349,0.0717977881,7.58896203e-05,0.273025781,0.217380196,-0.328191608,0.0260514412,0.019332746,0.101999998 +-0.274799317,3.45049429,0.274799317,0.000173022476,0.159264028,0.113806188,-2.5723877,-0.0501256809,0.0192201771,0.388682187 +-0.210682869,3.45105743,0.210682884,9.34657e-05,0.142930344,0.0942405015,-2.24721909,-0.10902907,0.0192355793,0.298062801 +-0.224768788,3.45108509,0.224768788,0.000116233772,0.14522019,0.0967589244,-2.33723521,-0.10336335,0.019231433,0.31788528 +1.10449278,3.45129275,-1.1044929,0.000785758195,0.12214686,0.0549560115,0.0471081287,-0.0969718099,0.0193945114,1.56202114 +0.142560959,3.45135951,-0.142560959,0.000570926699,0.141170457,0.0892105699,-1.68859744,0.536746979,0.0192848425,0.202113271 +-0.11728742,3.45155454,0.117287427,9.82929341e-05,0.137394503,0.0885071084,-1.35664725,-0.0826108158,0.0192890018,0.166215181 +-0.235253081,3.45170903,0.235253081,0.000176916787,0.146920502,0.0988508165,-2.40675116,-0.103375591,0.0192274358,0.332771033 +-0.462259054,3.45171404,0.462259054,0.000529339479,0.218822643,0.155372038,-0.756920695,0.211117387,0.0191594623,0.653866231 +0.35701859,3.45176053,-0.35701856,0.000511130609,0.194290787,0.140883639,-2.17575359,0.620396256,0.0191200171,0.504914701 +1.05783248,3.45182848,-1.0578326,0.00104751531,0.137591973,0.0650805682,0.343331218,-0.0487701297,0.0193840936,1.4961431 +-0.383936405,3.45197392,0.383936405,0.000310827803,0.216951311,0.163037047,-1.76254296,0.254613042,0.019160118,0.542995811 +-0.146167606,3.45261192,0.146167606,7.61374467e-05,0.137461916,0.0888455883,-1.70375109,-0.0983001217,0.0192667861,0.206760094 +-0.173442483,3.45266581,0.173442483,0.000151596731,0.13958326,0.090661332,-1.95657504,-0.108186103,0.0192506406,0.245451227 +0.459680408,3.45267725,-0.459680408,0.000624431064,0.20646444,0.144657731,-0.622390032,0.452560991,0.0190567356,0.650172055 +-0.304672927,3.4527626,0.304672927,0.000292179466,0.176117584,0.129949987,-2.53981376,0.038479425,0.0192091446,0.431154549 +-0.612192333,3.45280409,0.612192273,0.00129757065,0.183732986,0.104638308,0.0825780109,0.0192305949,0.019328868,0.866107821 +-0.259218395,3.45335889,0.259218425,0.000217563691,0.153532773,0.106495731,-2.53417873,-0.108335085,0.0192197934,0.366732419 +-0.135237485,3.45344305,0.135237485,0.000135711569,0.136929184,0.0884192064,-1.58535433,-0.0949837714,0.0192729961,0.191715151 +0.123607039,3.45347357,-0.123607039,0.000204179174,0.144455358,0.0928359255,-1.3569572,0.427284658,0.0192855913,0.174863905 +0.33648932,3.4534955,-0.33648932,0.000801370246,0.184939489,0.131804809,-2.47794056,0.589947343,0.0191368312,0.476939499 +1.03056335,3.4535377,-1.03056335,0.0011280803,0.152279601,0.0736488253,0.49498415,-0.0696965158,0.0193764437,1.4576335 +-0.102920696,3.45362282,0.102920696,0.000133099631,0.140732512,0.0926396847,-1.10792482,-0.0700981244,0.0192994419,0.145870328 +1.11452031,3.45372009,-1.11452031,0.00043144665,0.123445809,0.0554405674,0.0275142938,-0.118471973,0.0193940904,1.57618022 +-0.232969776,3.45380378,0.232969776,0.000107522108,0.145923436,0.0987180471,-2.39075494,-0.118341267,0.0192266442,0.329526365 +1.00481617,3.45394373,-1.00481629,0.00129789999,0.159936041,0.0779919401,0.562143505,-0.0906759351,0.0193685666,1.42124939 +-0.205759838,3.45411301,0.205759838,0.00010041552,0.142204612,0.0943269804,-2.20778632,-0.12627089,0.0192341357,0.291032404 +-1.15930283,3.45415449,1.15930283,0.000466345606,0.132054687,0.0602872223,0.0674063042,-0.211566716,0.0193991326,1.6395663 +0.0809610114,3.45419598,-0.0809610114,0.000152606284,0.180295989,0.120899662,-0.389588743,0.101547241,0.0192916561,0.114633374 +0.0720384791,3.4542079,-0.0720384866,6.78686338e-05,0.310257256,0.235939294,-0.142335936,0.0337636173,0.019291386,0.101999998 +0.0922068954,3.4543457,-0.0922068954,0.000188064281,0.155568987,0.10239622,-0.67146951,0.198429421,0.0192886982,0.130561322 +0.106431313,3.45434856,-0.106431313,0.000242817143,0.148921177,0.0976045579,-0.994454741,0.339064628,0.019285487,0.150705367 +-0.256133437,3.45454812,0.256133437,0.000198549198,0.152196616,0.105627343,-2.52015185,-0.121560447,0.0192197822,0.362346798 +-0.531684935,3.45467615,0.531684935,0.000844972034,0.201076537,0.127747908,-0.224974722,0.106902435,0.0192486066,0.752233028 +-0.947685003,3.45558786,0.947685003,0.00247127702,0.163079023,0.0799359009,0.661900282,-0.0955255628,0.0193978772,1.34051347 +0.831064105,3.4559505,-0.831064105,0.0046340134,0.17478922,0.086452812,0.472448647,-0.0490269624,0.0193091277,1.17705774 +-0.149914935,3.45596361,0.149914935,6.94096307e-05,0.137558565,0.0897356346,-1.74131656,-0.115318432,0.0192589499,0.212036163 +-0.0901803076,3.45608997,0.0901803076,0.000152013294,0.149621323,0.100269623,-0.839767814,-0.0593127981,0.0193110667,0.127808407 +-0.185512394,3.4565196,0.185512394,9.7963697e-05,0.139982998,0.0926467031,-2.04702544,-0.135718375,0.0192403588,0.262409866 +0.986165762,3.45698667,-0.986165762,0.00197730004,0.163829327,0.0801308826,0.581717491,-0.0965083316,0.019361848,1.39539611 +-0.108912587,3.45717525,0.108912587,8.6119624e-05,0.139060989,0.0916915759,-1.21926188,-0.0916508958,0.0192867182,0.154215217 +-0.259629339,3.45722032,0.259629339,4.75961278e-05,0.152915329,0.108941801,-2.52960801,-0.121092774,0.0192167517,0.367328107 +-0.469733417,3.45736313,0.469733417,0.000646718603,0.217383862,0.154191539,-0.673415124,0.174265966,0.0191580914,0.664437771 +1.14070857,3.45757246,-1.14070857,0.000544343668,0.128128141,0.0575444177,2.91967081e-05,-0.175209507,0.0193941463,1.61327004 +-0.215557247,3.45763946,0.215557247,0.000156410562,0.14227134,0.096390605,-2.27146101,-0.149112567,0.0192277599,0.304872185 +-1.14744568,3.45780039,1.14744568,0.000898791128,0.131366968,0.0598054007,0.067023024,-0.18693316,0.019396957,1.62275887 +-0.548967242,3.45804477,0.548967242,0.00073858758,0.197034046,0.1223405,-0.145981103,0.0755513683,0.0192642882,0.776529849 +0.153086111,3.45846915,-0.153086111,0.000354064745,0.132704049,0.0819258615,-1.92951894,0.577108562,0.0192856174,0.217113644 +-0.956770658,3.45852089,0.956770718,0.00213179574,0.162052423,0.0793496594,0.670094788,-0.0987081975,0.0193962958,1.35335016 +-0.2915048,3.45880437,0.2915048,0.000215050532,0.166876554,0.124010161,-2.5773685,-0.0354230814,0.0192072503,0.412618726 +-0.0801907033,3.45904541,0.0801907033,0.000130837318,0.173985898,0.120678648,-0.580960095,-0.0227723289,0.0193157177,0.113646336 +-0.237705797,3.45919609,0.237705782,0.000156033828,0.146037832,0.101889923,-2.41348505,-0.154309794,0.01922266,0.336182833 +-0.266937524,3.45937204,0.266937494,0.000189439073,0.154690593,0.111250348,-2.55566502,-0.134348258,0.0192141738,0.377536029 +-0.0719730705,3.45955038,0.0719730705,6.23034284e-05,0.268038422,0.218017235,-0.316751987,0.0257799253,0.0193156805,0.101999998 +-0.353305638,3.45964241,0.353305638,0.000271229481,0.202996373,0.154452667,-2.18744922,0.141255796,0.0191782434,0.499812305 +-0.855798483,3.45969915,0.855798483,0.00345104444,0.170887262,0.0838319585,0.531128883,-0.103243791,0.0193851311,1.21144772 +-0.464403003,3.46002054,0.464403003,0.000312119722,0.217444316,0.156585813,-0.721091568,0.176069364,0.0191514567,0.656942308 +0.37082532,3.46002078,-0.37082535,0.00057413301,0.201589569,0.146637872,-1.97354102,0.573369741,0.0190985948,0.524440527 +-0.38301909,3.46009779,0.38301912,0.000175820242,0.214989081,0.164363638,-1.78227329,0.208184168,0.0191520508,0.541761756 +-0.678482354,3.46019697,0.678482354,0.00109200878,0.190544695,0.0973653942,0.0706124753,-0.0681845248,0.01934525,0.959541321 +1.13302624,3.46022201,-1.13302612,0.000356583478,0.126600027,0.0567766987,0.00361833116,-0.159227788,0.0193923879,1.60244012 +-0.126017854,3.46057653,0.126017854,8.09571648e-05,0.136868671,0.089793399,-1.48745084,-0.122504979,0.019265566,0.178243086 +-0.805740774,3.46060371,0.805740774,0.00516928174,0.175700426,0.0866158828,0.426038265,-0.0989110097,0.019376602,1.1408124 +-0.196387947,3.46062899,0.196387947,0.000127682113,0.140703544,0.0944993123,-2.13359046,-0.165272802,0.019230267,0.277886212 +-0.138524935,3.46080112,0.138524935,0.000106961423,0.137148768,0.0901056007,-1.63330674,-0.130414918,0.0192572996,0.196132153 +-0.349412143,3.46081996,0.349412143,0.000291749777,0.200053155,0.153315961,-2.23294783,0.133373618,0.0191802531,0.494406492 +0.363334626,3.46084738,-0.363334596,0.000581399712,0.200139195,0.145463839,-2.09587216,0.569957972,0.0191046353,0.513870299 +-0.499120325,3.46084929,0.499120295,0.000903788838,0.20938684,0.141492009,-0.426342666,0.13077113,0.0191961396,0.706422091 +0.454383671,3.46085596,-0.454383671,0.000481202063,0.207770422,0.146988764,-0.651307583,0.449511111,0.0190451797,0.642788112 +0.214147851,3.46104431,-0.214147851,9.62820486e-05,0.137622401,0.0820331946,-2.63636971,0.53967005,0.0192491952,0.303111076 +-0.388476372,3.46122551,0.388476372,0.000181421376,0.216214582,0.165834993,-1.70832038,0.207198769,0.0191457886,0.549509585 +-0.279852778,3.46137977,0.279852778,0.000208372483,0.159629196,0.11757718,-2.58497763,-0.118687503,0.0192097258,0.395887613 +0.457282871,3.46150327,-0.457282871,0.000356028118,0.207554087,0.146472365,-0.621893108,0.436591506,0.0190442167,0.646890521 +-0.171479419,3.46188855,0.171479419,0.000141792567,0.139190733,0.0924194381,-1.93414354,-0.154388025,0.0192396827,0.242706627 +-0.128555417,3.46192741,0.128555417,7.25924619e-05,0.136783928,0.0899687931,-1.52170098,-0.128873482,0.0192615595,0.181843445 +-0.386221707,3.46231556,0.386221707,2.58301734e-05,0.215553105,0.165749252,-1.74041569,0.200117439,0.0191461295,0.546343446 +-0.370799452,3.4623642,0.370799452,0.000176644433,0.209245652,0.16059269,-1.95118117,0.16292575,0.0191608798,0.524411142 +0.451646447,3.46241975,-0.451646447,8.00478374e-05,0.208261892,0.147656351,-0.687339306,0.448935658,0.0190449711,0.63894254 +-0.571633875,3.46246982,0.571633875,0.00106004241,0.191220403,0.114087373,-0.0349869132,0.036680676,0.019285623,0.808899879 +-1.16197574,3.46255445,1.16197574,0.00111979805,0.131337851,0.0599361323,0.0582587048,-0.192883253,0.0193937328,1.64334249 +0.209717795,3.46261716,-0.209717795,0.000423632882,0.137526169,0.0817404464,-2.59639049,0.542134225,0.0192517713,0.29677394 +-0.160832942,3.46272802,0.160832942,0.000134944072,0.138376877,0.091773957,-1.84216142,-0.15063788,0.0192436054,0.227545053 +0.316106111,3.46294403,-0.316106141,0.00141658587,0.176046431,0.12156523,-2.74073935,0.491175324,0.0191486776,0.447552145 +-0.178400069,3.46317291,0.178400069,8.9887697e-05,0.139181495,0.0931718573,-1.98891175,-0.168636367,0.0192351714,0.252369344 +-0.125131622,3.46334314,0.125131622,5.4530763e-05,0.137045115,0.0905267447,-1.47672772,-0.130003899,0.0192612391,0.176991135 +-0.127321526,3.46340966,0.127321526,3.08888448e-05,0.136884183,0.0904018059,-1.50671053,-0.131849244,0.019259518,0.180121124 +-0.113389485,3.46348286,0.113389492,0.000103641127,0.138162494,0.0917446911,-1.30931783,-0.114841357,0.0192703977,0.160710722 +-0.251622409,3.46355224,0.251622409,0.000177694601,0.149036825,0.106922537,-2.48679686,-0.183237866,0.0192162264,0.355873466 +-0.467907012,3.46356225,0.467906982,0.000238967332,0.216195792,0.157115459,-0.674458504,0.157118112,0.019150028,0.66190064 +-0.519624829,3.46376801,0.519624829,0.00102123839,0.203956664,0.133703828,-0.284840643,0.0948400497,0.0192184374,0.735097408 +-0.164837956,3.46381068,0.164837956,9.01520252e-05,0.138640016,0.0921980441,-1.87653625,-0.15806967,0.0192393959,0.23317191 +0.163366646,3.4638443,-0.16336666,0.000568186399,0.133249119,0.0812306255,-2.10875893,0.580275953,0.0192825906,0.232140779 +-0.100716852,3.46390653,0.100716852,0.000132696092,0.141525686,0.0950049683,-1.09473217,-0.0989511088,0.019282762,0.14312011 +-0.188874647,3.46403098,0.188874647,7.53747736e-05,0.13975361,0.0944700241,-2.06842566,-0.180336639,0.0192286838,0.267176241 +-0.183179528,3.46429062,0.183179528,4.46155718e-05,0.139248848,0.0938326269,-2.02703404,-0.178623125,0.0192311388,0.259229004 +0.127460778,3.46441197,-0.127460778,0.000248697586,0.133103535,0.0851732418,-1.52695918,0.469956815,0.0192897711,0.180425376 +-0.12883611,3.46461296,0.12883611,3.93222508e-05,0.136918858,0.0907821879,-1.52327967,-0.136090204,0.0192562658,0.182234198 +-0.352221966,3.46465468,0.352221996,0.000296854152,0.198892713,0.156174809,-2.20217109,0.136128515,0.0191750582,0.49824968 +-0.324119389,3.4647696,0.324119359,0.000247846212,0.185185403,0.142909884,-2.46157932,0.0165375173,0.0191886928,0.45846799 +0.218759269,3.46476984,-0.218759283,0.000343671651,0.138185114,0.0822458118,-2.67495084,0.511655807,0.0192425773,0.3094818 +-0.260104895,3.46483898,0.260104895,0.000195165281,0.151083037,0.116579905,-2.49677801,-0.143535033,0.019215012,0.367900163 +0.464114308,3.46514034,-0.464114308,0.00122178614,0.206484795,0.144529924,-0.559538782,0.399584919,0.0190414973,0.656421423 +-0.325760603,3.46538758,0.325760633,0.000253624545,0.185627833,0.143773511,-2.44972277,0.0228177663,0.0191876534,0.460847288 +0.455285758,3.46548057,-0.455285788,0.000201964314,0.208414599,0.147537977,-0.632004797,0.427739322,0.0190401152,0.644073725 +-1.10520387,3.46549225,1.10520387,0.00197553611,0.128154963,0.0579876937,0.0925046504,-0.0911401734,0.0193932597,1.56315184 +0.602461159,3.46582747,-0.602461159,0.00143687811,0.182769597,0.101601131,0.0900900662,-0.0197604652,0.0191527717,0.85244453 +-0.389979452,3.46588755,0.389979482,0.000601411099,0.215450361,0.167921349,-1.68520117,0.183788866,0.0191389378,0.551594555 +-0.32101199,3.46590447,0.32101202,0.000164191079,0.182801664,0.141647309,-2.47524524,-0.00232877629,0.0191897582,0.454043686 +1.17197406,3.46622753,-1.17197406,0.000841394358,0.124218926,0.0564557835,0.0418722332,-0.117182106,0.0193878599,1.65743387 +0.624183774,3.46644592,-0.624183774,0.000723619713,0.180692807,0.0986835361,0.125328913,-0.052893322,0.0191757157,0.882942796 +1.20973742,3.46661115,-1.20973742,0.000708172331,0.111064337,0.050697621,0.0343787521,-0.0317009501,0.0193860047,1.71087348 +-0.430333465,3.46663809,0.430333436,0.000522749673,0.218582466,0.169594094,-1.10168672,0.19462052,0.0191224627,0.608634531 +-0.162310109,3.4666872,0.162310109,3.30128423e-05,0.138291165,0.0925749838,-1.85650492,-0.170073479,0.0192359015,0.229646266 +-0.157810152,3.46689177,0.157810166,6.9894726e-05,0.137931675,0.0923005939,-1.81858897,-0.168316633,0.0192377847,0.223214433 +1.22877443,3.46694398,-1.22877431,0.000328239112,0.0948182493,0.0435716026,-0.0650430471,-0.0238184221,0.0193855856,1.73779523 +-0.195446581,3.46696472,0.195446581,7.43980636e-05,0.140044346,0.0966122672,-2.11262798,-0.195597067,0.019224206,0.276597321 +-0.672226191,3.46712875,0.672226191,0.00108482572,0.190860182,0.0975824147,0.0512621962,-0.0834550261,0.0193388406,0.950766206 +-0.0888921991,3.4672451,0.0888921991,0.000193563508,0.150525779,0.102968566,-0.833503366,-0.081090197,0.0192902721,0.126305833 +-0.384706885,3.46731663,0.384706855,0.000333570875,0.21341899,0.167825341,-1.76546574,0.173831031,0.0191427283,0.544118643 +1.18797112,3.46732807,-1.18797112,0.000643544539,0.122392192,0.0559630468,0.063041389,-0.0947061479,0.0193867926,1.68010044 +0.213969097,3.46736693,-0.213969097,0.000413350936,0.137923896,0.0815306753,-2.63985348,0.509151936,0.0192450732,0.302807927 +-0.22260879,3.4673872,0.222608775,0.000187752245,0.141210884,0.0990954265,-2.31311417,-0.210251689,0.0192166604,0.314929813 +0.273192972,3.46772194,-0.273192942,0.000335171586,0.150477216,0.0959491879,-2.95320296,0.421255201,0.0191911161,0.386354804 +0.778472304,3.46796322,-0.778472245,0.00320667587,0.174585506,0.0867275894,0.362367511,-0.0360190421,0.0192745216,1.10144114 +0.361076295,3.46806526,-0.361076295,0.000292074837,0.202047199,0.146990076,-2.1356523,0.536095917,0.0190977752,0.510718584 +1.18548512,3.46807575,-1.18548512,0.000610713614,0.123058856,0.0561854541,0.0570226945,-0.0995045304,0.019386407,1.67659652 +-0.143598169,3.46835709,0.143598169,0.000117698954,0.137644559,0.0925877988,-1.67859149,-0.157151014,0.0192422848,0.203315765 +-0.105309695,3.46838427,0.105309695,8.13763909e-05,0.140216112,0.0945118591,-1.18714666,-0.121603295,0.0192682277,0.149384856 +-0.279455692,3.46845484,0.279455662,9.99956101e-05,0.156449676,0.118809074,-2.58425331,-0.171520948,0.0192071516,0.395323813 +-0.442909122,3.46846437,0.442909092,0.000381310849,0.217850149,0.165967539,-0.960227132,0.16752623,0.0191277377,0.62638247 +0.275109112,3.4687283,-0.275109112,0.000793089683,0.151106864,0.0965156853,-2.95831895,0.4145917,0.019188514,0.389069557 +-0.169300079,3.4687891,0.169300064,4.36608098e-05,0.139185414,0.0947168395,-1.90187502,-0.178627595,0.0192288104,0.239518777 +0.356102705,3.46885896,-0.356102705,0.00044927944,0.199505821,0.144280419,-2.20124865,0.522065401,0.0191021077,0.503645122 +-0.111730881,3.46897554,0.111730874,0.000137371884,0.138388664,0.0929342061,-1.29806697,-0.13435936,0.0192608926,0.158282489 +-0.287004918,3.46909094,0.287004948,0.000141885816,0.160622507,0.123795167,-2.57622457,-0.145490572,0.0192033034,0.405944824 +-0.128216594,3.4691186,0.128216594,4.18789059e-05,0.137293071,0.092304863,-1.5174458,-0.145795673,0.0192464702,0.181337014 +-0.670636415,3.46918321,0.670636415,0.000200533788,0.190875039,0.0975927636,0.0469443575,-0.0881533101,0.0193370767,0.948528647 +0.275363624,3.46932125,-0.275363624,0.000219835405,0.151378125,0.0967244729,-2.95760226,0.411685556,0.0191875976,0.389430016 +0.274857849,3.46933436,-0.274857849,6.81603524e-07,0.151097253,0.0964443013,-2.96043611,0.411159009,0.0191881955,0.388723552 +-0.34730047,3.4693377,0.34730047,0.000242997281,0.191640958,0.159371167,-2.23421311,0.141825408,0.0191756729,0.491230994 +-0.275441825,3.46938133,0.275441825,0.000204926124,0.154431924,0.117650226,-2.56891108,-0.182274163,0.0192073453,0.389626265 +-0.321772605,3.46940327,0.321772635,0.000145278769,0.181012154,0.145921513,-2.4592483,0.00928689167,0.019188188,0.455107719 +0.444925338,3.4694171,-0.444925338,0.000602613552,0.210683838,0.149932772,-0.787267685,0.42103368,0.0190420058,0.629301846 +0.122073457,3.469419,-0.122073457,4.31243316e-05,0.131595731,0.0850198269,-1.46178341,0.445646226,0.0192904472,0.173092172 +0.274452507,3.46950912,-0.274452537,0.000356675155,0.150995508,0.0962998644,-2.95923424,0.410605371,0.0191884488,0.388140589 +0.274945676,3.46952128,-0.274945676,2.25847231e-07,0.151168361,0.0964886695,-2.960706,0.409816176,0.019187931,0.388851315 +0.10523212,3.46957278,-0.105232127,0.000230638645,0.136844322,0.0908604339,-1.10301781,0.340437174,0.0192905497,0.149881378 +0.274789274,3.46960402,-0.274789274,4.89213107e-07,0.15110752,0.096410498,-2.96041155,0.409546226,0.0191880595,0.388626724 +-0.160514534,3.46971941,0.160514534,4.06816143e-05,0.13803409,0.0932534635,-1.84184873,-0.179786712,0.0192306153,0.227077574 +0.274896801,3.46978998,-0.274896801,0.000181471856,0.151152551,0.0964369029,-2.96052217,0.408194274,0.0191878248,0.388775766 +-0.180498406,3.46991062,0.180498391,6.19795828e-05,0.138826847,0.0951282158,-1.99984503,-0.200887293,0.0192225054,0.255326688 +-1.19299889,3.46997046,1.19299889,0.000791844679,0.11090757,0.050102707,0.0519015864,-0.105842508,0.0193897951,1.68715882 +0.242076784,3.46997738,-0.242076784,0.000660790713,0.140908629,0.0852482989,-2.85974836,0.441648364,0.0192192588,0.343101442 +-1.21253383,3.47002339,1.21253383,0.000644463988,0.101379007,0.0454537198,-0.0541493744,-0.041633483,0.0193906445,1.71478558 +-1.22877097,3.4700706,1.22877097,0.000292639976,0.0909482241,0.0414813906,-0.164931923,-0.0219987854,0.0193911567,1.73774862 +-0.152285427,3.47010899,0.152285427,0.000101487516,0.137785614,0.0930932164,-1.76547813,-0.173081815,0.0192340836,0.215489209 +0.922960639,3.470119,-0.922960639,0.00344241993,0.172489449,0.0849223286,0.577053249,-0.110474356,0.0193329677,1.30636096 +-0.23331131,3.47030544,0.233311296,0.00013053084,0.143098742,0.103208728,-2.37467241,-0.229241759,0.0192144848,0.329984725 +1.13679326,3.47032762,-1.13679338,0.000445679238,0.129076913,0.0580632351,0.00787775777,-0.153358325,0.0193855111,1.60782874 +-0.327519268,3.47034883,0.327519268,0.000151681073,0.182043672,0.148691297,-2.42178035,0.0430148393,0.0191836767,0.463225484 +0.1242963,3.47038865,-0.124296293,5.14305575e-05,0.128770858,0.0827390179,-1.52130115,0.46447742,0.0192914978,0.176198214 +0.118179277,3.47039866,-0.118179269,0.00022903709,0.131114915,0.0850519985,-1.38146353,0.425147682,0.0192909017,0.167348698 +0.275694907,3.47045755,-0.275694907,0.00039932807,0.15177618,0.0969487578,-2.95857286,0.403762966,0.0191865005,0.389894098 +0.0914701521,3.4705677,-0.0914701596,0.000264695118,0.145081252,0.0970994756,-0.772462308,0.206984401,0.0192915574,0.130275816 +-0.203151703,3.47075224,0.203151718,8.83852481e-05,0.139678434,0.0979757681,-2.16395235,-0.220752999,0.0192185324,0.287328243 +-0.138831913,3.4707818,0.138831913,0.000155102054,0.137619466,0.0930300206,-1.63097954,-0.156902999,0.019238105,0.196529508 +0.0804440081,3.470824,-0.0804440081,0.000218814515,0.173535332,0.117731512,-0.477139145,0.107128322,0.0192923527,0.114574805 +0.452419162,3.47089005,-0.452419162,0.000993736438,0.210041344,0.149172902,-0.662060797,0.405425787,0.0190363452,0.639930129 +0.0716137588,3.47091293,-0.0716137588,9.85827646e-05,0.321761489,0.244673058,-0.204922527,0.0295922942,0.0192912724,0.101999998 +-0.186661959,3.47092295,0.186661959,6.39337013e-05,0.138796315,0.0959614068,-2.04128742,-0.212424845,0.0192191713,0.2640315 +-0.0796030089,3.47093201,0.0796030015,0.000172237793,0.173408061,0.122734554,-0.580888152,-0.0355711691,0.0192921944,0.1130988 +-0.117853723,3.47095442,0.117853723,0.000105700827,0.137774542,0.0928153172,-1.38669109,-0.148627758,0.0192509163,0.166821197 +-0.324595183,3.47095799,0.324595213,0.000114908667,0.180651128,0.149594516,-2.43887663,0.0403377153,0.0191856753,0.459091336 +0.360738814,3.47120881,-0.360738814,0.000478421658,0.20281598,0.147319764,-2.14429259,0.514572382,0.0190959126,0.510220289 +0.36427322,3.4715817,-0.36427319,0.000582510373,0.204150304,0.148680776,-2.07952476,0.515861213,0.0190914609,0.515200138 +-0.206000566,3.47171855,0.206000566,6.52483723e-05,0.139708519,0.0985706747,-2.18259478,-0.226312146,0.0192166623,0.291400313 +-0.21078065,3.4717598,0.21078065,0.000151457352,0.139978498,0.0989930183,-2.21619296,-0.228592247,0.0192152765,0.298106819 +-0.244162202,3.47177744,0.244162202,6.94111222e-05,0.145090774,0.106525145,-2.44055939,-0.239944011,0.0192122534,0.345441043 +1.04277432,3.47185373,-1.04277432,0.000803190225,0.146910995,0.0703755766,0.436651886,-0.0563185066,0.0193659049,1.4751482 +-0.175217509,3.47216225,0.175217509,5.07424993e-05,0.138654828,0.0954464003,-1.9551661,-0.204231486,0.0192201994,0.247967541 +-0.0717933029,3.47228718,0.0717933029,8.45285977e-05,0.259503871,0.215792164,-0.315396428,0.0248913206,0.0192912892,0.101999998 +0.546569407,3.47230244,-0.546569407,0.00107848726,0.19066897,0.115704902,-0.0209372099,0.0892202407,0.0190845262,0.773886561 +-0.219771296,3.47237825,0.219771296,0.000103089376,0.140578955,0.101576753,-2.27347279,-0.230965033,0.0192142371,0.31091404 +1.12706423,3.47238851,-1.12706423,0.0007726904,0.129460722,0.0585382953,0.0374832228,-0.134170771,0.0193836987,1.59395194 +-0.669020891,3.47240973,0.669020951,0.000924377295,0.190794244,0.09766303,0.0434693322,-0.0947456509,0.0193343647,0.946185529 +-0.672297716,3.47241712,0.672297716,0.00106885599,0.190655068,0.0973535478,0.0537369549,-0.0969971046,0.0193351656,0.950870156 +0.175742656,3.47241735,-0.175742656,0.000321817788,0.135558754,0.0812970921,-2.25733471,0.542103946,0.0192680359,0.249206513 +1.20947158,3.47246122,-1.20947158,0.000746673497,0.112440631,0.0513609685,0.0292234421,-0.0292309523,0.0193812791,1.71048629 +1.22878838,3.47262239,-1.2287885,0.000344655651,0.0953865722,0.0437066592,-0.0709668994,-0.0233263243,0.0193810575,1.73780394 +-0.478286505,3.47280836,0.478286505,0.00041928931,0.212927043,0.153198361,-0.586618185,0.0992149338,0.0191516783,0.676436901 +-1.19159818,3.47281504,1.19159818,0.000109497872,0.111837089,0.0505170412,0.0462724082,-0.107414611,0.0193876531,1.68518519 +-0.830887675,3.47294235,0.830887675,0.00301888632,0.172479272,0.0844393,0.485815465,-0.126735747,0.0193730686,1.17700076 +-0.300260514,3.47311735,0.300260544,0.000320438383,0.166280404,0.132551923,-2.56451201,-0.109098457,0.0191968158,0.42481935 +-1.19214439,3.47313452,1.19214427,3.1921787e-05,0.11142756,0.0503169894,0.0454572253,-0.105487011,0.0193874668,1.68595994 +0.273811519,3.47327113,-0.273811519,0.000292487908,0.150758788,0.0957310274,-2.95532465,0.390144229,0.0191870593,0.387229055 +-1.21211874,3.47335815,1.21211886,5.93196128e-05,0.102012783,0.0457304828,-0.0617124736,-0.0415107571,0.0193882454,1.71420908 +-1.22875953,3.47354507,1.22875953,2.77838371e-05,0.0911063105,0.0412815288,-0.173917413,-0.0218197312,0.0193886906,1.73774326 +-1.14904773,3.47370052,1.14904761,0.0011125335,0.133260444,0.0608380772,0.0775543302,-0.171994448,0.0193850324,1.62501788 +-0.63587749,3.47371244,0.63587749,0.0010414971,0.179052919,0.100432627,0.159605384,-0.0501981452,0.0193275306,0.899999976 +0.121897608,3.47396231,-0.121897615,0.000298014638,0.12566945,0.0808432996,-1.51018107,0.449363708,0.0192943085,0.172670946 +-0.204282239,3.47401857,0.204282239,1.43791785e-05,0.139259309,0.0987742916,-2.16881895,-0.237690896,0.0192138758,0.288977474 +0.18970485,3.47408628,-0.189704835,0.000622990308,0.136934996,0.0808471814,-2.43418097,0.522990882,0.0192595311,0.269124061 +-0.427932978,3.47421813,0.427932978,0.000150335312,0.218171284,0.171620369,-1.12236404,0.163863823,0.0191108994,0.605270386 +1.18722343,3.47431922,-1.18722355,0.00080409681,0.123549536,0.0565059073,0.0602419041,-0.0872209966,0.0193812195,1.67902958 +-0.166852504,3.47433853,0.166852504,6.09427807e-05,0.138828278,0.0958499312,-1.87972522,-0.20172739,0.0192208178,0.236139059 +-1.19206727,3.47435474,1.19206727,0.00118001609,0.111720428,0.0504609421,0.0445961654,-0.104039282,0.0193866622,1.68584788 +-0.20073843,3.47444725,0.20073843,7.20086537e-05,0.139101118,0.0985137075,-2.14029551,-0.237275153,0.0192134958,0.283908814 +-0.123695552,3.47444916,0.123695552,5.80551387e-05,0.137427643,0.0932420194,-1.47074139,-0.16403386,0.0192395393,0.175269127 +-0.154995292,3.47456408,0.154995292,4.23838355e-05,0.13790983,0.0947928652,-1.78307533,-0.188199326,0.0192243736,0.219240218 +-0.241936237,3.47456908,0.241936237,0.000114595088,0.143716678,0.106486037,-2.42107892,-0.256111413,0.0192103796,0.342263103 +-1.21208239,3.47462964,1.21208239,0.000707125058,0.102316439,0.0458764471,-0.0629696473,-0.0408345908,0.0193874314,1.71415424 +-1.09749305,3.4746933,1.09749305,0.00119149685,0.131535813,0.0602275357,0.161492988,-0.0806428418,0.019386502,1.55227542 +0.636005044,3.47471833,-0.636005044,0.000141177603,0.179290816,0.0971707031,0.154481545,-0.0897222981,0.0191832818,0.899999976 +-1.22876024,3.47485733,1.22876024,0.000320262188,0.0912186578,0.0413208455,-0.1753342,-0.0215839595,0.0193878505,1.73774099 +-0.206105694,3.47485924,0.206105679,5.38191889e-05,0.139119729,0.0992126837,-2.17773867,-0.242714837,0.0192122534,0.291550756 +0.210025251,3.47524691,-0.210025251,0.000335323886,0.138592675,0.0811977386,-2.60867834,0.481872141,0.019243069,0.297131777 +0.525487244,3.47542095,-0.525487244,0.00171983917,0.195110261,0.123688318,-0.101515599,0.145784155,0.0190594997,0.743497252 +-0.677449048,3.47551942,0.677449048,0.00152412266,0.189881504,0.0967372134,0.0700368434,-0.104464903,0.0193340834,0.958102167 +-0.424455225,3.47559166,0.424455225,0.000683285762,0.217634276,0.172614038,-1.17057323,0.157593101,0.0191098396,0.600334644 +-0.172164828,3.47588396,0.172164842,6.48691057e-05,0.138793886,0.0966645256,-1.91919494,-0.213607073,0.0192152206,0.2435579 +-0.247299626,3.47621489,0.247299612,0.000129561377,0.144116536,0.10886737,-2.44355011,-0.268465191,0.0192113314,0.349789917 +-0.225676864,3.47627568,0.225676864,0.000195705783,0.140141174,0.104790419,-2.30045843,-0.255000412,0.0192141216,0.319205284 +-0.190921575,3.47675729,0.19092156,7.60573748e-05,0.13855581,0.0982414335,-2.06382012,-0.240896448,0.019210767,0.270151347 +0.508077085,3.47709131,-0.508077085,0.00140028191,0.198680267,0.13012372,-0.16422756,0.196240738,0.0190440491,0.719658852 +-0.427973837,3.47734499,0.427973807,0.000254425075,0.217094183,0.173226222,-1.11813164,0.147858605,0.0191073976,0.605352104 +-0.163782358,3.47763181,0.163782358,5.01221475e-05,0.1384027,0.0963039175,-1.85637593,-0.211394504,0.0192152951,0.231747687 +1.10537374,3.4777534,-1.10537374,0.000630581868,0.129631996,0.0591839813,0.103281192,-0.0800597593,0.0193779077,1.56336462 +0.958321929,3.478019,-0.958321929,0.00237971707,0.167287782,0.0819431543,0.576550663,-0.111874789,0.0193364918,1.35562277 +-0.0995136723,3.47826028,0.0995136723,5.37290507e-05,0.141307473,0.0983650014,-1.07312739,-0.125997692,0.0192518774,0.140751436 +-0.177422494,3.47828007,0.177422494,9.53798371e-05,0.138827503,0.098247163,-1.95406818,-0.224668771,0.01921173,0.251065701 +-0.132518917,3.47855353,0.132518917,9.72190392e-05,0.138173848,0.0954405814,-1.56496787,-0.170003951,0.0192235019,0.187474355 +-0.0981675908,3.47856832,0.0981675908,8.64969334e-05,0.141667411,0.0987938493,-1.04929841,-0.123983689,0.0192524623,0.138861239 +-0.186458737,3.4788003,0.186458737,8.3739782e-05,0.138784319,0.0989926085,-2.01755071,-0.238376796,0.019208191,0.263818562 +-0.433916569,3.47907495,0.433916599,0.000396898075,0.216587305,0.171302944,-1.04590034,0.130487919,0.0191092771,0.613682091 +0.567327499,3.47916889,-0.567327499,0.00146683282,0.187283084,0.110693544,0.0358758718,0.0253679156,0.019103758,0.802812159 +-0.243546426,3.47952747,0.243546426,8.79717918e-05,0.142229035,0.109881349,-2.40715313,-0.281599373,0.0192107148,0.344487011 +-0.122145787,3.47964954,0.122145787,7.89660189e-05,0.138659164,0.0958975852,-1.44164228,-0.165025026,0.0192279443,0.172951624 +-0.0985942185,3.47965765,0.0985942185,6.55918438e-06,0.141585276,0.0989828706,-1.05605555,-0.126111537,0.019249713,0.139471054 +-0.0978866816,3.47972202,0.097886689,7.23215089e-06,0.141836539,0.0992172062,-1.04263723,-0.123670235,0.0192504395,0.138510913 +-0.147963703,3.48020363,0.147963718,4.23906604e-05,0.137579575,0.0955764577,-1.72289217,-0.196267903,0.019215269,0.209284499 +-0.303163111,3.48034573,0.303163111,0.000235407191,0.163348705,0.139805421,-2.52417278,-0.0773051977,0.019192962,0.42889142 +-0.157023564,3.48035192,0.157023564,8.16381435e-05,0.138015941,0.0965667665,-1.79661512,-0.207794994,0.0192117896,0.222153723 +-0.146750495,3.4804728,0.146750495,4.44497964e-05,0.137575373,0.0955991,-1.71075571,-0.195242539,0.0192149673,0.207563207 +-0.0975724161,3.48049402,0.0975724235,5.53759855e-05,0.14203532,0.0996869355,-1.03394127,-0.121877417,0.0192485936,0.138021082 +-0.0983670652,3.48052382,0.0983670652,4.61577001e-05,0.141799405,0.0994344056,-1.05085754,-0.125415444,0.0192476623,0.13913697 +-0.2038946,3.48052764,0.2038946,9.87995081e-05,0.138513267,0.10215161,-2.13339281,-0.255142391,0.0192053374,0.288369507 +-0.149635047,3.48069906,0.149635047,4.20914366e-05,0.13765724,0.0959197879,-1.73564708,-0.199398249,0.0192137714,0.211627126 +-0.147380099,3.48138714,0.147380114,5.47570107e-06,0.138039902,0.0963670462,-1.71389556,-0.194407642,0.0192127526,0.208467528 +-0.1278404,3.48143101,0.1278404,6.2809595e-05,0.138068438,0.0958448052,-1.51617181,-0.1781196,0.0192205887,0.180857673 +-0.168516383,3.48173475,0.168516368,6.09751187e-05,0.138639241,0.0982882977,-1.88457632,-0.222746164,0.019203987,0.238444328 +-0.370628834,3.48188448,0.370628834,0.000367166125,0.19868879,0.168994635,-1.95986211,0.135902256,0.0191389564,0.524529457 +-0.191872895,3.48216772,0.19187291,0.000123447258,0.138675749,0.10207212,-2.03850031,-0.25134483,0.0192060005,0.271437436 +1.083763,3.48223066,-1.083763,0.00068110344,0.1339591,0.0621938221,0.21068646,-0.0487727895,0.0193715319,1.53272271 +-0.148123965,3.48224568,0.148123965,7.34106216e-05,0.138345018,0.0970450193,-1.71809852,-0.194358408,0.0192104094,0.209500015 +-0.635442615,3.48239684,0.635442615,0.000728446583,0.191533506,0.100197151,-0.0535875708,-0.0911637321,0.0193179678,0.899451733 +0.740413487,3.48245192,-0.740413487,0.00483368011,0.174188599,0.0866500512,0.284788102,-0.0389008075,0.0192486662,1.04783249 +-0.107999809,3.48275256,0.107999809,5.84414665e-05,0.139873505,0.0979014114,-1.22840559,-0.152875245,0.0192318242,0.152735829 +-0.0876005441,3.48321414,0.0876005441,0.000113692207,0.150961101,0.107347563,-0.799554884,-0.0965080559,0.0192552246,0.123917907 +0.105627127,3.48321462,-0.105627127,0.00016041215,0.125155985,0.0825121254,-1.26267755,0.313957006,0.0192996617,0.149569169 +-0.112947583,3.48372316,0.112947583,4.32955094e-05,0.138995394,0.0972005129,-1.31680548,-0.165110037,0.0192242358,0.159739628 +-0.112366408,3.48381495,0.112366401,3.95559764e-05,0.139067888,0.097296156,-1.30841529,-0.164299771,0.0192245059,0.158924475 +0.136437029,3.48398185,-0.136437014,0.000210702623,0.125708714,0.077440694,-1.83212137,0.465571076,0.0192916933,0.192973107 +1.07358646,3.48411894,-1.07358634,0.000801802555,0.138299465,0.0648400411,0.270874202,-0.0472907126,0.0193672534,1.51832378 +-0.112565927,3.48420668,0.112565927,3.33674421e-07,0.139070258,0.0973724723,-1.31189418,-0.165704966,0.0192234013,0.159214124 +1.02751482,3.48426723,-1.02751482,0.00110959332,0.15206328,0.0732248947,0.480181724,-0.0770803243,0.0193519667,1.45339823 +-0.11228805,3.48435545,0.11228805,5.16760992e-05,0.139102712,0.0974442586,-1.30782545,-0.16554676,0.0192232579,0.15881677 +0.0920131132,3.48453593,-0.0920131058,0.000164441997,0.135039836,0.0910206437,-0.931058645,0.187174439,0.0192981437,0.130317047 +0.241960645,3.48467255,-0.24196063,0.000807257951,0.141345382,0.0843183622,-2.85197997,0.366432309,0.0192106385,0.342620313 +-0.0873997435,3.48468184,0.0873997435,1.47022565e-05,0.151160687,0.107858069,-0.793334544,-0.0957998559,0.019252399,0.123681135 +-0.113485068,3.48488832,0.113485068,3.01020355e-05,0.139130369,0.0976075381,-1.32506549,-0.167667314,0.0192207005,0.160494924 +-0.266160309,3.48496175,0.266160309,0.000309081719,0.14722836,0.126268744,-2.4597981,-0.223540902,0.0192056783,0.376583785 +-0.130184233,3.48504066,0.130184233,8.23774681e-05,0.138364166,0.0969350114,-1.5471077,-0.188494653,0.0192104038,0.184186012 +0.635727108,3.48519039,-0.635727108,0.000784022675,0.176744342,0.0936721489,0.0345722064,0.0664000735,0.0191757288,0.899875641 +0.141444013,3.48534679,-0.141444013,0.0002171292,0.12584421,0.0766162127,-1.92927134,0.478533357,0.0192910694,0.200092703 +0.0810139179,3.48536754,-0.0810139179,0.000143132434,0.165355548,0.113230355,-0.623138249,0.0952048898,0.0192965511,0.114758685 +-0.338221759,3.48549223,0.338221759,0.000256255677,0.174167365,0.158571005,-2.29520559,0.117964409,0.0191674307,0.478668213 +0.673349917,3.48554111,-0.673349857,0.00098909298,0.174686477,0.0893580765,0.115795761,0.0234729685,0.0191997495,0.952280581 +-0.0872356296,3.48574448,0.0872356296,7.18727679e-05,0.151399419,0.108456515,-0.78573519,-0.0932095051,0.0192499124,0.123403594 +0.072096616,3.48580456,-0.072096616,6.60629521e-05,0.326437354,0.249353305,-0.316529185,0.0191902667,0.0192946214,0.102136031 +-0.258472502,3.48592496,0.258472502,0.000217876805,0.144478112,0.121948108,-2.43373084,-0.25528565,0.0192064159,0.365658581 +-0.292683303,3.48599386,0.292683303,0.000222485585,0.153495401,0.138696149,-2.48658419,-0.120111465,0.0191988349,0.413970917 +-0.231942385,3.48632097,0.231942385,0.000101212645,0.138871208,0.109345555,-2.31054211,-0.309846103,0.0192082915,0.328188211 +-0.173903763,3.48632813,0.173903748,5.55189908e-05,0.141434699,0.10429167,-1.88572395,-0.216613889,0.019195525,0.245998845 +0.997392952,3.4866991,-0.997392893,0.00143365446,0.160949036,0.0782384276,0.557301164,-0.101936981,0.0193412453,1.4108367 +-0.591483235,3.48708653,0.591483235,0.000826906005,0.186401248,0.109014802,0.058937639,-0.0439962447,0.0192784239,0.836531997 +0.105221301,3.48715901,-0.105221301,4.56630551e-05,0.12150792,0.0804625526,-1.29921436,0.30881986,0.0193028208,0.149251655 +0.107963689,3.48721337,-0.107963689,0.00016806263,0.120010622,0.078677021,-1.36591768,0.32708931,0.019303238,0.152926847 +-0.162953749,3.48729205,0.162953764,3.60032209e-05,0.139656782,0.101011716,-1.82452464,-0.219055295,0.0191939063,0.230457604 +-0.251914203,3.48734784,0.251914203,8.628262e-05,0.144927919,0.124742217,-2.38291693,-0.257650882,0.0192078575,0.356505036 +-0.162011445,3.48739648,0.16201143,2.43233735e-05,0.139564499,0.100907288,-1.81691539,-0.218314648,0.019194033,0.229123354 +0.14232564,3.48740888,-0.14232564,0.000244038747,0.125587776,0.0762660429,-1.95448864,0.474191695,0.0192909073,0.201381221 +-0.125093102,3.48744678,0.125093088,3.17809718e-05,0.138994277,0.0981311649,-1.48416662,-0.185076028,0.0192060061,0.176931247 +-0.327939004,3.48748589,0.327938974,0.000155283866,0.169380724,0.158806846,-2.35587025,0.107995942,0.0191745292,0.464127451 +0.677053094,3.48776531,-0.677053094,0.00133306545,0.174569324,0.08910954,0.125011399,0.0152561944,0.0192009807,0.957513034 +-0.0793488324,3.48811316,0.0793488324,0.000101319747,0.173040062,0.127408549,-0.556804419,-0.0436130241,0.0192513764,0.112240635 +-0.162482753,3.48818421,0.162482753,1.13863189e-05,0.139850274,0.101501331,-1.81779373,-0.21860303,0.0191922616,0.229799181 +-0.141076088,3.48822546,0.141076088,3.27418311e-05,0.139740229,0.0995344445,-1.65414786,-0.190469265,0.019197952,0.199512064 +-0.155312091,3.48835897,0.155312091,5.10269892e-05,0.13977322,0.100846395,-1.77052391,-0.205760926,0.0191919487,0.219673514 +0.673782051,3.48839641,-0.67378211,0.000351650582,0.174586907,0.0892202631,0.116933532,0.0173921287,0.0191985089,0.952921391 +-0.282386512,3.4885428,0.282386482,0.000185578727,0.146616727,0.133798897,-2.46754503,-0.151883811,0.0192020983,0.399441123 +-0.102380939,3.48856735,0.102380939,4.9943108e-05,0.142839372,0.10228426,-1.12569451,-0.137131035,0.019221181,0.144790381 +0.140986875,3.48859763,-0.14098689,8.56087718e-06,0.125448287,0.0762275234,-1.943905,0.466506451,0.0192913748,0.199535519 +-0.181455523,3.48863077,0.181455523,8.16083557e-05,0.138685107,0.102654003,-1.94953346,-0.252376795,0.0191910062,0.256741524 +0.672141671,3.48868036,-0.672141612,0.00101305335,0.174674109,0.0894054547,0.113189459,0.0190972537,0.0191970952,0.950573325 +-0.140289336,3.48869634,0.140289336,5.12590013e-05,0.139952719,0.0998449996,-1.64627635,-0.188874543,0.0191969723,0.198401719 +-0.16339761,3.48869991,0.16339761,2.92196528e-05,0.140050888,0.102087617,-1.82110786,-0.219419852,0.0191912483,0.231083855 +-1.0186944,3.48875475,1.0186944,0.00129436573,0.150753915,0.0726020634,0.592087388,-0.0678272173,0.0193775371,1.44087863 +0.139700547,3.48889828,-0.139700532,1.44346786e-05,0.125169903,0.0761994794,-1.92782509,0.460841566,0.0192922037,0.197683632 +-0.286666453,3.48890662,0.286666453,0.000106918415,0.14803201,0.136013806,-2.47557497,-0.139650226,0.019201573,0.405513585 +-0.45307523,3.48896265,0.45307526,0.000550598837,0.212700695,0.168639138,-0.797377169,0.0557663217,0.0191094149,0.641131401 +1.08087051,3.48902798,-1.08087051,0.000410927489,0.136216596,0.063508153,0.232119501,-0.0441376455,0.0193663221,1.52868617 +-0.140177697,3.48907495,0.140177697,3.32406998e-05,0.139967024,0.0999317318,-1.64546943,-0.189932182,0.0191961955,0.198244423 +-0.140306696,3.48907542,0.140306711,6.83829853e-07,0.139977291,0.0999451652,-1.64670932,-0.189915016,0.0191961341,0.198428124 +0.169423148,3.48919821,-0.169423148,0.000305487949,0.134238094,0.0782013983,-2.27501154,0.477465212,0.0192658827,0.240100399 +-0.140297949,3.48924088,0.140297949,1.60538766e-05,0.140058905,0.10006275,-1.64674783,-0.189754352,0.0191956535,0.198414907 +-0.121009991,3.48936009,0.121009991,4.47317179e-05,0.139715225,0.0992147848,-1.43256128,-0.181847006,0.0192028638,0.171210423 +-0.162596047,3.48938131,0.162596047,3.16658625e-05,0.141228259,0.103672951,-1.80990446,-0.210368887,0.0191890802,0.22995159 +-0.0792669952,3.48943663,0.0792669877,1.18121625e-05,0.173155621,0.127850771,-0.552664995,-0.0430551134,0.019248588,0.112160042 +0.0917320848,3.48943949,-0.0917320773,8.60405053e-05,0.13154,0.0893251821,-0.97515738,0.183586612,0.0193006117,0.130184025 +-0.501092792,3.48946238,0.501092792,0.00090576848,0.204662681,0.146190912,-0.380484164,0.00515374541,0.0191643033,0.708806515 +0.142269179,3.48953295,-0.142269164,0.000222971459,0.126000226,0.0764076784,-1.96021354,0.463923633,0.0192896016,0.201301396 +-0.356715381,3.4900651,0.356715381,0.000219346926,0.184033632,0.165539324,-2.13744879,0.0901732296,0.0191510003,0.504631579 +-0.390319824,3.49007988,0.390319824,0.000316930411,0.201953351,0.177077517,-1.64831877,0.148127913,0.0191191584,0.552120924 +-0.400319159,3.49014759,0.400319129,0.000463911827,0.204246953,0.179090887,-1.49247336,0.162860006,0.019109739,0.56630373 +-1.01281309,3.49019575,1.01281321,0.00196774164,0.152045548,0.0733261853,0.600500524,-0.0729560181,0.0193762928,1.4325707 +0.672914445,3.49025559,-0.672914445,0.000208222162,0.17459394,0.0892613754,0.115610987,0.0148706194,0.0191970766,0.951690793 +-0.898944795,3.49029136,0.898944855,0.00336092152,0.166460946,0.0810448378,0.596926868,-0.145462796,0.0193676986,1.2717768 +-0.0792171881,3.49044824,0.0792171881,6.82359605e-05,0.173382968,0.128459826,-0.54763186,-0.0413867943,0.019245984,0.112054273 +-0.235906333,3.4904995,0.235906333,0.000100554418,0.137866765,0.112250604,-2.31344366,-0.332583874,0.0192091204,0.333714366 +0.140822932,3.49070978,-0.140822917,0.000119033102,0.126082242,0.076527521,-1.95043099,0.456044793,0.0192902889,0.199261352 +-0.31063658,3.49074173,0.31063658,0.000205061122,0.160911798,0.149860546,-2.454597,-0.0524035767,0.0191871729,0.439550281 +-0.229462847,3.49087906,0.229462862,0.000182230579,0.137475193,0.110733151,-2.27289414,-0.325249255,0.0192043018,0.324616909 +-0.119977936,3.49089766,0.119977936,3.4500863e-05,0.140742078,0.100585714,-1.41369236,-0.176114544,0.0191994905,0.169778898 +-0.187251359,3.49104404,0.187251359,8.39012646e-05,0.138587236,0.105078787,-1.97643769,-0.263867766,0.0191904269,0.264900804 +-0.0723734125,3.49105906,0.0723734051,4.96536159e-05,0.248570457,0.218656495,-0.294934332,0.0233502164,0.0192458667,0.102367185 +-0.141220585,3.49112701,0.141220585,2.53990729e-05,0.141590148,0.102236502,-1.65074325,-0.182554558,0.0191898961,0.19971624 +0.105428934,3.49120831,-0.105428934,0.000161630465,0.119068779,0.0782045946,-1.35942757,0.297096997,0.0193054657,0.149300784 +-0.0932745934,3.49129629,0.0932745934,8.56360202e-05,0.144508764,0.104949817,-0.938149393,-0.103690006,0.0192275662,0.132507607 +0.0808341727,3.4913063,-0.0808341727,8.35421379e-05,0.162429065,0.112064674,-0.670756042,0.0936583355,0.0192981753,0.114766121 +0.326779127,3.49146032,-0.326779127,0.000782173825,0.191175774,0.131885141,-2.6393559,0.303615868,0.0191154722,0.462420166 +-0.350421995,3.49157381,0.350421995,0.000253598642,0.178001791,0.164257303,-2.18377447,0.103607923,0.0191553328,0.495660365 +0.176472127,3.49182367,-0.176472127,0.000442501943,0.135568663,0.0784604624,-2.34965515,0.464699805,0.0192586165,0.249862298 +-0.600606799,3.49189496,0.600606799,0.0011138015,0.184532762,0.107095629,0.09034504,-0.0647713766,0.0192825925,0.849460006 +0.0719641149,3.49206853,-0.0719641149,4.04273378e-05,0.330362588,0.253472984,-0.354082346,0.0167396031,0.0192958266,0.102193221 +-0.0723655224,3.49206853,0.0723655224,4.66616711e-06,0.24827224,0.218953922,-0.292491674,0.0235143006,0.0192436911,0.102378219 +0.674774289,3.49211049,-0.674774289,0.00133383111,0.174521223,0.0890857801,0.119473875,0.00993320532,0.0191974007,0.954291582 +-0.494504631,3.49251103,0.494504631,8.39645581e-05,0.205878019,0.1493624,-0.425884277,-0.00120287202,0.019150354,0.699567318 +-0.176992506,3.49280405,0.176992506,5.98277002e-05,0.141114652,0.10662277,-1.88839483,-0.236464649,0.0191825684,0.250355482 +-0.0723874122,3.49284172,0.0723874122,3.43360261e-05,0.248273015,0.219947502,-0.290171593,0.0240359008,0.0192416199,0.102386549 +-0.115242973,3.49287033,0.115242973,3.58538382e-05,0.144512653,0.104444213,-1.34734511,-0.156981319,0.019196149,0.16297856 +-0.421793342,3.49290895,0.421793342,0.000389793247,0.203915685,0.189553186,-1.11835575,0.195941538,0.0191005711,0.596521139 +-0.155335158,3.49292254,0.155335158,2.79849555e-05,0.141376317,0.103979468,-1.75795031,-0.202629223,0.0191817041,0.219764739 +-1.06994653,3.49314356,1.06994653,0.00283563137,0.138889849,0.0653001145,0.350212812,-0.0336427018,0.0193740688,1.51378822 +-0.122237317,3.49322224,0.122237317,5.17838889e-05,0.143903956,0.104201317,-1.44018435,-0.166655391,0.0191911776,0.17292355 +-0.171102524,3.4932754,0.171102524,7.34604328e-05,0.141792163,0.106777854,-1.84987473,-0.224996537,0.0191822536,0.242073417 +-0.211250052,3.49330497,0.211250052,0.000117285206,0.137241215,0.109958738,-2.12399364,-0.30606401,0.0191984084,0.298752993 +-0.153280437,3.49342299,0.153280437,5.54209801e-05,0.141739056,0.104247451,-1.74005127,-0.196199909,0.0191797949,0.216825739 +-0.289188743,3.49349523,0.289188743,0.000181234907,0.146057338,0.138750061,-2.44827557,-0.144297272,0.0192021336,0.409070909 +-0.211162955,3.4934957,0.211162955,1.63278692e-05,0.137208045,0.11000856,-2.12269306,-0.306806773,0.0191982463,0.298630774 +-0.211223528,3.49351978,0.211223528,7.04733684e-05,0.137202904,0.110026315,-2.12295818,-0.306963146,0.0191982444,0.29871583 +-0.211076006,3.49352431,0.211075991,9.57544471e-05,0.137204468,0.11000488,-2.12191081,-0.306726933,0.0191981588,0.298506856 +-0.21118544,3.49353719,0.211185426,1.1397924e-05,0.137200564,0.110036336,-2.1225431,-0.306907535,0.019198209,0.298662156 +-0.211154521,3.49353886,0.211154535,1.56900514e-05,0.137197867,0.11002548,-2.12238169,-0.306824505,0.0191981737,0.298618555 +-0.211214513,3.49373102,0.211214513,5.37782071e-05,0.137315661,0.110638492,-2.11912179,-0.306744337,0.0191981923,0.298702627 +-0.319112241,3.49376535,0.319112241,0.000263031718,0.161116302,0.15537329,-2.39851379,0.0371959247,0.0191802811,0.45150274 +-0.198838234,3.49406385,0.198838234,0.000155495261,0.137505889,0.108017713,-2.03070641,-0.2868312,0.0191898607,0.281278133 +-1.02444661,3.49413252,1.02444661,0.00175058632,0.149347425,0.0716594607,0.559431612,-0.0664769262,0.0193737149,1.4489609 +-0.252900362,3.49414349,0.252900362,0.000107093088,0.145086139,0.139141753,-2.29332614,-0.241349012,0.0192104597,0.357765049 +0.135533839,3.49419713,-0.135533839,0.000215920751,0.125255227,0.076481469,-1.90232003,0.424981087,0.0192958564,0.191695005 +-0.595911324,3.49428296,0.595911384,2.473321e-05,0.18523486,0.107899293,0.0812240243,-0.0665020123,0.0192762055,0.84292686 +-0.19278425,3.49433088,0.19278425,6.48112473e-05,0.13810496,0.10734234,-1.99697065,-0.274706185,0.0191863906,0.272799522 +-0.376370668,3.494452,0.376370668,0.000388828514,0.189902112,0.178842619,-1.82384896,0.22206986,0.019124208,0.532448471 +0.0919591263,3.4945519,-0.0919591263,0.000163417892,0.128138155,0.0870305151,-1.05191326,0.172029004,0.0193036254,0.130243629 +-0.244223267,3.49471998,0.244223282,0.000110980283,0.141002193,0.125195757,-2.30428696,-0.284769773,0.0192064345,0.345645994 +0.307384044,3.49472499,-0.307384044,0.000837920466,0.175821334,0.117052771,-2.85715795,0.25478369,0.0191370025,0.434892327 +-0.182465225,3.49474382,0.182465225,6.64401523e-05,0.142461836,0.112435356,-1.89587808,-0.236759156,0.0191835854,0.258149117 +0.591518641,3.49474525,-0.591518641,0.00168226357,0.182795599,0.103441812,0.112083107,-0.0658718869,0.0191222634,0.837304473 +1.08842683,3.4950521,-1.08842683,0.000580970082,0.1367383,0.0635467917,0.202934787,-0.0474140719,0.0193633065,1.53931117 +-0.134170473,3.49515939,0.134170488,6.88009895e-05,0.146751195,0.10810975,-1.56650519,-0.155307338,0.0191808548,0.189913064 +-0.127984434,3.49540424,0.127984419,5.49626529e-05,0.148235112,0.108872183,-1.50163233,-0.152250424,0.0191824678,0.181181356 +-0.105944827,3.49561644,0.105944827,6.52172093e-05,0.143611565,0.10454841,-1.19267607,-0.148282781,0.0191982742,0.149860337 +-0.397427648,3.49589133,0.397427619,0.000144761376,0.200090662,0.180397272,-1.53066969,0.144432127,0.019108003,0.562261045 +-0.272784024,3.49604559,0.272784054,0.000178885384,0.138381079,0.146187156,-2.35301113,0.10320881,0.0192107428,0.385982633 +-0.593580365,3.49611568,0.593580365,0.000208354206,0.185613081,0.108536556,0.0753525048,-0.0672275349,0.0192715619,0.839567125 +-0.105002806,3.49622154,0.105002798,3.99212731e-05,0.143826127,0.104925998,-1.1747781,-0.14557445,0.0191976298,0.148509443 +-0.459671557,3.49629736,0.459671557,0.000354153977,0.210205227,0.168869719,-0.708358288,0.0170889739,0.019105956,0.650469184 +-0.362697124,3.4963274,0.362697124,0.000198196445,0.181235164,0.171026319,-2.02262521,0.151110724,0.0191398244,0.513006806 +-0.479128778,3.49637341,0.479128808,0.000392475864,0.207774431,0.158730671,-0.559109807,-0.0113665685,0.0191274676,0.677674651 +-0.355658621,3.49655485,0.35565865,0.000189157057,0.174597219,0.170730442,-2.09906626,0.216610581,0.0191487838,0.503127635 +-0.0993863344,3.49656963,0.0993863344,5.76332059e-05,0.143857226,0.105160236,-1.07102859,-0.133003935,0.0192044377,0.140725851 +-0.173708797,3.49678922,0.173708797,3.43931497e-05,0.142689273,0.10979782,-1.84963369,-0.222501978,0.0191725399,0.245771766 +-0.338171989,3.49686241,0.338171989,0.0002513738,0.164828211,0.161608338,-2.25894356,0.0997909084,0.0191664584,0.478467405 +-0.154031634,3.49699593,0.154031634,3.87178225e-05,0.147255987,0.111382388,-1.72434115,-0.166263372,0.0191692393,0.217876762 +-0.167610019,3.49718285,0.167610019,4.46335507e-05,0.143560186,0.109563023,-1.81920862,-0.210702807,0.0191713087,0.237099379 +1.1444416,3.49743414,-1.14444172,0.0010047924,0.132941931,0.0601477399,0.0215755627,-0.104876466,0.0193651915,1.61851287 +0.0810815915,3.49746752,-0.0810815915,0.000142891906,0.158058897,0.109653503,-0.752484381,0.0843486935,0.0193003155,0.114846826 +-0.157159731,3.49749327,0.157159731,4.88965597e-05,0.147356689,0.113208458,-1.73307681,-0.168149576,0.019169189,0.222296059 +-0.951801062,3.49750543,0.951801002,0.00247433479,0.161725864,0.0786769092,0.644064367,-0.132853985,0.0193670504,1.34612346 +-0.0956424624,3.49751568,0.0956424624,6.97479336e-05,0.14512898,0.106736846,-0.991226315,-0.116542205,0.0192059744,0.135479197 +0.636237144,3.49784708,-0.636237144,0.000496565423,0.178003222,0.0966307968,0.175634503,-0.137114629,0.0191716254,0.899999976 +0.169153929,3.49788785,-0.169153929,0.000379127654,0.13591373,0.0786364377,-2.29798794,0.435442388,0.0192605685,0.239719301 +-0.0848195702,3.49792504,0.0848195702,0.000108706517,0.153851375,0.114285626,-0.711436152,-0.0717080384,0.0192253757,0.120488673 +-0.74583292,3.49802256,0.74583292,0.00476048887,0.180191755,0.0892600939,0.29178673,-0.164580852,0.0193374921,1.05587327 +0.926531255,3.49812007,-0.926531196,0.00133863569,0.170916304,0.0839289799,0.565827072,-0.12709868,0.0193136223,1.31166732 +0.234401554,3.49812889,-0.234401539,0.000839802786,0.14147912,0.0827305019,-2.79862165,0.317149907,0.0192088466,0.332323134 +-0.106214017,3.49821043,0.106214017,4.2011925e-05,0.146016926,0.107255965,-1.19657707,-0.14262335,0.0191899054,0.150213942 +-0.32964623,3.49843526,0.32964623,0.000140445773,0.16092518,0.160663664,-2.30949974,0.091653578,0.0191723499,0.466412127 +-0.283442169,3.49880791,0.283442169,0.000104085302,0.143505484,0.148591593,-2.34173107,-0.108697414,0.0192085095,0.40091157 +0.072189644,3.49892521,-0.072189644,6.72140595e-05,0.329824805,0.254943639,-0.420558631,0.00903186202,0.0192976538,0.10225369 +-0.596157253,3.49921322,0.596157253,0.000920216553,0.184952542,0.107826136,0.0871682763,-0.0768087059,0.0192719586,0.843203783 +-0.493129075,3.4992671,0.493129075,0.00043105238,0.204742402,0.152542919,-0.430550873,-0.0341442972,0.0191388242,0.697591782 +-0.889922261,3.49927115,0.889922261,0.00124392612,0.166907132,0.0811280832,0.579523146,-0.160450831,0.0193603355,1.25935233 +0.389319748,3.49932122,-0.389319777,0.00144304824,0.221413761,0.162614062,-1.61436856,0.349076986,0.0190434642,0.551448166 +-0.113773882,3.49936366,0.113773882,4.49145227e-05,0.147677407,0.108961038,-1.31668937,-0.148293898,0.0191794224,0.160901308 +-0.247379631,3.49964976,0.247379631,5.66326526e-05,0.142258584,0.138812289,-2.23412323,-0.260460436,0.019209506,0.349966466 +-0.170518667,3.49967241,0.170518667,3.96996547e-05,0.145792663,0.113659248,-1.81836879,-0.196929038,0.019163819,0.241201699 +-0.499421597,3.49971557,0.499421567,0.000315322308,0.203445002,0.148395449,-0.385008246,-0.0331949517,0.0191487186,0.706574857 +-0.1993393,3.50011349,0.1993393,8.83265748e-05,0.142376631,0.122329332,-1.94605255,-0.268824756,0.0191865414,0.281964839 +-0.239860386,3.50030065,0.239860386,9.10586168e-05,0.14261964,0.135461852,-2.18744421,-0.314015448,0.0192115493,0.339312792 +-0.146009371,3.50039816,0.146009356,6.4353153e-05,0.14892444,0.112557441,-1.67340338,-0.149950176,0.0191617217,0.206500143 +-0.178667992,3.50056672,0.178667992,4.94207561e-05,0.148144782,0.120945655,-1.82197261,-0.187688291,0.0191674475,0.252708972 +-0.13289696,3.50065684,0.13289696,4.15269242e-05,0.149790287,0.1121611,-1.55490422,-0.150741011,0.0191656537,0.188133538 +-0.144871145,3.50092316,0.14487116,3.03388388e-05,0.149625972,0.113299929,-1.66211414,-0.14547652,0.0191603135,0.20488967 +-0.13768743,3.50108767,0.137687415,7.01555182e-05,0.150285393,0.11298427,-1.60276616,-0.146866083,0.0191617981,0.194912136 +-0.14571929,3.50108981,0.145719305,3.70914836e-06,0.150080994,0.113945067,-1.66738868,-0.14352338,0.0191597454,0.206096575 +-0.117855683,3.50109792,0.11785569,2.62810518e-05,0.149682596,0.11110808,-1.38144004,-0.148520947,0.0191704202,0.166687042 +-0.126388699,3.50111151,0.126388699,7.40059113e-05,0.151450232,0.113133579,-1.48671579,-0.147382647,0.0191667881,0.178947672 +-0.233289748,3.50117111,0.233289748,9.24281048e-05,0.142437637,0.1352247,-2.13882923,-0.305425286,0.0192066077,0.330036581 +-0.118288778,3.50128818,0.118288778,3.51367271e-05,0.1500431,0.111515835,-1.38667011,-0.147459924,0.0191695876,0.167292669 +-0.146349132,3.50128889,0.146349132,3.70951566e-05,0.150362238,0.114439487,-1.67011523,-0.142274916,0.0191590451,0.206978187 +-0.22320278,3.50129175,0.223202795,0.00010228678,0.138566792,0.125024974,-2.09410119,-0.331258744,0.0192044806,0.315737665 +-0.117818713,3.50144744,0.117818706,2.69433913e-05,0.150303423,0.111776464,-1.37991333,-0.146107316,0.0191693678,0.166631266 +-0.145922139,3.50162029,0.145922154,6.65586822e-06,0.151975185,0.116291136,-1.66362476,-0.133101329,0.0191578995,0.206379846 +-0.304700732,3.50199986,0.304700732,0.00010932218,0.146181583,0.160082713,-2.30883694,0.156236246,0.0191967096,0.430929959 +-0.145345151,3.50202799,0.145345151,2.561781e-05,0.153128788,0.117158301,-1.66136634,-0.128019363,0.0191564318,0.205558121 +-0.11809811,3.50231266,0.11809811,1.72073123e-05,0.154512614,0.115766868,-1.38273132,-0.132360369,0.0191665031,0.167021498 +-0.14352119,3.50275517,0.14352119,1.76474441e-05,0.154611915,0.118343331,-1.64771521,-0.124869145,0.0191544015,0.202973694 +-0.162504002,3.50281477,0.162504017,7.35017238e-05,0.152098149,0.121036083,-1.74133635,-0.147022486,0.01915415,0.229893655 +0.194742411,3.50322914,-0.194742411,0.000672124967,0.139728591,0.0794951245,-2.49951291,0.376348794,0.0192361102,0.275916517 +-0.220631316,3.50351834,0.220631316,4.31085537e-05,0.138459951,0.126616731,-2.05327773,-0.328050524,0.0192013364,0.312128246 +-0.0779410005,3.50366998,0.0779410005,0.000101334488,0.17620939,0.135485411,-0.489349306,-0.0240108352,0.0192168932,0.110699914 +-0.0979785919,3.50374675,0.0979785919,8.01841452e-05,0.150135994,0.112523809,-1.03216386,-0.103532627,0.0191849619,0.138655722 +1.11374283,3.50375652,-1.11374295,0.00122579979,0.135425776,0.0620112717,0.092721656,-0.0758598372,0.0193610657,1.57518232 +1.08023536,3.5037756,-1.08023536,0.000543285278,0.139749885,0.0652492195,0.232297868,-0.0485661998,0.019355718,1.52771258 +-0.262606263,3.50382328,0.262606263,9.52595874e-05,0.145377547,0.153046161,-2.22230315,-0.210530192,0.019214619,0.371416539 +-1.11647677,3.50404906,1.11647677,0.000813656952,0.133455545,0.0608824864,0.114541128,-0.0701256767,0.0193639919,1.57905495 +-0.287033617,3.50417042,0.287033617,0.000109402215,0.140116245,0.161562696,-2.25593805,0.112553887,0.0192139037,0.405970454 +-1.01895404,3.50457191,1.01895404,0.00149047084,0.151291057,0.0727366582,0.578085184,-0.076192297,0.0193660129,1.44114304 +-0.116684824,3.50481558,0.116684824,2.07185585e-05,0.157452092,0.119050764,-1.36051631,-0.121430606,0.019159738,0.165017977 +-0.166130424,3.50507116,0.166130438,6.03333647e-05,0.153825611,0.124478035,-1.74701524,-0.137297258,0.0191473812,0.235008687 +-0.154576749,3.50507236,0.154576749,5.6958721e-05,0.156208992,0.123115212,-1.70332026,-0.116204061,0.0191445518,0.218679398 +-0.188764334,3.50508881,0.188764334,5.52442289e-05,0.145426735,0.123796925,-1.84936559,-0.216218084,0.0191665031,0.266969115 +0.104089677,3.50510311,-0.104089677,0.000227603858,0.119102076,0.0784782171,-1.48144007,0.247110173,0.0193103142,0.14832373 +-0.0882279798,3.50513554,0.0882279873,5.26292097e-05,0.14997074,0.113371275,-0.811609507,-0.0774539858,0.0191969778,0.12483447 +0.411929071,3.50530863,-0.411929071,0.00166911748,0.222797394,0.163440242,-1.20930171,0.307634592,0.0190229788,0.582954049 +-0.899333715,3.50542712,0.899333715,0.000453433953,0.165938333,0.0805146024,0.593125045,-0.166387975,0.0193567779,1.27287292 +-0.158938721,3.50551558,0.158938721,4.09841887e-05,0.156069696,0.125147074,-1.71620739,-0.120411575,0.0191452503,0.22484085 +-0.306395382,3.50566769,0.306395382,0.000185634286,0.144509956,0.16110228,-2.27956223,0.177220464,0.0191957299,0.433336556 +-0.17662178,3.50575018,0.176621795,5.21335314e-05,0.15128547,0.126931816,-1.77405643,-0.163577497,0.0191556178,0.24985671 +0.119732246,3.50588465,-0.119732246,0.000302618224,0.124272943,0.0779339001,-1.74032652,0.324908823,0.0193070322,0.169595033 +-0.173384786,3.506145,0.173384786,5.04450327e-05,0.151939362,0.126414552,-1.76506233,-0.155589238,0.0191522054,0.245238721 +-0.108396009,3.50620127,0.108396009,4.67783175e-05,0.155568793,0.117693007,-1.22580993,-0.117001869,0.0191636793,0.153360277 +-0.18755798,3.50620198,0.187557966,2.64918981e-05,0.146499112,0.125705346,-1.82724869,-0.208717629,0.0191644672,0.265266538 +-0.197452605,3.50625324,0.197452605,3.63656145e-05,0.146090254,0.132164717,-1.86867094,-0.247806102,0.0191772636,0.279425681 +-0.304197967,3.50627398,0.304197967,0.000117226613,0.142597646,0.159295693,-2.27967262,0.167520195,0.0191978887,0.4302333 +-0.245984852,3.5063715,0.245984852,6.07678849e-05,0.143949553,0.147957772,-2.1158793,-0.308745146,0.0192155298,0.347917706 +-0.104476124,3.50640774,0.104476117,3.80801866e-05,0.153898835,0.116193861,-1.15590823,-0.112557366,0.0191676728,0.147786289 +-0.251016945,3.50641727,0.251016974,9.51155453e-05,0.143826336,0.150366843,-2.13912725,-0.275701076,0.0192145705,0.35504213 +-0.124210522,3.50646734,0.124210522,3.17703089e-05,0.161092371,0.123219557,-1.46094143,-0.114639446,0.0191497933,0.175736278 +-0.189263627,3.50653934,0.189263612,5.4898439e-05,0.146627605,0.127390966,-1.83000147,-0.213204876,0.0191663019,0.267670721 +-0.185404927,3.50662827,0.185404941,4.22102312e-05,0.147981495,0.126836702,-1.81037724,-0.194900006,0.0191613995,0.262208641 +-0.0903010368,3.50689197,0.0903010294,3.49531001e-05,0.151558429,0.115062758,-0.854780197,-0.0769795179,0.0191887561,0.127730817 +-0.37543714,3.50692797,0.37543714,0.000161311094,0.178852662,0.181483328,-1.79578185,0.23872003,0.0191141088,0.531239808 +-0.224027663,3.50695777,0.224027649,7.20325479e-05,0.141505525,0.137565821,-1.99922049,-0.330545247,0.0192064233,0.316878051 +-0.259985983,3.50699329,0.259986013,8.74020989e-05,0.145624354,0.157242522,-2.16541862,-0.205572128,0.0192161966,0.367707491 +-0.590909362,3.50706244,0.590909362,0.00100834214,0.184965774,0.110258311,0.0769849196,-0.0851835012,0.0192591697,0.835722566 +-0.188026175,3.50717068,0.18802619,2.73722549e-06,0.149401426,0.132709801,-1.80141997,-0.201319337,0.019164307,0.265930712 +-0.087419048,3.50721693,0.087419048,3.61795901e-06,0.151706278,0.115384921,-0.787992358,-0.0663834289,0.0191935245,0.123752534 +-0.0721001029,3.50723982,0.0721001029,4.96945358e-05,0.247464031,0.233690381,-0.249111801,0.0332479514,0.0192090888,0.102386549 +-0.305019617,3.50736451,0.305019617,1.884229e-06,0.142444327,0.160579428,-2.26454449,0.181623891,0.0191976018,0.431414872 +-0.088112548,3.5074091,0.088112548,3.72654995e-06,0.152126089,0.115850881,-0.804019213,-0.0661579892,0.0191914756,0.124686234 +-0.106694937,3.50742793,0.106694937,5.00606548e-05,0.158110812,0.120250121,-1.19645083,-0.1037172,0.0191616118,0.150946185 +-0.305811465,3.50744224,0.305811465,1.17630698e-05,0.142943949,0.161396176,-2.26192975,0.189650685,0.0191968828,0.432532638 +0.316817403,3.50747395,-0.316817403,0.000375166885,0.184306011,0.123609483,-2.75030899,0.185007453,0.0191196278,0.448325306 +1.04230571,3.50776696,-1.04230571,0.00089881866,0.149595648,0.0714401081,0.413463116,-0.0628416538,0.019339703,1.474159 +-0.544971764,3.5077827,0.544971824,0.000671998831,0.192815647,0.126191765,-0.11862649,-0.0561287217,0.0192073621,0.770713627 +-0.127738267,3.50783157,0.127738252,3.10643081e-05,0.174492985,0.136694089,-1.48993814,-0.0599200912,0.0191439129,0.180821076 +-0.202624664,3.50784397,0.202624664,5.53287719e-05,0.154178917,0.159172744,-1.7556808,-0.231907457,0.0191865936,0.286577344 +-0.552659214,3.50793839,0.552659214,0.000535423285,0.191399813,0.123739831,-0.0861013904,-0.0638651699,0.0192153174,0.781580031 +-0.261980146,3.50803423,0.261980146,1.77602924e-05,0.144830778,0.159118265,-2.16400695,-0.141577825,0.0192165598,0.370576173 +-0.232657686,3.50812912,0.232657701,6.81981837e-05,0.145406231,0.1478948,-2.01535606,-0.308757365,0.0192086417,0.329105198 +-0.264702141,3.5082016,0.264702171,0.000101694961,0.142346397,0.157236874,-2.17816305,-0.100526482,0.0192166306,0.374386191 +-0.133468509,3.50820827,0.133468509,4.02989535e-05,0.169893563,0.133405834,-1.55066061,-0.0646553934,0.0191390198,0.188824371 +-0.186801106,3.50826693,0.186801121,2.10898161e-05,0.151586086,0.135287821,-1.78159285,-0.177276522,0.0191594865,0.264184982 +-0.237835526,3.50830126,0.237835497,9.54255956e-05,0.146186054,0.152627364,-2.02588177,-0.312087268,0.0192119628,0.336450905 +-0.086958237,3.50844955,0.0869582295,2.58186828e-05,0.152650878,0.116595984,-0.774941206,-0.0597274601,0.0191902816,0.123032771 +-0.217662528,3.50850368,0.217662543,7.15573769e-05,0.143607706,0.141788408,-1.91514921,-0.310027361,0.0191991478,0.307846695 +-0.135816664,3.50852966,0.135816649,2.62064314e-05,0.170430869,0.134129137,-1.57397473,-0.0614975095,0.0191367436,0.192145318 +0.34425056,3.50857449,-0.34425056,0.00102783472,0.206429392,0.144672662,-2.44187689,0.216774136,0.0190864224,0.487279266 +0.0910777897,3.50876236,-0.0910777822,0.000243889954,0.125737458,0.086613819,-1.19295466,0.135588571,0.0193068236,0.129777655 +-1.12838686,3.50885391,1.12838674,0.000417538686,0.135207176,0.0617839247,0.10124062,-0.094012551,0.019359475,1.59599829 +-0.458962709,3.50885916,0.458962739,0.00042669737,0.203436747,0.178535417,-0.644056141,-0.00010368228,0.0190962311,0.64920181 +-0.199302852,3.509027,0.199302837,3.11043186e-05,0.145757794,0.134588718,-1.84530616,-0.235620871,0.019174315,0.281985521 +-0.321954548,3.50906348,0.321954548,0.000206152268,0.143215925,0.167742953,-2.22047329,0.495631248,0.0191790108,0.455437779 +0.116240546,3.50914311,-0.116240546,0.000183387077,0.122982182,0.0775349587,-1.71062112,0.292123824,0.0193092488,0.164610088 +-0.542542338,3.50919008,0.542542338,0.000536547217,0.193160281,0.127673939,-0.132041872,-0.0611073487,0.0192023758,0.767275572 +-0.304740667,3.50942373,0.304740667,7.92478313e-05,0.141003519,0.166197643,-2.2133224,0.259421676,0.0192005616,0.430994838 +-0.546095729,3.50952673,0.546095729,0.000320816762,0.192369133,0.125874281,-0.111706793,-0.0622368082,0.0192068163,0.772315443 +0.305487067,3.5095315,-0.305487067,0.000138763804,0.176016971,0.115824953,-2.87606454,0.156337708,0.0191312395,0.432533205 +-0.0826556012,3.50956202,0.0826556012,1.80938441e-05,0.156095505,0.119732007,-0.640449226,-0.0520672016,0.0191916693,0.116892897 +-0.082544066,3.50958776,0.0825440735,1.92344778e-05,0.156215936,0.119841814,-0.63697505,-0.0516253188,0.0191917364,0.116736963 +-0.0887571871,3.50960708,0.0887571871,2.68608437e-05,0.155043498,0.118875392,-0.819102883,-0.0576556735,0.0191833433,0.125540659 +-0.0825361907,3.5096209,0.0825361907,2.80324497e-09,0.156222641,0.119856954,-0.636766195,-0.051573161,0.0191916674,0.116727844 +-0.0825307146,3.50965047,0.0825307146,7.20205273e-09,0.156231076,0.11987368,-0.636581957,-0.051520694,0.0191915985,0.116718136 +-0.0824301392,3.50973034,0.0824301392,2.08943875e-05,0.156721398,0.120341443,-0.63303715,-0.050648056,0.0191914737,0.116574161 +-0.545616627,3.50973797,0.545616627,2.99957378e-06,0.1924337,0.126061186,-0.113945909,-0.0625658557,0.0192061998,0.771648347 +-0.249097228,3.50975513,0.249097228,4.57382921e-05,0.146119684,0.162570581,-2.06266379,-0.145911783,0.0192189552,0.352366656 +-0.0825022385,3.5097816,0.082502231,1.37390716e-05,0.156325176,0.119988307,-0.635775924,-0.0508933328,0.0191912893,0.116676323 +0.169008613,3.51008177,-0.169008613,0.000199565664,0.138877049,0.079431124,-2.31158853,0.377670437,0.0192518234,0.239239305 +-0.149775222,3.51011276,0.149775207,2.88476003e-05,0.170809239,0.138307586,-1.66505802,-0.0363119915,0.0191274621,0.21184817 +-0.125164703,3.51020384,0.125164703,2.01371313e-05,0.174451768,0.1369555,-1.46450806,-0.0636901855,0.0191369951,0.1770726 +-0.54626894,3.51027632,0.54626894,0.000283407513,0.192260623,0.125826925,-0.110360697,-0.0641165227,0.0192062575,0.772561908 +-0.136170238,3.51034498,0.136170238,3.57653662e-05,0.173425883,0.137468413,-1.57837129,-0.0485597625,0.0191305261,0.192617282 +-0.112493262,3.51041245,0.112493262,3.84105006e-05,0.167907149,0.129998371,-1.29090333,-0.0821162686,0.0191460662,0.159094244 +0.618612885,3.51050329,-0.618612885,0.00130154367,0.179036945,0.0988123491,0.160072386,-0.138124585,0.0191458892,0.875312686 +-0.188114434,3.51052761,0.188114434,2.8511311e-05,0.158589363,0.152053684,-1.72085381,-0.156896934,0.0191569552,0.266037166 +-0.544762433,3.51071095,0.544762433,0.000226894088,0.192356244,0.128153831,-0.115151569,-0.063957423,0.0192040671,0.770425737 +-0.0966754928,3.51071334,0.0966754928,4.60973788e-05,0.157799095,0.120864756,-1.00048327,-0.078698732,0.0191662107,0.136826605 +-0.349592686,3.51073551,0.349592686,0.000172163578,0.150964111,0.179882839,-1.97797012,0.618741274,0.01915529,0.494425029 +-0.40746206,3.5108242,0.407462031,0.00036936914,0.188741833,0.191364035,-1.25772262,0.221357748,0.019095052,0.576278925 +0.12137191,3.51083279,-0.12137191,0.000180170551,0.125219151,0.077261813,-1.81193876,0.310447812,0.0193060897,0.171915829 +-0.17875044,3.51090574,0.17875044,3.66664935e-05,0.158191875,0.141753092,-1.71703792,-0.107564703,0.0191404074,0.252824664 +-0.155684114,3.51100779,0.155684114,2.90811986e-05,0.173785895,0.144788876,-1.66739607,-0.00920590386,0.0191226732,0.220200509 +-0.214255065,3.51102042,0.214255065,5.00388778e-05,0.148716763,0.152713433,-1.81876135,-0.282970905,0.0191957522,0.30308041 +-0.545463264,3.51120329,0.545463204,0.000299854117,0.192184538,0.127207637,-0.112896025,-0.0656158328,0.0192045961,0.771413624 +-0.115663707,3.51133537,0.115663707,2.23837051e-05,0.171186656,0.133343562,-1.3386327,-0.074586764,0.0191402789,0.163580567 +-0.100730769,3.51139402,0.100730762,3.27386406e-05,0.162737191,0.125276148,-1.08388329,-0.0765163973,0.0191571992,0.142507613 +-0.546203732,3.51143432,0.546203732,0.000277820451,0.192111418,0.126189977,-0.109221376,-0.066078715,0.0192052964,0.772460938 +-0.175481737,3.51144934,0.175481737,4.02780024e-05,0.161846459,0.143816024,-1.71056557,-0.0792583078,0.0191333983,0.248196393 +-0.114109159,3.51150918,0.114109159,1.29187101e-05,0.171379864,0.133489147,-1.31636524,-0.0731693357,0.0191411916,0.161397845 +-0.227742642,3.51156473,0.227742657,4.54659821e-05,0.149073794,0.1599323,-1.89229441,-0.242614716,0.0192081854,0.322242975 +-0.275807232,3.51161766,0.275807232,0.000223253912,0.134478539,0.158051372,-2.16525173,0.138084844,0.0192199275,0.390205085 +-0.141106814,3.51164913,0.141106799,4.80601666e-05,0.178429782,0.144297928,-1.60525393,-0.0123965424,0.0191250071,0.199653834 +0.97618413,3.51166677,-0.97618413,0.00132467097,0.164478719,0.080144912,0.561667144,-0.129046187,0.0193160605,1.38066065 +-0.161734104,3.51172018,0.161734119,1.35243263e-05,0.172511637,0.14884454,-1.66834927,0.00264724717,0.0191208702,0.22874397 +-0.133379251,3.51183987,0.133379251,3.58777652e-05,0.180260837,0.14390409,-1.54921794,-0.0316972397,0.0191276334,0.188675344 +0.53746891,3.51192474,-0.53746891,0.00157746603,0.192251265,0.119156599,0.0153328534,0.00262803398,0.0190453846,0.760328114 +-0.114329696,3.5119915,0.114329696,2.48142587e-05,0.172635436,0.13477774,-1.31921065,-0.0698649511,0.0191395283,0.161718249 +0.0805595294,3.51200104,-0.0805595294,0.000193023719,0.152483553,0.10803391,-0.884088755,0.0635017306,0.0193017051,0.11478442 +-0.14676936,3.51204252,0.14676936,4.36722621e-05,0.178347215,0.145920873,-1.63973451,0.0025152145,0.0191206485,0.207595974 +-0.14878352,3.51208496,0.14878352,1.87565602e-05,0.17805095,0.146850213,-1.64400184,0.00379395206,0.0191205293,0.210465655 +-0.163143948,3.51229334,0.163143948,1.81552296e-05,0.17251052,0.1492192,-1.67288065,0.00151615217,0.0191193633,0.230734587 +0.29698956,3.51238441,-0.29698956,0.000675673713,0.16886355,0.108833849,-2.8989048,0.141991198,0.0191390384,0.420197904 +-0.160398766,3.51246929,0.160398751,1.73298031e-05,0.173382744,0.149587646,-1.66106689,0.00807761587,0.0191185232,0.226853311 +-0.215609416,3.51264644,0.215609401,1.87160567e-05,0.152562559,0.164767027,-1.77910161,-0.219493911,0.0191979017,0.305003881 +0.216490686,3.51267791,-0.216490671,0.000621592742,0.140920803,0.0803899691,-2.67075825,0.285819769,0.0192144904,0.307203203 +0.865402222,3.51267958,-0.865402222,0.0050055813,0.173538148,0.0853112414,0.507369339,-0.12921679,0.0192849729,1.22477973 +-0.262861192,3.51284075,0.262861192,8.54484824e-05,0.142057702,0.168820292,-2.14333129,0.122930989,0.0192223582,0.371774316 +-0.122328967,3.51287842,0.122328967,5.82989851e-05,0.190214336,0.151833966,-1.42687786,-0.0158045627,0.0191309042,0.173058122 +-0.151906684,3.51289606,0.151906669,2.13971525e-05,0.179143906,0.149525359,-1.650388,0.0169476308,0.0191167835,0.21484217 +-0.329763651,3.51298404,0.329763651,0.000193596337,0.142491207,0.169642031,-2.14945364,0.550497055,0.0191731602,0.466487616 +0.128762692,3.51303363,-0.128762692,0.000265360286,0.129057288,0.0782741457,-1.90198588,0.312190711,0.0192950927,0.182220191 +-0.502594352,3.51321411,0.502594352,0.000648119021,0.199104011,0.155169681,-0.357299089,-0.075100109,0.0191366784,0.710924447 +-0.204509795,3.5132885,0.20450978,5.0142924e-05,0.159239471,0.172919855,-1.66570878,-0.213609651,0.0191838965,0.289287031 +-1.11064172,3.51328874,1.11064172,0.00107574451,0.136462361,0.0628661588,0.17212671,-0.0605902486,0.0193571635,1.57082474 +-0.0769297853,3.5133729,0.0769297853,4.15713876e-05,0.181985199,0.144637823,-0.443768471,-0.00645440724,0.0191886779,0.108868346 +-0.209171206,3.51343536,0.209171206,6.95388881e-05,0.155754089,0.167432666,-1.70693851,-0.244154006,0.0191896111,0.295827329 +-0.10298045,3.51379251,0.102980442,3.53220748e-05,0.170252144,0.132744715,-1.12425971,-0.0571856759,0.0191468429,0.145722702 +0.0718565509,3.51383114,-0.0718565509,8.61758745e-05,0.322965354,0.255857825,-0.51810807,-0.000737326045,0.0192985628,0.102386542 +-0.155839682,3.51400995,0.155839682,2.49544682e-05,0.181630686,0.15416044,-1.65734434,0.0353723615,0.0191114619,0.220433265 +-0.169551909,3.51408482,0.169551909,2.53170238e-05,0.171256408,0.15375942,-1.66778016,-0.00737348385,0.0191181917,0.23978737 +-0.161803067,3.5142312,0.161803067,9.78865683e-06,0.176946998,0.1547378,-1.65648603,0.0325646587,0.0191120524,0.22884956 +-0.128399923,3.51423693,0.128399923,3.45775697e-05,0.191969454,0.154773191,-1.49608088,-0.00295045599,0.0191232972,0.181702614 +-0.160800904,3.514328,0.160800904,1.53050642e-05,0.177960858,0.155343205,-1.65474951,0.0353833809,0.0191116706,0.22742857 +-0.167617097,3.51446295,0.167617097,1.85394219e-05,0.173190966,0.155612826,-1.65611076,0.00833090488,0.0191144478,0.237055302 +-0.730699539,3.51454544,0.730699539,0.00276258565,0.181496561,0.0900273547,0.249866605,-0.199394599,0.0193214677,1.03433883 +-0.203456238,3.51454759,0.203456253,2.44936964e-05,0.159018874,0.172501057,-1.65323782,-0.20483239,0.0191801544,0.287782758 +-0.196468204,3.51477051,0.196468204,5.74044789e-05,0.160924584,0.16750446,-1.65695977,-0.158345282,0.0191604253,0.277878523 +-0.391125947,3.51485109,0.391125947,0.000259175547,0.175037906,0.194892153,-1.4477756,0.415129423,0.0190985892,0.553167582 +-0.150228262,3.51490402,0.150228262,1.74029155e-05,0.192085996,0.166181862,-1.61852467,0.0956512168,0.0191089045,0.212480873 +-0.165928051,3.51507568,0.165928051,1.74170509e-05,0.176095158,0.158039123,-1.64834929,0.0294362456,0.0191111322,0.234659672 +-0.168329626,3.51514983,0.168329626,1.082021e-06,0.174501777,0.158146188,-1.65092754,0.0155038182,0.019113116,0.238071889 +-0.10060633,3.51542091,0.100606337,3.13408127e-05,0.173273087,0.135798767,-1.0781486,-0.039384529,0.0191453211,0.142350808 +-0.0921902061,3.51555395,0.0921902061,5.04458876e-05,0.163740903,0.127648622,-0.897157192,-0.038387794,0.0191595927,0.130452931 +-0.243472517,3.51567698,0.243472531,5.24524949e-05,0.159971088,0.200340182,-1.78687632,-0.153882369,0.0192290898,0.344350934 +-0.0766334832,3.51572776,0.0766334832,1.14955146e-05,0.183618054,0.147003219,-0.431351662,0.00177728618,0.0191831961,0.108520225 +-0.168009356,3.51585436,0.168009341,9.97442658e-06,0.17979531,0.166677549,-1.62989688,0.0371150002,0.0191103183,0.237614304 +-0.258756191,3.51601505,0.258756191,6.73354516e-05,0.151946947,0.195748255,-1.93148184,0.171812758,0.0192307439,0.365946889 +-0.325404733,3.51602912,0.325404733,6.88893269e-05,0.136587754,0.168124765,-2.12442613,0.614259362,0.0191786699,0.460371614 +-0.205080539,3.51603317,0.205080539,2.75562725e-05,0.162651658,0.181342065,-1.60959172,-0.196641296,0.0191793963,0.290079921 +-0.16881071,3.51606941,0.168810695,1.98340567e-05,0.181275055,0.170893103,-1.61881328,0.0326923057,0.0191110261,0.238742918 +-0.162374794,3.51636815,0.162374794,2.20482816e-05,0.185099661,0.166467935,-1.63647032,0.0924913287,0.0191014465,0.229645506 +0.152634218,3.5164628,-0.152634218,0.000315848796,0.138118774,0.0797926188,-2.18881798,0.346313357,0.0192629714,0.216525242 +-0.199783728,3.51646471,0.199783728,2.9297933e-05,0.164603323,0.18041645,-1.59474397,-0.1618011,0.0191679131,0.282549173 +-0.181809336,3.51648998,0.181809336,5.1186762e-05,0.170607388,0.168146551,-1.61594677,-0.0406913124,0.0191312451,0.257160515 +-0.095783785,3.51651764,0.095783785,2.46616837e-05,0.172434747,0.13550663,-0.97747308,-0.0244580843,0.0191503111,0.135603189 +-0.177751005,3.51655912,0.177751005,2.46652617e-05,0.173570961,0.168553218,-1.61856008,-0.0148260361,0.0191241074,0.251413763 +-0.102641001,3.51667285,0.102641001,3.17920312e-05,0.188253045,0.150138289,-1.11950576,0.00393991545,0.0191396959,0.14527747 +-0.147863567,3.51686239,0.147863567,2.8880364e-05,0.204483032,0.176315844,-1.61984921,0.148247868,0.0191033483,0.209120601 +-0.154672593,3.5170207,0.154672593,2.03774707e-05,0.196302474,0.170759067,-1.64262378,0.121145785,0.019099772,0.218762457 +0.430816948,3.51711631,-0.430816948,0.00221534469,0.222951502,0.163456723,-0.869031131,0.233508036,0.0190003216,0.609827995 +0.483532816,3.51718378,-0.483532786,0.000764181605,0.206477746,0.143131569,-0.274116218,0.132812947,0.0189984161,0.683822393 +-0.492453903,3.51718926,0.492453903,0.000369668473,0.198672593,0.166229993,-0.388972759,-0.103524655,0.01911439,0.696512461 +-0.282655537,3.51719403,0.282655537,0.000126178798,0.131132662,0.167935818,-2.07056761,0.422270924,0.019225819,0.399842203 +-0.203490436,3.51723337,0.203490451,4.09038439e-05,0.170079485,0.195110798,-1.56011927,-0.17100735,0.0191719849,0.287821203 +-0.138051286,3.51739359,0.138051286,1.89726179e-05,0.212425798,0.178654805,-1.57469773,0.118859321,0.0191081855,0.195238858 +0.382878721,3.51740956,-0.382878721,0.00109614804,0.223722458,0.161907554,-1.74752545,0.202942982,0.0190346241,0.542016625 +-0.219735622,3.51741838,0.219735637,5.54444559e-05,0.167921245,0.206702664,-1.59100294,-0.173817694,0.019210184,0.310765177 +-0.0875650123,3.51742816,0.0875650048,3.54425101e-05,0.163298935,0.128104776,-0.785138845,-0.0191114545,0.0191628728,0.123888269 +1.22853732,3.51745796,-1.22853732,0.000542826019,0.100040704,0.0457775295,-0.112670407,-0.0168192927,0.0193458237,1.737818 +1.20942068,3.51747131,-1.20942068,0.00118953711,0.121349089,0.0557161234,-0.00931961741,-0.00991474465,0.0193455629,1.71077693 +1.18647659,3.51748776,-1.18647659,0.00121602975,0.129890114,0.0597056858,0.0585631281,-0.0339814648,0.0193467233,1.67832208 +-0.18678911,3.51755071,0.18678911,3.10678261e-05,0.17677556,0.186768591,-1.56275272,-0.0590273403,0.0191385597,0.264176607 +-0.213059932,3.51761961,0.213059932,6.10035459e-05,0.185207397,0.234325424,-1.50278604,-0.185983777,0.0191950146,0.301334262 +-0.0723372996,3.51768494,0.0723372996,2.22624767e-05,0.252439857,0.257381916,-0.243973479,0.0426220819,0.0191802271,0.102386549 +-0.295223564,3.51769543,0.295223594,0.000127342471,0.130508795,0.169044361,-2.1390655,0.689511061,0.0192169622,0.417580485 +-0.0763803273,3.51771879,0.0763803273,3.50063056e-05,0.185706526,0.149618641,-0.431035519,0.00585074304,0.0191778671,0.108076796 +-0.124273881,3.51773548,0.124273896,5.12142797e-05,0.212934732,0.175023511,-1.44195843,0.0603232719,0.019115584,0.175858736 +-0.188668996,3.51774859,0.188668996,1.10066985e-05,0.177094325,0.189155892,-1.555722,-0.0692398474,0.0191412959,0.266845167 +-0.252957821,3.51785564,0.252957821,6.70232548e-05,0.152381897,0.200424939,-1.85847759,0.220578209,0.0192332827,0.357753098 +-0.191409886,3.51787019,0.191409901,3.45101071e-05,0.174740136,0.189102933,-1.54941916,-0.087899752,0.0191473253,0.27070272 +-0.369478256,3.51804686,0.369478256,0.000190707826,0.158381745,0.185731292,-1.72210836,0.508654416,0.0191156957,0.522578478 +0.178966984,3.51808786,-0.178966999,0.000233777653,0.140978396,0.0794678032,-2.38574386,0.332442641,0.0192392562,0.25317347 +-0.11956121,3.51815581,0.11956121,6.98103031e-05,0.214562833,0.176437706,-1.37943542,0.0609247871,0.0191186704,0.169334605 +-0.129779831,3.51824117,0.129779831,6.526996e-05,0.221980482,0.185660675,-1.50077045,0.111231446,0.0191122927,0.183650047 +-0.166946188,3.51825094,0.166946173,1.4557063e-05,0.201052189,0.202842653,-1.57830501,0.140630394,0.0190970432,0.236099854 +-0.174434125,3.51839113,0.17443414,4.31024855e-05,0.198103786,0.205734491,-1.53235316,0.0550398156,0.0191101078,0.246736765 +-0.995077848,3.51841831,0.995077848,0.0020873847,0.154101461,0.0741292983,0.593055725,-0.110263616,0.0193542335,1.40731573 +-0.139362261,3.51870418,0.139362261,2.53892867e-05,0.219213545,0.18639189,-1.57978857,0.151073635,0.0191037431,0.197098732 +0.904221296,3.51873112,-0.904221416,0.00304992031,0.172143787,0.0844855532,0.550427854,-0.150108308,0.0192940682,1.2794435 +-0.44188869,3.51873517,0.44188869,0.000407961255,0.192549482,0.192953974,-0.709460497,0.114285812,0.0190925822,0.624957204 +-0.34387058,3.51878166,0.34387058,0.000173831868,0.137057394,0.17213589,-1.95054471,0.769790649,0.0191602483,0.486372828 +-0.467834771,3.51879025,0.467834771,0.000382473314,0.197282761,0.178670213,-0.513853312,-0.0250142962,0.0190961957,0.661928535 +-0.232339039,3.51890016,0.232339039,5.44632458e-05,0.167764485,0.215158746,-1.64364076,-0.0507920869,0.0192266237,0.328609526 +0.117330283,3.5189085,-0.117330283,0.000176017507,0.12776117,0.079090707,-1.80706179,0.263606131,0.01930473,0.166051984 +-0.0830852985,3.51916409,0.0830852985,3.23294298e-05,0.162633404,0.128143921,-0.672641933,-0.00280302763,0.0191666652,0.117648348 +-0.413301408,3.51916504,0.413301408,0.000199222181,0.182872087,0.193470508,-1.10281229,0.261239678,0.0190872494,0.584666848 +-0.110055804,3.51916933,0.110055804,2.71167155e-05,0.211931899,0.173198178,-1.24212873,0.0543645211,0.0191245694,0.155645162 +-0.224227011,3.51922345,0.224226996,5.90734271e-05,0.174124733,0.222708032,-1.54223204,-0.144356817,0.0192179829,0.317130804 +-0.384986579,3.51931977,0.384986579,0.000213545762,0.166925967,0.191168413,-1.50566888,0.475259244,0.0190987512,0.544499993 +-0.195364177,3.51950836,0.195364192,4.16348339e-05,0.191387922,0.228933826,-1.44681168,-0.0851577297,0.0191550069,0.276318759 +-0.138876781,3.51951551,0.138876796,8.41116344e-06,0.225095794,0.192676321,-1.57355106,0.175191492,0.0191015862,0.196420386 +-0.138007537,3.51952004,0.138007537,3.34861215e-05,0.225689396,0.192668542,-1.56858087,0.170264453,0.0191021841,0.195183784 +-0.139370173,3.51961613,0.139370173,1.16127376e-05,0.225371465,0.193499327,-1.57468116,0.182061002,0.019100951,0.197111771 +-0.245283902,3.51968837,0.245283902,4.32215566e-05,0.164249301,0.215944275,-1.69280326,-0.010543935,0.0192338582,0.346944362 +0.205377221,3.51981735,-0.205377221,0.000649992668,0.141780645,0.079632014,-2.57962632,0.280993611,0.0192183796,0.290978968 +-0.235191092,3.51984978,0.235191107,4.60620504e-05,0.169970557,0.221827731,-1.62001777,-0.032189101,0.0192298982,0.332652271 +-0.14139986,3.51987886,0.14139986,2.43245468e-05,0.224642694,0.194507658,-1.58138633,0.19709304,0.0190981347,0.199972868 +0.25634408,3.51999068,-0.25634408,0.000770282815,0.145054877,0.08510153,-2.87769175,0.148219466,0.0191786289,0.362607539 +-0.0969556943,3.52008057,0.0969556943,1.25905462e-05,0.184795037,0.147174329,-1.0108881,0.0116814449,0.0191388316,0.137133926 +-0.0848238841,3.52028584,0.0848238841,1.10764886e-05,0.168402508,0.133455724,-0.720505118,0.0145701449,0.0191603452,0.120133027 +-0.188129872,3.52063465,0.188129872,2.84857597e-05,0.205320209,0.238165528,-1.44113231,0.000760216266,0.0191276185,0.266065717 +-0.109671019,3.52078581,0.109671012,2.40500776e-05,0.21673429,0.178244755,-1.23357606,0.0701339841,0.0191202816,0.155102566 +-0.240248203,3.52085686,0.240248203,4.28805761e-05,0.171029955,0.228382364,-1.59921587,-0.0226227455,0.0192355551,0.339774191 +-0.0722786561,3.52086854,0.0722786635,7.59942668e-06,0.255037367,0.264673293,-0.239361078,0.0464928895,0.0191729944,0.102386557 +-0.147067085,3.52088737,0.147067085,1.29192849e-05,0.225256369,0.199923113,-1.59912765,0.252260059,0.0190904494,0.208015203 +-0.149221718,3.5210104,0.149221718,1.73462067e-05,0.223617017,0.199761122,-1.60714042,0.25964731,0.019086862,0.211047471 +0.278708577,3.52104378,-0.278708577,0.000644043263,0.155024678,0.094838284,-2.93594289,0.100900114,0.0191573929,0.395043522 +0.931298256,3.52104425,-0.931298196,0.00152260601,0.16998814,0.0833205432,0.553638101,-0.142076612,0.0192982145,1.31778479 +-0.110663906,3.52106071,0.110663906,6.25940811e-06,0.220234409,0.181717888,-1.25023842,0.079029046,0.0191186406,0.156515718 +-0.347066015,3.52108526,0.347066015,4.27165287e-05,0.1362174,0.173226491,-1.8976053,0.824042499,0.0191551335,0.490905017 +-0.159662008,3.52115345,0.159662008,1.23124746e-05,0.212678835,0.200692073,-1.58716035,0.254236728,0.0190793835,0.225796819 +-0.222990081,3.52125955,0.222990096,8.43564885e-06,0.178883582,0.23450242,-1.46170688,-0.110830575,0.019216232,0.31540972 +0.145310134,3.52130079,-0.145310134,0.000389632856,0.138131291,0.0803577453,-2.13425303,0.311931849,0.0192671437,0.206174865 +-0.153459385,3.52138591,0.153459385,3.85734056e-05,0.220745206,0.202553302,-1.59596336,0.269729525,0.0190823171,0.217067003 +-0.0943428203,3.52139544,0.0943428203,2.45675474e-05,0.186627761,0.149216533,-0.958025455,0.0272497758,0.0191396009,0.133457527 +-0.329878002,3.5214324,0.329878002,0.000198816182,0.131419986,0.171259031,-2.00671148,0.825398803,0.0191762075,0.466639042 +-0.110756911,3.52144384,0.110756919,3.12470402e-05,0.22148478,0.183043972,-1.25121033,0.0825684145,0.0191174261,0.156652153 +-0.0825360715,3.52150583,0.0825360715,2.35476291e-05,0.167297304,0.132601067,-0.673002362,0.0181393176,0.0191608761,0.116897643 +-0.159043431,3.52163482,0.159043431,1.21386056e-05,0.215695068,0.204138726,-1.58233356,0.27076596,0.019076921,0.224922672 +-0.110476576,3.52164483,0.110476576,8.53105576e-07,0.221968174,0.183579579,-1.24606955,0.0841047317,0.0191172697,0.156254202 +-0.364872873,3.52167559,0.364872873,0.000150979613,0.149399117,0.181187183,-1.73613882,0.618233919,0.0191191006,0.516122937 +0.359980315,3.52168965,-0.359980315,0.000762246433,0.216992944,0.153707474,-2.16850328,0.145798966,0.0190583486,0.509845376 +-0.292219192,3.52180743,0.292219222,0.000114176903,0.128634512,0.172251403,-2.03973126,0.738367379,0.0192238595,0.413292587 +0.103901602,3.52188444,-0.103901602,0.000178054921,0.125961706,0.0820511132,-1.61466217,0.186660588,0.0193074979,0.147085354 +-0.411037236,3.52197504,0.411037266,0.00016111169,0.178722382,0.194461599,-1.10730493,0.334377885,0.0190826803,0.581460536 +-0.311827481,3.52207327,0.311827481,6.69812071e-05,0.127307504,0.171566963,-2.05872631,0.923267722,0.0192034058,0.440991402 +-0.19755891,3.52211285,0.19755891,3.72526192e-05,0.2170524,0.290810972,-1.36822677,0.0499690846,0.0191546846,0.279419839 +-0.109352864,3.52216935,0.109352872,1.99570641e-05,0.222625345,0.184368283,-1.22658777,0.0899709985,0.0191173684,0.154651791 +-0.159093261,3.5222497,0.159093261,1.28120137e-05,0.218886614,0.208596438,-1.57533264,0.291405827,0.0190742929,0.224994346 +-1.12317228,3.52224994,1.12317228,0.000791659346,0.136880875,0.0626180023,0.113427438,-0.0688825846,0.01934967,1.58855557 +-0.17938526,3.52228451,0.179385245,1.54571899e-05,0.231616825,0.27306211,-1.39110458,0.12026687,0.019103691,0.253699809 +-0.270102084,3.52229643,0.270102084,0.000123976817,0.134715557,0.178290263,-2.0835743,0.643728316,0.0192332137,0.382103443 +-0.159314588,3.5223434,0.159314588,6.29484339e-06,0.220049068,0.211708844,-1.57081771,0.29523164,0.019073993,0.225307941 +-0.181266576,3.52253437,0.181266576,2.16774333e-05,0.233144566,0.277502328,-1.37880373,0.11540357,0.0191058572,0.256362468 +-0.249955967,3.52254772,0.249955952,5.4361848e-05,0.162413508,0.224244758,-1.66698885,0.240408853,0.0192399472,0.353502393 +-0.159931645,3.52258229,0.15993166,1.05645649e-05,0.223653808,0.220989734,-1.55731022,0.304553449,0.0190729294,0.226178259 +-0.244735539,3.52259731,0.244735539,7.21392425e-05,0.165341094,0.223636597,-1.71716726,0.183176607,0.0192358606,0.346155018 +-0.224279419,3.52270007,0.224279433,5.27891461e-05,0.188816413,0.256366879,-1.38606381,-0.104216352,0.0192189049,0.317211449 +-0.0794666111,3.5227375,0.0794666111,3.46232482e-05,0.165576041,0.1314459,-0.548241615,0.0118031409,0.0191633049,0.112489946 +-0.110344,3.52276325,0.110344008,3.36986704e-05,0.234421849,0.196203992,-1.24052846,0.121772394,0.0191160869,0.156053245 +-0.355281234,3.52299881,0.355281264,0.000183233788,0.139657289,0.177057415,-1.79194891,0.796267629,0.0191383418,0.50246346 +-0.0723490566,3.52300978,0.0723490566,1.51886134e-05,0.258708596,0.272637904,-0.257162929,0.0433238894,0.0191667844,0.102386549 +-0.232925996,3.52305913,0.232926011,5.37377709e-05,0.185016468,0.254432112,-1.46244037,0.00350921601,0.0192282926,0.329447865 +-0.0944970995,3.52308702,0.0944970995,1.32641326e-05,0.191872463,0.154408678,-0.960973084,0.0418708436,0.0191351101,0.133686543 +-0.296611696,3.52330303,0.296611726,0.000134293572,0.12791416,0.174752608,-2.01708841,0.845841169,0.0192213599,0.41953066 +-0.174926221,3.52345896,0.174926221,2.67455362e-05,0.238509536,0.279641002,-1.40780926,0.208438486,0.0190852024,0.247456044 +0.262672365,3.52351356,-0.262672365,0.000493480649,0.147286236,0.0871063471,-2.89218712,0.120142832,0.0191716161,0.371544689 +1.15292704,3.52351356,-1.15292704,0.000715975766,0.13674438,0.0622680821,0.0386267863,-0.0593386777,0.0193460062,1.63063896 +-0.10019049,3.5235877,0.10019049,1.68182723e-05,0.210977614,0.173553765,-1.06281137,0.0823490247,0.0191261619,0.141748562 +-0.146278918,3.52364063,0.146278903,2.44708917e-05,0.25129357,0.231873348,-1.57614899,0.393651307,0.0190840699,0.206877649 +-0.343693882,3.52392983,0.343693912,0.000135238006,0.130273372,0.171775237,-1.86534059,0.93675822,0.019162368,0.486117721 +-0.22154443,3.52398205,0.22154443,7.50204272e-05,0.206684485,0.293247998,-1.28665853,-0.0703160912,0.0192098022,0.313333392 +0.0910952389,3.52401996,-0.0910952315,0.000169057763,0.128837466,0.0891661048,-1.33997285,0.100446627,0.0193050522,0.129044831 +-0.171076298,3.52406144,0.171076298,2.73741243e-05,0.247223943,0.292739213,-1.40851521,0.284819841,0.0190767609,0.24196738 +-0.0970103145,3.52407908,0.0970103145,2.14444863e-05,0.204009831,0.166473225,-1.00780523,0.0726698563,0.0191291142,0.137207717 +-0.2100842,3.52411366,0.210084215,3.83114457e-05,0.215146542,0.298404962,-1.22664046,-0.0799048245,0.0191846061,0.297183305 +-0.347102463,3.52415609,0.347102463,5.59705768e-05,0.131838739,0.173433229,-1.83997011,0.936706543,0.0191543773,0.49098438 +-0.427797467,3.5241673,0.427797437,0.000323748594,0.184889942,0.194914117,-0.856745005,0.184503525,0.0190873593,0.605012536 +0.258022487,3.52422523,-0.258022487,4.47918428e-05,0.145370126,0.0852241367,-2.88079739,0.123219311,0.0191755276,0.365110308 +-0.168981105,3.52423525,0.16898109,1.42764729e-05,0.24951008,0.294259042,-1.41966045,0.322754443,0.0190713014,0.239019901 +-0.164357662,3.52424812,0.164357662,2.5748488e-05,0.246882915,0.277345896,-1.46490657,0.370906889,0.0190659314,0.23245202 +-0.18100448,3.52443409,0.18100448,4.38748202e-06,0.248247042,0.305211514,-1.32797074,0.167305052,0.0190960076,0.256004274 +-0.179989427,3.52444673,0.179989412,2.19032045e-05,0.249068618,0.305366963,-1.33404088,0.181176856,0.0190941598,0.254559278 +-0.183056727,3.52446795,0.183056727,2.44566982e-05,0.249778956,0.310194641,-1.30098748,0.143285081,0.0191008504,0.258888841 +-0.437293857,3.5245049,0.437293887,0.000252349273,0.188495368,0.194775388,-0.719712973,0.129067972,0.0190874692,0.618535757 +-0.285909772,3.52451777,0.285909772,7.80621122e-05,0.127774507,0.169557273,-2.12846661,0.673006296,0.0192287751,0.404530972 +-0.0888381079,3.52460432,0.0888381079,1.68247389e-05,0.185325831,0.148702115,-0.838727057,0.0506400578,0.0191409662,0.125648633 +-0.235152647,3.52460575,0.235152662,5.10157588e-05,0.192399204,0.276667088,-1.42048514,0.11706166,0.0192341935,0.332584083 +0.306213766,3.52470684,-0.306213766,0.000463535864,0.175603524,0.114296123,-2.84662628,0.065423578,0.0191242825,0.433193982 +-0.0877605081,3.52471685,0.0877605081,1.96306028e-05,0.184299558,0.147929519,-0.81166929,0.0519675128,0.0191426165,0.124121122 +-0.166418761,3.52477813,0.166418761,1.86818797e-05,0.256616265,0.302204281,-1.42272472,0.384016007,0.0190646239,0.235359401 +-0.313764125,3.52489591,0.313764155,0.000116190226,0.124505162,0.171482205,-2.01980233,1.06300998,0.0192034561,0.443732709 +-0.189667463,3.5249033,0.189667463,3.15493671e-05,0.250889093,0.328831851,-1.23089969,0.0819162726,0.0191188604,0.268268347 +-0.25524646,3.5249579,0.25524649,2.64632163e-05,0.158533111,0.22530508,-1.68182039,0.494430006,0.0192439388,0.361051112 +-0.388806611,3.52498174,0.388806611,0.000141724508,0.16274929,0.192624077,-1.38829982,0.566124141,0.0190898832,0.549984515 +-0.311643749,3.52498794,0.311643749,8.71541706e-05,0.124372952,0.171553344,-2.02006364,1.06002057,0.0192060824,0.440732539 +0.103410579,3.52503109,-0.103410587,3.41148261e-05,0.126980409,0.0828093439,-1.63778198,0.173696861,0.0193072278,0.14660266 +-0.313213468,3.5250895,0.313213497,7.22278003e-07,0.124102876,0.171321973,-2.01907277,1.073542,0.0192045253,0.442962915 +-0.207578331,3.52518678,0.207578331,3.15985744e-05,0.221615657,0.309505731,-1.18585289,-0.0531324707,0.0191741716,0.293623984 +-0.313025147,3.52528095,0.313025177,1.46444745e-06,0.12405514,0.171366319,-2.02159286,1.07930148,0.0192046948,0.442695946 +-0.0887939036,3.52530932,0.088793911,6.76113541e-06,0.187301546,0.150667414,-0.837618113,0.0566536635,0.0191392787,0.125589803 +-0.0884198993,3.52537322,0.0884198993,1.67705321e-06,0.186855376,0.15030171,-0.829285383,0.0571875237,0.0191397443,0.125065401 +-0.0790705234,3.52542496,0.0790705234,2.27771998e-05,0.168908119,0.135007426,-0.555638492,0.0276937317,0.0191569459,0.111944109 +-0.313196599,3.52550673,0.313196599,2.16794779e-05,0.124119766,0.171511292,-2.02477598,1.07936823,0.0192045607,0.442938626 +-0.101834498,3.52581549,0.101834498,5.08334124e-05,0.228967115,0.191796437,-1.0952338,0.136209175,0.0191186853,0.144112706 +0.0807646662,3.52583122,-0.0807646662,0.000143009282,0.152734026,0.110530719,-1.00904477,0.047661975,0.0192994196,0.114475563 +-0.367181331,3.52593851,0.367181331,0.000255330378,0.14891775,0.185093924,-1.68401301,0.701508343,0.0191091467,0.519411981 +-0.312738836,3.52597332,0.312738836,0.000127915322,0.123997159,0.17157796,-2.03608465,1.09296417,0.0192052238,0.442284286 +-0.136545554,3.52608633,0.136545554,3.34740762e-05,0.291183949,0.269355118,-1.50871181,0.47615695,0.0190925356,0.19317545 +-0.153579578,3.52609158,0.153579578,1.45238355e-05,0.264124662,0.269713521,-1.53511488,0.567206264,0.0190605186,0.217205882 +-0.313987553,3.52609491,0.313987553,0.000148809224,0.123923585,0.171900421,-2.02061033,1.1084801,0.019203255,0.444048375 +-0.257135659,3.52610707,0.257135659,5.28411256e-05,0.160435766,0.232933432,-1.63118541,0.544695556,0.0192461535,0.363675773 +0.156437635,3.52616072,-0.156437635,0.000277383631,0.141030669,0.0804123878,-2.23086643,0.300638318,0.0192522407,0.221544757 +-0.0864416063,3.52616596,0.0864416063,1.26641726e-05,0.184659541,0.148594394,-0.781058967,0.0592560656,0.0191415157,0.122249871 +-0.145507932,3.52617288,0.145507932,1.29671716e-05,0.276443094,0.266150862,-1.54702795,0.540484011,0.019078007,0.205805734 +-0.149148896,3.52618074,0.149148896,1.35583723e-05,0.27165401,0.269461572,-1.53894663,0.55546093,0.0190700311,0.210934401 +-0.151980013,3.52619529,0.151980013,1.32101413e-05,0.267395288,0.270369083,-1.53454173,0.567562342,0.0190645754,0.214955807 +-0.275518656,3.52622509,0.275518626,8.73504177e-05,0.127196237,0.171086431,-2.18410897,0.861481488,0.0192321502,0.389738858 +-0.38567692,3.52624941,0.38567692,0.000204984186,0.160332769,0.19328469,-1.43636417,0.633604169,0.019090293,0.545544207 +1.04989123,3.52628565,-1.04989123,0.000613325159,0.148131445,0.0702692941,0.365960062,-0.0601607375,0.0193292852,1.48505068 +-0.139658615,3.52629256,0.1396586,2.70971377e-05,0.28836295,0.27112323,-1.52270353,0.515184522,0.0190873295,0.197544038 +-0.128430426,3.52634263,0.128430426,4.72630127e-05,0.301227629,0.27326867,-1.44310272,0.424932897,0.0191003531,0.181680903 +-0.143761396,3.52634621,0.143761396,1.83841257e-05,0.282534182,0.269148737,-1.54797935,0.54269129,0.0190802049,0.203323334 +-0.100352518,3.526402,0.100352518,3.24190478e-05,0.227287188,0.190445125,-1.07337487,0.141274199,0.0191194508,0.142009228 +-0.130954891,3.52640438,0.130954891,3.22041778e-05,0.299241751,0.272725523,-1.46615684,0.442977905,0.0190977324,0.185219795 +-0.0881588757,3.52644324,0.0881588757,1.62170218e-05,0.190554857,0.154097676,-0.823873878,0.0721549615,0.0191384442,0.124684848 +-0.254340649,3.52644372,0.254340619,1.93927171e-05,0.163455665,0.239955649,-1.60271716,0.536944091,0.0192463584,0.359752297 +1.01996398,3.52651095,-1.01996386,0.00167705107,0.156016588,0.0750671327,0.477264345,-0.0950336307,0.0193185918,1.44288075 +-0.163321957,3.52651763,0.163321957,1.7547789e-05,0.302711695,0.382027447,-1.3975991,0.533554673,0.0190492403,0.230976298 +-0.439786255,3.52654076,0.439786285,0.000198343274,0.187723055,0.194368437,-0.689188421,0.108994879,0.0190855265,0.622023702 +-0.169701472,3.52659917,0.169701472,2.04806838e-05,0.315896422,0.40839988,-1.25422943,0.37837711,0.0190640222,0.240032747 +0.546907425,3.52663374,-0.546907425,0.00101303065,0.190405637,0.116526186,0.0572746359,-0.0554474667,0.0190467034,0.773800731 +-0.119487993,3.5267601,0.119487986,4.04434395e-05,0.304154694,0.270948291,-1.35221291,0.350429058,0.0191058088,0.169015557 +-0.635839939,3.52677774,0.635839939,0.000516913889,0.189377531,0.0984136984,-0.0243244693,-0.181085885,0.0192842595,0.899354756 +-0.43771106,3.52680182,0.43771106,2.97765519e-06,0.18706122,0.195132867,-0.705274343,0.119500354,0.0190854352,0.619128823 +0.0722047836,3.52680182,-0.0722047836,6.6636363e-05,0.318386018,0.260983288,-0.593628645,-0.00536277285,0.0192974564,0.102386542 +-0.157400012,3.5268712,0.157400012,2.03685704e-05,0.295932233,0.356197774,-1.45302987,0.607867301,0.0190512091,0.22262305 +-0.118453294,3.52693796,0.118453294,2.50924149e-05,0.30496189,0.271756589,-1.3384459,0.349693537,0.0191063937,0.167577356 +-0.0895497948,3.52704144,0.0895497948,1.30557437e-05,0.199117094,0.162540868,-0.85666132,0.0947277248,0.0191350691,0.126645625 +-0.213321924,3.52722263,0.213321924,7.55416331e-05,0.247621864,0.373994082,-1.02957416,-0.0399902314,0.0191890895,0.301723123 +0.258243799,3.52725029,-0.258243769,0.000186619698,0.145211875,0.0849649236,-2.87432075,0.110237151,0.0191748478,0.365313351 +-0.186999828,3.52730346,0.186999813,4.06652871e-05,0.315971941,0.460198343,-1.03281832,0.152340233,0.0191024058,0.264491558 +-0.0935935155,3.5273838,0.093593508,1.97345471e-05,0.212969929,0.176185951,-0.94667381,0.122144654,0.0191286504,0.132370055 +-0.171472639,3.52750254,0.171472639,2.24001433e-05,0.341365635,0.462571502,-1.16689825,0.372698069,0.019064663,0.242527336 +-0.208691955,3.52763319,0.208691955,3.5747842e-05,0.271483034,0.417155474,-0.970098317,-0.0387217104,0.0191663317,0.295192182 +0.10598515,3.52769947,-0.10598515,0.000134100701,0.129146829,0.0828786418,-1.69521153,0.176795512,0.0193043761,0.149967134 +0.103058577,3.52771401,-0.103058577,0.000104749648,0.128500313,0.0834055543,-1.65509045,0.164763778,0.0193057563,0.145947337 +0.168198153,3.52775502,-0.168198153,0.00020431848,0.143760264,0.0808430612,-2.33251214,0.286334217,0.0192391388,0.238549948 +-0.161130309,3.52778292,0.161130309,1.50263286e-05,0.335664868,0.443201959,-1.37363148,0.648809791,0.019039873,0.227881223 +-0.151505142,3.5278523,0.151505142,1.25610495e-05,0.281433731,0.308196157,-1.52155447,0.688767314,0.0190610159,0.214265496 +-0.0815972984,3.52785778,0.0815972984,1.84281325e-05,0.178508684,0.14368549,-0.661565781,0.0606008321,0.0191466529,0.115453377 +-0.115643464,3.52795386,0.115643457,3.59859114e-05,0.309482217,0.276353687,-1.29635763,0.360708386,0.0191070382,0.16355367 +-0.460192084,3.52800894,0.460192084,0.000412186608,0.193714648,0.185135901,-0.553974986,-0.0667393655,0.0190765895,0.651103854 +0.187243551,3.52814269,-0.187243551,0.000393409398,0.143820778,0.0799695402,-2.45672178,0.268639147,0.0192258358,0.264927387 +-0.075114876,3.52829313,0.075114876,3.44729269e-05,0.196747661,0.163152561,-0.407701164,0.0369850919,0.0191546753,0.106311679 +-0.194441378,3.52830648,0.194441363,3.44411637e-05,0.328857601,0.507354021,-0.906143785,0.0823386535,0.0191185568,0.275022149 +-0.28119719,3.52850485,0.28119719,9.7804892e-05,0.125594318,0.174203917,-2.10324955,0.980980575,0.0192350671,0.39773944 +-0.0815431848,3.52852178,0.0815431848,9.80149434e-06,0.179910064,0.145205304,-0.667057574,0.0682560727,0.0191451758,0.115382507 +0.636082292,3.52856398,-0.636082292,0.00053486554,0.176343024,0.0929913968,0.0458514355,-0.0105987079,0.0191500708,0.899716854 +-0.180790812,3.5285995,0.180790812,1.5108224e-05,0.394277066,0.570590317,-1.00939798,0.279520929,0.0190756079,0.255679637 +0.181833208,3.52870345,-0.181833208,0.000118281816,0.143875569,0.0800488591,-2.41931438,0.276329637,0.0192294177,0.257385671 +0.493296504,3.52877164,-0.493296474,0.000670826412,0.205400869,0.140937984,-0.172589868,0.0543996133,0.0189913306,0.697644532 +-0.162504062,3.52888536,0.162504077,1.15785033e-05,0.391262263,0.539798617,-1.25323296,0.652332366,0.0190357883,0.229833663 +0.285567671,3.529006,-0.285567671,0.000352864474,0.158815727,0.0978257284,-2.91519666,0.0413213819,0.0191449821,0.404673934 +-0.436654419,3.52905107,0.436654419,0.000255655119,0.184940085,0.199427634,-0.678771853,0.151175573,0.01908377,0.617588341 +-0.415347934,3.52914,0.415347964,0.000336975005,0.17756471,0.204486936,-0.933788538,0.401011765,0.0190677922,0.587451994 +-0.0820885226,3.52929664,0.0820885152,1.83596912e-05,0.184613854,0.149784878,-0.687831104,0.0854231715,0.0191431735,0.116121642 +-0.407238811,3.52933502,0.407238841,0.000288378098,0.173345909,0.207824871,-1.09067571,0.560326099,0.0190644432,0.57599777 +-0.20189029,3.52941227,0.20189029,5.62081113e-05,0.281851739,0.433634013,-1.06864536,0.255315185,0.0191481393,0.285616994 +-0.11824657,3.52942324,0.11824657,3.76810021e-05,0.328026056,0.302987158,-1.30858076,0.482285053,0.0191056896,0.167232692 +-1.22851896,3.52943397,1.22851896,0.000478021015,0.0963567346,0.0444223695,-0.233944237,-0.0117870122,0.0193526484,1.73778284 +-0.264210522,3.52945614,0.264210492,0.000110384375,0.147967011,0.215714484,-1.78010345,0.813271284,0.0192437768,0.373748511 +-1.21384239,3.52951622,1.21384239,0.00105559186,0.113807008,0.0514601171,-0.133803546,-0.0073214341,0.0193520207,1.7170217 +0.0904774293,3.52952814,-0.0904774368,7.7906996e-05,0.129668564,0.0903055966,-1.39267027,0.0855796337,0.0193046406,0.128513873 +-0.175603837,3.52956915,0.175603822,4.32145571e-05,0.405602515,0.586913288,-0.979114413,0.364868283,0.0190636832,0.248413056 +-1.19622827,3.52961469,1.19622827,0.00106769823,0.122428373,0.0558839925,-0.0109854238,-0.0208184626,0.0193501562,1.69210505 +0.2602714,3.52963042,-0.2602714,0.000260825036,0.145546064,0.0853222832,-2.87335062,0.0954651833,0.0191726889,0.368175864 +-0.149408937,3.52965164,0.149408937,1.17023073e-05,0.298768222,0.346111625,-1.51104617,0.820330143,0.0190613978,0.211309284 +-0.150818005,3.52969384,0.150818005,9.03660748e-06,0.3252244,0.408643216,-1.47546983,0.820377827,0.0190550443,0.213308647 +-0.12796706,3.52973747,0.12796706,3.14125573e-05,0.329340935,0.317496896,-1.38841414,0.609545708,0.0190998856,0.18097955 +-0.163790062,3.52982688,0.163790062,2.0578469e-05,0.434141338,0.622547984,-1.12615454,0.652833164,0.0190342162,0.231644049 +-0.15486896,3.53008223,0.15486896,7.17563444e-06,0.395099223,0.592484355,-1.37785983,0.840284646,0.0190328546,0.2190191 +0.487841547,3.53010416,-0.487841547,0.000632037292,0.20685108,0.14312163,-0.215210497,0.0650583282,0.0189879816,0.689931691 +-0.145178899,3.53015327,0.145178914,2.17977267e-05,0.312275112,0.347518653,-1.49136436,0.811904311,0.0190743692,0.205356926 +-0.109050371,3.53015351,0.109050371,3.61509665e-05,0.317897916,0.285370767,-1.20359707,0.383866012,0.0191090275,0.154301062 +-0.155885398,3.53016019,0.155885398,5.03388674e-06,0.412056714,0.635282218,-1.35403466,0.843765914,0.0190277044,0.220460728 +-0.156290382,3.5302155,0.156290397,1.37363877e-05,0.421960592,0.657809317,-1.34421873,0.846383333,0.0190251339,0.221031591 +-0.251239687,3.5303545,0.251239687,7.38591334e-05,0.181550771,0.283178329,-1.56555355,0.859693527,0.0192453917,0.355327368 +0.322813243,3.53041124,-0.322813243,0.000552286278,0.188946977,0.126493484,-2.65346384,0.0540280491,0.0191018544,0.45674333 +-0.880289018,3.53041124,0.880288959,0.00284551061,0.166130558,0.0803174153,0.554161191,-0.204887807,0.0193365943,1.24520254 +0.491145551,3.53052282,-0.491145551,0.000452784792,0.205955327,0.14184612,-0.178958312,0.054957293,0.0189882014,0.69464469 +-0.345727444,3.53061867,0.345727444,0.000252912752,0.128751472,0.180847362,-1.83775806,1.24836206,0.0191523433,0.488977581 +-1.13880229,3.53062153,1.13880241,0.00168746593,0.136118397,0.0623808578,0.0946959704,-0.0453382432,0.0193448514,1.61061192 +-0.140377298,3.53062868,0.140377298,1.05893951e-05,0.330976844,0.34774065,-1.47993004,0.788628519,0.0190848671,0.198526517 +-0.140041694,3.5306468,0.140041694,1.3187635e-05,0.331330478,0.347625673,-1.4762882,0.78721118,0.0190854017,0.198054016 +0.347421885,3.53065109,-0.347421885,0.000457281072,0.209697649,0.145539835,-2.37810612,0.0636239052,0.0190705024,0.491556406 +-0.388216794,3.53066015,0.388216764,0.000336489175,0.160160705,0.200213,-1.34289551,0.724660039,0.0190741532,0.549080193 +-0.191410482,3.53066492,0.191410482,2.1203221e-05,0.393498063,0.643659711,-0.713593721,0.156300887,0.0191012844,0.27073136 +-0.107366785,3.53071499,0.107366793,3.78162185e-05,0.315774679,0.283695191,-1.18209267,0.386069387,0.0191097409,0.151903391 +-0.291586757,3.53088236,0.291586757,8.30825302e-05,0.12667881,0.183839247,-2.07003021,1.28328454,0.0192292947,0.412386715 +0.49046883,3.53090072,-0.49046883,1.22114798e-05,0.206168652,0.142211199,-0.183011383,0.0558273643,0.0189874526,0.693692982 +-0.074918896,3.53099895,0.074918896,2.23068164e-05,0.20002833,0.167412102,-0.437299907,0.0384203866,0.0191490185,0.106039874 +-0.134877101,3.53103757,0.134877115,3.08920171e-05,0.337970674,0.345560253,-1.42794967,0.757769704,0.0190932341,0.190797582 +-0.155596584,3.53108215,0.155596584,3.97666008e-06,0.504851639,0.941617489,-1.29985881,0.89910543,0.0190146882,0.220047027 +-0.297492385,3.53111005,0.297492385,0.000144919482,0.124552041,0.17939584,-2.1130414,1.25539374,0.0192237701,0.420750916 +-0.140034005,3.53115559,0.140034005,9.59575482e-06,0.324014515,0.365381658,-1.45263815,0.81447643,0.0190858003,0.1980391 +-0.0933524221,3.53116512,0.0933524221,2.56543026e-05,0.234067798,0.198519439,-0.946047366,0.200364783,0.0191221535,0.132073089 +-0.19703874,3.5311985,0.19703874,4.41412667e-05,0.356381238,0.579132259,-0.824167013,0.23794502,0.0191188771,0.278692037 +0.491053283,3.5314281,-0.491053283,1.06762254e-05,0.205996215,0.141960263,-0.177674234,0.0520027168,0.0189873744,0.694505394 +1.15904117,3.5314374,-1.15904117,0.000892598357,0.136607513,0.0624321029,0.0465375632,-0.038139388,0.0193389636,1.63922787 +-0.238290161,3.53167319,0.238290176,8.46247422e-05,0.203655809,0.314775258,-1.45718789,0.642468631,0.0192333627,0.337102294 +-0.256281286,3.53168654,0.256281286,5.9056063e-05,0.155978665,0.239683285,-1.70298147,1.05385685,0.0192508269,0.362454921 +-0.0922113508,3.5316956,0.0922113508,2.77176514e-05,0.231853515,0.196383134,-0.928525448,0.200337872,0.0191227254,0.130460694 +-0.1299586,3.53172159,0.1299586,1.92809875e-05,0.345721602,0.348988086,-1.37650418,0.7506302,0.0190975536,0.183798909 +-0.155111089,3.53173041,0.155111089,2.47647881e-06,0.567781568,1.14422786,-1.26673949,0.937653542,0.0190069806,0.219363153 +-0.127737433,3.53199816,0.127737433,8.44077658e-06,0.349584192,0.350092411,-1.35534346,0.742894113,0.0190995838,0.180676118 +-0.155341655,3.5320363,0.155341655,2.55028453e-07,0.58332473,1.17279959,-1.2049526,0.954419315,0.019006256,0.219690084 +0.492154211,3.53208661,-0.492154211,0.000437564158,0.20565924,0.141427279,-0.172275841,0.0474650525,0.018988084,0.696041822 +-0.181389213,3.53216529,0.181389213,2.20111342e-05,0.503674507,0.802948177,-0.726115227,0.357878685,0.0190625936,0.256535619 +-0.126741469,3.53221107,0.126741484,2.40567115e-05,0.34972924,0.349703759,-1.34665644,0.742280722,0.0191003121,0.179268956 +-0.193820417,3.53231359,0.193820402,2.47424032e-05,0.391922235,0.657218337,-0.812637866,0.335216194,0.019104898,0.274160683 +0.967937112,3.53237987,-0.967937112,0.000649538473,0.165154368,0.0804203227,0.551674843,-0.141866907,0.0192986522,1.36937535 +0.134529307,3.53238344,-0.134529307,0.000263499154,0.139006659,0.0818404034,-2.06791449,0.246391296,0.0192705356,0.190414459 +-0.0723512694,3.53238487,0.072351262,1.23350992e-05,0.277216017,0.301567256,-0.29210484,0.0436470546,0.0191458724,0.102386534 +-0.167676643,3.53242731,0.167676643,3.85517851e-05,0.563861728,0.87975502,-0.787631571,0.653398931,0.0190291163,0.237171382 +-0.203586593,3.53243852,0.203586593,4.33988826e-05,0.344623089,0.576666832,-0.791056275,0.261268795,0.0191389658,0.288005561 +-0.179868191,3.53244567,0.179868191,2.45884403e-05,0.521765888,0.823216379,-0.722833335,0.389927447,0.019056078,0.254385144 +-0.149855971,3.53260803,0.149855971,7.84287568e-06,0.400899231,0.739953518,-1.30187094,0.990332842,0.0190499537,0.211959317 +1.14224339,3.53274822,-1.14224339,0.00130875013,0.139071822,0.0635443702,0.056344483,-0.0471177436,0.019339513,1.61545002 +-0.15595229,3.53282595,0.15595229,3.29941463e-06,0.627243519,1.25577223,-1.01106727,1.02024579,0.0190052148,0.220550716 +-0.186375737,3.53282976,0.186375737,2.81830307e-05,0.505523562,0.858454108,-0.57433486,0.294889241,0.01907444,0.263619334 +-0.146344319,3.53318858,0.146344319,6.10036932e-06,0.283192158,0.504577935,-1.3239733,1.02954912,0.0190721601,0.206973523 +-0.217500478,3.53326154,0.217500478,8.59449065e-05,0.26272893,0.423976541,-1.17338669,0.540100276,0.01919448,0.307662815 +0.489744484,3.53334689,-0.489744484,0.000958222838,0.206478044,0.142563045,-0.188032269,0.0443169437,0.018985929,0.692624092 +-0.0779780149,3.53337312,0.0779780149,1.78050759e-05,0.178755939,0.145025119,-0.555858552,0.0723184273,0.0191429462,0.110339634 +0.0802161396,3.53346086,-0.0802161396,8.67272829e-05,0.152642116,0.112272233,-1.08008957,0.0371690392,0.0192979667,0.114144191 +-0.118653543,3.53346658,0.118653536,2.9360046e-05,0.36374718,0.356039792,-1.27039373,0.719312966,0.0191044696,0.167844638 +-0.144242406,3.53353548,0.144242406,7.57323278e-06,0.279674202,0.480466306,-1.308864,1.02161634,0.019078413,0.204013482 +-0.180560172,3.53354597,0.180560172,1.37439802e-05,0.549779296,0.925781548,-0.614832103,0.429250479,0.0190541651,0.255362779 +-0.117326729,3.53368211,0.117326722,1.03508328e-05,0.36405161,0.354997456,-1.26039791,0.711799622,0.0191050619,0.165986419 +-0.100720525,3.53369308,0.100720525,4.7919697e-05,0.311450481,0.282630771,-1.07163346,0.420296133,0.0191122536,0.142544791 +0.594627202,3.53382635,-0.594627202,0.00128272281,0.181002423,0.102145657,0.16279532,-0.159638435,0.0191053022,0.841246307 +-0.833712995,3.5338769,0.833712935,0.00475111557,0.169373631,0.0819915757,0.473341078,-0.212446004,0.0193289779,1.17974377 +-0.475724727,3.53391218,0.475724727,0.000443739118,0.192453325,0.180174753,-0.434475362,-0.112733051,0.0190810952,0.672897518 +-0.0870117471,3.53392291,0.0870117471,2.72937177e-05,0.220635861,0.185872942,-0.817558229,0.195310831,0.0191278569,0.123211034 +-0.141749218,3.53395128,0.141749218,5.34228093e-06,0.276224613,0.45107004,-1.2946043,1.0095495,0.0190832336,0.200470701 +-0.16063188,3.53395414,0.16063188,2.96956823e-05,0.663370013,1.10789537,-0.764548779,0.939937353,0.0190108698,0.227203518 +0.0902087986,3.53401184,-0.0902088061,0.000151640867,0.132302269,0.0919566378,-1.43309259,0.076221101,0.0193027258,0.127865776 +0.126562297,3.53401232,-0.126562297,0.000147800631,0.136447579,0.0817344785,-1.99255788,0.229271412,0.0192787685,0.179341748 +-0.636395693,3.53412008,0.636395693,0.000545193208,0.176755562,0.0992148891,0.213589683,-0.17311658,0.0192894191,0.900000095 +-0.640396535,3.53417969,0.640396595,0.000996093382,0.188800335,0.0976868942,-0.00513473526,-0.199034482,0.01927967,0.905951321 +1.10066855,3.53418398,-1.10066855,0.00154756161,0.143853784,0.0664374977,0.146731347,-0.0610635728,0.019338116,1.55681968 +0.177680984,3.53418446,-0.177680969,0.000161231204,0.144814402,0.0803600252,-2.39418554,0.254216671,0.0192288831,0.251465023 +-0.636395216,3.53418851,0.636395156,6.80889345e-10,0.176752657,0.0992132351,0.213651597,-0.17325595,0.0192893706,0.900000095 +-0.636370301,3.53419685,0.636370301,0.000701522338,0.176756427,0.0992185771,0.213605344,-0.173256308,0.0192893278,0.899964392 +-0.0813491717,3.53422117,0.0813491717,6.98910389e-06,0.195147663,0.161016718,-0.686852992,0.134539798,0.0191365741,0.115045547 +-0.636395514,3.53423595,0.636395514,0.000433193811,0.176751494,0.0992131457,0.213698685,-0.173360571,0.0192893278,0.900000095 +-0.115562245,3.53427839,0.115562245,3.35292498e-05,0.360134006,0.350720733,-1.24490976,0.717463672,0.0191056728,0.163471252 +-0.139288813,3.53436923,0.139288813,4.67749805e-06,0.271297961,0.408522099,-1.28645933,0.989664197,0.0190893747,0.197015211 +-0.0813322216,3.53456402,0.0813322291,9.57237418e-08,0.196045876,0.161968783,-0.687904775,0.138499528,0.0191360693,0.11502523 +-0.0814200491,3.5345912,0.0814200416,8.16728243e-06,0.19651942,0.162421346,-0.689941704,0.13965264,0.0191358812,0.115146711 +-0.0813306421,3.53460979,0.0813306496,5.62405376e-08,0.196179017,0.162110597,-0.687721848,0.139028236,0.0191360079,0.115023024 +-0.181720346,3.53464127,0.181720361,1.68209499e-05,0.57650733,1.04699481,-0.421772957,0.425736129,0.0190534201,0.256996691 +-0.0974553823,3.53468227,0.0974553823,3.85642415e-05,0.296816677,0.268854678,-1.03056586,0.40410006,0.01911382,0.137938112 +-0.0778646171,3.53471708,0.0778646171,2.07157664e-05,0.178788334,0.145927191,-0.575292349,0.0835816413,0.0191408042,0.110190079 +-0.0852955729,3.53474188,0.0852955729,3.40224724e-05,0.214765161,0.180066779,-0.787451863,0.18514201,0.0191295482,0.120725855 +-0.0723453835,3.53476238,0.0723453835,9.74146315e-06,0.281062841,0.306163877,-0.343404591,0.0369110592,0.0191418659,0.102386534 +-0.195485324,3.53478003,0.195485324,2.72483267e-05,0.44235611,0.782741845,-0.729280412,0.522034287,0.0191011485,0.276479483 +0.239471957,3.53488898,-0.239471957,0.000175883033,0.142359629,0.0805767924,-2.76152349,0.127272695,0.0191876069,0.338667333 +-0.921283364,3.53494644,0.921283364,0.00242229924,0.163469374,0.07895004,0.595211685,-0.178676307,0.0193364583,1.30301714 +-0.268937379,3.53501678,0.268937379,7.8488556e-05,0.135747492,0.206905156,-1.89220595,1.39003897,0.0192478336,0.380411983 +-0.135313377,3.53507376,0.135313377,6.04328125e-06,0.261588156,0.364312857,-1.24831223,0.982625365,0.0190947633,0.191365212 +-0.188255385,3.53511143,0.188255399,2.63640759e-05,0.52359736,0.916335821,-0.663597763,0.525396466,0.0190738309,0.26630342 +-0.133759737,3.53535271,0.133759752,8.036642e-06,0.257569283,0.352103531,-1.22801518,0.983150005,0.0190968029,0.189183518 +-0.172364488,3.53538942,0.172364503,2.45897318e-05,0.669618011,1.10213006,-0.462096244,0.683871627,0.0190237463,0.243774801 +-0.229010627,3.53541827,0.229010627,5.30110447e-05,0.227390051,0.364005625,-1.44837701,0.95494467,0.0192311238,0.323900223 +-0.225958616,3.53546286,0.225958616,5.1748244e-05,0.240881726,0.390348256,-1.34762406,0.889051557,0.0192212928,0.319574505 +-0.3564412,3.53549719,0.3564412,0.000219367561,0.129888445,0.186620086,-1.61466551,1.34053612,0.0191170406,0.504104137 +-0.132440597,3.5356133,0.132440597,1.0059196e-05,0.253798008,0.343236327,-1.21305752,0.98691988,0.0190978348,0.18730621 +-0.231108397,3.53571653,0.231108412,4.93927364e-05,0.230090469,0.372944802,-1.41560185,0.973442078,0.0192356668,0.326857477 +0.182033986,3.53573728,-0.182033971,0.000209345861,0.144791484,0.0800082535,-2.4206965,0.243394807,0.0192251746,0.257612944 +0.0718485117,3.53605795,-0.0718485117,4.57550705e-05,0.316489339,0.267117411,-0.654768169,-0.010482844,0.0192960054,0.102386549 +0.20424372,3.53611231,-0.204243734,0.000419173099,0.142405063,0.0789299235,-2.55406356,0.209998369,0.0192140024,0.289069146 +-0.173505157,3.53611326,0.173505157,1.17002173e-05,0.699523091,1.16502166,-0.377626061,0.685402632,0.0190218631,0.245397866 +0.974373341,3.53617954,-0.974373341,0.00106270227,0.164115503,0.0798151493,0.542843401,-0.139570639,0.0192974098,1.37826955 +0.235440344,3.53618526,-0.235440344,0.000309696101,0.141711727,0.0796686783,-2.73771787,0.133036524,0.0191907715,0.332993448 +0.234287441,3.53619266,-0.234287426,0.000201265415,0.141754538,0.0796298981,-2.73008156,0.135845438,0.0191915259,0.331348866 +-0.210413203,3.53628969,0.210413188,2.44641305e-05,0.39944002,0.74198705,-0.581715286,0.596605659,0.0191581231,0.297575146 +-0.209365219,3.53661585,0.209365219,2.45980591e-05,0.408457786,0.762725294,-0.557402372,0.613699198,0.0191525314,0.296095699 +-0.127442151,3.5366168,0.127442151,9.997955e-06,0.240441754,0.308992326,-1.16207814,0.993746519,0.0191017836,0.180277005 +0.635887384,3.53673029,-0.635887384,0.000923538348,0.175823241,0.0956588313,0.209952354,-0.218606263,0.0191561375,0.899999976 +-0.108198404,3.53684711,0.108198404,4.73482141e-05,0.359059334,0.348633945,-1.15947711,0.744132578,0.0191079844,0.153110564 +1.04029226,3.53685689,-1.04029226,0.00138110667,0.151535004,0.072227858,0.400532544,-0.0711401701,0.0193177816,1.47138131 +-0.174553618,3.53686023,0.174553603,2.2499964e-05,0.743103862,1.25672269,-0.295613706,0.690646291,0.0190192536,0.246869713 +-0.209710121,3.53689885,0.209710121,4.72201037e-07,0.412859529,0.774612725,-0.544087112,0.630887091,0.0191526171,0.296586782 +0.235813871,3.5369277,-0.235813871,2.42160036e-06,0.141764596,0.0796536282,-2.73884368,0.127955034,0.0191900432,0.333529115 +-0.0802615583,3.53694582,0.0802615583,8.01972601e-06,0.191872492,0.159487084,-0.671607256,0.148049787,0.0191356409,0.113507055 +-0.159306213,3.5370276,0.159306198,1.12784746e-05,0.87058109,1.68249321,-0.0283870995,1.33469486,0.0189978406,0.225308374 +-0.273333699,3.53707075,0.273333669,0.000107042768,0.129693404,0.19738327,-1.98800278,1.50043631,0.0192457661,0.386613369 +0.986489415,3.53707457,-0.986489415,0.000980556128,0.162098587,0.0785592794,0.516912758,-0.128284857,0.0193003304,1.39528346 +-0.22830452,3.53713393,0.22830452,6.41665065e-06,0.24372381,0.40173915,-1.39207983,1.0583353,0.0192249529,0.322919041 +-0.125183135,3.53713417,0.125183135,1.46067432e-05,0.231250644,0.292334318,-1.1410265,0.994877577,0.0191031899,0.177098423 +-0.210336223,3.5373199,0.210336208,2.14836182e-05,0.416874528,0.788659692,-0.537064731,0.6828897,0.0191542469,0.297465384 +-0.165102959,3.53734446,0.165102944,1.58477669e-05,0.834115267,1.50468934,-0.0219246,1.14286709,0.0190056469,0.233495504 +-0.24408792,3.53738308,0.244087905,8.56995393e-05,0.203238755,0.336289763,-1.55498052,1.32006013,0.0192437433,0.345278025 +-0.104456246,3.53745937,0.104456246,3.76623248e-05,0.35279569,0.340323925,-1.12766469,0.705034018,0.019109102,0.14781782 +-0.185277656,3.53755474,0.185277656,2.49515524e-05,0.650771379,1.31179607,-0.018281728,0.453073621,0.0190518796,0.262040734 +0.235150129,3.5376091,-0.235150144,0.000170339728,0.141749084,0.0795717314,-2.73334432,0.127192736,0.0191903319,0.332567155 +-0.207580104,3.53762102,0.207580104,1.29692908e-05,0.449139357,0.857668161,-0.470251143,0.6823892,0.0191388372,0.293564379 +-0.165585592,3.53762269,0.165585607,1.01248206e-05,0.851694643,1.54295874,0.0388156548,1.1545887,0.0190049987,0.234181494 +-0.209531814,3.53771353,0.209531829,2.00907198e-05,0.427636921,0.812267125,-0.544763505,0.717158794,0.0191480909,0.296328455 +0.236572132,3.53785014,-0.236572132,0.000258048123,0.14180173,0.0796916708,-2.74008107,0.121611372,0.019189097,0.334574908 +-0.0915666521,3.53788233,0.0915666595,2.89603377e-05,0.278173894,0.252688289,-0.935041308,0.417497754,0.0191177595,0.129559323 +1.15438437,3.53793836,-1.15438437,0.000612238655,0.139170349,0.0636416152,0.0460222214,-0.030397296,0.0193346981,1.6326586 +0.120476738,3.53800011,-0.120476738,0.000178955539,0.136745006,0.0828861147,-1.94274569,0.193166047,0.0192837995,0.170537889 +-0.202050596,3.53802085,0.202050611,2.92932618e-05,0.503729701,0.97256273,-0.388700485,0.68519789,0.019107651,0.285761476 +-0.26076594,3.53811312,0.26076594,7.14466005e-05,0.143786445,0.229082197,-1.86194706,1.61361027,0.0192524754,0.368836761 +0.405697763,3.53811359,-0.405697793,0.000700209814,0.228741288,0.166903645,-1.30603421,0.0920893028,0.0189996101,0.573940754 +-0.332213074,3.53817129,0.332213074,0.000221926661,0.123055711,0.177728876,-2.01849461,1.46517789,0.0191747248,0.469932258 +-0.0749381483,3.53821945,0.0749381483,1.70495296e-05,0.203294203,0.170567602,-0.491755307,0.0592999831,0.0191377345,0.106010422 +-0.172759056,3.53822994,0.172759056,3.21250336e-05,0.806900799,1.39699078,-0.0359858423,0.926391959,0.0190113597,0.244324565 +-0.166602224,3.53834653,0.166602224,1.73949884e-05,0.879353762,1.5965178,0.152804837,1.19922757,0.0190031212,0.23561345 +-0.165278956,3.53840351,0.165278956,1.49427742e-05,0.890772402,1.67713952,0.310543835,1.32641232,0.0190038569,0.233741969 +-0.740157247,3.53851867,0.740157247,0.00321772858,0.178711325,0.0879243687,0.278428078,-0.243028522,0.0193076655,1.04798746 +-0.0900324285,3.53870821,0.090032436,2.56913463e-05,0.267880529,0.24288258,-0.917377472,0.406943798,0.0191193614,0.127386063 +-0.118796065,3.53877497,0.118796065,1.67008529e-05,0.207665801,0.252767801,-1.0831989,1.01793337,0.0191054624,0.16807583 +-0.230252236,3.53890228,0.230252236,3.08154231e-05,0.24749285,0.417976826,-1.44939876,1.27281189,0.0192308072,0.325650305 +-1.09354568,3.5389843,1.09354568,0.00121961313,0.142400429,0.0661111325,0.231701344,-0.0701157898,0.0193383042,1.54655051 +-0.16105774,3.53906727,0.16105774,7.65349614e-06,0.948351324,1.87962592,0.663402915,1.67130959,0.0189995822,0.227776736 +-0.216408789,3.53908396,0.216408789,4.11394867e-05,0.369451761,0.689579844,-0.876948357,1.0089345,0.0191701762,0.306107849 +-0.0749873593,3.53910518,0.0749873668,1.71612628e-05,0.197702542,0.166380584,-0.51574105,0.0664592311,0.0191369168,0.106087692 +0.111771658,3.53912163,-0.111771651,0.000177086913,0.135338634,0.0844165832,-1.85446119,0.159731463,0.0192909464,0.158512041 +0.161178783,3.53919125,-0.161178783,0.000283107773,0.145713806,0.0814144686,-2.29052258,0.239485756,0.0192369204,0.228471577 +-0.238163203,3.53919363,0.238163203,4.43557365e-05,0.188650459,0.291605055,-1.85150671,1.14063513,0.0192339011,0.336858094 +0.0801964775,3.53938675,-0.0801964775,0.000122084515,0.157444373,0.116688073,-1.13815618,0.0320322886,0.0192953926,0.113754652 +-0.282793939,3.53942108,0.282793939,6.83893159e-05,0.123598382,0.187206462,-2.13050461,1.67211771,0.0192400031,0.399974257 +-0.116226047,3.53947258,0.116226047,1.03286493e-05,0.192386478,0.232026964,-1.06980598,1.02076542,0.019106565,0.164461255 +-0.200355157,3.53948236,0.200355157,1.75348978e-05,0.540998936,1.06186199,-0.38390547,0.813626528,0.0190974157,0.283355832 +-0.0988928974,3.53975821,0.0988928974,3.52577335e-05,0.331565082,0.320937008,-1.05757225,0.704334617,0.0191112924,0.139961749 +-0.187944397,3.53976274,0.187944397,2.40363261e-05,0.541226745,0.94146055,-1.01135707,0.974143267,0.0190545805,0.265826643 +-0.489626676,3.53981924,0.489626676,0.000696360017,0.192364991,0.178106621,-0.338411033,-0.16185616,0.0190833025,0.692679822 +-0.226767451,3.53996158,0.226767451,4.22130797e-05,0.265985012,0.45575738,-1.47086155,1.37727261,0.0192132331,0.320711493 +-0.191787511,3.54009676,0.191787526,2.12239811e-05,0.660676122,1.35926318,0.0261466652,0.711853743,0.0190612189,0.271279573 +-0.286628217,3.54010582,0.286628217,6.83650724e-05,0.124496512,0.189245,-2.15701365,1.67628288,0.0192371458,0.405478776 +-0.202573016,3.5401392,0.202573016,2.41907928e-05,0.500280142,0.969132841,-0.54587841,0.885850191,0.0191042423,0.286506474 +-0.193895817,3.54031324,0.193895832,2.18931837e-05,0.635596871,1.29060137,-0.121549323,0.785593748,0.0190694649,0.274229348 +-1.17754757,3.54034805,1.17754745,0.0018557678,0.131553233,0.0604049973,0.038526617,-0.00918776356,0.0193410739,1.66563416 +-0.196606427,3.54045534,0.196606427,2.49019231e-05,0.602052093,1.20190859,-0.260710835,0.845885754,0.0190779399,0.278083622 +-0.0850960985,3.54048324,0.0850960985,2.8702214e-05,0.236045301,0.209842533,-0.819886267,0.329713941,0.019125903,0.120458379 +-0.276214242,3.54055738,0.276214242,5.67208081e-05,0.126623213,0.195609361,-2.12760353,1.71775758,0.0192430876,0.39074719 +-0.112670496,3.54062319,0.112670496,1.65054917e-05,0.167125642,0.198812917,-1.05584121,1.02753472,0.0191078875,0.159387678 +0.14769271,3.54067183,-0.14769271,0.000219544454,0.143056199,0.0811591819,-2.19444227,0.234352484,0.0192489158,0.208981961 +0.96641922,3.54070902,-0.96641922,0.00127036078,0.165231869,0.0804469436,0.546860874,-0.148030967,0.0192922913,1.36699402 +-0.450336456,3.54087853,0.450336456,0.000322103209,0.186097801,0.209959194,-0.458614975,0.10810034,0.0190633982,0.636884332 +0.188614443,3.54093647,-0.188614428,0.000184395962,0.144184232,0.0794203952,-2.45096231,0.211251512,0.019219812,0.266824543 +1.05942297,3.54095602,-1.05942297,0.00109834946,0.150612146,0.0712101907,0.319985092,-0.0628931522,0.0193222798,1.49832869 +-0.0955360532,3.5410471,0.0955360532,3.37300517e-05,0.302716851,0.293056339,-1.02303195,0.67326659,0.0191137046,0.13522929 +-0.0826613009,3.54127312,0.0826613009,3.03291908e-05,0.21726872,0.190150455,-0.771798432,0.276141554,0.0191288777,0.116982043 +-0.201265782,3.54134107,0.201265782,1.94147178e-05,0.49982655,0.961106241,-0.67294246,0.987312198,0.0190959498,0.28464964 +-0.248381048,3.54146934,0.248381034,8.40602952e-05,0.180893183,0.294502884,-1.848737,1.55706167,0.0192456506,0.351306856 +-0.635713696,3.54147124,0.635713696,0.000611573108,0.188578129,0.097787641,-0.0136566283,-0.209949896,0.019273717,0.899344683 +0.534161389,3.5415597,-0.534161389,0.00168171397,0.192430824,0.120508291,0.0522488356,-0.0750304163,0.0190231372,0.75581491 +-0.183065802,3.5416708,0.183065802,3.55917982e-05,0.795421124,1.69341457,0.711669922,0.65185523,0.0190258287,0.258904129 +-0.178174108,3.54174519,0.178174123,2.3357863e-05,0.830116153,1.59996307,0.384737909,0.898216724,0.0190079417,0.251986623 +-0.163294226,3.54176354,0.163294226,5.60490844e-06,0.938596845,2.03573036,1.36086738,1.91371012,0.0190036166,0.230948895 +-0.22073108,3.54192567,0.22073108,5.48111348e-05,0.303993344,0.539834797,-1.43436933,1.50319672,0.0191853382,0.312208623 +-0.0779656023,3.54193377,0.0779656023,1.25355627e-05,0.182640404,0.153693661,-0.637095034,0.16672124,0.0191348009,0.110267252 +-0.0780908912,3.54194331,0.0780908912,1.54735808e-05,0.183347374,0.154482007,-0.641818404,0.170391813,0.0191346873,0.110440589 +-0.170711249,3.54213214,0.170711249,2.7238113e-05,0.888905287,1.61114693,0.233435705,1.43880951,0.0189961027,0.241452456 +-0.268654108,3.54228902,0.268654108,9.33850242e-05,0.126955733,0.192670137,-2.1766336,1.57297492,0.0192477237,0.379998982 +-0.107660294,3.54238105,0.107660301,1.93934247e-05,0.134013638,0.156529963,-1.02050936,1.04083872,0.0191091783,0.152323335 +-0.242214426,3.54240847,0.242214426,4.25052349e-05,0.189881027,0.308352649,-1.87965178,1.56210637,0.0192410741,0.342577547 +-0.290515482,3.54274583,0.290515482,0.000123536563,0.124593914,0.1888825,-2.23836231,1.69399798,0.0192341544,0.410909235 +-0.255864888,3.54288769,0.255864918,9.0021189e-05,0.143647224,0.229127035,-2.03573132,1.80725396,0.0192535631,0.361886173 +-0.190799028,3.54296207,0.190799028,2.95493664e-05,0.647172034,1.29358351,-0.407124817,1.04901552,0.0190477017,0.269854665 +0.0721470192,3.5429635,-0.0721470192,5.51720732e-05,0.323868215,0.277094275,-0.706954956,-0.0151668247,0.0192935057,0.102386549 +-0.179427505,3.54296684,0.179427505,1.50600308e-05,0.85829109,1.73157036,0.723847151,0.890403628,0.019006338,0.253753006 +0.281632811,3.54305506,-0.281632811,0.000507272896,0.154116377,0.092718713,-2.88323545,-0.0202219076,0.0191453062,0.398718357 +-0.229775712,3.54309249,0.229775697,3.62425635e-05,0.218182206,0.3544375,-1.82603657,1.52184176,0.0192166157,0.324964017 +-0.328651339,3.54317665,0.328651339,0.000145566053,0.119721279,0.181579977,-2.01766062,1.76593792,0.0191820636,0.464930892 +-0.072379902,3.54334807,0.072379902,8.31903708e-06,0.30749017,0.321214706,-0.45385471,0.0383936986,0.0191339925,0.102386549 +0.127860412,3.54349041,-0.127860412,0.00025166705,0.14079088,0.0829056948,-2.04119492,0.191534787,0.0192677006,0.180995435 +-0.0901188403,3.54355812,0.0901188403,2.63123202e-05,0.24072586,0.232321411,-0.950921774,0.614828885,0.0191186313,0.127510607 +-0.177579537,3.54359436,0.177579552,2.7932434e-05,0.88253653,1.72167528,0.747849464,1.11982715,0.0190006401,0.251140773 +-0.102896735,3.54390359,0.102896743,1.91456384e-05,0.109906986,0.124430291,-0.995444477,1.00651908,0.019110281,0.145595908 +-0.165235221,3.54397583,0.165235221,9.97511506e-06,0.945598722,2.0249927,1.30379272,2.06867981,0.0189973004,0.233690485 +-0.261006057,3.54400373,0.261006057,5.82518987e-05,0.135978088,0.215469882,-2.10115671,1.75328898,0.0192521103,0.36916706 +-0.072374925,3.54420185,0.072374925,5.02337571e-06,0.296544522,0.309016556,-0.477787405,0.0457738638,0.0191338286,0.102386542 +0.101181954,3.54423904,-0.101181954,0.000106401567,0.136530295,0.0887917131,-1.73280883,0.102912217,0.0192913264,0.143175945 +-0.207220107,3.54425597,0.207220107,3.90911737e-05,0.443392724,0.850121319,-1.10064781,1.38259077,0.0191109274,0.293134809 +-0.172643229,3.54434109,0.172643229,2.03926065e-05,0.874408245,1.57432401,-0.110130414,1.62109756,0.0189891979,0.244169235 +0.49548015,3.54435134,-0.49548015,0.00063233939,0.204122066,0.139422804,-0.142023265,-0.00938330963,0.0189860314,0.700718999 +-0.285419196,3.54444218,0.285419196,0.000101072779,0.125571147,0.18904154,-2.30529428,1.60469556,0.0192356091,0.403724611 +-0.0880634338,3.54459286,0.0880634338,2.4355375e-05,0.207631484,0.20001097,-0.929028749,0.574867427,0.0191213321,0.124598309 +0.234311432,3.54468131,-0.234311447,0.000194947715,0.141415805,0.0790575221,-2.71023798,0.101351134,0.0191895794,0.331369281 +-0.0767730102,3.54483843,0.0767730176,8.9871919e-06,0.168519199,0.143685997,-0.638430715,0.166367024,0.019135844,0.108573601 +0.635927022,3.54484248,-0.635927022,0.000809210003,0.176055849,0.0925930664,0.0520463586,-0.0429590568,0.0191430654,0.899680436 +-0.237166211,3.54484463,0.237166196,4.71621897e-05,0.21557124,0.359445125,-1.93750191,1.6612047,0.0192255098,0.335455835 +-1.06688809,3.54491425,1.06688797,0.00139505474,0.146744385,0.0689882338,0.339824677,-0.0641358271,0.0193348415,1.50901318 +-0.202640802,3.54499292,0.202640787,1.84032942e-05,0.416118383,0.763309062,-1.14780414,1.23233187,0.0190917514,0.286584318 +-0.197632581,3.54501915,0.197632596,2.18860478e-05,0.524605691,1.00534284,-0.89184165,1.25557232,0.0190689787,0.279557079 +-0.439109325,3.54502773,0.439109325,0.000312880467,0.19126457,0.249944329,-0.365236104,0.453954905,0.0190331675,0.621012628 +-0.50740099,3.54513144,0.50740099,0.00101613032,0.189590842,0.169836447,-0.249004811,-0.140794471,0.0191081781,0.718047082 +0.561355114,3.54547977,-0.561355114,0.00106129143,0.187049061,0.112129465,0.10814634,-0.124539785,0.0190554745,0.79402554 +-0.0983495116,3.54563212,0.0983495116,1.76854046e-05,0.0809500068,0.0921185762,-0.966061831,0.974013209,0.019112004,0.13916187 +-0.181781203,3.54565239,0.181781203,2.34452345e-05,0.796826839,1.58721483,0.100860596,1.17103577,0.019004913,0.257091671 +0.359224826,3.54602051,-0.359224826,0.00090575713,0.217947915,0.152023494,-2.17051625,-0.029128205,0.0190465171,0.508411527 +0.380618215,3.54617119,-0.380618215,0.000944488333,0.227121666,0.162565961,-1.77802873,0.00406472571,0.0190186035,0.539162755 +-0.0830376297,3.54637694,0.0830376223,2.64865757e-05,0.156356424,0.14650172,-0.834395528,0.422620416,0.0191292576,0.117518805 +0.652614236,3.54644561,-0.652614236,0.00139227975,0.175400823,0.0910980925,0.084526144,-0.0616077557,0.0191537961,0.92306304 +-0.213642955,3.54650354,0.213642955,3.02524859e-05,0.302530944,0.529929936,-1.71259618,1.62235034,0.019144645,0.302153289 +0.707732618,3.54651642,-0.707732618,0.00426644646,0.173472703,0.0862798467,0.205462307,-0.118296698,0.0191965494,1.00164497 +-0.167850673,3.54660082,0.167850673,1.94590011e-05,0.948002875,2.0082128,1.45393562,2.20898199,0.0189922098,0.237407386 +-0.336372435,3.54665041,0.336372435,0.000184064367,0.121524334,0.186149269,-1.96233523,1.87368751,0.0191586446,0.475785643 +-0.0752273723,3.54667401,0.0752273723,1.57631548e-05,0.159893855,0.137689546,-0.614699483,0.147537619,0.0191371851,0.106388532 +-0.223719776,3.54689693,0.223719776,4.69559527e-05,0.266654819,0.459473848,-1.83932447,1.64505708,0.0191803146,0.316442758 +0.0974779651,3.54691935,-0.0974779576,0.000141806435,0.137073219,0.0902908444,-1.69870424,0.078958191,0.0192906037,0.138057083 +-0.221241087,3.546983,0.221241087,2.6784186e-05,0.267888039,0.46198377,-1.82238173,1.64514124,0.0191747323,0.312944353 +-0.0804986656,3.54699254,0.0804986656,2.71743775e-05,0.14258948,0.130504191,-0.781831503,0.329504967,0.019132657,0.113909081 +-0.0941181332,3.54700899,0.0941181332,1.72681139e-05,0.0591298528,0.0678000227,-0.945852339,0.897704244,0.0191158392,0.133180991 +1.07699108,3.54745078,-1.07699108,0.00158500008,0.149898306,0.0701582283,0.234428167,-0.0608732402,0.0193245448,1.52325344 +-0.175331563,3.54746771,0.175331563,2.37460499e-05,0.901403189,1.68303502,0.348916054,1.7773931,0.0189831089,0.247972935 +-0.0723947436,3.54748917,0.0723947436,8.97261816e-06,0.253493428,0.258977532,-0.525112569,0.0930537283,0.0191358812,0.102386534 +-0.216068476,3.54750419,0.216068476,2.6599746e-05,0.272792667,0.465103358,-1.94875133,1.83994758,0.0191541724,0.305580109 +-0.300390363,3.54770422,0.300390363,0.000296480575,0.120087638,0.182867303,-2.3780117,1.80334985,0.019226402,0.424910367 +-0.211591631,3.5477922,0.211591631,3.13309647e-05,0.328128457,0.581717968,-1.76406014,1.73822832,0.0191280283,0.299254328 +-0.194275931,3.54794192,0.194275916,1.57670165e-05,0.562761366,1.04235232,-1.34437895,1.65496182,0.0190437809,0.274751753 +-0.246748477,3.547966,0.246748477,4.79671726e-05,0.149920344,0.234507725,-2.36275411,1.9848001,0.0192339551,0.348996639 +0.313032568,3.54804087,-0.313032568,0.000618660473,0.180765361,0.116849676,-2.75140285,-0.0815854967,0.0191053022,0.443146348 +-0.67824924,3.54816508,0.67824924,0.00181029551,0.184977576,0.0927938968,0.103797644,-0.255442202,0.0192831941,0.960175037 +-0.24087888,3.54818201,0.24087888,6.25374887e-05,0.162092313,0.254005343,-2.33732319,1.94335914,0.0192307364,0.340687692 +-0.0752646625,3.54828954,0.07526467,3.96228825e-06,0.152060151,0.131620392,-0.636468947,0.163609117,0.0191371143,0.106449969 +-0.0756262317,3.54838181,0.0756262392,1.73914286e-05,0.151142523,0.131394729,-0.646934211,0.177243412,0.019136779,0.106954858 +-0.187208235,3.54846883,0.187208235,5.6615685e-05,0.721201181,1.34280705,-1.03809738,1.79407585,0.019010745,0.264760226 +-0.0752740726,3.54849482,0.0752740726,2.52192012e-06,0.151260585,0.13101393,-0.63756901,0.166260153,0.0191371143,0.106461689 +-0.707059026,3.54849839,0.707059026,0.00256903935,0.181779325,0.0902682841,0.187593907,-0.261878908,0.0192890912,1.0003978 +-0.330841243,3.54868746,0.330841243,0.000145851998,0.12326771,0.189261526,-2.1326828,1.85830593,0.019171102,0.468013465 +0.304207832,3.54882193,-0.304207832,0.000390423229,0.172707319,0.109430477,-2.81728029,-0.0822222233,0.0191171262,0.430845708 +-0.08919622,3.54883528,0.08919622,1.31779525e-05,0.0345326588,0.039416492,-0.90449965,0.781927109,0.0191214122,0.126178235 +-0.195143551,3.5489583,0.195143536,1.20524155e-05,0.543331265,0.984191298,-1.54245341,1.78410411,0.0190430637,0.275983155 +0.148664325,3.54897618,-0.148664325,0.000195059547,0.14557451,0.0817346647,-2.21742678,0.195645526,0.0192411598,0.210432723 +0.212245554,3.54897976,-0.212245569,0.000318803592,0.142351985,0.0783790424,-2.58467102,0.130996227,0.0192030333,0.30036819 +-0.424791276,3.54904985,0.424791306,0.000483834883,0.168607816,0.216814563,-0.529020071,0.57619679,0.0190333836,0.60100466 +-0.185660049,3.549088,0.185660049,1.98157268e-05,0.744740903,1.3789109,-1.04972172,1.82584786,0.0190021545,0.262569278 +0.416446447,3.54909062,-0.416446447,0.000787333876,0.229524449,0.167309403,-1.11059296,0.0220629312,0.0189831369,0.589217007 +-0.213519841,3.54912829,0.213519856,6.69971769e-06,0.287066787,0.491163462,-2.05258417,1.92379785,0.0191339478,0.301995724 +-0.386155546,3.54913187,0.386155546,0.00025936123,0.144258752,0.207463205,-1.13411164,1.26870227,0.0190405753,0.546366215 +-0.234427184,3.54937458,0.234427184,5.20601861e-05,0.18105799,0.284523547,-2.35816312,1.9201026,0.0192058254,0.331555665 +-0.252112597,3.54954195,0.252112597,7.31860637e-05,0.133096188,0.203090906,-2.47352362,1.93602443,0.0192405842,0.356580853 +-0.573002219,3.54961967,0.57300216,0.00102714566,0.1838606,0.116748504,0.0580780804,-0.148536846,0.019205302,0.810898781 +-0.0866163597,3.54964375,0.0866163597,1.29519531e-05,0.0272555687,0.0310783945,-0.883000195,0.7017349,0.0191249996,0.12254189 +-0.369548082,3.54976559,0.369548053,0.000282013061,0.130448937,0.200377658,-1.34515524,1.73612332,0.0190682169,0.522761047 +0.142190143,3.54977846,-0.142190143,0.000153456756,0.144513905,0.0820068866,-2.17225456,0.18931964,0.0192466285,0.201210305 +0.345353395,3.54987907,-0.345353395,0.000584528083,0.20802483,0.141554534,-2.38876128,-0.0803083032,0.019063348,0.48889029 +-0.211092249,3.54995728,0.211092249,1.67676753e-05,0.310813963,0.520348608,-2.1154952,1.98953938,0.0191180706,0.298552155 +-0.212493315,3.54998016,0.212493315,7.58879878e-06,0.28437081,0.471994936,-2.15989256,1.98994184,0.019125009,0.300544709 +-0.196046367,3.55020952,0.196046352,1.38255591e-05,0.526042104,0.930765927,-1.77387047,1.95235574,0.0190423056,0.277255476 +-0.19457294,3.55022693,0.19457294,4.76949062e-05,0.551600099,0.977601349,-1.71322858,1.95660102,0.0190354083,0.275173753 +-0.199605197,3.55029964,0.199605197,2.31528538e-05,0.476859868,0.83763653,-1.84140396,1.96507168,0.0190576781,0.282314241 +-0.205021918,3.55050635,0.205021933,2.89797008e-05,0.327794969,0.568997443,-1.85375035,1.72775328,0.0190862361,0.289967299 +0.0872343555,3.55059528,-0.0872343555,0.000156754904,0.142427593,0.101626612,-1.49615443,0.0245575886,0.019290423,0.12370491 +-0.186342657,3.55061221,0.186342657,2.57124575e-05,0.654183388,1.19290829,-1.22732759,1.83774984,0.0190027058,0.263535708 +-0.17192471,3.55065298,0.17192471,5.428512e-06,0.951393843,1.93738854,1.12835228,2.33696818,0.0189729128,0.243140325 +-0.17273207,3.55081105,0.172732055,1.7883589e-05,0.94295156,1.88271213,0.903882384,2.3258059,0.0189713202,0.244282275 +-0.278676569,3.55085564,0.278676569,8.15320163e-05,0.131719917,0.202836782,-2.46882057,1.60427547,0.0192357376,0.394334972 +0.0969811976,3.55110908,-0.0969811976,0.000101999831,0.138698533,0.0913868397,-1.72132576,0.066107817,0.0192875005,0.137264401 +-0.522205889,3.55119801,0.522205889,0.000758473121,0.186814874,0.159033224,-0.200380623,-0.164023682,0.0191242136,0.738897145 +-0.172480732,3.55120897,0.172480747,1.68951118e-07,0.929343939,1.87849426,0.903016388,2.33283639,0.0189698096,0.243929163 +-0.215866596,3.55133343,0.215866596,3.52827628e-05,0.220760629,0.351403534,-2.33390284,1.97766519,0.0191412419,0.305291772 +0.146245703,3.55159163,-0.146245703,1.7277076e-05,0.145435229,0.0816346854,-2.20577741,0.186443597,0.019241279,0.207099766 +-0.179203823,3.55168438,0.179203838,1.15013663e-05,0.846790671,1.55522156,-0.693935156,2.04754877,0.0189740136,0.253433824 +-0.179627582,3.55168962,0.179627582,2.67887062e-05,0.838024557,1.53577197,-0.738234282,2.03579807,0.0189752746,0.254033208 +-0.080870837,3.55175209,0.080870837,1.28254023e-05,0.0293095019,0.0322589688,-0.801731825,0.491938919,0.0191379115,0.114427254 +-0.173031792,3.55175328,0.173031777,4.68561802e-06,0.895804465,1.82769775,0.668480456,2.31704354,0.0189677756,0.244705647 +-0.27369076,3.55183506,0.27369076,5.17280678e-05,0.120498799,0.173834965,-2.66672158,1.60653484,0.0192321725,0.387100458 +-0.465707213,3.55207562,0.465707213,0.000325709087,0.187100962,0.218298078,-0.237362057,0.0425865389,0.0190436542,0.658659518 +-0.17938979,3.55210519,0.179389775,9.19329068e-06,0.817638695,1.49781179,-0.779387534,2.04402161,0.0189733896,0.253697097 +-0.229548484,3.55218816,0.229548484,6.39230784e-05,0.17769666,0.274894416,-2.47164059,1.89339674,0.0191891305,0.324679285 +-1.18913674,3.55222082,1.18913674,0.000316596357,0.131965846,0.0608253144,0.0197796263,0.0309331156,0.0193371419,1.68189359 +-0.374314368,3.55231047,0.374314368,0.000193501954,0.13357237,0.205152795,-1.24593699,1.72000337,0.0190517865,0.52943325 +0.111043319,3.55234385,-0.111043312,0.000129364576,0.139336377,0.086288929,-1.91607237,0.111037664,0.0192768946,0.157122999 +-0.201984271,3.55241585,0.201984271,2.683413e-05,0.371022552,0.617195904,-2.11546421,1.98865128,0.0190640409,0.28566134 +-0.0786971971,3.55242467,0.0786971971,1.10529436e-05,0.0356872492,0.0381182097,-0.769910693,0.401775837,0.0191412978,0.111347526 +-0.538917303,3.55251861,0.538917303,0.000501040369,0.185533345,0.144103587,-0.107804537,-0.141638741,0.0191551279,0.762517691 +-0.199063659,3.5527401,0.199063659,1.12182806e-05,0.430453986,0.7319749,-2.00414729,1.95058036,0.0190500338,0.28155458 +-0.25972712,3.55296302,0.25972712,3.652124e-05,0.125234649,0.185821638,-2.65346742,1.85405898,0.0192401763,0.367324024 +-0.318365246,3.55296659,0.318365246,0.00016614476,0.124857448,0.189187661,-2.42282009,1.75844622,0.0191954859,0.450249285 +0.686051548,3.55307913,-0.686051488,0.00142658304,0.17378965,0.0872432888,0.15281865,-0.110803872,0.0191780366,0.970716238 +-0.0723605454,3.55310774,0.0723605528,5.97681083e-06,0.181848571,0.181861028,-0.612828553,0.162810415,0.0191382598,0.102386512 +-0.344718963,3.55312729,0.344718963,0.000155391434,0.128923282,0.199385837,-1.95106602,1.82045805,0.0191323496,0.487713367 +-0.204083458,3.55313206,0.204083472,2.19729482e-05,0.307995856,0.496105283,-2.26026034,2.01426935,0.0190725233,0.288644969 +-1.05778801,3.55352211,1.05778801,0.00151352189,0.149143994,0.0703876168,0.375718117,-0.0754251778,0.0193285849,1.49608409 +0.203579694,3.55354309,-0.203579679,0.000252524158,0.143157765,0.0782826915,-2.53038979,0.135398418,0.0192070585,0.288053662 +0.0789739937,3.55366993,-0.0789739937,0.000136487753,0.171458811,0.13238126,-1.20339012,0.00674184086,0.0192860514,0.112097196 +-0.074826628,3.55376792,0.074826628,1.0836422e-05,0.114894681,0.116775356,-0.679463387,0.273248315,0.0191395823,0.105836071 +0.253712177,3.55379152,-0.253712177,0.000306164031,0.142896712,0.0813399553,-2.79137182,-0.00065381173,0.0191712305,0.359211028 +-0.283424795,3.55389977,0.283424795,5.23992821e-05,0.12766248,0.184648529,-2.65867949,1.39282537,0.0192230903,0.400845885 +-1.06724381,3.55396962,1.06724381,0.00060012372,0.148521692,0.0698224232,0.330804229,-0.0694300532,0.0193279907,1.509444 +-0.262413114,3.55403876,0.262413114,6.49497815e-05,0.120553009,0.177307308,-2.71797895,1.83052385,0.0192387607,0.371126235 +-0.180429816,3.55406332,0.180429816,1.13341903e-05,0.668638766,1.20906413,-1.22489786,2.06671619,0.0189701691,0.255166471 +-0.222097397,3.5541451,0.222097397,3.41337509e-05,0.170504957,0.254480034,-2.57625151,1.93391204,0.0191519149,0.314136267 +-0.313740939,3.55416584,0.313740909,0.000120858414,0.125204235,0.189314976,-2.5085969,1.73813486,0.0192027092,0.44371739 +-0.211219326,3.55419493,0.211219341,3.00697848e-05,0.193796039,0.294713408,-2.45475864,1.95795071,0.0191124287,0.298715353 +-0.219993204,3.55438948,0.219993204,2.88831307e-05,0.169246942,0.251762509,-2.57965112,1.9408493,0.0191465914,0.311166018 +0.133723453,3.55442882,-0.133723453,0.000150698193,0.143676311,0.082957983,-2.12593174,0.158655569,0.019250026,0.189649463 +-0.315735191,3.55461764,0.315735191,4.2175925e-05,0.125818238,0.190682888,-2.50162005,1.73630214,0.0191997271,0.446568221 +-0.0723719597,3.55468464,0.0723719597,4.77227422e-06,0.156843707,0.155556142,-0.626513183,0.188392386,0.0191393644,0.102386445 +-0.252723783,3.55542445,0.252723783,5.63302056e-05,0.129845425,0.189684123,-2.73258066,1.71239877,0.0192258935,0.357458949 +-0.177008092,3.55569172,0.177008092,1.35611335e-05,0.679309547,1.44820893,-0.951017499,2.09527612,0.0189545825,0.250344902 +0.0720839649,3.55578208,-0.0720839649,6.48916612e-05,0.32800293,0.29363963,-0.758923888,-0.0250018742,0.019285934,0.102386549 +-0.782621503,3.55593443,0.782621503,0.0046611065,0.173663333,0.0845907778,0.360517204,-0.252792001,0.0193027798,1.10738373 +-0.316326648,3.55593538,0.316326618,5.12063089e-05,0.127749413,0.193175346,-2.5310638,1.68809295,0.0191967618,0.447388649 +-0.260471225,3.55594945,0.260471225,3.89091292e-05,0.123227417,0.178501606,-2.7867384,1.74340034,0.0192332063,0.368381321 +-0.302695364,3.55598807,0.302695364,0.000145130674,0.129211053,0.193297729,-2.59569311,1.46957088,0.0192110799,0.42818284 +0.40782249,3.55604053,-0.40782249,0.00071958726,0.231231764,0.167999521,-1.25805593,-0.0272016712,0.0189862289,0.577073455 +1.2288003,3.55613995,-1.22880018,0.000219081965,0.100974374,0.0481554531,-0.136675358,-0.0159522239,0.0193151236,1.73782229 +-0.239114508,3.55615973,0.239114508,3.46322086e-05,0.138789698,0.200774521,-2.70985603,1.73070896,0.0192027949,0.338181496 +-0.233995393,3.55618739,0.233995408,4.69195802e-05,0.157257602,0.230745524,-2.68236065,1.73701715,0.0191855673,0.33093673 +1.21637774,3.55623364,-1.21637774,0.000483233685,0.123281598,0.0568174161,-0.0506353304,0.00440708036,0.0193144195,1.72025371 +-0.269893646,3.55625439,0.269893676,7.0741502e-05,0.118162513,0.1698533,-2.82824755,1.66675758,0.0192335956,0.381733179 +0.183276922,3.55630493,-0.183276936,0.000258374552,0.145082667,0.0791014358,-2.42408514,0.154282838,0.0192164704,0.259736389 +-0.366247922,3.55632854,0.366247892,0.000277988234,0.138497889,0.214640215,-1.53024936,1.73281467,0.0190586951,0.51800102 +1.20146251,3.55634499,-1.20146251,0.000647534442,0.135603428,0.062898539,0.0389955975,0.0155304819,0.0193147305,1.69915986 +-0.244551256,3.55637217,0.244551241,3.66368076e-05,0.132743761,0.18823047,-2.78584194,1.70540953,0.0192116424,0.345857233 +-0.207156718,3.55639029,0.207156718,2.16490462e-05,0.182473093,0.265651762,-2.5669682,1.96970797,0.0190854911,0.292971313 +0.115169793,3.55640221,-0.115169793,0.000121143792,0.141957119,0.0866036192,-1.97568512,0.106223226,0.019266624,0.162964821 +-0.202959105,3.55645132,0.20295912,2.57555766e-05,0.192467511,0.285810858,-2.50609922,1.99826705,0.0190664642,0.287040412 +0.108843505,3.55649161,-0.108843505,5.02295152e-05,0.140371785,0.0875760019,-1.91132343,0.0874791443,0.0192737244,0.154136345 +-0.189004853,3.55656743,0.189004838,1.89057228e-05,0.334906816,0.552999794,-2.10104203,1.99937069,0.0190003999,0.267293721 +-0.262378931,3.55658054,0.262378931,5.12493243e-05,0.123599671,0.178869948,-2.80761766,1.70683742,0.0192323178,0.37107873 +0.603971362,3.55681801,-0.603971303,0.000905904279,0.178896084,0.100312896,0.200385511,-0.2228138,0.0191069599,0.854631424 +-0.314679086,3.55683565,0.314679086,0.000153629182,0.128110826,0.192623079,-2.57809091,1.6338594,0.0191975739,0.445046842 +-0.246721029,3.55695724,0.246721029,3.0731575e-05,0.12607716,0.176338419,-2.82794809,1.68740559,0.0192144383,0.348925263 +-0.229340166,3.55709839,0.229340166,3.52192983e-05,0.158595815,0.231999919,-2.6649127,1.72343934,0.0191737879,0.324355364 +0.297142923,3.55720234,-0.297142923,0.000491184532,0.165902197,0.102647617,-2.80851936,-0.111768395,0.0191228427,0.420550704 +1.16605306,3.55724978,-1.16605318,0.000687948661,0.148321912,0.0695301667,0.0731009766,0.0122917779,0.0193184093,1.64909291 +-0.470973372,3.55751777,0.470973402,0.000421797537,0.186293423,0.221313193,-0.162905023,0.0411186256,0.0190393645,0.666155577 +-0.197528556,3.55754352,0.197528541,1.67406706e-05,0.232466564,0.354877681,-2.41623664,1.97424924,0.0190429594,0.279351473 +-1.1248033,3.5575819,1.1248033,0.000789823127,0.127591625,0.055678267,0.0366824009,0.000686711166,0.0193240605,1.59086335 +-0.551844358,3.55775595,0.551844358,0.00049978774,0.184053391,0.132265806,-0.042606324,-0.151950866,0.0191661548,0.780811429 +-0.244418368,3.55800533,0.244418383,1.01970336e-05,0.128950119,0.177869603,-2.87536764,1.66426945,0.0192027725,0.345681041 +0.111306041,3.55802131,-0.111306041,1.64601079e-05,0.141558513,0.0872040391,-1.9495784,0.0916046724,0.0192691311,0.157640234 +0.450724602,3.55805445,-0.450724602,0.00140976114,0.219459206,0.158032715,-0.571316183,-0.021239236,0.0189747568,0.638043165 +-0.223996088,3.55817652,0.223996088,2.30597743e-05,0.154704705,0.220246896,-2.72718191,1.7639668,0.0191480555,0.316795588 +-0.245412216,3.55817795,0.245412216,3.91339199e-06,0.125668421,0.172314718,-2.88939047,1.65346277,0.0192057192,0.347090721 +-0.18254675,3.55823207,0.18254675,2.0466101e-05,0.341468483,0.600366116,-2.15890241,2.10949254,0.0189635754,0.258164138 +0.163360298,3.5582397,-0.163360298,0.000266176823,0.146182045,0.0801350921,-2.31514072,0.161004484,0.0192263108,0.231207311 +0.224041253,3.55830193,-0.224041253,0.000268151198,0.141019106,0.0779586583,-2.62946367,0.0695690587,0.0191946793,0.317360282 +-0.209842205,3.55830932,0.209842205,8.01133046e-06,0.144891217,0.200483233,-2.69002199,1.9115206,0.0190930422,0.296794236 +-0.179876298,3.55853081,0.179876298,6.94215214e-06,0.513754606,1.14481688,-2.20205235,2.12353301,0.018944582,0.254390091 +-0.189898551,3.55857921,0.189898551,1.61156731e-05,0.23248589,0.36666891,-2.39673185,2.06076121,0.0189992581,0.268559396 +-0.220823109,3.55860996,0.220823109,2.32339225e-05,0.153778374,0.21742709,-2.71838188,1.77119756,0.0191393606,0.312308669 +-0.408840418,3.55864286,0.408840418,0.000317744358,0.159342438,0.23458676,-0.572402477,1.17442763,0.0189986806,0.57826823 +-1.17581952,3.55865192,1.17581952,0.00117848441,0.138070747,0.0638676435,0.0542877205,0.036106199,0.019331295,1.66303372 +0.0867340416,3.55865359,-0.0867340416,9.80492478e-05,0.146998495,0.105432764,-1.55290508,0.00778528955,0.019285351,0.12281318 +-0.182203963,3.55887532,0.182203948,6.84311954e-06,0.350136071,0.666305959,-2.30490685,2.12269974,0.0189577397,0.257676452 +-0.320230961,3.55888796,0.320230961,0.000156508599,0.133263096,0.20084855,-2.5657661,1.58594894,0.0191819724,0.452884644 +-0.182911962,3.5590117,0.182911962,1.04878363e-05,0.29441914,0.51539737,-2.33803821,2.12401032,0.0189618859,0.258679867 +-0.189612567,3.5591352,0.189612567,1.38404675e-05,0.206515223,0.32589522,-2.46105504,2.07124734,0.01899671,0.268154889 +-0.190117851,3.55914283,0.190117851,9.43690247e-06,0.19870232,0.309143811,-2.47187805,2.06769538,0.0189991854,0.268869191 +-0.217258975,3.55915642,0.217258975,3.81295904e-05,0.150840223,0.211491108,-2.70462894,1.78232193,0.0191267934,0.307266742 +-0.176214352,3.55919766,0.176214367,7.46819478e-06,0.421445906,0.916241586,-2.09209871,2.11659527,0.0189853162,0.249240279 +-0.182419062,3.5592432,0.182419062,7.90924514e-06,0.279635847,0.481870264,-2.32558894,2.11727476,0.0189692527,0.25798431 +-0.2744129,3.55933285,0.27441293,4.47950624e-05,0.121808723,0.172435805,-2.94908714,1.5265882,0.0192262363,0.388158798 +-0.196537301,3.55936527,0.196537316,3.15772995e-05,0.159777418,0.23231402,-2.57311773,1.99782324,0.0190351773,0.277950644 +-0.189846992,3.55937839,0.189846978,8.83845132e-06,0.193230808,0.297819376,-2.47102761,2.05929065,0.0190016553,0.268486589 +-0.23732464,3.55939531,0.237324655,2.44580224e-05,0.132829115,0.183230653,-2.86918688,1.65479863,0.0191824269,0.335677475 +-0.197926238,3.55939651,0.197926238,1.20456407e-05,0.151247799,0.216017172,-2.59390306,1.97843122,0.0190438628,0.279914021 +-0.35299623,3.55940485,0.35299623,0.000308356743,0.141305208,0.220890939,-1.8728776,1.79022372,0.0190878697,0.499319673 +1.20004869,3.55942297,-1.20004869,0.000220384318,0.136674836,0.0634225234,0.0386784822,0.0195116177,0.0193126071,1.69716656 +-0.46618101,3.55946636,0.46618101,4.26152801e-05,0.185730994,0.224908516,-0.147067755,0.0922182575,0.0190305803,0.65944308 +-0.293445975,3.5595336,0.293445975,8.92203097e-05,0.125514925,0.18055582,-2.92839074,1.46538091,0.0192143079,0.415036321 +-0.208294556,3.5595355,0.208294556,2.33039536e-05,0.140792713,0.191732436,-2.70517278,1.87642896,0.019088082,0.294589341 +-0.244546339,3.55959058,0.244546354,3.59210135e-05,0.124182433,0.16671364,-2.93355083,1.5872246,0.019198522,0.345854282 +-0.181508511,3.55963755,0.181508496,9.56709755e-06,0.261132479,0.44244051,-2.30325747,2.10641217,0.0189795475,0.256693661 +0.126192272,3.55966997,-0.126192272,0.000189474551,0.143760264,0.0843038484,-2.09112263,0.122902445,0.0192520227,0.17875278 +-0.173323005,3.55973959,0.173323005,5.17310582e-06,0.359543651,0.763575792,-2.00743055,2.10721183,0.0190140028,0.245130494 +-1.01602459,3.5598073,1.01602471,0.00265012123,0.153550386,0.0734779388,0.529588938,-0.110943288,0.0193249732,1.43761146 +0.107140116,3.55983162,-0.107140124,0.00011170881,0.141710877,0.0889985412,-1.91252613,0.0732730553,0.0192722753,0.151633367 +0.592934966,3.5599153,-0.592934966,0.00129487645,0.18022427,0.101964541,0.191508442,-0.216708213,0.0190916564,0.839149594 +0.167386249,3.56000376,-0.167386249,0.000196597714,0.14617537,0.0797788054,-2.33975148,0.14954865,0.019222714,0.236892968 +0.195168644,3.56003475,-0.195168644,0.000252424565,0.14386788,0.0782662183,-2.47945309,0.120217748,0.0192090031,0.276271969 +-0.949506581,3.56022978,0.94950664,0.00157987594,0.160268441,0.0770783648,0.603810549,-0.184134424,0.0193206053,1.34341812 +-0.398712426,3.56028795,0.398712426,0.000398023752,0.153364792,0.231665075,-0.745078325,1.40423417,0.0189913306,0.563962817 +-0.197285652,3.56028891,0.197285652,7.24067104e-06,0.143679231,0.200173914,-2.6001215,1.9473232,0.019043576,0.279007912 +-0.170147717,3.56033015,0.170147717,3.17948388e-06,0.30184865,0.621434033,-1.8910594,2.10069895,0.0190486014,0.240663141 +-0.211291596,3.56046081,0.211291596,3.79096418e-05,0.137510121,0.185044333,-2.74872041,1.81194937,0.0190960988,0.298820972 +-0.247263372,3.56052971,0.247263372,3.52210045e-05,0.125124425,0.167145342,-2.96781063,1.5220325,0.0192000307,0.349690557 +0.799213946,3.56065226,-0.799213946,0.00348109938,0.173350915,0.084671095,0.402037382,-0.182945609,0.0192331169,1.13028014 +0.259593219,3.56072807,-0.259593189,0.000281252898,0.143864363,0.0823901817,-2.78846908,-0.043649856,0.0191649683,0.367513895 +0.144623041,3.56079865,-0.144623041,0.000128304513,0.145548046,0.0811960399,-2.21062708,0.151641011,0.0192362405,0.204573259 +-0.202805787,3.56102467,0.202805787,2.40350982e-05,0.136486039,0.186707243,-2.67984295,1.87563586,0.0190620627,0.28683877 +-0.166413993,3.56102896,0.166413993,6.53100233e-06,0.190447092,0.379747182,-1.7695148,2.08895898,0.0190873407,0.235356271 +-0.279436499,3.5610342,0.279436529,3.56847959e-05,0.131419927,0.188861474,-2.89018321,1.29901254,0.0192176178,0.395247102 +-0.188256681,3.56104755,0.188256681,8.27082476e-06,0.159841344,0.231418282,-2.47085238,2.00568748,0.0190160628,0.266235411 +0.11288847,3.56106949,-0.11288847,4.69343722e-05,0.142121404,0.0867185667,-1.974208,0.0866067782,0.0192646533,0.159755677 +-0.567276239,3.56130958,0.567276239,0.000853526988,0.182937011,0.123775735,0.0468713976,-0.165236682,0.0191900413,0.802567899 +-0.269944936,3.5614593,0.269944936,7.65985242e-05,0.124319851,0.172037989,-3.01232576,1.41257262,0.0192204043,0.381807804 +0.110083356,3.56147122,-0.110083356,6.82236423e-05,0.141794294,0.0873807594,-1.95651245,0.0790653899,0.0192670934,0.155793354 +-0.163882479,3.56151438,0.163882479,1.19849683e-05,0.185740352,0.357620656,-1.70162904,2.05364299,0.0190982539,0.231796563 +-0.17716974,3.56157255,0.17716974,1.17758191e-05,0.161475167,0.245001063,-2.20182204,2.05780363,0.0190292485,0.25057292 +-0.200547114,3.56158924,0.200547114,1.15278708e-05,0.132900327,0.179624751,-2.66616011,1.87050509,0.0190561041,0.283638418 +-0.228008479,3.56160879,0.228008479,2.34944473e-05,0.132959306,0.17888236,-2.87999201,1.63003588,0.0191504546,0.322501242 +1.14009035,3.56165314,-1.14009035,0.000790077145,0.140853077,0.0631646216,-0.0013823784,0.0344239064,0.0193226561,1.6124053 +-1.13739598,3.56177497,1.13739598,0.000840072287,0.134900361,0.0602659546,0.0374532975,0.0550907999,0.0193230044,1.6086235 +-0.289740533,3.56179047,0.289740533,5.49697725e-05,0.1263109,0.179893598,-3.01902866,1.3843199,0.0192142688,0.409812152 +-0.220830053,3.56185436,0.220830053,6.93982383e-06,0.14126876,0.190184578,-2.83555293,1.68085361,0.0191263389,0.312352806 +0.797058523,3.56198621,-0.797058523,0.00284835696,0.173321053,0.0846565887,0.397630543,-0.183866397,0.0192313734,1.12724221 +-0.171018079,3.56211996,0.171018094,1.66061818e-05,0.147096038,0.253437251,-1.98477662,2.05134916,0.0190752558,0.241869837 +-0.160211131,3.56216192,0.160211131,6.15558474e-06,0.181915641,0.326079935,-1.59840226,1.98847985,0.0191175882,0.226579219 +1.22879016,3.56221509,-1.22879016,0.000183835466,0.10090477,0.0485176332,-0.139088809,-0.0156908203,0.0193104837,1.73782253 +-0.238380253,3.56224918,0.238380253,5.45641706e-05,0.123322517,0.161139667,-2.98048854,1.50943673,0.0191766769,0.337152421 +-0.223164231,3.56227326,0.223164231,1.60950567e-05,0.13152793,0.174612656,-2.8666625,1.64098191,0.0191371758,0.31565091 +0.798115909,3.56230879,-0.798115909,1.29644945e-06,0.173329562,0.0846453607,0.400001615,-0.184782058,0.0192317329,1.12877095 +1.2173866,3.56231785,-1.21738648,0.000404594641,0.1233228,0.0568767935,-0.0558502898,0.00584092457,0.0193097573,1.72169495 +1.2036984,3.56244111,-1.2036984,0.000300482148,0.136485979,0.0634494275,0.0365666188,0.0215758514,0.0193099305,1.70233619 +-0.461187661,3.56262422,0.461187631,0.000311944459,0.187001795,0.237032935,-0.127571285,0.243515417,0.0190137103,0.652294457 +-0.157306582,3.56267285,0.157306582,1.27471583e-06,0.178003699,0.294428706,-1.51385069,1.93921089,0.0191327315,0.222491294 +0.798751235,3.56273365,-0.798751295,4.16775947e-06,0.173318237,0.0846344456,0.400861114,-0.185438246,0.0192316528,1.12966061 +-0.174766496,3.56286621,0.174766496,1.30160643e-05,0.102684468,0.137601092,-2.13756704,2.02489257,0.0190629605,0.24716711 +-0.156012937,3.562886,0.156012937,3.82036114e-06,0.179214835,0.279564619,-1.46839452,1.9119072,0.0191404894,0.22065261 +0.0946524739,3.56299639,-0.0946524739,0.000158958253,0.142986596,0.0958817974,-1.7685101,0.0204525813,0.0192805286,0.134326607 +-0.234541059,3.56299782,0.234541059,4.21511504e-05,0.122550324,0.15872401,-2.97350693,1.51448631,0.0191662554,0.331709146 +-0.27651605,3.56318855,0.27651605,4.04699349e-05,0.125276789,0.173498333,-3.06074667,1.34550643,0.0192172993,0.391075611 +0.797816277,3.56328511,-0.797816277,0.000715737639,0.173314378,0.0846261308,0.399279803,-0.186243355,0.0192310195,1.12834394 +-0.178704917,3.56333017,0.178704903,2.64329628e-05,0.103921562,0.134966984,-2.26065779,1.97789371,0.0190555844,0.252738297 +-0.186019763,3.56339407,0.186019763,1.01876667e-05,0.111835375,0.141816825,-2.47171211,1.93168199,0.0190359373,0.263075054 +0.800406575,3.56351256,-0.800406635,0.00114343327,0.173255131,0.0845973939,0.402204901,-0.18603231,0.0192315746,1.13196874 +0.163839325,3.56352162,-0.163839325,9.03837135e-05,0.146164387,0.0796291009,-2.32072282,0.141016126,0.0192229412,0.231913477 +-0.219454929,3.56368089,0.219454929,1.92841289e-05,0.120470762,0.152998805,-2.88815165,1.61331749,0.0191238169,0.310382366 +-0.200627089,3.56372929,0.200627089,1.57688373e-05,0.113585353,0.139964595,-2.69576383,1.78316283,0.019060459,0.283756077 +-0.18539688,3.56378341,0.18539688,1.10267029e-05,0.104423426,0.128792405,-2.46504045,1.91957927,0.0190400109,0.262193024 +-0.186366722,3.56379604,0.186366707,2.78622392e-05,0.10501945,0.129465312,-2.48284602,1.9121598,0.0190398879,0.263566613 +-0.157420114,3.56394196,0.157420114,2.67791038e-05,0.155849561,0.228643268,-1.57775784,1.88690662,0.0191389173,0.222638533 +-0.171737418,3.56396246,0.171737418,1.64278626e-05,0.0996533036,0.129419714,-2.08530545,1.96712518,0.0190813933,0.242907077 +1.14955437,3.56400561,-1.14955449,0.000391333888,0.144282266,0.0655181855,-0.00332840858,0.0721157119,0.0193198007,1.62582755 +-0.198655695,3.5640173,0.198655695,1.85875451e-05,0.112303719,0.137708381,-2.68105316,1.78700423,0.0190548636,0.280962348 +-0.19351837,3.56402516,0.19351837,2.53670842e-05,0.109868057,0.133897245,-2.60620475,1.82807302,0.0190432873,0.273684382 +-0.215272576,3.56404066,0.215272576,2.60931374e-05,0.118886456,0.149880037,-2.86187649,1.6357615,0.0191096906,0.304465383 +-0.404157966,3.56407094,0.404157966,0.000152292545,0.158428669,0.241255715,-0.581112206,1.38990188,0.0189755429,0.571707845 +-0.148891658,3.56408048,0.148891658,3.56974238e-06,0.157006845,0.228638634,-1.38863516,1.7863729,0.0191587564,0.21058017 +-0.19517903,3.56409883,0.19517903,1.07637816e-05,0.110686108,0.13450855,-2.63457942,1.80668068,0.0190449152,0.276029885 +-0.273019165,3.56414819,0.273019195,5.90634481e-05,0.126320004,0.174529731,-3.0575819,1.31433475,0.0192139447,0.386178344 +-0.147807464,3.56426096,0.147807479,4.90157788e-07,0.153630346,0.220289767,-1.37706745,1.76709294,0.0191617869,0.209058791 +-0.286725461,3.56427097,0.286725461,7.85893208e-05,0.127826348,0.178466022,-3.09124708,1.2762084,0.0192104783,0.405507028 +-0.229810447,3.56428552,0.229810447,3.54855947e-05,0.122102916,0.15597935,-2.97089887,1.48896527,0.019153202,0.325021267 +-0.147113785,3.56438303,0.147113785,1.20856976e-06,0.15117465,0.214506373,-1.37015104,1.75411355,0.0191641171,0.208092093 +-0.280416131,3.56440377,0.280416131,2.91760462e-05,0.128149554,0.180592641,-3.06568336,1.30203485,0.0192125272,0.396666765 +-0.294495881,3.56440425,0.29449591,7.02719408e-05,0.130652204,0.185336232,-3.06351709,1.27327597,0.0192055944,0.416526437 +-0.291307539,3.56449699,0.291307509,7.73735665e-05,0.129284114,0.182602391,-3.07802534,1.26889837,0.0192077942,0.412038773 +-0.194097221,3.56470037,0.194097221,5.65824257e-06,0.10977532,0.132389814,-2.61626935,1.7846868,0.0190505832,0.274504125 +-0.212883681,3.56471634,0.212883681,2.41995658e-05,0.117024273,0.145235971,-2.84768343,1.62792599,0.0191009771,0.301087856 +-0.168248713,3.5647366,0.168248713,1.48428117e-05,0.0984916165,0.124519184,-2.00021029,1.92051506,0.0190989841,0.237950057 +-0.253366768,3.564816,0.253366768,6.76283016e-05,0.126919255,0.164297342,-3.10468149,1.2834456,0.0191873573,0.358358353 +0.35033837,3.56493855,-0.35033834,0.000734381611,0.209454119,0.141745389,-2.30167675,-0.183020413,0.0190492757,0.495955884 +0.078762427,3.56495905,-0.078762427,8.41066067e-05,0.181715161,0.143948361,-1.29668689,-0.0057891286,0.0192805585,0.111526683 +-0.143435776,3.56504154,0.143435791,1.18291564e-05,0.142080694,0.195235044,-1.34007049,1.68957591,0.0191702899,0.20285745 +-0.338997602,3.56511331,0.338997602,0.000162221666,0.146834284,0.22109361,-2.45721459,1.34680879,0.0191246923,0.479477525 +-0.46543777,3.56511688,0.46543777,0.000242100185,0.192079395,0.24667342,-0.0401243865,0.234015882,0.0190124102,0.658297718 +-0.147956997,3.56540513,0.147956982,3.92429574e-05,0.138338,0.188167423,-1.44957578,1.72966433,0.0191641971,0.209259257 +-0.378777444,3.56544518,0.378777444,0.000118347023,0.153755561,0.244525462,-1.22490013,1.7446332,0.0189887229,0.535688758 +-0.180579305,3.56545401,0.180579305,2.25544518e-05,0.101288401,0.121907704,-2.36049032,1.8482945,0.0190686043,0.255403459 +-0.165109217,3.56550312,0.165109217,1.44405421e-05,0.0966117084,0.118852988,-1.92421854,1.87745881,0.0191147216,0.233529434 +0.215095028,3.5655632,-0.215095028,0.000207418736,0.141282156,0.0774152353,-2.5695138,0.062632367,0.0191988442,0.304514885 +-0.225460067,3.56562948,0.225460082,2.46923828e-05,0.120945305,0.151371345,-2.9628768,1.47039962,0.0191391874,0.318869412 +-0.192697495,3.56586218,0.192697495,1.01376318e-05,0.109242842,0.130099952,-2.59904289,1.73801661,0.0190599822,0.272518873 +-0.207313955,3.5660038,0.20731394,1.54028712e-05,0.116147265,0.141018942,-2.812603,1.62341046,0.0190854818,0.29318893 +-0.206026405,3.56600475,0.206026405,2.38722459e-05,0.116043478,0.140753344,-2.80105782,1.63497496,0.0190820415,0.291370064 +-0.256875485,3.56601477,0.256875485,4.83367039e-05,0.127621204,0.164670825,-3.14442968,1.21416998,0.0191855598,0.363319635 +-0.221976548,3.56610942,0.221976548,2.45537267e-05,0.119909927,0.148171678,-2.95333958,1.47818208,0.0191296358,0.313943267 +-0.137212187,3.56617093,0.137212187,2.32373586e-05,0.126358494,0.1639079,-1.29343081,1.58521748,0.0191784669,0.19410184 +-0.162551463,3.56617737,0.162551463,1.64513367e-05,0.0952894092,0.113901295,-1.85826778,1.83442807,0.0191297885,0.229899794 +0.327518076,3.56621194,-0.327518076,0.000481015682,0.190353811,0.12458358,-2.60452175,-0.200366184,0.019082645,0.463913918 +0.153476238,3.56621695,-0.153476238,0.000115504903,0.145912454,0.0802387223,-2.26926541,0.131376922,0.0192273948,0.217090011 +-0.264466524,3.56634831,0.264466524,8.63478999e-05,0.128472239,0.167601913,-3.17512822,1.15315962,0.0191921182,0.374099374 +-0.23207216,3.5664115,0.23207216,3.16937512e-05,0.122032039,0.153764218,-3.03059959,1.40249014,0.0191473234,0.328277081 +1.20064139,3.56644082,-1.20064139,0.000536041916,0.141415507,0.0662938431,0.0527012274,0.0347553827,0.0193071309,1.69797957 +1.10864246,3.56650448,-1.10864246,0.00106602476,0.140080526,0.0631977096,0.0731697828,-0.0638130158,0.0193209145,1.56810427 +-0.135266885,3.56658149,0.135266885,2.76199207e-05,0.123171158,0.158422545,-1.28402913,1.55223668,0.0191804022,0.191361934 +-0.206318244,3.56659842,0.206318244,7.253484e-07,0.11627771,0.140371621,-2.8107655,1.61288393,0.0190819018,0.291787148 +-0.205858007,3.56664205,0.205857992,4.38506595e-06,0.11611674,0.140015647,-2.8066709,1.61351943,0.0190815907,0.291133165 +0.421663076,3.56668019,-0.421663076,0.00066540821,0.227911025,0.165064231,-1.02457261,-0.0846267641,0.0189733095,0.596504092 +0.171227559,3.56677961,-0.171227574,0.000160106356,0.145516664,0.0790045559,-2.35099411,0.121389955,0.0192187075,0.242245525 +-0.28083989,3.56694937,0.28083989,5.50756158e-05,0.129399896,0.175034165,-3.18316031,1.13607609,0.0192016065,0.397247612 +-0.165663809,3.56707239,0.165663809,3.83140905e-05,0.0957944244,0.112907782,-1.97129393,1.79798412,0.0191244949,0.234305561 +0.0856571496,3.56713724,-0.085657157,8.70325821e-05,0.1516058,0.11112804,-1.58610046,-0.0154037811,0.01928108,0.121565573 +-0.35959813,3.56720114,0.3595981,7.29207241e-05,0.154339701,0.246607319,-1.88241875,1.7727288,0.0190461669,0.508776784 +0.309986711,3.56743288,-0.309986711,0.000418457726,0.173229814,0.10875839,-2.74411678,-0.200652182,0.0191024002,0.438605726 +-0.157823473,3.56748629,0.157823473,2.59038352e-05,0.0934991241,0.109896854,-1.80917501,1.75503588,0.0191425662,0.223238826 +0.802101254,3.56751013,-0.802101254,0.00226203748,0.173165053,0.0845076144,0.403169453,-0.190128297,0.0192295779,1.13435102 +-0.665748477,3.56756377,0.665748477,0.00101186894,0.184389412,0.0931166187,0.0810128525,-0.284451932,0.0192673448,0.942537904 +-0.217095375,3.56758976,0.217095375,2.24945379e-05,0.12247695,0.151808709,-2.92930126,1.50348735,0.0191081129,0.307067752 +-0.213580042,3.56759644,0.213580042,1.85706194e-05,0.118372262,0.143103659,-2.88813758,1.4934001,0.0191078577,0.30207637 +-0.18993558,3.56776857,0.18993558,1.45718896e-05,0.107961342,0.125836417,-2.55721283,1.66885948,0.0190768968,0.268628508 +-0.206736952,3.56780672,0.206736952,1.72057262e-05,0.117197879,0.140156046,-2.83105278,1.5595032,0.0190847069,0.292371899 +-1.05972719,3.56788969,1.05972719,0.000888342387,0.149756595,0.0706897974,0.35863322,-0.0842770934,0.0193176717,1.49881053 +-0.196742952,3.56791353,0.196742952,1.07169062e-05,0.11254698,0.132473752,-2.69083238,1.64304626,0.0190682597,0.278243452 +0.581279814,3.56793928,-0.581279814,0.00119915255,0.182120338,0.105136834,0.17590791,-0.227878124,0.0190732572,0.822584808 +0.203829229,3.56808949,-0.203829229,0.000316395948,0.142481267,0.0774687827,-2.50516415,0.0809590966,0.0192046165,0.288487434 +-0.174877375,3.56816196,0.174877375,1.19768401e-05,0.0971512571,0.112609714,-2.2548337,1.73360443,0.0191047024,0.247315571 +-1.22873557,3.56823468,1.22873557,0.000175290523,0.0969701409,0.0462526605,-0.244167134,-0.00887962431,0.019331228,1.73773384 +-0.47028774,3.56831455,0.47028771,0.000359600235,0.198952377,0.259267837,-0.0214838386,0.192613572,0.0190177206,0.665138066 +-1.21893394,3.56839228,1.21893394,0.000386658881,0.118378647,0.0538651124,-0.161675841,0.0077874884,0.0193312224,1.72387159 +-0.17427133,3.5684576,0.17427133,8.77312959e-06,0.0966454297,0.111516103,-2.24324489,1.72109592,0.0191087518,0.246461213 +-1.20717025,3.56858158,1.20717025,0.000400123885,0.131142572,0.0608080812,-0.0387991704,0.0292525999,0.0193307456,1.70723474 +-0.173866555,3.56861854,0.173866555,1.68981605e-05,0.09635818,0.110894665,-2.23408651,1.71481061,0.0191109292,0.245887414 +-0.12646386,3.56862545,0.12646386,3.6490379e-05,0.112029187,0.137164548,-1.22578347,1.40085864,0.0191893373,0.178909153 +-0.421000928,3.56868267,0.421000928,0.000269546232,0.18664059,0.290429026,-0.209489301,1.25080347,0.0189335607,0.595515966 +-0.174393624,3.56871843,0.174393639,5.18509187e-05,0.0969014838,0.11143598,-2.24655366,1.70877314,0.019110525,0.246634588 +-0.15293476,3.56887913,0.15293476,2.90765747e-05,0.0897072256,0.102871917,-1.75965917,1.65777278,0.0191585608,0.216341153 +-0.20040524,3.5689168,0.20040524,5.64118182e-06,0.114309706,0.133946195,-2.75494814,1.56443429,0.019078264,0.283420861 +-0.201123029,3.56899238,0.201123014,9.63932598e-06,0.114806741,0.134559423,-2.76243281,1.55536866,0.0190809444,0.284437388 +0.275630414,3.5690546,-0.275630444,0.000660143094,0.148675084,0.0868658572,-2.81125379,-0.1348259,0.0191451777,0.390386224 +-0.366243064,3.56906509,0.366243035,0.000175151145,0.159644365,0.25661242,-1.70220292,1.77526379,0.0190139711,0.518050671 +-0.195603475,3.5693295,0.195603475,1.32815485e-05,0.111678563,0.129188642,-2.67652273,1.58722663,0.0190795008,0.276637703 +-0.123951852,3.56934881,0.123951845,2.52533173e-05,0.10996598,0.133419111,-1.21437323,1.35697567,0.0191906244,0.175343812 +-0.334843844,3.56938171,0.334843844,0.000163518998,0.151827663,0.22850731,-2.66629124,1.25996327,0.0191300977,0.473641247 +-0.193501368,3.56951714,0.193501368,1.41703176e-05,0.110526502,0.127124801,-2.63960099,1.58274937,0.0190832764,0.273656964 +-0.188073009,3.56951761,0.188072994,1.66235404e-05,0.10727223,0.122636706,-2.5389812,1.60821295,0.0190874804,0.265986115 +-0.190694734,3.56951809,0.190694749,8.62917841e-06,0.108953036,0.124992721,-2.5780952,1.59686649,0.0190860722,0.269713014 +0.141819179,3.5695312,-0.141819164,9.75016592e-05,0.145732552,0.0812418759,-2.20987487,0.114424005,0.0192318875,0.20076856 +-0.18313463,3.56954956,0.18313463,5.28323035e-05,0.103785507,0.118691698,-2.43434882,1.64073944,0.0190972891,0.25902003 +0.072326988,3.56960845,-0.072326988,3.94788949e-05,0.334816754,0.318222016,-0.864703953,-0.0333887711,0.0192778185,0.102386549 +-0.199046165,3.56975842,0.199046195,1.14165823e-05,0.113975234,0.132001922,-2.74303818,1.54279232,0.0190796647,0.281495512 +-0.149049431,3.56983852,0.149049431,3.32737764e-05,0.0907966942,0.102721579,-1.73580766,1.59457624,0.019163698,0.210871249 +-0.200785264,3.56990576,0.200785264,1.18088956e-05,0.114874758,0.133314967,-2.76895833,1.52510262,0.0190803204,0.283961385 +-0.384820461,3.56990838,0.384820461,0.000115050039,0.166068032,0.263093233,-1.17679405,1.59698915,0.0189580191,0.544276536 +0.165423229,3.57001424,-0.165423229,0.000113067283,0.145649761,0.0789239779,-2.32454228,0.119801834,0.0192200597,0.234023213 +-0.250387371,3.57013321,0.2503874,6.32864831e-05,0.129050061,0.160845131,-3.20245075,1.08813,0.0191691704,0.354128242 +-0.435305208,3.57013988,0.435305208,0.000265639625,0.188764811,0.283118367,0.0030606091,0.953476548,0.0189602766,0.615687788 +0.121804148,3.57019424,-0.121804148,0.000167574413,0.144231766,0.0844013616,-2.09476757,0.0804926381,0.019246785,0.172596902 +-1.20279324,3.57019687,1.20279324,0.000262228394,0.133001134,0.0617280789,-0.0272217095,0.0308470149,0.0193291083,1.70103979 +-0.312130153,3.57024908,0.312130153,0.000147776533,0.144358292,0.207234159,-3.05870152,1.03348982,0.0191684607,0.441599369 +-0.220664769,3.57029533,0.220664784,3.62905739e-05,0.121507682,0.145157307,-3.00948238,1.34017444,0.019117564,0.312106222 +0.136329934,3.57032037,-0.136329934,0.000159989359,0.145480007,0.0823700503,-2.17770314,0.100447521,0.0192356799,0.19291319 +-0.602187812,3.5704906,0.602187812,0.000941227889,0.179451272,0.106448643,0.188723311,-0.227679253,0.0192218367,0.851789653 +-0.96236062,3.5705142,0.96236062,0.00190171809,0.159136996,0.076387018,0.582428932,-0.175864786,0.0193135925,1.36134529 +0.186757177,3.57058096,-0.186757177,0.000224888106,0.144067302,0.0777532458,-2.42457151,0.0976842195,0.0192101914,0.264406085 +0.0783665329,3.57059908,-0.0783665404,4.82166797e-05,0.186531976,0.151067078,-1.31868291,-0.0139382631,0.0192777421,0.111155704 +-0.594026923,3.5706892,0.594026923,0.000912584073,0.180292219,0.109764032,0.159451276,-0.216703176,0.0192116406,0.840157509 +-0.255434722,3.57073307,0.255434722,4.8399299e-05,0.130680308,0.164155498,-3.22645259,1.04557371,0.0191700142,0.361277759 +-0.20283857,3.57077098,0.202838585,1.60793497e-05,0.116471678,0.134583965,-2.80677557,1.47328007,0.0190844946,0.286859423 +0.115472727,3.57086658,-0.115472719,0.000115171446,0.143469393,0.0861435309,-2.05337954,0.064147912,0.0192525219,0.163647979 +-0.279046357,3.5708971,0.279046357,5.0890023e-05,0.13231422,0.172979519,-3.28442955,0.930377603,0.0191880446,0.394666314 +-0.229810849,3.57091808,0.229810849,4.76945606e-05,0.125473797,0.153255537,-3.0855608,1.25978506,0.0191359725,0.325033635 +-0.244580865,3.57094812,0.244580865,6.74126495e-05,0.127978191,0.157936051,-3.19388723,1.10859442,0.019155154,0.345938653 +-0.391190827,3.57100677,0.391190827,0.000208888727,0.165957555,0.263218343,-0.979156017,1.59457994,0.0189512689,0.553249061 +-0.19093737,3.57109237,0.19093737,1.35099099e-05,0.11071229,0.125962868,-2.59742498,1.54666448,0.0190883372,0.270055056 +-0.143935278,3.57114673,0.143935278,2.47360167e-05,0.0915770978,0.10149119,-1.70563245,1.5051465,0.0191708989,0.20357883 +-0.20940955,3.57116461,0.209409565,1.44759051e-05,0.120336741,0.141015679,-2.90047169,1.41060925,0.0190941114,0.296165198 +-0.200822487,3.57131386,0.200822487,1.72801738e-05,0.116636276,0.134150326,-2.7855022,1.47532189,0.0190822966,0.284010291 +0.407677174,3.57142735,-0.407677174,0.000538576045,0.229957551,0.165802911,-1.2546016,-0.140725374,0.0189782064,0.5766837 +-0.330330431,3.57143521,0.330330431,0.000124535334,0.154063389,0.227241665,-2.83495188,1.11668015,0.0191313177,0.467235029 +-0.167158604,3.57156515,0.167158604,3.39794242e-05,0.0971267596,0.108067818,-2.17367887,1.58389521,0.0191300716,0.236442089 +-0.116989121,3.57158208,0.116989121,3.0537205e-05,0.10303808,0.12154492,-1.17490053,1.23479331,0.019193301,0.16557911 +-1.10328627,3.57159281,1.10328627,0.0010068561,0.135387108,0.0612285919,0.13339293,-0.0653847009,0.0193121638,1.56032634 +-0.141076088,3.57192945,0.141076088,3.5449295e-05,0.091638498,0.10035935,-1.68856966,1.45301402,0.0191749111,0.199559435 +-0.939736962,3.57194114,0.939736962,0.00261554611,0.160725445,0.0771331042,0.592061937,-0.202313915,0.0193112791,1.32951701 +-0.355876923,3.57211995,0.355876923,0.000250162295,0.166567385,0.258272797,-2.20736694,1.42027664,0.0190434773,0.503426731 +-0.158441454,3.572124,0.158441454,5.20652829e-05,0.0947033465,0.10464035,-1.98770189,1.5509578,0.0191508047,0.224100888 +-0.237882286,3.57233572,0.237882301,2.75609e-05,0.127726391,0.153940409,-3.18262744,1.1016897,0.0191478375,0.336420685 +-0.18517904,3.57241964,0.185179055,2.62363501e-05,0.109421611,0.121866554,-2.53583384,1.49542463,0.019102864,0.261915982 +0.694746792,3.5724659,-0.694746792,0.0026341083,0.173407882,0.0861828104,0.177881718,-0.155096978,0.0191754531,0.983433247 +-0.208691061,3.57248807,0.208691046,4.07894049e-06,0.12000224,0.138054028,-2.90539479,1.36199832,0.0190940108,0.295153379 +-0.189201683,3.57256079,0.189201683,2.12843679e-05,0.112579517,0.126186654,-2.59857321,1.49031532,0.0190944746,0.267582595 +-0.224451751,3.57259083,0.224451765,4.82527903e-05,0.124056473,0.146927536,-3.07597399,1.23632431,0.0191186666,0.317455411 +-0.403731942,3.57263899,0.403731942,0.000289623684,0.175889045,0.274306864,-0.656035364,1.3879782,0.0189319272,0.571051955 +0.146257639,3.57274103,-0.146257639,0.00013538792,0.145520642,0.0803535953,-2.23609066,0.108809292,0.0192279983,0.206950858 +-0.533927321,3.57276011,0.533927321,0.000664232648,0.184183478,0.171221048,-0.0848297477,-0.149666145,0.0191240367,0.755435944 +0.0722445324,3.57305789,-0.0722445324,1.5217498e-05,0.336025804,0.325621784,-0.874679148,-0.0348970108,0.0192755572,0.102386542 +0.253099948,3.57308316,-0.253099978,0.000414392416,0.141185805,0.0793208107,-2.72064209,-0.0759239271,0.0191690661,0.358044565 +-0.214783192,3.57315636,0.214783192,4.23691308e-05,0.122065961,0.140821978,-2.97436333,1.28159153,0.0191052668,0.303806841 +-0.261835784,3.57347775,0.261835814,5.6440862e-05,0.133057013,0.166667342,-3.29759407,0.901310921,0.0191681813,0.370369732 +-0.209766105,3.57348824,0.209766105,2.94616475e-05,0.121436074,0.138595387,-2.9315629,1.30551505,0.019098755,0.296671689 +-0.142272145,3.57352161,0.142272145,6.23157393e-05,0.0950845182,0.1025059,-1.76338053,1.41044676,0.0191732626,0.201235265 +-0.162172377,3.57368731,0.162172377,3.17392514e-05,0.0968798697,0.104993522,-2.12051797,1.4871583,0.0191459116,0.229371578 +-0.385463268,3.57374406,0.385463268,2.48825618e-05,0.166338801,0.269657463,-1.11470938,1.73428452,0.0189436246,0.54520303 +-0.207782879,3.57382631,0.207782865,3.05654212e-05,0.120949924,0.137281314,-2.90558815,1.30714583,0.0190998409,0.293871462 +0.197108895,3.57388473,-0.197108895,0.000188763981,0.142678529,0.0773581862,-2.46636534,0.073739484,0.0192068368,0.278995842 +0.0920642838,3.57389426,-0.0920642838,0.000115767325,0.147046655,0.102101482,-1.79861522,-0.0166787338,0.019274354,0.130345136 +-0.246694267,3.57399893,0.246694237,2.15523651e-05,0.129890457,0.156345561,-3.26573014,0.965695262,0.0191481058,0.34896642 +0.102333829,3.57411981,-0.102333829,0.000137563533,0.144138485,0.0927150473,-1.9462266,0.011498767,0.0192640275,0.144898742 +1.01593781,3.57414412,-1.01593781,0.00153542892,0.157194048,0.0754099563,0.443382293,-0.120944723,0.01928165,1.43699181 +-0.196025699,3.5742569,0.196025714,1.38056539e-05,0.117041484,0.130345181,-2.74835873,1.3816129,0.0190953743,0.277223945 +0.141255781,3.57433438,-0.141255781,0.000161915974,0.145613909,0.0810409337,-2.2179811,0.0993692353,0.0192291215,0.199895769 +-0.339732289,3.57435441,0.33973226,0.000179526542,0.164678052,0.245466188,-2.73890376,1.05328786,0.0190974716,0.480535209 +-0.133388147,3.5744915,0.133388147,3.43505271e-05,0.0921853334,0.0986088365,-1.67650652,1.31120396,0.0191824678,0.188696295 +0.0846425295,3.57455206,-0.084642522,8.03251678e-05,0.156649888,0.118421212,-1.60678601,-0.0304360278,0.0192777067,0.119900689 +-0.382411122,3.57461405,0.382411122,0.000116389856,0.169013545,0.275295883,-1.22435057,1.76980317,0.0189455077,0.540847301 +-0.131163582,3.5750742,0.131163582,4.28153107e-05,0.0918797925,0.0977552831,-1.66143787,1.27489483,0.0191847421,0.185553759 +0.0781224892,3.57518053,-0.0781224966,7.10667809e-05,0.192713886,0.160611436,-1.33101082,-0.0187325738,0.0192755368,0.110662743 +-0.237845197,3.57520342,0.237845197,1.72165473e-05,0.128621504,0.150691926,-3.24127245,0.986128271,0.019138664,0.336382568 +-0.108046405,3.57524157,0.108046412,2.41755661e-05,0.0959460959,0.108847678,-1.11976886,1.06963575,0.0191958826,0.152804732 +-1.22871459,3.57527256,1.22871447,0.000152483757,0.0970084593,0.0466230959,-0.244561419,-0.00826387759,0.019327363,1.73772168 +-0.301388443,3.57528472,0.301388443,0.000177706897,0.1463525,0.195325568,-3.33440828,0.688263655,0.01916641,0.426254898 +-1.20694983,3.57529664,1.20694995,2.94986894e-05,0.135546267,0.0632491931,-0.0293412171,0.0406349339,0.0193272661,1.70694447 +-0.158825725,3.5753262,0.158825725,4.84897937e-05,0.0998673737,0.106414914,-2.11620712,1.42213488,0.0191503428,0.224662751 +-0.107803561,3.57534361,0.107803561,2.39076198e-05,0.095759429,0.10859818,-1.1186744,1.06520784,0.0191958752,0.152466074 +-1.21959817,3.57542706,1.21959805,0.000335604011,0.11898829,0.0542071052,-0.164808869,0.00986590888,0.0193274468,1.72482848 +-0.239482626,3.57550859,0.239482626,4.10680004e-05,0.12933898,0.151522622,-3.25656605,0.960391462,0.0191396531,0.338686079 +-1.20865583,3.57561278,1.20865583,0.000274766062,0.132625893,0.0616866648,-0.042483028,0.0354062244,0.0193271507,1.70935321 +-0.107090615,3.57566595,0.107090615,1.75378354e-05,0.0957144201,0.108489245,-1.11164904,1.05157089,0.0191957988,0.151450515 +0.0723056868,3.57567024,-0.0723056868,3.36937301e-05,0.338252753,0.335951626,-0.881299853,-0.0355626233,0.0192737728,0.102386549 +-0.299636513,3.57575727,0.299636513,5.283871e-05,0.146085501,0.193772644,-3.35387826,0.663244188,0.0191663094,0.423790067 +0.474034041,3.57596827,-0.474034041,0.00139134529,0.211673945,0.149135336,-0.292186201,-0.139658615,0.0189664923,0.671340942 +-0.236584187,3.57604098,0.236584187,3.08560302e-05,0.129271373,0.150445119,-3.24294448,0.971001208,0.0191354416,0.334588319 +-0.196643263,3.57607579,0.196643263,6.45852333e-06,0.119081065,0.130803734,-2.77627134,1.30401254,0.0191018712,0.278103739 +-0.238159627,3.57608509,0.238159627,3.90574314e-06,0.129358977,0.151047334,-3.25477242,0.960802674,0.0191364456,0.336829275 +-0.168510258,3.57638979,0.168510258,0.000109244225,0.106931701,0.113842443,-2.29333544,1.39169967,0.0191385373,0.238358706 +-0.150794476,3.57643032,0.150794476,4.86111603e-05,0.101098359,0.105954945,-2.00645137,1.35448563,0.0191622563,0.213274881 +-0.251573741,3.57647157,0.251573741,5.04117052e-05,0.133456081,0.158627793,-3.33765364,0.815118313,0.0191488881,0.355818182 +-0.17986694,3.57665539,0.17986694,2.0273761e-05,0.114278197,0.122093678,-2.512918,1.3506943,0.0191196743,0.254374564 +0.10628783,3.57672668,-0.106287837,0.000151931643,0.144311666,0.0906776413,-2.00783348,0.0180335622,0.01925667,0.150488749 +1.09129345,3.5767293,-1.09129345,0.00119277532,0.146449566,0.0684414878,0.159498766,-0.124077603,0.0193110574,1.54348612 +-0.195956931,3.57681251,0.195956931,1.60515483e-05,0.119722642,0.130741104,-2.77409101,1.28608453,0.019102335,0.277135611 +0.156994939,3.57683063,-0.156994939,0.000152986759,0.145461276,0.0792873204,-2.29335928,0.0953150243,0.0192196798,0.222585708 +-0.194538027,3.57687235,0.194538027,2.91775759e-05,0.119600065,0.130183518,-2.75443339,1.28848696,0.0191037189,0.275122404 +-0.678191423,3.5769093,0.678191423,0.00141435442,0.183121994,0.0913700685,0.115147933,-0.310366631,0.0192638412,0.960402489 +-0.196993068,3.57701921,0.196993068,2.5070276e-05,0.12052609,0.131540537,-2.79227185,1.27088904,0.0191022176,0.278594673 +-0.213102937,3.57705903,0.213102922,4.24130849e-05,0.125264257,0.141357511,-2.99955273,1.18904138,0.0190988779,0.301436007 +1.1608057,3.57713318,-1.1608057,0.000497834291,0.175450444,0.0857266784,0.06521409,0.109428979,0.0193060059,1.64167166 +-0.28778246,3.57715273,0.28778246,6.60781734e-05,0.140733764,0.181919336,-3.39232922,0.643916667,0.0191679522,0.406990737 +-0.132819578,3.57717538,0.132819578,0.00010332821,0.0975126922,0.101731651,-1.75411737,1.2326417,0.0191825647,0.18787995 +-0.384995967,3.57739663,0.384995937,0.000161615302,0.17691499,0.289110899,-1.18630731,1.71563876,0.0189210046,0.544513762 +-1.16821682,3.57744646,1.16821671,0.000864544883,0.16285947,0.0783037394,0.0701939091,0.183687061,0.0193194002,1.65228128 +-0.606303692,3.57745481,0.606303692,0.000565576716,0.178621456,0.105598405,0.204609022,-0.24594146,0.019221615,0.857611001 +-0.228838384,3.57749653,0.228838384,6.36420882e-05,0.129539728,0.148049012,-3.19479418,1.00631762,0.0191205572,0.32367599 +-0.178664371,3.57757354,0.178664371,2.02223091e-05,0.115285739,0.12192595,-2.505656,1.31797814,0.0191239305,0.252681136 +-0.151878074,3.57760143,0.151878059,4.61105155e-05,0.103145309,0.106693111,-2.06671238,1.31406975,0.0191609003,0.214809269 +-0.26846689,3.57760644,0.26846689,4.34966423e-05,0.136412963,0.16610375,-3.41390038,0.659598172,0.0191605687,0.379689634 +-0.202456772,3.57761574,0.202456772,3.42805615e-05,0.124005429,0.13639687,-2.87442636,1.22604573,0.0190993771,0.286357999 +-0.18705374,3.57776594,0.187053725,6.10899369e-05,0.11866571,0.126925975,-2.63888764,1.28830302,0.0191153921,0.264568388 +-0.276135892,3.57779551,0.276135892,9.40847531e-05,0.138838544,0.171472564,-3.44249344,0.586739302,0.0191622525,0.390624464 +-0.179162502,3.57781363,0.179162502,7.94271159e-07,0.115931392,0.122437522,-2.51779985,1.30691838,0.0191240963,0.253388256 +-0.220083684,3.57785511,0.220083699,2.39071232e-05,0.128507331,0.144074187,-3.11296487,1.0599519,0.0191133507,0.311261982 +-0.247368187,3.5779593,0.247368187,7.02035468e-05,0.133852601,0.156132624,-3.34656501,0.79825902,0.0191401467,0.3498739 +-0.300226957,3.57799101,0.300226957,8.6859749e-05,0.147672251,0.194501072,-3.38556361,0.592716813,0.0191593543,0.424610436 +0.25915125,3.57817888,-0.25915122,0.000219892216,0.142910212,0.0808587447,-2.72195721,-0.118924923,0.0191611107,0.366648942 +-0.177762493,3.57823539,0.177762479,3.40168262e-05,0.115923986,0.121838376,-2.49988842,1.29803276,0.0191262756,0.25140214 +-0.180373937,3.57825565,0.180373937,2.29025118e-05,0.117025867,0.123332553,-2.54293466,1.28884387,0.0191234797,0.255091667 +-0.546173215,3.57831526,0.546173215,0.000370609196,0.182730272,0.164976105,-0.0217831731,-0.159755111,0.0191337634,0.77276516 +-0.179111511,3.57832527,0.179111525,6.43983867e-07,0.116505578,0.122613452,-2.52113152,1.29195857,0.0191251617,0.2533198 +-0.121009819,3.57841253,0.121009827,3.91314861e-05,0.0919976607,0.0957231,-1.62034392,1.11304021,0.0191896763,0.171134487 +0.899858832,3.57843661,-0.899858832,0.00545212626,0.171219975,0.0835712105,0.520049691,-0.200018048,0.0192515589,1.27362657 +-0.120418042,3.57845736,0.120418049,4.60893134e-05,0.0921845213,0.0959573761,-1.61054099,1.10733342,0.0191899817,0.1702995 +0.540243387,3.57845926,-0.540243387,0.00177753321,0.18941474,0.117563799,0.114048451,-0.209437907,0.0190194976,0.765395403 +-0.178653985,3.57848382,0.17865397,7.86176429e-07,0.116565406,0.122546561,-2.51565576,1.29052985,0.0191255379,0.252676249 +-0.258200556,3.57851505,0.258200556,7.76044835e-05,0.136411771,0.162392035,-3.39542389,0.705942154,0.0191458464,0.365206867 +-0.502320111,3.57855034,0.502320111,0.000473078486,0.200813934,0.247413442,-0.0168855824,-0.0138983745,0.0190503746,0.710403204 +-0.120488957,3.5785861,0.120488957,4.00803947e-05,0.0920036212,0.095624797,-1.61850297,1.10475528,0.0191898551,0.170402527 +1.00490856,3.57861376,-1.00490856,0.00118169526,0.159029692,0.0765265971,0.465396255,-0.134260699,0.0192750879,1.4215579 +-0.12031883,3.5786469,0.12031883,5.38556706e-05,0.0920110494,0.0956111923,-1.61757874,1.10233212,0.0191898756,0.170159668 +-0.149643496,3.57865906,0.149643496,3.77809192e-05,0.104811758,0.107288569,-2.06377125,1.27749681,0.0191629827,0.211640686 +-0.239207149,3.57871461,0.239207149,3.39690268e-05,0.131355822,0.15172343,-3.29229975,0.884727001,0.0191314947,0.338294744 +-0.503197312,3.57876325,0.503197312,0.00033263411,0.200607002,0.246794045,-0.0150325876,-0.0157662407,0.0190515369,0.711640656 +-0.440344453,3.57879329,0.440344453,0.000473361142,0.198532507,0.306597173,0.18426536,1.03998089,0.0189316534,0.62285161 +-0.237168998,3.57879806,0.237168998,2.7300428e-05,0.13152194,0.151216015,-3.28061771,0.894927263,0.019130474,0.33541128 +-0.222182363,3.57888198,0.222182363,2.96545768e-05,0.12969096,0.144848853,-3.14629292,1.01157022,0.0191140864,0.314227104 +-0.417162776,3.5788846,0.417162776,0.000155028814,0.191832408,0.313221723,-0.135520339,1.5790062,0.0188847538,0.590188682 +0.0907961056,3.57906532,-0.0907961056,8.5476684e-05,0.148580641,0.103732355,-1.81948709,-0.0291948467,0.0192707367,0.128561333 +-0.179194093,3.57913256,0.179194093,1.09735201e-05,0.117512845,0.123219565,-2.53114152,1.27301598,0.0191251729,0.253431082 +-0.601771414,3.57931376,0.601771414,0.000428958359,0.179079175,0.106624402,0.20028989,-0.244381636,0.0192142744,0.851183653 +-0.220926881,3.57939506,0.220926881,2.63410061e-06,0.129825786,0.144598261,-3.13756013,1.01379323,0.0191116203,0.312475592 +-0.334798545,3.57947087,0.334798574,0.000157610993,0.167110682,0.238416523,-3.01112652,0.696300745,0.0190946329,0.473519683 +0.227637708,3.57953572,-0.227637693,0.000194364766,0.139845163,0.0764521956,-2.58571243,-0.0207289271,0.0191877987,0.322031051 +-0.219456524,3.57957268,0.219456524,2.74204358e-05,0.129954636,0.144149438,-3.12571144,1.01752949,0.0191107821,0.310376644 +-0.50251776,3.57957983,0.50251776,3.09776533e-06,0.201172486,0.248746395,-0.00917779095,-0.0101400577,0.0190493241,0.710686624 +-0.0981666744,3.57963324,0.0981666744,8.31998113e-06,0.0943557769,0.10636688,-1.02685213,0.883637547,0.0191936288,0.138908759 +-0.178588003,3.57964659,0.178588003,3.26493246e-05,0.118144594,0.123488151,-2.52963829,1.26340413,0.0191257,0.252571106 +-0.200865775,3.57964659,0.200865775,5.06400538e-05,0.126345277,0.136078805,-2.8783381,1.15225005,0.0191061292,0.284114331 +-0.269874394,3.57995844,0.269874394,4.93815169e-05,0.138167679,0.166196465,-3.46182632,0.563195109,0.0191535633,0.381689489 +-0.267368913,3.58008289,0.267368913,3.98493721e-05,0.137989566,0.165077761,-3.45541143,0.574288726,0.0191521142,0.378134847 +0.250075966,3.58010387,-0.250075966,0.000148163148,0.140403971,0.078263171,-2.68340516,-0.0940122902,0.019170247,0.353911489 +-0.292088747,3.58010483,0.292088747,5.87149734e-05,0.146362916,0.185735911,-3.46394157,0.475962788,0.0191559605,0.413078755 +-0.501483977,3.58017635,0.501483977,0.000342992833,0.202947602,0.254443854,0.00731416512,0.0167663954,0.019045921,0.709213376 +-0.37075156,3.58018351,0.37075156,0.000158748036,0.187124759,0.2991983,-1.87917304,1.3489573,0.0189612545,0.524433136 +-0.20654723,3.58029628,0.206547216,1.31627139e-05,0.128803879,0.139180526,-2.97341466,1.09624434,0.0191036724,0.292103708 +-0.0962020978,3.58042479,0.0962021053,8.28960947e-06,0.0954393372,0.107474625,-0.999958456,0.842181683,0.0191930812,0.136137366 +0.224295139,3.58050275,-0.224295154,0.000223493058,0.140020654,0.0763706341,-2.56821823,-0.0165920872,0.0191897321,0.317267299 +-0.502520382,3.58079481,0.502520382,0.000378452067,0.20321472,0.253737539,0.0013793828,-0.00205162261,0.0190468542,0.710682571 +0.235950768,3.5810082,-0.235950768,0.000412462628,0.140029669,0.0770700052,-2.616714,-0.0514822304,0.0191812366,0.333709985 +-0.21459797,3.58107424,0.21459797,2.03775016e-05,0.129988939,0.142501801,-3.07034302,1.0274049,0.0191057138,0.303590477 +-0.425815642,3.581321,0.425815642,0.000224015792,0.200815916,0.325999588,0.0207323655,1.4361434,0.0188857932,0.602391422 +-0.269228548,3.58138561,0.269228548,4.62939306e-06,0.138550818,0.165957496,-3.47210717,0.541830778,0.0191491954,0.380799025 +0.794509649,3.5816505,-0.79450959,0.00171170675,0.17298454,0.0842448771,0.389332861,-0.207928628,0.0192199852,1.1236093 +-0.220896393,3.5817492,0.220896393,2.32491457e-05,0.131919563,0.145073712,-3.16191483,0.954002559,0.019109292,0.312405646 +-0.226244673,3.58175516,0.226244673,4.98257832e-05,0.133619562,0.147436172,-3.22358823,0.888561964,0.0191150401,0.32000351 +-0.205324173,3.581779,0.205324173,1.79450708e-05,0.13028875,0.138874173,-2.97448635,1.05656505,0.0191039983,0.29037568 +0.284622252,3.58178401,-0.284622252,0.000627477129,0.15098764,0.0885354802,-2.7700119,-0.216901422,0.0191338677,0.402883649 +-0.143734634,3.58186722,0.143734634,4.97461624e-05,0.110097781,0.109107092,-2.06878781,1.16032243,0.0191687457,0.203345537 +-0.446249783,3.58187962,0.446249783,0.000238966633,0.205103844,0.318692207,0.295933753,1.01682544,0.0189310182,0.631192744 +-0.506593406,3.5818882,0.506593406,0.000323048298,0.199521378,0.243528321,0.00158951711,-0.0268115737,0.0190554429,0.71643436 +-0.285969049,3.58195138,0.285969049,3.16010992e-05,0.14514029,0.179340497,-3.51507521,0.405262858,0.0191521011,0.404446036 +-0.206498042,3.58216047,0.206498057,1.88434024e-05,0.130815312,0.13937445,-2.99249864,1.03783047,0.019104613,0.292038709 +-0.284759402,3.58226204,0.284759402,5.73049147e-05,0.144952267,0.177410856,-3.52777791,0.384526044,0.0191508513,0.402721524 +-0.205939114,3.58231258,0.205939099,2.53494773e-06,0.130940318,0.139287978,-2.98721218,1.03851819,0.0191042535,0.291249931 +0.228516176,3.58241606,-0.228516176,1.55998368e-05,0.139661327,0.0764083415,-2.58022356,-0.0327314399,0.0191874299,0.323339224 +-0.0989181772,3.58254647,0.0989181772,5.50012774e-05,0.09673132,0.104703046,-1.20171428,0.843125463,0.0191918463,0.139918566 +0.181623787,3.58260155,-0.181623772,0.000218477784,0.143668756,0.0773854032,-2.3934505,0.0601926893,0.0192094352,0.257263511 +-0.110410124,3.58266759,0.110410124,9.39885067e-05,0.0930573121,0.0958408937,-1.56951666,0.94799453,0.0191886015,0.156329721 +-0.286886543,3.58279014,0.286886513,1.1254856e-05,0.146410421,0.179726422,-3.53705525,0.35538578,0.019148631,0.405740529 +-0.286066115,3.58294106,0.286066115,2.11544761e-06,0.146015972,0.178709373,-3.54147887,0.356450319,0.0191478692,0.404584765 +0.16207996,3.58314753,-0.16207996,0.00011969234,0.144837037,0.0782144964,-2.30943489,0.0754530132,0.019215947,0.229433 +-0.268115729,3.58333516,0.268115759,4.4453358e-05,0.139264494,0.165349066,-3.48668098,0.510108292,0.0191438403,0.379193783 +-0.206490338,3.58350921,0.206490338,1.54333229e-05,0.13173613,0.13955681,-3.00308943,1.01016629,0.0191036407,0.292025685 +-0.949822724,3.5835669,0.949822724,0.00219359668,0.159980834,0.0766988546,0.583526313,-0.198567569,0.0193031989,1.34376907 +-0.0891658366,3.58366537,0.0891658366,3.54520762e-06,0.102210321,0.116260238,-0.879725754,0.67807585,0.0191910025,0.126115561 +0.083227247,3.58375931,-0.083227247,7.71837513e-05,0.162166372,0.124541759,-1.65366113,-0.0428492315,0.0192725323,0.117912531 +-1.08386374,3.58377433,1.08386374,0.000693041482,0.142557919,0.066306442,0.217371419,-0.125491485,0.0193015337,1.53295028 +-0.17110607,3.58380055,0.17110607,6.59806828e-05,0.124133214,0.124533996,-2.50455856,1.14713681,0.0191350225,0.242032886 +-0.140046403,3.58385015,0.140046403,7.30438187e-05,0.113039874,0.109994203,-2.06935477,1.08865607,0.0191723537,0.198140904 +-0.0884847865,3.58396459,0.0884847865,5.72816771e-06,0.104065277,0.118346512,-0.864800572,0.658840358,0.0191911906,0.12514253 +0.226937994,3.58397126,-0.226937994,0.000209735517,0.139569879,0.076211974,-2.56779718,-0.0335465856,0.0191884208,0.321028918 +-0.210728019,3.58406758,0.210728019,3.49792826e-05,0.133097708,0.14149873,-3.05962729,0.953040361,0.0191077907,0.298086852 +-0.271059394,3.58416581,0.271059424,3.21573971e-05,0.140456647,0.166510329,-3.51653433,0.456671149,0.0191423427,0.383345425 +-0.0894010514,3.58422685,0.089401044,2.87027597e-05,0.103314266,0.116369799,-0.920108616,0.673058033,0.0191907249,0.126438051 +0.107087135,3.58426237,-0.107087135,0.000100205529,0.144784436,0.0900524184,-2.0502944,0.00711950008,0.0192489289,0.151563108 +-0.185110569,3.58432198,0.185110569,3.99974197e-05,0.129337043,0.131713018,-2.71954918,1.0957303,0.0191192925,0.261798739 +-0.285657287,3.584378,0.285657287,6.26977999e-05,0.146559268,0.177843124,-3.56196499,0.321494669,0.0191430859,0.40399605 +-0.233144283,3.58451676,0.233144283,3.49388283e-05,0.135592014,0.150399163,-3.31451511,0.786215901,0.0191121902,0.32973963 +0.122355752,3.58467865,-0.122355744,0.000116312178,0.145033762,0.0838186294,-2.150172,0.0463887677,0.0192345716,0.173061848 +-0.287654757,3.58476543,0.287654757,7.01527897e-05,0.147577658,0.179513887,-3.56805825,0.298169971,0.0191413164,0.406814933 +0.189012557,3.58476758,-0.189012542,0.000252934173,0.142819107,0.0768170208,-2.4123826,0.0497276857,0.0192078967,0.267573893 +-0.360523671,3.58478308,0.360523701,0.000219520152,0.197838828,0.304187834,-2.42812085,0.924746513,0.0189852864,0.510007024 +-0.192338973,3.58479929,0.192338973,3.33714852e-05,0.131084323,0.134440288,-2.82323694,1.04832184,0.019112803,0.272011101 +0.319021553,3.58482552,-0.319021553,0.000461764197,0.177769631,0.111794107,-2.64254212,-0.312333822,0.0190862697,0.45151329 +0.119805917,3.58484936,-0.11980591,6.34198514e-05,0.145091951,0.08515618,-2.13251519,0.0377720036,0.0192369111,0.169444486 +-0.595447958,3.58485866,0.595447958,0.000551996811,0.178569168,0.112568431,0.198132798,-0.24513483,0.0192036964,0.842182398 +0.933609664,3.58487701,-0.933609664,0.00199814956,0.168457702,0.0820605457,0.522283077,-0.19288525,0.0192542505,1.3214395 +-0.194003507,3.58502817,0.194003507,2.59599201e-05,0.131909817,0.135458961,-2.85053992,1.03228223,0.0191119108,0.274365276 +0.255817682,3.58504748,-0.255817682,0.000342474814,0.140659928,0.0785576627,-2.687361,-0.136591718,0.0191632509,0.361917555 +-1.12733793,3.58541751,1.12733793,0.000282829104,0.352127314,0.172335878,-0.0377241336,0.0233967025,0.0193033181,1.59445 +1.13935828,3.58541799,-1.13935828,0.000286609255,0.417515963,0.218050838,-0.0358594209,0.0732828677,0.0193102509,1.61137009 +-0.193100378,3.58544612,0.193100363,6.08202436e-06,0.132162318,0.135132119,-2.84239268,1.02588618,0.0191126633,0.273092151 +-0.103422739,3.58547711,0.103422746,6.03548724e-05,0.0971831977,0.0996784419,-1.49787343,0.833887339,0.0191882309,0.146350175 +0.453475058,3.58554268,-0.453475058,0.00172400742,0.218516916,0.15593721,-0.521527767,-0.189859807,0.0189599749,0.64172405 +-0.259291738,3.58575344,0.259291738,6.28605194e-05,0.139186874,0.162730217,-3.46210742,0.569628477,0.0191267729,0.366758823 +0.230937541,3.58579445,-0.230937541,0.000101949488,0.13949202,0.0763408765,-2.57425761,-0.0520984307,0.0191853568,0.326664895 +0.38298142,3.58582425,-0.382981449,0.000320971652,0.22265248,0.154883981,-1.71254635,-0.286978513,0.0189976562,0.541643083 +-0.193296745,3.58585358,0.19329676,1.53746066e-06,0.132653058,0.135382354,-2.84822059,1.01516414,0.0191126373,0.273371011 +-0.193007678,3.58587623,0.193007663,1.51535e-07,0.132594958,0.13530618,-2.8440063,1.01705205,0.0191127528,0.272968024 +0.333453089,3.5859375,-0.333453089,0.000568042102,0.191734329,0.124318577,-2.49838924,-0.335123897,0.0190650988,0.472333908 +-0.192650065,3.58594251,0.19265005,1.50434553e-05,0.132647559,0.135201231,-2.840657,1.01678383,0.0191129372,0.272455961 +0.123407029,3.58595204,-0.123407036,7.842786e-05,0.145061269,0.0835265666,-2.16017246,0.0452338532,0.0192328524,0.174551398 +1.14655995,3.58603048,-1.14655995,0.000152105611,0.430700302,0.23193872,-0.0262476653,0.142019644,0.0193079934,1.62159228 +-0.570093274,3.58603096,0.570093215,0.000650220725,0.181211323,0.134123445,0.139856622,-0.211033911,0.0191766322,0.806452394 +-0.255019844,3.58603764,0.255019844,5.55988372e-05,0.139519036,0.161047965,-3.45860815,0.577542067,0.0191243067,0.360700011 +-0.320966125,3.58604288,0.320966125,0.000126331535,0.167008027,0.221552581,-3.3827014,0.266411662,0.0191037022,0.453916311 +-0.204178363,3.58604956,0.204178363,1.6388738e-05,0.13438049,0.139925569,-3.00057888,0.961069465,0.0191045981,0.288752645 +0.122617111,3.58605528,-0.122617103,4.60458705e-06,0.145098969,0.0837746263,-2.1571486,0.0434358045,0.0192331504,0.173449367 +-0.0834703147,3.58627009,0.0834703147,1.93499109e-05,0.117086887,0.133419231,-0.757506669,0.519584,0.0191913918,0.118113115 +-1.13705349,3.58630753,1.13705349,0.00030689573,0.378599524,0.195855692,-0.00593271106,0.114565998,0.0193051361,1.60814023 +-0.100497283,3.5863266,0.100497276,4.24921018e-05,0.0977307558,0.100559458,-1.45593107,0.79577446,0.019187687,0.142227903 +-0.214333922,3.58632994,0.214333922,4.06474246e-05,0.135614872,0.143089607,-3.13440943,0.865327001,0.0191059466,0.303183734 +-0.319920361,3.58638978,0.319920361,9.10390081e-05,0.166940019,0.220277116,-3.40736675,0.239590734,0.019104559,0.452439815 +-0.193077162,3.58644366,0.193077177,2.03985564e-05,0.13303107,0.135447621,-2.84960246,1.0061661,0.0191125106,0.273058444 +-0.320268095,3.58646083,0.320268124,2.28752961e-05,0.16718559,0.220693171,-3.40532064,0.238424793,0.0191036612,0.452933669 +-0.388642758,3.58649731,0.388642758,0.000260405272,0.201766133,0.330765486,-1.31270623,1.44454956,0.0188728608,0.549646974 +0.122015901,3.58666801,-0.122015901,4.76874411e-05,0.145009011,0.0841549337,-2.15703654,0.0404363684,0.01923302,0.172592252 +-0.308050722,3.58669519,0.308050692,9.91567067e-05,0.15909344,0.20282951,-3.51734805,0.212509573,0.0191172548,0.435669303 +0.168331206,3.5868144,-0.168331206,0.000168550076,0.144211471,0.0774562731,-2.33360004,0.0660218,0.0192135442,0.238390476 +-0.320127875,3.58683038,0.320127845,6.13179873e-05,0.167400539,0.220610842,-3.4131844,0.224236369,0.0191029534,0.452735752 +-0.320399076,3.58691907,0.320399076,0.000148152089,0.167619452,0.220954627,-3.41219807,0.222085401,0.0191022344,0.45311746 +-0.159960568,3.58697271,0.159960568,0.000155176516,0.126036063,0.122609511,-2.38252854,1.08024716,0.0191497914,0.226275563 +-0.374735117,3.58698988,0.374735117,0.00014353836,0.206770688,0.33228153,-1.88768578,1.17305946,0.0189103186,0.530100882 +-0.23128058,3.58709812,0.23128058,3.01568689e-05,0.138087973,0.149453655,-3.32951498,0.715718091,0.0191088226,0.327101946 +0.636344194,3.58709979,-0.636344194,0.00044303562,0.173396185,0.0940094367,0.254650682,-0.314112306,0.0191388503,0.899999976 +0.0987273604,3.58710551,-0.0987273678,5.43681235e-05,0.146081865,0.0969282016,-2.00332832,-0.0269543938,0.0192535538,0.139674246 +0.134890586,3.58719778,-0.134890586,0.000194359571,0.145039007,0.0809134319,-2.20988297,0.0587644838,0.0192248356,0.191201538 +-0.275884777,3.5872314,0.275884777,6.10565548e-05,0.143189818,0.170030937,-3.56146479,0.361055315,0.0191358514,0.390195161 +-0.235499352,3.58723497,0.235499352,3.82411745e-05,0.13836959,0.150986269,-3.37293553,0.674158454,0.0191105213,0.333078116 +-0.22312361,3.58726549,0.22312361,4.30288419e-05,0.137696385,0.147041112,-3.24612379,0.785866499,0.0191051271,0.31558007 +-0.0976338536,3.58727479,0.0976338536,3.40604529e-05,0.100785866,0.103966847,-1.40112555,0.744275808,0.0191874448,0.138133153 +0.150495753,3.58734965,-0.150495753,6.40101789e-05,0.144817784,0.07876046,-2.26302528,0.0709180087,0.0192198735,0.212841108 +0.0772247016,3.58735895,-0.0772247016,6.66398264e-05,0.208276242,0.180240467,-1.40982461,-0.0270568673,0.0192703791,0.109409191 +-0.245137826,3.5875237,0.245137841,5.40624278e-05,0.13935262,0.155093774,-3.44226623,0.590667129,0.0191146377,0.34670794 +0.521771789,3.58779573,-0.521771848,0.000817896682,0.194246784,0.125191614,0.0391498767,-0.239667222,0.018992234,0.73794955 +0.634527445,3.58789778,-0.634527385,0.000749602506,0.173603103,0.0942798778,0.253395915,-0.31364429,0.019136237,0.897451043 +-1.20505273,3.58797312,1.20505273,0.000362939725,0.152108818,0.0729120821,0.0206407011,0.0586999431,0.0193204302,1.70421195 +-0.195986733,3.58798671,0.195986718,2.31245067e-05,0.135141283,0.137007117,-2.90683603,0.953263044,0.0191103425,0.277167797 +-0.131489679,3.58799601,0.131489679,9.94745642e-05,0.116444074,0.10920848,-2.05583143,0.974868298,0.019172797,0.186065108 +-0.250462413,3.58800268,0.250462413,5.12080587e-05,0.140157595,0.157826081,-3.47245908,0.551052213,0.0191137958,0.354258716 +-0.19203499,3.58813167,0.19203499,2.50547637e-05,0.134319708,0.135608166,-2.85132813,0.979035795,0.0191129781,0.271580547 +-0.414427102,3.58813572,0.414427102,0.000303437409,0.210151911,0.3483136,-0.311661631,1.54506111,0.0188402068,0.586232066 +0.100150228,3.5881784,-0.100150228,2.45306001e-05,0.146162599,0.0962946117,-2.02649093,-0.0248876549,0.0192507543,0.141684726 +-0.233713299,3.58822012,0.233713299,2.13216445e-05,0.139069021,0.150290802,-3.36680508,0.664747894,0.01910818,0.330554813 +-0.864736199,3.58835769,0.864736199,0.00319487485,0.164501041,0.0787638724,0.501665473,-0.275325179,0.0192937609,1.22407818 +-0.482688487,3.58843255,0.482688516,0.000242860755,0.225981265,0.327053726,0.232341483,0.380029291,0.0189852081,0.682920277 +0.123975322,3.58847117,-0.123975322,4.97184956e-05,0.144768119,0.0832445472,-2.16571212,0.04264009,0.0192317087,0.175341427 +1.18729734,3.58847189,-1.18729734,0.00063975103,0.160613239,0.0775684118,0.110478148,0.0884261578,0.019291807,1.6792444 +-0.144844636,3.5886097,0.144844621,0.000207096135,0.123687334,0.117206119,-2.20922709,1.02108884,0.0191647783,0.204923958 +-0.307106704,3.58863068,0.307106674,8.29106721e-05,0.15996699,0.201632082,-3.55425525,0.144888833,0.0191124007,0.434332907 +-0.165191621,3.58866072,0.165191621,5.0716757e-05,0.130882069,0.126087874,-2.49477339,1.02972877,0.0191426165,0.233647212 +-0.0784023777,3.58866405,0.0784023702,5.86747137e-06,0.162207991,0.180567265,-0.617992818,0.352581441,0.0191941075,0.110884145 +-0.0923339576,3.58867216,0.0923339576,3.890273e-05,0.107557431,0.111064874,-1.29394197,0.650608659,0.0191867296,0.130646005 +-0.183787897,3.58870029,0.183787897,4.29737192e-05,0.13493529,0.133444995,-2.7521081,0.987091899,0.0191221088,0.259951353 +-0.308537334,3.58873701,0.308537304,9.894916e-05,0.160905421,0.203480884,-3.54851317,0.140670076,0.0191103425,0.436369568 +0.374605328,3.58877826,-0.374605328,0.00051829475,0.220641479,0.151888698,-1.8695066,-0.321890473,0.0190048274,0.52984494 +0.310204506,3.58880091,-0.310204506,0.000153499874,0.168558493,0.103894696,-2.68889618,-0.323177397,0.0190977231,0.439432085 +-0.242131293,3.58888149,0.242131293,4.42222918e-05,0.139367282,0.153039426,-3.43429947,0.58845365,0.0191094615,0.342467219 +0.299877197,3.58892345,-0.299877197,0.000467147969,0.160817951,0.0968613029,-2.70820951,-0.294656456,0.0191108808,0.424337685 +-0.0777287632,3.58896589,0.0777287558,2.35348239e-07,0.168313295,0.186738312,-0.600030422,0.330502152,0.0191944279,0.109938964 +-0.0772043169,3.58920717,0.0772043169,5.73798252e-06,0.184897184,0.204376966,-0.582308888,0.313208729,0.0191939455,0.109191723 +-0.182012603,3.58934402,0.182012603,5.99272971e-05,0.135364711,0.133119136,-2.7342968,0.981892765,0.0191236008,0.257432342 +0.0981920213,3.58941317,-0.0981920213,6.15934041e-05,0.146751329,0.0976395383,-2.01311016,-0.0324727707,0.0192519017,0.138921097 +-0.218613446,3.58956647,0.218613446,4.2624044e-05,0.138634399,0.144763112,-3.21135664,0.760837793,0.0191037785,0.309208512 +-0.0781645104,3.58960199,0.0781645104,1.74678098e-05,0.166973129,0.182521984,-0.66255337,0.332692713,0.0191935841,0.110546105 +-0.347440124,3.58991194,0.347440124,0.000202993571,0.192114085,0.27553618,-3.01065207,0.374234676,0.0190277956,0.491414815 +0.152204603,3.5899334,-0.152204603,3.42980129e-05,0.144707277,0.0784096867,-2.27278376,0.0639260337,0.0192178302,0.215287611 +-0.126661479,3.58998132,0.126661479,0.000112179318,0.117766984,0.108689934,-2.03621674,0.910168052,0.0191739835,0.179280683 +-0.17027992,3.5899868,0.17027992,2.36407705e-05,0.133472264,0.129269212,-2.57443142,1.00497818,0.0191367622,0.240933612 +0.0722973198,3.59002399,-0.0722973198,3.12311313e-05,0.352694362,0.377935022,-0.998893559,-0.0409751125,0.0192665122,0.102386542 +0.153198153,3.5901854,-0.153198153,7.97035173e-05,0.144654498,0.0782973841,-2.27620482,0.0626284331,0.0192173775,0.216669187 +0.741351724,3.59021091,-0.741351724,0.00185277883,0.172390848,0.0843313485,0.281110108,-0.202683225,0.01919467,1.04910553 +-0.173904121,3.59021568,0.173904106,7.8434954e-05,0.134176239,0.13002421,-2.6289587,0.988319635,0.0191334765,0.246000469 +-0.0878569633,3.59030533,0.0878569633,2.01280945e-05,0.120245859,0.123213358,-1.19606841,0.543336153,0.0191871244,0.124269754 +0.151724413,3.59042954,-0.151724428,1.64177698e-06,0.144672096,0.0783847347,-2.27074718,0.0628506616,0.0192178264,0.214614227 +0.0990932658,3.59043813,-0.0990932733,3.27640555e-05,0.146440923,0.096807979,-2.03075647,-0.0315552689,0.019249592,0.140207976 +0.150919884,3.59046268,-0.15091987,0.00010215072,0.1446518,0.0784552172,-2.26773548,0.0626737699,0.0192182232,0.213461071 +-0.272360295,3.59052181,0.272360295,5.55971747e-05,0.144494921,0.167364225,-3.60055351,0.304956794,0.019120533,0.385237455 +0.100764103,3.59062839,-0.100764111,8.20107598e-05,0.146261767,0.0958377272,-2.04250431,-0.0271679536,0.0192479566,0.142536536 +0.207862765,3.59075689,-0.207862765,0.000262941205,0.140663356,0.0757119656,-2.46649742,-0.0063196132,0.0191983841,0.294194758 +0.66209507,3.59086585,-0.66209507,0.00207420113,0.174234286,0.0884727165,0.122812912,-0.166399926,0.0191426706,0.936603427 +-0.0861476585,3.59089518,0.0861476585,1.73472363e-05,0.125487074,0.128257588,-1.16037798,0.502154052,0.0191870686,0.121874467 +-0.201275721,3.59093451,0.201275706,3.22619599e-05,0.138460308,0.139919683,-3.00412893,0.867007196,0.019106051,0.284658164 +-0.636017561,3.59094191,0.636017621,0.000645172957,0.175466806,0.0983574018,0.269580007,-0.29666099,0.0192437395,0.900000095 +-0.209846303,3.59096575,0.209846318,5.70757329e-05,0.137612492,0.141653597,-3.10343456,0.820622563,0.0191019177,0.296815157 +0.152178332,3.59097528,-0.152178332,2.80083786e-05,0.144630224,0.0783127621,-2.27184105,0.0611099117,0.0192174762,0.215247661 +-0.161444411,3.59123349,0.161444411,3.818404e-05,0.132996976,0.125488564,-2.48253226,0.984303057,0.0191436242,0.228395551 +-0.202240109,3.59135246,0.202240109,2.5915866e-05,0.139364004,0.140451387,-3.0260129,0.845634937,0.0191053022,0.286019683 +-0.447132349,3.59136677,0.447132349,0.000254041777,0.23076579,0.375903636,0.327920884,1.21152914,0.0188959762,0.63240099 +-0.243794501,3.59137082,0.243794501,4.03814411e-05,0.141444057,0.153524801,-3.47500587,0.507008791,0.0191058032,0.344832093 +0.636350632,3.59139514,-0.636350632,0.000600339787,0.173227578,0.0938502923,0.257619947,-0.321912825,0.0191370901,0.899999976 +-0.341915816,3.59144044,0.341915816,0.000108787957,0.189266503,0.262355894,-3.1911366,0.195106626,0.0190378334,0.483573854 +1.11540127,3.59145999,-1.11540115,0.00037739001,0.399163663,0.203802392,0.0496490039,-0.134567052,0.0193091147,1.5776664 +-0.332468629,3.59153175,0.332468629,0.000171115375,0.178204119,0.240866855,-3.3311553,0.141957909,0.0190629624,0.470303416 +-0.0723547786,3.59154201,0.0723547786,1.26800869e-05,0.325946391,0.349204242,-0.429177105,0.154538795,0.0191888586,0.102387257 +0.0878803879,3.59167886,-0.0878803879,7.7635952e-05,0.152233809,0.112631105,-1.86456203,-0.0612319112,0.0192601662,0.12433219 +-0.274778485,3.59172153,0.274778515,2.30460391e-05,0.145921752,0.169037491,-3.6262095,0.254248857,0.0191181358,0.388685793 +-0.0839933679,3.59177113,0.0839933679,1.87642181e-05,0.138387382,0.139740959,-1.1061666,0.439107001,0.0191877522,0.118800595 +0.151403174,3.59178495,-0.151403159,7.82895586e-05,0.144557282,0.0783063173,-2.26881123,0.0602836087,0.0192177035,0.214131877 +-0.263515711,3.59185457,0.263515711,0.000107353335,0.14315781,0.164126456,-3.55613351,0.383622617,0.019111516,0.372800082 +-0.435395151,3.59189153,0.435395151,0.000256932748,0.227216125,0.36628139,-0.0693550855,1.10074329,0.0188648161,0.615801811 +-0.201377138,3.59200597,0.201377138,1.10788797e-05,0.139960632,0.140293643,-3.02098656,0.834411025,0.0191062223,0.284807652 +-0.235178947,3.59211683,0.235178947,3.62955361e-05,0.140879631,0.149820417,-3.41003084,0.571274996,0.0191029888,0.3326087 +-0.845897079,3.59213209,0.845897138,0.00202217093,0.165695682,0.0793227404,0.47696209,-0.293079674,0.0192897413,1.19846761 +0.0820486322,3.5922823,-0.0820486322,5.48213866e-05,0.16904512,0.137074381,-1.67691755,-0.0530174375,0.0192649681,0.116168052 +-0.220223546,3.59237576,0.220223546,3.34172182e-05,0.140776157,0.145379677,-3.25793052,0.686649501,0.0191016272,0.311495185 +-0.552056968,3.59238076,0.552056968,0.000343049964,0.185127035,0.178406551,0.11063996,-0.161619753,0.0191381872,0.78080225 +-0.36849916,3.59240866,0.36849916,0.000185996047,0.220680147,0.339517921,-2.43422985,0.656616569,0.0189167541,0.521288037 +-0.253456414,3.59253216,0.253456414,5.95272722e-05,0.143495232,0.158997029,-3.53912377,0.417118788,0.0191043932,0.358534575 +-0.158377931,3.59255838,0.158377931,6.26057081e-05,0.133953229,0.12479651,-2.45852757,0.964239955,0.0191451851,0.224023193 +-0.200382158,3.59256291,0.200382143,4.57683454e-05,0.140383139,0.139962494,-3.01499271,0.826179683,0.019106945,0.283396095 +-0.295636684,3.59271359,0.295636684,0.000169134859,0.154368326,0.185629651,-3.66657281,0.0865978226,0.0191081092,0.418179691 +-0.212751031,3.59271812,0.212751016,3.85633939e-05,0.139591888,0.142752111,-3.16309047,0.751413703,0.019100491,0.300921202 +0.0768975168,3.59276962,-0.0768975168,4.74951812e-05,0.218372285,0.197544947,-1.41934037,-0.0291427337,0.0192653649,0.108894229 +0.398806989,3.59291553,-0.398806989,0.000421021716,0.228037938,0.161680087,-1.41003072,-0.312739015,0.0189764481,0.564674437 +-0.345500261,3.59301281,0.34550029,2.08669899e-05,0.195244223,0.272651821,-3.16645145,0.16329293,0.0190203451,0.488714933 +-1.16188145,3.59310889,1.16188157,0.000337158621,0.458610356,0.268474281,0.113713138,0.304369986,0.0193088464,1.64332151 +0.0723189116,3.59313583,-0.0723189116,2.22179224e-05,0.359241605,0.397491574,-1.00213993,-0.0403020345,0.019263234,0.102386534 +-0.0873027146,3.59316182,0.0873027146,3.29551112e-05,0.122207269,0.122160994,-1.28785443,0.499739647,0.0191842522,0.12348073 +-0.0804832578,3.59323692,0.0804832578,2.84870275e-05,0.157765597,0.155991614,-1.02114892,0.33774966,0.0191880632,0.113879442 +0.121909514,3.593256,-0.121909514,3.97002732e-05,0.144569248,0.0837472752,-2.17703485,0.0321567208,0.0192297306,0.17240864 +0.0875529051,3.59329128,-0.0875529051,3.67829271e-05,0.15251945,0.113189392,-1.87247586,-0.0630274639,0.0192585215,0.123865329 +-0.277007669,3.59330606,0.277007669,8.88442373e-05,0.147069901,0.169422179,-3.65343618,0.196602628,0.0191139877,0.391798496 +-0.998609304,3.59339952,0.998609245,0.00137323665,0.156888902,0.0750731826,0.538024485,-0.153728694,0.0192990042,1.41279984 +-0.11430306,3.59341455,0.11430306,7.39737079e-05,0.116980359,0.10613779,-1.93403852,0.801479459,0.0191764478,0.161654189 +-0.462673366,3.59341788,0.462673366,0.000324942463,0.237502933,0.386541784,0.520890951,1.07165802,0.0189136881,0.654566884 +-0.259178966,3.59357643,0.259178966,4.32144734e-05,0.143909678,0.161335632,-3.56204724,0.370105624,0.0191034619,0.366662413 +-0.114860274,3.59358716,0.114860274,8.06572061e-05,0.117579453,0.106278859,-1.94712377,0.801014185,0.01917601,0.162440136 +0.375933766,3.59361887,-0.375933766,0.000182979638,0.220726833,0.151647776,-1.8411895,-0.355706692,0.0190012343,0.531773448 +-0.114408903,3.59367752,0.114408903,3.51030503e-05,0.117460445,0.106134154,-1.94312334,0.797846615,0.0191760045,0.161809295 +-0.22755219,3.5936842,0.227552205,3.63466243e-05,0.141288579,0.147615731,-3.34108853,0.620665312,0.0190981012,0.321816564 +-0.25003618,3.59368634,0.25003621,3.91383437e-05,0.14340198,0.156475767,-3.52823877,0.419171214,0.0191008151,0.353696287 +-0.11426539,3.59368753,0.11426539,2.36060787e-05,0.117392048,0.106107011,-1.94116366,0.796975613,0.0191760473,0.161604524 +-0.113742977,3.59371138,0.11374297,4.04781495e-05,0.117110863,0.105990633,-1.93289804,0.792960107,0.0191761833,0.160858974 +0.276862383,3.59387016,-0.276862383,0.000666560838,0.146383703,0.0838822424,-2.70452714,-0.241817594,0.0191396046,0.391864061 +0.167590111,3.59389901,-0.167590111,0.000132652407,0.143637016,0.0771812573,-2.31899166,0.0497743078,0.019213574,0.237160504 +1.15722513,3.59399033,-1.15722525,0.000199074828,0.467160195,0.280586511,0.0855180025,0.182050332,0.0192959905,1.63660812 +0.963168263,3.59403205,-0.963168263,0.000795795408,0.165242344,0.0802360624,0.511305571,-0.183234796,0.0192537718,1.3621515 +-1.07845807,3.59410858,1.07845819,0.00097087794,0.147491783,0.0697120503,0.25363037,-0.136685014,0.019293949,1.52530122 +-0.202480361,3.59412766,0.202480361,5.70384545e-05,0.140960261,0.140145332,-3.05229068,0.787947237,0.0191039927,0.286356211 +-0.185080469,3.59416342,0.185080469,4.78130496e-05,0.139045149,0.134709835,-2.8144002,0.886638761,0.0191190299,0.261752963 +-0.240081072,3.59418392,0.240081072,4.41295706e-05,0.142055348,0.15117088,-3.4622519,0.489590287,0.0191009101,0.339546144 +0.372621953,3.5943439,-0.372621983,0.000629882561,0.218532115,0.149242327,-1.89746404,-0.366184115,0.0190047845,0.527062714 +0.152437598,3.59448981,-0.152437598,4.70728737e-05,0.144283816,0.0780891627,-2.26729918,0.0550438315,0.019217344,0.215586439 +-0.103634812,3.5945344,0.103634812,6.53379611e-05,0.112090148,0.103757113,-1.78777146,0.712958336,0.0191766266,0.146671936 +-0.623521686,3.5946908,0.623521686,0.000919886574,0.17673704,0.101433784,0.255706251,-0.290189028,0.0192248933,0.882265866 +-0.22846581,3.59470224,0.228465796,1.2547237e-05,0.141995043,0.147823915,-3.36003137,0.589079678,0.019097019,0.323113769 +-0.217720687,3.59494376,0.217720687,1.89660823e-05,0.139946878,0.144148827,-3.2124989,0.699242234,0.0190962553,0.307995796 +0.111937612,3.59496117,-0.111937612,0.000171271138,0.144069552,0.0879317746,-2.14410162,0.00256770849,0.0192333367,0.158630937 +-0.16978851,3.59507704,0.16978851,5.10494829e-05,0.137648284,0.130019635,-2.61666751,0.922111034,0.019133497,0.24015829 +0.0968072712,3.59540176,-0.0968072712,7.37961163e-05,0.146561325,0.0998061597,-2.04511952,-0.0422860533,0.019245578,0.136916071 +-0.0723345429,3.59545612,0.0723345429,1.23658929e-05,0.360108197,0.388264388,-0.552895546,0.126250193,0.0191834755,0.102387324 +-0.0962429345,3.59548998,0.0962429345,3.42322674e-05,0.110918492,0.104982518,-1.64985943,0.620062709,0.0191781316,0.136109963 +-0.0764866099,3.59549499,0.0764866024,1.52116863e-05,0.20280233,0.196131721,-0.900144339,0.213267505,0.0191855393,0.108174324 +-0.0965387151,3.59560108,0.0965387151,2.71629287e-05,0.1110413,0.104768977,-1.66118336,0.621890187,0.0191779099,0.136527479 +0.178378701,3.59562778,-0.178378701,8.98144499e-05,0.143191248,0.076618433,-2.35360026,0.0307749677,0.0192092881,0.252442122 +-0.0963136032,3.59564543,0.0963136032,1.41181117e-05,0.111016855,0.104812019,-1.65756571,0.618979573,0.0191778876,0.136211798 +-0.0961991549,3.59567308,0.0961991549,2.7202781e-05,0.111084804,0.104892783,-1.65532625,0.616966009,0.0191778913,0.136048645 +-0.226769939,3.59587717,0.226769954,3.93493392e-05,0.142594486,0.146924049,-3.35074639,0.575760126,0.0190964472,0.320714682 +0.182830468,3.59588599,-0.182830468,8.65814436e-05,0.142743021,0.0763528869,-2.36736822,0.0270168241,0.0192084219,0.258676112 +-0.213884443,3.59591913,0.213884443,4.67502214e-05,0.141899973,0.143006667,-3.20696592,0.673634112,0.0190979578,0.302534431 +-0.0756044239,3.59597754,0.0756044239,7.79532093e-06,0.212950021,0.204995304,-0.874019682,0.186370566,0.0191849191,0.106938437 +-0.229924947,3.59603715,0.229924947,4.0073548e-05,0.142626017,0.147746682,-3.38463712,0.547117591,0.0190955568,0.325169444 +-1.11092496,3.59605789,1.11092496,0.00034744374,0.356877118,0.18102473,0.0835000277,-0.11015965,0.0192923304,1.57112873 +-0.227935031,3.59612679,0.227935046,4.99844318e-05,0.142702937,0.147227496,-3.36543679,0.562377512,0.0190957393,0.322367072 +0.374913484,3.59635735,-0.374913484,6.11833093e-05,0.219542682,0.150145918,-1.85740268,-0.37839812,0.0190011747,0.530335069 +0.0898281038,3.59651804,-0.0898281038,4.69664374e-05,0.150339991,0.109827936,-1.94076514,-0.0613142103,0.0192517135,0.127045304 +-0.075595215,3.59660196,0.075595215,9.47607714e-06,0.21346128,0.20545958,-0.894203126,0.183711335,0.019184079,0.106928222 +0.201047167,3.59671736,-0.201047167,0.000229448851,0.140857995,0.075588882,-2.42695093,-0.0139339939,0.0192006193,0.284568667 +-0.0761750117,3.5968771,0.0761750117,1.76579724e-05,0.203473285,0.194771811,-0.942354143,0.196179152,0.0191835891,0.107734732 +-0.33491382,3.59697914,0.33491382,0.000126360828,0.180042967,0.24212873,-3.35816669,0.0423114449,0.0190432314,0.473753959 +-0.191855818,3.59699535,0.191855818,7.47565355e-05,0.142388225,0.137881741,-2.93376446,0.793172598,0.0191127863,0.271434903 +-0.150423586,3.59709358,0.150423586,7.40046671e-05,0.13731505,0.123414874,-2.41403484,0.882086575,0.0191486459,0.212837562 +-0.473931551,3.59711504,0.473931551,0.000401976373,0.247354656,0.400293201,0.493460894,0.874870062,0.0189378504,0.6704247 +-0.0893763378,3.59719968,0.0893763378,4.28141757e-05,0.116355896,0.110792942,-1.52284408,0.49437499,0.0191776417,0.126460329 +0.0813547373,3.5978446,-0.0813547447,4.75438428e-05,0.171327516,0.141012743,-1.71135974,-0.0534991324,0.0192585662,0.11517109 +1.18112504,3.59786725,-1.18112504,0.000360571372,0.219607204,0.116104357,0.164198354,0.187462404,0.0192836057,1.67051566 +0.441540897,3.5979104,-0.441540897,0.00102310244,0.220975637,0.157657623,-0.687981904,-0.278794825,0.018957613,0.625302672 +-0.345564485,3.59793329,0.345564514,7.6804834e-05,0.194191784,0.266077876,-3.26421261,0.0136688724,0.0190043766,0.488751888 +-0.482832938,3.59799814,0.482832938,0.000168089522,0.24801068,0.3926512,0.409912765,0.633105159,0.018956298,0.683234096 +-0.177640423,3.59812689,0.177640438,5.88467265e-05,0.14221777,0.133071333,-2.76483107,0.836563587,0.0191234853,0.251267582 +-0.0861267969,3.59813833,0.0861268044,2.46092713e-05,0.123791754,0.117277466,-1.44836974,0.420814991,0.0191782918,0.121824205 +-0.130706102,3.59837294,0.130706102,0.000221547496,0.130729556,0.115187384,-2.19142675,0.828934669,0.0191629883,0.184954926 +-0.305491358,3.59842396,0.305491388,5.37141932e-05,0.159670159,0.194245189,-3.66082501,-0.0245425925,0.0190836228,0.432031572 +-0.236733437,3.59850812,0.236733437,7.48898674e-05,0.143089175,0.149432838,-3.4511838,0.46031338,0.0190907978,0.334858894 +1.10241055,3.59858346,-1.10241055,0.000411570654,0.395541728,0.210414425,0.169616327,-0.252898633,0.0193009097,1.55921268 +-0.422376513,3.59878016,0.422376513,0.000379681616,0.239805847,0.404661864,-0.290667206,1.42769527,0.0188043714,0.597438216 +-0.0836078376,3.59887695,0.0836078376,2.19818521e-05,0.130199701,0.122822516,-1.39495552,0.36390695,0.0191782117,0.118293814 +0.175923035,3.59888268,-0.175923035,6.54565374e-05,0.142986223,0.0765883476,-2.33952713,0.0262086112,0.01921013,0.248872429 +0.162566036,3.59896231,-0.162566036,9.62791819e-05,0.143039554,0.0772001371,-2.29779291,0.0439561717,0.0192145891,0.230040371 +-0.105158567,3.59905005,0.105158567,7.53877321e-05,0.118524238,0.105240479,-1.88345432,0.686415732,0.0191708189,0.14876236 +-0.209078833,3.59941912,0.209078833,7.77886016e-05,0.142774671,0.14059706,-3.16756225,0.65139538,0.0190986339,0.295712471 +-0.290507883,3.59947824,0.290507853,0.000136895804,0.15275836,0.178305715,-3.70808554,0.0237217136,0.0190925822,0.410874873 +-0.187525839,3.59949875,0.187525824,5.14920612e-05,0.143615961,0.136308014,-2.89774132,0.775734782,0.0191148818,0.26523751 +-0.256677628,3.5995791,0.256677628,4.24066347e-05,0.145666406,0.15735732,-3.60302258,0.261231601,0.0190911964,0.363030374 +-0.220056266,3.59995174,0.220056266,5.30102261e-05,0.143389896,0.144752964,-3.28368545,0.577810287,0.0190919619,0.311320305 +-0.350962341,3.59995389,0.350962341,8.66640112e-05,0.202774763,0.281538576,-3.21135616,-0.0232639983,0.0189804863,0.496350169 +0.179843754,3.6000433,-0.179843754,5.5997898e-05,0.142616525,0.0763691142,-2.34782505,0.0204459224,0.0192093365,0.254480064 +-0.0817462802,3.6000526,0.0817462802,2.19685717e-05,0.140818596,0.131750599,-1.35999858,0.314262867,0.0191772897,0.115633026 +-0.966213048,3.6001842,0.966213107,0.00124413497,0.160010993,0.0767029524,0.557722211,-0.19027786,0.0192918088,1.36663294 +0.377892584,3.6002388,-0.377892554,0.000529055658,0.21933046,0.150017828,-1.80130625,-0.401533157,0.018996682,0.534464955 +-0.542775512,3.60031176,0.542775512,0.000493328087,0.185092285,0.188202128,0.0831653178,-0.159216955,0.0191131644,0.767687976 +-0.245483875,3.60045195,0.24548389,2.98888026e-05,0.143868327,0.151591077,-3.52793646,0.35437867,0.0190887395,0.347173423 +0.410479367,3.60052109,-0.410479367,0.00108560733,0.226361826,0.16054973,-1.20087469,-0.346176982,0.0189703107,0.581151903 +-0.162084013,3.600528,0.162084013,4.03450395e-05,0.142140627,0.128024489,-2.58692503,0.830546737,0.0191355459,0.229278147 +-0.154245824,3.60057759,0.154245824,4.05518695e-05,0.141385078,0.126026943,-2.4902842,0.840565681,0.0191417001,0.218295649 +0.313453048,3.60070825,-0.313453078,0.0004353197,0.168551117,0.103330605,-2.62306213,-0.390861422,0.0190913063,0.443790674 +1.04708266,3.60073495,-1.04708278,0.00121998391,0.158350557,0.0757707804,0.331616223,-0.104292296,0.0192716438,1.48082435 +-0.166815013,3.60074115,0.166814998,6.99331576e-05,0.142868906,0.129975006,-2.6473999,0.824249804,0.0191313121,0.236016944 +0.134032726,3.6008091,-0.134032726,0.000202646639,0.143412143,0.080265224,-2.22334194,0.0395563692,0.0192212742,0.189768389 +-0.183188289,3.60082245,0.183188289,5.1574003e-05,0.144220382,0.13479282,-2.85403872,0.772412777,0.0191177651,0.259083688 +-0.273236692,3.60094261,0.273236692,5.26270014e-05,0.147732794,0.164707392,-3.6790123,0.11853224,0.0190928653,0.386424154 +0.119959608,3.60094905,-0.119959608,6.89009466e-05,0.143984869,0.0841180608,-2.19339156,0.0174493156,0.0192267131,0.169673517 +-0.173458546,3.60098338,0.173458546,5.57754829e-05,0.143853784,0.132144272,-2.73126292,0.805097759,0.0191251896,0.245337531 +-0.285490423,3.60099077,0.285490423,0.000108755099,0.150854379,0.173251599,-3.71583366,0.0399798341,0.0190889165,0.40380007 +0.122046642,3.60103035,-0.122046642,4.44721263e-05,0.144054577,0.0836086944,-2.20189118,0.0205608476,0.0192253049,0.17263709 +-0.260292202,3.6010468,0.260292202,7.54163266e-05,0.146170676,0.158546433,-3.62388325,0.215342343,0.0190890227,0.368154317 +-0.697407246,3.60108566,0.697407246,0.00178957754,0.17970103,0.0888089091,0.164471954,-0.343479753,0.0192515478,0.986706257 +-0.14502576,3.60113764,0.14502576,8.19029374e-05,0.138377219,0.121127605,-2.39526463,0.830189466,0.019146217,0.205240905 +0.121139035,3.60129619,-0.121139027,5.28172222e-06,0.14398478,0.0837429687,-2.19933081,0.0193716828,0.0192256551,0.171370864 +0.212269366,3.60132837,-0.212269366,0.000313075871,0.139586702,0.0752155036,-2.45009565,-0.0489064083,0.0191962756,0.30051434 +0.07640028,3.60133123,-0.07640028,4.0761417e-05,0.228357196,0.213980049,-1.48588395,-0.0283722449,0.0192548055,0.108164661 +0.343665212,3.60137677,-0.343665212,0.000947571418,0.197055638,0.128149778,-2.33720064,-0.436609447,0.0190459434,0.486922801 +-0.635637641,3.60140371,0.635637641,0.000641255116,0.183679879,0.0946208686,0.0204743631,-0.333617866,0.0192336421,0.899567127 +-0.0755183101,3.60147214,0.0755183101,1.01844935e-05,0.216244698,0.207278892,-1.06371713,0.151683241,0.0191763341,0.106800035 +-0.357854277,3.60153651,0.357854277,0.000169723004,0.209210962,0.297719717,-3.03860259,0.062040858,0.0189446416,0.506117702 +-0.0790657252,3.60167718,0.0790657252,2.8655837e-05,0.154519588,0.142827809,-1.31057811,0.242919952,0.0191750657,0.111879557 +-0.151300117,3.60185099,0.151300117,3.19144747e-05,0.141257018,0.125314206,-2.46199298,0.828502297,0.01914257,0.214204282 +-0.178830326,3.60202074,0.178830311,2.96457874e-05,0.144569799,0.134018987,-2.8000946,0.778678775,0.0191202443,0.253003538 +-0.0723661035,3.60210371,0.0723661035,8.78689571e-06,0.41444537,0.454133898,-0.788040519,0.0574302524,0.0191729069,0.102386549 +-0.186537266,3.60215235,0.186537266,6.27323607e-05,0.144744843,0.135395885,-2.90695286,0.738588989,0.0191128328,0.263850421 +-0.247412711,3.60219908,0.247412711,4.31156768e-05,0.144704491,0.15213944,-3.54908657,0.311513513,0.0190852843,0.34990558 +0.240696996,3.60220194,-0.240697011,0.000228669407,0.13877365,0.075993076,-2.55305243,-0.139292344,0.0191747118,0.34042424 +-0.0854681805,3.60249758,0.0854681879,3.12049378e-05,0.1272614,0.115787521,-1.54414725,0.382388622,0.0191724505,0.120888427 +0.121991754,3.60259104,-0.121991754,4.95071436e-05,0.143843755,0.0833946392,-2.20213127,0.0192019232,0.0192249529,0.172547802 +-1.19424689,3.60267687,1.19424689,0.000508452416,0.17659913,0.087341994,0.116179675,0.0933402181,0.019311538,1.68897319 +0.120534636,3.60285711,-0.120534629,5.7187568e-05,0.143706024,0.0837049186,-2.2004385,0.0182399228,0.0192255229,0.170486733 +0.094501175,3.60318518,-0.094501175,6.6157525e-05,0.145977899,0.103281774,-2.0779264,-0.0564651564,0.0192373935,0.133719459 +1.2053318,3.60319209,-1.2053318,0.000416664203,0.148333073,0.0713285133,0.069663763,0.0614440329,0.0192777738,1.70463467 +-0.270798922,3.60329533,0.270798922,6.68495195e-05,0.147948429,0.16307503,-3.68070078,0.106610887,0.0190850068,0.382987529 +0.0930048898,3.60352564,-0.0930048972,3.32521013e-05,0.148308128,0.108654894,-2.04984188,-0.0598014891,0.0192378573,0.131611273 +-0.156905472,3.60357213,0.156905472,6.221683e-05,0.142852291,0.126629785,-2.53876257,0.804531932,0.0191368517,0.22202754 +0.635706425,3.60357261,-0.635706425,0.000596929342,0.174991846,0.0903151706,0.078398414,-0.16990824,0.0191196706,0.899716437 +-0.245341286,3.60361218,0.245341271,3.88134576e-05,0.144694492,0.150929272,-3.53820801,0.312140226,0.0190819092,0.346987754 +-0.545261204,3.60364413,0.545261204,6.55727054e-05,0.184505448,0.186286852,0.113155492,-0.161593959,0.0191174746,0.771287084 +-0.257771879,3.60370302,0.257771879,7.75010121e-05,0.146451369,0.157259837,-3.61630607,0.208479553,0.0190814938,0.36463967 +0.206520364,3.60377121,-0.206520364,0.00013127242,0.139707536,0.0751963258,-2.42321301,-0.043251995,0.0191990957,0.29245621 +-0.197287381,3.60377455,0.197287381,2.96129729e-05,0.144698873,0.137681037,-3.0406878,0.670296192,0.0191014763,0.279006779 +0.072345458,3.60401249,-0.072345458,1.90083138e-05,0.380375236,0.452350527,-1.10856736,-0.0403427184,0.019249266,0.102386549 +-0.0723567158,3.60404778,0.0723567232,7.25969221e-06,0.413287729,0.455508888,-0.843784571,0.0582249947,0.0191704072,0.102386549 +-0.302318811,3.6040597,0.302318841,9.34140553e-05,0.158361942,0.186845452,-3.73625684,-0.11948175,0.0190686677,0.427550763 +-0.246650159,3.60408163,0.246650159,5.27167904e-05,0.144877732,0.151384056,-3.54724669,0.298050106,0.0190808848,0.348847598 +-0.20878616,3.6042676,0.20878616,4.6759651e-05,0.144255474,0.140320882,-3.17281389,0.593393326,0.0190941058,0.295376807 +-0.276555538,3.60430431,0.276555538,6.05650785e-05,0.149288848,0.166024536,-3.70513892,0.0525063761,0.0190820191,0.391118467 +0.515619576,3.60438347,-0.515619516,0.00100213406,0.195479915,0.127651632,0.0259553827,-0.295272827,0.0189807471,0.729403615 +-0.398965895,3.60449004,0.398965895,0.000369226123,0.249746203,0.416388273,-1.32864368,1.07243621,0.0187703017,0.564317286 +-0.303714335,3.60471869,0.303714335,9.29460111e-06,0.159182101,0.188503057,-3.73416209,-0.133708894,0.0190654919,0.429533333 +1.00602102,3.60473156,-1.00602102,0.00117603794,0.159757912,0.0768865868,0.444120854,-0.148925453,0.0192562584,1.42289448 +-0.152984202,3.60476017,0.152984202,6.36135301e-05,0.142466486,0.125726625,-2.49252892,0.802506804,0.0191382077,0.216550112 +0.0876711383,3.60479164,-0.0876711383,3.34327124e-05,0.153177366,0.119980551,-1.96075571,-0.069418028,0.0192405637,0.123991579 +-0.0748459101,3.60484409,0.0748459101,1.72071886e-05,0.256829917,0.253943801,-1.12243366,0.112195387,0.0191704966,0.10585127 +0.257266015,3.60486794,-0.257266015,0.000437002833,0.13943249,0.0775091797,-2.60967588,-0.217100978,0.0191605296,0.364218891 +-0.288059354,3.60488892,0.288059354,3.36439189e-05,0.151859313,0.173156217,-3.74518299,-0.0399631262,0.0190755893,0.407468677 +-0.394203633,3.60495043,0.394203633,0.000123999693,0.254637659,0.423132241,-1.57695663,0.957896352,0.0187733937,0.557648063 +0.0855270475,3.6050632,-0.0855270401,3.18898819e-05,0.155456632,0.124811433,-1.92116666,-0.0729264244,0.0192418341,0.120983452 +-0.075444594,3.60507584,0.0754446015,8.23650225e-06,0.218324959,0.208733901,-1.18854558,0.128747299,0.0191705488,0.106709778 +-1.09628963,3.60512352,1.09628963,0.000232024031,0.363668799,0.189567849,0.186107606,-0.230121687,0.0192826558,1.55052328 +-0.175938129,3.60512924,0.175938129,5.95211131e-05,0.145175755,0.133136362,-2.77246618,0.760213017,0.0191187821,0.248906672 +-0.272894681,3.60515356,0.272894681,1.27043595e-05,0.148579389,0.163762525,-3.69396853,0.0731198564,0.0190801341,0.385965198 +-0.162932247,3.6051712,0.162932247,8.72585515e-05,0.14439109,0.129507005,-2.62310481,0.783182621,0.0191301052,0.230662912 +-0.303239971,3.6052897,0.303239942,4.19949674e-06,0.158905998,0.187343135,-3.74401641,-0.14263317,0.0190635994,0.428866893 +0.139263213,3.60543799,-0.139263213,0.000145571059,0.14316687,0.079284139,-2.23614883,0.0319429412,0.0192182492,0.197071671 +0.178087175,3.60547352,-0.178087175,7.2113864e-05,0.142139971,0.0762549266,-2.32583094,0.0113227507,0.0192103758,0.251916826 +-0.0754335225,3.60550642,0.0754335225,1.40352658e-05,0.218491718,0.2087401,-1.20439744,0.124988705,0.0191697385,0.106692255 +-0.20658347,3.60551095,0.20658347,0.000100989171,0.14458409,0.139515042,-3.15201068,0.594311833,0.019093601,0.292220384 +0.0805746615,3.6055274,-0.0805746615,4.18480522e-05,0.181977004,0.159872949,-1.73027635,-0.0525124483,0.0192442127,0.114057586 +-0.303717673,3.60560536,0.303717643,1.52376742e-06,0.159205049,0.187760368,-3.74528193,-0.15140225,0.0190621037,0.429546595 +1.17598021,3.60570717,-1.17598021,0.000144253718,0.52871412,0.352434427,0.259622455,0.277180672,0.0192761458,1.6632396 +-0.100418039,3.60573959,0.100418031,4.36520531e-05,0.122946501,0.102008373,-1.93782592,0.583964765,0.019161839,0.142106786 +-0.245775104,3.60574508,0.245775118,7.40550895e-05,0.144982696,0.150764212,-3.53727007,0.292934656,0.019078223,0.347599208 +0.1707616,3.6058073,-0.1707616,9.10065428e-05,0.142541647,0.076433681,-2.30686164,0.015113364,0.0192107745,0.241694063 +-0.0933805704,3.60581875,0.0933805704,1.97847003e-05,0.121140875,0.102821633,-1.81921053,0.498642534,0.0191640928,0.132094055 +-0.0944543555,3.60582399,0.0944543481,2.85361748e-05,0.121445999,0.102716893,-1.83731186,0.512428224,0.0191638265,0.13360475 +1.22866559,3.60584879,-1.22866559,0.000156141672,0.0965947807,0.0493174493,-0.12604773,-0.011447669,0.0192762222,1.73771405 +-0.10395655,3.60586405,0.10395655,4.23384663e-05,0.125011131,0.102878481,-1.98628545,0.614194036,0.0191609003,0.147078395 +0.0761921853,3.60588455,-0.0761921853,3.5819503e-05,0.245018691,0.239370152,-1.48238063,-0.0278161336,0.0192446858,0.107865624 +1.22170556,3.60590744,-1.22170568,0.000343239866,0.119164877,0.0553546287,-0.0586854629,0.00900442339,0.0192755591,1.72787011 +-0.0912839919,3.60595417,0.0912839919,1.92219195e-05,0.12247692,0.10475608,-1.77636003,0.463972509,0.0191647913,0.12910445 +1.21335399,3.60597873,-1.21335411,0.000318510109,0.139881968,0.0666882321,0.040243946,0.0413868874,0.0192746911,1.71605814 +-0.195592865,3.60598063,0.195592865,2.68792428e-05,0.145603895,0.136806771,-3.03253341,0.64418745,0.019101521,0.27661097 +0.0853426084,3.60609365,-0.0853426084,4.29386419e-05,0.155334607,0.12501885,-1.92677259,-0.0720110163,0.0192407221,0.120717637 +-0.0872568935,3.60615444,0.0872568935,2.18667701e-05,0.124721304,0.10833209,-1.69637704,0.399224579,0.0191654563,0.123455346 +0.0723463446,3.60615468,-0.0723463446,1.65317724e-05,0.392231733,0.474797159,-1.10105717,-0.0408536606,0.0192441512,0.102386549 +-0.19625181,3.60621309,0.19625181,1.83904285e-05,0.145652384,0.136922404,-3.04174089,0.637812078,0.0191006828,0.277544588 +-0.460293353,3.6062777,0.460293323,0.000294813304,0.272009909,0.467389017,0.520900369,1.37796855,0.0188602936,0.651101112 +-0.168709308,3.60630774,0.168709308,4.10499051e-05,0.145198345,0.129273713,-2.7077632,0.753161609,0.0191219896,0.238644451 +-0.303619802,3.60633755,0.303619772,2.24188207e-05,0.159006685,0.186894774,-3.74935865,-0.160782561,0.019060174,0.429400533 +-0.196393996,3.60638022,0.196393996,2.36084873e-07,0.145700529,0.136946768,-3.04390025,0.634896934,0.0191004854,0.277748913 +-0.196279421,3.60650158,0.196279421,3.25162659e-07,0.145734772,0.13690424,-3.04276156,0.634334981,0.0191004109,0.277585328 +-0.307163924,3.6065073,0.307163924,8.58159474e-05,0.161106616,0.190994203,-3.73829794,-0.182365909,0.0190557223,0.434397638 +-0.196495786,3.60654664,0.196495786,4.73448636e-05,0.1457192,0.13692674,-3.04511976,0.632736981,0.0191002432,0.277890414 +-0.108570188,3.60655117,0.108570188,5.86574242e-05,0.128233135,0.104265369,-2.05201268,0.645073533,0.0191583019,0.153623044 +-1.03178847,3.60670853,1.03178847,0.000935497344,0.155764177,0.0745120123,0.453723967,-0.12673898,0.0192892086,1.45931172 +-0.0929116681,3.60676646,0.0929116756,1.70160604e-06,0.122237042,0.103329845,-1.82545817,0.487433761,0.0191629622,0.13144289 +-0.196356535,3.60676861,0.196356535,5.43233509e-05,0.145753518,0.136874661,-3.04314351,0.631990314,0.0191000439,0.277694285 +-0.355330497,3.60678124,0.355330497,0.000102876744,0.209930658,0.290576339,-3.2523129,-0.196021169,0.0189442001,0.502580047 +-0.137569785,3.60679603,0.1375698,9.48724992e-05,0.140728801,0.118880361,-2.36398792,0.75105685,0.0191451963,0.194696605 +0.520084918,3.60691118,-0.520084918,0.00089380244,0.19403699,0.125660121,0.0492773764,-0.308383226,0.0189839788,0.735691369 +-0.284861386,3.60691714,0.284861386,0.000110444511,0.151159599,0.169968382,-3.73760414,-0.0368738919,0.0190722607,0.402918637 +-0.0936291665,3.60692906,0.0936291665,2.57320098e-05,0.12218748,0.102993093,-1.83863556,0.496647775,0.0191626083,0.132455409 +-0.2323713,3.60693932,0.232371315,4.72704487e-05,0.144374907,0.14547053,-3.42940235,0.38991642,0.0190793276,0.328628749 +-0.237992734,3.6069839,0.237992749,3.83960178e-05,0.144796699,0.147447512,-3.47957277,0.33657521,0.019078292,0.336574614 +-0.078896597,3.60698748,0.078896597,2.37043332e-05,0.156861916,0.142196968,-1.44068992,0.220315814,0.0191667695,0.111647449 +0.132191941,3.60699129,-0.132191956,0.000118882606,0.142668098,0.0798732042,-2.22138095,0.0316251963,0.0192204304,0.187094688 +-0.314504296,3.60703421,0.314504296,0.000106958338,0.165433809,0.199529618,-3.71546507,-0.22689563,0.0190442838,0.444823176 +-0.316408008,3.60704565,0.316408008,8.36153704e-05,0.166899055,0.202346951,-3.70073128,-0.228252649,0.0190412849,0.447502315 +-0.195529342,3.60713363,0.195529342,5.08266494e-05,0.145872369,0.136608392,-3.03507829,0.631873429,0.0191002823,0.276521385 +-0.551545382,3.60714221,0.551545382,0.000212376617,0.183669135,0.179611579,0.146063894,-0.186790362,0.0191271454,0.780093551 +-0.351300359,3.60718036,0.351300359,6.95729323e-05,0.203981191,0.278787255,-3.31616807,-0.214731544,0.018956136,0.496866882 +0.191256404,3.60725069,-0.191256404,0.000128544416,0.140844852,0.0754686967,-2.35937738,-0.0174904373,0.0192050021,0.270514101 +-0.271268606,3.60746169,0.271268606,8.096292e-05,0.148534507,0.162417144,-3.68343997,0.0665882006,0.0190755483,0.383649468 +-0.818991244,3.60752439,0.818991244,0.00421460718,0.166991845,0.0800432339,0.432021677,-0.318740219,0.0192751661,1.16005325 +-0.113079384,3.60763216,0.113079377,6.9295631e-05,0.131714866,0.106622197,-2.11686087,0.664397836,0.019154856,0.160106584 +-0.0845571011,3.60772562,0.0845571011,1.5667596e-05,0.130794674,0.113788821,-1.65458393,0.339478493,0.0191640723,0.119592123 +0.158687115,3.60783911,-0.158687115,7.84224394e-05,0.142273977,0.0769079477,-2.27441907,0.0262302831,0.0192142837,0.224748328 +0.104931794,3.60784149,-0.104931787,6.13153825e-05,0.14183037,0.0921234637,-2.17525434,-0.0158193819,0.0192285199,0.148397833 +0.106539726,3.60800648,-0.106539726,8.09779885e-05,0.141319126,0.0904729366,-2.18701506,-0.0101088332,0.0192274097,0.150676236 +-0.132208124,3.60806847,0.132208124,6.20670544e-05,0.139645532,0.116053455,-2.32469821,0.731426716,0.0191445295,0.187294915 +1.0373764,3.60819435,-1.03737628,0.00087981351,0.159910351,0.0768942684,0.366321474,-0.113990061,0.0192620661,1.46713328 +0.106290214,3.60822535,-0.106290214,1.59407045e-05,0.141282007,0.0905951858,-2.18679643,-0.0107360063,0.0192274358,0.150329858 +-0.274287462,3.60838008,0.274287462,4.74161825e-05,0.149167061,0.163730145,-3.69388247,0.0388431847,0.019072054,0.387916833 +-0.143940821,3.6084466,0.143940821,5.68680407e-05,0.143527508,0.12196926,-2.4453783,0.745352328,0.0191379637,0.203873724 +0.106185414,3.60846496,-0.106185421,4.82882751e-06,0.141266391,0.0906575248,-2.18736529,-0.0109524773,0.0192273073,0.150180623 +-0.3763493,3.60846639,0.37634927,0.000113577786,0.238826305,0.363301039,-2.59884644,0.157933041,0.0188400354,0.5322541 +-0.092392154,3.60848665,0.092392154,2.43216327e-05,0.123708978,0.103654549,-1.83942604,0.472062796,0.0191606041,0.130678564 +-0.127253428,3.60853434,0.127253428,0.000106084517,0.138298512,0.113367856,-2.2735157,0.714316189,0.0191479325,0.180121511 +0.106680952,3.60853601,-0.106680945,5.19764253e-05,0.141239822,0.0903793499,-2.18893266,-0.00992541388,0.0192270856,0.150875956 +0.106395543,3.60855055,-0.106395543,3.19238666e-06,0.141207352,0.0904932842,-2.18836045,-0.0104808807,0.0192271266,0.150479496 +-0.0830314755,3.60864449,0.0830314755,1.19372107e-05,0.134348974,0.116987363,-1.6336019,0.306353092,0.0191629827,0.117460221 +-0.538181245,3.6086967,0.538181245,0.000798071153,0.202016622,0.248415917,0.17870757,-0.0639885142,0.0190838482,0.761201084 +-0.261524379,3.60875273,0.261524379,0.000101051737,0.147306457,0.15736793,-3.63091111,0.138229758,0.0190715734,0.369891763 +-0.230870828,3.60879302,0.230870813,4.94335691e-05,0.144731894,0.144494981,-3.41835666,0.378968835,0.0190768726,0.32651791 +-0.0990625992,3.60892558,0.0990625992,2.8990411e-05,0.125355095,0.102516457,-1.95910823,0.55066514,0.0191579666,0.140252873 +-0.11967206,3.60901952,0.11967206,0.000106869549,0.135599554,0.109738931,-2.1994338,0.68433708,0.0191497579,0.169498444 +0.190246925,3.60902166,-0.190246925,3.02324861e-05,0.140766382,0.07546027,-2.35177255,-0.0207095854,0.0192053001,0.269095868 +0.0922096223,3.60903692,-0.0922096148,5.57553358e-05,0.146073073,0.112415113,-2.08192134,-0.0534341596,0.019231284,0.130423024 +0.191941947,3.60908008,-0.191941962,4.50765183e-05,0.140616149,0.0753867999,-2.35587573,-0.0234504435,0.0192048829,0.271504313 +-0.370336354,3.6091826,0.370336324,0.000130093569,0.233390331,0.344509691,-2.84844065,-0.0188377872,0.0188653432,0.523738623 +-0.219265357,3.60930538,0.219265342,3.73653747e-05,0.145117432,0.140910745,-3.30764461,0.457386702,0.0190819278,0.310088098 +-0.219251707,3.60930562,0.219251692,5.25275827e-05,0.145117551,0.140906081,-3.30750108,0.457460076,0.0190819371,0.310068786 +-0.21926938,3.60930872,0.219269365,3.81387763e-05,0.145118386,0.140911072,-3.30770445,0.457304388,0.0190819222,0.31009382 +-0.219265729,3.60931134,0.219265744,1.68642773e-11,0.145118743,0.14090915,-3.30767035,0.457297444,0.0190819222,0.310088724 +-0.219263434,3.60931301,0.219263434,2.086534e-05,0.145118982,0.140907332,-3.30765343,0.457286149,0.0190819204,0.310085475 +-0.219267473,3.60931611,0.219267458,1.19023516e-05,0.145119175,0.140906811,-3.3077035,0.457221657,0.0190819111,0.310091138 +-0.314517528,3.60940862,0.314517498,0.000193624524,0.165279731,0.19854185,-3.72138643,-0.251112252,0.0190384835,0.444845408 +-0.375256449,3.60944843,0.375256479,6.05714195e-05,0.241314188,0.363816321,-2.69582844,0.0658080578,0.0188410655,0.530709505 +-0.219314963,3.60946345,0.219314978,4.21238037e-05,0.145130858,0.140879393,-3.30790138,0.455644161,0.0190816689,0.310158253 +-0.642448723,3.60951543,0.642448723,0.000649991736,0.18278569,0.0935604125,0.0403304473,-0.353740513,0.0192294829,0.909359753 +0.191107497,3.60959029,-0.191107497,4.09293989e-06,0.140607893,0.0754320771,-2.35205555,-0.023044318,0.0192052219,0.270333081 +0.106535554,3.60973811,-0.106535561,4.84533666e-05,0.140533373,0.0901728123,-2.19097066,-0.006845464,0.0192272253,0.150666922 +-0.0829982162,3.60983562,0.0829982162,1.66509453e-05,0.13525258,0.117178321,-1.65285742,0.302541286,0.0191612411,0.117411852 +-0.231980398,3.60996246,0.231980398,7.48766033e-05,0.144888565,0.144351304,-3.43174887,0.35385409,0.0190746468,0.328086287 +-0.376300931,3.61006546,0.376300961,2.736434e-06,0.243220538,0.368470013,-2.67071533,0.0703719109,0.0188339371,0.532199025 +-0.378503799,3.61018562,0.378503829,0.000156667258,0.245113403,0.375681698,-2.55456591,0.150650635,0.0188251492,0.535292983 +-0.180796176,3.61023211,0.180796176,5.99410305e-05,0.146385074,0.13246946,-2.85013914,0.682690382,0.0191092249,0.255705267 +-0.0787535608,3.61024427,0.0787535608,2.19428075e-05,0.158290148,0.141097739,-1.5223397,0.202413738,0.0191608761,0.111438021 +-0.230664909,3.61031699,0.230664909,3.77301076e-05,0.144892275,0.143734649,-3.42000484,0.360156596,0.0190749019,0.326230794 +0.0800366253,3.61049414,-0.0800366253,3.47525202e-05,0.182984382,0.164018586,-1.76482105,-0.0459301695,0.0192363206,0.113268659 +0.188442975,3.61054516,-0.188442975,0.000125996274,0.140737325,0.0754984543,-2.34162951,-0.0207008719,0.0192061588,0.266519159 +-0.374782324,3.61054826,0.374782324,5.16122418e-05,0.240499645,0.360382229,-2.74436784,0.00974087603,0.0188401248,0.530044317 +0.970922232,3.61058855,-0.970922232,0.000923527579,0.163892657,0.0793351829,0.486918181,-0.185170859,0.0192440227,1.37312567 +0.164809227,3.61067772,-0.164809227,0.00013809331,0.141943812,0.0765104741,-2.28365231,0.0110843619,0.0192121379,0.233255416 +-0.0844653472,3.61069131,0.0844653472,1.45278154e-05,0.133618683,0.114316806,-1.69771695,0.324845284,0.0191595759,0.119469754 +-1.18802476,3.61082458,1.18802476,0.000357103359,0.255138993,0.140317261,0.237143204,0.190692693,0.0193063747,1.68017304 +-0.545620084,3.61084938,0.545620084,0.000359711732,0.18474111,0.192557007,0.162582278,-0.180488274,0.0191143118,0.771748066 +-0.393442571,3.61087179,0.393442571,0.000122105441,0.261813998,0.431741029,-1.7983942,0.681460679,0.0187637564,0.556569219 +-0.375509858,3.61087418,0.375509858,2.30475616e-05,0.241654932,0.36289075,-2.73098826,0.00703030825,0.0188360419,0.531078577 +0.146490932,3.61129522,-0.146490932,0.000135429829,0.142075211,0.07782121,-2.2396276,0.0287119728,0.0192175079,0.207312495 +-0.406586587,3.61131144,0.406586587,0.000290499243,0.269293815,0.454963028,-1.21940017,1.023911,0.018748695,0.575070918 +-0.299751103,3.61140728,0.299751103,6.96980569e-05,0.157065094,0.180853665,-3.75635767,-0.181674242,0.0190506168,0.42391336 +1.19491696,3.61152267,-1.19491684,0.000321223284,0.178706765,0.0899286717,0.166352838,0.0894241184,0.0192697812,1.68996131 +0.19422555,3.61155319,-0.19422555,8.04806477e-05,0.140294492,0.0752528533,-2.35192561,-0.0353542715,0.0192042068,0.274692416 +-0.146294221,3.61159682,0.146294221,7.12961628e-05,0.144859686,0.122469857,-2.48251534,0.718346596,0.0191329867,0.207155645 +-0.100766271,3.61169291,0.100766279,4.53156645e-05,0.127278849,0.103052095,-1.99640107,0.554836035,0.019153716,0.142673641 +-0.376366347,3.61173606,0.376366317,0.000161818185,0.242895424,0.365177333,-2.73153329,-0.021546362,0.0188326631,0.532275438 +0.11503534,3.61204791,-0.115035333,6.13704833e-05,0.139639303,0.0870190859,-2.21474695,0.008611314,0.0192218125,0.163028449 +0.191017628,3.61208701,-0.191017628,0.000105731233,0.140451536,0.0754284039,-2.34012651,-0.0282501411,0.0192059819,0.270167559 +-0.166909039,3.6123147,0.166909039,6.56895936e-05,0.14747557,0.12827754,-2.72131252,0.687507927,0.0191163607,0.236169904 +-0.420051426,3.6123209,0.420051426,0.000176258065,0.281820238,0.493441939,-0.648261487,1.36258686,0.01873664,0.594293714 +0.232529104,3.61232209,-0.232529104,0.000234512074,0.137867436,0.0747121349,-2.47950244,-0.148644075,0.0191803277,0.328943789 +-0.340317488,3.61257505,0.340317488,0.000214577827,0.187413082,0.24199374,-3.56847072,-0.39283061,0.0189741421,0.481461376 +-0.110808834,3.61264467,0.110808834,4.53504763e-05,0.133848801,0.106114671,-2.12823582,0.619085014,0.0191488639,0.156913698 +-0.485208064,3.61276722,0.485208094,0.000473940687,0.304149777,0.523277462,0.557639122,0.919996262,0.0189175345,0.686357379 +-1.092381,3.61280227,1.09238088,0.000325790374,0.360536933,0.190500438,0.228421688,-0.233595669,0.0192773119,1.54499054 +0.156297371,3.61283875,-0.156297371,9.45193606e-05,0.142144948,0.0767654032,-2.25518918,0.0206268635,0.0192154292,0.221103936 +-0.351186693,3.6129334,0.351186723,9.89799664e-05,0.20143418,0.272120178,-3.33583975,-0.291032493,0.0189446062,0.496691704 +-0.0723944679,3.6129508,0.0723944679,2.63721722e-06,0.399868637,0.451285392,-1.12586272,0.0571287051,0.0191565342,0.102386549 +-0.0883204043,3.61312103,0.0883204043,3.11355398e-05,0.129146546,0.106982596,-1.82888269,0.389935613,0.0191544127,0.125000417 +-0.0723941922,3.61312413,0.0723941922,7.48099325e-08,0.399421424,0.450838119,-1.1297996,0.0572525561,0.0191562902,0.102386549 +-0.0726632848,3.61320972,0.0726632848,1.63354835e-05,0.384174496,0.428899109,-1.15425265,0.062578626,0.0191562064,0.102762543 +-0.327645004,3.61325765,0.327644974,0.000150255088,0.173068807,0.212936565,-3.67663145,-0.364138961,0.019004913,0.463383824 +-0.450535536,3.61338592,0.450535536,0.000307671988,0.295636475,0.531062663,0.41252327,1.70131755,0.0187956896,0.637250781 +0.962491751,3.61345339,-0.962491751,0.000118266427,0.165084481,0.0800617486,0.49675262,-0.194783479,0.0192399602,1.361274 +-0.434972048,3.61355305,0.434972048,0.00030696037,0.289407611,0.513953328,-0.113532633,1.54350531,0.0187569801,0.615239561 +0.236700475,3.6136055,-0.236700475,0.000359187456,0.137824416,0.0748889968,-2.48857212,-0.165856645,0.0191772226,0.334821016 +0.0758080184,3.61380768,-0.0758080184,2.84274629e-05,0.257149756,0.263063222,-1.54264939,-0.0209286492,0.0192287657,0.107273154 +0.265963286,3.61386085,-0.265963286,0.000376234122,0.139855921,0.0780173987,-2.59221387,-0.282399803,0.0191500746,0.376521915 +-0.0755389035,3.61402988,0.0755389109,2.0445641e-05,0.213227794,0.200591564,-1.41483128,0.122476034,0.0191557463,0.10688211 +-0.072397396,3.61413193,0.072397396,6.02785121e-06,0.396660388,0.447479844,-1.15104723,0.0578197241,0.0191546734,0.102386549 +0.207375765,3.61414242,-0.207375765,0.000233143219,0.139074579,0.0748462081,-2.38029885,-0.0728668123,0.0191995129,0.293382227 +-0.0901060104,3.61417055,0.0901060104,1.53143665e-05,0.12901035,0.105067626,-1.88353872,0.414380282,0.0191520043,0.127577454 +0.643628716,3.61424494,-0.643628657,0.000483235985,0.174778968,0.089475438,0.0957069322,-0.195960179,0.0191208553,0.911123216 +-0.10708449,3.61426568,0.10708449,9.80154218e-05,0.132855207,0.104911409,-2.10079813,0.58728528,0.0191478301,0.151667625 +0.478420466,3.61432481,-0.478420466,0.00191609841,0.206555545,0.142478973,-0.258341253,-0.328956068,0.0189595502,0.677104533 +0.23414962,3.61440444,-0.234149635,5.21497441e-06,0.137724444,0.0747422874,-2.4764607,-0.159679398,0.0191794485,0.331291586 +-0.139450848,3.61449671,0.139450848,0.00010940717,0.144684136,0.11933586,-2.42577505,0.691914678,0.0191332232,0.197374254 +-0.397366524,3.6146059,0.397366554,0.000213914609,0.264831364,0.438833982,-1.75355768,0.624176204,0.0187537223,0.562105954 +-0.328312159,3.61461139,0.328312129,8.16999745e-05,0.173576653,0.213258713,-3.68237519,-0.388461322,0.018999923,0.464325726 +1.03880739,3.61496377,-1.03880739,0.000325589237,0.160588399,0.0772459209,0.357056439,-0.1163738,0.0192573816,1.46916413 +-0.293980211,3.61508465,0.293980241,9.0554393e-05,0.154271394,0.173591748,-3.76118898,-0.177880347,0.019045813,0.415756911 +-0.326556563,3.61513138,0.326556563,7.96551394e-05,0.172048911,0.210435778,-3.69102407,-0.384187281,0.0190019514,0.461856365 +0.124246806,3.61523819,-0.124246806,7.97046378e-05,0.139895111,0.0820884109,-2.22582841,0.0273006968,0.0192224234,0.175808176 +-0.11702022,3.61526299,0.11702022,4.28320345e-05,0.138338059,0.109069757,-2.21554255,0.628688455,0.0191422049,0.165772319 +-0.209774911,3.61528778,0.209774911,7.46781516e-05,0.145777911,0.137587577,-3.18210983,0.484984279,0.019078603,0.296686828 +0.0911924094,3.61532021,-0.0911924094,2.46100335e-05,0.14519392,0.118023828,-2.09878898,-0.0467531681,0.0192236565,0.129082575 +0.152168676,3.61534977,-0.152168676,9.54886782e-05,0.141835317,0.077146709,-2.24345684,0.0187825263,0.0192161594,0.215266913 +-0.679195166,3.6153574,0.679195166,0.00132622616,0.180449486,0.0894059166,0.122800022,-0.361964196,0.0192383584,0.960939407 +0.174740329,3.6153779,-0.174740344,0.000214362284,0.14126277,0.0759249181,-2.28902745,-0.00701403432,0.0192110892,0.247281834 +-0.570707858,3.61546087,0.570707858,0.0010915359,0.177887991,0.137338698,0.21455884,-0.266742647,0.0191577114,0.807364821 +-0.252230674,3.61549544,0.252230674,3.42857056e-05,0.146790609,0.150529519,-3.57774949,0.143513054,0.0190595221,0.356708467 +0.956621945,3.6155026,-0.956621885,0.001538557,0.165806025,0.0804611072,0.49783659,-0.200138956,0.0192371942,1.35297728 +0.232538059,3.61550927,-0.232538059,2.56420753e-05,0.137668461,0.0747117102,-2.46571612,-0.158058032,0.0191809796,0.329003423 +0.398468316,3.6155262,-0.398468316,0.000810406636,0.221087143,0.153153375,-1.40640187,-0.480866253,0.0189685952,0.563760698 +0.119986363,3.61555529,-0.119986363,5.48551106e-05,0.13963908,0.0829421431,-2.22013617,0.0242550001,0.0192241408,0.169779405 +0.514050543,3.61556101,-0.514050543,0.00127528608,0.194909453,0.126904115,0.0140515584,-0.349295199,0.0189772826,0.727087855 +-0.0789557174,3.61562967,0.0789557174,2.65853105e-05,0.156883061,0.13661398,-1.62014151,0.198676676,0.019152388,0.111747503 +0.0892305449,3.61565781,-0.0892305523,3.63041472e-05,0.146714762,0.120074376,-2.07857108,-0.0487670749,0.0192249268,0.126271099 +-0.0755697042,3.61583638,0.0755697042,2.26955526e-05,0.211680308,0.198083848,-1.46195459,0.121150747,0.0191524234,0.106912345 +-0.183822662,3.61589432,0.183822662,8.60134242e-05,0.147952259,0.132020935,-2.91255164,0.603094161,0.0190995708,0.260024339 +-0.327502698,3.61596632,0.327502698,3.45413646e-05,0.172497839,0.211109772,-3.68605232,-0.396601349,0.018998798,0.463202596 +0.730528414,3.61598063,-0.730528355,0.00284903124,0.172290117,0.0841670185,0.258280933,-0.240066022,0.0191749781,1.03393817 +0.522141695,3.61599946,-0.522141695,0.00140377122,0.192777753,0.1241282,0.0574558303,-0.339508951,0.0189851038,0.738550067 +0.100266308,3.61600018,-0.1002663,4.8620921e-05,0.136271492,0.0951267406,-2.20798993,-0.0181670319,0.0192258451,0.14179869 +-0.600191712,3.61610126,0.600191712,0.000538401364,0.177020505,0.107442059,0.26070714,-0.337583452,0.0191884898,0.848820567 +-0.169201344,3.61610365,0.169201344,0.000115046576,0.148083031,0.128372163,-2.75342798,0.650966167,0.0191102549,0.239449456 +-0.202911109,3.61612749,0.202911109,8.48560667e-05,0.146374971,0.135466352,-3.13129997,0.495764971,0.019083146,0.287105054 +-0.12120086,3.6161437,0.12120086,5.12358929e-05,0.139804527,0.110916384,-2.25687909,0.641133785,0.0191395935,0.171798155 +-0.0826478899,3.616328,0.0826478973,1.53998753e-05,0.140033737,0.117131129,-1.75748634,0.276988029,0.0191500504,0.116916507 +-0.128444612,3.61636686,0.128444612,9.15043129e-05,0.142098054,0.113090478,-2.32933974,0.652591109,0.0191361215,0.181824535 +1.06865919,3.61640358,-1.06865919,0.000990985893,0.171780095,0.0853616223,0.285896063,-0.149341792,0.0192646235,1.51133966 +0.0723954514,3.61641121,-0.0723954514,1.29167011e-05,0.430664092,0.562588394,-1.19718683,-0.0425477922,0.0192209054,0.102386542 +-0.0841565803,3.6164453,0.0841565728,1.69739014e-05,0.137853533,0.114158414,-1.79048169,0.302227139,0.0191496573,0.119033135 +0.0723952726,3.61653161,-0.0723952726,5.88958028e-06,0.432243586,0.564958036,-1.19432139,-0.0429007746,0.0192205161,0.102386542 +0.0757334381,3.61654902,-0.0757334456,2.67151918e-05,0.282552063,0.298294663,-1.51287293,-0.0219343919,0.0192201119,0.107170075 +0.0796572566,3.61657333,-0.0796572566,3.31337214e-05,0.202148557,0.194287628,-1.76946819,-0.0349566527,0.0192199294,0.112731859 +0.0842427835,3.61657882,-0.0842427835,3.22991073e-05,0.159571901,0.140847221,-1.97048795,-0.0555730052,0.0192222502,0.119152941 +0.10055469,3.61657953,-0.10055469,1.13036504e-05,0.135823071,0.0947384685,-2.21401381,-0.0163913704,0.0192252658,0.14221029 +0.234780818,3.6166079,-0.234780818,3.09494426e-05,0.137603506,0.0747089311,-2.46545362,-0.167877823,0.0191792734,0.332167059 +0.100626178,3.61662579,-0.100626178,1.95799976e-06,0.13579154,0.094691135,-2.21443915,-0.0162191894,0.0192251951,0.14231202 +0.100524642,3.61666465,-0.100524642,1.76130507e-05,0.135791138,0.0947448462,-2.21420288,-0.0162737146,0.0192252472,0.142167568 +0.100583896,3.61666489,-0.100583896,4.39846737e-09,0.135775328,0.0947007164,-2.21440864,-0.0162207372,0.0192252137,0.142253458 +0.100597553,3.6167469,-0.100597553,1.87710648e-05,0.135719717,0.0946561471,-2.21452188,-0.0158900172,0.0192252379,0.14226985 +-0.253627241,3.61676717,0.253627241,4.59449657e-05,0.147115931,0.15084973,-3.5859499,0.119803965,0.019057136,0.358684331 +-0.178690851,3.61678457,0.178690851,0.000106941712,0.148086637,0.129932597,-2.85952878,0.611055315,0.0191027913,0.252744734 +0.225179106,3.61682749,-0.225179106,0.000172527536,0.137981951,0.0746274218,-2.4344101,-0.138844341,0.0191857759,0.318484306 +0.100805223,3.61692476,-0.100805216,4.12441113e-05,0.135639772,0.0944733173,-2.2149179,-0.014652797,0.0192252733,0.142561212 +0.129096493,3.61700964,-0.129096493,6.90191519e-05,0.139115945,0.0801439583,-2.22130537,0.0326555073,0.019222118,0.182740033 +-0.328953564,3.61715436,0.328953534,0.000104422288,0.173272014,0.211958334,-3.68075013,-0.419907182,0.018993048,0.465226799 +0.0906897485,3.61715794,-0.0906897485,2.69926404e-05,0.144370854,0.117564864,-2.10455084,-0.0437838249,0.0192232709,0.12836507 +-1.02370381,3.61716461,1.02370381,0.000831679266,0.156966016,0.0750876516,0.462174952,-0.142977178,0.019281093,1.44784391 +-0.635705113,3.61720586,0.635705113,0.00021184927,0.182734221,0.0941090882,0.0280152578,-0.358795941,0.0192236062,0.899591565 +-0.0886093825,3.61721182,0.0886093751,2.60437118e-05,0.131611764,0.104990438,-1.89585638,0.377314925,0.0191472191,0.125378951 +0.298123837,3.6172123,-0.298123837,0.000560782675,0.153378785,0.0891137347,-2.60557652,-0.431882501,0.0191047546,0.421736568 +-0.723280489,3.61721802,0.723280489,0.00231311796,0.175870433,0.0859551951,0.237099677,-0.365409613,0.0192505885,1.02399707 +0.0841748044,3.61722803,-0.0841748044,1.6551614e-05,0.159158245,0.14079681,-1.97349715,-0.0537924021,0.0192218199,0.119056508 +1.18946433,3.61734343,-1.18946433,0.000222086237,0.255663216,0.143538445,0.26439032,0.161316603,0.0192632452,1.68225026 +-0.253308445,3.61743069,0.253308445,5.36762059e-07,0.1471477,0.150504977,-3.58362365,0.116485514,0.0190557316,0.358237714 +-0.253011674,3.61750364,0.253011674,6.35683537e-05,0.147118986,0.150304303,-3.58164215,0.117856823,0.01905578,0.35781613 +-0.304269552,3.61752844,0.304269552,8.29569326e-05,0.159189641,0.182700381,-3.73499918,-0.257348418,0.019032307,0.430303693 +0.0723979473,3.61755872,-0.0723979473,6.35519518e-06,0.439313799,0.577565134,-1.19878149,-0.0439578407,0.0192179196,0.102386549 +-0.29568851,3.61758709,0.29568851,8.41493693e-06,0.155008733,0.174169064,-3.76600766,-0.211948529,0.0190372765,0.418199539 +-1.18284535,3.61758828,1.18284535,0.000148073799,0.554280758,0.382021934,0.371503055,0.269697517,0.0193015859,1.67284822 +-0.253489554,3.6175983,0.253489554,5.47506424e-05,0.147179261,0.150484502,-3.58501053,0.112849675,0.0190553647,0.358491868 +-0.240789443,3.61766815,0.240789443,0.000229078694,0.146160439,0.146649599,-3.48241973,0.230407208,0.019057909,0.340694964 +-0.253258884,3.61766911,0.253258884,2.90361163e-06,0.147155225,0.150349155,-3.58332968,0.114153937,0.0190553367,0.358167291 +-0.082736969,3.61771083,0.082736969,2.27852579e-05,0.140335768,0.116675295,-1.77487397,0.275223017,0.0191479288,0.11704655 +0.147527337,3.61777115,-0.147527337,4.94282249e-05,0.141288042,0.0775350928,-2.23189664,0.0177006144,0.019216666,0.208921313 +1.21143436,3.61782646,-1.21143436,0.000176004251,0.154274136,0.0756455213,0.0882893652,0.0514323339,0.0192641355,1.71328974 +-0.296351075,3.61807013,0.296351075,4.62984463e-05,0.155304566,0.174580798,-3.76521254,-0.220073566,0.0190355871,0.419131398 +1.03250408,3.61807156,-1.03250408,0.000688938424,0.160745338,0.0773803219,0.37056455,-0.124984622,0.0192534234,1.46022439 +-0.271315753,3.61813927,0.271315753,9.21347601e-05,0.149510652,0.159840539,-3.68133783,-0.0286262296,0.0190474465,0.383809865 +-0.0935906172,3.61814165,0.0935906172,3.00393367e-05,0.13156864,0.102525569,-1.97435713,0.432920486,0.0191450734,0.132398218 +-0.474147111,3.61821795,0.474147141,0.000293823396,0.325635791,0.576344907,0.283101737,0.970846295,0.0188594405,0.670701861 +-0.182424337,3.61830139,0.182424337,2.70439268e-05,0.148399144,0.130709738,-2.90550923,0.584331334,0.0190964639,0.258085489 +0.0889089033,3.61835241,-0.0889088959,1.74601992e-05,0.145106167,0.120308205,-2.09015536,-0.0414508544,0.0192231238,0.125814423 +-0.425583243,3.61838293,0.425583243,0.000347569119,0.299798071,0.528278887,-0.739268601,1.17725623,0.0187264755,0.602049887 +-1.19924402,3.61843967,1.1992439,0.000366419466,0.190821558,0.0965951085,0.145742834,0.103751272,0.019303564,1.6960777 +-0.0968468636,3.61856318,0.0968468562,3.4953031e-05,0.131343946,0.100672044,-2.02723694,0.47213614,0.0191432759,0.137074798 +-0.295316666,3.61857367,0.295316637,7.88623656e-05,0.154961377,0.173767611,-3.76186109,-0.215097532,0.0190355666,0.417674363 +-0.13427344,3.61863852,0.13427344,5.50466575e-05,0.144916534,0.116040632,-2.40500069,0.649348736,0.0191282164,0.19025588 +0.746220469,3.61864829,-0.74622041,0.00185823347,0.172117397,0.0837226063,0.292472631,-0.249382287,0.0191822443,1.05664635 +-0.293791026,3.61868453,0.293791026,7.01236859e-05,0.154574677,0.172638252,-3.75789356,-0.204993516,0.0190362502,0.415493071 +0.327328771,3.61884451,-0.327328771,0.000214103173,0.176671028,0.108710021,-2.47094631,-0.530395627,0.0190632716,0.46293655 +0.156128064,3.61899948,-0.156128064,6.57057972e-05,0.141144246,0.0767488629,-2.23519897,0.0136741139,0.0192179736,0.220896572 +0.114074156,3.6190176,-0.114074156,6.28275593e-05,0.13582021,0.086344786,-2.23506045,0.0275491457,0.0192248747,0.161432981 +1.22871339,3.61903548,-1.22871339,0.000110596433,0.0955568701,0.0490887947,-0.10972254,-0.0103065427,0.0192655288,1.73773503 +1.22241962,3.61904216,-1.22241962,0.000240344583,0.116875827,0.054299131,-0.0470260344,0.00747995172,0.0192649607,1.72883368 +0.0843144208,3.61907649,-0.0843144208,1.82032727e-05,0.157948494,0.142161816,-1.98746133,-0.0434929281,0.0192203764,0.119242296 +1.21499705,3.61915874,-1.21499705,0.000251941528,0.137685627,0.0658484772,0.0481113493,0.0367371403,0.0192639884,1.71833456 +-1.22878265,3.619174,1.22878265,0.000118582378,0.0948044062,0.0479495823,-0.206978917,-0.005474173,0.0193016585,1.73783886 +-1.22279584,3.61928535,1.22279584,0.000260894245,0.116409026,0.0534981079,-0.148387074,0.00971326046,0.0193018373,1.72937155 +-0.264701039,3.61935329,0.264701039,0.000171373351,0.148715377,0.155622005,-3.64588904,0.0130448854,0.0190470703,0.374458551 +-1.21561182,3.61941862,1.2156117,0.000245880743,0.134589195,0.0640290454,-0.0393219069,0.0361041836,0.019301936,1.71921122 +0.136466622,3.61941957,-0.136466622,7.84346557e-05,0.14035897,0.0783800036,-2.20474815,0.0272032954,0.0192211065,0.193039328 +-0.113100737,3.61943626,0.113100737,5.8034515e-05,0.136890113,0.106082909,-2.17856979,0.587834656,0.0191382952,0.160064235 +-1.03427184,3.6195271,1.03427184,0.000952613016,0.156211942,0.0747159347,0.435274065,-0.134215653,0.0192794483,1.46280813 +0.121382385,3.61956835,-0.121382385,4.75464076e-05,0.138569012,0.0821017995,-2.21996593,0.0278987773,0.0192238092,0.171777606 +-1.20884347,3.61965013,1.20884347,0.000363048079,0.157742798,0.0770889744,0.0367816426,0.0643468499,0.0193022843,1.70957673 +-0.358197451,3.61975312,0.358197451,0.000154137859,0.204779088,0.275475115,-3.35519695,-0.495385349,0.0189095773,0.506578147 +-0.226257384,3.6198473,0.226257384,6.34685712e-05,0.145855203,0.139926076,-3.35786009,0.316452742,0.0190627649,0.319976985 +-0.0790518597,3.62027359,0.0790518597,2.1984868e-05,0.15600571,0.131998226,-1.70588446,0.19258678,0.019143926,0.111850649 +-0.280740082,3.620574,0.280740082,0.000198813272,0.151446208,0.164135277,-3.71402931,-0.111397654,0.0190376658,0.397127986 +-0.154163122,3.62057543,0.154163122,3.89018896e-05,0.147800937,0.121771343,-2.59703922,0.644139111,0.0191141497,0.218024656 +0.588877797,3.62073731,-0.588877797,0.000730579719,0.178080395,0.100617953,0.233457521,-0.369592547,0.019066589,0.832826614 +-0.445533395,3.62075043,0.445533425,0.000199212678,0.306370825,0.553646326,0.0585286319,1.44822538,0.0187651813,0.63034308 +0.32931447,3.6208117,-0.32931447,0.00033335184,0.178095818,0.109863847,-2.44629478,-0.544671357,0.0190597717,0.465770781 +-0.185756609,3.62086463,0.185756624,0.000123048812,0.148270398,0.130222648,-2.94017959,0.547851682,0.0190908052,0.26273495 +-0.098100543,3.62092304,0.098100543,5.678671e-05,0.132966965,0.100718036,-2.05752826,0.473419726,0.0191396531,0.138855428 +-0.086513415,3.62100434,0.086513415,1.89990496e-05,0.135904133,0.108020708,-1.89574182,0.333537638,0.0191414636,0.122492455 +0.635760605,3.62101531,-0.635760605,0.000377703866,0.175194129,0.090442054,0.0863868967,-0.204830572,0.0191128794,0.899690688 +0.588203311,3.62104559,-0.588203311,0.00120078691,0.178197667,0.100809336,0.23242721,-0.369838029,0.0190655719,0.831869543 +-0.154486373,3.62113357,0.154486388,2.58288492e-05,0.148033917,0.121816821,-2.60413694,0.638463795,0.0191131011,0.218485877 +0.0915863961,3.62113953,-0.0915863961,2.48852393e-05,0.137653753,0.112321734,-2.14117146,-0.0225475244,0.0192236342,0.129559293 +-0.153730899,3.6212337,0.153730884,5.17490043e-05,0.148028821,0.121410489,-2.59770012,0.63649708,0.0191134941,0.217415392 +-0.155061126,3.62136388,0.155061126,6.05310197e-05,0.148217127,0.121844947,-2.61344671,0.633598089,0.0191123039,0.219294176 +0.0793511197,3.62145376,-0.0793511197,3.24413159e-05,0.199689478,0.19742924,-1.80208158,-0.0218130462,0.0192131568,0.112291753 +0.588773668,3.62158966,-0.588773668,7.75655451e-07,0.178048998,0.100594737,0.233919278,-0.371712834,0.01906625,0.83269304 +-0.154191405,3.62160492,0.154191419,7.10262952e-07,0.148190081,0.121512964,-2.60441947,0.633358836,0.0191124696,0.218076333 +-0.0890463665,3.62166286,0.089046374,5.19899986e-05,0.133688197,0.104534954,-1.94088769,0.367990375,0.0191401169,0.126107767 +0.589624405,3.6216681,-0.589624345,0.0010690419,0.177947134,0.100465089,0.234829992,-0.371883899,0.0190671403,0.833873749 +-0.0958587527,3.62174368,0.0958587527,3.8235994e-05,0.133062094,0.10099864,-2.03784657,0.447909176,0.0191390663,0.135676563 +-0.154481411,3.62195873,0.154481426,7.10548193e-05,0.14827089,0.121399373,-2.60872388,0.62972182,0.0191116612,0.218479007 +-0.153236121,3.62211013,0.153236106,7.18242809e-05,0.148208052,0.12090902,-2.59710121,0.62917763,0.0191121958,0.216714203 +-0.211705536,3.62216401,0.211705551,7.5098782e-05,0.146868885,0.136536166,-3.20617485,0.403728634,0.0190680269,0.299469292 +1.18492436,3.62217689,-1.18492436,9.44606145e-05,0.560153723,0.400234014,0.399176627,0.221293032,0.0192576833,1.67582989 +0.203050211,3.62230372,-0.203050226,0.000130836561,0.138885617,0.0746980384,-2.33704543,-0.0846466124,0.0192005038,0.287358701 +0.589009762,3.62232471,-0.589009762,0.000175067791,0.177966774,0.100491211,0.234368548,-0.373342514,0.0190663189,0.833008647 +0.588160992,3.62236285,-0.588160992,0.00108024036,0.17808795,0.100690722,0.232718855,-0.374281347,0.0190653186,0.831802845 +-0.154012263,3.6223731,0.154012248,0.000104719584,0.148296535,0.121094488,-2.60431886,0.627590477,0.0191112794,0.217814982 +0.960729122,3.6224401,-0.960729182,0.000323973713,0.165343046,0.0801847726,0.492379159,-0.201221198,0.0192329325,1.3587631 +-0.19987607,3.62254453,0.19987607,0.000107996959,0.147300601,0.133820891,-3.08783627,0.465872943,0.0190766789,0.282844245 +-0.912989795,3.6225481,0.912989795,0.00326676969,0.160055652,0.0763846561,0.534665167,-0.255565941,0.0192721132,1.29135728 +0.32895416,3.62255144,-0.32895419,5.23016206e-05,0.177259132,0.108972371,-2.44531584,-0.555078626,0.0190596916,0.465274692 +-0.118239492,3.6226604,0.118239492,0.000130657078,0.140855581,0.108175695,-2.25408983,0.589461327,0.019131314,0.167371616 +-0.383964688,3.62274194,0.383964717,0.000152629596,0.252499282,0.380685985,-2.79150867,-0.373769045,0.0187932402,0.543270528 +0.124684125,3.62288904,-0.124684125,3.35518052e-05,0.137868941,0.0810101926,-2.21006536,0.0304398034,0.0192244668,0.176383376 +0.0954215676,3.62289381,-0.0954215676,2.50918438e-05,0.128132284,0.102722965,-2.21310425,-0.00852458924,0.0192223694,0.135066465 +0.0872140825,3.62296033,-0.0872140899,2.39705078e-05,0.14794156,0.133090213,-2.07743835,-0.0184459612,0.0192185696,0.123357803 +-1.19365144,3.62304735,1.19365144,0.000230784062,0.286556065,0.163371623,0.299009532,0.179141223,0.019300608,1.68816757 +-0.0974122584,3.62320757,0.0974122658,4.22422563e-05,0.133420348,0.100626394,-2.05902553,0.458774745,0.0191368386,0.137926549 +0.140236333,3.62341976,-0.140236348,7.88671459e-05,0.139601707,0.0775507689,-2.20481443,0.0251697302,0.0192208719,0.198376492 +0.324543178,3.62345695,-0.324543178,0.000230448844,0.173434675,0.105687775,-2.46518946,-0.545043588,0.0190657824,0.458985388 +0.230036885,3.62347436,-0.230036885,0.000140837219,0.137507364,0.0744017959,-2.4148078,-0.172613382,0.0191821847,0.325347632 +-0.208938375,3.62352252,0.20893839,7.34386995e-05,0.147027627,0.134738475,-3.18109584,0.402858496,0.0190688502,0.295528054 +-0.168069705,3.62355709,0.168069705,0.000116472904,0.149087906,0.125486881,-2.74816298,0.596115232,0.019100992,0.237728372 +0.115098901,3.6236887,-0.115098901,4.65738085e-05,0.134330273,0.0856488869,-2.23613381,0.0318035372,0.0192245785,0.162909538 +0.968622565,3.62380934,-0.968622565,0.00109038525,0.164601669,0.0797825232,0.48098892,-0.195424333,0.0192335024,1.36987627 +-0.510540128,3.62404633,0.510540128,0.00120666623,0.26575622,0.412770361,0.39524731,0.29636687,0.0189781059,0.722366095 +-0.224307045,3.62410355,0.22430703,1.38717933e-05,0.146301687,0.138130516,-3.33032942,0.296815068,0.0190572031,0.317228317 +0.16347,3.62413359,-0.16347,6.8618705e-05,0.140746444,0.0762065426,-2.23050785,-0.00600874051,0.0192163493,0.231215537 +-0.224862292,3.6241405,0.224862292,7.56696099e-05,0.146317661,0.138303667,-3.33466554,0.292458296,0.0190569926,0.318010628 +-0.0723603442,3.62415385,0.0723603442,1.53357269e-05,0.368942618,0.414925814,-1.36206365,0.0629467368,0.019138556,0.102386549 +-0.760139525,3.62421131,0.760139525,0.00226268289,0.171619028,0.0829813108,0.309126258,-0.34384501,0.01925271,1.07519484 +-0.341563523,3.62425232,0.341563523,0.000246004493,0.184168547,0.232382953,-3.57664871,-0.533235252,0.0189468246,0.483175159 +-0.222507805,3.62428355,0.22250779,8.48362688e-05,0.146415994,0.137644053,-3.31300616,0.30753696,0.0190580282,0.314675868 +-0.46141246,3.62430358,0.46141246,0.000296110986,0.339512825,0.620847225,0.333125055,1.42853224,0.0187962782,0.6526618 +-0.223979786,3.62430835,0.223979786,6.64193158e-06,0.146333009,0.138045728,-3.32675171,0.297850281,0.0190569721,0.316772521 +-0.0761210993,3.62434292,0.0761211067,3.07378286e-05,0.196578771,0.178355172,-1.61320579,0.125618398,0.019139003,0.107739836 +-0.083475776,3.62436748,0.0834757686,7.745967e-06,0.140827462,0.112013578,-1.864694,0.271076769,0.019136766,0.118053831 +-0.13627781,3.62440157,0.136277795,0.00014813905,0.14697358,0.114077538,-2.44263554,0.609278917,0.0191172566,0.192851394 +-0.0796497613,3.62453294,0.0796497613,2.41923517e-05,0.152677432,0.126567632,-1.76291466,0.195170924,0.0191373304,0.112727627 +-0.560340166,3.62456226,0.560340166,0.0005297811,0.179465652,0.172864676,0.259160131,-0.26338622,0.0191338547,0.792798519 +0.0755228773,3.62456822,-0.0755228773,2.38114008e-05,0.300811172,0.339075148,-1.56379485,-0.00979505107,0.0192030556,0.106852338 +0.0971970409,3.62458324,-0.0971970409,2.51453512e-05,0.126724601,0.100762375,-2.22031689,-8.70637596e-05,0.0192221832,0.137555659 +-0.224160761,3.62464213,0.224160761,5.12295082e-05,0.146368936,0.138035133,-3.32657409,0.295182735,0.0190564506,0.317024142 +0.253693312,3.62472582,-0.253693342,0.000299492152,0.137556925,0.0750385895,-2.49934125,-0.273377717,0.0191587284,0.359012753 +-0.224625751,3.6248095,0.224625751,5.01397699e-05,0.146394491,0.138124973,-3.32920098,0.29114002,0.0190560315,0.317678183 +0.943014264,3.62481284,-0.943014264,0.00184068363,0.166417569,0.0806435347,0.489212573,-0.214802682,0.0192284137,1.33366454 +-0.211670443,3.62483191,0.211670429,5.8622667e-05,0.147079155,0.134979814,-3.20941305,0.374878734,0.0190638732,0.299419969 +0.21161896,3.62521076,-0.21161896,0.00016667397,0.138215184,0.0742639378,-2.35073185,-0.120925985,0.0191947054,0.299431056 +0.135012552,3.62521195,-0.135012537,5.26094555e-05,0.138391972,0.0784909502,-2.2040205,0.0275632385,0.0192220248,0.19099091 +0.110548824,3.62540841,-0.110548824,6.54671167e-05,0.131829292,0.0858178437,-2.23688412,0.0405481346,0.0192267019,0.156387478 +0.0950365365,3.62548876,-0.0950365365,3.21114021e-05,0.125603884,0.101376742,-2.22124624,0.00399990473,0.0192230046,0.134441152 +-0.083271049,3.62551117,0.083271049,1.26923833e-05,0.142145842,0.112535194,-1.87150514,0.263481319,0.0191348493,0.117766097 +-0.0723315999,3.62552881,0.0723315924,5.18150728e-06,0.366027892,0.411374986,-1.39301372,0.0630208626,0.0191357434,0.102386549 +-0.0838892087,3.62558675,0.0838892087,1.52623979e-05,0.140536308,0.110541567,-1.88737583,0.275239766,0.0191346444,0.118641734 +-1.22880816,3.62564373,1.22880816,9.881812e-05,0.0947363824,0.0480525941,-0.197321892,-0.00525138713,0.0192973725,1.73784947 +0.167146489,3.62566233,-0.167146504,8.04654119e-05,0.140513673,0.0759966522,-2.23328495,-0.0124154836,0.0192158986,0.236410335 +-1.22314179,3.62573481,1.22314191,0.000217184206,0.11570815,0.0532060452,-0.142143175,0.00889429916,0.0192975532,1.72983551 +-0.083622247,3.62576246,0.0836222395,2.55988141e-07,0.140956029,0.111017309,-1.8837465,0.27022773,0.0191343762,0.118268698 +-1.21634126,3.62584448,1.21634126,0.00036000504,0.134153113,0.0639296845,-0.0357082896,0.033547461,0.0192976836,1.72021782 +-0.995224953,3.6258657,0.995224953,0.00157667929,0.158512652,0.0757735297,0.516777992,-0.177094638,0.0192746632,1.4077661 +0.0846780837,3.62598944,-0.0846780837,1.14747018e-05,0.163041368,0.156734377,-2.01132441,0.00107903499,0.0192133281,0.119803801 +0.0723793283,3.62607503,-0.0723793283,2.45384012e-06,0.501495719,0.686677456,-1.2102704,-0.0508931391,0.019196596,0.102386557 +-0.0836777017,3.62614846,0.0836777017,1.14911418e-05,0.140966311,0.110690251,-1.88855529,0.270123988,0.0191337187,0.118343808 +-0.2405435,3.6261549,0.240543514,0.000125792038,0.147032723,0.143529177,-3.45897698,0.161071211,0.0190440863,0.340350688 +0.0734879747,3.62624574,-0.0734879747,2.17416728e-05,0.431797206,0.56393373,-1.33904457,-0.0359302722,0.0191972349,0.103933603 +0.150314465,3.62628365,-0.150314465,5.55819825e-05,0.140358493,0.0773306563,-2.20602274,0.00918326061,0.0192202032,0.212611824 +0.107367314,3.62644053,-0.107367307,5.438484e-05,0.128221393,0.0890538245,-2.2379446,0.0383847393,0.0192245618,0.151943609 +0.0755686611,3.62657142,-0.0755686611,2.08275123e-05,0.333295524,0.390966982,-1.51560307,-0.00438097818,0.0191966929,0.106912076 +0.137597188,3.62665701,-0.137597188,5.52634738e-05,0.138372079,0.0778367743,-2.19790864,0.0271418784,0.0192222446,0.194669604 +0.128389984,3.62670374,-0.128389984,5.496015e-05,0.136631042,0.0792595297,-2.20156503,0.0354042165,0.0192249157,0.18166396 +-0.0847667456,3.62686133,0.0847667456,1.74787347e-05,0.140544057,0.109425254,-1.9082818,0.281911522,0.0191324688,0.119879983 +-1.18899119,3.62688923,1.18899119,9.79846955e-05,0.584894776,0.420000106,0.463503301,0.238358498,0.0192977116,1.68157637 +0.0723764077,3.62694597,-0.0723764077,3.42579983e-06,0.500581503,0.686317146,-1.22169876,-0.0451629721,0.0191961173,0.102386549 +-0.0723452121,3.62704921,0.0723452121,2.20115398e-05,0.363158941,0.407532334,-1.42382574,0.0635061041,0.0191328134,0.102386542 +0.878612995,3.62710667,-0.878612995,0.00330193643,0.170887277,0.0827911049,0.480417699,-0.250474989,0.0192149151,1.24292886 +-0.19332251,3.62729406,0.19332251,0.00012793213,0.148213044,0.130302548,-3.01434469,0.463288814,0.0190758649,0.27353555 +-0.105002195,3.62729836,0.105002195,6.3725005e-05,0.138067439,0.100791804,-2.16380191,0.491007715,0.0191270187,0.148659483 +0.362019062,3.62730718,-0.362019062,0.000300114363,0.201604486,0.130705208,-2.01009178,-0.602402449,0.0190080535,0.511974335 +-0.0762892812,3.62734962,0.0762892812,1.80748775e-05,0.191370592,0.171245441,-1.67261291,0.127658859,0.0191333089,0.108066231 +0.0862172097,3.62748671,-0.0862172097,2.51719393e-05,0.151743039,0.146762013,-2.07037807,0.00946937874,0.019212639,0.121955723 +0.0796830878,3.62748766,-0.0796830878,2.66666793e-05,0.219481692,0.237823203,-1.83196366,0.0109251216,0.0191994347,0.112731978 +-0.451937675,3.6275239,0.451937675,0.000191191008,0.333167315,0.602366388,-0.233744711,1.0293498,0.0187723041,0.639283299 +0.0909942687,3.62763166,-0.0909942687,2.90921671e-05,0.141258776,0.130712301,-2.1438899,0.018996682,0.0192156918,0.128737435 +0.206656605,3.627702,-0.206656605,0.00013417576,0.138405025,0.0744082108,-2.32303333,-0.110304371,0.0191974901,0.292368561 +1.0618937,3.62774539,-1.0618937,0.000407926913,0.178723544,0.0900751352,0.321647197,-0.155774057,0.0192514881,1.50181878 +-0.268933833,3.62774658,0.268933833,0.000124798695,0.149928883,0.154911116,-3.63388491,-0.0741608068,0.0190302264,0.380393386 +0.237422392,3.62775135,-0.237422377,0.000160205425,0.137213677,0.0741482601,-2.41798615,-0.213551968,0.0191743858,0.335783958 +-0.495709836,3.62781501,0.495709836,0.000609515992,0.328728884,0.577536523,0.59236896,0.855434716,0.0189033952,0.701290011 +-0.38972801,3.62785649,0.38972801,0.000207659992,0.256966949,0.391991794,-2.7099781,-0.436757773,0.0187784079,0.551401198 +-0.357542038,3.62808371,0.357542038,9.3114053e-05,0.198970124,0.259721786,-3.46933699,-0.702953458,0.0188929625,0.505677342 +0.115363479,3.62820625,-0.115363486,3.98439843e-05,0.132790893,0.0848820582,-2.21788049,0.0402782001,0.0192293692,0.163245618 +0.082612589,3.62820673,-0.082612589,3.15294092e-05,0.192064852,0.200225815,-1.93697762,0.0121528087,0.0192045327,0.116849802 +-0.166374207,3.62836981,0.166374207,0.000127832696,0.149656147,0.123058341,-2.74003649,0.560152054,0.019094022,0.235372216 +0.165617973,3.62837911,-0.165617973,2.68837503e-05,0.140166759,0.0760815293,-2.21998262,-0.0142174587,0.0192173552,0.234279022 +1.08477807,3.62846446,-1.08477807,0.000345366512,0.399106711,0.225010782,0.324370563,-0.245440125,0.0192561578,1.5341363 +0.1639231,3.62869239,-0.1639231,8.64718095e-05,0.140039653,0.0761485994,-2.21664047,-0.0122271385,0.0192179438,0.231873035 +0.149057865,3.62886977,-0.149057865,3.90240348e-05,0.139502749,0.0775586143,-2.20100808,0.00954208896,0.0192211717,0.210852325 +0.282305539,3.62896371,-0.282305539,0.000358949619,0.143899471,0.0805973336,-2.54512835,-0.404601216,0.0191232227,0.399354815 +0.151035964,3.62901068,-0.15103595,3.43924603e-06,0.139768466,0.0773252621,-2.20046449,0.00705689192,0.0192212146,0.213673919 +0.108565539,3.62915683,-0.108565539,3.31750234e-05,0.125648439,0.0870742872,-2.24618888,0.0561046973,0.0192280822,0.15360254 +-0.126645774,3.62921095,0.126645774,0.000100268313,0.145456254,0.109369986,-2.36673117,0.557758629,0.0191147029,0.179215997 +0.190529838,3.62924767,-0.190529823,0.000188725448,0.13910982,0.0753421113,-2.27215981,-0.0687562674,0.0192078855,0.269785404 +-0.110314101,3.62930465,0.110314101,0.000106486827,0.140489101,0.102100082,-2.21694565,0.508080244,0.0191227626,0.156090677 +0.15248163,3.62930489,-0.152481645,8.38428823e-05,0.139834434,0.0771078393,-2.19815826,0.00541613856,0.0192215908,0.215691715 +-0.276215851,3.62931013,0.276215851,0.000127546256,0.151396304,0.158488467,-3.66036057,-0.136055514,0.0190232787,0.390685618 +-0.285977691,3.62946606,0.285977721,0.000143153768,0.153206259,0.163874418,-3.70052266,-0.216381937,0.0190155432,0.404496938 +0.104086824,3.62966776,-0.104086824,4.32432789e-05,0.120672807,0.089378804,-2.25503445,0.0534045883,0.0192284789,0.147221103 +0.135841981,3.62969112,-0.135841966,5.11384533e-05,0.136504918,0.0782624409,-2.18897676,0.0344795287,0.0192265399,0.192157209 +-0.361151725,3.62978792,0.361151725,8.21112772e-05,0.203630105,0.269116998,-3.42813587,-0.730778515,0.0188770983,0.510803878 +0.33000946,3.62983322,-0.33000946,0.000358615856,0.175597772,0.107065812,-2.40538406,-0.592803717,0.0190552976,0.466714978 +0.121461399,3.62986469,-0.121461391,4.08515043e-05,0.132582515,0.0819413438,-2.21180105,0.0502250716,0.0192299597,0.171915889 +-0.317997634,3.62987757,0.317997634,0.00017540608,0.165304437,0.19038941,-3.72662854,-0.478059888,0.0189793482,0.449911386 +-0.17999658,3.62992382,0.179996565,7.03112892e-05,0.149615601,0.126245886,-2.87049818,0.509803295,0.0190820638,0.254559338 +0.0992832407,3.63003731,-0.0992832407,1.68732913e-05,0.11861223,0.0924765915,-2.25311422,0.0460618958,0.0192281101,0.140432119 +0.300773025,3.63003874,-0.300773025,0.000185415309,0.153079882,0.088629581,-2.54492879,-0.499277592,0.0190991256,0.425644338 +-0.0804890096,3.63013053,0.0804890096,3.47970672e-05,0.148232371,0.118611805,-1.85010624,0.20262602,0.0191275179,0.114078954 +-0.65261364,3.63020134,0.65261364,0.00137408264,0.18084015,0.0915144384,0.0658327416,-0.381602168,0.0192191266,0.923193574 +0.30578202,3.63020205,-0.30578202,0.000466362399,0.156370983,0.0912427306,-2.53337145,-0.517988265,0.0190918725,0.432691216 +1.03686512,3.63050628,-1.03686512,0.00124283682,0.160405144,0.0771975964,0.352818161,-0.124445044,0.0192449186,1.46638823 +0.101804473,3.63052726,-0.101804473,2.94039528e-05,0.117673241,0.0897998065,-2.26026344,0.053534124,0.0192287918,0.144034654 +0.150897011,3.63061953,-0.150897026,2.65640319e-05,0.139353603,0.0774757564,-2.1915741,0.00809838995,0.0192236342,0.213452473 +-0.0764780641,3.63063145,0.0764780641,4.34635112e-05,0.188543499,0.165631637,-1.72499442,0.128169805,0.019127436,0.108292602 +0.0798870549,3.63067913,-0.0798870549,2.27066048e-05,0.215717673,0.238314092,-1.84351909,0.0291145276,0.0191995259,0.11303886 +-0.104583427,3.63073659,0.104583427,7.07708896e-05,0.139017954,0.100533098,-2.17319536,0.473056853,0.0191224478,0.148128569 +0.125127852,3.63092709,-0.125127852,5.09553174e-05,0.133339047,0.0809097514,-2.20284367,0.0473256111,0.0192291141,0.177023202 +0.0892621353,3.63092899,-0.0892621353,2.73253754e-05,0.139024436,0.134325132,-2.11114883,0.0389362462,0.019219473,0.126315698 +-0.365828693,3.63106251,0.365828693,0.000136398841,0.211935401,0.286912948,-3.34680247,-0.746655583,0.0188571308,0.517394722 +0.165078133,3.63109708,-0.165078133,9.02336396e-05,0.139794648,0.076239489,-2.20410061,-0.0169159081,0.019219663,0.233488545 +-0.36250475,3.63119507,0.36250475,3.84909181e-05,0.205297619,0.272318304,-3.41693854,-0.76082319,0.0188682545,0.512731671 +0.34812519,3.63135791,-0.348125219,0.000228368313,0.189810157,0.119522482,-2.18981242,-0.627382636,0.0190274045,0.492324591 +0.260119677,3.63173985,-0.260119677,0.000265513285,0.137843132,0.0753849745,-2.48459744,-0.322928846,0.019150909,0.368101001 +-0.214588314,3.63178086,0.214588314,7.16534778e-05,0.147729129,0.133718237,-3.20554733,0.316010773,0.0190513246,0.303491175 +0.100962326,3.63203764,-0.100962326,1.0359815e-05,0.115822345,0.089126803,-2.25521207,0.0612181053,0.019231407,0.142823786 +-0.204762816,3.63206148,0.204762816,7.00453238e-05,0.148057312,0.132386461,-3.10001779,0.382094264,0.0190598611,0.289656103 +-0.135410756,3.63216329,0.135410756,0.000193064683,0.147904664,0.112512961,-2.44820762,0.561159313,0.0191064905,0.191728458 +0.0927211717,3.63217878,-0.0927211642,1.59275878e-05,0.11582312,0.109484464,-2.205621,0.0560640693,0.0192242395,0.131149709 +-0.190094024,3.63246202,0.190094039,0.000113631584,0.148882225,0.128532484,-2.96759796,0.448097885,0.0190712046,0.268952608 +-1.05961335,3.63249779,1.05961347,0.00100471242,0.166971952,0.0829770565,0.372549504,-0.170242637,0.0192657523,1.4986527 +0.0953395963,3.63250303,-0.0953395888,2.06651457e-05,0.112274975,0.101140536,-2.22679329,0.0703216642,0.0192290731,0.134878725 +0.102291614,3.63253927,-0.102291614,2.08792517e-05,0.116296321,0.0883842558,-2.25014687,0.064220354,0.019232709,0.144693241 +-0.176236153,3.632586,0.176236153,7.497966e-05,0.150001362,0.12439923,-2.83101749,0.502563119,0.0190810282,0.249242187 +-0.336918652,3.6326685,0.336918652,0.000130225351,0.176879168,0.212898344,-3.65723801,-0.638138652,0.0189359114,0.476639509 +-0.0926125348,3.63267827,0.0926125348,4.64943805e-05,0.137243494,0.0989562869,-2.0612967,0.367733955,0.0191219281,0.131043226 +-0.360292614,3.63278079,0.360292614,0.000103851533,0.199909002,0.259530544,-3.46459413,-0.790133417,0.0188735928,0.50959754 +0.12984477,3.63279366,-0.12984477,5.12748738e-05,0.134118944,0.0787855759,-2.18098903,0.0445456617,0.0192309916,0.183710292 +-0.251875788,3.63287163,0.251875788,5.61175257e-05,0.148782164,0.146248505,-3.50147986,0.0397746786,0.0190281589,0.356210947 +-0.435403377,3.6328795,0.435403407,0.000295721868,0.333274126,0.600467861,-0.907889128,0.775226772,0.018717967,0.616258204 +-0.252505511,3.63302636,0.252505511,6.03390872e-05,0.148865044,0.146496311,-3.50578117,0.0330055915,0.0190275609,0.357101411 +-0.252192199,3.63324142,0.252192199,3.39823009e-06,0.148846477,0.146264017,-3.50293064,0.034104865,0.019027302,0.356660515 +-0.251868427,3.63335347,0.251868427,5.0184608e-05,0.148832306,0.146065637,-3.50018334,0.0357997976,0.019027371,0.356200606 +-0.253117532,3.63346148,0.253117532,6.26865585e-05,0.148965523,0.146607712,-3.5076375,0.0251524486,0.0190265235,0.357964814 +-0.179147229,3.63347793,0.179147229,4.60401998e-06,0.150000989,0.124961138,-2.85902166,0.487361073,0.0190774053,0.253389478 +-0.252307177,3.63356209,0.252307177,2.7776583e-05,0.148892209,0.146184579,-3.50211382,0.0310499314,0.0190266483,0.356823504 +-0.410413206,3.63369155,0.410413176,0.00026264292,0.270110339,0.434805125,-1.99520481,-0.160597116,0.0187387262,0.580460548 +0.178070262,3.63369608,-0.178070247,0.000115189701,0.139433175,0.0756132603,-2.21906352,-0.0494091511,0.0192128271,0.251829982 +0.178067505,3.63378835,-0.178067505,7.52545247e-06,0.139421225,0.0756140426,-2.21869206,-0.049570933,0.0192128513,0.251826733 +0.178137839,3.63379407,-0.178137854,8.99250081e-05,0.139420882,0.075610891,-2.21877313,-0.0497226305,0.0192128327,0.251925796 +0.178077653,3.63382769,-0.178077653,8.88720741e-09,0.139415413,0.075617604,-2.21847606,-0.0496392101,0.0192128904,0.251841336 +-0.251919925,3.63384557,0.251919925,6.52697054e-05,0.148902461,0.145960823,-3.49750805,0.0328334682,0.0190265048,0.356273204 +0.178018406,3.63384748,-0.178018406,5.22395931e-05,0.139413178,0.0756197125,-2.21826339,-0.0495466739,0.0192129258,0.251756728 +-0.305817127,3.63389349,0.305817157,0.000179419134,0.159712404,0.17681472,-3.71854591,-0.403991342,0.0189895611,0.432526261 +0.112305887,3.63390183,-0.112305887,3.7579186e-05,0.125652909,0.0845255703,-2.21536207,0.0757876784,0.0192374997,0.158846647 +0.178126514,3.63391042,-0.178126514,2.12983177e-05,0.139411762,0.0756179243,-2.21807051,-0.0499425642,0.0192128867,0.251909435 +0.075723663,3.63391042,-0.075723663,3.01758464e-05,0.354116172,0.451162457,-1.54388309,0.0377807207,0.0191904958,0.107168645 +0.0833829939,3.63391495,-0.0833829939,2.05918914e-05,0.167056844,0.188031644,-1.97656357,0.0713106468,0.0192102678,0.117935836 +0.121026009,3.63393021,-0.121026009,4.79024893e-05,0.1311571,0.0816023275,-2.19530416,0.0570846349,0.0192344021,0.171259075 +-0.362787127,3.63398719,0.362787127,9.33770934e-05,0.201888099,0.263557553,-3.43619871,-0.824352741,0.0188658312,0.513108313 +0.139831543,3.63398838,-0.139831543,6.40105281e-05,0.136984229,0.0778718889,-2.15768623,0.0257892478,0.01923237,0.19777599 +-0.0852232501,3.63399935,0.0852232501,5.08302001e-05,0.140577003,0.105901696,-1.97034526,0.273852229,0.0191211626,0.120759428 +0.178031087,3.63403964,-0.178031102,3.74154697e-05,0.139400959,0.0756350607,-2.21706748,-0.0499612018,0.0192129854,0.251774251 +-0.328479767,3.63410044,0.328479767,0.000118732234,0.171153337,0.200014308,-3.68192673,-0.587671816,0.0189518556,0.464631438 +-0.119434141,3.63411188,0.119434141,0.000117922165,0.144544005,0.104286768,-2.30989695,0.517819822,0.0191108305,0.169001997 +-0.267451704,3.63416815,0.267451704,0.000111297108,0.150527164,0.15348798,-3.59378052,-0.0930173397,0.0190171376,0.378380507 +0.147885129,3.6342051,-0.147885144,7.09212254e-05,0.138090611,0.0776929632,-2.1677804,0.013018582,0.0192296114,0.209157243 +-0.0934368744,3.63427401,0.0934368744,5.15620595e-05,0.137721971,0.098459363,-2.07649541,0.37013787,0.0191194694,0.13224113 +0.0933212936,3.63428617,-0.0933212936,7.10137056e-06,0.112911656,0.10814175,-2.20087719,0.0711607188,0.0192266796,0.13201353 +-0.199617326,3.63432646,0.199617326,7.51286498e-05,0.148612604,0.129981369,-3.04709411,0.389673173,0.019061178,0.282361925 +0.0919468701,3.63450003,-0.0919468775,2.06249042e-05,0.111832455,0.108385012,-2.19413137,0.071136415,0.0192272626,0.130066916 +-0.17977795,3.63452911,0.17977795,5.93441946e-05,0.150042564,0.12483456,-2.86205697,0.478651404,0.0190756712,0.254263192 +-0.321753919,3.63455606,0.321753919,0.000136718212,0.16692248,0.192121878,-3.70631671,-0.539959848,0.0189636908,0.455270052 +-0.0920918435,3.63457036,0.0920918435,4.04562597e-05,0.137793332,0.0988692716,-2.06389332,0.3556557,0.0191194471,0.130313009 +-0.178425908,3.63457751,0.178425908,3.03686829e-05,0.150097281,0.124602117,-2.84992337,0.483262062,0.0190765131,0.252365112 +-0.304569095,3.63463879,0.304569095,0.000105896303,0.159306854,0.175764814,-3.71398258,-0.398917377,0.0189892314,0.430768758 +-0.271948606,3.63476276,0.271948606,4.65838821e-05,0.151147649,0.155212551,-3.61531186,-0.130818397,0.0190140903,0.384747446 +-0.253154159,3.63480759,0.253154159,6.03143126e-05,0.149111718,0.146186218,-3.49859428,0.0189268328,0.0190243069,0.358015686 +-0.289736867,3.63483906,0.289736867,0.000172281158,0.154497415,0.16516614,-3.68981791,-0.27617842,0.0190004911,0.409968615 +0.197827399,3.63494349,-0.197827399,0.000142195859,0.138431296,0.0748286918,-2.26691341,-0.105779245,0.0192024186,0.279959649 +-0.482380688,3.63544917,0.482380688,0.000361981802,0.360352129,0.653462112,0.426701546,0.942851782,0.018844882,0.682470322 +-0.239130884,3.63547635,0.239130884,0.00014091644,0.148158878,0.141927287,-3.39899731,0.128060356,0.0190295428,0.338399529 +0.358020216,3.63550258,-0.358020216,0.000270478427,0.196483925,0.125223741,-2.05931473,-0.662153661,0.0190109294,0.506338298 +-0.305737555,3.63565183,0.305737555,7.89656988e-05,0.159740523,0.176191121,-3.70960808,-0.41364491,0.0189865027,0.432405114 +-0.208169743,3.6356926,0.208169743,4.80424242e-05,0.148331732,0.132307708,-3.12816238,0.335157037,0.0190505087,0.294523835 +-0.34429121,3.63575649,0.34429121,0.000222444258,0.182371467,0.223609582,-3.59522414,-0.717967749,0.0189104918,0.487141967 +0.0854780823,3.63580704,-0.0854780823,1.53633428e-05,0.149609834,0.17041257,-2.03069782,0.103026383,0.0192152448,0.120933659 +0.0723813027,3.63589454,-0.0723813027,2.53011513e-06,0.574771523,0.860839367,-1.48075831,0.0358667932,0.0191806294,0.102386631 +-0.179330543,3.63591218,0.179330543,8.54488026e-05,0.150122881,0.124438308,-2.85323119,0.473147452,0.0190741699,0.253632456 +-0.0812652558,3.63614798,0.0812652558,4.28977146e-05,0.145550415,0.111054763,-1.92029524,0.204863608,0.0191177428,0.115110114 +0.0729990676,3.63622928,-0.0729990751,1.94808417e-05,0.531499743,0.783157051,-1.52709532,0.0405745842,0.0191817079,0.103244901 +0.358341604,3.63633037,-0.358341604,3.95626103e-06,0.196435288,0.125148714,-2.05236483,-0.667435706,0.0190102234,0.506806552 +0.359194338,3.63635325,-0.359194309,0.000236949621,0.196820974,0.125549749,-2.03910208,-0.667007089,0.0190089718,0.508003116 +0.0932223052,3.63636231,-0.0932223052,1.45994682e-05,0.106819324,0.102334961,-2.19040346,0.0879486501,0.0192364436,0.131856441 +0.0970815867,3.63638449,-0.0970815867,2.54596507e-05,0.106131457,0.0971047282,-2.22357726,0.101133645,0.0192346871,0.137376085 +-0.168800116,3.63640499,0.168800116,7.66080411e-05,0.150319353,0.121172212,-2.74955726,0.503885448,0.019080082,0.238744944 +0.0795076787,3.63646197,-0.0795076787,1.84542769e-05,0.294634938,0.393051147,-1.85645652,0.0974337459,0.0191880763,0.112465516 +0.255530596,3.63648891,-0.255530596,8.56878614e-05,0.137007132,0.0746499747,-2.44215298,-0.319163322,0.0191560481,0.361733109 +0.394962192,3.63657188,-0.394962162,0.00148301921,0.213183194,0.144083634,-1.45077634,-0.632097483,0.0189673547,0.559129477 +0.0862534046,3.63660359,-0.0862534195,1.63383484e-05,0.132504061,0.152721956,-2.07497025,0.113128364,0.0192153119,0.122016802 +0.0723817125,3.63667774,-0.0723817125,2.85442553e-07,0.565241456,0.846998811,-1.48257256,0.0435540378,0.0191815849,0.102386631 +0.0995082408,3.63680267,-0.0995082408,1.82246968e-05,0.107707918,0.0964871123,-2.21830463,0.102446698,0.0192364585,0.140788004 +-0.106314555,3.63682437,0.106314555,0.000134683432,0.140654147,0.0997248143,-2.19563866,0.456105232,0.0191140343,0.150452405 +-0.0927932635,3.63693762,0.0927932635,5.00433234e-05,0.137906104,0.0979985744,-2.07625628,0.356375813,0.0191164166,0.131311476 +-0.606260419,3.63694596,0.606260419,0.000718043477,0.175393596,0.106268369,0.304313958,-0.392522931,0.019180527,0.85744679 +0.0840253085,3.63701844,-0.0840253085,2.18531331e-05,0.202148706,0.253836423,-2.00830722,0.113677755,0.0192041565,0.118841447 +0.357555211,3.63713074,-0.35755524,0.000210673898,0.195535064,0.124310762,-2.05811834,-0.670398951,0.0190111306,0.505678117 +0.222758263,3.63724184,-0.222758263,0.000276241743,0.13725701,0.0738696307,-2.32227683,-0.189261943,0.019186601,0.315156668 +0.0732233971,3.63724494,-0.0732233971,5.40220844e-06,0.522386789,0.783725202,-1.52416515,0.056231901,0.0191850848,0.10356465 +-0.0955244452,3.63725901,0.0955244452,6.45942055e-05,0.13875331,0.0982160345,-2.09868622,0.371311843,0.01911515,0.135137677 +1.07935452,3.63734674,-1.07935452,0.000144999794,0.400651604,0.22895585,0.368422717,-0.241361544,0.0192433503,1.52651441 +-0.316708624,3.63738823,0.316708654,0.000130517554,0.164977223,0.186943755,-3.68942142,-0.511697531,0.018967649,0.448040575 +0.35880205,3.63742614,-0.35880208,0.000550480967,0.196212187,0.124900624,-2.04339671,-0.673704743,0.0190091077,0.507442474 +0.115504622,3.63756895,-0.115504622,4.25995313e-05,0.124712028,0.0837718099,-2.19920611,0.0841609463,0.0192416497,0.163392454 +-0.22728774,3.63772917,0.22728774,0.000102655613,0.148048908,0.137451798,-3.29593468,0.19953379,0.0190318823,0.321744591 +0.123269215,3.63782358,-0.123269215,3.49153197e-05,0.130827099,0.0812701061,-2.16304708,0.0538430735,0.019240329,0.174426585 +0.310866445,3.63787627,-0.310866445,0.00050452695,0.157951251,0.0920221433,-2.46803212,-0.570652068,0.0190813057,0.439808577 +0.188365787,3.63789558,-0.188365787,0.000133550682,0.138917446,0.0752676949,-2.2258172,-0.08476381,0.0192073397,0.266587436 +0.128160715,3.63809776,-0.128160715,3.25769724e-05,0.131442547,0.0794928893,-2.14868784,0.0567382686,0.0192440785,0.181291312 +0.217124328,3.63817263,-0.217124313,9.92125133e-05,0.13752985,0.0740408748,-2.30058789,-0.172412395,0.019189965,0.307152152 +-0.124769405,3.63820052,0.124769397,0.000134546601,0.146378934,0.105416007,-2.36268139,0.508278847,0.0191025119,0.17664367 +0.102826074,3.63822746,-0.102826074,2.31201411e-05,0.105970427,0.0900922269,-2.22688103,0.109953485,0.0192435309,0.145517826 +-0.380871028,3.63830423,0.380871028,0.000284397771,0.229481742,0.323529005,-3.11565971,-0.882268846,0.0188065041,0.538704515 +0.0816047043,3.6383574,-0.0816047043,1.50761662e-05,0.255904764,0.34118554,-1.91098714,0.130911529,0.0191977955,0.11545679 +0.113695875,3.63836408,-0.113695875,2.12258565e-05,0.123217344,0.0835052207,-2.19439244,0.0897279605,0.019244764,0.160843581 +0.207638636,3.63849664,-0.207638636,0.00015286298,0.1378479,0.0745226443,-2.2718997,-0.141240492,0.0191972815,0.293856621 +-0.233435988,3.63872051,0.233435988,0.000111502493,0.148232579,0.138803929,-3.33560419,0.153076604,0.0190285482,0.330359459 +-1.0327096,3.63872361,1.0327096,0.001266632,0.156869486,0.0751412064,0.428999037,-0.138649136,0.0192660652,1.46057999 +-0.206067085,3.63893914,0.206067085,0.000106007668,0.148698628,0.130451813,-3.09628105,0.326054394,0.01904683,0.291571558 +0.0960476324,3.63925242,-0.0960476324,1.89744424e-05,0.0978601947,0.0906063467,-2.20137262,0.121301889,0.0192486066,0.135875836 +-0.270068705,3.63933849,0.270068705,6.6082699e-05,0.151237085,0.153616726,-3.57514167,-0.133789554,0.0190081727,0.382084668 +-0.213544056,3.63965821,0.213544056,0.000115909039,0.148593709,0.131806001,-3.16056299,0.277505845,0.0190404691,0.302027792 +0.106726587,3.63972688,-0.106726587,2.91052929e-05,0.112265691,0.0821038634,-2.1970346,0.111476623,0.0192522779,0.150935829 +-0.219136909,3.63997865,0.219136894,0.000109912573,0.148450688,0.13329649,-3.20966291,0.242330968,0.0190358218,0.310004711 +1.0608139,3.64003754,-1.0608139,0.00097861141,0.177639782,0.0893092155,0.311714977,-0.150627285,0.0192406494,1.50025964 +0.0894676074,3.64010262,-0.0894676074,1.54387599e-05,0.0915984064,0.10504254,-2.16611028,0.160653025,0.0192403123,0.126530945 +0.106570043,3.64016962,-0.106570043,1.14218255e-05,0.111684173,0.0819129646,-2.19573045,0.113415956,0.0192530528,0.150715351 +0.10671442,3.6402564,-0.10671442,6.77560683e-06,0.111732118,0.0818911269,-2.19476271,0.11354997,0.0192532707,0.150920838 +-0.40416491,3.64027452,0.40416491,0.000229046622,0.266896516,0.417613328,-2.53992081,-0.678866506,0.0187406912,0.571676016 +0.0835891813,3.64029837,-0.0835891813,1.68197621e-05,0.199526682,0.263496459,-1.9725225,0.162494421,0.019226402,0.118234068 +-0.0723080263,3.6403203,0.0723080188,2.64274458e-05,0.33541435,0.36299935,-1.59691691,0.0666256249,0.0191129409,0.102386534 +0.635729134,3.64033937,-0.635729134,0.00141224789,0.171105504,0.0912365094,0.283289194,-0.407066554,0.0191207454,0.899999976 +1.2029227,3.64041376,-1.2029227,0.000395681069,0.198290855,0.103779435,0.228176743,0.0794602185,0.019242797,1.70134377 +0.106612325,3.6404171,-0.106612325,5.73742909e-06,0.1115762,0.0818335041,-2.19237781,0.114184678,0.0192540661,0.150775552 +0.2999129,3.64046931,-0.2999129,0.000281654211,0.151375473,0.0867522284,-2.48536444,-0.533870876,0.0190969594,0.424326867 +1.00131381,3.64055443,-1.00131381,0.00122259499,0.161508188,0.0779923946,0.426023841,-0.175290406,0.0192280952,1.41625142 +0.106796861,3.64062595,-0.106796861,2.09560112e-05,0.111706011,0.0818278119,-2.18871546,0.114110798,0.0192552563,0.151035085 +-0.141885877,3.64069819,0.141885877,0.00019692551,0.149323821,0.112427071,-2.51506686,0.506772876,0.0190882906,0.201027825 +0.1152215,3.64071012,-0.1152215,2.40117315e-05,0.123953149,0.0835510418,-2.16566467,0.0890851319,0.0192523059,0.162978336 +-0.468979418,3.64073372,0.468979418,0.000940864207,0.383240759,0.712699175,0.0978419557,1.0038501,0.0187780783,0.663495123 +0.0786107183,3.64076018,-0.0786107183,1.53977253e-05,0.35475564,0.537225246,-1.68176115,0.15743342,0.0191983245,0.111274123 +0.133650318,3.64076161,-0.133650318,5.58432876e-05,0.133555532,0.0786500052,-2.13477182,0.0385366566,0.0192400515,0.189073652 +0.245242417,3.64085197,-0.245242417,0.000204417171,0.136740625,0.0737835467,-2.38146234,-0.288213193,0.0191646796,0.346879065 +-0.592021704,3.64095259,0.592021704,0.000633384974,0.176128298,0.118827641,0.292247027,-0.383099914,0.0191637576,0.837307572 +-0.201217994,3.64100027,0.201217994,0.000101277816,0.149252862,0.128021181,-3.0421772,0.339942038,0.0190488547,0.284632057 +0.10553056,3.64104199,-0.10553056,8.23873597e-06,0.108197831,0.0821999684,-2.18784094,0.122622967,0.0192583092,0.149243101 +0.143019676,3.64127588,-0.143019676,6.34423632e-05,0.135855272,0.0780382827,-2.12674499,0.0191756245,0.0192386359,0.202347964 +-0.302277595,3.64129567,0.302277595,6.20883802e-05,0.159151942,0.171937361,-3.66435575,-0.413122773,0.0189805087,0.427488863 +-0.120228678,3.64138913,0.120228678,4.3439446e-05,0.145904034,0.10385146,-2.32902265,0.485949785,0.0191001277,0.170338333 +-0.191642031,3.64144611,0.191642031,9.22666368e-05,0.149774134,0.12553972,-2.95557117,0.384126604,0.0190550555,0.271154523 +0.276694894,3.6415,-0.276694894,0.000323297427,0.140252933,0.0772472173,-2.47657657,-0.434611261,0.0191280562,0.391448438 +0.237279147,3.64154029,-0.237279147,0.000138947798,0.136802956,0.0735500231,-2.34895897,-0.256725848,0.0191720184,0.335654348 +-0.0771550238,3.64170575,0.0771550238,5.29301033e-05,0.175889343,0.147045106,-1.8364284,0.127027944,0.0191116277,0.109290399 +0.0920888558,3.64174247,-0.0920888558,2.77057879e-05,0.0814752951,0.0915062129,-2.19144773,0.179080784,0.0192523338,0.13024351 +-1.07807004,3.64187527,1.07807016,0.000338984624,0.350898802,0.193628758,0.379998356,-0.232372344,0.0192570388,1.52475703 +0.119995579,3.64192629,-0.119995579,3.0698684e-05,0.12461555,0.0822517574,-2.14768338,0.0902736261,0.0192571804,0.169820607 +0.156593993,3.64194274,-0.156594008,4.30457621e-05,0.138108507,0.0769406483,-2.13475609,-0.0141344285,0.0192294996,0.221466124 +0.112814561,3.64213371,-0.112814561,3.66735258e-05,0.120309874,0.0827042311,-2.13997984,0.100324869,0.0192646571,0.159564525 +-0.159356698,3.64218116,0.159356698,0.000123422855,0.150343791,0.117648132,-2.65852737,0.489659071,0.0190791339,0.22549361 +-0.359445512,3.64218807,0.359445512,0.000145989412,0.19366467,0.242882669,-3.43657589,-0.877649546,0.0188707635,0.508346796 +0.156270355,3.64220023,-0.15627037,1.19773476e-05,0.13801235,0.077010937,-2.13346672,-0.0135779306,0.0192299057,0.221008807 +0.156946748,3.64224672,-0.156946748,5.37955093e-05,0.138086289,0.0769448429,-2.13336325,-0.0150885144,0.019229684,0.221961856 +0.091047436,3.64228821,-0.091047436,1.23101827e-05,0.0784976631,0.0894242972,-2.17641377,0.18592231,0.0192568582,0.128776148 +0.15513052,3.64233184,-0.15513052,5.16184664e-05,0.13777943,0.0770983174,-2.13131738,-0.0108365798,0.019231014,0.219390556 +0.156508952,3.64233303,-0.156508967,7.50586537e-07,0.138028741,0.0769986212,-2.13247824,-0.0141454404,0.0192300752,0.221348822 +1.19826245,3.64271879,-1.19826245,0.000217982975,0.292156607,0.173598319,0.374971151,0.113688558,0.0192380603,1.6947546 +-0.0868631452,3.64279795,0.0868631452,4.2826312e-05,0.140948862,0.0998024791,-2.03701925,0.270005733,0.0191076472,0.122967035 +0.156258479,3.64280558,-0.156258479,2.6556585e-05,0.137936682,0.0771114379,-2.12797546,-0.0138551118,0.0192311034,0.220989153 +0.138788939,3.64290071,-0.138788924,4.87349316e-05,0.134852007,0.0781895444,-2.11251998,0.0275247134,0.0192433316,0.196309909 +-0.115438603,3.64295578,0.115438595,0.00011174471,0.144977719,0.101543024,-2.29130268,0.459297776,0.0191001799,0.163372681 +0.281453818,3.6429882,-0.281453818,0.000180154108,0.141681448,0.0784056112,-2.47781157,-0.460002065,0.0191219207,0.398293912 +-0.0722705424,3.64305663,0.0722705424,3.26383015e-05,0.32976079,0.354733258,-1.63430715,0.0687333941,0.0191084091,0.102386549 +0.240916729,3.64322114,-0.240916729,5.38057866e-05,0.13661088,0.0734811351,-2.35359693,-0.276581913,0.0191686414,0.340894669 +-0.422558844,3.64325762,0.422558844,0.000341627747,0.303249061,0.519283891,-1.77670014,-0.127319455,0.0187219866,0.597856998 +-0.40183413,3.6433208,0.4018341,3.4636847e-05,0.261062205,0.40221867,-2.67485309,-0.837649107,0.0187473837,0.568400264 +-0.393593073,3.64342546,0.393593073,0.00015405289,0.245125651,0.363235325,-2.86869526,-0.904196203,0.0187716708,0.556654215 +0.0995504409,3.64345479,-0.0995504409,1.47388546e-05,0.0936669782,0.0824876726,-2.16381049,0.154977396,0.0192738846,0.140794188 +0.0869804174,3.64346361,-0.0869804174,1.97780591e-05,0.114701703,0.154366255,-2.0866456,0.230866447,0.0192472413,0.123048678 +0.1311692,3.64355183,-0.1311692,3.89706947e-05,0.131277069,0.0793170929,-2.11719799,0.0510757118,0.0192496069,0.185535669 +-0.0823093355,3.64391279,0.082309328,5.34400242e-05,0.143015951,0.104864441,-1.97220588,0.20270279,0.0191073809,0.116600931 +1.20909846,3.64394784,-1.20909846,0.000308467395,0.169743881,0.0859460384,0.16061601,0.0536503904,0.0192415044,1.71009398 +0.092219919,3.64407349,-0.092219919,1.02335471e-05,0.0749962106,0.083140634,-2.14382577,0.204463273,0.0192810073,0.130422771 +0.167887881,3.6441052,-0.167887896,0.00015229758,0.138281524,0.0763812959,-2.14740419,-0.0469073206,0.0192218162,0.237584651 +0.100315072,3.64425159,-0.100315072,1.32231271e-05,0.0922765359,0.0801952854,-2.16193104,0.160410434,0.0192781519,0.141880423 +-0.276082158,3.64425564,0.276082158,0.000167720937,0.152543306,0.154549405,-3.56243086,-0.204809934,0.0189966392,0.390512824 +1.19447088,3.64426565,-1.19447088,9.23149419e-05,0.58514595,0.444962263,0.548612535,0.125039622,0.0192345772,1.68939185 +-0.377113402,3.64428568,0.377113402,0.000181044976,0.213560775,0.285896331,-3.24912858,-1.03499877,0.0188164208,0.533421099 +-0.19565329,3.64455438,0.195653275,7.79561669e-05,0.149747357,0.126070082,-2.98017812,0.349297464,0.0190474838,0.276953638 +0.0841334239,3.64458799,-0.0841334313,7.98044857e-06,0.0690536052,0.109594256,-2.03092885,0.25320825,0.0192662701,0.118987322 +0.127135247,3.64460468,-0.127135262,4.60600095e-05,0.129177243,0.0795847848,-2.10926223,0.0632746816,0.0192551445,0.179863244 +-0.566095948,3.64466047,0.566095948,0.0008556908,0.177033752,0.150323927,0.322917014,-0.393159688,0.0191329867,0.800801635 +-0.334368914,3.64471388,0.334368885,0.00024158771,0.173604816,0.19962211,-3.60115099,-0.710265636,0.0189237799,0.47296536 +0.0843236893,3.64471531,-0.0843236968,2.49184995e-06,0.063055478,0.100345187,-2.04363489,0.257730842,0.0192665905,0.119257607 +0.0995579436,3.6447506,-0.0995579362,2.84270736e-05,0.0880760476,0.0821960121,-2.16282511,0.177152291,0.0192792267,0.140805826 +-0.217547834,3.64477277,0.217547834,0.000134255752,0.14873524,0.131979197,-3.17155766,0.229551375,0.0190307535,0.307748139 +0.0845785066,3.64489627,-0.0845785066,3.13986675e-06,0.0486980751,0.0777830034,-2.0549674,0.264737785,0.0192701984,0.119614497 +0.0843347684,3.64503193,-0.0843347684,7.55423389e-06,0.0482060313,0.0765566304,-2.02654147,0.261073738,0.0192779358,0.119271234 +-0.240446538,3.64503479,0.240446553,0.00014612735,0.14954567,0.139554337,-3.349195,0.0678760707,0.0190125685,0.340250194 +-0.446015358,3.64524031,0.446015358,0.000395763607,0.368388981,0.673500836,-1.06685007,0.31714353,0.0187184494,0.631158352 +0.15787372,3.64525032,-0.157873735,2.96793496e-05,0.137971923,0.077155523,-2.113976,-0.0223147161,0.0192307476,0.223268047 +-0.154589444,3.64526439,0.154589444,0.000195268498,0.150496721,0.114237122,-2.61358118,0.475466311,0.0190769285,0.218741089 +0.0839226916,3.64526629,-0.0839226916,1.20447239e-05,0.0477101058,0.0753490925,-1.99027061,0.249544889,0.0192785095,0.118686587 +0.101327956,3.64549303,-0.101327948,1.58345829e-05,0.0922356844,0.0788297504,-2.13986659,0.16526866,0.0192877408,0.143304378 +-0.287061721,3.64560652,0.287061721,0.000149891595,0.154671162,0.160641015,-3.59994626,-0.300648898,0.0189858358,0.406048238 +0.145384386,3.64574003,-0.145384386,6.5098342e-05,0.135835871,0.0780642331,-2.10058713,0.00692898594,0.0192394145,0.205655575 +-0.17036809,3.64585018,0.17036809,7.75698572e-05,0.150875926,0.119230315,-2.75001383,0.441393226,0.0190645047,0.241062686 +0.142325073,3.64595222,-0.142325073,4.39008109e-05,0.135402292,0.0782371312,-2.09303355,0.0133514684,0.0192425381,0.201351419 +-0.159148753,3.64598227,0.159148768,2.22139406e-05,0.150782138,0.116426326,-2.65669203,0.463722795,0.0190709215,0.225338519 +-0.407496929,3.64610958,0.407496929,0.000293016754,0.268471539,0.419338286,-2.57837462,-0.868416905,0.0187380724,0.576358557 +-0.636391163,3.64612556,0.636391163,0.000542477123,0.1728203,0.0960318223,0.30837217,-0.405760556,0.0192131177,0.899999857 +0.122473374,3.64614248,-0.122473359,6.09466297e-05,0.124308661,0.0819023922,-2.11259055,0.0864201486,0.0192635059,0.173319221 +-0.0774085149,3.64625883,0.0774085149,6.82470127e-05,0.171692505,0.139685735,-1.8826052,0.129573748,0.0191043708,0.109740078 +-0.599245191,3.64636493,0.59924525,0.000301226275,0.175368711,0.107847176,0.30901733,-0.410947442,0.0191672761,0.847616136 +0.0897626281,3.64648247,-0.0897626206,1.82202402e-05,0.0325365588,0.0420652144,-2.13599539,0.299918741,0.0193087161,0.126955613 +-0.0877761766,3.64657569,0.0877761766,7.45398283e-05,0.14120318,0.0984098017,-2.0548687,0.268782914,0.0191027783,0.124269359 +0.20205757,3.64661932,-0.202057585,0.000133476482,0.137683392,0.0747931972,-2.20976067,-0.144968033,0.019200895,0.285876215 +-0.456142932,3.64667654,0.456142962,0.000276328414,0.377858996,0.693073094,-0.727370918,0.401206434,0.0187424924,0.645382345 +-0.165049598,3.64670587,0.165049583,9.83467908e-05,0.150892198,0.117199861,-2.70174241,0.447831661,0.0190677755,0.233455658 +-0.134322047,3.64674091,0.134322047,0.000160200478,0.149260998,0.106430732,-2.44226766,0.472476661,0.0190841071,0.190258503 +0.118716359,3.64698076,-0.118716359,2.26109787e-05,0.123233065,0.0821371153,-2.09454942,0.0983189568,0.0192742031,0.16797325 +1.07862496,3.64702702,-1.07862496,0.000345714448,0.376169384,0.212318331,0.340852112,-0.219949991,0.0192332938,1.52544963 +0.134742796,3.64715505,-0.134742796,4.47986858e-05,0.132361919,0.0793020502,-2.07394648,0.0403111428,0.0192582756,0.190598443 +0.184878498,3.6471982,-0.184878513,0.000142557314,0.13823387,0.0759441182,-2.16204524,-0.0956741124,0.0192134939,0.261580825 +0.094459489,3.6472044,-0.094459489,1.59768588e-05,0.0678872466,0.0714204311,-2.09958267,0.235810071,0.0193170104,0.133605316 +-1.05839944,3.64732146,1.05839944,0.000936640194,0.168316662,0.0836656615,0.364291698,-0.156201065,0.019256657,1.49691439 +-0.636010706,3.64736485,0.636010647,8.06665557e-05,0.17277962,0.0961090997,0.308983326,-0.408115566,0.0192120448,0.899471581 +0.1050139,3.64741349,-0.1050139,2.17933775e-05,0.0980681106,0.0800581127,-2.09458494,0.156257406,0.0192992017,0.148555428 +-0.993251026,3.64743304,0.993251026,0.000812674814,0.159046263,0.0760197937,0.499878645,-0.190263957,0.0192589983,1.40553117 +0.243893951,3.64744902,-0.243893966,0.000114128175,0.136508659,0.0732400343,-2.34105515,-0.303136706,0.0191635471,0.345013291 +-0.636378944,3.64746904,0.636379004,1.97105e-07,0.172756851,0.0959802419,0.309243202,-0.408477694,0.0192123242,0.899999857 +0.256391168,3.64750957,-0.256391168,0.000238557943,0.136817381,0.0740047395,-2.38070107,-0.357760072,0.0191511586,0.362737328 +-0.108674258,3.64758301,0.108674251,0.000109705878,0.143883109,0.0976639241,-2.24247408,0.412901402,0.0190959629,0.153912663 +0.0923238844,3.64759779,-0.0923238844,2.41618109e-05,0.0471256524,0.056887839,-2.10518885,0.28775996,0.0193249881,0.130571574 +-0.224086314,3.64760542,0.224086329,6.89476365e-05,0.149241984,0.132828802,-3.19985962,0.175469711,0.0190226063,0.316932142 +-0.382464379,3.64766407,0.382464349,0.000208380836,0.217953682,0.294542879,-3.16546488,-1.1162653,0.0188016482,0.540975273 +-0.145840764,3.64782715,0.145840764,0.000125554536,0.149969861,0.112941504,-2.54408669,0.472536862,0.0190765616,0.206833094 +-0.295365512,3.64796782,0.295365512,9.32031253e-05,0.15749456,0.16444923,-3.60752869,-0.388855785,0.0189753678,0.417729825 +0.107026085,3.6480794,-0.107026085,1.53016263e-05,0.101749226,0.0810461789,-2.07834673,0.14787133,0.0193020329,0.151380286 +-0.189905345,3.6482029,0.189905345,0.000209611346,0.150145233,0.123700254,-2.91683602,0.355102271,0.0190473013,0.268711478 +0.0786524266,3.64824009,-0.0786524266,1.45260728e-05,0.0611629374,0.0891561657,-1.43734407,0.158077046,0.0193328746,0.111274391 +0.278881282,3.64830422,-0.278881282,6.86559797e-05,0.140309259,0.0771692321,-2.44228292,-0.467927903,0.0191243198,0.39462629 +-0.636387169,3.6483953,0.636387169,0.000695452327,0.172730461,0.0959471762,0.309399247,-0.410345465,0.0192115866,0.899999857 +-0.53140378,3.64847112,0.53140378,0.000256616331,0.224209294,0.308856547,0.4324449,-0.254664749,0.0190430414,0.751520574 +0.868461967,3.6485846,-0.868461967,0.00462117465,0.170478016,0.0823168829,0.459045589,-0.268634796,0.0191993602,1.229164 +-0.596408963,3.64864802,0.596408963,0.000324347202,0.175422996,0.111946106,0.313911974,-0.418729305,0.0191646684,0.843642056 +0.438141644,3.64868832,-0.438141644,0.000501392293,0.21080409,0.144297168,-0.766657829,-0.618248224,0.018948257,0.619637191 +0.219050556,3.64873815,-0.219050556,0.000111527545,0.137077749,0.0736876354,-2.25197029,-0.209291413,0.0191858914,0.309819311 +-0.263428509,3.64887977,0.263428509,0.000101260121,0.151666105,0.146796316,-3.46685624,-0.125554338,0.0189954322,0.372636139 +0.194475517,3.64895773,-0.194475517,0.000129421795,0.13807407,0.0751429796,-2.17698598,-0.128064945,0.0192048382,0.275160491 +0.88095361,3.64899445,-0.88095361,0.000229235884,0.170044586,0.0821317881,0.467892617,-0.267102301,0.0192013718,1.24674857 +-0.329405099,3.64905167,0.329405099,8.8035209e-05,0.170027107,0.190914571,-3.59756231,-0.704416573,0.0189260785,0.466106296 +-0.173837468,3.64906001,0.173837468,0.000148995343,0.150891155,0.119113341,-2.76850605,0.413478762,0.0190582369,0.245924234 +0.09580376,3.64916706,-0.09580376,1.51382919e-05,0.0675403029,0.0671324283,-2.03837204,0.24307102,0.0193474274,0.135496914 +-0.310915112,3.64916992,0.310915112,0.000219090813,0.162460417,0.175340727,-3.61991882,-0.536276281,0.0189505294,0.439985156 +0.44015339,3.64921832,-0.44015339,0.00051618478,0.210306272,0.143932655,-0.733751595,-0.618481457,0.0189472847,0.622485161 +0.0868869126,3.6492424,-0.0868869126,3.29669565e-05,0.0287782773,0.0348813497,-1.73366404,0.243382215,0.0193817783,0.122905307 +0.110007092,3.64943528,-0.110007092,3.27893176e-05,0.10749048,0.0811982825,-2.04408503,0.1392885,0.019306507,0.155625358 +-0.101305313,3.64947987,0.101305313,0.000134274203,0.142383516,0.095006384,-2.18158174,0.367096722,0.0190959368,0.143415809 +0.663494468,3.64961147,-0.663494468,0.0019700937,0.173891425,0.0873637274,0.1340698,-0.263207138,0.0191194471,0.938538313 +0.103247225,3.64968681,-0.103247225,1.38671649e-05,0.0958672464,0.078420803,-2.0111506,0.16795975,0.0193229709,0.146027386 +0.177008212,3.64992428,-0.177008212,6.06747271e-05,0.138029128,0.0767421126,-2.12420321,-0.0805822015,0.0192188974,0.250394017 +-0.323055387,3.65001154,0.323055387,0.00015660614,0.167557478,0.185474858,-3.5949223,-0.651994467,0.0189354382,0.45702529 +0.0750537962,3.65031004,-0.0750537962,1.50081378e-05,0.0659126192,0.0880142972,-1.09916723,0.135979563,0.019334862,0.106161907 +-0.401694745,3.65036678,0.401694745,0.000291754317,0.252070755,0.382313699,-2.65687585,-0.919817269,0.0187539216,0.56817919 +-0.351654053,3.65061283,0.351654053,0.000222869217,0.181116208,0.213684991,-3.47383714,-0.91139245,0.0188851207,0.497365952 +0.172834963,3.65073395,-0.172834963,0.000104291335,0.138060808,0.0768651888,-2.10913563,-0.0715249032,0.0192214046,0.244493455 +0.118036106,3.65083909,-0.118036106,2.15366981e-05,0.118891396,0.0810551196,-2.01193285,0.106897421,0.0193033405,0.166960642 +0.116663791,3.65087533,-0.116663791,2.38429948e-05,0.118800625,0.0811822638,-2.01112366,0.11077565,0.0193052646,0.165011197 +-0.157384723,3.65091944,0.157384723,0.000156362774,0.150962338,0.112703077,-2.62440825,0.437472999,0.0190657992,0.222745031 +-0.531324446,3.65092778,0.531324446,0.000330233946,0.225947931,0.313525975,0.44999215,-0.26189211,0.0190403294,0.751412332 +0.114451647,3.65093136,-0.114451647,3.04669629e-05,0.11628601,0.0806303099,-2.0068326,0.117874801,0.0193097536,0.161875099 +0.100232065,3.65106535,-0.100232065,4.51171691e-05,0.0826758072,0.0753336847,-1.97088027,0.212894619,0.019350959,0.141762748 +-0.0956443474,3.65107894,0.0956443548,9.15139899e-05,0.140988067,0.0940113664,-2.14204288,0.329105914,0.0190953184,0.135520443 +0.439062744,3.65110064,-0.439062744,0.00054406136,0.209961697,0.143426329,-0.750971615,-0.632628441,0.0189475752,0.620955527 +0.440177143,3.65117788,-0.440177143,1.57494583e-06,0.209894329,0.143430516,-0.73393321,-0.631143093,0.0189470164,0.622545421 +-0.529819548,3.65131593,0.529819548,0.0002399738,0.228220627,0.319222242,0.455804229,-0.249237821,0.0190361682,0.749286175 +0.89402473,3.65133309,-0.894024789,0.0014234687,0.169340163,0.0817972571,0.466540724,-0.261488438,0.019201912,1.26481438 +-0.635987401,3.65137291,0.635987401,0.000717381423,0.179519653,0.0914238393,0.0383210778,-0.415752411,0.0192012396,0.899592519 +0.0942741781,3.65138245,-0.0942741781,2.37819986e-05,0.0635348484,0.0618369691,-1.8446542,0.21986258,0.0193767957,0.133336291 +-0.297118247,3.65139675,0.297118247,1.86421821e-05,0.158412755,0.164797544,-3.58808422,-0.42213732,0.0189663954,0.420258641 +-0.0834127516,3.6514256,0.0834127516,7.45601719e-05,0.140203327,0.0974648297,-2.02340031,0.204010874,0.0190959778,0.118304394 +0.385642231,3.651474,-0.385642231,0.000826152274,0.202947408,0.133088291,-1.57406235,-0.72903657,0.0189737715,0.545808911 +0.282205939,3.65147829,-0.282205939,0.000390513276,0.141032711,0.0774939433,-2.42878532,-0.494701684,0.0191181302,0.399267584 +0.441547543,3.65152955,-0.441547513,0.00118924771,0.209508032,0.143000782,-0.719679832,-0.630724728,0.0189471468,0.624459445 +-0.431946188,3.65159988,0.431946188,0.000293706078,0.33303529,0.581258655,-1.80876517,-0.383502722,0.0187219419,0.611075044 +-0.231439471,3.65163279,0.231439471,9.06878413e-05,0.149576813,0.134720936,-3.23580217,0.109331563,0.019011762,0.327387512 +-0.294968039,3.65168881,0.294968069,4.3842243e-05,0.15790613,0.163002476,-3.57835102,-0.405021459,0.0189684499,0.417191148 +0.439833105,3.65169477,-0.439833105,3.40630795e-05,0.209795237,0.143304482,-0.738389313,-0.634738922,0.018947117,0.622066021 +-0.182964578,3.65174294,0.182964578,0.000113438444,0.1506363,0.121998869,-2.84562707,0.3657493,0.0190451741,0.259158343 +-0.366238534,3.651829,0.366238534,0.000179048497,0.19673118,0.246385634,-3.32846355,-1.02349198,0.0188443754,0.51796782 +0.0723753124,3.65186882,-0.0723753124,1.8951052e-05,0.0806011483,0.0962403938,-0.772604287,0.0119739175,0.019298654,0.102386549 +-0.530397952,3.65188742,0.530397952,0.000150742955,0.227021068,0.316432148,0.455479622,-0.262724012,0.0190377794,0.750110745 +0.440116167,3.651896,-0.440116137,1.06103084e-06,0.209710881,0.143220574,-0.73462373,-0.6351704,0.0189469606,0.622463107 +-0.598864675,3.65191507,0.598864675,3.09231036e-05,0.175092056,0.107621863,0.313348979,-0.427975208,0.0191638097,0.847141445 +0.229104042,3.65193844,-0.229104042,0.000136590694,0.13673076,0.0732425079,-2.26625729,-0.257988989,0.0191756058,0.324042052 +-0.299141973,3.65194798,0.299142003,0.000114959723,0.159082174,0.165807158,-3.58366251,-0.44336918,0.0189637411,0.423089832 +0.110599697,3.65206528,-0.110599697,2.3669294e-05,0.109944813,0.0804868862,-1.94334257,0.129394352,0.0193310026,0.15645811 +0.271314621,3.65209436,-0.271314621,0.000252082857,0.139100179,0.0759077668,-2.39820576,-0.444288254,0.0191317294,0.383784294 +0.134491682,3.65216303,-0.134491682,2.17407724e-05,0.131382853,0.0799540058,-2.03336906,0.0376888067,0.0192665122,0.190323204 +-0.122548215,3.65227699,0.122548215,0.000124257684,0.147282422,0.101244591,-2.33621407,0.436574578,0.0190853775,0.173382521 +0.214433029,3.65238118,-0.214433044,7.98365145e-05,0.137105539,0.0738387257,-2.22015691,-0.204132229,0.0191886015,0.303336471 +-0.265194297,3.65256786,0.265194297,6.66393971e-05,0.152164757,0.146726072,-3.45291018,-0.153903127,0.0189890694,0.375135005 +0.238329679,3.65260172,-0.238329679,0.000152718174,0.136495173,0.0731186047,-2.29412794,-0.294519931,0.0191670898,0.337076604 +0.137281552,3.6526053,-0.137281552,4.41568118e-05,0.131974101,0.0797960684,-2.03434229,0.0286918059,0.0192636084,0.194242015 +0.107478373,3.65265322,-0.107478373,1.62532324e-05,0.10490647,0.0796717107,-1.91476989,0.147385985,0.0193434078,0.152010381 +0.151124731,3.65268922,-0.151124716,0.000135184382,0.136282757,0.0788108706,-2.04755235,-0.0134592336,0.0192454178,0.213838071 +0.182123542,3.65276575,-0.182123542,5.69516124e-05,0.138030022,0.0760405958,-2.12476134,-0.102372572,0.0192138012,0.257679999 +-0.252988756,3.65277457,0.252988756,8.15169915e-05,0.150881171,0.142643228,-3.38003731,-0.0579060577,0.018995529,0.357958496 +0.106231414,3.65288687,-0.106231414,7.08397556e-06,0.10296572,0.0791781694,-1.90146399,0.152787343,0.0193476081,0.150259107 +0.128925443,3.65297389,-0.128925443,1.73428234e-05,0.129017264,0.0803863779,-2.00343704,0.0567058921,0.0192799959,0.182329595 +0.104584381,3.65310669,-0.104584381,1.62186261e-05,0.100001551,0.0784035325,-1.89131117,0.162457287,0.0193522852,0.147912681 +-1.07712173,3.65315819,1.07712173,0.00031707267,0.325163662,0.177254841,0.353969932,-0.2003095,0.0192503519,1.52339292 +0.128727585,3.65321445,-0.128727585,1.0003163e-05,0.128770962,0.0805437341,-2.00153518,0.0577335581,0.0192808975,0.182050928 +0.129175663,3.65335083,-0.129175663,2.22160525e-05,0.129076421,0.0804029256,-1.99890888,0.0559401698,0.0192809813,0.182683781 +0.128897995,3.65338373,-0.128897995,1.35996942e-07,0.128857762,0.0805231854,-1.9986093,0.05725196,0.0192816034,0.18229267 +-0.530336559,3.65338373,0.530336499,0.000502869836,0.226276249,0.314538479,0.45216468,-0.282459259,0.0190373454,0.750015318 +0.175334096,3.653512,-0.175334096,7.93516374e-05,0.137899399,0.076787442,-2.10048008,-0.0851844475,0.0192190148,0.248024285 +0.128993511,3.65351224,-0.128993511,6.22203243e-06,0.128926456,0.080508858,-1.99605775,0.0567383803,0.0192819927,0.182427958 +-0.247266352,3.65358877,0.247266352,0.00014452789,0.150689423,0.139546841,-3.33424568,-0.0168698486,0.0189987607,0.349798411 +0.0813863724,3.65363407,-0.0813863799,2.33559367e-05,0.027168056,0.0306752063,-1.24226725,0.092097953,0.0193824135,0.115098707 +-0.136404723,3.65364218,0.136404723,0.000119862911,0.149788767,0.105787575,-2.45478296,0.438491046,0.0190736763,0.193368927 +-0.525215387,3.65364575,0.525215387,0.000287601637,0.244955719,0.357852966,0.41976589,-0.250919104,0.0190165509,0.742767811 +0.0816806704,3.65368915,-0.0816806704,1.94180666e-05,0.0269268975,0.0299717411,-1.2498275,0.095898293,0.0193846878,0.11551486 +0.128538132,3.65372515,-0.128538132,1.34811617e-05,0.128583744,0.0805999935,-1.99042273,0.0580194816,0.0192839243,0.181781396 +0.0815215409,3.65379238,-0.0815215334,7.31204e-06,0.0270683318,0.030098673,-1.23614442,0.0877364874,0.0193831697,0.11529088 +0.440215647,3.65379977,-0.440215647,0.000666119566,0.209062338,0.142439082,-0.734483659,-0.645157099,0.0189466905,0.622571886 +0.0814518556,3.65383387,-0.0814518631,8.11576683e-06,0.0272105131,0.0302022099,-1.23513889,0.0851343274,0.0193815026,0.11519289 +-0.752553761,3.65385795,0.752553761,0.00184527528,0.170676887,0.0823368654,0.291133851,-0.390985131,0.0192309767,1.06445003 +0.1289327,3.6538763,-0.1289327,1.5294263e-05,0.128951818,0.0806152672,-1.98911226,0.0554175675,0.0192828085,0.182340026 +-0.109689817,3.65389013,0.109689817,0.000111727,0.145203948,0.0960580632,-2.24936509,0.383448422,0.0190862957,0.155403227 +0.163042575,3.65397525,-0.16304259,7.00025776e-05,0.13770318,0.077593416,-2.06387401,-0.0498380661,0.0192318093,0.230600566 +0.0812031031,3.65402579,-0.0812031031,2.08594047e-05,0.0282174461,0.0312007405,-1.21692741,0.0784347355,0.0193787552,0.114839301 +0.117372468,3.65413237,-0.117372468,2.30261849e-05,0.11902611,0.0813930556,-1.96353614,0.099710308,0.0193092916,0.166011408 +-0.260248989,3.65418029,0.260248989,0.000161932941,0.151840299,0.144344553,-3.41056776,-0.121506974,0.0189903267,0.368088484 +0.160602093,3.65424085,-0.160602108,5.1553041e-05,0.137606785,0.0777675286,-2.05592752,-0.0438997895,0.0192337818,0.227142721 +-0.270312458,3.65425539,0.270312458,9.35271091e-05,0.15298827,0.148415148,-3.46132302,-0.203078315,0.0189833846,0.3823255 +-0.296548575,3.65436292,0.296548545,9.93415597e-05,0.158390567,0.162714168,-3.55696201,-0.430776507,0.0189637952,0.419424593 +-0.855704188,3.65438938,0.855704188,0.00443824008,0.162069842,0.0770471916,0.454769135,-0.323069632,0.0192445368,1.21058285 +0.106399298,3.6545434,-0.10639929,1.62682627e-05,0.103130773,0.079470709,-1.86810398,0.148517773,0.0193519145,0.150503471 +0.162219822,3.65459681,-0.162219822,9.56607892e-06,0.137626857,0.0776892006,-2.05819702,-0.0488073416,0.0192325916,0.229466185 +-0.167945653,3.65464878,0.167945653,0.000169632636,0.151118934,0.116297327,-2.70456123,0.400512755,0.0190552659,0.237575442 +-0.708451629,3.65464997,0.708451629,0.00251428341,0.174966767,0.0853425264,0.198507279,-0.411099881,0.0192208141,1.00266826 +0.0897431597,3.65478063,-0.0897431597,3.255099e-05,0.0486875027,0.0491305217,-1.4989959,0.186895356,0.0194236189,0.126923144 +-0.235425562,3.65483713,0.235425547,9.19728627e-05,0.150278345,0.135203347,-3.24604607,0.0626721606,0.0190032367,0.333015293 +-0.603298247,3.65498257,0.603298247,0.000748698483,0.174894422,0.106480584,0.312485307,-0.42947486,0.0191645864,0.853310049 +0.503172934,3.65502501,-0.503172934,0.000643258623,0.194041118,0.125396758,-0.0690840781,-0.534899712,0.018967934,0.712987483 +0.123263612,3.65514016,-0.123263612,3.70259804e-05,0.124290712,0.0817186236,-1.93674862,0.0762783214,0.0193054266,0.174366176 +0.209835008,3.65520859,-0.209834993,0.000102942038,0.137123242,0.0741211027,-2.18967128,-0.19624199,0.0191922765,0.296799988 +0.487431347,3.65528011,-0.487431347,0.00149595691,0.198750794,0.131923854,-0.190481216,-0.563455641,0.0189560317,0.690297067 +-0.282405078,3.65531397,0.282405078,0.000200286624,0.154660836,0.15465647,-3.51278543,-0.309845209,0.018970361,0.399556279 +0.19882229,3.65532207,-0.19882229,0.000143948346,0.137523979,0.0747997761,-2.15758514,-0.159115434,0.0192003865,0.281345844 +0.162534267,3.6554358,-0.162534267,6.84692168e-06,0.137609974,0.077671662,-2.05456471,-0.0519692861,0.019232031,0.229897439 +0.144783288,3.65545416,-0.144783288,4.99753696e-05,0.134367645,0.0799332336,-2.00205302,0.00138726109,0.0192587897,0.204816118 +0.091413185,3.65553427,-0.091413185,2.10342569e-05,0.0560784079,0.0522597544,-1.52128744,0.173563033,0.0194195639,0.129283935 +0.0903839022,3.6561799,-0.0903839022,1.5773152e-05,0.0561541542,0.0524141192,-1.46120811,0.141812548,0.0194188338,0.127835169 +0.217466533,3.65623546,-0.217466533,8.87998904e-05,0.13691318,0.0737103894,-2.20722485,-0.224686548,0.0191857908,0.307683021 +-0.355555058,3.65632272,0.355555058,0.000122684447,0.181797728,0.213340029,-3.4230876,-0.991956055,0.0188705437,0.502940297 +0.0896536112,3.65656996,-0.0896536112,1.98390753e-05,0.0565354116,0.0529146157,-1.42700481,0.124896482,0.019414993,0.126796827 +-0.328908831,3.65679741,0.328908831,0.00021395876,0.169157237,0.186781034,-3.53863525,-0.738265157,0.0189196765,0.465324014 +0.141227126,3.65682507,-0.141227126,5.24542484e-05,0.133702844,0.0802596211,-1.98198891,0.00806169119,0.019264603,0.199813724 +0.114486203,3.65698862,-0.114486203,2.00104805e-05,0.118515275,0.0823425278,-1.87374902,0.0898590386,0.0193219837,0.161916077 +-0.0904030502,3.65713072,0.0904030502,7.3502466e-05,0.141480342,0.0928033218,-2.10486603,0.265876353,0.019087676,0.12826106 +1.21815991,3.65716696,-1.21815991,0.000438539486,0.13067019,0.0630196184,0.079419896,0.0180224665,0.0192320645,1.72296691 +0.215123519,3.65732002,-0.215123534,3.1322772e-05,0.136925697,0.0739006475,-2.19254923,-0.219760239,0.0191882215,0.304361731 +1.22377503,3.65732837,-1.22377503,0.000313895463,0.110110536,0.0509991013,-0.00414188672,0.00233713188,0.0192327648,1.73091388 +1.22867131,3.65734768,-1.22867143,0.000145721075,0.0931444615,0.0483662337,-0.0544552356,-0.00651073828,0.0192330461,1.73783946 +-0.229797855,3.65737104,0.22979787,0.000146183113,0.150267363,0.132181555,-3.18639874,0.0900702626,0.0190038476,0.325096905 +-0.251741767,3.65737677,0.251741767,6.79737277e-05,0.151247606,0.140465736,-3.33729219,-0.069776386,0.0189884603,0.356274605 +0.558637559,3.65740204,-0.558637559,0.00148484425,0.179891229,0.105275527,0.18888773,-0.481709957,0.019025417,0.790762424 +0.10893029,3.65762067,-0.10893029,2.07014564e-05,0.109183699,0.081708394,-1.81668663,0.116771117,0.0193472859,0.154057398 +0.102577269,3.65772629,-0.102577284,1.85845965e-05,0.100636914,0.0799666941,-1.69630778,0.124030858,0.0193707198,0.145073771 +-0.0723196641,3.65782905,0.0723196641,3.3375909e-05,0.308193356,0.317050934,-1.74605417,0.0742789432,0.0190893169,0.102386549 +-0.358553261,3.65794396,0.358553261,0.000152439607,0.18305406,0.215596408,-3.39078856,-1.03221345,0.0188636761,0.507187128 +0.0756115168,3.65802145,-0.0756115168,2.94850797e-05,0.0556734353,0.0564344972,-0.817887306,-0.0873405635,0.0193081312,0.106972754 +-0.420272321,3.65807915,0.420272291,0.000389957102,0.281022757,0.448728651,-2.46133709,-1.21249342,0.0187266394,0.594681501 +-0.0969101936,3.65810823,0.0969101936,9.76093652e-05,0.141960829,0.0926549137,-2.15307903,0.316639394,0.0190871879,0.137252599 +0.998244286,3.65813303,-0.998244286,0.00118292449,0.162183464,0.0783418715,0.418641806,-0.189057589,0.0192147959,1.41203344 +0.123562798,3.65813327,-0.123562798,2.6497366e-05,0.124293186,0.0820769966,-1.90352964,0.0700428858,0.0193093047,0.174798101 +0.0971698463,3.65816259,-0.0971698463,4.99512462e-05,0.08036533,0.0698778704,-1.55445659,0.148747429,0.019403331,0.137434825 +0.0723166466,3.65817928,-0.0723166466,1.55124417e-05,0.106954709,0.12183018,-0.419563413,-0.144826069,0.0193016808,0.102386549 +-0.494256198,3.65833664,0.494256198,0.000232421924,0.351164609,0.616317749,0.286096781,0.0385645628,0.018888019,0.699016571 +0.134646416,3.65854311,-0.134646416,3.42265703e-05,0.13195242,0.0807741806,-1.95699477,0.0178352538,0.0192704648,0.190463543 +-0.119325906,3.65873909,0.119325913,5.99821724e-05,0.147107497,0.0978377461,-2.31102943,0.393012762,0.019077599,0.168896183 +0.121825814,3.65885472,-0.121825814,3.02461649e-05,0.123851888,0.0821445286,-1.88351583,0.0705732778,0.0193127841,0.172317758 +0.163825929,3.65892076,-0.163825929,5.34894061e-05,0.137608662,0.0776970163,-2.03247952,-0.0656057969,0.0192302484,0.231691062 +-0.497607261,3.65906024,0.497607231,0.000359640311,0.337784857,0.579014122,0.224547356,-0.133295223,0.0189044811,0.703768134 +0.636162937,3.6593647,-0.636162996,0.000646003406,0.174873427,0.0902216882,0.102791756,-0.28143099,0.0191012733,0.899829626 +-0.490379274,3.65939665,0.490379274,0.000374693016,0.357597589,0.633170187,0.198303372,0.0706651509,0.0188689679,0.693531692 +0.086110726,3.65939879,-0.086110726,3.00950869e-05,0.062556617,0.0580770075,-1.22230244,0.0167942345,0.0193952974,0.12180993 +-0.0722953007,3.65943956,0.0722953007,1.86683301e-05,0.305969328,0.311381549,-1.75926447,0.0753674582,0.0190869495,0.102386549 +-0.0783060864,3.65949988,0.0783060789,6.92168396e-05,0.162819773,0.124388903,-1.94969392,0.12800923,0.0190879013,0.110929623 +-0.267023623,3.65996313,0.267023623,0.00012217043,0.15259394,0.144983813,-3.40059495,-0.197570056,0.0189796966,0.377662838 +0.118493095,3.65997458,-0.118493095,2.65697927e-05,0.11868722,0.0840610862,-1.83647501,0.0810510218,0.0193289816,0.167680204 +-0.340087712,3.66007137,0.340087712,0.000152530774,0.173072368,0.192270026,-3.44687176,-0.847297192,0.0189030319,0.481017709 +-0.769052923,3.66017032,0.769052863,0.00288266595,0.168548241,0.0808407739,0.324976593,-0.390689969,0.0192303136,1.08818877 +-0.218357295,3.66031361,0.218357295,0.000205972625,0.150011927,0.129027918,-3.0955143,0.143363267,0.0190054979,0.309181452 +0.0839328468,3.66051197,-0.0839328468,3.94697345e-05,0.0705047622,0.0639542118,-1.20765746,-0.0259451084,0.019353712,0.118745893 +0.101366147,3.66052055,-0.101366147,1.8454286e-05,0.100863859,0.0805778205,-1.57788885,0.102812409,0.019382257,0.143360689 +0.158793285,3.66062117,-0.158793285,3.55752381e-05,0.137133673,0.0784230977,-1.99742937,-0.0552051514,0.0192357916,0.224570066 +-0.12782371,3.66066122,0.12782371,0.000165834776,0.149233371,0.100611582,-2.37834764,0.398528993,0.0190703254,0.180879563 +0.188509941,3.66071367,-0.188509941,6.0965067e-05,0.137722552,0.0757941529,-2.0871973,-0.143426955,0.0192085747,0.266635954 +0.112002999,3.66081834,-0.112002999,2.15521177e-05,0.115536831,0.0833159387,-1.76456118,0.0830300599,0.0193420202,0.158420071 +0.0755460188,3.66085291,-0.0755460113,1.84052587e-05,0.0647224858,0.0650338605,-0.73485446,-0.131782264,0.0193067435,0.106909156 +0.103490561,3.66092873,-0.103490561,1.71719475e-05,0.103847295,0.0816996843,-1.596506,0.0955145583,0.0193777308,0.146387994 +-0.23369357,3.66093779,0.23369357,0.000194364868,0.150657117,0.13214238,-3.18614388,0.0474047251,0.0189956985,0.330624461 +0.179896861,3.66095805,-0.179896876,6.57289274e-05,0.137699217,0.0768655539,-2.05907536,-0.115498759,0.0192164648,0.254617751 +0.170183033,3.6611793,-0.170183033,7.59090763e-05,0.137737617,0.0773705915,-2.03251386,-0.0914467573,0.0192228835,0.240692705 +-0.594767272,3.66129065,0.594767272,0.000652582734,0.174571335,0.109449066,0.314619154,-0.476034701,0.0191542488,0.841212869 +0.137604281,3.66138959,-0.137604281,4.19269854e-05,0.133207351,0.0811022967,-1.92181444,0.00326169399,0.019270936,0.194642514 +-0.206086114,3.66140246,0.206086129,6.70520749e-05,0.150489166,0.123573348,-2.9807713,0.207671657,0.0190161373,0.291451097 +-0.376858473,3.66149497,0.376858503,0.00017065111,0.198704764,0.247603253,-3.15313911,-1.18702638,0.0188220218,0.532983303 +0.113004081,3.66177344,-0.113004074,1.66659738e-05,0.117996521,0.0841638073,-1.75034869,0.0740674436,0.0193402525,0.159850672 +-0.247599721,3.66181087,0.247599721,0.000187917729,0.151313379,0.136676565,-3.27115011,-0.0566445813,0.0189872049,0.350360334 +0.106853865,3.66185474,-0.106853865,1.70646344e-05,0.109444365,0.0833140984,-1.63361347,0.0818594918,0.0193650424,0.151120529 +-0.204934388,3.66221976,0.204934388,0.000108888009,0.15060024,0.12290056,-2.96613336,0.209947646,0.0190159474,0.289823949 +-0.317698479,3.66223812,0.317698479,0.000143003417,0.165301755,0.176379785,-3.49201488,-0.655392647,0.0189287979,0.44937104 +-0.0850119889,3.66226768,0.0850119889,7.48561652e-05,0.139490038,0.0922024995,-2.05521727,0.196786821,0.0190831423,0.120483369 +0.216935247,3.66229534,-0.216935247,0.000152820227,0.136946976,0.0737524927,-2.16848636,-0.241327316,0.0191838536,0.306859553 +0.0985536203,3.66234446,-0.0985536203,2.11229981e-05,0.101286203,0.0816411451,-1.47578156,0.053863313,0.0193839837,0.139400482 +0.233054459,3.66241169,-0.233054459,0.000116639785,0.136341944,0.0730145499,-2.22292948,-0.303692132,0.0191695858,0.329751253 +-0.205276385,3.66248798,0.205276385,3.17924423e-05,0.150593296,0.122972026,-2.96781707,0.2068028,0.0190152377,0.290311098 +-0.0784986541,3.66255474,0.0784986615,5.80888263e-05,0.160621867,0.119643599,-1.96706128,0.128261313,0.0190838072,0.111272328 +-0.11256431,3.66257477,0.11256431,6.79514633e-05,0.146727413,0.095590435,-2.27562547,0.359401882,0.0190732069,0.159966946 +-0.205532059,3.66270351,0.205532044,8.44502574e-05,0.150615603,0.122958034,-2.96888614,0.20400469,0.0190146491,0.290671676 +0.0779527947,3.66276383,-0.0779527947,2.86589966e-05,0.0761933997,0.0715569705,-0.913157523,-0.108822435,0.019311009,0.110249504 +-0.205216438,3.66278553,0.205216438,1.87806108e-07,0.150627092,0.122808553,-2.96581626,0.205366641,0.0190147683,0.290228784 +0.127783924,3.66280222,-0.127783924,3.26612717e-05,0.128400803,0.0836177543,-1.839463,0.0321491174,0.0193028618,0.180803895 +0.110952139,3.66282916,-0.110952146,2.52912814e-05,0.116098717,0.0847027376,-1.67817914,0.0656326413,0.0193519909,0.156933114 +0.133222103,3.66286969,-0.133222103,2.58055043e-05,0.130282894,0.0827562809,-1.89577937,0.0197650883,0.0192843955,0.188492462 +-0.205330491,3.66296744,0.205330491,0.000122740268,0.150635183,0.122761354,-2.96540427,0.203804716,0.0190144535,0.290389746 +0.10331215,3.66299081,-0.10331215,2.1898486e-05,0.105928466,0.0828624889,-1.56309354,0.076546073,0.0193749052,0.146121442 +-0.286969572,3.66299343,0.286969572,0.000239388391,0.156058863,0.153573155,-3.45142889,-0.384032577,0.0189569797,0.406006217 +-0.204694688,3.66312122,0.204694688,0.00014781137,0.150651693,0.122525573,-2.95982265,0.206067875,0.0190148093,0.289485335 +0.1871842,3.66316128,-0.1871842,5.79310836e-05,0.137633145,0.0758401603,-2.07063413,-0.146021336,0.019208774,0.264759779 +0.11225792,3.66316628,-0.11225792,4.33092691e-06,0.118255332,0.0850134641,-1.6907258,0.0583065264,0.0193469841,0.158795714 +0.25668478,3.66333461,-0.25668478,0.000446121587,0.136348605,0.0729189813,-2.29505634,-0.408927441,0.0191449486,0.363265544 +-0.493666232,3.66338658,0.493666232,1.03229049e-05,0.357322276,0.629373968,0.173117265,-0.131456941,0.0188809466,0.698241413 +0.241667718,3.66355443,-0.241667733,0.000167600301,0.136406511,0.0728867128,-2.24435091,-0.343235642,0.0191596728,0.341841906 +0.210026801,3.66382217,-0.210026801,9.07632857e-05,0.137064904,0.0743142441,-2.13764548,-0.222013831,0.0191898439,0.297053307 +0.145433456,3.66382933,-0.145433456,3.88902045e-05,0.135062382,0.0806770548,-1.92576516,-0.0257932171,0.0192579404,0.205686733 +0.190024287,3.66385317,-0.190024287,9.24968626e-05,0.137481138,0.0756810308,-2.07520008,-0.156853229,0.0192069169,0.268789202 +0.114376515,3.66392303,-0.114376523,2.6395217e-05,0.121826112,0.0853266567,-1.71201551,0.0512880832,0.0193365309,0.161774844 +-0.49572432,3.66396356,0.495724291,6.76042764e-05,0.351505965,0.613458395,0.223597363,-0.174993441,0.0188907906,0.701124847 +-0.145623147,3.66400957,0.145623147,0.000109236229,0.150665745,0.106671467,-2.50069404,0.388682365,0.019057285,0.206054032 +0.147533968,3.6640842,-0.147533968,3.75055097e-05,0.135764137,0.0804555565,-1.92988837,-0.0341807678,0.0192535836,0.208667755 +0.0959644169,3.66415572,-0.0959644169,1.95186822e-05,0.102455936,0.0828863457,-1.38830221,0.014816558,0.0193808954,0.135721222 +0.0797396675,3.66419315,-0.0797396675,2.70406927e-05,0.0863810554,0.0773899108,-1.0228337,-0.0978525877,0.0193152167,0.11278443 +0.119837284,3.66435623,-0.119837292,3.83302176e-05,0.125640452,0.0859971568,-1.74650288,0.0372627899,0.0193245467,0.169535458 +0.155288935,3.66437125,-0.15528892,4.68825383e-05,0.136501342,0.079068087,-1.95748174,-0.0550339147,0.0192399565,0.219628915 +0.124708071,3.6644752,-0.124708064,1.97775189e-05,0.127270684,0.0834064633,-1.82068276,0.0295961685,0.0193047915,0.176377773 +-0.120970942,3.66452694,0.120970935,0.000105681778,0.148390979,0.0964209437,-2.32189226,0.368581295,0.019068623,0.171258286 +0.131263018,3.66473675,-0.131263018,4.24967729e-05,0.130212784,0.0833992288,-1.83790302,0.0138506908,0.0192938894,0.185673952 +0.274536967,3.66475964,-0.274536967,0.000186852427,0.138899058,0.0750753433,-2.33388186,-0.497462928,0.0191208385,0.388306677 +-0.356605321,3.66482234,0.356605321,0.000183497294,0.179916129,0.206518039,-3.33721876,-1.04158497,0.0188671891,0.504360914 +0.187767357,3.66486573,-0.187767372,7.02237448e-05,0.137516633,0.0757861659,-2.06298947,-0.152414739,0.0192078054,0.265594661 +0.0789794251,3.66488481,-0.0789794251,2.46515574e-05,0.0921554044,0.0820559859,-1.03934681,-0.0933401585,0.0192959886,0.111724362 +0.0902536437,3.66489863,-0.0902536362,1.56517108e-05,0.0989278257,0.0831530169,-1.24713743,-0.0219208859,0.0193731301,0.12763913 +-1.20567036,3.66504216,1.20567036,0.000232162769,0.189621136,0.0988924056,0.201824367,0.040487051,0.0192680638,1.70507669 +-0.0723793656,3.66509962,0.0723793656,3.97495314e-05,0.301266402,0.299660146,-1.781883,0.0767426789,0.0190805942,0.102386549 +0.0903485939,3.66514683,-0.0903485864,5.75135618e-06,0.100705519,0.0840464383,-1.25176847,-0.024184851,0.0193700716,0.12777476 +-0.307937205,3.66515136,0.307937205,0.000188157632,0.161201611,0.166559547,-3.47964716,-0.577868581,0.0189371444,0.435631514 +0.090754196,3.66520214,-0.090754196,1.00295274e-05,0.100935966,0.084044002,-1.2568258,-0.0231120307,0.019372426,0.128346264 +0.094326511,3.66528893,-0.0943265036,2.2493603e-05,0.103319153,0.0837215632,-1.33155358,-0.014654411,0.0193796325,0.133416533 +-0.492811382,3.66529632,0.492811412,9.47508452e-05,0.349320352,0.607404053,0.0864649564,-0.292019427,0.0188787021,0.697012901 +0.0900337473,3.66541386,-0.0900337398,9.48220986e-06,0.101409115,0.0844102129,-1.2484163,-0.0292230621,0.0193665978,0.127327502 +0.235257447,3.66546917,-0.235257447,9.13099357e-05,0.136286587,0.0729214475,-2.2108264,-0.321256369,0.0191667266,0.332893908 +0.156077191,3.66547942,-0.156077191,3.14404024e-05,0.136643663,0.0791319832,-1.94788909,-0.0598426871,0.0192396957,0.220750883 +-1.20107722,3.66550064,1.20107722,0.000148935462,0.280963898,0.167621464,0.371855438,0.0485423096,0.0192679949,1.69858086 +0.155426383,3.66551638,-0.155426398,8.17068121e-06,0.136411041,0.0793543234,-1.94565582,-0.0573036075,0.0192414615,0.219841614 +-0.14105691,3.66551733,0.14105691,0.00011978759,0.150521129,0.103277445,-2.46084237,0.378967404,0.0190574545,0.199576646 +-0.0925318748,3.6655364,0.0925318748,7.7367491e-05,0.142677143,0.0910175666,-2.12259817,0.256068766,0.0190780163,0.131182581 +0.147090197,3.6655643,-0.147090182,9.30925034e-06,0.135586277,0.0809014067,-1.91214466,-0.0354814455,0.0192566533,0.20806466 +-0.184528321,3.66558766,0.184528321,0.000293123187,0.151151255,0.115598246,-2.78920794,0.28369534,0.0190259106,0.261119843 +0.146475315,3.66571426,-0.146475315,4.30175078e-06,0.135434121,0.0810871869,-1.90651357,-0.034878999,0.0192585252,0.207176059 +-0.273908436,3.66587257,0.273908436,9.6869444e-05,0.153599814,0.147264317,-3.38853264,-0.279182673,0.018965885,0.387494028 +-1.19724333,3.66590405,1.19724321,6.40416474e-05,0.559124231,0.416531831,0.555676281,0.0295910388,0.0192678459,1.6931591 +0.0723891854,3.66597438,-0.0723891854,5.92437846e-06,0.160173312,0.180065304,-0.54646492,-0.0571837947,0.0192608479,0.102386549 +0.887081385,3.66606355,-0.887081385,0.00235309475,0.169544399,0.081754759,0.459644973,-0.272769749,0.0191914272,1.25509882 +0.112575188,3.66612124,-0.112575188,3.06015027e-05,0.121959478,0.0859721377,-1.65149808,0.0256650969,0.0193379112,0.159225374 +0.155685782,3.66613722,-0.155685782,7.92938067e-07,0.136614218,0.0794726536,-1.93677485,-0.0607373528,0.0192407444,0.220208719 +0.105741546,3.66615057,-0.105741553,2.50911471e-05,0.112789512,0.0857689679,-1.54774177,0.041692093,0.0193653181,0.149598539 +0.145312414,3.66620398,-0.145312428,2.82612928e-05,0.134869397,0.0815889165,-1.89048016,-0.0329839475,0.0192615408,0.20552884 +0.134739012,3.66621637,-0.134738997,5.78457184e-05,0.132138938,0.0831062347,-1.83685756,-0.00421807449,0.0192837454,0.190631062 +0.306397378,3.66627645,-0.306397378,0.000134779155,0.149885416,0.0836441219,-2.34122229,-0.660712838,0.0190771595,0.433502913 +0.335405439,3.66655684,-0.335405439,0.00101135811,0.16764307,0.0979679525,-2.19928455,-0.785322666,0.0190342255,0.474507987 +0.0723829046,3.66660023,-0.0723828971,1.34934521e-06,0.162941039,0.183371812,-0.545124888,-0.0603332371,0.0192584395,0.102386549 +-0.389220387,3.66669703,0.389220357,0.000466775615,0.206790149,0.270398259,-2.99441242,-1.35385489,0.0187922306,0.550732315 +-0.49824506,3.66679716,0.49824506,0.000551278878,0.335453898,0.572750151,0.236762702,-0.286660582,0.0189042594,0.704661965 +0.155164599,3.66686201,-0.155164599,3.21772422e-05,0.136619806,0.0795999989,-1.92647231,-0.0634612143,0.0192415603,0.219458818 +-0.206191629,3.66690779,0.206191614,0.000127322957,0.150583148,0.121588416,-2.94569874,0.18143259,0.0190104824,0.291599721 +0.0949337259,3.66695285,-0.0949337333,2.64074788e-06,0.105693951,0.0851413161,-1.30061364,-0.0367994756,0.0193775445,0.13429825 +0.075407967,3.66717649,-0.075407967,1.58595758e-05,0.111468658,0.106140301,-0.837652445,-0.0981159136,0.0192641001,0.106648698 +-0.104541317,3.66722488,0.104541317,0.000186492995,0.145020261,0.0925581679,-2.21805,0.311986059,0.0190719739,0.148219109 +-0.494915545,3.66725802,0.494915545,0.000320794556,0.34148401,0.5871526,0.15728423,-0.332000554,0.0188905634,0.69997257 +-0.555533826,3.66728854,0.555533826,0.000507755904,0.18587184,0.18773967,0.416467488,-0.466500819,0.0191027597,0.786178112 +0.147093445,3.66731119,-0.147093445,3.74500669e-05,0.135891572,0.0811521187,-1.88859248,-0.044383809,0.0192561578,0.208052427 +-1.01216507,3.66739559,1.01216507,0.00124628947,0.158346862,0.0758868456,0.453734159,-0.169213057,0.0192457084,1.4317255 +0.165839478,3.66743612,-0.165839478,4.50080988e-05,0.137253463,0.0782551393,-1.97504175,-0.0936874673,0.0192301609,0.234596133 +0.0963810682,3.66744518,-0.0963810682,2.26700704e-05,0.107657723,0.0857674852,-1.32445192,-0.0331396088,0.0193735939,0.136318579 +0.110328406,3.66750622,-0.110328406,2.36746782e-05,0.121659473,0.08649569,-1.59736848,0.00609765574,0.0193392355,0.156041369 +-0.0857936367,3.66752386,0.0857936293,0.000103758743,0.138823554,0.0880083591,-2.07158518,0.1925001,0.0190766733,0.121736079 +-1.20626712,3.66758275,1.20626712,0.000180735064,0.18867743,0.0984624997,0.201785117,0.0364624783,0.0192661565,1.70592368 +0.60851872,3.66759062,-0.60851872,0.00124857877,0.172253311,0.0932660997,0.264886111,-0.477741778,0.0190786514,0.861086905 +0.0735622197,3.66763163,-0.0735622197,1.13770229e-05,0.148350328,0.157340407,-0.676608682,-0.0668977201,0.0192543529,0.104034036 +0.0941145495,3.66766787,-0.094114542,4.47026068e-05,0.106050566,0.0853167251,-1.28870714,-0.0432087481,0.0193746481,0.133134574 +-1.20606768,3.66772485,1.20606768,5.34104765e-06,0.1896258,0.0990647376,0.205046043,0.0369743407,0.0192660559,1.70564401 +-1.20156157,3.6680994,1.20156157,9.28773534e-06,0.280798465,0.167971,0.376624674,0.0405433029,0.0192660391,1.69927168 +0.229705781,3.6681385,-0.229705781,0.000154160269,0.136480764,0.073185049,-2.17657852,-0.308469117,0.0191702694,0.324930161 +-1.20621228,3.66816139,1.20621228,0.000160348558,0.188826412,0.0985660553,0.203178048,0.0361665934,0.0192656852,1.70584786 +-0.125272125,3.66817713,0.125272125,0.000203567499,0.149297044,0.0966594443,-2.34525108,0.356552362,0.0190612786,0.17739886 +0.156074435,3.668221,-0.156074435,4.23392812e-05,0.136891291,0.0793622509,-1.92430937,-0.0702529699,0.0192387458,0.220731348 +-0.975879192,3.66824079,0.975879192,0.00147735083,0.158502758,0.0755365342,0.490814507,-0.215275884,0.019242866,1.38046598 +-1.20604634,3.66825199,1.20604622,8.76561244e-05,0.189354375,0.0989120305,0.205479875,0.0359804258,0.0192656033,1.70561385 +0.167425171,3.66828394,-0.167425171,2.77005693e-05,0.137403786,0.0780070424,-1.9718492,-0.101103887,0.0192272905,0.236842692 +0.0865442678,3.66832161,-0.0865442678,2.07357625e-05,0.110223994,0.0885371268,-1.22422898,-0.0938093066,0.0193176717,0.122427255 +-1.19780636,3.66841245,1.19780636,4.13089856e-06,0.557980955,0.416703016,0.562395751,0.0160184763,0.0192659795,1.69396162 +-0.342032194,3.66853213,0.342032224,0.000113379363,0.172130629,0.186861411,-3.38382435,-0.924639225,0.0188903771,0.483834565 +-1.20154786,3.66862583,1.20154774,0.000145309998,0.280063629,0.167471066,0.376482785,0.0390703604,0.0192655828,1.69925225 +0.127271324,3.66862869,-0.127271324,3.23349668e-05,0.130248949,0.0845363215,-1.76477408,-0.00125013199,0.0193001628,0.180011839 +0.202122793,3.66872406,-0.202122778,0.000138273244,0.137323782,0.0749114454,-2.0851965,-0.209424689,0.0191943813,0.285952747 +-0.565744579,3.66876221,0.565744579,0.000718052965,0.175450593,0.151604876,0.400939256,-0.501178563,0.0191201624,0.80076009 +-0.16017364,3.66881371,0.16017364,0.000285661139,0.15145281,0.108386084,-2.59875631,0.336856902,0.019039508,0.226790756 +0.101099998,3.6688683,-0.101099998,3.36903831e-05,0.112637751,0.08719863,-1.38106489,-0.03354197,0.0193689372,0.14303121 +-1.19778955,3.66892982,1.19778955,6.23283049e-05,0.555605173,0.414646596,0.56128037,0.0138963573,0.0192655176,1.6939379 +0.085345827,3.66939592,-0.085345827,1.90125047e-05,0.111136988,0.0893543437,-1.19391465,-0.10665457,0.0193119831,0.120712593 +-0.0975944176,3.6695416,0.0975944251,9.10866147e-05,0.143519312,0.0898085833,-2.1668148,0.277976751,0.0190711301,0.138686314 +0.0753240511,3.66956282,-0.0753240585,9.60745274e-06,0.130162865,0.121905193,-0.892600954,-0.0839441121,0.0192409549,0.106551215 +0.10347642,3.66957569,-0.10347642,2.20000002e-05,0.115581125,0.0879555643,-1.41556942,-0.028723266,0.0193612911,0.146429807 +0.692597032,3.66959071,-0.692597032,0.00363082951,0.172966972,0.0846234411,0.188589096,-0.312583774,0.0191336162,0.980233669 +-0.120196156,3.66985893,0.120196149,8.3283092e-05,0.148605928,0.0939366892,-2.30498409,0.341013283,0.0190628096,0.170268163 +0.343943596,3.66989708,-0.343943596,0.000453503861,0.171677411,0.101294547,-2.0939002,-0.814555883,0.0190198999,0.486596614 +-0.256177992,3.66990852,0.256177962,0.000202011099,0.151745081,0.136213392,-3.24706817,-0.152844161,0.0189740825,0.362382054 +0.124364808,3.66996765,-0.124364808,2.9656645e-05,0.129588246,0.0864951313,-1.70966911,-0.00598212704,0.0193098523,0.175906628 +0.0753240436,3.67000794,-0.0753240436,1.67058279e-05,0.135557085,0.125585496,-0.910825849,-0.0754392296,0.0192394219,0.106548086 +0.166640699,3.67031598,-0.166640684,4.80040835e-05,0.137468427,0.0784108639,-1.94761324,-0.107397705,0.0192283709,0.235740021 +0.144904375,3.67031646,-0.144904375,3.39108992e-05,0.135996014,0.0818302035,-1.84905398,-0.0537556261,0.0192594267,0.204931736 +0.0867022797,3.67033052,-0.0867022797,1.71733736e-05,0.111942567,0.0892269686,-1.20116138,-0.112879522,0.0193111617,0.122658357 +-1.22879016,3.67050648,1.22879016,8.43168382e-05,0.0982032046,0.0503435582,-0.122947678,-0.00453363406,0.0192636773,1.73780537 +-1.22417474,3.67052889,1.22417462,0.000185299155,0.111444399,0.0512326397,-0.0840264708,0.000202807976,0.0192636754,1.7312777 +-1.2186358,3.67055607,1.2186358,0.000244340656,0.126365304,0.0601072274,0.00454476196,0.00569790555,0.0192635469,1.7234447 +0.310498476,3.67067122,-0.310498476,0.000459966075,0.151501119,0.0846318305,-2.29793072,-0.696226537,0.0190693233,0.439246327 +0.189669728,3.67068648,-0.189669728,0.000115556009,0.137537256,0.0756236836,-2.03921652,-0.17673111,0.0192013923,0.268260837 +-0.11385417,3.67075348,0.113854177,0.000134495058,0.147324041,0.0940330103,-2.27246094,0.33319357,0.0190646145,0.161551446 +0.0723976344,3.67083645,-0.0723976344,5.38035692e-06,0.204161376,0.231609032,-0.660593033,-0.0497130826,0.0192320608,0.102386542 +-0.270154685,3.67098188,0.270154715,8.08629993e-05,0.153353482,0.142802656,-3.32590604,-0.269107282,0.0189611632,0.382252485 +0.175606236,3.67099142,-0.175606236,7.03650512e-05,0.137789205,0.0774024352,-1.97958779,-0.132827267,0.0192170218,0.248379081 +0.119608492,3.67099166,-0.119608492,4.22548837e-05,0.127626151,0.0874684602,-1.66301775,-0.00394067541,0.0193202682,0.169218495 +0.126791432,3.67101312,-0.126791432,8.37522202e-06,0.13101536,0.0859908313,-1.71744788,-0.0173318386,0.019302452,0.179369435 +-0.374336839,3.67114329,0.374336839,0.000119793207,0.18707712,0.219726264,-3.13596153,-1.26395524,0.0188301764,0.529495716 +-0.684662461,3.67120457,0.684662461,0.00234685862,0.176088035,0.0862242952,0.143780246,-0.432599723,0.0192048904,0.968999743 +0.171787143,3.6712749,-0.171787143,5.43961432e-05,0.137705117,0.0776341408,-1.9667902,-0.122982182,0.0192204285,0.242953122 +0.0827142224,3.67131996,-0.0827142224,2.21584269e-05,0.115862049,0.0927849188,-1.22321272,-0.114516109,0.0192681812,0.117054179 +-0.147256464,3.67135906,0.147256479,0.0001605422,0.151120156,0.103795238,-2.49844861,0.343598634,0.019044714,0.208410725 +-0.337129712,3.67136288,0.337129712,0.000169103194,0.169783622,0.181196973,-3.37577939,-0.890645027,0.0188965667,0.476886332 +-0.300964594,3.67166877,0.300964594,0.000241593691,0.159341931,0.157776788,-3.40763855,-0.544116974,0.0189372562,0.425777256 +0.0856901258,3.67178798,-0.0856901258,1.48052704e-05,0.114510223,0.090719305,-1.20053184,-0.120179653,0.0192971695,0.121205293 +-0.0791562721,3.67184067,0.0791562721,8.3362218e-05,0.15779233,0.112047657,-1.98631573,0.124749571,0.0190744624,0.111980513 +-0.174236238,3.6718483,0.174236238,0.000255049497,0.151460737,0.111302853,-2.69002509,0.281178474,0.019025676,0.246529698 +-0.277619332,3.67208052,0.277619332,0.00010377531,0.154734194,0.146108121,-3.33899069,-0.339343071,0.0189550463,0.392737865 +0.301575661,3.67239618,-0.301575661,0.000414356356,0.14621824,0.0804412067,-2.31407118,-0.664762557,0.0190822203,0.426635355 +0.163369626,3.67241669,-0.163369641,5.81230634e-05,0.137594014,0.0789461061,-1.92110109,-0.105932146,0.0192306675,0.231062055 +0.106131971,3.67246771,-0.106131971,3.42291569e-05,0.122176848,0.088749826,-1.45748734,-0.0434589572,0.0193423014,0.150127023 +0.0896939784,3.6724987,-0.0896939784,2.25681415e-05,0.112197191,0.089293167,-1.20653141,-0.133194581,0.0193022825,0.127050832 +-0.801017761,3.6725316,0.801017821,0.00341146928,0.165518522,0.079028137,0.36337918,-0.375438362,0.0192247871,1.13294888 +0.126440838,3.67256451,-0.126440838,1.42734243e-05,0.131493464,0.0861362442,-1.68417525,-0.0356446132,0.0193003304,0.178881586 +0.17572467,3.67268038,-0.175724655,4.7034031e-05,0.137696028,0.0774043202,-1.97020912,-0.137791455,0.0192164686,0.24855493 +0.124866799,3.67274904,-0.124866799,2.78923344e-05,0.130780697,0.0864061117,-1.66271162,-0.0392573774,0.019304255,0.176638484 +-0.340611905,3.67280602,0.340611905,2.87637995e-05,0.170546636,0.182701439,-3.35449982,-0.931787848,0.018889688,0.48192057 +-0.18751134,3.67281675,0.18751134,0.000103068167,0.15111573,0.114501216,-2.7835238,0.234531999,0.0190137606,0.265541613 +0.204913527,3.67299652,-0.204913527,0.000146595237,0.137151495,0.0746728778,-2.07242584,-0.23159641,0.0191897079,0.289908528 +0.139527559,3.67304516,-0.139527559,3.89095367e-05,0.135423183,0.082847558,-1.79572809,-0.0536151826,0.0192687549,0.197341204 +1.01400208,3.67340708,-1.01400208,0.00108288694,0.160568267,0.0774802193,0.376524687,-0.172333807,0.019205926,1.43418145 +-0.445552945,3.6734271,0.445552915,0.000311594835,0.306982994,0.503562212,-1.81207025,-1.34344494,0.0187344905,0.630111575 +-0.141898751,3.67355394,0.141898751,0.000167168982,0.150888279,0.100525029,-2.45037413,0.335897267,0.0190460924,0.200879812 +0.134196937,3.67359638,-0.134196937,3.45307344e-05,0.133865058,0.0843100399,-1.75338924,-0.0460454337,0.0192796104,0.189797357 +-0.0949304998,3.67375803,0.0949304998,8.72458113e-05,0.143559605,0.0875437111,-2.14174318,0.246407986,0.0190682281,0.13479808 +-0.444901258,3.67380881,0.444901228,0.00022486606,0.306466222,0.501931906,-1.85544574,-1.37861323,0.018732762,0.629190743 +0.174896389,3.67389035,-0.174896389,2.76522442e-05,0.137708932,0.0775034875,-1.96130359,-0.139082879,0.019216368,0.247416303 +-0.377394319,3.67418432,0.377394348,0.00027037473,0.187059045,0.219610065,-3.08135653,-1.30697584,0.0188260153,0.53379643 +0.305019915,3.67419076,-0.305019915,0.000123598598,0.147365838,0.0812107399,-2.30229521,-0.688237667,0.0190764982,0.431585103 +-0.444505483,3.67430067,0.444505483,9.53288909e-05,0.303922623,0.495289415,-1.88470495,-1.42444646,0.0187330693,0.628634334 +0.131305963,3.67447281,-0.131305948,3.55901939e-05,0.133281678,0.0849032998,-1.7233355,-0.0452185012,0.0192857571,0.18570292 +-0.444848269,3.67449045,0.444848239,1.65289379e-07,0.304419398,0.496519059,-1.87607217,-1.42722714,0.0187330041,0.629123032 +0.767434001,3.67459917,-0.767434001,0.00222186372,0.171264872,0.082369931,0.319908291,-0.317126274,0.0191602875,1.0853827 +0.11584416,3.67460012,-0.11584416,4.14903589e-05,0.127451509,0.0886309147,-1.55301988,-0.0479871631,0.0193240456,0.163887888 +-0.445142984,3.67461276,0.445142955,1.85570443e-05,0.304769695,0.497254461,-1.86553454,-1.4261502,0.0187336467,0.62953794 +0.0789411217,3.67461824,-0.0789411217,2.80428558e-05,0.129565209,0.107979082,-1.13319468,-0.123616666,0.0192202777,0.111737184 +-0.323058993,3.6746676,0.323058993,0.000198050097,0.165050834,0.169107035,-3.3747468,-0.764658332,0.0189108774,0.457103848 +-1.22877383,3.67478132,1.22877383,3.44674481e-05,0.098920323,0.0507396273,-0.117337391,-0.0047022216,0.0192602575,1.73779631 +-1.22416663,3.67479324,1.22416663,7.47812228e-05,0.111233622,0.0511353053,-0.0791460723,-0.000962542719,0.0192602389,1.73128045 +-1.2186234,3.67481279,1.21862352,0.000265105075,0.125511095,0.0596585162,0.00847406778,0.00261653983,0.0192600638,1.72343993 +0.0723873451,3.67481375,-0.0723873451,7.15772103e-06,0.243276119,0.279109627,-0.775710583,-0.0396277606,0.0192048065,0.102386534 +-0.374356508,3.67485523,0.374356508,8.79589061e-05,0.185661823,0.216379806,-3.10130501,-1.27703059,0.0188301355,0.529564083 +-0.444792628,3.67485571,0.444792628,0.000269200769,0.302890211,0.49254325,-1.87755167,-1.43573844,0.0187339522,0.629039586 +-0.312333465,3.67500973,0.312333465,0.000195660425,0.162039816,0.162526488,-3.37529993,-0.662837267,0.0189239923,0.441806972 +-0.36958617,3.67506218,0.36958617,0.000195478555,0.183415979,0.210436285,-3.13379622,-1.22942734,0.0188396834,0.522713423 +0.282678723,3.67508864,-0.282678723,0.000371801667,0.139829189,0.0751958638,-2.29164553,-0.572587848,0.0191076268,0.400340199 +-0.441552699,3.67511368,0.441552699,0.000263708789,0.294058144,0.471797109,-1.95412529,-1.4558084,0.0187383313,0.62445116 +0.0723885447,3.67535186,-0.0723885447,9.62835747e-06,0.246783644,0.281841993,-0.79502058,-0.0368153863,0.0192028489,0.102386534 +-0.345988512,3.67537642,0.345988542,0.000205086544,0.172056615,0.184319034,-3.29727697,-0.99328661,0.0188825764,0.489354491 +0.241043925,3.67547512,-0.241043925,0.000191089144,0.136420608,0.0724126548,-2.17321897,-0.375533313,0.0191528536,0.340946257 +-0.414401621,3.67553639,0.414401621,0.000308861636,0.221241146,0.304836571,-2.59457445,-1.59958005,0.0187714174,0.586103082 +0.112752467,3.67579317,-0.112752467,5.79055486e-05,0.126293212,0.0888598263,-1.51209474,-0.0574884042,0.0193260442,0.159549773 +0.10849385,3.67581725,-0.10849385,5.34290666e-05,0.124578245,0.0890974849,-1.44770896,-0.0720500946,0.0193316825,0.153495267 +-0.955284774,3.67584968,0.955284774,0.00288126012,0.157718599,0.0749606937,0.49796015,-0.240306839,0.0192365255,1.35190821 +-0.0721548647,3.67617702,0.0721548647,3.59615988e-05,0.2912848,0.278046548,-1.8220098,0.080111742,0.0190673601,0.102386549 +0.119052097,3.67625141,-0.119052097,5.11352373e-05,0.129149348,0.0877633542,-1.56527734,-0.0625065863,0.01931349,0.168482304 +-0.225080624,3.6763401,0.225080609,0.000157389572,0.150499031,0.124507308,-3.02651215,0.035724543,0.018987447,0.318390965 +0.134632155,3.67643881,-0.134632155,5.14654821e-05,0.134313911,0.0847776309,-1.72754753,-0.0601935089,0.019278245,0.190427512 +0.0791419744,3.67647648,-0.079141967,1.6970851e-05,0.137602657,0.110524833,-1.19393945,-0.10592711,0.0192137472,0.112013139 +0.100280195,3.67656589,-0.100280195,2.85490169e-05,0.121195748,0.0875629932,-1.36013985,-0.115048483,0.0193077289,0.141823113 +0.142576903,3.67666197,-0.142576903,1.52960529e-05,0.136252046,0.0830532089,-1.77553761,-0.0763786137,0.0192636326,0.201697931 +0.14115271,3.67668295,-0.14115271,3.95510324e-05,0.136322111,0.0831606239,-1.77002311,-0.0737544149,0.0192648116,0.199659854 +0.581377506,3.67680883,-0.581377506,0.00115527539,0.175123632,0.0978526846,0.225544423,-0.51307261,0.0190456826,0.82264626 +0.144846141,3.67691565,-0.144846141,3.83093211e-05,0.136524394,0.0825370848,-1.78936887,-0.0814174414,0.0192587078,0.204860479 +0.215272725,3.67701483,-0.215272725,0.000154416513,0.136974126,0.0737941712,-2.08543062,-0.279279739,0.0191771425,0.304701805 +0.0995794237,3.67711329,-0.0995794311,3.38663849e-05,0.12124113,0.0875789151,-1.34778917,-0.123156697,0.0193048287,0.140840024 +0.10007342,3.67736912,-0.100073427,4.01205511e-07,0.121428266,0.0875926688,-1.34927535,-0.124896094,0.0193042532,0.141544282 +0.0894934684,3.67740703,-0.0894934684,5.6441826e-05,0.120869428,0.0878541246,-1.30858874,-0.140269265,0.019255707,0.126665652 +0.100493774,3.67742038,-0.100493774,2.48304477e-05,0.121633962,0.0875856653,-1.35384655,-0.123970769,0.0193040594,0.142129511 +0.339503258,3.67749929,-0.339503258,0.000553065445,0.166626737,0.0964540765,-2.11653328,-0.839289486,0.0190228093,0.480324 +0.172190875,3.67753363,-0.172190875,5.62281675e-05,0.137837455,0.0777946562,-1.92940927,-0.145124018,0.0192148183,0.243529618 +0.0755071342,3.67756987,-0.0755071342,2.09641094e-05,0.170049369,0.15125899,-1.0634917,-0.0616579168,0.0191925243,0.10682524 +0.150012553,3.67760229,-0.150012553,8.27561962e-05,0.136905089,0.0817662477,-1.81271827,-0.0920096487,0.0192500278,0.212239653 +-0.266898572,3.67780733,0.266898572,0.000259061635,0.152914345,0.137705386,-3.24234176,-0.268185407,0.0189587362,0.377529979 +-0.183817655,3.67781377,0.183817655,0.000164556695,0.151168138,0.112584464,-2.73805428,0.226196349,0.0190111771,0.260297209 +0.100093804,3.67781925,-0.100093812,1.68753486e-05,0.121615127,0.0875647813,-1.35036361,-0.126690999,0.0193020329,0.141565546 +0.153785422,3.67785311,-0.153785437,4.04239909e-05,0.137498528,0.0805988461,-1.84055233,-0.100601539,0.0192405358,0.217520386 +0.0829918236,3.67792439,-0.0829918161,2.59280641e-05,0.125641182,0.0965350419,-1.24703085,-0.15116109,0.0192198977,0.117476285 +0.0995697528,3.67807055,-0.0995697603,2.31995582e-05,0.121756874,0.0874416605,-1.35157382,-0.128041297,0.0192986373,0.140818536 +0.370985925,3.67812777,-0.370985895,0.00134532934,0.184915066,0.113184035,-1.76142967,-0.894577026,0.0189811364,0.525187731 +0.157752424,3.67828655,-0.157752424,4.63642718e-05,0.137572631,0.0801043361,-1.85565972,-0.111105293,0.0192353912,0.223195016 +0.0870280266,3.67843628,-0.0870280266,1.98964353e-05,0.123486921,0.0906174034,-1.28304243,-0.147254467,0.0192429889,0.123126179 +0.199155778,3.67883587,-0.199155778,0.00015081637,0.137445867,0.0749688521,-2.02490115,-0.231245309,0.0191879068,0.281702459 +0.0756742507,3.67900038,-0.0756742507,2.02576539e-05,0.171910927,0.149295822,-1.10924017,-0.0557258874,0.0191882774,0.107057132 +-0.0793607607,3.67900229,0.0793607682,5.48895696e-05,0.155569747,0.106475882,-1.99929261,0.12237265,0.0190666262,0.112505414 +0.265540391,3.67903543,-0.265540391,0.000236037522,0.136814415,0.072479181,-2.22811818,-0.497790933,0.0191250872,0.375690192 +0.524561882,3.6792376,-0.524561882,0.00123506365,0.185463548,0.113730013,0.021861162,-0.592321992,0.0189844221,0.742225826 +-0.243021503,3.67930079,0.243021503,0.000299236941,0.151120707,0.130071715,-3.12177944,-0.0974918455,0.0189671498,0.344171047 +0.498934239,3.67930841,-0.498934209,0.00109495106,0.190749764,0.121154457,-0.11940816,-0.647349894,0.0189606808,0.706458569 +-0.145542845,3.67932391,0.145542845,0.00017808273,0.151157334,0.0996047482,-2.45368719,0.305671722,0.0190385114,0.205968454 +-0.28549093,3.67947006,0.28549093,0.000133077599,0.155155778,0.144762248,-3.28900671,-0.429178864,0.0189471077,0.403802335 +-0.335960567,3.67955685,0.335960567,0.000175873822,0.168492258,0.175953358,-3.29747343,-0.905631959,0.0188950468,0.475186944 +0.134179667,3.67959738,-0.134179667,4.66893252e-05,0.134444341,0.0846704617,-1.70757306,-0.0762349814,0.0192713309,0.189778641 +-0.227786154,3.67963839,0.227786139,0.000141090379,0.150794536,0.124108039,-3.02068663,0.00235590013,0.0189808588,0.322229385 +0.0833181739,3.67969346,-0.0833181739,1.5013954e-05,0.12892057,0.0957712084,-1.29789686,-0.135947555,0.0192105249,0.117935352 +-0.413797677,3.67977428,0.413797677,1.95394205e-05,0.211292267,0.282114297,-2.60596895,-1.69072187,0.0187775083,0.585343659 +-0.4102934,3.68006825,0.41029337,0.000372001843,0.206691816,0.271913022,-2.65498042,-1.67083549,0.0187849402,0.580312192 +0.234023362,3.6801033,-0.234023362,0.000124268496,0.136528283,0.0726258457,-2.12600803,-0.359821916,0.0191566776,0.330986023 +0.180888444,3.68016434,-0.180888459,7.51508996e-05,0.137828201,0.0769763142,-1.94129157,-0.179318354,0.0192052852,0.255905271 +0.126888305,3.68044329,-0.12688829,3.28643509e-05,0.133582234,0.0852529481,-1.63466215,-0.0862808302,0.0192785449,0.179453582 +-0.30704695,3.68045092,0.30704695,0.000200277456,0.16021955,0.156112075,-3.31803036,-0.630788743,0.0189286731,0.434357256 +0.22222814,3.68058348,-0.22222814,0.000226231554,0.136763901,0.0733483657,-2.08785486,-0.315438032,0.0191695672,0.314540476 +-0.223774225,3.68059278,0.223774225,0.000135898474,0.15074113,0.122136757,-2.98582244,0.0222844314,0.0189831872,0.316587925 +-0.0722755045,3.68065405,0.0722755119,4.59526054e-05,0.287926197,0.271761835,-1.82746959,0.0803349391,0.0190637074,0.102386549 +-0.156892836,3.68069124,0.156892836,0.000183506578,0.151488036,0.102536127,-2.52696323,0.281404972,0.0190306809,0.222116679 +-0.0877621397,3.68093824,0.0877621397,8.1267528e-05,0.139576346,0.0827435106,-2.08198595,0.177005604,0.0190639887,0.124141671 +0.0795117468,3.68105412,-0.0795117468,2.01523108e-05,0.143676251,0.110683315,-1.25643635,-0.106568649,0.0191852245,0.112519979 +0.0874352679,3.68147039,-0.0874352753,3.44909422e-05,0.124565437,0.0891300514,-1.31504035,-0.152664632,0.0192266386,0.123697996 +0.0919069201,3.68183756,-0.0919069201,4.26663537e-05,0.12338534,0.0870829448,-1.33594298,-0.159067556,0.0192385465,0.130020246 +0.151463449,3.68196583,-0.151463449,5.57677122e-05,0.137603521,0.0812002122,-1.79419374,-0.1176503,0.0192370769,0.214263499 +-0.0795614272,3.68214154,0.0795614272,9.66636871e-05,0.155066475,0.105109714,-1.99949586,0.120453313,0.0190640409,0.112655193 +-0.754785895,3.6822648,0.754785895,0.00240666629,0.16868715,0.0808773413,0.29147473,-0.412337631,0.019213194,1.06774235 +0.597234309,3.68230653,-0.597234309,0.000922390202,0.172408611,0.0935067907,0.257053614,-0.510595858,0.0190630723,0.845229328 +-0.415321618,3.68248272,0.415321618,0.000195514818,0.209409922,0.277971894,-2.5666945,-1.7156173,0.0187813975,0.587447762 +-0.357910782,3.68253207,0.357910782,0.000233843675,0.174924999,0.187760293,-3.15027857,-1.14310527,0.0188599732,0.506366849 +-0.189941734,3.682724,0.189941719,0.000287192001,0.150865316,0.11185018,-2.7481761,0.180983901,0.0190048777,0.268765092 +0.0722422451,3.68274879,-0.0722422451,2.34462277e-05,0.25449422,0.281031281,-0.999794662,-0.020048935,0.0191590115,0.102386549 +0.270570278,3.68292212,-0.270570278,0.000319727173,0.137178272,0.0726571158,-2.21869445,-0.534973741,0.0191174615,0.382820636 +0.161638677,3.6829443,-0.161638677,5.07035656e-05,0.137778193,0.0795598105,-1.84719408,-0.137188733,0.0192244258,0.228626817 +1.1957041,3.6829474,-1.19570422,6.55425611e-05,0.468783915,0.348027915,0.532125294,-0.033187896,0.0192001443,1.69105005 +0.412806958,3.68296719,-0.412806958,0.00049904926,0.197301939,0.127092466,-1.15150893,-0.885455489,0.0189488865,0.583811045 +0.156826466,3.68305206,-0.156826451,4.15091199e-05,0.137730435,0.0802611634,-1.8297379,-0.126176536,0.01922963,0.221902475 +-0.110637344,3.68307495,0.110637344,0.000152866487,0.147518098,0.0877489075,-2.22657228,0.268755674,0.0190518182,0.15730004 +0.12570855,3.68308449,-0.12570855,3.05900248e-05,0.133735329,0.0854744837,-1.60147786,-0.102936789,0.0192755423,0.177794337 +-0.279907942,3.68314028,0.279907942,0.000193390297,0.154445797,0.140810907,-3.23875713,-0.396398932,0.0189470705,0.395892143 +0.179827049,3.68333411,-0.179827049,4.72520624e-05,0.137867674,0.0771268457,-1.92078066,-0.186315626,0.0192038827,0.254473299 +0.412363261,3.68335724,-0.412363291,0.000471560663,0.196965814,0.126732051,-1.15764737,-0.888199985,0.0189492181,0.583180428 +1.19928753,3.68343687,-1.19928753,0.000151905828,0.259126782,0.153206602,0.412103772,-0.00349846669,0.0192023888,1.69611776 +0.4130615,3.68344307,-0.4130615,2.45685023e-05,0.197148561,0.126943976,-1.14719939,-0.887895226,0.0189486574,0.584181726 +0.0799112469,3.68346119,-0.0799112469,2.45049796e-05,0.143804461,0.106451668,-1.31150424,-0.100009166,0.0191774126,0.113075852 +-0.225767195,3.68351698,0.22576721,3.56374985e-05,0.150674641,0.121198207,-2.97384524,-0.00230770884,0.0189797413,0.319405884 +-0.08800634,3.68357515,0.08800634,2.1678281e-05,0.139713183,0.0817571506,-2.08345127,0.173718259,0.0190612003,0.124590382 +1.20365047,3.68361139,-1.20365047,0.000163788063,0.182499349,0.0955874696,0.274404377,0.004554471,0.0192056783,1.70228744 +0.412891448,3.68361235,-0.412891448,6.87122565e-07,0.197051287,0.126832619,-1.14953446,-0.889051139,0.0189487338,0.583937705 +0.128195167,3.68377495,-0.128195152,1.75689529e-05,0.134486347,0.0852650329,-1.61153686,-0.110344499,0.0192704648,0.181317493 +0.0840568393,3.68386745,-0.0840568393,1.97652844e-05,0.130174711,0.0934076086,-1.34183955,-0.144013152,0.0191892106,0.118971676 +-0.293672204,3.68390346,0.293672204,0.000168474304,0.157095432,0.147547528,-3.26953483,-0.520485461,0.0189360175,0.415364444 +-0.167099983,3.68400049,0.167099968,0.000183973432,0.151487872,0.104094438,-2.58215117,0.246430039,0.0190196652,0.2364012 +0.413662225,3.68406272,-0.413662225,0.000751261075,0.196956724,0.126734436,-1.13903403,-0.889521539,0.0189484134,0.58501339 +0.0986963362,3.68449879,-0.0986963362,2.87201219e-05,0.125381589,0.0865576416,-1.37920475,-0.162733644,0.0192475077,0.139670312 +0.118739568,3.68464613,-0.118739575,2.92913719e-05,0.132251948,0.0861782283,-1.53167367,-0.123309478,0.0192719102,0.167933226 +0.127021134,3.68465424,-0.127021134,1.23815071e-05,0.13428545,0.0853842571,-1.5980649,-0.113669463,0.0192704145,0.179673165 +-0.131028488,3.68469858,0.131028503,0.000279835658,0.14990437,0.0950856134,-2.35659838,0.289959311,0.0190395415,0.186058626 +0.0952765048,3.68471098,-0.0952765048,2.31650174e-05,0.124921612,0.0858481899,-1.37751663,-0.169687867,0.0192301422,0.13486214 +-0.0881529227,3.68486071,0.0881529227,9.48117231e-05,0.13976866,0.0814848319,-2.08263659,0.171802059,0.0190601517,0.124734141 +-0.257151425,3.68499494,0.257151395,0.000242447844,0.151818544,0.131677061,-3.13896465,-0.223640963,0.0189550165,0.363893449 +-0.118995674,3.68505216,0.118995674,9.99712065e-05,0.148980349,0.089472428,-2.26661873,0.280257702,0.0190492552,0.168339044 +0.412347555,3.6850605,-0.412347525,0.000412040332,0.196310356,0.126008034,-1.15547669,-0.895699382,0.018948758,0.58315146 +0.109637201,3.68515158,-0.109637201,4.90978528e-05,0.129821107,0.0867133439,-1.44833457,-0.144187391,0.019265214,0.15505676 +0.253478527,3.68530989,-0.253478527,0.00023765763,0.13638249,0.0720376894,-2.15715599,-0.459384322,0.0191344172,0.358680934 +0.11812143,3.68532801,-0.118121423,2.62057329e-05,0.132167935,0.0861864164,-1.52112138,-0.128553852,0.019270312,0.167065173 +0.776352763,3.68536115,-0.776352763,0.00351089286,0.171096474,0.0820725113,0.334019393,-0.330441326,0.0191580933,1.09823048 +0.103470087,3.68538594,-0.103470087,4.11872934e-05,0.125880614,0.0875478238,-1.38171411,-0.167573556,0.0192544255,0.146526098 +0.173622459,3.68539691,-0.173622459,5.34470601e-05,0.138008654,0.077738151,-1.88623238,-0.177383035,0.019206319,0.245570168 +0.109779418,3.68540764,-0.109779418,1.58228486e-05,0.129930571,0.0867251903,-1.44799089,-0.14577952,0.0192642063,0.155259192 +0.10939841,3.68543291,-0.109398402,2.51077763e-05,0.1298296,0.0866939723,-1.44629312,-0.146021411,0.0192637853,0.154720113 +-1.07513237,3.68546343,1.07513237,0.000466729369,0.247018054,0.128861904,0.258118451,-0.11139974,0.0192314498,1.52063799 +0.109601073,3.68551373,-0.109601066,2.16911649e-05,0.129886046,0.0867225677,-1.44664884,-0.146409169,0.0192638077,0.155011237 +-0.231230527,3.68561053,0.231230527,0.00012430943,0.150699124,0.122017503,-2.99160576,-0.0434351861,0.0189758912,0.327032328 +0.165400952,3.68565726,-0.165400952,6.86086059e-05,0.137697875,0.0791358948,-1.84506738,-0.156324893,0.0192177203,0.234029144 +0.0762173533,3.6857276,-0.0762173533,4.44852667e-05,0.170738101,0.139108181,-1.26559198,-0.0463048965,0.019151723,0.108026832 +0.119083531,3.68579197,-0.119083531,7.39130382e-06,0.132502779,0.0861924142,-1.52425468,-0.131862506,0.019268278,0.168434024 +0.128156662,3.6859324,-0.128156662,4.05921819e-05,0.134581998,0.0851570368,-1.60139167,-0.12065284,0.0192653295,0.181256235 +0.118616477,3.68596578,-0.118616477,1.76003032e-05,0.132478654,0.0861858726,-1.52149308,-0.132236421,0.0192678999,0.167768657 +0.477294326,3.68615985,-0.477294326,0.00154475996,0.191765726,0.122468799,-0.328068465,-0.742457628,0.0189501885,0.67561686 +0.18478398,3.6863668,-0.18478398,0.000111017871,0.137809694,0.0765586048,-1.92527461,-0.211049587,0.0191961993,0.261372507 +0.126391232,3.68640828,-0.126391232,3.08530434e-05,0.134460673,0.0851667002,-1.59297299,-0.121476412,0.0192638375,0.17876403 +-0.323997736,3.68651104,0.323997736,0.000258274435,0.163998485,0.162969723,-3.25566244,-0.8118397,0.0189057961,0.458338916 +0.0970136225,3.68663454,-0.0970136151,1.47203946e-05,0.127091557,0.0855827555,-1.41501403,-0.168098852,0.0192223266,0.137345299 +-0.0943196416,3.68678474,0.0943196416,5.33727325e-05,0.142934322,0.0828666538,-2.12083149,0.199535936,0.0190564916,0.133391678 +0.962175369,3.68679595,-0.962175369,0.000853594858,0.164619565,0.0793927833,0.443457305,-0.23223415,0.0191885997,1.36075115 +0.191276491,3.68681002,-0.191276476,8.42134759e-05,0.137698308,0.0759229064,-1.95279455,-0.231403351,0.0191901959,0.270718455 +0.547370434,3.68683767,-0.547370434,0.00150305673,0.178781062,0.104433417,0.139316142,-0.590526879,0.0190061647,0.774562001 +0.299002171,3.68684244,-0.299002171,0.000223122639,0.143740475,0.0772312582,-2.22824955,-0.692700028,0.0190762859,0.422878981 +1.20724726,3.68684721,-1.20724714,0.000324523891,0.165531665,0.0851108283,0.236548394,-0.0124547761,0.0192039069,1.70738101 +0.140833348,3.68687797,-0.140833348,2.78702573e-05,0.136652827,0.0831345841,-1.70147467,-0.125399992,0.0192442536,0.199170083 +0.119012974,3.68691874,-0.119012982,3.92175061e-05,0.132699534,0.0860326067,-1.52411246,-0.13629593,0.0192639567,0.168322548 +-0.0999213606,3.68721819,0.0999213681,7.75548906e-05,0.145334378,0.0848343372,-2.15836883,0.229278028,0.0190544501,0.141340181 +0.940825403,3.68751454,-0.940825403,0.00170647341,0.166134328,0.0801080242,0.450387865,-0.248330191,0.0191844385,1.33056068 +0.951632082,3.68761873,-0.951632082,0.000401698286,0.165601909,0.0798960999,0.452650309,-0.240503207,0.0191861987,1.34589863 +0.0854830891,3.6877017,-0.0854830891,3.14277022e-05,0.130983561,0.0893796831,-1.4134798,-0.140603229,0.0191785824,0.120991021 +1.0754503,3.68770742,-1.0754503,0.000535795931,0.259301126,0.136755377,0.220113456,-0.124831334,0.0191897675,1.52110589 +0.142943636,3.68776321,-0.142943636,3.16443438e-05,0.137336656,0.082505174,-1.70997024,-0.133921459,0.0192382298,0.202155054 +0.167209581,3.68778825,-0.167209595,5.74007863e-05,0.138018459,0.0788943395,-1.84010005,-0.170062974,0.0192103684,0.236553222 +-0.0989474505,3.68803453,0.0989474505,2.34655326e-05,0.145158932,0.0842035934,-2.1505034,0.222908407,0.0190538783,0.139989361 +-0.877677619,3.68811059,0.87767756,0.00181018456,0.159407437,0.0754668564,0.460169375,-0.328573823,0.0192224327,1.24212623 +0.679244041,3.68812275,-0.679244041,0.00142702146,0.173042029,0.0851766691,0.17249836,-0.342828602,0.0191169661,0.961345792 +-0.0985795185,3.68838382,0.0985795185,3.83916813e-05,0.145145759,0.0839088634,-2.14736891,0.219351351,0.0190536883,0.139459923 +-0.393114448,3.68857288,0.393114418,0.000517894165,0.186724156,0.215877667,-2.7633853,-1.50838649,0.0188114811,0.556160927 +0.161385074,3.68860197,-0.161385074,4.50207117e-05,0.137963608,0.0799205229,-1.80097604,-0.16488345,0.019216422,0.228296101 +0.178474188,3.68865728,-0.178474188,7.76527013e-05,0.138037965,0.0770274848,-1.89376497,-0.200511247,0.0191968121,0.252478778 +-0.0992967561,3.68878555,0.0992967561,3.83914521e-05,0.145308793,0.0838760287,-2.15135145,0.220682129,0.0190529767,0.140474513 +-0.0987162888,3.6890552,0.0987162888,1.51080894e-06,0.145203575,0.0836663544,-2.14699864,0.217632771,0.0190530792,0.139689028 +0.0807043985,3.68909407,-0.0807044059,4.48904539e-05,0.143629298,0.100797459,-1.40678215,-0.0958653018,0.019148726,0.114373118 +0.75555867,3.68911147,-0.75555861,0.00246167998,0.171484292,0.0825421214,0.298216343,-0.336802959,0.0191484634,1.06858575 +-1.21764386,3.68945265,1.21764398,0.000259070541,0.123489976,0.0583974868,0.00564409839,-0.00801043306,0.0192479547,1.72201788 +0.87077409,3.68961048,-0.870774031,0.00433564931,0.169903427,0.0816709325,0.442792267,-0.293026596,0.0191752538,1.2318275 +-1.05593276,3.68966556,1.05593276,0.00138499483,0.168399125,0.0833403915,0.32167089,-0.115040824,0.0192309693,1.4934814 +-0.350618899,3.68968439,0.350618899,0.000282769965,0.171246901,0.176185906,-3.11275077,-1.08674073,0.0188736804,0.495950758 +0.0899467766,3.68976426,-0.0899467766,2.62832837e-05,0.12947081,0.0859400332,-1.43180323,-0.15474847,0.0191856511,0.127239168 +-0.0988945067,3.68979883,0.0988944992,6.3009531e-05,0.14526014,0.0834309757,-2.14633679,0.215983286,0.0190526359,0.139900148 +0.995035768,3.68989515,-0.995035768,0.000621158106,0.162524626,0.0783942044,0.407221496,-0.20423089,0.0191910043,1.40732551 +0.134312809,3.68997049,-0.134312809,6.74085386e-05,0.135939881,0.0847666785,-1.62250185,-0.142943382,0.0192474201,0.190078765 +0.143421844,3.69001389,-0.143421829,1.71583306e-05,0.137559548,0.0823677704,-1.69818187,-0.146014914,0.019232763,0.202840403 +0.193929076,3.69006491,-0.193929076,4.13747548e-05,0.13768068,0.0756850094,-1.94120336,-0.250498861,0.0191842709,0.27449885 +-0.635671735,3.69012117,0.635671735,0.000249164819,0.176060915,0.088917315,0.0505138971,-0.475224435,0.0191778764,0.899598598 +-0.200652629,3.69013882,0.200652614,0.000231216298,0.150481358,0.114014842,-2.79096079,0.0944410786,0.0189874768,0.284166992 +0.0938240588,3.69016552,-0.0938240588,4.09896602e-05,0.128504679,0.0838610008,-1.45100474,-0.160284802,0.0191954877,0.132720977 +-0.468542606,3.690202,0.468542576,0.000568388787,0.287585884,0.456621051,-1.01452017,-1.51368308,0.0188116133,0.662625968 +0.773065388,3.69024658,-0.773065388,0.000162840122,0.171106964,0.0820371881,0.328465044,-0.335880786,0.0191548187,1.09357285 +0.14274627,3.69031358,-0.14274627,2.03412383e-05,0.137478262,0.0826143846,-1.68857086,-0.148162037,0.0192334,0.201884851 +0.143142045,3.69049597,-0.143142045,7.25492782e-07,0.137593105,0.0824666396,-1.69154394,-0.149211064,0.0192321967,0.202447668 +0.234557301,3.69056535,-0.234557286,9.05459237e-05,0.136591926,0.0724637657,-2.07034302,-0.393254459,0.0191495605,0.331881344 +0.143809408,3.69056797,-0.143809393,4.28787644e-05,0.137673497,0.082258001,-1.69700265,-0.1496301,0.0192307457,0.203384921 +-0.54696101,3.69075108,0.54696095,0.0008195634,0.184078529,0.18791908,0.36592406,-0.775815368,0.0190754011,0.773740292 +-0.240318239,3.69076347,0.240318224,0.000156650756,0.150743932,0.122756384,-3.00593114,-0.123546384,0.0189660601,0.339980781 +-0.101990655,3.69081306,0.101990655,5.47452146e-05,0.145912334,0.0838035941,-2.16179919,0.219140798,0.0190501306,0.144245893 +0.101017654,3.69085169,-0.101017654,3.00219417e-05,0.130004719,0.0840890333,-1.46318364,-0.171864986,0.0192118641,0.142896056 +0.208944201,3.69095755,-0.208944231,0.000185928599,0.137343094,0.0742135346,-1.98380899,-0.303534985,0.0191703197,0.295727432 +0.142764553,3.69097185,-0.142764539,3.16930636e-05,0.137618214,0.0823776871,-1.68859673,-0.152126938,0.019230051,0.201910615 +0.143243939,3.69100499,-0.143243939,1.31526931e-05,0.137671411,0.0823262259,-1.69169092,-0.152052715,0.0192297902,0.202589169 +0.262652755,3.69102383,-0.262652755,0.000140674631,0.136955529,0.0720270649,-2.15676975,-0.516624033,0.0191193689,0.371570826 +-0.412538111,3.69112778,0.412538111,0.000271504396,0.199527264,0.252747446,-2.51016951,-1.69055569,0.0187968258,0.583440661 +0.232289135,3.69115686,-0.232289135,0.000191787854,0.136683941,0.0724606812,-2.06201506,-0.385055542,0.019150544,0.328600675 +-1.22364891,3.69117832,1.22364891,0.000192028849,0.111872874,0.0514801592,-0.0851752609,-0.00157203781,0.0192464758,1.73050869 +-1.22878778,3.69120407,1.22878778,8.78732826e-05,0.102431297,0.0524667539,-0.127428874,-0.0045936536,0.019246446,1.73777604 +0.249985039,3.69132805,-0.249985054,0.000138495292,0.136427924,0.0718407184,-2.11417961,-0.460373908,0.019134257,0.35390842 +0.115505174,3.69155765,-0.115505174,2.88868941e-05,0.133697391,0.0851517171,-1.51353419,-0.170058146,0.0192304049,0.163499162 +1.05748153,3.69159698,-1.05748141,0.00153671321,0.171474069,0.0853639767,0.27024287,-0.132000178,0.0191943794,1.49568796 +0.143932849,3.6916213,-0.143932849,4.17239316e-05,0.137744144,0.0821335092,-1.69450843,-0.1548246,0.0192275289,0.203558177 +-0.289707452,3.69168139,0.289707452,0.000203330041,0.155691475,0.141588464,-3.19026923,-0.512058616,0.0189326108,0.409861624 +-0.650941551,3.69176674,0.65094161,0.00201653386,0.17540583,0.0876105055,0.0811671317,-0.469908923,0.0191819351,0.92104733 +-0.285171539,3.69207048,0.285171539,0.000261631794,0.154858798,0.13959603,-3.17897224,-0.474723935,0.0189351887,0.403416485 +0.955055654,3.69227123,-0.955055594,0.000315290556,0.165226743,0.0796790048,0.44882834,-0.240820527,0.0191834327,1.35072196 +-0.468540221,3.69235611,0.468540192,6.97914293e-05,0.283872694,0.446272433,-1.07157171,-1.6381377,0.0188123789,0.662631631 +0.0722534433,3.69247246,-0.0722534433,1.7476048e-05,0.253298789,0.261405051,-1.13759172,-0.0133491196,0.0191312116,0.102219127 +-0.171665698,3.69253874,0.171665683,0.000131833222,0.151282951,0.102555685,-2.58029175,0.194248885,0.0190069899,0.243004784 +-0.467833042,3.69255614,0.467833042,0.00022293521,0.281330019,0.439934492,-1.09575546,-1.65020847,0.018812146,0.661627233 +0.0866270214,3.69257426,-0.0866270214,4.08028354e-05,0.132904097,0.0876209512,-1.47264409,-0.143664569,0.0191541016,0.122781232 +0.316738278,3.69265485,-0.316738248,0.000286432944,0.149737433,0.081498988,-2.16380715,-0.799144983,0.0190490298,0.447951317 +-0.469136208,3.69269896,0.469136208,0.000373856834,0.282320917,0.442354947,-1.05005074,-1.64171708,0.0188154355,0.663470864 +0.0919426754,3.6927681,-0.091942668,2.05515807e-05,0.1299005,0.0838256925,-1.46609783,-0.160803244,0.0191762131,0.130123541 +-0.468632638,3.6928134,0.468632638,2.61643027e-06,0.281634271,0.440774947,-1.06877863,-1.64898288,0.0188144743,0.662768483 +0.164977461,3.69290853,-0.164977461,4.49742693e-05,0.138244629,0.078839317,-1.80622625,-0.186856151,0.0192021467,0.233352572 +0.325715423,3.69299507,-0.325715423,0.000323226122,0.155095324,0.0857772082,-2.11958456,-0.837642789,0.019035466,0.460650355 +0.104148351,3.69306588,-0.104148343,2.65369144e-05,0.131539568,0.0837397501,-1.48764336,-0.176907524,0.0192056429,0.147362411 +0.635975957,3.69307804,-0.635975957,0.000889220275,0.174664006,0.0899124295,0.118134901,-0.350267202,0.0190912709,0.899947643 +0.154036686,3.69314122,-0.154036701,0.000127118765,0.138036162,0.0812176764,-1.73925996,-0.16995202,0.0192179643,0.218046159 +-0.468367547,3.69329691,0.468367517,0.000158812516,0.280577749,0.437864244,-1.07357836,-1.6473887,0.0188152064,0.662388146 +-0.217994064,3.69332623,0.217994064,0.00019928797,0.150374115,0.115099132,-2.8584199,-0.00222572894,0.0189782754,0.308300227 +-0.166631818,3.69351816,0.166631818,0.000219085501,0.15133512,0.101061262,-2.54644918,0.202079564,0.0190093238,0.235838115 +0.199322924,3.69367361,-0.199322924,0.000125597144,0.137708008,0.0747919083,-1.94331753,-0.280054092,0.0191739034,0.281991243 +-0.178573593,3.69377685,0.178573593,0.000146989973,0.151026815,0.103883848,-2.61590791,0.164633453,0.0190028176,0.252642572 +0.361692309,3.6938324,-0.361692309,0.000672319729,0.174410552,0.103053585,-1.80953979,-0.945468545,0.0189873092,0.512057662 +0.113549858,3.69386768,-0.113549858,5.60922417e-05,0.133490503,0.0849698707,-1.50152242,-0.182312608,0.0192204304,0.160814404 +0.0938202962,3.69388819,-0.0938202962,3.80955171e-05,0.129934326,0.0832365081,-1.47536123,-0.166208491,0.0191748459,0.132778376 +0.967412293,3.69388819,-0.967412293,0.000577447005,0.164313793,0.0792240202,0.434604168,-0.230331033,0.0191841368,1.36814058 +0.187263489,3.69393492,-0.187263489,0.000108089022,0.137715742,0.0764374882,-1.88715458,-0.249249637,0.0191841852,0.265010685 +0.0722121596,3.69395757,-0.0722121596,6.23672713e-06,0.254649192,0.257832557,-1.17172861,-0.00967077445,0.0191267878,0.102193266 +-0.0719075203,3.69395757,0.0719075203,9.07123103e-05,0.275663465,0.247949883,-1.83350229,0.0832792819,0.0190559272,0.102386549 +-0.903786004,3.69407582,0.903786063,0.00314982818,0.158655971,0.0751784071,0.463977665,-0.301433027,0.019219432,1.27849185 +0.952419758,3.69409585,-0.952419758,4.59942494e-05,0.165404305,0.0797437429,0.448687822,-0.243879437,0.0191818085,1.34702742 +0.191654682,3.69425297,-0.191654682,0.000120895376,0.137828767,0.07579799,-1.9088428,-0.260406256,0.0191795379,0.271205187 +0.29185015,3.69428468,-0.29185015,0.000262376328,0.140588969,0.0740705356,-2.18200326,-0.676285923,0.019081613,0.412846893 +-0.308373004,3.69438624,0.308373004,0.000339485123,0.159519255,0.150470719,-3.18567491,-0.693029165,0.018916145,0.43650955 +-0.318882406,3.69440269,0.318882406,0.00021475424,0.162007302,0.154946789,-3.17276597,-0.789574921,0.018909445,0.451141 +0.215258181,3.69456863,-0.215258196,0.000201035626,0.137156084,0.0738109276,-1.9838618,-0.337593555,0.0191631485,0.304658294 +0.105346873,3.69459128,-0.105346873,8.30865392e-05,0.132214919,0.0835964829,-1.49519157,-0.18360807,0.0191995725,0.149103776 +0.0768636167,3.69465971,-0.0768636093,3.58025354e-05,0.167707473,0.127187073,-1.37106228,-0.0451545864,0.0191277638,0.108751103 +0.129734829,3.69472408,-0.129734829,5.26442309e-05,0.13647595,0.0836498141,-1.59715092,-0.17243062,0.0192235522,0.183529198 +1.19561136,3.69472671,-1.19561136,7.68189493e-05,0.416378021,0.302558601,0.50903523,-0.077967748,0.0191899482,1.69093311 +0.236985117,3.69484758,-0.236985117,0.000173783847,0.136661202,0.0722293109,-2.05608225,-0.414677918,0.0191436782,0.335219979 +0.134463742,3.69498014,-0.134463757,7.3682284e-05,0.137006953,0.0831735432,-1.62279296,-0.173119932,0.0192219019,0.190291509 +1.00472069,3.6950922,-1.00472069,0.000563328736,0.161530435,0.0778796673,0.383738816,-0.192538098,0.0191886295,1.42096162 +-0.568814993,3.69511318,0.568815053,0.000940094236,0.17335552,0.141095355,0.382532895,-0.622637391,0.0191049017,0.80472672 +0.103600539,3.69513559,-0.103600532,4.83087606e-05,0.132094592,0.0833720788,-1.49397767,-0.182453617,0.0191953611,0.146617457 +0.117829964,3.69533539,-0.117829964,4.76585847e-05,0.134583533,0.0844317675,-1.52714705,-0.184208244,0.0192167629,0.166736096 +-0.115095109,3.69553614,0.115095109,0.000106814376,0.148728698,0.0849763453,-2.22389388,0.231329784,0.019040186,0.162934229 +-1.02946734,3.69555044,1.02946734,0.00174790947,0.156914964,0.0753832832,0.395865977,-0.146522537,0.0192267261,1.45604539 +0.171199739,3.69557047,-0.171199739,6.65544503e-05,0.138079539,0.0785266235,-1.81875587,-0.206783414,0.0191960651,0.242322236 +0.696125805,3.69558144,-0.696125865,0.00230635842,0.172571987,0.0839429125,0.196634293,-0.352378249,0.0191227775,0.985607564 +-0.140410125,3.69560194,0.140410125,0.000216027838,0.150622308,0.0935107395,-2.37681699,0.231108129,0.0190240871,0.199109271 +-0.237467244,3.69571018,0.237467244,0.000326689187,0.150384352,0.120558999,-2.95838594,-0.123874918,0.0189637449,0.335995823 +-0.260363698,3.69586396,0.260363698,0.00030056102,0.151379749,0.128098875,-3.06320715,-0.285998493,0.0189488195,0.368313253 +1.1991955,3.69589138,-1.1991955,0.000180551753,0.242762193,0.141957372,0.413218826,-0.040984571,0.0191918518,1.69600213 +-0.523190975,3.69594574,0.523190975,0.000774622546,0.224105984,0.309777528,0.362592757,-0.962001681,0.0189983435,0.740128398 +0.0722180307,3.69596624,-0.0722180307,2.20665206e-05,0.255680382,0.255860955,-1.19454026,-0.00918151252,0.0191235002,0.102163583 +1.03318179,3.69601059,-1.03318179,0.00230277795,0.159683064,0.0771506056,0.326857865,-0.157488331,0.0191913974,1.46131551 +-0.079651162,3.69612455,0.079651162,0.000199170827,0.152701035,0.0971532837,-1.99175668,0.111088887,0.0190545879,0.113397792 +-0.428270638,3.69641829,0.428270638,0.000364605366,0.204827279,0.264219433,-2.20050955,-1.8206439,0.0187990107,0.605675817 +-0.213730395,3.69649076,0.213730395,6.61772574e-05,0.150218055,0.112203255,-2.807441,0.00647342578,0.018978633,0.302308947 +0.0769581124,3.69659162,-0.0769581199,1.64162993e-05,0.16750215,0.123719737,-1.40806639,-0.0409345888,0.019122377,0.108933158 +0.125099331,3.69660997,-0.125099316,8.88228024e-05,0.136280686,0.0835942477,-1.57423353,-0.178218603,0.0192166604,0.176988527 +0.957008839,3.69675303,-0.957008839,0.000622307765,0.164760143,0.0793892518,0.44281131,-0.239266694,0.0191806238,1.35351741 +-0.276559293,3.6967864,0.276559293,0.000212209445,0.153497264,0.134503603,-3.10862494,-0.422947913,0.0189386457,0.39117074 +-0.151231915,3.69687939,0.151231915,0.000402399659,0.151203409,0.0954642445,-2.43452644,0.215144649,0.0190165695,0.214366019 +0.0822269917,3.69689298,-0.0822269917,3.99742785e-05,0.142012477,0.0939841568,-1.47949278,-0.101561889,0.0191301238,0.116348356 +-0.245549738,3.69711876,0.245549724,0.00025036218,0.150639623,0.121730119,-2.9784255,-0.184099481,0.0189598408,0.347314805 +0.0918450207,3.6971817,-0.0918450207,2.20596849e-05,0.131343484,0.0828830078,-1.50042701,-0.160192966,0.0191596579,0.129916757 +-0.336167306,3.69719243,0.336167306,0.0002585006,0.165885925,0.162142143,-3.09618878,-0.965257645,0.0188913643,0.475538433 +1.20349658,3.69729018,-1.20349658,0.000343219028,0.174192742,0.0908070058,0.285346419,-0.0239714459,0.0191944987,1.70208502 +-0.368400067,3.69745159,0.368400067,0.0002316756,0.174545705,0.180229291,-2.89184666,-1.27053082,0.0188562591,0.521044135 +-0.118489638,3.69772243,0.118489638,0.000150839478,0.149066806,0.0852164477,-2.23880029,0.225837216,0.0190367009,0.167732522 +-0.195753247,3.6977303,0.195753247,0.000203544099,0.150367782,0.107579328,-2.70109677,0.0796287432,0.0189851336,0.277445525 +0.293538779,3.69793034,-0.293538749,6.38156562e-05,0.140835389,0.0739942491,-2.16258049,-0.694115162,0.0190773644,0.41528675 +0.295315802,3.69809937,-0.295315832,0.000237816887,0.141203851,0.0742855072,-2.1605773,-0.704602242,0.0190753322,0.417854428 +0.784000278,3.69865537,-0.784000278,0.00286580087,0.170827255,0.0818374157,0.336842835,-0.335419983,0.019151723,1.10885859 +0.161593035,3.69874144,-0.161593035,8.34661987e-05,0.138459519,0.0792292282,-1.76351118,-0.20321174,0.0191951059,0.228657976 +0.251140594,3.69887829,-0.251140565,0.000290038442,0.136586785,0.0715389699,-2.07936954,-0.484954596,0.0191268586,0.355328321 +0.0771262944,3.69910955,-0.0771262944,4.72077445e-05,0.167345211,0.121646181,-1.43085313,-0.0404133685,0.0191184264,0.109117098 +0.269725919,3.69911194,-0.269725919,0.000273078709,0.137213454,0.0715940371,-2.12667871,-0.569106281,0.0191052742,0.381516397 +-0.130518794,3.69912624,0.130518794,0.000170051193,0.149977565,0.0882409513,-2.30121517,0.220693141,0.019028049,0.185285851 +0.772100508,3.69918036,-0.772100449,0.00266173482,0.171070188,0.0819478929,0.324587971,-0.342828572,0.0191501975,1.0921092 +1.217237,3.69931865,-1.217237,0.00024819313,0.11949183,0.0564757027,0.100733928,-0.0287684854,0.0191987548,1.72146988 +-0.503534019,3.69932795,0.503534019,0.000348028261,0.244452506,0.355158478,0.0232552439,-1.34559178,0.0189384557,0.712207794 +-0.173178509,3.69945574,0.173178524,0.00019207281,0.150942847,0.100638941,-2.55497026,0.161878422,0.019001646,0.245050117 +1.22352278,3.69955969,-1.22352278,0.000198812602,0.105742879,0.0484938286,0.0147490352,-0.0103928577,0.0191991366,1.73036039 +-0.210967734,3.69958305,0.210967734,0.000244714087,0.150197208,0.110428922,-2.77368522,0.00590319699,0.0189776402,0.29838866 +0.0828488767,3.69961929,-0.0828488767,2.52495065e-05,0.141377419,0.0903277546,-1.52325487,-0.0984158516,0.0191230439,0.117304474 +0.0889711082,3.69962168,-0.0889711082,3.26785193e-05,0.13376686,0.0843726769,-1.52367306,-0.150756702,0.0191383939,0.125905707 +1.22882164,3.69963455,-1.22882164,9.1296788e-05,0.0978411436,0.0507969968,-0.0350891352,-0.00837796368,0.0191991441,1.73785448 +-0.113519669,3.69965696,0.113519661,0.000157890652,0.148281351,0.0837170407,-2.20862007,0.215395451,0.0190371554,0.160766542 +-0.088945508,3.69975233,0.0889455155,0.000248316268,0.14036423,0.0772469416,-2.06387854,0.1438815,0.01904938,0.126625746 +0.0986050367,3.69976425,-0.0986050367,6.02940709e-05,0.133623242,0.0818185583,-1.55073476,-0.173464954,0.0191561654,0.139790282 +-0.21377711,3.70011187,0.213777125,1.10536821e-05,0.150151372,0.110961936,-2.78634834,-0.00995153096,0.0189750176,0.302429199 +0.210853174,3.70020056,-0.210853189,6.69729561e-05,0.137390554,0.0738997459,-1.94600511,-0.336475223,0.019160226,0.298493624 +0.16641137,3.70021915,-0.16641137,8.31092839e-05,0.138390616,0.0785800517,-1.7767266,-0.217841491,0.0191892777,0.235438436 +0.585139036,3.70060635,-0.585139036,0.00128965965,0.17172806,0.0932041705,0.219600379,-0.570632339,0.0190466847,0.827906251 +0.322236985,3.70071769,-0.322236985,4.22528756e-05,0.151088551,0.0819424912,-2.10015297,-0.850359559,0.0190372337,0.455844522 +-0.190302402,3.70085454,0.190302402,0.000278783788,0.150258109,0.104294956,-2.6476655,0.0898051709,0.0189886652,0.269513041 +0.174580455,3.70093441,-0.174580455,0.000162217751,0.138173342,0.0773945674,-1.80953145,-0.237702072,0.0191820879,0.247174382 +0.951408267,3.70125699,-0.951408267,0.00146322837,0.165203214,0.0795822144,0.443784893,-0.246089607,0.0191767998,1.34555578 +0.636356413,3.70130062,-0.636356354,0.000222009592,0.169075027,0.0879346058,0.288810611,-0.498289347,0.0190892033,0.899999976 +-0.214916408,3.70139861,0.214916408,0.000384903746,0.150084704,0.110783316,-2.78358579,-0.0205353387,0.0189737938,0.30400753 +-0.377254128,3.70141673,0.377254158,0.000210697268,0.176823139,0.185062453,-2.77668214,-1.37025368,0.0188439935,0.533614933 +-0.61581701,3.70146632,0.61581707,0.00153817027,0.172374636,0.0993352532,0.330786914,-0.554551005,0.0191436876,0.871719241 +-0.864412189,3.70151329,0.864412248,0.00717490818,0.159471154,0.0754335448,0.438016921,-0.344102621,0.0192127358,1.22370517 +-0.212795466,3.70168805,0.212795466,3.54844015e-05,0.150078416,0.110401995,-2.77292633,-0.0108752185,0.0189745184,0.301040947 +-0.533197999,3.70171404,0.533197999,0.000455473782,0.191203788,0.218973443,0.380598545,-0.945693254,0.0190428514,0.754506946 +0.321111262,3.70211387,-0.321111262,0.000205398086,0.150385305,0.0812258571,-2.09572291,-0.847297966,0.0190380476,0.454253286 +0.0927144215,3.70228386,-0.0927144215,4.85520977e-05,0.13408193,0.0817971081,-1.55375135,-0.15938136,0.0191401076,0.131214187 +0.153941751,3.70239043,-0.153941751,0.000123348029,0.138633758,0.0801009163,-1.71161532,-0.214658156,0.0191902891,0.217876405 +0.205148757,3.70249581,-0.205148757,0.000145485101,0.137591749,0.074117057,-1.9219054,-0.324491024,0.0191592406,0.290240109 +-0.344208628,3.70254779,0.344208628,0.000473781722,0.167102933,0.163751394,-3.01426172,-1.05546772,0.0188815817,0.487080395 +0.631574631,3.70256782,-0.631574631,0.000801762275,0.169391334,0.0884975046,0.285285115,-0.505399704,0.0190836675,0.893212974 +0.0902233645,3.70277524,-0.0902233645,2.36725555e-05,0.134369507,0.0819262415,-1.56723118,-0.146771014,0.0191296078,0.127776697 +0.117767766,3.70282149,-0.117767766,4.35191323e-05,0.137305483,0.0821590275,-1.57935703,-0.197723866,0.0191799253,0.16658619 +0.0833384544,3.70283937,-0.0833384544,5.55928964e-05,0.141479984,0.0885605887,-1.54641414,-0.098386012,0.0191178974,0.117919415 +-0.118144304,3.7028482,0.118144304,0.000238083856,0.148870274,0.0838188455,-2.22169971,0.207977638,0.0190330129,0.167242587 +0.128669396,3.70317268,-0.128669396,4.63488395e-05,0.137754172,0.0824431852,-1.60108209,-0.20196496,0.0191926081,0.181993484 +0.115814552,3.7031765,-0.115814552,6.61032973e-05,0.137180403,0.0821727142,-1.57484066,-0.198707432,0.0191765632,0.163875133 +0.139444962,3.70322227,-0.139444962,7.97677785e-05,0.138109595,0.0819412246,-1.63573337,-0.209793955,0.0191962235,0.197322115 +-0.99387753,3.70349741,0.99387747,0.000629897579,0.155724362,0.0742012411,0.443122476,-0.196468666,0.0192184485,1.4060272 +-0.100496031,3.70391607,0.100496031,0.000261142763,0.145437717,0.0795647874,-2.12547898,0.17602703,0.0190415885,0.143056214 +0.322556645,3.70391989,-0.322556645,0.000260556175,0.15058805,0.0812827572,-2.08079743,-0.857950985,0.0190356113,0.456256151 +-0.496269166,3.70392942,0.496269166,0.000596460595,0.24880679,0.364337116,-0.18689619,-1.56679547,0.0189099163,0.701986313 +0.142875612,3.7039845,-0.142875612,3.98264056e-05,0.13852638,0.0815107003,-1.65655541,-0.211662918,0.0191928595,0.202182621 +0.286675036,3.70403004,-0.286675036,0.000304223417,0.139887691,0.072951667,-2.12066412,-0.671791792,0.0190801024,0.405459881 +-0.373650312,3.70456696,0.373650312,0.000113296832,0.174285233,0.177423,-2.77389812,-1.34032512,0.0188504215,0.528595209 +-0.471270978,3.70467281,0.471270978,0.000248060911,0.251379043,0.369691074,-0.99028796,-1.73089075,0.0188489072,0.666478395 +0.197941303,3.70467567,-0.197941303,0.000132407265,0.13770093,0.0751016289,-1.88109505,-0.311235577,0.0191627014,0.28011179 +0.115826607,3.70491838,-0.115826607,3.40263141e-05,0.137499645,0.0819411054,-1.57789183,-0.202836245,0.0191706475,0.16390276 +0.227032661,3.70504475,-0.227032647,0.000102797472,0.1370911,0.0723211244,-1.97965777,-0.404320687,0.0191391483,0.321080685 +0.147200674,3.70522285,-0.147200674,7.13360496e-05,0.138806224,0.0803836882,-1.68089294,-0.216987014,0.0191862043,0.208244175 +1.21528745,3.70523477,-1.21528745,0.000248216063,0.123715535,0.0590355508,0.126027822,-0.0353238247,0.0191935003,1.71871686 +0.534750879,3.70525408,-0.534750879,0.00119087298,0.178215414,0.104150422,0.0639554933,-0.676497638,0.0189925786,0.75689137 +-1.00702512,3.70533419,1.00702512,0.00115451054,0.155955032,0.074501738,0.423047841,-0.180335835,0.0192179251,1.42431629 +-0.40382123,3.70548916,0.40382123,0.000260293687,0.181327909,0.200069964,-2.45733738,-1.60688329,0.0188229699,0.571163476 +0.328877509,3.70559406,-0.328877509,0.000292637182,0.152992934,0.0832068473,-2.03546023,-0.888370633,0.0190266389,0.465124249 +0.636316419,3.70560956,-0.636316419,1.14726208e-05,0.168976814,0.087739177,0.2893098,-0.505160034,0.0190864783,0.900000036 +0.103883818,3.70579147,-0.103883818,4.17257543e-05,0.135848716,0.0811885744,-1.57156849,-0.184869274,0.0191526562,0.146922708 +0.117368966,3.70595789,-0.117368966,4.86855643e-05,0.137795478,0.081798099,-1.58303833,-0.206742346,0.0191687066,0.166047454 +0.122161046,3.70595932,-0.122161046,4.19006683e-05,0.13810277,0.0816305354,-1.59728289,-0.209823012,0.019171929,0.172776341 +-0.327843785,3.70598793,0.327843785,0.000218897083,0.162813082,0.1516525,-3.02352333,-0.899468184,0.018901201,0.463807523 +0.131150618,3.70602465,-0.131150618,5.44061404e-05,0.138479337,0.0816803277,-1.61763775,-0.211811692,0.0191817414,0.185537696 +-0.257792681,3.70621228,0.257792652,0.000243212344,0.150707036,0.121721134,-2.95835209,-0.30839175,0.0189447682,0.364833027 +0.261748135,3.70634246,-0.261748135,0.000178671078,0.136962265,0.0711479187,-2.06229258,-0.551731467,0.0191091504,0.370255888 +0.0719557554,3.70646524,-0.0719557554,3.61651801e-05,0.258571059,0.246888235,-1.32281482,-0.00656516384,0.0190939568,0.101999998 +0.0913047343,3.70663047,-0.0913047343,6.54802134e-05,0.135378838,0.0807745457,-1.59019995,-0.147236645,0.0191236101,0.129202992 +1.21691787,3.70665836,-1.21691787,4.73342989e-05,0.117760308,0.0554803163,0.104475498,-0.0364450626,0.0191930532,1.72104383 +-0.947305977,3.70672178,0.947305918,0.00228579529,0.157071501,0.0744771212,0.471077859,-0.258682102,0.0192128643,1.34084725 +1.22339928,3.70677233,-1.2233994,7.31517066e-05,0.105014279,0.0480850935,0.0184023138,-0.0122768991,0.0191934761,1.7302103 +1.22880042,3.70686722,-1.2288003,3.32456038e-05,0.0986450389,0.0511874333,-0.0311508607,-0.00839093234,0.0191934276,1.737849 +0.141305014,3.70691657,-0.141305014,1.50998312e-05,0.138862342,0.08093898,-1.65517759,-0.223378062,0.0191785432,0.200026721 +-0.369817913,3.70695782,0.369817883,0.000253356178,0.173132315,0.174377352,-2.77316713,-1.30503547,0.0188557878,0.523144841 +-0.31418407,3.70697832,0.31418407,0.000264820759,0.159160703,0.147081316,-3.05785394,-0.769277215,0.0189112015,0.444643468 +-0.635749221,3.70697832,0.635749221,0.000729824184,0.171042264,0.0936887339,0.315030962,-0.527357161,0.0191649161,0.899999976 +0.12895444,3.70701003,-0.12895444,1.79821818e-05,0.13840501,0.0817552432,-1.60966015,-0.219049066,0.0191745348,0.18245782 +-0.391633421,3.70736837,0.391633391,0.000254147482,0.179982126,0.194919765,-2.57274961,-1.49528813,0.0188304242,0.553990483 +-0.981781662,3.70753169,0.981781662,0.00116150058,0.155960754,0.0742042959,0.447314501,-0.212576538,0.019214781,1.3886497 +0.63373071,3.70758629,-0.633730769,0.00085177354,0.168940082,0.087795414,0.285026491,-0.512423575,0.0190836359,0.89629668 +-0.139347956,3.70802951,0.139347956,0.000411817338,0.150130585,0.0906384364,-2.3340044,0.187829703,0.0190152917,0.197599471 +0.10810785,3.70815945,-0.10810785,4.21707955e-05,0.137469739,0.0806226134,-1.59597099,-0.190664172,0.019147804,0.152893707 +-0.440868676,3.70828891,0.440868676,0.000382561324,0.205455318,0.263401747,-1.85982907,-1.92226398,0.0188091546,0.623539448 +-0.373215288,3.70838571,0.373215288,4.11083311e-05,0.173617616,0.17527613,-2.73766518,-1.33755279,0.0188517533,0.528021693 +0.222317412,3.70857763,-0.222317412,0.000105166619,0.137274534,0.0725898519,-1.94627666,-0.398018956,0.0191395525,0.314425647 +0.077411525,3.70867538,-0.077411525,7.48801613e-05,0.166921958,0.115356281,-1.52453852,-0.0371060893,0.0190923307,0.109731063 +0.16245541,3.70895576,-0.16245541,5.95484526e-05,0.138916731,0.0781697854,-1.74546647,-0.239918828,0.0191709865,0.229788795 +0.206434295,3.70899463,-0.206434309,0.000171612453,0.137715384,0.0738926232,-1.89683318,-0.348417103,0.019148048,0.292167574 +0.103020206,3.70923519,-0.103020199,3.89531378e-05,0.13704291,0.080100067,-1.60094595,-0.183776796,0.019135002,0.145722598 +0.22453554,3.7094667,-0.22453554,6.79159257e-06,0.13722679,0.0723829642,-1.95010734,-0.407430261,0.019136671,0.317590952 +-0.438194603,3.70954466,0.438194603,0.000183662647,0.199636951,0.247912586,-1.89422286,-1.90254903,0.018813394,0.619764566 +0.104100667,3.70966053,-0.104100667,7.31642012e-06,0.137314886,0.0801154226,-1.6021626,-0.186053514,0.0191358272,0.147260413 +0.636354625,3.7097888,-0.636354625,0.000493296189,0.168871015,0.0875134617,0.287284344,-0.509922087,0.0190842077,0.899999976 +0.1284917,3.7098515,-0.1284917,7.47410231e-05,0.139203832,0.0806332305,-1.63131392,-0.220054656,0.0191618372,0.181789875 +0.387277424,3.70993853,-0.387277424,0.000935662538,0.17830269,0.105862841,-1.48181832,-1.02288091,0.0189603399,0.547901154 +0.169275045,3.70999122,-0.16927506,0.000110915265,0.138914213,0.0770658925,-1.7674644,-0.262254685,0.01916169,0.239532471 +0.552575707,3.71003532,-0.552575707,0.00126085733,0.175251096,0.0997630134,0.137141094,-0.644336224,0.0190088712,0.781863689 +0.144548014,3.71005678,-0.144548014,4.61209238e-05,0.139330238,0.0799409673,-1.67496812,-0.231359839,0.0191694591,0.204542518 +0.103439182,3.71016407,-0.103439189,2.26509565e-06,0.137484014,0.079842478,-1.61065698,-0.182877034,0.0191318728,0.146356434 +0.183720976,3.7103219,-0.183720961,7.72766216e-05,0.138274938,0.0757187083,-1.81565773,-0.29214561,0.0191584136,0.259858608 +0.184980199,3.71034503,-0.184980199,7.88357429e-05,0.13830471,0.0755337402,-1.82209754,-0.295133144,0.0191571973,0.261635572 +0.22394377,3.71066523,-0.22394377,0.000110467794,0.137281343,0.0724110082,-1.94185901,-0.409590751,0.0191352572,0.316745847 +-0.292951673,3.71077847,0.292951703,0.000225854485,0.154297769,0.133387253,-3.0039053,-0.591252565,0.0189287029,0.414322674 +0.102138512,3.71082425,-0.102138512,6.35994293e-05,0.137491226,0.0796274915,-1.61459613,-0.178058624,0.0191283468,0.144470364 +-0.50199753,3.71089005,0.50199759,0.000556288054,0.225624651,0.304772705,-0.0954986289,-1.53360534,0.0189450346,0.710068405 +-0.411950529,3.71095276,0.411950529,0.000280897162,0.181874946,0.201821893,-2.29478741,-1.68538368,0.0188233443,0.582739115 +0.226118639,3.710989,-0.226118639,0.00012779297,0.137270629,0.0722097307,-1.9478308,-0.417790443,0.0191330183,0.319807619 +0.131844595,3.71113372,-0.131844595,6.97137511e-05,0.139346838,0.0802681521,-1.63760996,-0.225362062,0.0191604327,0.186495274 +0.138948113,3.71127844,-0.138948113,6.52249437e-05,0.139457941,0.079803206,-1.66189575,-0.230166078,0.0191621147,0.196574241 +0.0842704177,3.71127844,-0.0842704177,8.2750732e-05,0.141846418,0.0847501308,-1.61382174,-0.0967905298,0.0190946441,0.119443446 +0.105253361,3.71137118,-0.105253369,3.59499645e-05,0.137981474,0.0797013268,-1.61409402,-0.188148454,0.0191322174,0.148865014 +-0.377892852,3.71141219,0.377892852,0.000288824929,0.173746288,0.17417793,-2.66151237,-1.37569702,0.0188521855,0.534483969 +-1.19091594,3.71151447,1.19091606,7.19599921e-05,0.330459118,0.217606753,0.377742589,-0.136085346,0.0192279425,1.68421698 +0.183703497,3.71158791,-0.183703512,5.91421394e-06,0.13835384,0.0756428093,-1.81113017,-0.297852695,0.019155195,0.259856731 +0.151010811,3.71186209,-0.151010811,5.7938596e-05,0.139503986,0.0793645978,-1.69195247,-0.240297496,0.0191671383,0.213628635 +-1.19070828,3.71195364,1.19070828,9.15630153e-05,0.327907145,0.215473831,0.375123262,-0.137273446,0.0192275904,1.68392289 +-0.274576306,3.71195459,0.274576306,0.000356107688,0.152063638,0.124746628,-2.95005488,-0.458819628,0.0189373177,0.388713717 +0.184428021,3.71196342,-0.184428006,6.97297673e-06,0.138389945,0.0754741728,-1.81440103,-0.299898952,0.0191539004,0.260878086 +0.245503187,3.71196938,-0.245503187,0.000268881151,0.137016222,0.0715291351,-1.99342239,-0.497988969,0.0191180706,0.347452909 +0.104126006,3.71207857,-0.104126006,5.61577472e-05,0.137905851,0.0794313326,-1.61856198,-0.183745176,0.0191285796,0.147284746 +0.181374535,3.71209598,-0.181374535,8.09793564e-05,0.138479576,0.0757659674,-1.80297697,-0.29436627,0.0191546436,0.256521791 +0.157850176,3.71238995,-0.157850176,7.11430694e-05,0.139077142,0.0786076561,-1.71144772,-0.251234084,0.0191652142,0.223289669 +-0.442197502,3.71239281,0.442197502,0.000535035797,0.198738262,0.24562414,-1.78958917,-1.92078125,0.0188232083,0.625443935 +-0.129445493,3.71297956,0.129445493,0.000302644592,0.149435252,0.0845798478,-2.25422335,0.172427773,0.0190181658,0.183757499 +0.224881619,3.71298385,-0.224881619,0.000109700108,0.137358829,0.0721771866,-1.93662727,-0.418469697,0.0191310905,0.318060935 +-0.263081372,3.7131443,0.263081372,0.000378550205,0.150652453,0.119961679,-2.90777349,-0.37238723,0.0189427026,0.372237623 +0.186553895,3.71349597,-0.186553895,8.09931589e-05,0.138446689,0.0751263499,-1.8181603,-0.308530331,0.0191500913,0.263843417 +-0.439137816,3.71349835,0.439137816,0.000280394161,0.197495729,0.241090402,-1.83184516,-1.8980881,0.0188213699,0.621096253 +0.450800717,3.71352196,-0.450800717,0.0020592534,0.188432544,0.117762998,-0.621480823,-0.936587572,0.0189428311,0.637977004 +-0.0721174404,3.71353292,0.0721174404,5.91393618e-05,0.269115657,0.230401129,-1.82196116,0.0831099749,0.0190484729,0.102017783 +-0.584096074,3.71390986,0.584096074,0.00116028031,0.171764761,0.11096558,0.334486812,-0.689467132,0.0191123709,0.826607704 +0.314373285,3.71397495,-0.314373285,0.000308165589,0.147140443,0.0779147297,-2.041049,-0.835288703,0.0190382004,0.444603384 +0.0930081904,3.71416283,-0.0930081904,7.61412812e-05,0.137091964,0.0789633691,-1.63952804,-0.149426743,0.019102307,0.131813735 +-0.180740893,3.7143712,0.180740908,0.000585315283,0.149940252,0.0972537175,-2.52176905,0.0705596954,0.0189836249,0.256122023 +-0.0720805377,3.71448302,0.0720805377,5.306156e-06,0.268716097,0.229612187,-1.82097971,0.0830440745,0.0190479439,0.101999991 +-1.19538856,3.71449661,1.19538844,0.00016913416,0.207559839,0.114510126,0.312627703,-0.0822883844,0.0192258302,1.69054222 +-0.544280589,3.71472883,0.544280529,0.000709131826,0.182539389,0.182262152,0.333880842,-0.95023787,0.0190632734,0.769971192 +-1.19518948,3.71503282,1.19518948,0.000225014446,0.206601486,0.113817535,0.310863525,-0.0833892077,0.019225385,1.69026041 +0.0720391646,3.71510315,-0.0720391646,3.06740621e-05,0.258873135,0.24038136,-1.38564348,-0.00674546463,0.019077152,0.101999991 +-0.523328364,3.71512079,0.523328364,0.000765888894,0.189266622,0.213301539,0.208237305,-1.22786427,0.0190178994,0.740396678 +0.111734658,3.71514606,-0.111734658,4.72414977e-05,0.139693618,0.0794536248,-1.63582015,-0.204776525,0.0191283654,0.158246577 +-0.407364517,3.71514893,0.407364517,0.000318507606,0.177677631,0.187299445,-2.30037618,-1.63972616,0.0188322067,0.576300263 +-1.08462083,3.71521473,1.08462083,0.000311597047,0.142776519,0.0654641241,0.0152485557,-0.106326133,0.0192151833,1.53399277 +-0.0805326551,3.71528816,0.0805326477,0.00012619418,0.152304888,0.0913142636,-1.9673295,0.0968369842,0.0190459099,0.113913305 +0.297779381,3.71540594,-0.297779381,0.000330628245,0.140970916,0.0729779154,-2.0605042,-0.751348674,0.0190592054,0.421144158 +-0.072104387,3.71547246,0.0721043795,6.4662112e-05,0.268510789,0.229007781,-1.82014835,0.0830023885,0.0190474857,0.102000006 +0.122566506,3.71571398,-0.122566506,0.000153735367,0.139871731,0.0796395019,-1.63663435,-0.225534618,0.0191362184,0.173657134 +0.199079305,3.71574783,-0.199079305,0.000155240239,0.138296694,0.0739625841,-1.85282421,-0.347129703,0.0191397518,0.281627119 +0.996063352,3.71577692,-0.996063352,0.0010247865,0.159938797,0.0767790824,0.386091173,-0.200768143,0.0191734508,1.408705 +-0.0805165768,3.71591878,0.0805165842,7.95897631e-06,0.152315617,0.0911571011,-1.966254,0.0962949619,0.0190455243,0.113916762 +0.272400796,3.71613193,-0.272400796,0.000378783996,0.137626186,0.070810765,-2.03495383,-0.62632376,0.0190887749,0.385482967 +0.115086183,3.71628284,-0.115086183,8.41648798e-05,0.140079111,0.079303883,-1.64081931,-0.212201551,0.0191282462,0.162904024 +-0.333742559,3.71637535,0.333742559,0.000251812016,0.162889138,0.148570701,-2.89249635,-0.978068292,0.0188938938,0.472371519 +1.21530187,3.71651793,-1.21530187,0.000360795239,0.116889805,0.0548610911,0.0922107249,-0.0456722304,0.0191858485,1.71871829 +-0.164233834,3.71656513,0.164233834,0.000151458036,0.150124907,0.0922632441,-2.41995692,0.113439046,0.0189979915,0.232283175 +-0.0805538148,3.71658039,0.0805538148,0.000138201038,0.152271241,0.0909956098,-1.96535003,0.0958599448,0.0190451983,0.113942958 +1.22268605,3.71663904,-1.22268605,0.000253664301,0.105328083,0.0482163429,0.00285180937,-0.0166554376,0.0191863012,1.72916126 +1.22883618,3.71673965,-1.22883618,0.000115380688,0.099535279,0.0513183214,-0.0511621647,-0.0107943211,0.0191862825,1.73785901 +-1.20163286,3.7167666,1.20163286,0.000202496187,0.152026817,0.0758447424,0.181175321,-0.0576579124,0.0192240961,1.69938576 +0.163587123,3.71682072,-0.163587123,9.08394431e-05,0.139348581,0.0770907402,-1.73387516,-0.272490084,0.0191499293,0.231407806 +0.0781772733,3.71682525,-0.0781772733,6.57323253e-05,0.163519949,0.108714581,-1.57360196,-0.0401853397,0.0190774649,0.110689789 +0.351347089,3.71695042,-0.351347089,0.000700617209,0.161026329,0.0892813727,-1.84140694,-1.0051719,0.0189925805,0.497099519 +-1.20106006,3.71728611,1.20106018,0.000108055363,0.153618425,0.0768382996,0.188734025,-0.0586972013,0.0192236416,1.69857895 +0.14280808,3.71766567,-0.14280808,5.59058572e-05,0.14012897,0.0787591338,-1.67301798,-0.252726227,0.0191438813,0.202029258 +0.135727659,3.71783352,-0.135727659,6.36888581e-05,0.140081853,0.0790288001,-1.65444565,-0.24488087,0.0191399865,0.192146376 +0.432442248,3.71789932,-0.432442278,0.000985870836,0.185389668,0.114132166,-0.857628942,-0.999783397,0.0189438257,0.61201036 +0.16940105,3.71798038,-0.16940105,0.000134604299,0.139056578,0.0766073316,-1.74405003,-0.287149072,0.0191475265,0.23979494 +0.149299487,3.71813869,-0.149299487,8.13552397e-05,0.140179276,0.0786227807,-1.68872321,-0.259789765,0.0191463102,0.21125631 +0.157740891,3.7181654,-0.157740891,5.28567107e-05,0.139597043,0.0777580515,-1.71262419,-0.271121353,0.019146014,0.223175898 +0.252371013,3.71838522,-0.252371013,0.000168436527,0.137097225,0.0708815157,-1.98217249,-0.54085654,0.0191051923,0.357118011 +-0.105480731,3.71851635,0.105480731,0.000103832332,0.146331742,0.0770848915,-2.11291528,0.148015156,0.019032089,0.149178937 +0.182624415,3.71858716,-0.182624429,6.61646263e-05,0.138794526,0.0749267712,-1.79713178,-0.314114392,0.0191406589,0.258275986 +-0.0908563361,3.71861601,0.0908563435,0.000101156045,0.14073272,0.0729224756,-2.03318906,0.112681508,0.0190399997,0.128492832 +-0.0908564031,3.71867037,0.0908563957,1.50114283e-06,0.140734434,0.0729117766,-2.03307796,0.112580888,0.0190399643,0.128495559 +-0.0908627361,3.7187283,0.0908627287,0.000112350041,0.140737534,0.0729043409,-2.03297782,0.1125025,0.0190399326,0.128501713 +0.0857614875,3.71873045,-0.0857614875,7.66787198e-05,0.141760021,0.0821318626,-1.64607811,-0.103568956,0.0190821216,0.121423036 +-0.229509339,3.71879005,0.229509324,0.000283037079,0.149158686,0.107547902,-2.71948981,-0.167405531,0.0189592559,0.324578881 +-0.0917385146,3.71887779,0.0917385221,6.83567996e-05,0.141086698,0.0731004179,-2.03727603,0.11415647,0.0190393887,0.129737943 +-0.413987011,3.71901608,0.413987011,0.000566630333,0.177580252,0.185756281,-2.16577721,-1.67720103,0.0188395809,0.585614264 +-1.20058143,3.7191267,1.20058143,0.000175126217,0.152363226,0.076022394,0.184842587,-0.0613332056,0.0192220993,1.69790077 +-1.20329905,3.71912956,1.20329916,0.000238328998,0.14754498,0.0730219707,0.15746139,-0.0555374585,0.0192223042,1.70172608 +0.636215389,3.7194252,-0.636215389,0.000638715224,0.174030319,0.0888011232,0.118770093,-0.395868421,0.0190810803,0.899944782 +-0.301269084,3.71972895,0.301269054,0.000256838888,0.155147269,0.133403406,-2.9246974,-0.69174403,0.018920932,0.426126122 +0.111388937,3.7202611,-0.111388937,6.66300111e-05,0.140510499,0.0786057338,-1.64681268,-0.207587451,0.0191152729,0.157655746 +0.237261474,3.72035837,-0.237261474,0.000185559504,0.137414217,0.0715203583,-1.93611503,-0.481620729,0.0191146713,0.336064488 +-0.635984421,3.72060156,0.635984421,0.000860311789,0.173942149,0.0868985355,0.0485323519,-0.502403259,0.0191589687,0.899638474 +0.0718925074,3.72089386,-0.0718925074,4.15106952e-05,0.260650098,0.234873503,-1.44305193,-0.00462831929,0.0190674011,0.101999998 +-0.103617899,3.72104192,0.103617899,0.000102993727,0.145902067,0.0759060383,-2.09578323,0.137298107,0.0190318003,0.146568328 +0.0952767357,3.72105503,-0.0952767357,9.69717876e-05,0.138519272,0.0777508393,-1.66222501,-0.157487512,0.019091066,0.134887114 +-0.104031436,3.72146034,0.104031444,1.45571357e-06,0.145967558,0.0758968964,-2.09686995,0.136561543,0.0190312918,0.147163093 +0.370880604,3.72149014,-0.370880604,0.000548400858,0.167089671,0.09471903,-1.61754847,-1.04045033,0.018973466,0.524586737 +0.19663626,3.72155857,-0.19663626,0.000118478223,0.13864994,0.0738821551,-1.82488537,-0.356536865,0.0191316437,0.278346896 +-0.103663392,3.72167516,0.103663392,3.15119541e-06,0.145890951,0.0757369399,-2.09398675,0.135241449,0.0190315582,0.146665797 +0.666833162,3.72172403,-0.666833162,0.00199031294,0.172745049,0.0851839334,0.157312855,-0.400651664,0.0190969873,0.943316519 +0.507322073,3.72177315,-0.507322073,0.00190943526,0.180623859,0.108309396,-0.0961266235,-0.802351236,0.0189663619,0.718891501 +-0.996871471,3.72182012,0.996871471,0.00176692137,0.153909534,0.0731606483,0.419314742,-0.191149503,0.0192058347,1.41006565 +0.264063597,3.72193193,-0.264063597,0.000194667286,0.137393862,0.0705844834,-1.98726022,-0.602370441,0.0190906003,0.373557806 +0.147248924,3.72201395,-0.147248924,5.59445398e-05,0.140722573,0.0777579322,-1.69707394,-0.263667136,0.0191327166,0.208381772 +-0.3661654,3.72203612,0.36616537,0.000301144086,0.169529825,0.162558571,-2.64552331,-1.27408719,0.0188683067,0.517867863 +0.478449166,3.72210598,-0.478449196,0.0011495197,0.183879286,0.112554692,-0.363286167,-0.891792238,0.0189520437,0.67764771 +-1.22262716,3.72211647,1.22262716,0.000185690442,0.112742282,0.0519320071,-0.0922817066,-0.00470414432,0.0192205347,1.72914565 +-0.160032794,3.72216105,0.160032794,0.000288373354,0.14984183,0.0884453803,-2.36676812,0.0981664807,0.0189973805,0.226381764 +-0.1037971,3.72216725,0.1037971,9.87758322e-05,0.14590767,0.0756392777,-2.09294033,0.134047821,0.0190313961,0.146838561 +-1.22870338,3.72217417,1.22870338,8.40510183e-05,0.108916402,0.05564804,-0.141225353,-0.00524293445,0.0192204658,1.73773897 +0.139306679,3.72221088,-0.139306679,8.03342045e-05,0.140340507,0.0783836767,-1.6619339,-0.259406984,0.0191309862,0.19717285 +-0.32604146,3.72222257,0.32604146,0.000541848072,0.160237953,0.142124385,-2.86126232,-0.914514303,0.018900305,0.461402774 +-1.20124948,3.72222257,1.2012496,0.000342675718,0.150857657,0.0750717893,0.170295849,-0.0607738681,0.0192196425,1.69883358 +-0.104671702,3.72238827,0.104671702,0.000128870015,0.14603363,0.0757476836,-2.09631371,0.133723438,0.019030625,0.148047701 +-1.21542072,3.72251701,1.21542072,0.000233739906,0.119026378,0.055658482,0.00488223229,-0.0330832526,0.019220503,1.71897161 +-0.239626318,3.72258735,0.239626318,0.000238774825,0.148955688,0.109472036,-2.7445159,-0.237870455,0.0189523268,0.338891029 +-0.201446205,3.72261,0.201446205,0.000177764785,0.149000913,0.0983921662,-2.57459927,-0.0404877327,0.0189729873,0.284903318 +0.078556627,3.72266483,-0.0785566345,9.01833846e-05,0.161306784,0.103223994,-1.62230825,-0.0384417027,0.0190683305,0.111462012 +1.08727694,3.72290707,-1.08727705,0.000312772376,0.130000576,0.0580121763,-0.0426760986,-0.113848992,0.0191706438,1.53767633 +-0.466470778,3.7232492,0.466470778,0.000326271373,0.19361034,0.234689534,-1.11731911,-1.90819073,0.0188890118,0.659692407 +-0.39070186,3.72339821,0.39070186,0.000349218346,0.173588604,0.170645565,-2.38948631,-1.48738062,0.018848747,0.55290246 +-0.566802621,3.72377968,0.566802621,0.00106225791,0.170958176,0.126035094,0.345420957,-0.821301341,0.019092096,0.80191052 +-0.200724408,3.72426534,0.200724408,0.000182104355,0.148949385,0.0975792184,-2.56137609,-0.044524841,0.0189722441,0.283888757 +-0.202819988,3.72438979,0.202819988,0.000281203713,0.1489003,0.0980439484,-2.57070398,-0.0542998612,0.0189710669,0.286860853 +0.160113811,3.72442174,-0.160113811,9.1281152e-05,0.140153483,0.0763460472,-1.72776794,-0.285610199,0.0191286504,0.22650966 +-0.163598686,3.72444224,0.163598686,0.000257905718,0.149682671,0.0887460709,-2.37695765,0.080006294,0.0189929456,0.23143965 +0.0868814141,3.72467184,-0.0868814141,0.000106255044,0.141734913,0.079384394,-1.68556499,-0.102664381,0.0190734006,0.123279758 +-0.20179072,3.72468114,0.20179072,3.24528773e-05,0.148889139,0.0977012888,-2.56445742,-0.0502391867,0.0189713705,0.285419583 +-0.161983579,3.72495556,0.161983579,1.08862769e-05,0.149667948,0.0878134444,-2.36479616,0.0817370787,0.0189939123,0.229198441 +0.152553111,3.72502089,-0.152553111,6.44391475e-05,0.140746802,0.0770292357,-1.707201,-0.2765885,0.0191271901,0.215831965 +-0.479254901,3.72524691,0.479254931,0.000338235637,0.197443604,0.243526414,-0.748992443,-1.85687613,0.0189172532,0.677776039 +-1.08749628,3.72541428,1.08749628,0.000170999381,0.108016215,0.0464382246,-0.0658817738,-0.100147516,0.0192095153,1.53808784 +0.401346087,3.72552752,-0.401346117,0.00111764157,0.177009195,0.104420044,-1.26199317,-1.07998097,0.0189518891,0.567838788 +-0.202043623,3.72566676,0.202043623,0.000203401607,0.148833454,0.0975060388,-2.55948353,-0.0540483445,0.0189708415,0.285771221 +0.270630002,3.72571278,-0.270630002,0.000256452855,0.1376926,0.0702953413,-1.98288763,-0.63940227,0.0190794822,0.382975578 +0.245434135,3.72573972,-0.245434135,0.000134968417,0.137371436,0.070927836,-1.92697477,-0.526383877,0.0191038158,0.347376406 +0.27581805,3.72578669,-0.27581805,0.000288099807,0.137901515,0.0703325346,-1.98710072,-0.662915587,0.0190749746,0.390301317 +-0.351083994,3.72580051,0.351083994,0.000279220258,0.164868385,0.151543349,-2.72188377,-1.12899756,0.0188870728,0.496575356 +-0.161323488,3.72583508,0.161323503,1.25948518e-05,0.149619147,0.0871121958,-2.355474,0.0783047304,0.0189941879,0.228327259 +-0.306064516,3.72584009,0.306064516,0.00017333217,0.15558815,0.130999967,-2.84582806,-0.750333786,0.0189165287,0.432904541 +0.345384061,3.72593927,-0.345384061,0.000428023108,0.156508625,0.0849401429,-1.83372068,-1.00208771,0.0189944617,0.488588572 +0.195305735,3.72599816,-0.19530572,0.000134871822,0.13881138,0.0737036467,-1.80890012,-0.362780988,0.0191256646,0.276472896 +0.391185313,3.72625089,-0.391185284,0.000508741825,0.173561633,0.100713208,-1.38531375,-1.0801605,0.0189559441,0.553634167 +0.166597441,3.72659898,-0.166597426,8.58704225e-05,0.139814526,0.07578931,-1.73294485,-0.302083105,0.0191276353,0.235676065 +0.213678807,3.72683644,-0.213678807,0.00015712787,0.138303608,0.0724015757,-1.85461748,-0.416006446,0.0191183202,0.302317172 +-0.299147666,3.72690415,0.299147666,9.83746068e-05,0.153907001,0.127229601,-2.84566259,-0.693128824,0.0189204589,0.423217684 +-0.476552397,3.72697353,0.476552397,2.27277087e-05,0.19383797,0.234882534,-0.828154624,-1.8832041,0.0189145301,0.673982024 +-0.697963297,3.72699881,0.697963297,0.00664754584,0.171490401,0.0827263296,0.165451646,-0.472630173,0.0191719793,0.988394856 +0.0973081887,3.72710705,-0.0973081887,7.45220896e-05,0.139813349,0.0761555508,-1.69799113,-0.155795142,0.0190810859,0.138076499 +-0.216952294,3.72714996,0.216952294,0.000262043119,0.148738354,0.100873992,-2.60877419,-0.137991458,0.0189625509,0.306818485 +0.206200257,3.72724056,-0.206200272,0.000140032425,0.138588414,0.0728481412,-1.83244419,-0.397199273,0.019119883,0.291660994 +0.102153309,3.72730303,-0.102153309,9.77854725e-05,0.140276089,0.0764062181,-1.68398118,-0.177039608,0.0190870892,0.144642085 +-0.292534828,3.72749543,0.292534858,0.000334341661,0.152937517,0.12376336,-2.83073401,-0.640785873,0.0189264324,0.413796812 +0.10884884,3.72797298,-0.108848847,0.000117318647,0.141356945,0.0764250532,-1.6842674,-0.195493102,0.0190894287,0.154186517 +-0.476793796,3.72809315,0.476793796,3.08808785e-06,0.191284701,0.229350686,-0.828003526,-1.89716804,0.0189164001,0.674329638 +-0.162207872,3.72814751,0.162207872,0.000348131463,0.14950338,0.0864241719,-2.34603333,0.0685633346,0.0189935081,0.229505107 +0.709724844,3.72831726,-0.709724784,0.00341740227,0.171764135,0.0830282718,0.208081007,-0.371913314,0.0191112906,1.00414288 +1.08928275,3.72844243,-1.08928275,8.38018022e-05,0.106242023,0.0453022569,-0.0873155966,-0.113902487,0.0191680025,1.54053926 +-0.475910485,3.72852397,0.475910485,0.000177178488,0.190728992,0.228033289,-0.849311709,-1.90042126,0.0189158507,0.673068166 +0.181433141,3.72864389,-0.181433126,6.27244808e-05,0.139341548,0.074132666,-1.77172303,-0.340927511,0.0191206131,0.256676137 +-0.38483268,3.72871351,0.38483268,0.00043161225,0.171091929,0.161120728,-2.39177418,-1.43732548,0.0188590325,0.544657826 +-1.06833279,3.72874784,1.06833279,0.000921645842,0.127234817,0.058822386,0.121946633,-0.0815175101,0.0192062128,1.51095772 +-0.124306247,3.72882414,0.124306247,0.000414688839,0.148514599,0.0778311044,-2.16166806,0.114719003,0.0190170426,0.176298812 +1.18027937,3.72890949,-1.18027937,0.00010467838,0.228310704,0.139682323,0.27065146,-0.185660437,0.0191639215,1.66917336 +0.130092219,3.72899556,-0.130092219,6.4507949e-05,0.141564295,0.0769435912,-1.67921937,-0.247245714,0.0191071834,0.183990881 +0.354385972,3.72899675,-0.354385972,0.000403556711,0.159200281,0.0871591941,-1.7665031,-1.03657544,0.0189839657,0.501403689 +0.179294318,3.72918963,-0.179294318,8.07926117e-05,0.139428437,0.074166663,-1.76560462,-0.336076021,0.019120099,0.253634095 +-0.615764439,3.72944784,0.615764439,0.000944190484,0.170631409,0.0946427584,0.302843451,-0.628916562,0.0191281438,0.871276975 +0.211746976,3.72944832,-0.211746991,1.98191083e-05,0.138498396,0.0724802837,-1.83827209,-0.418973595,0.0191148464,0.299645782 +-0.239201874,3.72946882,0.239201874,2.48280849e-05,0.14858216,0.105948821,-2.68588543,-0.262057126,0.0189489424,0.338327438 +-0.240717962,3.72948337,0.240717962,0.000107836197,0.148625284,0.106553033,-2.69309258,-0.272159457,0.0189479664,0.340463638 +0.128691286,3.72966504,-0.128691286,9.2212962e-05,0.141653597,0.076874502,-1.67950845,-0.246631533,0.019104261,0.182021901 +-0.473703206,3.72976208,0.473703206,0.000380365906,0.189692438,0.224966973,-0.884343386,-1.8891902,0.0189146306,0.669934034 +-0.477682829,3.7297833,0.477682799,0.000374525465,0.190080479,0.22603263,-0.81267339,-1.88363445,0.0189194195,0.675565124 +-0.967002511,3.72998023,0.967002511,0.00136549969,0.154766381,0.0732557252,0.430510283,-0.227523953,0.0191975776,1.368083 +0.180891693,3.73043442,-0.180891693,7.62382915e-05,0.13940683,0.0740602538,-1.76526511,-0.343436807,0.019118201,0.255913436 +-0.242106602,3.73045802,0.242106616,0.000398653065,0.148652747,0.106393546,-2.68774843,-0.285807341,0.0189474877,0.342416406 +0.128694206,3.73058939,-0.128694206,7.88719808e-06,0.141793191,0.0765701681,-1.6847229,-0.246486619,0.0191010963,0.182046235 +1.01552033,3.73064184,-1.01552033,0.00127626897,0.15721336,0.075390704,0.337052673,-0.17515558,0.0191656034,1.43630457 +-0.238525048,3.73073292,0.238525063,0.000100918471,0.148520336,0.104943223,-2.67202401,-0.263574064,0.0189493019,0.337366164 +-0.271559507,3.73086357,0.271559507,0.000797268702,0.15000096,0.11557883,-2.77897501,-0.488893211,0.018932391,0.384431869 +0.130149618,3.73089814,-0.130149618,6.21769141e-05,0.141815364,0.076520063,-1.68535972,-0.24939388,0.019101711,0.184084743 +0.129253611,3.73091006,-0.129253611,1.60992877e-05,0.141837642,0.0765136182,-1.68559277,-0.247730061,0.0191009343,0.182831898 +-0.239973918,3.73093748,0.239973918,0.000112369678,0.148506507,0.105314478,-2.67618465,-0.27282849,0.0189480986,0.339434713 +0.252546966,3.73107147,-0.252546966,0.00019905626,0.137421548,0.0702927336,-1.92164099,-0.568044782,0.0190918446,0.357384324 +-1.22196054,3.73121929,1.22196054,0.000289696211,0.114057973,0.0526663698,-0.105205253,-0.00816239323,0.019213099,1.72818315 +-1.22872138,3.7312696,1.22872138,0.000132478061,0.110938579,0.0565137789,-0.159911916,-0.00694186101,0.0192130413,1.73774457 +0.175729275,3.73144102,-0.175729275,8.1140839e-05,0.139754876,0.0742122158,-1.75517249,-0.333804339,0.0191152301,0.248542041 +0.297497809,3.73150492,-0.297497809,0.000203091375,0.140410542,0.0716517419,-1.96205389,-0.78415966,0.0190485809,0.420859635 +1.09264183,3.73151088,-1.09264183,0.000311604817,0.0993418396,0.0418028869,-0.0964291394,-0.129989654,0.0191659108,1.54526651 +0.128785789,3.73173904,-0.128785789,0.000112743517,0.141986221,0.0763343871,-1.68838358,-0.246285737,0.0190988742,0.182159349 +0.216700926,3.73186874,-0.216700926,0.000216112297,0.13844347,0.0717722476,-1.84624219,-0.438536018,0.0191085674,0.30655694 +-0.155648619,3.73208761,0.155648619,0.000209224614,0.149279743,0.0841293484,-2.29827952,0.0696436912,0.0189961232,0.220136672 +0.144891039,3.73215246,-0.144891024,0.000165537393,0.141468167,0.0763379037,-1.69660664,-0.281752825,0.0191047695,0.205246508 +0.0720912963,3.73273706,-0.0720912963,4.59868388e-05,0.258273065,0.22271435,-1.4911983,0.00145400618,0.0190528668,0.101999998 +-1.21368599,3.73305011,1.21368599,0.000333041477,0.118618667,0.0553389452,-0.00461365469,-0.0425542705,0.0192118399,1.71649456 +0.115812272,3.73344827,-0.115812272,3.55329939e-05,0.142264634,0.075604327,-1.69049978,-0.215351731,0.0190858971,0.163786069 +0.179060042,3.7334702,-0.179060027,0.000116167044,0.139700323,0.0739001781,-1.75826228,-0.344051093,0.0191126224,0.253283739 +0.301695585,3.73348618,-0.301695585,0.000139020587,0.141108453,0.0719433725,-1.95290542,-0.80982703,0.0190416109,0.426832139 +-1.09460151,3.73355055,1.09460151,0.000312575168,0.085276112,0.0349439234,-0.105897851,-0.136104286,0.0192041472,1.54808426 +0.211011812,3.73366857,-0.211011812,8.34761304e-05,0.138726652,0.0721248761,-1.82898319,-0.42606464,0.0191065669,0.298515737 +0.165891886,3.7338264,-0.165891886,3.89988709e-05,0.140330836,0.0750777721,-1.72596025,-0.32189557,0.0191085786,0.234800026 +0.11610803,3.73384833,-0.11610803,6.270632e-05,0.142310575,0.0755159557,-1.69156384,-0.215924472,0.0190851521,0.16420725 +-0.303572714,3.73400688,0.303572714,0.000354983727,0.153740481,0.12387757,-2.7597065,-0.738057852,0.0189219285,0.429405421 +0.0794084594,3.73404908,-0.0794084594,9.84843209e-05,0.158640116,0.0973616764,-1.65452468,-0.0377031192,0.0190547034,0.112353519 +0.115793787,3.73407221,-0.115793779,1.88302693e-05,0.142339662,0.0754201338,-1.69309568,-0.214980066,0.0190841202,0.163762718 +0.116001189,3.73410249,-0.116001196,4.12460213e-06,0.142349169,0.075425528,-1.69289887,-0.215627834,0.0190842412,0.164060771 +0.115922481,3.73429632,-0.115922481,2.26428665e-06,0.142384112,0.0753705204,-1.69388533,-0.215104714,0.0190837737,0.163951844 +0.116097011,3.73435879,-0.116097011,4.1693871e-05,0.142392412,0.0753707886,-1.69373226,-0.21575883,0.0190838035,0.164192542 +0.229081959,3.73443985,-0.229081959,0.000287381554,0.138027951,0.0712444037,-1.8583684,-0.488388509,0.0191007685,0.324531883 +-0.777850926,3.73458076,0.777850866,0.00260052597,0.165343627,0.0787311718,0.308900237,-0.418346584,0.0191797726,1.1000855 +-0.591860652,3.73466063,0.591860652,0.000770427519,0.170431316,0.105196707,0.309794039,-0.719542742,0.01910685,0.837337255 +0.115109235,3.73469734,-0.115109242,7.71532286e-05,0.142365456,0.0752876252,-1.69514108,-0.212538272,0.0190826226,0.162791356 +-0.346668273,3.73477173,0.346668273,0.000295733305,0.162605137,0.142012239,-2.63437867,-1.09854341,0.0188935846,0.490353346 +0.153644562,3.73488903,-0.153644562,0.000167056016,0.14136143,0.0754020289,-1.71253681,-0.298453957,0.0191015489,0.217507362 +1.18521452,3.73490334,-1.18521452,0.000242342867,0.174363881,0.0908676386,0.254241943,-0.129043728,0.0191635564,1.67615271 +0.57818532,3.7352469,-0.57818532,0.00219469843,0.169647902,0.0906695127,0.18630667,-0.651674867,0.0190287698,0.818490505 +0.0885117203,3.73529196,-0.0885117203,0.000113004891,0.142195731,0.0769056231,-1.70554209,-0.107496753,0.0190608557,0.125235438 +0.16293247,3.73581505,-0.16293247,0.000120401768,0.140748829,0.0747481957,-1.7260462,-0.318918586,0.0191022046,0.230509311 +-0.0715033859,3.73606491,0.0715033859,0.000125704028,0.264854908,0.21659258,-1.78409421,0.0783072561,0.019040674,0.102000006 +0.307899922,3.73627663,-0.307899922,0.000452572771,0.142575055,0.0727938935,-1.92218447,-0.844709039,0.019031547,0.435513228 +-0.0803833902,3.73651099,0.0803833902,0.000273625832,0.15165244,0.0863968506,-1.92107415,0.0758895203,0.0190387852,0.114672497 +0.199348062,3.73656821,-0.199348062,0.00011263106,0.139282882,0.0727572665,-1.79203773,-0.396345973,0.0191072468,0.281990767 +-0.115330458,3.73673677,0.115330458,0.000218832385,0.147349417,0.0748761743,-2.09818888,0.0964730084,0.0190170296,0.163708165 +1.17685699,3.7367487,-1.17685699,2.67994401e-05,0.183758005,0.104968861,0.214705497,-0.210020319,0.019158002,1.66436422 +-0.296346635,3.73677492,0.296346635,0.000340000726,0.152339146,0.120252199,-2.7425127,-0.688861728,0.0189264901,0.419150621 +0.239162236,3.73703861,-0.239162251,0.000227105236,0.137856722,0.0706822574,-1.86512089,-0.532902122,0.0190925151,0.338527977 +0.0998199582,3.73706293,-0.0998199582,9.05428096e-05,0.141386554,0.0745938048,-1.71073735,-0.164465532,0.0190689787,0.141237766 +-0.524144471,3.73732853,0.524144411,0.000545234943,0.180433393,0.177770033,0.108328216,-1.18618107,0.0190268587,0.741472483 +1.1979177,3.73735762,-1.1979177,0.000251683057,0.13080135,0.0622863136,0.139749855,-0.0936649889,0.0191678777,1.69411445 +0.213595271,3.73737454,-0.213595271,0.000163536184,0.138935626,0.0716894567,-1.82576776,-0.439528883,0.0190997981,0.302164137 +0.299511075,3.7373848,-0.299511075,0.00032236462,0.140570119,0.0713404641,-1.93289888,-0.806100786,0.01904024,0.423698395 +1.17615592,3.73786378,-1.17615592,1.04468518e-05,0.175651535,0.0990842581,0.206489936,-0.213084817,0.019157283,1.66336727 +0.303055912,3.73794651,-0.303055942,0.000230155623,0.141122252,0.0716165155,-1.92688453,-0.824135542,0.0190357286,0.428717703 +-0.354904503,3.73797536,0.354904473,0.000111477631,0.163940176,0.144369856,-2.56124926,-1.1784786,0.0188868232,0.502093554 +-0.0914070755,3.73797607,0.0914070755,0.000320801249,0.141456902,0.0701946616,-1.98230743,0.0739603639,0.0190334208,0.13041985 +-0.23466903,3.73797655,0.23466903,0.000405907835,0.14799428,0.101435132,-2.6036334,-0.262902468,0.0189507864,0.331878185 +1.07210207,3.73813295,-1.07210207,0.00092759711,0.119286716,0.0540542267,0.0561577529,-0.0937291533,0.0191618111,1.5162158 +0.103189856,3.73874092,-0.103189856,6.8864043e-05,0.142130092,0.0742920116,-1.71448493,-0.172929004,0.0190678332,0.146031022 +-0.14197433,3.73874998,0.141974345,0.000366555061,0.148698688,0.0790876001,-2.20039487,0.0700535476,0.0190017018,0.200930238 +1.17456996,3.73881245,-1.17456996,0.000161422591,0.17159839,0.0961611941,0.193052262,-0.218457803,0.0191566776,1.66112101 +0.332238257,3.7388947,-0.332238257,0.000732162502,0.148662075,0.0774367526,-1.84223986,-0.97409904,0.0190041251,0.470460027 +0.0719732866,3.7391305,-0.0719732866,2.55110499e-05,0.256366283,0.215606436,-1.5224824,0.00555874873,0.0190431885,0.101999998 +-0.10525237,3.73956919,0.105252378,0.000270655815,0.145796657,0.0725209042,-2.04120708,0.0848425031,0.0190239735,0.150201976 +0.166453913,3.73957753,-0.166453913,0.000134104441,0.140832573,0.073949784,-1.73287439,-0.330775291,0.0190947521,0.235517174 +0.0796400979,3.74006772,-0.0796400905,5.44792019e-05,0.156983212,0.0940045044,-1.67670321,-0.0361405648,0.0190456994,0.112862587 +0.189673647,3.74010253,-0.189673647,0.000127225896,0.139648333,0.0726873204,-1.76690221,-0.384890705,0.0190979838,0.268530697 +-0.41815877,3.74043274,0.41815877,0.000580649183,0.17363137,0.167392343,-1.8658005,-1.65515041,0.0188616104,0.591914892 +0.0891555846,3.74085116,-0.0891555771,6.28109483e-05,0.142345876,0.0755079612,-1.72109258,-0.108182117,0.0190521218,0.126346037 +0.145365566,3.74087381,-0.145365566,0.000119217497,0.142276987,0.0743288845,-1.7185719,-0.286620498,0.0190851353,0.205927774 +0.257413864,3.74123597,-0.257413834,0.00040976255,0.137900442,0.0696848482,-1.88418925,-0.609786868,0.0190750845,0.364525199 +-0.359208524,3.74165726,0.359208554,0.000424928498,0.164121002,0.142346606,-2.47839379,-1.21465826,0.0188871175,0.508203626 +0.138424307,3.74175501,-0.138424307,7.40218093e-05,0.142637596,0.0749027655,-1.69993758,-0.276620626,0.0190833285,0.195954248 +0.249457106,3.74176931,-0.249457121,0.000339207123,0.137848675,0.0698978081,-1.86836696,-0.579480767,0.0190795958,0.353263199 +1.19113886,3.7421031,-1.19113886,0.000263087131,0.145526096,0.0711301714,0.18438828,-0.103089504,0.0191626977,1.68453097 +-1.07211101,3.74211264,1.07211113,0.000501972507,0.114031613,0.0513212457,0.0561899543,-0.0678957254,0.0191977024,1.51632869 +0.100958243,3.74233103,-0.100958243,3.89050256e-05,0.142200679,0.0737693757,-1.7227422,-0.166750357,0.0190596804,0.143072322 +0.072020866,3.74234271,-0.072020866,5.67834541e-05,0.255571336,0.213590816,-1.52758002,0.00594196748,0.0190395247,0.102000006 +-0.122838736,3.74246669,0.122838736,0.000416884024,0.148111492,0.0749659836,-2.10765147,0.0798722506,0.0190106612,0.174361348 +-0.506853223,3.74288607,0.506853223,0.000705112529,0.178070843,0.183082283,-0.139068514,-1.50823164,0.0189914163,0.71717447 +-0.145149276,3.74293995,0.145149276,6.17817277e-05,0.148571774,0.0786799118,-2.19786978,0.0533852428,0.0189975966,0.205502495 +-0.192966118,3.743119,0.192966104,0.000146102291,0.148135677,0.0894680992,-2.40544605,-0.0773094073,0.0189717803,0.272895694 +0.0797879174,3.74314165,-0.0797879174,0.000122592872,0.156646758,0.0931876078,-1.6790266,-0.0368207023,0.0190421958,0.11299783 +0.134378821,3.74317551,-0.134378821,4.27574851e-05,0.142866224,0.0746389776,-1.70307362,-0.270586073,0.0190766454,0.190334901 +0.378967702,3.74327517,-0.378967702,0.000528139353,0.164945483,0.092020534,-1.44113326,-1.08609128,0.0189599097,0.536066651 +-0.906094909,3.74329948,0.906094909,0.00337195769,0.156443149,0.0738019422,0.417574584,-0.301800311,0.0191850793,1.28166246 +0.116737656,3.74342299,-0.116737656,5.51929224e-05,0.143556252,0.0741275474,-1.70904613,-0.218510211,0.0190685336,0.165092081 +-0.542356133,3.74343348,0.542356133,0.000702413905,0.177506775,0.164172769,0.215488166,-1.03642917,0.0190554652,0.767150283 +-0.353925824,3.74356771,0.353925824,0.000112356916,0.162794858,0.138550177,-2.50086236,-1.17032826,0.0188923217,0.500710189 +-1.17060542,3.74372792,1.17060542,0.000136257688,0.138690621,0.0716917738,0.169077396,-0.232534915,0.0192030277,1.65552855 +0.089449212,3.74376535,-0.089449212,0.000141959841,0.142543346,0.0751500949,-1.7221086,-0.109795302,0.0190487057,0.126677632 +1.18209708,3.7438271,-1.1820972,6.18640915e-05,0.158337846,0.0794717968,0.218255803,-0.149423257,0.0191571508,1.67177498 +-0.323222339,3.74427938,0.323222339,0.000560256245,0.156041622,0.125392258,-2.62395549,-0.914253354,0.0189120267,0.457536459 +-0.432326257,3.74435282,0.432326287,0.000627519679,0.174005091,0.16705139,-1.63827252,-1.7121284,0.0188698564,0.611723304 +-0.443112969,3.74441719,0.443112969,0.000654069241,0.1754933,0.179321006,-1.44915891,-1.77322984,0.0188836753,0.627093434 +-0.14205049,3.74472308,0.142050475,0.000247613993,0.148540497,0.0780385658,-2.17973757,0.0540555492,0.0189984962,0.201080829 +0.101473659,3.74517035,-0.101473659,0.000214334854,0.142552286,0.0735260174,-1.72264183,-0.169578582,0.0190561004,0.143704802 +1.18142724,3.74520063,-1.18142724,2.69920911e-05,0.15507251,0.077312611,0.21129787,-0.152169049,0.0191562865,1.67082179 +-1.16791201,3.74543858,1.16791201,0.00018200645,0.130237266,0.066087842,0.147248298,-0.240575522,0.0192012694,1.65170646 +0.196023613,3.74563789,-0.196023613,0.000147911705,0.13981545,0.0720550865,-1.76555693,-0.411174566,0.0190895293,0.277296126 +0.183895081,3.74564791,-0.183895081,0.000188109872,0.140299827,0.0724915192,-1.75012565,-0.37943843,0.0190881994,0.260232985 +1.07487488,3.74583888,-1.07487488,0.000269876793,0.109768845,0.048707597,0.0184778664,-0.0883748829,0.0191566106,1.52016389 +0.131393209,3.74603367,-0.131393209,0.000130824672,0.143511891,0.0737693682,-1.71541119,-0.260567486,0.0190688334,0.186027497 +-0.347375929,3.74676251,0.3473759,0.000535204483,0.16080302,0.133841902,-2.49611473,-1.11696076,0.0188986082,0.491390437 +1.17969489,3.74698114,-1.17969489,0.000419407268,0.152652204,0.0756850839,0.198889777,-0.157564342,0.0191551931,1.66836846 +0.926232934,3.74707174,-0.926232934,0.00316974986,0.165276945,0.0791670829,0.420066446,-0.272632301,0.0191433355,1.31100225 +0.203088373,3.74779773,-0.203088373,0.000120968572,0.139690906,0.0717778355,-1.7740593,-0.43235901,0.0190862361,0.287350237 +-0.150223687,3.7480011,0.150223687,0.00033672867,0.148313701,0.0783112049,-2.19271278,0.0283792801,0.0189935677,0.212548301 +0.138685212,3.74805212,-0.138685212,0.000132092362,0.143224835,0.0733137727,-1.71555293,-0.280012488,0.0190691557,0.1963287 +0.119529068,3.74835157,-0.119529076,6.0113849e-05,0.144175917,0.0735209137,-1.71719873,-0.225950301,0.0190622546,0.169040099 +-1.04633236,3.74846482,1.04633236,0.00130601879,0.137162447,0.0639891773,0.246864751,-0.102653384,0.0191905014,1.47984064 +-0.189962029,3.74854517,0.189962015,0.000257574604,0.147919551,0.0865565091,-2.35667443,-0.0836074799,0.0189720057,0.268656671 +-0.358897656,3.74858475,0.358897626,0.000276416278,0.162691653,0.136282697,-2.40979338,-1.20009804,0.0188967288,0.507766426 +-0.190418139,3.74879503,0.190418139,3.79468702e-06,0.147903085,0.0865824074,-2.35731936,-0.0866104662,0.018971663,0.26930064 +-0.190012604,3.74896646,0.190012604,3.38608146e-08,0.147891998,0.0863568932,-2.35416126,-0.0856795236,0.0189718269,0.268743753 +-0.190117329,3.74903631,0.190117344,8.56070983e-07,0.147892118,0.0863479003,-2.35411787,-0.0863156989,0.0189717468,0.268888801 +-0.189857394,3.74913907,0.189857394,0.000240375972,0.147888839,0.0862293318,-2.35232329,-0.0857386291,0.0189720131,0.268512934 +-0.190196037,3.7492609,0.190196052,0.000193669039,0.14788188,0.0862603411,-2.35287833,-0.0872042775,0.0189717952,0.268987536 +0.613279939,3.74941778,-0.613279939,0.000599344261,0.167473048,0.0860428512,0.230819315,-0.605534077,0.0190525539,0.867311835 +-0.192485973,3.74959612,0.192485973,0.000219666224,0.147799894,0.0866616368,-2.35909653,-0.0978953093,0.0189706162,0.272217602 +-0.284786046,3.74986839,0.284786075,0.000531026511,0.149434656,0.109114297,-2.60307789,-0.628403783,0.0189310703,0.402985811 +1.07933962,3.74995375,-1.07933962,0.000909767812,0.105434388,0.0462908372,-0.00257787667,-0.100101635,0.0191539098,1.52645469 +-0.145465165,3.75001812,0.14546515,0.000128112632,0.148438558,0.0776333734,-2.16886854,0.0370051861,0.0189950801,0.205857873 +0.154824182,3.75091791,-0.154824182,0.000104510647,0.142305851,0.0732195601,-1.71500087,-0.319725007,0.0190721862,0.219027221 +0.170561016,3.75117064,-0.170561016,0.000225125666,0.141375691,0.072728157,-1.72765517,-0.360227525,0.019073246,0.241482556 +0.300988168,3.75122881,-0.300988168,0.000277192827,0.140490115,0.0704961047,-1.86124635,-0.826935172,0.019029079,0.42569834 +-0.222452164,3.75140333,0.222452164,0.000230232807,0.14697279,0.0924473405,-2.45723605,-0.23347117,0.0189558119,0.31471163 +-0.605421305,3.75149822,0.605421305,0.000621287385,0.169340536,0.0933604017,0.279975832,-0.693795383,0.0191089772,0.856674612 +0.446450651,3.75191402,-0.446450651,0.000775728142,0.176021308,0.103714906,-0.672960639,-1.06618702,0.0189419184,0.631764174 +0.117541231,3.75193548,-0.117541231,5.313738e-06,0.144652858,0.0728059337,-1.72371185,-0.221596614,0.0190542154,0.166239366 +-1.11203647,3.75197124,1.11203647,0.000389934576,0.036377009,0.0129379723,-0.177379578,-0.222376198,0.0191915818,1.57285082 +0.117973253,3.75197196,-0.117973253,7.27998558e-05,0.144637406,0.0727942437,-1.723575,-0.222905621,0.0190543383,0.16684261 +-0.49439162,3.75205874,0.49439162,0.00034484046,0.174097896,0.17016761,-0.427865982,-1.62784624,0.0189658143,0.699792743 +0.117435046,3.752069,-0.117435046,4.83881138e-07,0.144666448,0.0727876648,-1.72372425,-0.22142908,0.0190539304,0.16609405 +0.117525458,3.75214458,-0.117525458,2.84525213e-05,0.144673169,0.0727811754,-1.72371829,-0.221752584,0.0190538596,0.166219473 +0.117325574,3.75215387,-0.117325582,0.000119766315,0.144664824,0.0727789998,-1.7236824,-0.221137106,0.0190537944,0.165934697 +1.18838584,3.75232244,-1.18838584,5.51135017e-05,0.138376549,0.0664263815,0.162521854,-0.122027047,0.0191555228,1.68066847 +0.206377968,3.7523737,-0.206377968,0.000232150909,0.13994801,0.0712008402,-1.77032804,-0.44923681,0.0190778486,0.291995734 +-1.08148527,3.7527504,1.08148527,0.000923439395,0.0988448262,0.043043118,-0.0109042898,-0.089288719,0.0191895645,1.52953482 +0.117222376,3.75279164,-0.117222376,0.000124098558,0.144716874,0.0727334023,-1.72355282,-0.220798701,0.0190530382,0.165782109 +0.176431656,3.75342751,-0.176431656,0.000158609124,0.141276345,0.0723335892,-1.73224211,-0.376737714,0.0190711301,0.249925345 +1.18921328,3.75365663,-1.1892134,0.000251859281,0.136183247,0.0650726035,0.151260495,-0.121289104,0.0191548541,1.68182635 +-0.558147132,3.75368214,0.558147073,0.000711332657,0.168589383,0.112674482,0.208034486,-0.955980241,0.0190749634,0.789531946 +1.11532187,3.75379562,-1.11532176,0.000473869266,0.0449181683,0.0162631925,-0.178593278,-0.245737523,0.0191516839,1.57749736 +1.18775296,3.75400543,-1.18775296,2.59384615e-05,0.137107506,0.0655756146,0.1565274,-0.124762058,0.019154394,1.67976785 +0.347844511,3.75425863,-0.347844511,0.000502738694,0.150712579,0.0785886571,-1.6791923,-1.04727602,0.0189838875,0.492139101 +-1.17579722,3.75443745,1.17579734,0.000331316231,0.131561637,0.0631295741,0.165664852,-0.167996973,0.0191934165,1.66287076 +0.229170889,3.75480032,-0.229170889,0.000233107377,0.138933182,0.0701476336,-1.79109621,-0.522325039,0.0190748684,0.324216068 +0.429777324,3.75494194,-0.429777354,0.000963045866,0.173554316,0.100669734,-0.887545705,-1.12067378,0.0189428478,0.608182549 +1.04971433,3.75503683,-1.04971433,0.00102316577,0.136218905,0.0631597638,0.192016423,-0.115122512,0.0191514269,1.48456657 +-0.223058224,3.75514388,0.223058224,0.000218353351,0.146739632,0.0910936669,-2.43272138,-0.248421893,0.0189542491,0.315617055 +1.2088306,3.7551837,-1.2088306,0.000685035309,0.113721937,0.0525904074,0.0451223627,-0.0824781805,0.019157948,1.70972311 +-0.093265824,3.75541162,0.093265824,0.000190694293,0.142811477,0.0686304197,-1.94621408,0.0522504076,0.0190286748,0.132039323 +1.21969104,3.75544238,-1.21969104,0.000520523638,0.106810622,0.0489099622,-0.054160893,-0.0346099362,0.0191584267,1.72508395 +-0.108215407,3.75562811,0.108215414,0.000176005822,0.146548122,0.0701836497,-2.00279069,0.0573221929,0.0190184973,0.153210849 +0.157030076,3.75565434,-0.157030076,0.000113330461,0.142533451,0.0722793937,-1.71974623,-0.329965621,0.0190627966,0.222169131 +1.22874129,3.75565767,-1.22874129,0.000236311782,0.103472933,0.0520370416,-0.125520021,-0.020401936,0.0191584472,1.73788404 +-0.0814534575,3.7557261,0.0814534575,0.00016399227,0.150842398,0.082637094,-1.88657951,0.0628105402,0.0190341901,0.115307122 +-0.0720540732,3.75574565,0.0720540732,7.45101133e-05,0.261042982,0.204021484,-1.75776982,0.0743483156,0.0190367401,0.101999998 +0.5471313,3.75583172,-0.54713136,0.00173088594,0.168922037,0.0912472084,0.0532104038,-0.777141452,0.0189986341,0.774269342 +1.13637233,3.75597572,-1.13637233,0.000287684816,0.0656092912,0.0265509021,-0.0812687427,-0.28667742,0.0191470869,1.60714746 +0.150774777,3.75608516,-0.150774777,0.000133160182,0.142896265,0.0722564906,-1.7183938,-0.316535503,0.0190599523,0.213346198 +-1.12892234,3.75618887,1.12892222,0.000299522246,0.0476130843,0.0181283001,-0.111059457,-0.26403439,0.0191889256,1.59668398 +-0.219965503,3.75641346,0.219965518,0.000311659503,0.146702632,0.090142563,-2.41513491,-0.235346481,0.0189547706,0.311226189 +0.27527684,3.75644588,-0.27527684,0.000409172964,0.13846001,0.0690528154,-1.82910824,-0.711272001,0.0190502927,0.389667034 +0.282217145,3.75663996,-0.282217145,0.000407203101,0.138741285,0.0690885335,-1.83425272,-0.742885232,0.0190441832,0.399467349 +1.18596256,3.75675559,-1.18596256,0.000440572883,0.13618122,0.0649518073,0.150879428,-0.126747221,0.0191526748,1.67723227 +0.470819861,3.75704813,-0.470819831,0.000993474387,0.175003275,0.10173957,-0.445679605,-1.01370621,0.0189440008,0.666108549 +0.132009879,3.75711441,-0.132009879,0.000161613658,0.144573241,0.0723507255,-1.72178793,-0.263807029,0.019052526,0.18677479 +-0.390318334,3.75738168,0.390318334,0.000188894788,0.166751102,0.140565649,-2.05204678,-1.42231894,0.018888915,0.552003801 +-0.39081803,3.75749159,0.39081803,0.000432408502,0.166782662,0.140593633,-2.04396152,-1.42556787,0.0188892074,0.552707732 +1.14696705,3.75750208,-1.14696705,0.000313392142,0.0746826828,0.0313994288,-0.0336825475,-0.312003165,0.0191447213,1.62219024 +0.525513828,3.75753832,-0.525513828,0.00158153649,0.171368003,0.0952760652,-0.0453275256,-0.835679173,0.0189780351,0.743988752 +0.153228447,3.75760913,-0.153228447,1.98978778e-05,0.142918304,0.0721199214,-1.71966076,-0.322989225,0.0190579277,0.216887087 +0.405506462,3.75761604,-0.405506462,0.000622540712,0.168284625,0.0954714417,-1.13829279,-1.14217114,0.0189452246,0.573875189 +-1.17288315,3.75762677,1.17288315,0.000472841377,0.126730338,0.0601209886,0.146600246,-0.175763741,0.019190602,1.65873682 +-0.390086621,3.7576344,0.390086621,0.000233738901,0.166643977,0.140029296,-2.05170488,-1.42026365,0.0188893713,0.551677823 +-0.390355825,3.75797868,0.390355825,1.95402645e-05,0.166614145,0.139740363,-2.04501772,-1.42122054,0.0188898519,0.552060664 +-0.390067846,3.75811887,0.390067846,0.00045100227,0.166544616,0.139584452,-2.04688454,-1.41926801,0.0188900419,0.551651359 +0.199450552,3.75812435,-0.199450538,0.00023158254,0.140515298,0.071019344,-1.75489712,-0.437314689,0.0190685559,0.282205909 +-0.110795557,3.75815058,0.11079555,0.00021845875,0.146808207,0.070072867,-2.00407553,0.0503686257,0.0190162025,0.156862527 +-1.14246392,3.75826263,1.14246392,0.00034843391,0.0597724468,0.0240144879,-0.0518125296,-0.292565823,0.0191874634,1.61586666 +-0.108337402,3.75848913,0.108337402,3.59376318e-05,0.146648154,0.0697966591,-1.99412286,0.0506180264,0.0190170873,0.15359059 +-0.0932727605,3.75850725,0.0932727605,5.89676893e-05,0.143051982,0.0683754236,-1.93798935,0.0470342226,0.019027384,0.132226005 +-0.656006932,3.75867105,0.656006932,0.00212307624,0.1707142,0.0835634395,0.0810664147,-0.52278012,0.0191396717,0.928323984 +0.998584211,3.75878477,-0.99858427,0.0018324526,0.155213937,0.0738418624,0.346076071,-0.191332147,0.0191444252,1.41267729 +-0.0719640404,3.75886655,0.0719640404,2.02136744e-05,0.260263741,0.202319786,-1.75174785,0.0731201991,0.0190355126,0.101999991 +-0.0813950673,3.75889087,0.0813950673,4.61253476e-05,0.150790751,0.082090117,-1.87913656,0.05979307,0.0190329216,0.115370475 +-0.292489469,3.7589798,0.292489469,0.000213412786,0.149417073,0.107996732,-2.52844739,-0.697841942,0.0189271942,0.414046258 +-0.635670602,3.75906897,0.635670602,0.00036278792,0.171045974,0.0846161619,0.0462369807,-0.536621928,0.0191358123,0.899715722 +0.0903422385,3.75914955,-0.0903422385,0.000247650401,0.143644363,0.07297571,-1.74047494,-0.105538271,0.0190319847,0.128513157 +0.233058244,3.75952435,-0.233058244,0.000240910726,0.139070585,0.0696555674,-1.78300762,-0.544463992,0.0190660208,0.329778671 +0.103397571,3.75964189,-0.103397571,0.000241612463,0.144284204,0.07164599,-1.73985338,-0.168139964,0.0190370623,0.147075549 +0.0717039257,3.75975513,-0.0717039257,9.22755571e-05,0.251178414,0.201366499,-1.56560135,0.0142990202,0.0190229584,0.101999998 +-0.436688989,3.75976038,0.436689019,0.000664478575,0.170677111,0.148559257,-1.43249106,-1.65831769,0.0188960377,0.617906988 +0.0799703896,3.75980949,-0.0799703896,0.000204349766,0.155136496,0.0888295844,-1.70182908,-0.032146506,0.0190259404,0.113761276 +-0.387352556,3.76001143,0.387352556,0.000386408472,0.165703729,0.137762621,-2.05150294,-1.39798582,0.0188927092,0.547801077 +-0.471277267,3.76024628,0.471277237,0.000466062804,0.173144624,0.159046039,-0.866942048,-1.67164624,0.0189428907,0.666884542 +0.482066453,3.76043749,-0.482066453,0.000641564373,0.172752261,0.098794803,-0.342806458,-0.98878932,0.0189491473,0.682109177 +0.22528553,3.76101065,-0.225285545,0.00026647115,0.139511794,0.0700338855,-1.76754832,-0.522246361,0.0190649349,0.318720102 +0.142163813,3.76108122,-0.142163813,0.000118609642,0.144056946,0.0717579946,-1.72256684,-0.293666631,0.0190492682,0.201100096 +0.635823369,3.76122737,-0.635823369,0.00114199566,0.17313543,0.0865301266,0.119117133,-0.465816379,0.0190658886,0.899947166 +0.151540518,3.76147509,-0.151540503,0.000136584451,0.14334695,0.0714935213,-1.72345734,-0.318015605,0.0190512836,0.214532793 +-0.992782533,3.76160526,0.992782533,0.00212979759,0.150627822,0.071095109,0.373918891,-0.189721629,0.01917715,1.40475202 +-0.0934667066,3.76163864,0.0934667066,0.00022082268,0.143270805,0.0682492927,-1.93032837,0.0436811708,0.0190261956,0.132337853 +-0.10866195,3.7616632,0.108661957,0.000266681542,0.146785885,0.0695489198,-1.98546493,0.046328567,0.019015938,0.153855383 +0.15472503,3.76170444,-0.15472503,0.000150659398,0.14311114,0.0715587437,-1.72016835,-0.328210115,0.0190522261,0.218957886 +-0.0720459893,3.76179123,0.0720459893,7.6671e-05,0.259885311,0.201331764,-1.74640512,0.0721609369,0.0190344565,0.101999998 +-0.0815154091,3.7618382,0.0815154091,0.000173739536,0.150766596,0.0818213895,-1.8726244,0.0578302331,0.0190318003,0.115408018 +-0.456211567,3.76192331,0.456211567,0.000653019175,0.1696527,0.145863324,-1.1190505,-1.64270532,0.0189276747,0.645400882 +-0.584222078,3.76213837,0.584222078,0.000632030657,0.168601349,0.0989857689,0.246129185,-0.797606111,0.0190913752,0.826313734 +-0.257942587,3.76240301,0.257942617,0.00030364003,0.146518037,0.096657306,-2.46442509,-0.463803679,0.0189420059,0.364794403 +-0.253471494,3.76252007,0.253471494,0.000337996171,0.146446913,0.095279716,-2.45080566,-0.438169777,0.0189438462,0.358464807 +-0.222664356,3.76260686,0.222664356,0.000577711326,0.146479666,0.0892234221,-2.37982631,-0.258646131,0.0189532284,0.314985543 +-0.257430524,3.76298165,0.257430524,6.89957742e-05,0.146440879,0.0960726514,-2.45761204,-0.461752981,0.01894214,0.364081591 +0.328413099,3.76302838,-0.328413129,0.000603302848,0.145419568,0.0736923292,-1.72911477,-0.965828896,0.0189977735,0.464739263 +-0.636303186,3.76303959,0.636303186,0.000200055088,0.168686002,0.0890711844,0.271898746,-0.607176661,0.0191246159,0.899999976 +0.229518592,3.76305723,-0.229518592,3.3319855e-05,0.139376193,0.0697262287,-1.76699984,-0.538977563,0.0190614555,0.324859411 +-0.21610558,3.76306915,0.21610558,0.000433862675,0.146560594,0.0880484134,-2.36188316,-0.232373029,0.0189556144,0.305678904 +-0.258926362,3.76307917,0.258926362,0.000268098549,0.146534577,0.0964495316,-2.45849347,-0.472469687,0.0189417861,0.366182119 +0.168462574,3.76313353,-0.168462589,0.000199414586,0.142366067,0.0713615641,-1.73019981,-0.362779975,0.0190528929,0.238655433 +-0.257798135,3.76320314,0.257798165,5.27318548e-07,0.146443322,0.0960738137,-2.45639157,-0.464957476,0.0189419724,0.364603072 +0.128672987,3.76321101,-0.128672987,0.000109113775,0.145321339,0.0718303025,-1.72409034,-0.257383883,0.0190412831,0.182313055 +0.847074747,3.76322937,-0.847074687,0.00609830301,0.169106141,0.0805157498,0.384146839,-0.344195366,0.0191257894,1.1995039 +-0.772949815,3.76326585,0.772949755,0.00177688675,0.164808422,0.0783990249,0.28614831,-0.434285402,0.0191585515,1.09328902 +-0.51011765,3.76332116,0.51011765,0.000642571191,0.169964522,0.139321908,-0.199053004,-1.42211032,0.0190050732,0.721693873 +-0.257387131,3.76345372,0.257387131,0.000174769841,0.146407098,0.0957705826,-2.45307803,-0.462828726,0.0189423878,0.364018261 +-0.257656455,3.76349139,0.257656455,1.86702508e-07,0.14640604,0.0958143845,-2.45310521,-0.464582592,0.0189422946,0.364409238 +0.3915959,3.76359344,-0.39159587,0.000573629921,0.162003726,0.0886909738,-1.29584932,-1.15200591,0.0189500023,0.554462314 +-0.258072257,3.76371264,0.258072287,0.000131110268,0.146408468,0.0958116204,-2.45121598,-0.467339784,0.0189423487,0.364985019 +-0.629667222,3.76422691,0.629667222,0.00051961845,0.168811619,0.0899537057,0.272662938,-0.631753802,0.0191169772,0.890550613 +1.18871522,3.76426935,-1.1887151,0.000472411717,0.134191021,0.0637776181,0.128786296,-0.120530009,0.0191475581,1.68110335 +-0.257585287,3.76427865,0.257585287,0.000423969235,0.146366492,0.0955934972,-2.44670725,-0.464766651,0.0189426523,0.364296138 +-1.04342985,3.76429868,1.04342985,0.00118784816,0.133800253,0.0620250776,0.225975171,-0.102020018,0.0191793274,1.47580385 +-0.169365436,3.76431632,0.169365436,0.000720708747,0.14724946,0.0778173134,-2.18685198,-0.0674335733,0.0189755671,0.240239412 +0.184012443,3.76436996,-0.184012443,0.0002858527,0.141549438,0.0710997134,-1.72775912,-0.405489177,0.0190562028,0.260530829 +0.36062637,3.76454544,-0.36062637,0.000763186021,0.153121591,0.0802304074,-1.55429757,-1.10398102,0.0189673193,0.510345638 +0.973545194,3.76506066,-0.973545253,0.0024189041,0.158103272,0.0752905086,0.363424271,-0.221441746,0.0191367175,1.37707388 +0.231612444,3.76516294,-0.231612429,0.000177310838,0.139413506,0.0694250017,-1.76357174,-0.547695637,0.0190582201,0.327791363 +-0.30496791,3.76556444,0.30496794,0.000484967546,0.150058255,0.108017728,-2.44768047,-0.78819263,0.0189278498,0.431425333 +-1.05124497,3.76561546,1.05124497,0.000801993941,0.131105199,0.0606145225,0.199399129,-0.0867778808,0.019178817,1.48681331 +-1.18312502,3.76604819,1.18312514,0.000259104359,0.127466962,0.0598125756,0.0995349139,-0.128274038,0.0191833619,1.67323887 +0.278816044,3.76622915,-0.278816044,0.000260506407,0.1387887,0.0685185716,-1.79008913,-0.73947382,0.0190365836,0.394779235 +-0.486456573,3.76690245,0.486456573,0.000861363602,0.169864357,0.143167898,-0.562367976,-1.56003296,0.0189691596,0.688229561 +-0.181590021,3.76714563,0.181590021,0.000248380762,0.147072509,0.0797908157,-2.2160871,-0.115433067,0.0189683959,0.257340819 +1.04122758,3.76730347,-1.04122758,0.00129264535,0.136265263,0.0630789027,0.202909529,-0.124847651,0.0191421006,1.47255599 +0.894355834,3.76750374,-0.894355834,0.00312701729,0.166612536,0.0795214772,0.402018905,-0.303204507,0.0191278961,1.26550603 +0.212356284,3.76758599,-0.212356299,0.000236462365,0.140511304,0.070304133,-1.73819113,-0.488436699,0.0190572664,0.300577402 +-0.781009257,3.76781082,0.781009257,0.000148711231,0.16398564,0.0778375864,0.300547153,-0.43159467,0.0191575475,1.10484791 +-0.353107691,3.76800203,0.353107691,0.000577027211,0.158044547,0.123317756,-2.26715612,-1.14234507,0.018914206,0.499401301 +0.13233608,3.76845503,-0.13233608,0.000171482898,0.145381838,0.0713138208,-1.7187252,-0.271345824,0.0190361105,0.187309891 +-1.18578029,3.76861143,1.18578041,0.000506705139,0.126378924,0.0592213236,0.0771897286,-0.122062586,0.0191814359,1.67696869 +-0.322257727,3.76916504,0.322257727,0.000808931887,0.152151942,0.112356417,-2.38835788,-0.918849409,0.0189190991,0.455974638 +1.05492818,3.769238,-1.05492818,0.000339590188,0.130114123,0.0596607476,0.156710461,-0.103826657,0.0191419162,1.49197721 +-0.54708159,3.76984811,0.54708159,0.000911938958,0.167245746,0.111635372,0.121726774,-1.06341231,0.0190614369,0.773993969 +0.376064301,3.76993132,-0.376064271,0.000656645861,0.155832589,0.0825022832,-1.40216446,-1.13046515,0.0189573895,0.532033682 +0.932384372,3.77004147,-0.932384372,0.00142901216,0.165045336,0.0789848268,0.402996123,-0.269147813,0.019129131,1.32008219 +0.120738953,3.77050161,-0.120738953,0.00013914,0.145840958,0.0712553784,-1.7213378,-0.232261658,0.0190316476,0.170861527 +-0.78636688,3.77054286,0.78636682,0.0047397553,0.163478419,0.077535741,0.306916893,-0.42802462,0.0191563386,1.11241066 +-0.61261189,3.77063036,0.61261189,0.000509796781,0.168269247,0.091260232,0.247414753,-0.706958532,0.0191044845,0.866384387 +0.193796188,3.7706542,-0.193796188,0.000109720895,0.141387135,0.070514597,-1.7251606,-0.440339744,0.0190486424,0.274737448 +0.635832548,3.77069449,-0.635832548,0.00110210059,0.167695448,0.0845754072,0.262217999,-0.582339287,0.0190546699,0.899999976 +-0.52402246,3.77069521,0.52402246,0.000643299019,0.167669415,0.124251783,-0.0559470505,-1.27576637,0.0190247186,0.741543949 +0.254564315,3.7707243,-0.254564315,0.000210477825,0.138913274,0.0684799775,-1.76125991,-0.638843477,0.0190462153,0.360036165 +-0.589044094,3.77081919,0.589044094,0.000405878644,0.168035358,0.0935309231,0.229662836,-0.793082297,0.0190910902,0.833180308 +0.355104327,3.77082729,-0.355104357,0.000534442603,0.150586411,0.0778592974,-1.55714405,-1.08903909,0.0189687368,0.502660275 +-0.636245608,3.77084231,0.636245608,3.08677154e-05,0.168379709,0.0884904563,0.266965002,-0.618481696,0.0191187132,0.899999976 +0.226644367,3.77094102,-0.226644352,0.000267513533,0.139973745,0.0693231821,-1.74629664,-0.536521792,0.01905182,0.320645809 +0.469603479,3.77113628,-0.469603479,0.000131393332,0.170248836,0.0958278775,-0.470785558,-1.05857122,0.0189448036,0.664785266 +0.292148709,3.77138472,-0.292148709,0.000368391658,0.139398053,0.0686118528,-1.75750184,-0.804901958,0.019023886,0.413266778 +0.250127554,3.77152753,-0.250127524,0.000249490811,0.139076218,0.0685819238,-1.75367475,-0.623748243,0.0190469045,0.353745103 +-1.17976403,3.7715714,1.17976391,0.000677692296,0.125535652,0.0585762523,0.0914722905,-0.131618395,0.0191789139,1.66847062 +-1.20561361,3.77185774,1.20561361,0.000814860803,0.120744698,0.0563201867,-0.0413655601,-0.075371556,0.0191798024,1.70520151 +0.153103963,3.77190685,-0.153103963,0.000122995771,0.143929332,0.0707004964,-1.71258283,-0.326155454,0.0190394931,0.216591358 +-1.2181778,3.77205992,1.2181778,0.000547506148,0.123205319,0.0578146763,-0.166553438,-0.0297891926,0.0191800371,1.72297192 +-0.134687036,3.77208614,0.134687036,0.000430096057,0.147722393,0.0709929913,-2.02903533,-0.0066061113,0.0189974308,0.190930396 +-1.22864795,3.77222824,1.22864795,0.000249581062,0.119978167,0.0601828657,-0.249627575,-0.018039817,0.01917997,1.73778045 +0.257291675,3.77235651,-0.257291675,0.000280309934,0.138974875,0.0684043542,-1.75569749,-0.653360307,0.0190431401,0.363885224 +-0.632469118,3.77250457,0.632469177,0.000652032613,0.168303236,0.0885555893,0.260662913,-0.633588612,0.0191152059,0.894596994 +-0.284715027,3.77259254,0.284714997,0.000563229667,0.147762761,0.101917215,-2.41110301,-0.65462327,0.0189317036,0.402828276 +0.479114383,3.77267408,-0.479114383,0.000543691043,0.169880494,0.0949745923,-0.382506132,-1.03095484,0.0189483799,0.678250611 +0.494771183,3.77277803,-0.494771183,0.00152646122,0.169253111,0.0935446545,-0.282124043,-0.978767633,0.0189574454,0.699914217 +0.128153265,3.77281046,-0.128153265,9.52436021e-05,0.146126688,0.0710508004,-1.71795964,-0.257992834,0.019030273,0.181314766 +-1.18307495,3.77305961,1.18307483,0.00020362834,0.127851635,0.0599562153,0.088249445,-0.125408217,0.0191777479,1.67315888 +-0.174659237,3.77309728,0.174659237,0.000271901576,0.146735325,0.0760879219,-2.15108824,-0.108937845,0.0189731605,0.247850895 +0.254543632,3.77328897,-0.254543632,7.99970076e-06,0.139009431,0.0683866665,-1.75046945,-0.642624795,0.0190436747,0.360052824 +-0.555245996,3.77351594,0.555245996,0.000859420164,0.166980788,0.107750982,0.147389948,-1.00753808,0.0190660786,0.78554225 +0.0917293876,3.77375507,-0.0917293876,0.000195899222,0.144858524,0.0720620975,-1.7317946,-0.112377547,0.0190196838,0.130039901 +0.105909795,3.77378774,-0.105909802,0.000214707165,0.145813107,0.0707191452,-1.73029399,-0.179143921,0.019023275,0.150134549 +0.320015043,3.77413034,-0.320015043,0.000408451044,0.142098248,0.0706116557,-1.69524932,-0.938408792,0.0190011282,0.453066677 +0.071951285,3.77416396,-0.071951285,6.76061027e-05,0.248996586,0.195256487,-1.56686401,0.0142376032,0.0190110765,0.101999998 +0.0806505308,3.7742424,-0.0806505308,0.000153979054,0.15430668,0.0865627453,-1.69552946,-0.0359733403,0.0190142635,0.114333481 +-0.781380177,3.77435827,0.781380117,5.70194752e-05,0.163726717,0.0776741952,0.298414379,-0.433401346,0.0191531871,1.10538566 +-0.584524989,3.77438831,0.584524989,0.000588745752,0.167661354,0.0936485156,0.213578179,-0.815617204,0.0190874357,0.826801002 +0.176530838,3.7743907,-0.176530838,0.000209779784,0.142457128,0.0703910589,-1.71311831,-0.392192841,0.019040741,0.249804735 +0.253707409,3.77473044,-0.253707409,7.70610786e-05,0.139099389,0.0683499575,-1.74502885,-0.640504599,0.0190426111,0.358840734 +-0.150833577,3.77476883,0.150833577,0.00040008669,0.147402272,0.0726740509,-2.07206225,-0.0468463674,0.0189883802,0.21356231 +0.254939198,3.77517796,-0.254939198,0.00026052905,0.139064118,0.0683301389,-1.7429415,-0.645338237,0.0190422162,0.360586524 +0.201961368,3.77604008,-0.201961353,0.000247411255,0.141353428,0.0699920952,-1.71543121,-0.470295906,0.0190435722,0.285886168 +1.06290579,3.77628422,-1.06290579,0.00092612271,0.126110971,0.0573919341,0.127344429,-0.105124645,0.0191378146,1.50322795 +0.29906258,3.77689624,-0.29906261,0.000122957994,0.139760882,0.068648003,-1.72573972,-0.844905138,0.0190149676,0.42334947 +-1.10456705,3.77696371,1.10456705,0.0011332772,0.0647204071,0.0256859958,-0.152780607,-0.145537227,0.019170545,1.56228662 +0.59539181,3.77746964,-0.59539181,0.00113951624,0.166655943,0.0852812901,0.188223064,-0.675689399,0.0190283023,0.842050195 +0.457142919,3.77780294,-0.457142889,0.000713423011,0.167227581,0.0926621184,-0.592024446,-1.09345341,0.0189442541,0.646706283 +0.432496011,3.77794886,-0.432496011,0.00137379661,0.166372061,0.0924491361,-0.826138079,-1.15789056,0.0189424679,0.611941934 +-0.414161354,3.7783103,0.414161384,0.00043922753,0.165795296,0.130759403,-1.60482454,-1.49145281,0.0189074539,0.585744262 +1.00557172,3.77859449,-1.00557172,0.00114577624,0.151544929,0.0716992915,0.308359802,-0.172921121,0.0191322919,1.42254496 +0.111783735,3.77879667,-0.111783743,0.000231572136,0.146729514,0.0704727694,-1.72615242,-0.199964195,0.0190193057,0.158497766 +-0.13560912,3.77884364,0.13560912,3.71364331e-05,0.147693664,0.0702347234,-2.00689125,-0.0225531179,0.0189942103,0.192419931 +-1.06351256,3.77892065,1.06351256,0.00101170468,0.121983141,0.0554459915,0.131877631,-0.0837604329,0.0191690773,1.5041151 +0.995968521,3.77895403,-0.995968461,0.00164858322,0.154169589,0.0731441155,0.329238236,-0.189858764,0.0191307645,1.40894353 +0.141428724,3.77907658,-0.141428724,0.000208955942,0.145457059,0.070053719,-1.71576405,-0.299164563,0.0190235358,0.200715199 +1.10902047,3.77913475,-1.10902047,0.00134224456,0.0721711889,0.0286731627,-0.161042511,-0.179078102,0.0191351753,1.56858349 +-0.941219509,3.7793169,0.941219509,0.00263118721,0.154032633,0.0725305378,0.398436606,-0.268697321,0.0191616993,1.33191586 +0.192284495,3.77939987,-0.192284495,0.000244241586,0.141829908,0.069990471,-1.70351505,-0.445192605,0.0190382786,0.272536933 +-0.774217725,3.77951527,0.774217725,0.00211068336,0.164130062,0.0778799951,0.284337759,-0.440716743,0.0191484801,1.09504473 +-0.129538774,3.77958107,0.129538774,0.000368973851,0.147656277,0.0698225647,-1.98750496,-0.0144731645,0.0189971887,0.183667034 +1.13604641,3.77960968,-1.13604641,0.000793283747,0.0910770148,0.0381246805,-0.0595957786,-0.228631914,0.0191351883,1.60668683 +0.59708482,3.7796483,-0.59708488,4.4118915e-05,0.166459739,0.0848930851,0.190514028,-0.67518121,0.0190290883,0.844489753 +0.599028409,3.77965212,-0.599028468,0.000991346897,0.166499868,0.0848555192,0.193662256,-0.671328187,0.0190302394,0.847193718 +0.162472993,3.77971506,-0.162472993,0.000225076554,0.143662393,0.0701258779,-1.70526218,-0.362271935,0.0190292746,0.230309606 +-0.198155165,3.7798667,0.198155165,0.000432463479,0.146439642,0.0793091133,-2.19413447,-0.195516482,0.0189592745,0.280639589 +0.410484612,3.78046083,-0.410484582,0.00106549496,0.161563903,0.0876323506,-1.05341792,-1.17753458,0.0189446192,0.580827951 +1.1500349,3.78056097,-1.1500349,0.00080776657,0.099441722,0.0424711742,-0.00988585316,-0.258516222,0.0191348791,1.62652981 +0.307546705,3.7805686,-0.307546735,0.000456873997,0.140422508,0.0689812601,-1.69024181,-0.885640144,0.0190062709,0.435070813 +-0.108915113,3.78060961,0.108915105,0.000424259837,0.147365183,0.0677079111,-1.91848946,0.00509013329,0.0190109368,0.155442417 +-0.313697457,3.78064585,0.313697457,0.000756637892,0.14942044,0.102795973,-2.28485513,-0.863680422,0.0189316757,0.444078326 +-0.414762557,3.7807827,0.414762557,0.00043656354,0.165258124,0.12647225,-1.57329881,-1.48245454,0.0189115815,0.586595535 +-0.141683668,3.78085446,0.141683683,0.000413165166,0.147569209,0.0704485327,-2.01610708,-0.0363154858,0.018990878,0.200710446 +0.107002452,3.78087091,-0.107002452,0.000147732047,0.146690965,0.0700902194,-1.73231304,-0.177772462,0.0190161411,0.152154341 +-0.412952721,3.78090906,0.412952751,4.04194834e-05,0.165077493,0.126227587,-1.596331,-1.47560191,0.0189106129,0.584062755 +-0.411577225,3.78126836,0.411577255,0.000355280936,0.164809182,0.125630826,-1.60800362,-1.46717858,0.0189111978,0.582109213 +0.125678882,3.78134727,-0.125678882,0.000149921296,0.147067234,0.0702241808,-1.71970367,-0.248382255,0.019018976,0.178046167 +0.0921746716,3.78140092,-0.0921746716,0.000224692427,0.145480901,0.0713680536,-1.73216391,-0.111458175,0.0190136489,0.131096393 +-1.1266849,3.78151369,1.12668502,0.000842492969,0.0740472078,0.0300937444,-0.0943804234,-0.197133794,0.0191680826,1.59352064 +-0.0932018161,3.781533,0.0932018161,0.00040510908,0.144625992,0.0676649362,-1.86970139,0.0128751099,0.0190205183,0.133009225 +1.05360162,3.78162766,-1.05360162,0.00108129776,0.130575359,0.0599011928,0.155326173,-0.100720607,0.019133931,1.49006188 +-0.0714733675,3.78173208,0.0714733601,0.000138775911,0.256435543,0.19364123,-1.69745231,0.0619522817,0.0190294292,0.101999998 +-0.0810200274,3.78173947,0.0810200274,0.000315621321,0.150881007,0.0804069787,-1.81750667,0.0388235897,0.0190261137,0.11562489 +0.0717085898,3.78185463,-0.0717085898,7.88599791e-05,0.249512464,0.192989916,-1.57045734,0.0146266818,0.0190051906,0.101999998 +0.0806647614,3.7819314,-0.0806647614,0.000178294984,0.153737217,0.0850690156,-1.69623971,-0.0360438935,0.0190085098,0.114737548 +-0.321997851,3.78200626,0.321997851,0.000501877337,0.150117218,0.103975721,-2.25304961,-0.918451786,0.0189295541,0.455912173 +-0.636340499,3.78227425,0.636340499,0.000439010939,0.167926624,0.087711513,0.25496158,-0.626206636,0.0191123076,0.899999976 +0.59172821,3.78249598,-0.59172821,0.000746875594,0.166147202,0.084833324,0.169530496,-0.694397271,0.0190247074,0.836850166 +0.469369411,3.78275847,-0.469369411,0.00036881151,0.167247221,0.0922280923,-0.464389205,-1.06268716,0.0189459007,0.664321184 +0.597239375,3.78306937,-0.597239375,0.000750737789,0.166308492,0.0846883953,0.187293962,-0.677973866,0.0190283433,0.844660938 +-1.14468217,3.78338718,1.14468217,0.000912612479,0.0847430751,0.0353901461,-0.0358830281,-0.230927154,0.0191673487,1.61900556 +0.872845948,3.78339958,-0.872846007,0.00301550957,0.167149603,0.0795175284,0.384799451,-0.323834985,0.0191157646,1.23624682 +0.397915959,3.78344107,-0.397915959,0.000706470688,0.15877074,0.084872134,-1.16496158,-1.1747545,0.0189477969,0.563600898 +0.214229897,3.78355074,-0.214229897,0.000302645291,0.14126955,0.069129996,-1.70368183,-0.510414243,0.0190362036,0.303236663 +-0.342375308,3.78367186,0.342375308,0.000533070415,0.153253034,0.109174728,-2.16244435,-1.05310965,0.0189276524,0.484252572 +0.298989713,3.78391528,-0.298989713,0.000379944453,0.139821291,0.0683572367,-1.69114208,-0.845228612,0.0190117154,0.423039436 +-0.350912809,3.78439736,0.350912809,5.70221309e-05,0.154597118,0.111160435,-2.1190989,-1.11433733,0.0189262666,0.496559232 +-0.958567977,3.78446674,0.958567977,0.00178712665,0.152723342,0.0719057396,0.379077762,-0.241179228,0.0191589762,1.35600376 +0.173785299,3.78455687,-0.173785284,0.000281607179,0.143191665,0.0695884898,-1.69781733,-0.394153923,0.0190265588,0.245972037 +0.786031604,3.78476214,-0.786031604,0.00485163881,0.170230985,0.0808707625,0.316344649,-0.395638168,0.0191084668,1.11410499 +0.6721645,3.78484964,-0.6721645,0.00171142304,0.172375426,0.0837861151,0.158365965,-0.467640519,0.0190729722,0.950686872 +-0.412884563,3.78517771,0.412884563,0.000595718273,0.164359987,0.123766586,-1.56944704,-1.4612509,0.0189157818,0.583931684 +0.277130872,3.78522134,-0.277130872,0.00040358628,0.13928853,0.0678588077,-1.70764422,-0.74221617,0.0190242771,0.392028779 +-0.136266649,3.78522539,0.136266649,0.000307898532,0.147991836,0.0698129386,-1.98482347,-0.0338898227,0.0189916752,0.193252325 +-0.353259623,3.78525949,0.353259623,0.000250708079,0.154830113,0.111339882,-2.09592628,-1.13027525,0.0189259481,0.499840319 +0.179790527,3.78533912,-0.179790527,0.000279340195,0.14281483,0.0695372671,-1.69578171,-0.412651211,0.019026937,0.254564106 +-0.784022331,3.78549719,0.784022272,0.00390351634,0.163506866,0.0775276273,0.294173807,-0.430236697,0.0191453565,1.10894477 +0.329897195,3.78652668,-0.329897195,0.000832043355,0.143261865,0.0708816126,-1.59938264,-0.985851526,0.0189845804,0.467178106 +-0.194437191,3.7866683,0.194437191,0.000284099806,0.14606607,0.0761005878,-2.13551903,-0.2006789,0.0189621355,0.275631458 +0.129306331,3.78726292,-0.129306346,0.000128711908,0.147137776,0.0695647374,-1.71194887,-0.26038748,0.019014148,0.182993442 +0.135648102,3.78762054,-0.135648087,0.000201278162,0.146549463,0.0693388581,-1.71034265,-0.28006047,0.0190151073,0.192094475 +-0.47073704,3.78769875,0.47073701,0.000994632253,0.166017145,0.126647547,-0.780026972,-1.51644158,0.0189616978,0.666016102 +-0.512745261,3.78787112,0.512745261,0.000730436761,0.167975441,0.126699701,-0.256338209,-1.33252192,0.0190123338,0.725380182 +0.205464527,3.78859401,-0.205464512,0.000217885492,0.141875923,0.0688833296,-1.6977644,-0.48510173,0.0190298129,0.291005522 +1.19780624,3.78862,-1.19780636,0.000532647071,0.118093625,0.0544675551,0.0237306599,-0.0986713171,0.019132968,1.69399953 +0.685465693,3.7888236,-0.685465753,0.000879164436,0.17221792,0.0829242542,0.174796492,-0.46340704,0.0190779809,0.969814181 +1.21473002,3.78885221,-1.21473002,0.000534086255,0.114130817,0.0525879189,-0.0978031456,-0.0402799286,0.0191331655,1.71793413 +-0.680834174,3.78903675,0.680834174,0.00234177965,0.169121593,0.0809964389,0.116982058,-0.51944381,0.0191282518,0.963737726 +1.22881186,3.78904676,-1.22881198,0.00024244668,0.106075272,0.0513634272,-0.197204053,-0.0222092457,0.0191333927,1.73784947 +-0.350042999,3.78978181,0.350042969,0.000224931835,0.153989121,0.109281495,-2.08036232,-1.10210001,0.0189271178,0.4952842 +-0.234423622,3.78995371,0.234423608,0.000649741443,0.145433888,0.0845674351,-2.21132588,-0.380530894,0.0189419221,0.332369089 +0.148487151,3.79017067,-0.148487151,0.000215018095,0.145599276,0.0691030696,-1.69968987,-0.321611285,0.0190143175,0.210222006 +-0.591922522,3.79052997,0.591922522,0.000758009672,0.166897103,0.0913073123,0.200327367,-0.792983055,0.0190837961,0.837160766 +-0.450638711,3.79078555,0.450638711,0.000985082472,0.16644004,0.125811711,-1.07944751,-1.50730824,0.0189314373,0.637746334 +0.23958531,3.79096556,-0.23958531,0.000272585457,0.140292957,0.0682044923,-1.68164051,-0.593773484,0.0190316793,0.33885026 +0.540702343,3.79098725,-0.540702343,0.00273518497,0.16534093,0.0870206952,-0.012935752,-0.853435874,0.0189870261,0.764928341 +-1.05391383,3.79104924,1.05391383,0.00136976165,0.129357949,0.0595078021,0.16746898,-0.0755070969,0.0191594865,1.49053812 +-0.359602392,3.79139423,0.359602392,0.000663961575,0.155010372,0.109683797,-2.00271821,-1.15350413,0.0189286508,0.508619785 +-0.167452067,3.79206228,0.167452067,0.000358249934,0.146441162,0.0714645982,-2.03567553,-0.120137662,0.0189763214,0.236963749 +0.225197271,3.79209733,-0.225197285,0.000386672153,0.141117975,0.0685299113,-1.67933941,-0.554691195,0.0190279763,0.318945348 +0.156573698,3.79262686,-0.156573698,0.000371127797,0.145021826,0.0688152909,-1.6962111,-0.346003562,0.0190133285,0.221682698 +-0.201317251,3.79454207,0.201317236,0.000533704471,0.145711184,0.0755160078,-2.10371637,-0.236820161,0.0189604498,0.285101622 +-0.281034231,3.79478312,0.281034231,0.0014307641,0.145466536,0.0899548233,-2.19822645,-0.651036322,0.0189387426,0.398008466 +0.683865905,3.79494929,-0.683865964,9.35013377e-05,0.172059998,0.0828167945,0.170870751,-0.468800187,0.0190743059,0.967515528 +0.692791462,3.79544568,-0.692791462,0.00251580752,0.17187418,0.0825898051,0.182154238,-0.462229311,0.0190767739,0.979916096 +-0.710814357,3.79598022,0.710814416,0.00355262193,0.16807577,0.0801771879,0.170676887,-0.494477272,0.0191301629,1.00629961 +0.115592867,3.79615545,-0.115592867,0.000121925172,0.147970527,0.0690724328,-1.70947099,-0.207788095,0.0190052837,0.163531795 +0.130545288,3.79623914,-0.130545288,0.000201407747,0.147557572,0.0689204782,-1.700315,-0.26550141,0.0190055128,0.184970587 +0.108661085,3.79627633,-0.108661085,0.000210148617,0.147898108,0.0690969378,-1.71144068,-0.183178291,0.0190042853,0.153752655 +-0.636067033,3.79628611,0.636067033,0.000674591225,0.169444978,0.0827744678,0.0324812531,-0.546444297,0.0191127378,0.89977777 +-0.176672384,3.79686952,0.176672384,0.000265541894,0.146163344,0.0718294978,-2.03611231,-0.160070345,0.0189712364,0.249963373 +-0.381792158,3.79735088,0.381792158,0.000822238799,0.158147097,0.113070637,-1.79419947,-1.27943242,0.018922247,0.540385723 +-0.161738098,3.79756093,0.161738098,0.000271622645,0.146505982,0.0697372854,-1.9924643,-0.116806157,0.0189774297,0.228941545 +0.0932676122,3.79793215,-0.0932676122,0.000219839218,0.146591306,0.0707144663,-1.70943761,-0.115016997,0.0190019682,0.131965876 +-0.192581043,3.79797578,0.192581028,0.000290415453,0.145858318,0.0735634267,-2.06616306,-0.213014007,0.0189648103,0.272828579 +0.0813562572,3.79878712,-0.0813562572,0.000169607287,0.153267518,0.0835712701,-1.67513919,-0.0381761529,0.0189973898,0.115108475 +0.0720933378,3.79906392,-0.0720933378,7.42045086e-05,0.248935521,0.188297227,-1.55526757,0.0140533131,0.0189942196,0.101999998 +0.194162101,3.79935384,-0.194162101,0.000407914806,0.142777488,0.06825535,-1.67293477,-0.458620131,0.0190158486,0.275556147 +-1.19697642,3.79950738,1.19697642,0.00062709389,0.124672607,0.0580852218,-0.0396881774,-0.0807574019,0.0191573054,1.69290936 +-1.2142942,3.7996223,1.2142942,0.000605535461,0.131497622,0.0622437112,-0.186675191,-0.0313959122,0.0191575177,1.71740246 +-1.22869492,3.79972029,1.22869492,0.000274824328,0.124541923,0.0610856451,-0.294244647,-0.0182710551,0.019157527,1.7377696 +0.63617754,3.79987574,-0.63617754,0.000930465874,0.171975464,0.0855712891,0.11485561,-0.518972158,0.0190535821,0.899936974 +0.326089084,3.79990673,-0.326089084,0.000657889934,0.141758293,0.0693493709,-1.55727983,-0.966359496,0.0189813599,0.461921901 +-0.526183724,3.79998827,0.526183724,0.000777161564,0.165422112,0.104140691,-0.136203513,-1.17773986,0.0190320853,0.744550586 +0.215158641,3.80003476,-0.215158656,0.000232911436,0.141874641,0.0683092624,-1.65840793,-0.524785638,0.0190211926,0.304725349 +0.280397683,3.80066347,-0.280397654,0.000503172167,0.139678121,0.0674150959,-1.63122368,-0.767385304,0.0190124419,0.396744907 +0.553052664,3.80080724,-0.553052664,0.000381225313,0.163945511,0.0843921378,0.0242229775,-0.826230764,0.0189954638,0.782775342 +0.376271427,3.80085278,-0.376271427,0.000801566232,0.151409924,0.0776936486,-1.26805115,-1.12514472,0.0189531576,0.532286048 +0.271800846,3.80122852,-0.271800846,0.000593992881,0.139770389,0.0673489645,-1.63792324,-0.729601741,0.0190151967,0.384640127 +0.363108963,3.80149889,-0.363108963,0.000303895242,0.148341343,0.0749095529,-1.37533462,-1.10160041,0.0189609304,0.513788044 +-0.165954888,3.80172253,0.165954888,7.03936603e-05,0.146309793,0.0695560575,-1.98323226,-0.136940911,0.0189741217,0.235139877 +-0.110231601,3.80226135,0.110231601,0.000282602647,0.148695737,0.066475451,-1.8528899,-0.0179673359,0.0190056339,0.156001672 +0.315030932,3.80239105,-0.315030932,0.000907886832,0.141183093,0.0687065646,-1.57391667,-0.919550717,0.0189881008,0.44595015 +0.138564825,3.80257773,-0.138564825,0.000174074521,0.147097126,0.0684431493,-1.68580079,-0.292388946,0.0190020707,0.19619754 +-0.0941514298,3.80279732,0.0941514298,0.000233152939,0.146208152,0.0674298555,-1.81193542,-0.00417309394,0.0190144684,0.133240074 +-0.0720766708,3.80288029,0.0720766708,7.86186938e-05,0.256093562,0.190433294,-1.651232,0.0553042144,0.0190234836,0.101999998 +-0.0817614049,3.80288696,0.0817614049,0.000179312658,0.151354671,0.0798979104,-1.76518846,0.0277961493,0.0190199837,0.115705229 +0.109132305,3.80320883,-0.109132312,6.36062177e-05,0.148437366,0.0685767755,-1.70530605,-0.183604762,0.0189978927,0.154791757 +0.112115577,3.8035574,-0.112115577,0.000160348762,0.148442209,0.0685535967,-1.70260179,-0.194641039,0.0189980716,0.158712149 +-0.144345567,3.80400467,0.144345567,0.000245278556,0.147532776,0.0677702054,-1.92501211,-0.0827727541,0.0189868864,0.204432636 +-0.111674339,3.80427814,0.111674339,0.000267204421,0.148809224,0.0663845986,-1.8493638,-0.0233589672,0.0190042984,0.15805389 +0.0934230983,3.80427837,-0.0934230983,9.26499852e-05,0.146974578,0.0703781247,-1.70319748,-0.115186535,0.0189966559,0.132470816 +-0.110170268,3.80433846,0.110170268,2.46205764e-05,0.148853138,0.0663846433,-1.84575164,-0.0214148257,0.019004792,0.15604195 +0.243547708,3.80435181,-0.243547723,0.000331935094,0.140756607,0.0675335377,-1.6388377,-0.618923068,0.0190174226,0.344528288 +0.150998309,3.80445981,-0.150998309,0.000378877448,0.146145761,0.068268396,-1.67638791,-0.33250922,0.0190018266,0.213753074 +0.0813337862,3.80463982,-0.0813337937,6.57983255e-05,0.152936488,0.0828596652,-1.67002332,-0.0382988155,0.0189928766,0.115305819 +0.0719580278,3.80465317,-0.0719580278,2.75383391e-05,0.248651743,0.186710492,-1.55219173,0.0144387363,0.0189900547,0.101999998 +-0.0940930471,3.80471802,0.0940930471,3.91261965e-05,0.146356896,0.0674170256,-1.80608892,-0.00642614951,0.0190136638,0.133259282 +-0.07202214,3.80476999,0.07202214,1.29975288e-05,0.255868405,0.189979374,-1.64646876,0.0545344464,0.0190226864,0.101999991 +-0.0817055106,3.8047719,0.0817055032,2.96462676e-05,0.15139918,0.0798414275,-1.7599715,0.0264262781,0.0190191772,0.11571335 +-0.219855741,3.80489254,0.219855726,0.000987671199,0.145087123,0.0764813796,-2.071033,-0.335478604,0.0189535022,0.311562926 +-0.570728838,3.80532146,0.570728898,0.00118081504,0.16539678,0.090172641,0.104123175,-0.897078872,0.019067606,0.807844281 +-0.4613778,3.80538249,0.4613778,0.000671786605,0.16416809,0.112674378,-0.859937608,-1.43665111,0.0189598761,0.653254151 +-0.945340872,3.80542898,0.945340872,0.00169372198,0.153132826,0.0719581991,0.367937565,-0.25680244,0.0191421174,1.33800638 +0.680738091,3.80562615,-0.680738151,0.00136946258,0.172048032,0.0828347132,0.165017828,-0.477285177,0.019069301,0.962827206 +-0.232886285,3.80574846,0.232886285,0.000318065053,0.144620404,0.0777330548,-2.07429242,-0.401305884,0.0189478546,0.330810308 +0.245984524,3.8058548,-0.245984524,0.000514068524,0.140712202,0.067475237,-1.63241971,-0.628824592,0.0190161169,0.347983599 +1.19193435,3.80589008,-1.19193435,0.000500084308,0.12038818,0.0554716587,0.0129910298,-0.107395425,0.0191200171,1.68577504 +-0.337152272,3.80605555,0.337152272,0.000632861978,0.151545823,0.10150028,-1.99627185,-0.999905586,0.0189348161,0.476841688 +1.21200776,3.80622625,-1.21200788,0.000400273537,0.118152201,0.0546387769,-0.119420886,-0.0432906151,0.0191199854,1.71416521 +-0.110253222,3.8064065,0.11025323,0.000167107471,0.149014458,0.0663508773,-1.83916628,-0.0232040528,0.0190040786,0.156033427 +1.22873521,3.80650663,-1.22873533,0.000181623007,0.107564539,0.0509239286,-0.23335658,-0.0231793523,0.0191202704,1.73782325 +-0.0941616744,3.8066504,0.0941616744,0.000234403007,0.146503553,0.0674407259,-1.80069685,-0.00745603535,0.019012928,0.13325499 +0.109332472,3.80666757,-0.109332472,0.000245939038,0.148649618,0.0684788451,-1.69782162,-0.184393898,0.0189957991,0.154852271 +-0.0817655995,3.80667567,0.0817655995,0.000180969917,0.1514626,0.0798572674,-1.75511122,0.0257981196,0.0190184154,0.115711465 +-0.0720764771,3.80667877,0.0720764771,7.93694198e-05,0.255841613,0.189825848,-1.64206612,0.0541971959,0.019021932,0.101999998 +-0.268409908,3.80674076,0.268409908,0.00104302214,0.144515663,0.0838696137,-2.10323119,-0.581402481,0.0189461522,0.380125999 +0.924291968,3.80684638,-0.924291968,0.00237010419,0.16420874,0.0782606527,0.372706294,-0.278876543,0.0191060826,1.3080318 +1.17582726,3.80689812,-1.17582726,0.00072414428,0.118102461,0.0536740907,0.0251467153,-0.139021814,0.019119978,1.66290236 +-0.169276997,3.80697322,0.169276997,0.000325443631,0.146278948,0.0693446919,-1.9642899,-0.152769715,0.0189721026,0.239644632 +-1.01716745,3.80707765,1.01716745,0.00012862304,0.141814083,0.0662020743,0.27211532,-0.119966142,0.0191458203,1.43849468 +-1.01693678,3.80709386,1.0169369,0.00124624465,0.141892403,0.0662435144,0.272849292,-0.12037719,0.0191457942,1.43816936 +0.0720385462,3.80728674,-0.0720385537,7.72377025e-05,0.248660862,0.186351344,-1.5481292,0.014409041,0.0189884696,0.102000013 +0.0935706198,3.80730271,-0.0935706273,0.000230632024,0.147168815,0.0703643411,-1.69688845,-0.115682922,0.0189948063,0.132509083 +-1.01705444,3.80737996,1.01705444,0.000274627004,0.141835138,0.0662111416,0.272193789,-0.120052032,0.0191455912,1.43833721 +0.0814466327,3.80741215,-0.0814466402,0.000176759058,0.152968824,0.082788147,-1.66479266,-0.0385867022,0.0189911872,0.115328796 +1.15553212,3.80762076,-1.15553212,0.0010464543,0.114450634,0.0510270335,0.0386760235,-0.177203923,0.0191205256,1.63430464 +-1.01735342,3.80767441,1.01735342,0.00152268028,0.141729563,0.0661515296,0.270965546,-0.119536147,0.0191453695,1.4387567 +-0.497802973,3.80805826,0.497803003,0.00109268771,0.164255917,0.104220286,-0.463670135,-1.2888279,0.0190054718,0.704265237 +-1.01627338,3.80816555,1.01627338,0.000746151956,0.141969934,0.0662771165,0.272714168,-0.121479176,0.0191449784,1.43722832 +0.178569913,3.80835485,-0.178569913,0.000233596889,0.144081146,0.0682982206,-1.65159488,-0.414766848,0.0190068912,0.25258109 +-0.112165116,3.80847335,0.112165123,0.000229486337,0.149089023,0.0662734658,-1.83482361,-0.0290521048,0.0190028157,0.158697695 +0.954292297,3.80847836,-0.954292297,0.0026015765,0.159391016,0.0757036135,0.341821253,-0.235054314,0.0191067215,1.35017896 +-0.162618101,3.80856943,0.162618101,0.000251375459,0.146769986,0.0688866004,-1.94685602,-0.136945233,0.0189742427,0.230179325 +1.13682079,3.80890965,-1.13682079,0.000972311886,0.111529082,0.0493724197,0.0190518983,-0.151432991,0.0191194694,1.60778165 +0.74770391,3.80910206,-0.74770391,0.00731520262,0.170067787,0.0806695148,0.25396356,-0.430268645,0.0190874543,1.05878329 +0.358604133,3.80923843,-0.358604133,0.000482482021,0.145883992,0.0725142881,-1.36597621,-1.08881283,0.0189617127,0.507517576 +0.243084192,3.80953503,-0.243084192,0.000147258135,0.14093329,0.0673955604,-1.62136841,-0.618666649,0.0190142859,0.343912065 +-0.139687255,3.81043363,0.139687255,0.000347257272,0.14791429,0.0667757541,-1.88687325,-0.0854641572,0.0189871918,0.198025152 +0.547677159,3.81068897,-0.547677159,0.000846339855,0.16307579,0.0837578923,-0.00624013506,-0.852512836,0.0189916156,0.77518177 +0.20380348,3.81095314,-0.20380348,0.00044302037,0.142832637,0.0677004233,-1.63891554,-0.495006174,0.0190088674,0.288930088 +-0.379579723,3.81118488,0.379579753,0.000597895239,0.155334815,0.103037871,-1.693874,-1.2363236,0.0189397521,0.537226915 +-1.09591055,3.81138802,1.09591055,0.00157641957,0.0993957222,0.043101076,-0.0282687657,-0.077201277,0.0191450603,1.55004191 +0.129008979,3.81172466,-0.129008979,0.000203893665,0.148545131,0.067956388,-1.68079305,-0.255794436,0.0189936701,0.182852849 +-0.240708634,3.81231451,0.240708634,0.000815162202,0.144323111,0.0777261481,-2.03977013,-0.437567234,0.0189493895,0.341165781 +-0.472292572,3.81256247,0.472292542,0.00118132937,0.163551003,0.106722854,-0.721209049,-1.38198757,0.0189784467,0.66849792 +-0.518173337,3.81261253,0.518173337,0.000863117981,0.164164841,0.0990125537,-0.235937327,-1.19866323,0.0190250762,0.733537018 +-1.14981389,3.81289434,1.14981389,0.00143424538,0.109421372,0.048537571,0.0206830725,-0.148513228,0.0191456843,1.62626648 +1.10173559,3.81318855,-1.10173559,0.00229074224,0.104668334,0.0455537997,-0.0230029691,-0.107134737,0.0191162359,1.55827832 +-1.12472606,3.81358171,1.12472606,0.0013421264,0.103222087,0.0451456942,-0.00678770337,-0.117551103,0.0191444103,1.59075117 +0.428670108,3.81373119,-0.428670108,0.00146604772,0.157505542,0.0829838291,-0.825780928,-1.17364812,0.0189407542,0.606622338 +0.562287986,3.81388903,-0.562287986,0.00110095344,0.163640499,0.0834282637,0.0366783552,-0.808951139,0.0189990457,0.795535982 +0.17043522,3.81390309,-0.170435205,0.000290394964,0.145039231,0.0677638575,-1.64772844,-0.392490804,0.0189990811,0.241091713 +0.298728168,3.8139596,-0.298728168,0.000684122962,0.140086889,0.0673182607,-1.55139339,-0.842257738,0.0189956576,0.423102677 +-0.356793046,3.8139863,0.356793046,0.000566757109,0.152842075,0.102145761,-1.86333156,-1.08878434,0.0189374592,0.504612863 +0.367503941,3.8144145,-0.367503971,0.000378158235,0.146966219,0.0732271969,-1.28902721,-1.10855472,0.0189555958,0.520237267 +-0.395102143,3.81471586,0.395102143,0.000771144521,0.157178998,0.103995658,-1.54935992,-1.28795958,0.0189442635,0.558983505 +0.223137483,3.81533766,-0.223137483,0.000207382836,0.142157793,0.067197077,-1.61863613,-0.553133488,0.0190095548,0.315718949 +0.361255199,3.81560779,-0.361255199,3.18219245e-05,0.14568311,0.0721932724,-1.32430339,-1.09769237,0.0189579371,0.511561275 +-1.1754967,3.81639719,1.1754967,0.000949695474,0.121093169,0.0553861558,-0.00437632855,-0.110789001,0.0191432983,1.66259193 +0.137890443,3.8168869,-0.137890428,0.000230833684,0.147935152,0.0675371364,-1.66719961,-0.286078572,0.018991245,0.195282802 +-0.145518914,3.8177824,0.145518914,0.000274764898,0.147859663,0.0665457249,-1.86809504,-0.108161896,0.0189828482,0.206083193 +0.218579143,3.81848121,-0.218579128,0.000256564323,0.142482519,0.0671008751,-1.61033463,-0.539456248,0.0190068353,0.309268534 +-0.432159483,3.81856346,0.432159483,0.00108094828,0.160232455,0.105067968,-1.13496387,-1.36126065,0.0189562738,0.611490786 +-0.196218401,3.81899786,0.196218401,0.000545835414,0.145753562,0.0721157864,-1.95836353,-0.261038125,0.0189566426,0.278406531 +0.35696882,3.81915426,-0.35696882,0.000505331496,0.14494431,0.0715188682,-1.32930875,-1.07895827,0.0189587381,0.505284548 +0.124589026,3.81935549,-0.124589026,0.000257837644,0.149010003,0.0677156895,-1.66814423,-0.239416376,0.0189882461,0.176793575 +0.246655017,3.81940818,-0.246655017,0.000385627296,0.141102403,0.0671532154,-1.58317673,-0.628803909,0.0190099124,0.348852843 +0.179519236,3.81967807,-0.179519251,1.73108419e-05,0.144609064,0.0675363392,-1.6317991,-0.420858771,0.0189964846,0.254097939 +1.18908548,3.81972957,-1.1890856,0.00071736367,0.123471871,0.056977272,0.0148515496,-0.100755602,0.0191101395,1.68169296 +0.177179575,3.81989098,-0.177179575,4.2492291e-05,0.144788682,0.0674820468,-1.6335001,-0.413442522,0.0189956147,0.250778317 +0.363348365,3.81991887,-0.363348365,0.000530654856,0.145590767,0.071984224,-1.29822826,-1.09860301,0.0189547949,0.514422655 +1.21073794,3.81996584,-1.21073794,0.000785017153,0.122216746,0.0566679016,-0.128881961,-0.0415256694,0.0191101357,1.71231508 +1.22877288,3.82016468,-1.228773,0.000355432858,0.1094587,0.0513223596,-0.253276467,-0.0224498007,0.0191104785,1.73782158 +0.182070091,3.82036591,-0.182070091,0.000250849582,0.1445207,0.067425862,-1.6296469,-0.428100646,0.0189967323,0.2576226 +-0.545585394,3.82042551,0.545585394,0.000531953468,0.163231343,0.0957044438,-0.0335322469,-1.02641726,0.019049285,0.771618247 +1.16299236,3.82123137,-1.16299236,0.000772115949,0.119830951,0.054062441,0.0315273255,-0.151597619,0.0191102456,1.64484215 +-0.647325039,3.82184887,0.647325039,0.00138158794,0.168238088,0.0810834616,0.0450126715,-0.548922837,0.0191006903,0.915816545 +-0.13699238,3.82203317,0.136992365,0.000370578025,0.148881733,0.0664083213,-1.83793533,-0.0932250619,0.0189853087,0.194011375 +1.07607043,3.82259464,-1.07607043,0.00158947462,0.117236525,0.0523749664,0.0572083332,-0.0964610726,0.0191089306,1.52195072 +0.178059265,3.8233223,-0.178059265,4.58444774e-05,0.14485617,0.0672084019,-1.62793839,-0.415013909,0.0189930219,0.252112925 +0.221539989,3.82340169,-0.221540004,0.000384527899,0.142479002,0.0669573173,-1.59221613,-0.549791515,0.0190046206,0.313519686 +0.132329196,3.8235836,-0.132329211,0.00013270574,0.148717105,0.067357339,-1.65496278,-0.266987175,0.0189863946,0.187811688 +0.149709016,3.82382584,-0.149709016,0.000537672546,0.147141933,0.0671192259,-1.64588594,-0.324351132,0.0189869367,0.212219864 +0.174585462,3.82445645,-0.174585477,0.000354649237,0.145197004,0.067174308,-1.62777233,-0.40351373,0.0189920589,0.247048825 +-0.182104096,3.82567835,0.182104096,0.000757277245,0.14598906,0.068158038,-1.89146471,-0.224499375,0.0189633686,0.258601695 +-1.18879545,3.82596707,1.18879545,0.00160636124,0.130283639,0.0607969537,-0.0250069275,-0.0836289823,0.0191357676,1.68143535 +-0.413667738,3.82598305,0.413667738,0.000866845716,0.158177882,0.101371631,-1.31171024,-1.32261527,0.018952474,0.585610271 +0.183168739,3.82613945,-0.183168754,0.000222564908,0.144633412,0.0670948252,-1.61532867,-0.430793285,0.0189930089,0.259126455 +-1.21053088,3.82617855,1.21053088,0.00107428897,0.139983624,0.0667430013,-0.196786553,-0.0316349678,0.0191357918,1.71217799 +-1.22864437,3.8263545,1.22864437,0.000487220183,0.128605783,0.0614098571,-0.329685986,-0.0180958007,0.019135775,1.73779798 +-0.604193628,3.82654357,0.604193628,0.000973457703,0.164786071,0.085367389,0.155425966,-0.762923539,0.0190752503,0.854868531 +-0.31259644,3.82671356,0.31259647,0.000858913641,0.147241101,0.0869343504,-1.91004157,-0.818744183,0.0189447757,0.442346632 +0.1088598,3.82708025,-0.1088598,0.000453062006,0.150035828,0.067716226,-1.66497636,-0.173980698,0.0189822968,0.155281484 +0.481926829,3.82748008,-0.481926829,0.00137048378,0.15791136,0.0811892971,-0.391552866,-1.06386542,0.0189525206,0.681574821 +0.093133986,3.82763076,-0.093133986,0.000412617868,0.148441911,0.0701610893,-1.66161633,-0.108774289,0.0189807862,0.13285774 +0.0809982643,3.827811,-0.0809982643,0.00031936224,0.153069377,0.082117863,-1.63320827,-0.0349269472,0.0189773794,0.115551829 +0.0714981705,3.82782078,-0.071498163,0.000140322722,0.249691591,0.184910804,-1.5238719,0.0173933618,0.0189747252,0.101999998 +0.636335313,3.82788897,-0.636335313,0.000638116326,0.166573033,0.0825942457,0.214281142,-0.614827633,0.0190392751,0.899999976 +-0.109348327,3.82796669,0.109348334,0.000366432534,0.150573522,0.066087462,-1.76071835,-0.0528456718,0.0189981442,0.156018108 +-0.0811000466,3.82798338,0.0811000466,0.000330897718,0.152159825,0.0801688358,-1.69487166,0.0144905318,0.019010121,0.115708359 +-0.0714915544,3.82798505,0.0714915544,0.000145145925,0.255343586,0.187890828,-1.58701718,0.047236599,0.0190130156,0.101999998 +-0.0933926105,3.82800007,0.0933926105,0.0004273995,0.148082137,0.0678818747,-1.73410749,-0.0258286484,0.0190056525,0.133247539 +0.474414408,3.82805657,-0.474414438,0.000883963367,0.157592714,0.0811375454,-0.453394443,-1.08639216,0.0189498905,0.670953393 +-0.635799706,3.82837915,0.635799646,0.000181271011,0.167628914,0.081205599,0.0208842512,-0.56479919,0.0190943703,0.899822533 +0.201855272,3.82881212,-0.201855272,0.000339159218,0.143523157,0.066775687,-1.59782481,-0.487131238,0.0189959761,0.285909176 +-0.592882156,3.82886744,0.592882156,0.00128508848,0.164606974,0.0860482529,0.118940987,-0.813352764,0.0190675184,0.838720858 +0.139282495,3.82939911,-0.139282495,0.000188860737,0.148321986,0.0669997782,-1.6423974,-0.284705788,0.018984098,0.197362959 +0.635896266,3.82951999,-0.635896266,0.000196576846,0.17105037,0.0849471986,0.111962773,-0.557463586,0.0190441031,0.899928927 +-0.318000525,3.82966328,0.318000555,0.00045844249,0.147601604,0.0870517492,-1.87241483,-0.852722347,0.0189439673,0.450044036 +-0.404374599,3.82974601,0.404374599,0.000417918782,0.156953871,0.0995526761,-1.3717711,-1.28440094,0.0189503841,0.572765648 +0.478847176,3.83006549,-0.478847176,0.000197249101,0.157470837,0.080840677,-0.412585586,-1.0761416,0.0189508572,0.677286685 +0.215822458,3.83012199,-0.215822458,0.000237088927,0.142831013,0.0666872635,-1.57841146,-0.530369997,0.0189993922,0.305317968 +0.27692461,3.83057976,-0.27692461,0.000334772893,0.140501857,0.0666964799,-1.51514339,-0.745766222,0.0189982653,0.391772747 +-1.07888269,3.83109283,1.07888269,0.00102284492,0.112421602,0.0499868654,0.0358562917,-0.0634089112,0.0191294346,1.52595425 +0.477240443,3.83122349,-0.477240443,0.00037822267,0.157145649,0.0804955587,-0.425840318,-1.08098197,0.0189504251,0.674995184 +-0.272099555,3.83142805,0.272099555,0.00109305116,0.145521924,0.0804187357,-1.93456316,-0.596903205,0.0189496614,0.385019481 +0.47881788,3.8315506,-0.47881788,8.62344386e-05,0.15721111,0.0804997459,-0.414327413,-1.07743597,0.0189509951,0.677239776 +0.270409554,3.83161497,-0.270409584,0.000419398159,0.140587866,0.0666260719,-1.51779139,-0.717002213,0.0190000385,0.382597536 +-0.20808953,3.83167458,0.20808953,0.000689215027,0.145861149,0.0720391944,-1.90665579,-0.314939082,0.0189515334,0.295122087 +1.143893,3.83200526,-1.143893,0.00117665704,0.119145855,0.0534305722,0.0321718529,-0.139810532,0.0191034414,1.61777234 +-0.326378435,3.83227873,0.326378465,0.000544571783,0.148271382,0.0869614407,-1.80936885,-0.894722342,0.0189474672,0.461783737 +0.232639566,3.8323741,-0.232639551,0.000326211593,0.142245814,0.0667535067,-1.5502677,-0.583583236,0.0190016851,0.329049945 +-0.126105696,3.83250737,0.126105696,0.00018624877,0.150370657,0.0659328848,-1.77179039,-0.0897966772,0.0189881641,0.179543689 +0.398733497,3.83287048,-0.398733497,0.000805227784,0.150091112,0.0757332072,-1.01748991,-1.1498754,0.0189416148,0.563962936 +-0.896337271,3.83300853,0.896337271,0.00255197589,0.155785143,0.0732881799,0.343408197,-0.317187339,0.0191193186,1.26766765 +0.477273047,3.83337951,-0.477273047,0.000833109312,0.156865656,0.0802385956,-0.423663229,-1.08000159,0.0189507045,0.675034523 +1.03425646,3.83350563,-1.03425646,0.00141009898,0.136099488,0.0628337637,0.174384773,-0.111493379,0.019098904,1.46317732 +-0.982707322,3.83359957,0.982707322,0.0014729473,0.147906616,0.0692071617,0.301982582,-0.187188417,0.0191245526,1.38990331 +1.04621947,3.83421898,-1.04621947,0.00171351829,0.132672116,0.0609939396,0.146890521,-0.0901689231,0.0191000197,1.4801209 +0.632174015,3.83423638,-0.632174015,0.00119120243,0.166180402,0.0822775438,0.200971812,-0.62918514,0.0190352742,0.894109011 +0.636279702,3.83433509,-0.636279762,1.37464867e-05,0.166446984,0.0823814571,0.209070593,-0.618686378,0.0190373231,0.899999976 +-0.635910511,3.83478212,0.635910511,0.000404924824,0.16559349,0.0842326954,0.205578089,-0.658344507,0.0190845635,0.899999917 +-0.152962282,3.8351717,0.152962282,0.000448453822,0.148100853,0.0657402202,-1.80562341,-0.152197435,0.0189764053,0.216797352 +0.598251939,3.83534837,-0.598251939,0.0018524949,0.163847029,0.0813050941,0.133078516,-0.715567768,0.0190195683,0.846718073 +-0.119691111,3.83540869,0.119691111,0.000220530084,0.150712416,0.0656860545,-1.75058603,-0.0791033059,0.0189924017,0.170224294 +-0.31419003,3.83606982,0.31419003,0.000583464687,0.147086233,0.0835840255,-1.82871377,-0.823494971,0.0189500861,0.444682777 +0.303541481,3.83616662,-0.303541481,0.00140366075,0.140659362,0.0670859143,-1.44247293,-0.849933326,0.0189894103,0.429869413 +0.123123251,3.83616996,-0.123123251,0.000248983735,0.149775267,0.0670312196,-1.63624859,-0.226170242,0.0189782549,0.174944177 +-0.163917422,3.83618164,0.163917422,0.000409618893,0.147385672,0.0663428307,-1.81694424,-0.183951035,0.0189727414,0.232421011 +-0.537674308,3.83625746,0.537674308,0.000909402617,0.162186265,0.0901571214,-0.143668294,-1.06557083,0.0190372542,0.760447681 +-0.672809422,3.83651257,0.672809362,0.0016474647,0.167792931,0.0798872635,0.080986768,-0.537371278,0.0190956891,0.952077985 +0.273653477,3.83682156,-0.273653477,6.60735459e-05,0.140679628,0.0665564165,-1.49240065,-0.730026066,0.0189973917,0.387327433 +-0.617008567,3.83743429,0.617008567,0.00121170958,0.164611518,0.0841394216,0.16167663,-0.725587606,0.0190761033,0.872798979 +0.435292363,3.83776617,-0.435292363,0.000860495784,0.153163761,0.0777646601,-0.72809726,-1.16082859,0.0189417955,0.616584718 +-0.883557856,3.83789039,0.883557856,0.00422650715,0.156470418,0.0736272931,0.335635364,-0.331132025,0.0191149507,1.2498225 +-0.319893241,3.83804774,0.319893211,0.00042352255,0.147427961,0.0839414448,-1.80066514,-0.848476827,0.0189506486,0.452687562 +0.278845012,3.83842039,-0.278845012,0.000464626821,0.14070411,0.0666118488,-1.47629333,-0.749365449,0.0189959947,0.394478381 +0.19513014,3.83872724,-0.195130125,0.000284511741,0.144175246,0.0664016381,-1.57447696,-0.468171537,0.0189870615,0.276665658 +0.649137855,3.83899379,-0.649137914,0.00123163499,0.171346724,0.0840520039,0.123734832,-0.540477395,0.0190454032,0.918304443 +0.177948415,3.83922291,-0.177948415,0.000222084418,0.145299301,0.0665251091,-1.58729172,-0.410016418,0.0189840738,0.251694411 +-0.140757605,3.83967638,0.140757605,0.000250449637,0.149479002,0.0655660331,-1.76909935,-0.128497496,0.0189802479,0.199504912 +-1.13493907,3.84002304,1.13493907,0.000903838198,0.115279771,0.05141728,0.0180431176,-0.103271201,0.0191231817,1.60520661 +-0.547791302,3.84028578,0.547791302,0.000991852721,0.161917746,0.0864458755,-0.0874402523,-0.999188662,0.0190458652,0.774793684 +-0.736766338,3.84053898,0.736766338,0.0042773895,0.165826857,0.0786094517,0.192013413,-0.480784118,0.0191016626,1.04311168 +0.48062256,3.8406024,-0.48062259,0.000904870569,0.156192213,0.0795465782,-0.405720055,-1.07344282,0.0189523883,0.679715574 +-0.603316069,3.84129524,0.603316069,0.000223891722,0.163863614,0.0838899165,0.12885946,-0.771569371,0.0190686919,0.853734434 +0.636347175,3.84209394,-0.636347175,0.000724492711,0.166131675,0.0822785422,0.201864436,-0.623914838,0.0190358832,0.899999976 +0.264021873,3.8428936,-0.264021873,0.000460685929,0.141172394,0.0664088652,-1.48312521,-0.69051832,0.0189961568,0.373431742 +0.132808328,3.84318113,-0.132808328,0.000275245722,0.149478093,0.0664926171,-1.61639571,-0.259884953,0.0189749245,0.188754007 +-0.885586083,3.84330678,0.885586083,0.000104175728,0.156253889,0.0735121667,0.332486778,-0.329036266,0.0191112421,1.25274348 +-0.126158565,3.84332705,0.12615858,0.000376460142,0.151018947,0.0654701591,-1.73279631,-0.098586157,0.0189868975,0.179186672 +0.503406584,3.84356856,-0.503406584,0.000652777904,0.157321587,0.0794306323,-0.275979936,-1.01499808,0.0189653933,0.711925983 +-0.29875502,3.84396219,0.29875505,0.000820597517,0.146844417,0.0807247013,-1.80024636,-0.740642071,0.0189507697,0.422603011 +0.988582432,3.84407091,-0.988582373,0.00266625546,0.152833879,0.0720597506,0.276335061,-0.183256388,0.0190885197,1.39903641 +-0.376256853,3.84431362,0.376256853,0.000810387835,0.152597979,0.0910760686,-1.4889679,-1.12368751,0.0189532265,0.532211006 +-0.922271192,3.84456396,0.922271132,0.00127287605,0.152811944,0.0716957897,0.315746278,-0.274050355,0.0191125497,1.30430937 +-0.985552073,3.84465265,0.985552073,0.000506313518,0.146528453,0.0684169531,0.282200575,-0.177394286,0.0191166401,1.39401197 +0.398239553,3.84499931,-0.398239583,0.000250264071,0.147678345,0.0731712431,-0.985167801,-1.14591539,0.0189408511,0.563421786 +-0.889062047,3.84508467,0.889062047,0.00175861048,0.15598464,0.0733670071,0.329848558,-0.324143618,0.0191101264,1.2575388 +-0.232819289,3.84560537,0.232819289,0.000338158105,0.145348758,0.0712223575,-1.83142889,-0.424660206,0.0189506933,0.329323441 +-1.06070352,3.84578013,1.06070352,0.0024101364,0.125439167,0.0571135022,0.10068614,-0.0480728969,0.0191174578,1.50042295 +0.27411294,3.84582853,-0.27411297,0.000375234173,0.141022936,0.0665763393,-1.45732963,-0.725196242,0.0189951397,0.387822449 +0.16015774,3.84600902,-0.16015774,0.000369709742,0.146897957,0.0659827739,-1.58700562,-0.354034454,0.0189750642,0.226688787 +-0.365177125,3.84629011,0.365177155,0.000906059286,0.150970817,0.0887429938,-1.56082189,-1.07334948,0.0189519245,0.516633809 +-0.695849299,3.84656501,0.695849299,0.00245087035,0.166835412,0.0791311115,0.120184198,-0.519259453,0.0190940928,0.984761298 +-0.540215433,3.84661436,0.540215373,0.000339726772,0.161133677,0.0862034336,-0.141294107,-1.03086042,0.019039074,0.764166653 +0.340054095,3.84675407,-0.340054065,0.000613001117,0.14195779,0.0684207529,-1.29535306,-0.979727507,0.0189667735,0.480981231 +-0.544454634,3.8467772,0.544454634,6.7931076e-05,0.161236167,0.0857762918,-0.115570687,-1.01238739,0.0190422889,0.770174146 +0.404434949,3.84695125,-0.404434949,0.00105034851,0.148122624,0.073452577,-0.937083006,-1.14716673,0.0189401321,0.5720402 +0.24953489,3.8472755,-0.24953489,0.00027562544,0.141825452,0.0664602295,-1.48252738,-0.637567043,0.0189961158,0.353283226 +-1.09980071,3.84748936,1.09980071,0.00112725387,0.113027647,0.0501214378,-0.00460728072,-0.055107221,0.0191163588,1.55552232 +-0.236385643,3.84761405,0.236385643,0.000405733852,0.145233184,0.071378924,-1.82157218,-0.442646652,0.0189499836,0.334373087 +0.396330476,3.84782577,-0.396330476,0.000431698078,0.147006899,0.0725579783,-0.988409042,-1.14119208,0.0189403966,0.560751259 +-0.235216945,3.84782982,0.235216945,0.000113977381,0.145300537,0.071141392,-1.81943655,-0.438001126,0.0189497992,0.332793027 +-0.192195535,3.84820652,0.192195535,0.000302446453,0.147122622,0.0689420998,-1.80991304,-0.280317843,0.0189576373,0.272140324 +-0.876922429,3.84822965,0.876922429,0.00326067256,0.15682219,0.0738016292,0.322817624,-0.337634206,0.0191069841,1.24030507 +0.34942323,3.84832454,-0.34942323,0.000625935616,0.143063396,0.0692960173,-1.24396384,-1.01809454,0.0189603977,0.494199485 +0.576389015,3.84842396,-0.576389074,0.000911324052,0.161440909,0.079912588,0.0500910245,-0.789140761,0.019004887,0.815687537 +0.109908961,3.8488884,-0.109908961,0.000174917703,0.151308641,0.0675565451,-1.61035383,-0.170104191,0.0189721528,0.155544028 +0.0939962342,3.84905481,-0.0939962268,0.000233313869,0.149591878,0.0701899603,-1.61166,-0.102921925,0.0189702716,0.133029386 +0.0720695034,3.84906006,-0.0720695108,7.91488055e-05,0.249685988,0.182861954,-1.48990035,0.0240416527,0.0189630706,0.101999998 +0.0817054212,3.84909272,-0.0817054212,0.000180364383,0.153187633,0.0818103999,-1.59003711,-0.0290928166,0.0189661812,0.115636915 +-0.235218838,3.8491509,0.235218838,2.21254959e-05,0.145315349,0.0708066821,-1.81062281,-0.438715667,0.0189505573,0.332806557 +-0.980246365,3.84916449,0.980246365,0.00124510704,0.147439614,0.0688720047,0.286905199,-0.18669422,0.0191127118,1.3866955 +-0.233486846,3.84922385,0.233486831,0.000485538883,0.145348802,0.0706581697,-1.81025374,-0.431686074,0.0189510155,0.330296814 +0.199573502,3.84928703,-0.199573502,0.00036852574,0.144004643,0.0659844354,-1.53883135,-0.479107201,0.0189836454,0.28253001 +0.524255753,3.84930182,-0.524255753,0.000846156094,0.157859161,0.0789954737,-0.156144008,-0.958149254,0.0189777985,0.741423309 +-0.0720742047,3.84932995,0.0720742047,7.96336535e-05,0.255074263,0.186508372,-1.53933179,0.0498616248,0.0190056879,0.101999998 +-0.0817361847,3.8493309,0.0817361847,0.000181528594,0.152784884,0.0806137174,-1.63934851,0.0137700625,0.0190032106,0.115673602 +-0.0940992832,3.84933829,0.0940992832,0.000234354025,0.149547264,0.0684000626,-1.67174006,-0.0317417234,0.0189990979,0.133170739 +-0.11014919,3.8493464,0.110149182,0.000162833792,0.152242243,0.0661470145,-1.69159496,-0.0642955527,0.018992072,0.155887142 +1.11587596,3.84946609,-1.11587596,0.00111209811,0.117321581,0.0522445329,0.00131083466,-0.0923887566,0.0190910809,1.5782485 +0.112613291,3.8497467,-0.112613298,0.000177431895,0.151206359,0.0674287751,-1.60705578,-0.180314988,0.0189717915,0.159320503 +0.916534603,3.8499198,-0.916534543,0.00407662708,0.163396209,0.0774962083,0.33412987,-0.288980186,0.0190781988,1.29857588 +-0.112076953,3.85008144,0.112076953,0.000121440011,0.152216181,0.0660670921,-1.6918478,-0.0688945949,0.0189911798,0.158573568 +-0.149187416,3.85032511,0.149187416,0.000263361144,0.149458244,0.0651022568,-1.73790932,-0.161591977,0.0189744178,0.211378843 +-0.239996701,3.85051274,0.239996701,0.000610029907,0.145430371,0.0713026673,-1.80196917,-0.458168656,0.0189505629,0.339435697 +-1.14806414,3.85077,1.14806414,0.000853488804,0.121922374,0.0549147949,0.033025451,-0.0969328955,0.0191148892,1.62380433 +0.109909706,3.85079432,-0.109909713,2.54635106e-05,0.151440397,0.0675359517,-1.60615838,-0.169169769,0.0189710911,0.155656949 +-0.439059556,3.85096359,0.439059526,0.00115635595,0.157550514,0.0936256424,-0.967786551,-1.2677393,0.0189746171,0.621027887 +0.0939729363,3.85105181,-0.0939729363,4.13520938e-05,0.149708882,0.0701752603,-1.60754955,-0.101902626,0.0189690944,0.13309896 +0.0720111281,3.85112357,-0.0720111281,1.46411494e-05,0.249838471,0.182701468,-1.48699236,0.0248697512,0.0189617127,0.102000006 +0.0816628709,3.85113335,-0.0816628709,3.29680333e-05,0.153175384,0.0817384645,-1.58638036,-0.0282288827,0.0189649034,0.115668848 +-0.543578327,3.85127115,0.543578327,0.000374889991,0.160822913,0.0853481516,-0.125585556,-1.01221263,0.0190412626,0.768933952 +-0.0816719979,3.85132456,0.0816719979,3.16465994e-05,0.152849719,0.0806563869,-1.63383603,0.0134084355,0.0190024152,0.115669109 +-0.072020337,3.8513267,0.0720203444,1.38774631e-05,0.254931509,0.186289027,-1.53450882,0.0499549694,0.0190048274,0.101999998 +-0.0940211564,3.85134959,0.0940211639,4.11913934e-05,0.149679139,0.0684512407,-1.66547251,-0.0328123346,0.0189982727,0.133160576 +-0.110051215,3.851403,0.110051222,2.55646064e-05,0.152366817,0.0661405846,-1.68441415,-0.0661649555,0.0189912599,0.155868873 +0.399227858,3.85165429,-0.399227858,0.000169469989,0.147004679,0.0725867227,-0.963986039,-1.1426363,0.0189387109,0.564835668 +0.111133792,3.8520236,-0.111133792,5.69288895e-05,0.151422575,0.0674809292,-1.60208833,-0.173307687,0.0189707018,0.157294214 +-0.360512525,3.85226107,0.360512525,0.000422610494,0.150276095,0.0859357715,-1.54327738,-1.0364064,0.0189550929,0.510107398 +0.558883488,3.85228491,-0.558883488,0.00114406936,0.160092667,0.079598166,-0.00818467513,-0.846773446,0.0189956538,0.791424751 +0.146330103,3.85233879,-0.146330118,0.000228829493,0.148198098,0.0660905838,-1.57978988,-0.304805815,0.0189706367,0.207255006 +0.160763681,3.85261393,-0.160763666,0.000229154495,0.147037879,0.0657293871,-1.57076466,-0.352266371,0.0189719722,0.227582037 +0.522340953,3.85267282,-0.522340953,2.91396354e-05,0.15743205,0.0785933807,-0.168443412,-0.966646194,0.0189766549,0.738767862 +-0.184275404,3.85271716,0.184275404,0.000298821018,0.147291094,0.0662864223,-1.76876259,-0.260643095,0.0189613849,0.261009663 +-0.487076819,3.85282707,0.487076789,0.000781384704,0.159381434,0.0890813842,-0.541031539,-1.2057898,0.0190038066,0.688840508 +0.110013925,3.85284853,-0.110013925,0.000198473703,0.151551872,0.0675629154,-1.60042655,-0.168372631,0.0189703684,0.15568614 +0.524324417,3.85317564,-0.524324417,0.000433492998,0.157510772,0.0785811171,-0.160594344,-0.960813522,0.01897767,0.741528332 +0.0940567851,3.85321212,-0.0940567851,0.000234513078,0.149846375,0.0702239424,-1.60167646,-0.100855671,0.0189682059,0.133109957 +0.251843691,3.85331774,-0.251843691,0.000128976768,0.141879767,0.066257529,-1.4608438,-0.642546713,0.0189932883,0.356542975 +0.0817328021,3.85334659,-0.0817328021,0.000181594412,0.153205693,0.0817242116,-1.58128107,-0.0264584236,0.0189638697,0.115671329 +0.0720720515,3.85336328,-0.0720720589,7.97526372e-05,0.249272257,0.182020843,-1.48353052,0.027408801,0.0189605709,0.102000006 +-0.0817330629,3.85339284,0.0817330703,0.000181179319,0.1529084,0.0806857124,-1.62832701,0.0145787904,0.019001618,0.115665883 +-0.0720762834,3.85339713,0.0720762834,7.94573207e-05,0.254277527,0.185624018,-1.53043616,0.0520544909,0.0190039724,0.102000006 +-0.094091326,3.8534348,0.094091326,0.00023371834,0.149823099,0.0685246214,-1.65895069,-0.0326871648,0.0189974941,0.133155689 +-0.110137165,3.85352516,0.110137165,0.00017670721,0.152485624,0.0661655366,-1.6772697,-0.0670372769,0.0189904924,0.155865654 +0.138729021,3.853549,-0.138729021,0.000215904554,0.148986399,0.0660754442,-1.58418655,-0.276619196,0.0189702101,0.19644016 +0.244734794,3.85388637,-0.244734794,0.00035584977,0.142165944,0.0661699176,-1.46896565,-0.619208276,0.0189921223,0.346347749 +0.521969855,3.85397482,-0.521969855,0.000486503995,0.157252178,0.0784611106,-0.171172038,-0.968238354,0.0189761799,0.738229513 +0.668507457,3.85399032,-0.668507457,0.00113139756,0.171516642,0.0824631006,0.141371906,-0.516888022,0.0190477446,0.946390033 +0.225237042,3.85408401,-0.225237042,0.00088474591,0.14281255,0.0660256967,-1.49425149,-0.558220148,0.0189886224,0.319576085 +0.394567758,3.85423613,-0.394567758,0.000894148252,0.146640256,0.0722299814,-0.976238906,-1.12799263,0.0189393722,0.558146954 +1.08916688,3.85430098,-1.08916688,0.0011094542,0.121337384,0.0544040389,0.00433642231,-0.0806450546,0.0190882478,1.54043698 +-0.485115469,3.8544271,0.485115469,0.000357991637,0.159193367,0.0888315588,-0.559927881,-1.20937884,0.0190020092,0.686079323 +-0.409674376,3.85496998,0.409674346,0.00118197442,0.156019926,0.0949114859,-1.22928941,-1.20243073,0.0189562067,0.579778075 +0.523470104,3.85512781,-0.523470104,0.000516976754,0.157288387,0.0784435347,-0.165642902,-0.96429956,0.0189769566,0.740320325 +0.369787484,3.85514784,-0.369787484,0.00055307569,0.144437432,0.0702810585,-1.1005981,-1.06058276,0.0189516321,0.522976041 +-0.485646456,3.85523844,0.485646486,0.000154595138,0.1590949,0.0883987471,-0.55531764,-1.20494926,0.0190028828,0.686837614 +-0.484928936,3.85534906,0.484928906,3.17019681e-06,0.159055755,0.0884461626,-0.561183929,-1.20675051,0.0190023072,0.685836792 +0.168973207,3.85549355,-0.168973207,0.00022914524,0.146429598,0.0656184554,-1.55469954,-0.378508508,0.0189717729,0.239014342 +-0.208326668,3.85586166,0.208326653,0.000683052349,0.145959198,0.0677633062,-1.76390994,-0.346140951,0.0189540889,0.295822114 +-0.113378689,3.85587549,0.113378689,0.000118732336,0.152503729,0.0659691095,-1.67200518,-0.0773886666,0.0189887527,0.160382107 +-0.484793276,3.85603213,0.484793276,0.000198760259,0.158996001,0.0882977471,-0.561258137,-1.20470786,0.0190024879,0.685639203 +-0.478124857,3.85625172,0.478124887,0.000649678288,0.158667326,0.0884947553,-0.619092345,-1.20925212,0.0189987682,0.676174998 +-0.1369351,3.85644674,0.1369351,0.000219108973,0.150958836,0.0648707151,-1.69493866,-0.140282139,0.0189795196,0.194360599 +0.127393246,3.85668421,-0.127393246,0.000201435265,0.150637701,0.0667514578,-1.58144093,-0.23454681,0.0189694762,0.180574894 +-0.535124362,3.85701799,0.535124362,0.00105031615,0.160169303,0.0849017948,-0.180114448,-1.02804577,0.0190354194,0.756866455 +0.836224794,3.8570385,-0.836224854,0.00281057041,0.167275921,0.0789886415,0.312102944,-0.375434369,0.0190705713,1.18315661 +-0.485852331,3.85704446,0.485852361,0.00092508021,0.158954307,0.0881216004,-0.553792715,-1.20064259,0.0190029666,0.687112927 +-0.319250286,3.85721445,0.319250286,0.00104791985,0.148450226,0.081746839,-1.68262398,-0.818836451,0.0189518463,0.451582909 +-0.431988239,3.85722232,0.431988269,0.000307017413,0.15642935,0.0905081406,-1.02552736,-1.24246049,0.0189748108,0.611119449 +1.0399586,3.85753417,-1.03995872,0.00121566211,0.136033416,0.0626895204,0.137462512,-0.0991313756,0.0190843903,1.47112048 +-0.553616941,3.85763741,0.553616941,0.00117685064,0.160969347,0.0848210305,-0.091893591,-0.971398711,0.0190429557,0.783003628 +0.436641335,3.85789061,-0.436641335,0.0016220056,0.150628015,0.0754217729,-0.700100899,-1.14961934,0.0189446192,0.618405819 +0.812909067,3.85843992,-0.812909126,0.00250764959,0.167584509,0.0791423097,0.285215437,-0.393264294,0.0190662071,1.14994013 +0.178335965,3.8588171,-0.178335965,0.000227899451,0.145765677,0.0655383095,-1.53859711,-0.406617254,0.0189719684,0.252492636 +0.210052401,3.85910869,-0.210052401,0.000459755451,0.143542007,0.0656629354,-1.49671888,-0.508152246,0.0189818274,0.297518313 +-0.271829188,3.85912919,0.271829188,0.000631655043,0.146075785,0.0742459148,-1.7372601,-0.598911881,0.0189501401,0.385081768 +0.3379412,3.85941648,-0.3379412,0.000691071386,0.141841456,0.0679071397,-1.24028051,-0.961922407,0.0189660043,0.478024483 +-0.161498502,3.85962343,0.161498502,0.000109556495,0.149130076,0.0649382025,-1.71207392,-0.203906029,0.0189702343,0.228539392 +0.343485743,3.8598876,-0.343485743,6.91495588e-05,0.141974404,0.0681198314,-1.22098231,-0.984372914,0.018963214,0.486039519 +-0.366729647,3.86056185,0.366729647,0.000923558255,0.150909394,0.0855100751,-1.46861756,-1.04271221,0.0189578999,0.51878947 +1.18258882,3.8606596,-1.18258882,0.00187468994,0.133064538,0.0617701672,0.013568026,-0.0763244852,0.0190809723,1.67271531 +1.20769191,3.86073923,-1.20769191,0.00123097876,0.134067819,0.0625852421,-0.162216693,-0.0341958553,0.0190808363,1.70822287 +1.22861123,3.86080551,-1.22861123,0.00055845629,0.114985675,0.0527402945,-0.312364787,-0.0194343422,0.0190812666,1.73781252 +-0.166458219,3.86151743,0.166458219,0.000273352896,0.148902595,0.0651658773,-1.71098495,-0.219918787,0.0189683773,0.235586479 +0.183607012,3.86152458,-0.183607012,0.00022667236,0.145408541,0.0654408783,-1.52423155,-0.422899246,0.0189724974,0.259777963 +-0.237615317,3.86208439,0.237615317,0.00049086631,0.146375746,0.0701412186,-1.74340534,-0.451219201,0.0189494118,0.336053073 +0.146477789,3.86212826,-0.146477789,0.000318779203,0.1484662,0.0657159537,-1.55615306,-0.299709558,0.0189659819,0.207522243 +0.713229656,3.86229229,-0.713229716,0.00352559797,0.17052269,0.0808774605,0.188848436,-0.473896086,0.0190566722,1.0091995 +0.25687024,3.86235738,-0.25687024,0.000474180764,0.142137244,0.0664276704,-1.42326856,-0.65253675,0.018990133,0.363512695 +0.175760522,3.86243916,-0.175760522,5.56115046e-05,0.146048769,0.0654199049,-1.53019714,-0.398109257,0.0189691316,0.248895511 +0.139585763,3.86249995,-0.139585748,0.000190326391,0.149233952,0.06594152,-1.56125426,-0.274283558,0.0189659875,0.197929218 +-0.190727383,3.86257601,0.190727383,0.000484597986,0.147300571,0.0659689158,-1.72519088,-0.293248028,0.018959593,0.2702052 +0.636202812,3.86287737,-0.636202812,0.000384972984,0.1704427,0.0832415894,0.0827807114,-0.559982419,0.0190341864,0.899923801 +-0.636158824,3.86296248,0.636158824,0.000595680147,0.165860057,0.0795975104,-0.00677079894,-0.560954154,0.0190724619,0.899875522 +-1.15944111,3.86318541,1.15944111,0.00117708626,0.131330892,0.0603741333,0.0149732167,-0.0682372898,0.0191050153,1.63993144 +-0.977645755,3.86327004,0.977645755,0.00176143681,0.147549048,0.0688631684,0.269637734,-0.189040884,0.0191018246,1.38271511 +0.342635959,3.86337471,-0.34263593,0.000204144919,0.142023906,0.0680587515,-1.20844543,-0.977045417,0.0189633891,0.484862864 +1.05793524,3.86369991,-1.05793524,0.00127222785,0.135065958,0.0621628501,0.0970754325,-0.080303818,0.0190812629,1.49636865 +-0.184363261,3.86380506,0.184363261,0.000135014168,0.147592813,0.0652294606,-1.71433127,-0.275689065,0.0189621039,0.261334896 +-0.885849237,3.86391807,0.885849237,0.00290173013,0.156391919,0.073559463,0.313271046,-0.324699998,0.0190951824,1.25285387 +0.201510563,3.86397076,-0.201510578,0.000463844335,0.144013792,0.0653844625,-1.49624169,-0.479233503,0.0189768299,0.285507619 +-0.599018455,3.86407757,0.599018455,0.00159446313,0.16244249,0.0827478617,0.0862627253,-0.780680656,0.0190593246,0.847324252 +-0.434295356,3.86477995,0.434295356,0.0003812348,0.155978501,0.0885352567,-0.9795506,-1.21751654,0.0189762656,0.614524901 +-0.143062234,3.86478138,0.143062234,0.000357988378,0.151054949,0.0645575076,-1.67023611,-0.163938642,0.0189751666,0.203024849 +-0.16351229,3.86529589,0.16351229,3.76880926e-05,0.149328753,0.0646758378,-1.68994522,-0.21747084,0.0189683046,0.231578514 +1.14740455,3.86555362,-1.14740455,0.00098984607,0.128090948,0.0584774092,0.0198789369,-0.0804884136,0.0190791748,1.62281883 +-0.15938817,3.86560631,0.15938817,0.000255679101,0.149715215,0.0646487698,-1.68467247,-0.206066325,0.0189695768,0.225531846 +-0.170262083,3.86609507,0.170262083,0.000277704763,0.148902684,0.0648589954,-1.69352198,-0.235774517,0.0189666245,0.240855649 +0.34622708,3.86629939,-0.34622708,0.000768725411,0.142056689,0.0681747571,-1.18553615,-0.985514104,0.0189619809,0.489741981 +-1.08881688,3.8666327,1.08881688,0.000760763884,0.125699475,0.0569942184,0.0450904518,-0.037838392,0.0191008355,1.54015493 +-0.126441538,3.86712408,0.126441538,0.000238044566,0.152479798,0.06528496,-1.64551437,-0.120620951,0.0189792458,0.179239213 +-0.350174189,3.86720657,0.350174218,0.000759832037,0.150572926,0.08335419,-1.49188888,-0.963048398,0.0189551767,0.495305598 +-0.267796218,3.86762142,0.267796189,0.000597942155,0.146521896,0.0732543319,-1.69743288,-0.581616223,0.018946724,0.379460752 +0.172845751,3.86831594,-0.172845766,0.00027351157,0.14668569,0.0656213313,-1.51657152,-0.386545867,0.0189662501,0.244718522 +-0.429112434,3.86852002,0.429112405,0.000815364881,0.155554622,0.0876889229,-1.00491321,-1.19273901,0.0189751983,0.606992126 +0.847124755,3.86916876,-0.847124755,0.00278853369,0.166355044,0.0785011351,0.309853882,-0.367620468,0.0190642402,1.19866621 +0.124895334,3.87019968,-0.124895334,0.000296007813,0.151521295,0.0667772815,-1.54853785,-0.217577547,0.0189633444,0.177483648 +0.177836031,3.8710978,-0.177836031,0.000331269286,0.146327674,0.065512605,-1.50412059,-0.400751084,0.0189660173,0.251650393 +0.249084979,3.8713994,-0.249084994,0.000412094203,0.142641932,0.066264838,-1.40885162,-0.622868359,0.0189860053,0.352362424 +0.29263109,3.87148237,-0.292631119,0.000870908378,0.141857907,0.06708166,-1.33410299,-0.783468366,0.0189827103,0.41455853 +0.118273422,3.87178898,-0.118273422,0.00028703906,0.15208973,0.0672289878,-1.54730582,-0.190298647,0.0189626981,0.167925134 +1.12822306,3.87234926,-1.12822306,0.00144510961,0.126012027,0.0569495149,0.0205508489,-0.0764065534,0.0190747268,1.59572768 +-0.163810879,3.87300682,0.163810894,0.000352145755,0.149999589,0.0646403208,-1.66086864,-0.226343706,0.0189663991,0.2317871 +-0.130444169,3.87303233,0.130444169,0.000182080665,0.152573884,0.0650733635,-1.62767375,-0.136462122,0.01897626,0.184893996 +0.553141356,3.87305832,-0.553141356,0.000861307606,0.15778029,0.0777818561,-0.0512577519,-0.875672102,0.0189924352,0.782960176 +-0.636233926,3.87317681,0.636233926,0.000701884972,0.163730234,0.0834443569,0.16769965,-0.660082102,0.0190662388,0.899999976 +-0.67479682,3.87359333,0.67479682,0.0020163341,0.166418985,0.078792572,0.0647917986,-0.540403724,0.0190738086,0.955519676 +0.109343469,3.87440872,-0.109343469,0.000328398892,0.15263705,0.067778796,-1.54454231,-0.154258713,0.0189604275,0.155967519 +0.0933847427,3.8745079,-0.0933847427,0.000420678232,0.151103005,0.0705730617,-1.54726756,-0.0858674645,0.0189573709,0.133203089 +0.0715092048,3.87451267,-0.0715091974,0.000142157805,0.243709117,0.175554067,-1.45378006,0.0532125458,0.0189475808,0.102000006 +0.0811038166,3.87451506,-0.0811038166,0.000324515539,0.153508544,0.0815326199,-1.53545117,-0.00658581313,0.0189521126,0.115685582 +-0.122135431,3.87457037,0.122135431,0.000226687494,0.153146565,0.0655476674,-1.61390615,-0.115728185,0.0189794395,0.173262909 +0.683281064,3.87457371,-0.683281064,0.00166097435,0.171118155,0.0816949606,0.149729848,-0.505550146,0.0190431681,0.966691494 +-0.0810670257,3.87465477,0.0810670257,0.000322624808,0.153544262,0.0811130255,-1.56852865,0.0235660262,0.0189929213,0.115628436 +-0.071512185,3.87465572,0.071512185,0.000141303201,0.247485936,0.178773135,-1.48539746,0.0711493194,0.0189942215,0.101999998 +-0.109235644,3.87466526,0.109235644,0.000385696301,0.153529048,0.0664425492,-1.60127425,-0.0824762136,0.0189828314,0.155809969 +-0.0933121815,3.87467265,0.0933121741,0.000416881579,0.151334137,0.0694522411,-1.5888598,-0.0366033092,0.0189891607,0.133095041 +-1.06356597,3.87572217,1.06356597,0.00115119503,0.132907569,0.0607913882,0.0739571601,-0.0439860485,0.0190939512,1.50430584 +-1.13276625,3.87640285,1.13276625,0.00114073115,0.127175212,0.0575310998,0.029483268,-0.053428296,0.0190935861,1.60214448 +-0.991537333,3.87676287,0.991537392,0.00110704242,0.145891711,0.0678826645,0.22448349,-0.156560212,0.0190924238,1.40228426 +-1.10960877,3.87706923,1.10960877,0.00138719485,0.126275942,0.0571387298,0.0219092444,-0.0372552052,0.0190925747,1.56940675 +0.832341075,3.87747526,-0.832341075,0.00166993507,0.166760266,0.0785982087,0.295362949,-0.382591963,0.0190571211,1.17804146 +0.970633864,3.87802029,-0.970633864,0.00238220673,0.155571848,0.0733774975,0.263047189,-0.20836705,0.0190649778,1.37350893 +1.00139761,3.87812328,-1.00139761,0.0017545044,0.151093051,0.0709212124,0.212397397,-0.158151865,0.0190683454,1.41693902 +-1.22870874,3.87830305,1.22870862,0.000358394784,0.134176597,0.0647819787,-0.388917208,-0.0142374961,0.0190938916,1.73772967 +-1.21225703,3.8783946,1.21225703,0.000791399507,0.155588001,0.0746664554,-0.257214606,-0.0167470202,0.0190937594,1.71446228 +-1.19251788,3.87850571,1.19251788,0.00110279722,0.152965128,0.0729845911,-0.0649719462,-0.0411517695,0.0190935992,1.68654561 +0.841170132,3.87856746,-0.841170073,0.000173439141,0.166451737,0.0784724355,0.300269991,-0.373714477,0.019057652,1.19061852 +-1.14779139,3.87886786,1.14779139,0.000363513391,0.130481288,0.059318196,0.0342016257,-0.0596286096,0.0190920141,1.62359869 +-0.12750864,3.87902975,0.12750864,0.000189406317,0.153291643,0.0653546304,-1.60239029,-0.135143042,0.0189761557,0.180990547 +-0.276611775,3.87966514,0.276611805,0.000647226581,0.147901669,0.0733177289,-1.61927831,-0.609554768,0.0189488884,0.391347587 +-0.185307056,3.8805294,0.185307056,0.000462043477,0.149093911,0.0649398938,-1.6454531,-0.294588149,0.0189604759,0.26223731 +-0.446631461,3.88080597,0.446631461,0.00064882962,0.156073198,0.0854002908,-0.841663957,-1.15760434,0.018986823,0.631657481 +-0.777750552,3.88096356,0.777750552,0.00465541799,0.16309613,0.0770244226,0.223062128,-0.436983138,0.0190778002,1.10142851 +1.10163403,3.88127041,-1.10163403,0.00132693257,0.130584747,0.0594381057,0.0224264301,-0.0703512207,0.0190695096,1.55805063 +0.155221999,3.88179755,-0.155221999,0.000510406797,0.14892295,0.0659322664,-1.49865818,-0.322764099,0.0189573802,0.220710441 +0.313706249,3.88252282,-0.313706249,0.000884523673,0.142094642,0.067324087,-1.22698927,-0.840776503,0.0189734343,0.443911016 +0.137233377,3.88362527,-0.137233377,0.000194496228,0.151251704,0.066732958,-1.50555134,-0.251484126,0.0189585984,0.194163769 +-0.652038932,3.88391638,0.652038932,0.00120627845,0.164943069,0.0783603117,0.00669211708,-0.555488527,0.0190617833,0.922458053 +-0.150097817,3.88395834,0.150097817,0.000189961051,0.152085394,0.0650637522,-1.60803926,-0.197681367,0.0189675502,0.212298065 +0.241000459,3.88569403,-0.241000459,0.000509342528,0.143412158,0.0662515312,-1.37523985,-0.589527786,0.0189789701,0.341295481 +0.590603292,3.88618183,-0.590603232,0.000919710728,0.160273135,0.0789056718,0.0545516983,-0.779515147,0.0190097857,0.83538121 +-1.22867262,3.88664365,1.22867262,0.000105674219,0.134827137,0.0652878135,-0.39863348,-0.0136656659,0.0190872513,1.73771834 +-1.21267498,3.88674736,1.21267498,0.000231871309,0.157976002,0.075851053,-0.26818496,-0.014310061,0.0190871153,1.71509242 +-1.19347703,3.88687205,1.19347715,0.00018789446,0.157236993,0.0753111839,-0.0722430795,-0.0333167203,0.019086957,1.68794036 +0.189618304,3.88757324,-0.189618304,0.000416762632,0.146083459,0.0655768663,-1.44390368,-0.432100713,0.018961573,0.268821269 +0.643195391,3.88791561,-0.643195391,0.000693656853,0.170046359,0.081578888,0.0722575337,-0.553638458,0.0190294404,0.910280108 +-0.286536425,3.88807607,0.286536396,0.000650087022,0.148833841,0.0742333606,-1.56007159,-0.656066477,0.0189468618,0.405777484 +1.17579484,3.88828301,-1.17579484,0.000647025183,0.137845054,0.0633205324,0.0158881918,-0.0404629894,0.0190616362,1.66290879 +0.58251518,3.88907671,-0.582515121,0.000730193686,0.159497693,0.0784735903,0.0259285942,-0.80512917,0.0190045461,0.82392168 +0.937904,3.88973188,-0.937903941,0.00289786444,0.160593092,0.0759624317,0.284567535,-0.255622804,0.0190560091,1.3276 +0.130887508,3.89014959,-0.130887508,0.000250727695,0.152505308,0.0671980977,-1.49142945,-0.224782839,0.0189563334,0.185252786 +0.763918042,3.89080238,-0.763918102,0.00373096368,0.168110445,0.0791728571,0.230368808,-0.426011145,0.0190468598,1.0808053 +-1.08551025,3.89110661,1.08551025,0.00107671111,0.13287206,0.0605721585,0.0312369633,-0.0360950306,0.0190816764,1.53532434 +-1.02091813,3.89123273,1.02091813,0.00193364476,0.138584659,0.0638660789,0.134078369,-0.0991354212,0.0190819297,1.44388831 +-0.813831151,3.8919065,0.813831151,0.00606178585,0.16119507,0.0760127306,0.253345221,-0.399731517,0.0190708805,1.15219319 +-0.11444594,3.89220691,0.114445947,0.000162038472,0.154491365,0.0669021383,-1.54618871,-0.100648567,0.0189764127,0.161906138 +0.21448268,3.89252281,-0.214482665,0.000352127972,0.144623354,0.0656659678,-1.39584506,-0.507408381,0.0189693123,0.303443462 +-0.211176023,3.89295816,0.211176023,0.000756425317,0.148380011,0.0657835826,-1.60205734,-0.388077378,0.0189516246,0.298849434 +0.407321393,3.89359164,-0.407321393,0.000588390511,0.144971475,0.070635967,-0.796651363,-1.09976947,0.0189347416,0.576072156 +-0.139391512,3.89423704,0.139391512,0.000222980205,0.153888181,0.0652410612,-1.55924332,-0.179015219,0.0189682283,0.197293431 +1.16402757,3.894274,-1.16402757,0.000681268401,0.136940718,0.0624997988,0.016133897,-0.0353991501,0.01905757,1.64628887 +0.211440533,3.89460111,-0.211440533,0.000250912155,0.144804165,0.0655611604,-1.39470029,-0.496957302,0.0189673863,0.299162984 +1.07535458,3.89488602,-1.07535458,0.00184619916,0.137482554,0.0632792786,0.0310607795,-0.0641854033,0.0190610308,1.52095485 +0.13433817,3.89512682,-0.13433817,2.78019616e-05,0.152441382,0.067130737,-1.47698164,-0.234005496,0.0189541467,0.190358073 +-0.0720539317,3.89513159,0.0720539391,7.90441118e-05,0.22502476,0.158947632,-1.44449699,0.113390051,0.0189881064,0.101996459 +-0.0816681981,3.89515138,0.0816681981,0.000180955773,0.154846877,0.081292063,-1.51221955,0.0474409387,0.0189861227,0.11560519 +-0.110369742,3.89515662,0.110369742,0.000181246636,0.154797703,0.0673173741,-1.53220117,-0.0909287781,0.0189766474,0.156232879 +-0.0940862522,3.89516211,0.0940862522,0.000235202926,0.153836533,0.0709211901,-1.52448177,-0.0315469727,0.0189826638,0.133183002 +0.110487357,3.89517498,-0.110487357,0.000269580196,0.154545814,0.0689752325,-1.48420429,-0.146299109,0.0189539529,0.156396389 +0.0720579997,3.89519835,-0.0720579997,7.98188703e-05,0.222656161,0.156600162,-1.42011988,0.098661758,0.018939456,0.101999089 +0.0941598117,3.89520955,-0.0941598192,0.000237638553,0.153598145,0.0718707889,-1.48910379,-0.0727319792,0.0189502351,0.133283898 +0.0817058012,3.89521098,-0.0817058012,0.000182663978,0.15490073,0.0814938694,-1.48471797,0.0218688156,0.0189445373,0.115655214 +0.661668479,3.89595509,-0.661668479,0.00097423949,0.170098811,0.0811831132,0.0967239812,-0.535030007,0.0190304052,0.936004758 +-1.18168175,3.8961792,1.18168163,0.000414887618,0.152382359,0.0718129799,-0.0282065533,-0.0221354384,0.0190794021,1.6711601 +-1.22872198,3.89720368,1.22872198,0.000251073187,0.133849859,0.065631859,-0.407178938,-0.0126245776,0.0190790966,1.7377255 +-1.21430027,3.89721727,1.21430027,0.000553588849,0.158015445,0.0757002607,-0.287413448,-0.0119479829,0.019079037,1.7173295 +-1.19695377,3.89723158,1.19695377,0.000555135543,0.161601722,0.077715151,-0.0980618,-0.0256699584,0.01907897,1.69279695 +0.494784474,3.89794302,-0.494784504,0.000942496816,0.150020748,0.0736125782,-0.331314445,-1.04307604,0.0189617891,0.700154364 +0.508083224,3.89794302,-0.508083224,0.00049894728,0.151377887,0.0742638037,-0.272855133,-1.00761497,0.0189687293,0.718717456 +0.408424407,3.89794302,-0.408424437,0.00019102903,0.144489884,0.0702299103,-0.784275353,-1.09613681,0.0189345516,0.577633083 +0.448585868,3.89794302,-0.448585838,0.0014663412,0.14627488,0.0717574507,-0.576935351,-1.11711752,0.018943293,0.635347903 +0.541712046,3.89794302,-0.541712046,0.000866139075,0.154909298,0.0760277286,-0.117922507,-0.921842694,0.018983053,0.766789317 +0.481047988,3.89794302,-0.481047988,0.000716661569,0.148805767,0.0729910508,-0.403260946,-1.0641042,0.0189557318,0.680490851 +0.588556647,3.89794302,-0.588556647,6.88262298e-05,0.159435019,0.0783363432,0.0368852876,-0.7926687,0.0190071203,0.832623184 +0.598032594,3.89794302,-0.598032594,0.000801845221,0.160295725,0.078964062,0.0584928244,-0.768459439,0.0190112013,0.845869482 +0.578252673,3.89794302,-0.578252673,0.00018822946,0.158456311,0.0778370798,0.00155423023,-0.822098851,0.0190011114,0.817893982 +0.635866106,3.89794302,-0.635866165,0.000498032663,0.163863212,0.081563212,0.149616748,-0.660305798,0.0190269426,0.900000036 +0.30717662,3.89794302,-0.30717662,0.000217747729,0.142731562,0.0672954023,-1.18033063,-0.802862048,0.0189707279,0.434747577 +0.318177223,3.89794302,-0.318177223,0.000322075444,0.142588183,0.0675216913,-1.14913893,-0.843650699,0.0189693198,0.450740993 +0.362250149,3.89794302,-0.362250179,0.00114094361,0.142583519,0.0686709955,-1.00075984,-0.994697928,0.0189499613,0.513127863 +0.403152406,3.89794302,-0.403152406,0.000466742698,0.14425154,0.0700352266,-0.809827268,-1.09028411,0.0189342704,0.570201278 +0.405302703,3.89794302,-0.405302674,0.00010400929,0.144344479,0.070130609,-0.800637603,-1.095451,0.0189338718,0.573281109 +0.330047756,3.89794302,-0.330047727,0.00035707964,0.142556801,0.067869179,-1.11161947,-0.885078311,0.0189653169,0.467027158 +0.221275002,3.89794302,-0.221275002,0.000213615713,0.144578338,0.065794684,-1.3691088,-0.524923742,0.018968692,0.312981874 +0.24523887,3.89794302,-0.24523887,0.000171170177,0.143668786,0.0662892237,-1.32957602,-0.600332797,0.0189751163,0.347408772 +0.279007733,3.89794302,-0.279007733,0.00100213278,0.142971441,0.06699799,-1.26096177,-0.710475564,0.0189787615,0.395461023 +0.213122487,3.89794302,-0.213122472,1.61997941e-05,0.144853994,0.0655841082,-1.38344741,-0.499695241,0.0189664736,0.301646084 +0.255526364,3.89794302,-0.255526364,0.000271813973,0.143483996,0.0664544031,-1.30793166,-0.632748187,0.0189765915,0.361722469 +0.118622206,3.89794302,-0.118622214,9.64375067e-05,0.154104978,0.0685057938,-1.47367215,-0.174473763,0.0189531595,0.167788774 +0.11042057,3.89794302,-0.110420577,2.12913365e-05,0.154792234,0.0690981224,-1.47666574,-0.144705281,0.0189527664,0.156460315 +0.157883689,3.89794302,-0.157883689,0.000263325172,0.1503122,0.0662682876,-1.45295799,-0.318554997,0.0189510509,0.224021241 +0.133082762,3.89794302,-0.133082762,3.28387687e-05,0.152897701,0.0673527792,-1.46947813,-0.228181854,0.0189529676,0.188611984 +0.13686654,3.89794302,-0.136866555,0.000192073465,0.152402833,0.0671674609,-1.46808028,-0.241976425,0.018953057,0.193819687 +0.183198869,3.89794302,-0.183198869,0.000218938352,0.147126824,0.0655978695,-1.42723489,-0.401802719,0.0189546254,0.259893805 +0.209866866,3.89794302,-0.209866866,5.01852483e-05,0.145102829,0.0655745938,-1.38861084,-0.488808334,0.0189653467,0.296974391 +0.169850647,3.89794302,-0.169850647,0.000186392892,0.149005055,0.0659662709,-1.44083714,-0.357083023,0.0189532787,0.240629122 +-0.138463169,3.89794302,0.138463169,0.000121395147,0.154275671,0.0653755143,-1.54457998,-0.180363938,0.018967811,0.196081996 +-0.123267949,3.89794302,0.123267956,7.30584215e-05,0.154653192,0.0665134117,-1.53288722,-0.131903082,0.0189722702,0.17434904 +-0.111913621,3.89794302,0.111913621,2.01653056e-05,0.154946163,0.0673146695,-1.52374303,-0.0970773622,0.0189752523,0.158443719 +-0.110293962,3.89794302,0.110293962,1.71088941e-05,0.15497224,0.0674473494,-1.52249169,-0.0924327374,0.0189755894,0.156286627 +-0.225844741,3.89794302,0.225844741,0.000349830778,0.148943812,0.0665250272,-1.56926751,-0.435207546,0.0189488232,0.319423914 +-0.242023289,3.89794302,0.242023274,0.000170041691,0.149182618,0.0676849782,-1.55670035,-0.483515561,0.0189448483,0.342590392 +-0.204130918,3.89794302,0.204130903,0.000185829296,0.149243668,0.0651956126,-1.57770967,-0.371137559,0.01895364,0.288757801 +-0.211600959,3.89794302,0.211600959,2.55119012e-05,0.148665801,0.065454863,-1.57852817,-0.394324899,0.0189519692,0.299473375 +-0.141468719,3.89794302,0.141468719,0.000120862838,0.154081509,0.0652526096,-1.54695153,-0.18858853,0.0189669132,0.200223804 +-0.186434448,3.89794302,0.186434448,0.000113104412,0.15062359,0.06447687,-1.57122636,-0.320061088,0.018956637,0.264212161 +-0.176574215,3.89794302,0.17657423,0.000261179113,0.151303783,0.0644969717,-1.56849384,-0.291531473,0.0189584102,0.250022799 +-0.161838591,3.89794302,0.161838591,0.000229897065,0.152551055,0.0645266399,-1.56156254,-0.251676679,0.0189620722,0.229607821 +-0.24596335,3.89794302,0.24596335,0.000463275239,0.149151534,0.0679857731,-1.55291069,-0.496832788,0.0189447775,0.34818089 +-0.302327096,3.89794302,0.302327096,0.000517694687,0.150008589,0.0742953196,-1.46153378,-0.706127286,0.0189502146,0.427710414 +-0.321204334,3.89794302,0.321204334,0.000282742607,0.150193661,0.075826183,-1.41333175,-0.782458305,0.0189507324,0.455127299 +-0.331780225,3.89794302,0.331780195,0.000742240809,0.150614336,0.0766881704,-1.37981379,-0.82066679,0.0189537127,0.469757199 +-0.370599866,3.89794302,0.370599866,0.000617447891,0.151680321,0.0800808668,-1.23321927,-0.971521854,0.018961139,0.525185466 +-0.393127739,3.89794302,0.393127739,0.00113124691,0.152541757,0.0810149014,-1.12174177,-1.01702225,0.018968543,0.556574821 +-0.282236665,3.89794302,0.282236665,0.000187444559,0.149591237,0.0723090097,-1.50690186,-0.629784524,0.0189499352,0.399699599 +-0.256909251,3.89794302,0.256909251,0.000209033926,0.149361402,0.0694178343,-1.53992224,-0.535398781,0.0189466141,0.363397837 +-0.459907293,3.89794302,0.459907323,0.000392948132,0.155949041,0.0816682801,-0.688736796,-1.09392428,0.018998431,0.650633752 +-0.454650849,3.89794302,0.454650849,0.000254538521,0.155794695,0.0817303956,-0.727126181,-1.09323728,0.0189954545,0.643140614 +-0.41637814,3.89794302,0.41637814,0.000477673137,0.153459191,0.0816798434,-0.990961075,-1.05743384,0.0189777762,0.589704394 +-0.590174079,3.89794302,0.590174079,0.000840295339,0.160255194,0.080963105,0.0178608559,-0.79959172,0.0190442093,0.835238278 +-0.615855098,3.89794302,0.615855038,0.000718392606,0.161542967,0.0820547044,0.0885601342,-0.723049402,0.0190495793,0.871144652 +-0.562861025,3.89794302,0.562861025,0.000480624265,0.158687994,0.0804753006,-0.0960913152,-0.888188601,0.019036416,0.796164274 +-0.54592061,3.89794302,0.54592061,0.000459205301,0.157687262,0.0802606642,-0.163933888,-0.942832291,0.0190310292,0.772485077 +-0.468169332,3.89794302,0.468169332,0.000428500352,0.156107813,0.0815101936,-0.636260331,-1.0870074,0.0190012995,0.662175655 +-0.502687335,3.89794302,0.502687335,0.00107617932,0.156142354,0.080904752,-0.401032567,-1.0519557,0.0190140288,0.711569309 +-0.530506611,3.89794302,0.530506551,0.000471683248,0.157215595,0.0806107447,-0.251750231,-0.985810518,0.0190229509,0.750437617 +-0.63602227,3.89794302,0.63602227,0.000117723517,0.162498981,0.0828206018,0.14288421,-0.661784589,0.0190543793,0.899999976 +0.0940759182,3.89794302,-0.0940759182,2.78722218e-05,0.153933123,0.0720363036,-1.48177898,-0.0707176402,0.0189489983,0.133299351 +0.0816222727,3.89794302,-0.0816222727,2.13523635e-05,0.155087575,0.0814932212,-1.47827661,0.0258014575,0.0189432185,0.115653463 +0.0719850808,3.89794302,-0.0719850808,9.34310538e-06,0.219962493,0.154192135,-1.41583729,0.10473597,0.0189380217,0.10199903 +-0.0939964727,3.89794302,0.0939964727,2.82485653e-05,0.154178575,0.0711259693,-1.51539528,-0.0311802831,0.0189815946,0.133192986 +-0.081581153,3.89794302,0.081581153,2.17406123e-05,0.155025378,0.0813019052,-1.50429738,0.0505677462,0.0189850014,0.115601338 +-0.0719788671,3.89794302,0.0719788745,9.531497e-06,0.221837595,0.156176999,-1.43869448,0.119224377,0.0189869776,0.101996228 +0.477976024,3.89794302,-0.477976024,0.000682709971,0.150303319,0.0710324943,-0.536339164,-0.859295964,0.0189739484,0.676249683 +0.489793122,3.89794302,-0.489793122,9.6511445e-05,0.151930749,0.0720283613,-0.470094353,-0.853290141,0.0189771224,0.693187594 +0.39712745,3.89794302,-0.39712745,0.000310452684,0.141794011,0.0679142401,-0.979051769,-0.86207974,0.0189548414,0.561690152 +0.442234218,3.89794302,-0.442234218,0.00112230971,0.145875216,0.0694356337,-0.730583847,-0.887418509,0.0189608205,0.6265589 +0.586195588,3.89794302,-0.586195588,0.0003001921,0.165183812,0.0799448788,-0.0707196817,-0.677950084,0.0190095641,0.829648077 +0.610618591,3.89794302,-0.610618591,0.000411631976,0.16714941,0.0805147365,-0.0108087547,-0.622560263,0.0190158747,0.863753438 +0.635871887,3.89794302,-0.635871887,0.000940506579,0.169353157,0.0813307017,0.0527700782,-0.561981201,0.0190238822,0.89991796 +0.564066529,3.89794302,-0.564066529,0.000706911786,0.162876412,0.0783260763,-0.152148962,-0.721338153,0.0190057587,0.797964573 +0.50604105,3.89794302,-0.50604105,0.000653352647,0.154586777,0.0734315962,-0.394537807,-0.827270746,0.0189835187,0.71581459 +0.537622154,3.89794302,-0.537622154,0.000285326823,0.159527525,0.0763232708,-0.242325276,-0.77526772,0.0189972781,0.761067033 +0.253264695,3.89794302,-0.253264725,0.000657355064,0.14170146,0.060289368,-1.42439485,-0.519087434,0.0189700369,0.358555317 +0.259932876,3.89794302,-0.259932876,0.0001263265,0.14128378,0.0602625422,-1.41439128,-0.540091038,0.0189717319,0.368215382 +0.27036497,3.89794302,-0.270365,0.000492931518,0.140940875,0.0609429963,-1.39629197,-0.570946038,0.0189716704,0.382529169 +0.217667997,3.89794302,-0.217667997,0.0011349048,0.14420639,0.0611340292,-1.48374951,-0.420660704,0.0189598128,0.309903204 +0.181364417,3.89794302,-0.181364417,0.000364916399,0.148351774,0.0623774678,-1.5005312,-0.313291878,0.0189524908,0.256613404 +0.303557277,3.89794302,-0.303557277,0.000894525554,0.139820069,0.0629557073,-1.33559203,-0.675676167,0.018966645,0.430451393 +0.392121285,3.89794302,-0.392121285,0.000638584548,0.141557023,0.0675820485,-1.00229073,-0.856183767,0.0189548116,0.554599822 +0.32240212,3.89794302,-0.32240212,0.000655595912,0.139821678,0.0635102764,-1.27261889,-0.717325628,0.0189621411,0.456624746 +0.348322749,3.89794302,-0.348322749,0.000906669651,0.140042186,0.064337641,-1.1844573,-0.781938434,0.0189564452,0.493971348 +0.39503926,3.89794302,-0.39503926,1.04771516e-05,0.141656324,0.0677656755,-0.989509821,-0.861046433,0.0189544018,0.558799326 +0.179019287,3.89794302,-0.179019287,5.59502951e-06,0.148640469,0.0624796301,-1.50175393,-0.306838274,0.0189518929,0.253408313 +0.177088469,3.89794302,-0.177088469,0.000107563377,0.148808643,0.0625784472,-1.50212872,-0.30104202,0.0189519245,0.25059846 +0.147416085,3.89794302,-0.147416085,0.000305864611,0.152250603,0.0643047467,-1.50242341,-0.219632566,0.0189481657,0.210011452 +0.131639928,3.89794302,-0.131639928,0.000380648416,0.152697012,0.06509839,-1.49739933,-0.169118866,0.0189486984,0.186953038 +0.120137595,3.89794302,-0.120137602,0.000253736624,0.152969569,0.0656223074,-1.49559331,-0.138234943,0.0189482141,0.171291992 +0.100053832,3.89794302,-0.100053839,0.000168949671,0.150421947,0.067490615,-1.48711848,-0.0567991473,0.0189485811,0.141560614 +0.0996223986,3.89794302,-0.0996223912,7.23643734e-06,0.150403768,0.0675379932,-1.4869225,-0.0553558953,0.0189485345,0.140986487 +-0.428085029,3.89794302,0.428085029,0.000918141799,0.146319002,0.070771113,-0.715042412,-0.900368214,0.0189905781,0.606170177 +-0.461797208,3.89794302,0.461797208,0.000953548937,0.148284703,0.0722847581,-0.560028553,-0.878783584,0.0190049708,0.654130518 +-0.408042014,3.89794302,0.408042014,0.000707466213,0.145210758,0.0699086264,-0.805674255,-0.901295781,0.0189794116,0.57829237 +-0.361367255,3.89794302,0.361367255,0.000319370854,0.142215431,0.067705512,-0.999564767,-0.870258808,0.0189617425,0.51139605 +-0.254772812,3.89794302,0.254772782,0.000395759969,0.140903756,0.0619261488,-1.31258047,-0.64139992,0.0189401209,0.360303968 +-0.179201275,3.89794302,0.179201275,9.77571835e-05,0.147976607,0.0629061759,-1.44236028,-0.414500415,0.0189538896,0.253708065 +-0.182687134,3.89794302,0.182687134,0.000352503033,0.147614047,0.0628179088,-1.43736935,-0.425923079,0.0189532768,0.258482844 +-0.254814237,3.89794302,0.254814237,4.15119612e-05,0.140901193,0.061926689,-1.31248975,-0.641520679,0.0189401191,0.360362649 +-0.254799396,3.89794302,0.254799396,2.46e-10,0.140901715,0.0619262233,-1.31252599,-0.64147824,0.0189401191,0.360342354 +-0.215249389,3.89794302,0.215249389,0.00058899424,0.143737465,0.061789941,-1.39176369,-0.527591527,0.0189436506,0.305858016 +-0.099840939,3.89794302,0.099840939,0.000273379905,0.151218832,0.0677698329,-1.49929476,-0.128731638,0.0189786162,0.142681837 +-0.120260872,3.89794302,0.120260872,0.000153048153,0.152380601,0.0659563839,-1.49262023,-0.212786689,0.0189719293,0.170193478 +-0.122295901,3.89794302,0.122295901,2.99102771e-06,0.152530581,0.0657442361,-1.4918865,-0.222075403,0.0189711954,0.173185766 +-0.124493986,3.89794302,0.124493986,0.000168349652,0.152402848,0.0656007156,-1.49031126,-0.230285913,0.0189706795,0.176162899 +-0.17580311,3.89794302,0.17580311,0.000234480889,0.14839378,0.0630694106,-1.44556284,-0.403018355,0.0189546589,0.24876684 +-0.1480131,3.89794302,0.148013115,0.000372766517,0.150938094,0.0639693663,-1.47243452,-0.313531131,0.0189620145,0.210644767 +-0.355632216,3.89794302,0.355632246,5.17939225e-05,0.14189145,0.0673405007,-1.02070785,-0.863022268,0.0189598892,0.503497362 +-0.306142628,3.89794302,0.306142658,0.000196803536,0.139989346,0.0642965361,-1.18111682,-0.775300264,0.0189457908,0.433626145 +-0.299943358,3.89794302,0.299943358,0.000202169816,0.139791891,0.0639153346,-1.20000815,-0.76180613,0.0189442094,0.424650759 +-0.335310102,3.89794302,0.335310102,0.0005189933,0.141053706,0.0660897195,-1.08663261,-0.825091302,0.0189544708,0.474268198 +-0.63587743,3.89794302,0.63587743,0.000399065349,0.163309455,0.0776703358,-0.0333430432,-0.569192946,0.0190505013,0.899933517 +-0.61346674,3.89794302,0.61346674,0.000630395545,0.160687447,0.0765389577,-0.0784599558,-0.608977199,0.0190456212,0.867825389 +-0.512741506,3.89794302,0.512741446,0.00198012684,0.150902033,0.0727785006,-0.355079472,-0.79937911,0.0190233421,0.725943923 +-0.491978705,3.89794302,0.491978735,0.000716042938,0.149814218,0.0724271163,-0.435219586,-0.839110732,0.019017417,0.696338534 +-0.565171599,3.89794302,0.565171659,0.000914923148,0.155467093,0.0746283308,-0.192892268,-0.702628374,0.0190346278,0.799472213 +-0.588127494,3.89794302,0.588127494,0.00025438884,0.157806188,0.0753710046,-0.132242069,-0.659748673,0.0190397874,0.832454205 +-0.546455562,3.89794302,0.546455622,0.00101812859,0.15380016,0.0741931796,-0.240233898,-0.741953135,0.0190328918,0.773322701 +0.0824615061,3.89794302,-0.0824615136,1.94696786e-05,0.147076294,0.0750614032,-1.47036958,0.0721685141,0.0189496763,0.116778508 +0.0695577264,3.89794302,-0.0695577264,1.17190411e-05,0.176850855,0.115280584,-1.39296472,0.191273004,0.0189591758,0.0985715613 +-0.0705271512,3.89794302,0.0705271512,0.000106618252,0.191505313,0.124248303,-1.44074941,0.107872345,0.0189933963,0.100761726 +-0.0831291899,3.89794302,0.0831291825,0.000255979598,0.145933464,0.0722789615,-1.49696672,-0.0067499713,0.018986281,0.118785024 +-0.254805654,3.89796829,0.254805654,0.000591654971,0.140903071,0.0619259737,-1.31242049,-0.641466618,0.0189401098,0.36035049 +-0.254786998,3.89798355,0.254786998,0.000671740272,0.140905887,0.0619268455,-1.31242132,-0.641406715,0.0189401042,0.360324174 +1.04843545,3.89804173,-1.04843545,0.00119733158,0.143002778,0.0664350763,0.0888324454,-0.0859860331,0.0190588087,1.48314595 +0.851597667,3.898175,-0.851597548,0.00339041767,0.16570352,0.0781254023,0.288020909,-0.360487878,0.0190464221,1.2045579 +0.0996457934,3.89889216,-0.0996458009,0.000286493276,0.150482267,0.0676084459,-1.48318946,-0.0556697957,0.0189481787,0.140960976 +-1.16697669,3.89921546,1.16697669,0.000799295027,0.145586997,0.0674523637,0.011923586,-0.022074664,0.0190766957,1.65038717 +0.690438151,3.89976311,-0.690438151,0.00100536773,0.170484439,0.0808138624,0.146784022,-0.50048089,0.0190340485,0.977413416 +0.0825105384,3.89980316,-0.0825105384,0.000277403247,0.14778018,0.0753926039,-1.46058476,0.0672557354,0.0189487673,0.116751656 +-1.00737739,3.8998673,1.00737739,0.000863264315,0.142848015,0.0661168247,0.156151772,-0.118586496,0.0190752465,1.42492414 +0.179394603,3.90011644,-0.179394603,3.40756305e-05,0.14875254,0.0625409707,-1.49412096,-0.306392282,0.0189510528,0.253895432 +1.19877172,3.9004612,-1.19877172,0.000608988805,0.15461731,0.0732569396,-0.0769844651,-0.0259413086,0.0190535951,1.69546783 +1.01843691,3.90047359,-1.01843691,0.00163428579,0.147129461,0.0686896965,0.146219075,-0.115960881,0.0190558676,1.44105327 +1.21513605,3.90048957,-1.21513605,0.000656139455,0.142829061,0.0666134283,-0.249266654,-0.0169079416,0.0190537162,1.71861243 +1.22872472,3.90050936,-1.22872472,0.000297207385,0.117368959,0.0565207861,-0.358447075,-0.0143271741,0.0190539304,1.73783123 +0.0696179047,3.9007473,-0.0696179047,0.000118765798,0.183790386,0.119934753,-1.37421572,0.179007798,0.0189569928,0.0985333622 +-0.121659137,3.9009409,0.12165913,0.000250755314,0.152743891,0.0659257323,-1.4830817,-0.219085634,0.0189699903,0.172165215 +-0.180033684,3.90104222,0.180033699,0.000456159614,0.148148403,0.0629603341,-1.43120444,-0.415431976,0.0189525485,0.254838228 +-0.353375196,3.90214729,0.353375196,0.000873493787,0.141959414,0.0669247732,-1.01304042,-0.851344526,0.0189581849,0.500148892 +0.176086366,3.90326214,-0.176086351,0.000585996604,0.149373055,0.0628816411,-1.48439932,-0.295908481,0.0189495329,0.249105543 +1.17495799,3.90372086,-1.17495799,0.000599327381,0.141713679,0.0650084913,0.014012713,-0.0204549413,0.0190506186,1.66177046 +0.258831739,3.90396905,-0.258831739,0.00169866765,0.141823635,0.0603311844,-1.39505601,-0.531237781,0.0189685188,0.366711706 +0.253653169,3.90432692,-0.253653169,0.000233083905,0.142253458,0.0604921915,-1.39956391,-0.516767859,0.0189668871,0.359306723 +-1.17342186,3.90626335,1.17342186,0.000406695268,0.151410222,0.0706722885,0.00690269377,-0.00964654982,0.0190713443,1.65953338 +1.18696105,3.90662384,-1.18696105,0.000594902551,0.149870932,0.0698954388,-0.0392480418,-0.0174303018,0.0190490913,1.67866039 +0.396796227,3.9068222,-0.396796227,0.000976662152,0.142248079,0.0675165132,-0.961782277,-0.844431937,0.0189529341,0.561180055 +1.12879384,3.90700221,-1.12879384,0.00103263569,0.125396445,0.0554592274,-0.0293645263,-0.0267801639,0.0190505255,1.59653139 +0.70298326,3.90701938,-0.70298326,0.00237513962,0.169927061,0.0803280547,0.159206912,-0.484914601,0.0190323032,0.9948138 +-1.0661869,3.90792322,1.0661869,0.00178890419,0.139942557,0.0641649961,0.041520074,-0.0470175818,0.0190691818,1.50800538 +-0.295416951,3.9082737,0.295416951,0.00103736762,0.140579417,0.0636588857,-1.17436743,-0.737047553,0.0189397018,0.418222696 +-1.13313031,3.90855503,1.13313031,0.000931585033,0.126249582,0.0557739548,-0.0195438173,0.0046340758,0.0190688577,1.60265827 +-0.959682405,3.90949011,0.959682405,0.00369117712,0.149329603,0.0696188509,0.224242449,-0.212660491,0.0190658495,1.35839701 +-1.11507857,3.91078043,1.11507857,0.000816008658,0.125760719,0.0556676276,-0.0134506524,-0.0431418419,0.0190670397,1.57714367 +-1.18025625,3.91130471,1.18025625,0.000447485363,0.155340388,0.0730444789,-0.0355710201,-0.00911866687,0.0190675333,1.66916382 +-1.02306247,3.91159296,1.02306247,0.00101926283,0.143007383,0.0659977347,0.112728536,-0.100456506,0.0190662723,1.44691753 +-0.360887766,3.91198325,0.360887766,0.00144480763,0.142864466,0.0669808164,-0.966206074,-0.842177272,0.0189573038,0.510549426 +-1.00321448,3.91232347,1.00321448,0.000964486913,0.144391969,0.0668778718,0.149027452,-0.125975877,0.0190659761,1.4190712 +0.491030097,3.91253281,-0.491030097,0.00160017214,0.15241456,0.0715706795,-0.461262405,-0.826730013,0.018973954,0.694769263 +-0.585480928,3.91321969,0.585480928,0.00226907036,0.157539353,0.074608691,-0.146903306,-0.649073958,0.0190298837,0.828886092 +-0.13943395,3.9147315,0.13943395,0.000695800409,0.152649447,0.0651678815,-1.42801237,-0.283503413,0.0189591944,0.198517025 +1.11028135,3.91487789,-1.11028123,0.000924267049,0.134229898,0.0610828772,-0.00359493773,-0.0699208975,0.0190469995,1.5702852 +-0.705672324,3.91563892,0.705672324,0.00172087713,0.166061938,0.078266643,0.0960021541,-0.504323244,0.0190463867,0.998165846 +0.895406961,3.91612887,-0.895406961,0.00226071686,0.163377345,0.0771846771,0.280056715,-0.308797479,0.0190366004,1.26707375 +-0.419869214,3.91726089,0.419869214,0.00144925585,0.146684363,0.0691562369,-0.727021217,-0.86627686,0.018978985,0.594859362 +-0.600159287,3.91740966,0.600159287,0.0017686839,0.158729047,0.0752689987,-0.112618037,-0.630738735,0.0190299451,0.8494699 +-0.975193381,3.91749716,0.975193381,0.00101086299,0.147592455,0.0686048493,0.189955562,-0.187104017,0.0190601405,1.38004935 +1.22873485,3.91830111,-1.22873485,0.000212178886,0.117420755,0.0576169565,-0.377792954,-0.0115808817,0.0190417431,1.73783576 +1.21828985,3.91841698,-1.21828985,0.000467668084,0.145109981,0.0675397143,-0.28690362,-0.00929735787,0.0190415047,1.72306299 +1.20575833,3.91855621,-1.20575833,0.000695251452,0.162632197,0.077497445,-0.119512655,-0.00621348666,0.019041121,1.70533955 +1.15836978,3.91861463,-1.15836978,0.000700925477,0.147030815,0.0682152361,0.0129066184,0.0624414384,0.0190390404,1.63828504 +0.539873958,3.91880536,-0.539873958,0.00245439797,0.160310984,0.0757514462,-0.245295867,-0.746044397,0.0189950131,0.764224052 +0.185195073,3.91910934,-0.185195073,0.000621089595,0.149403408,0.0629012361,-1.42958558,-0.308621049,0.0189436469,0.261925757 +-1.16193843,3.92122746,1.16193843,0.000578271982,0.159259498,0.075221397,0.0190643501,0.08708518,0.0190591086,1.64325905 +-0.071093455,3.92154431,0.0710934624,0.000118950156,0.213197574,0.139269009,-1.34181213,0.0788711086,0.0189727005,0.100622974 +-0.307647228,3.92155194,0.307647228,0.00134073349,0.141413912,0.0637954995,-1.10361719,-0.740743041,0.018936269,0.435310483 +0.643938661,3.9217391,-0.643938661,0.00171447697,0.169060901,0.0804928839,0.0550963841,-0.552569687,0.0190183837,0.91101706 +-1.09729171,3.92230535,1.09729171,0.00080550753,0.136932373,0.0625818744,0.0220419932,-0.0785863698,0.0190579221,1.55198538 +-0.0838690549,3.92257905,0.0838690549,0.00027590082,0.148147956,0.0737073496,-1.41025841,-0.0295180064,0.0189702082,0.118675038 +0.353715539,3.92270136,-0.353715539,0.00262264558,0.141740754,0.0635670125,-1.08865333,-0.748788953,0.0189487897,0.501556516 +-0.723452926,3.92271996,0.723452866,0.00240736967,0.165550575,0.0779391304,0.121517763,-0.486819744,0.0190428644,1.02343905 +0.150272012,3.92344809,-0.150272012,0.000922660227,0.154068321,0.0653201789,-1.41733396,-0.216036171,0.0189376585,0.213331938 +-0.100619689,3.92357683,0.100619696,0.000298219034,0.152535111,0.0688398406,-1.41788638,-0.131788433,0.018966455,0.142339855 +-0.645662308,3.92372417,0.645662308,0.000979807344,0.163897201,0.0773980319,-0.0280154031,-0.55570817,0.0190342497,0.913317204 +1.167521,3.92407298,-1.167521,0.00058654428,0.157548144,0.0745797977,0.0332467929,0.0904022381,0.0190345608,1.65124989 +0.0687145069,3.92409301,-0.0687145069,0.000187619546,0.235257059,0.154864848,-1.22356641,0.0888851732,0.0189355034,0.0982523412 +0.0814216584,3.92423582,-0.0814216509,0.000449217157,0.155625403,0.0791538209,-1.33799458,0.00695011439,0.0189348552,0.116437972 +-0.0709995553,3.92437005,0.0709995553,2.13081912e-05,0.216534913,0.14156428,-1.32875609,0.0740045607,0.0189697221,0.100605026 +0.0981060937,3.92443275,-0.0981060937,0.000448908366,0.153146103,0.0697275922,-1.38558412,-0.0674578026,0.0189362802,0.140312508 +-0.0837992877,3.92444634,0.0837992877,3.50094451e-05,0.148414418,0.0738646686,-1.403139,-0.0316763669,0.0189688057,0.118665993 +-0.100571848,3.92452717,0.100571848,1.29350183e-05,0.152587935,0.0688845143,-1.41474271,-0.131831989,0.0189659353,0.14232704 +0.992397428,3.92453551,-0.992397428,0.00159124495,0.152652949,0.0715855509,0.174541846,-0.169746101,0.0190385971,1.40387321 +0.92610085,3.92465138,-0.92610085,0.00245447853,0.160078228,0.0754940882,0.255557328,-0.266697824,0.0190345421,1.31113982 +-0.101089217,3.92474747,0.101089224,0.000204145719,0.152669847,0.0688458756,-1.41417778,-0.133921713,0.0189657249,0.143001571 +-1.16725147,3.92513561,1.16725135,0.000447062426,0.171668112,0.0826647878,0.0329448283,0.101930685,0.0190559998,1.65080214 +0.590250254,3.92530203,-0.590250254,0.00100854575,0.165675044,0.0787572339,-0.0789130703,-0.646143317,0.0190044828,0.834889889 +-0.100602016,3.9253056,0.100602016,0.000213703373,0.152641669,0.0689055845,-1.41273367,-0.131995171,0.0189655218,0.142323866 +0.971131563,3.92530727,-0.971131563,0.00327966711,0.155753508,0.0732821524,0.208598778,-0.204401881,0.0190357491,1.3738451 +-0.159111485,3.92544842,0.159111485,0.000684311963,0.152307808,0.0645437837,-1.37492633,-0.336951494,0.018949898,0.225563645 +0.448406637,3.92562699,-0.448406637,0.00173147593,0.147845924,0.0680980906,-0.663287163,-0.832438827,0.0189597141,0.635503829 +-0.0838492662,3.92597342,0.0838492662,0.000271779893,0.148469776,0.0738530979,-1.40015364,-0.0322401337,0.0189678725,0.118661873 +1.09018588,3.92666817,-1.09018588,0.00108870619,0.149367839,0.0705275312,0.0327317044,-0.114510298,0.0190406721,1.54194152 +-0.0710615143,3.92668962,0.0710615143,0.000117695155,0.216598153,0.141446337,-1.32655489,0.0726251155,0.0189681277,0.100596786 +0.775786281,3.92708087,-0.775786281,0.00216907146,0.167130873,0.0784280449,0.227588415,-0.421284854,0.0190283414,1.0984937 +-0.103146881,3.92762303,0.103146881,0.000140671866,0.153051004,0.0688205287,-1.40548158,-0.141808257,0.0189639032,0.145882875 +0.122831687,3.92777538,-0.122831687,0.000379328063,0.154987082,0.0670622364,-1.39699411,-0.140385807,0.0189367812,0.1738846 +1.05517125,3.92915964,-1.05517125,0.000936329248,0.146524802,0.0680044442,0.0385591574,-0.0929162428,0.0190384742,1.49231112 +0.118857093,3.92935252,-0.118857086,0.000256921805,0.155191272,0.067322731,-1.39113617,-0.129445285,0.0189360026,0.168416113 +-0.998715401,3.92951965,0.998715401,0.00097169145,0.145235389,0.0672865957,0.136358351,-0.14007771,0.0190521535,1.41252482 +0.11559584,3.93127036,-0.115595832,0.000277026615,0.155103877,0.0679267943,-1.38063157,-0.118864685,0.0189351179,0.163682014 +0.278045714,3.93146491,-0.278045714,0.00100288424,0.142927915,0.0607486628,-1.26511133,-0.546909809,0.0189576633,0.393274844 +-0.166678905,3.93171787,0.16667892,0.000191932617,0.151803941,0.0643358603,-1.34810781,-0.360317588,0.018946236,0.236810729 +-0.121119864,3.93185997,0.121119857,0.000490821665,0.154712319,0.0671885982,-1.38820457,-0.21154514,0.0189557839,0.1726024 +-0.395759106,3.93198061,0.395759106,0.00145402411,0.14607054,0.0675568879,-0.770999551,-0.825823963,0.0189644359,0.560301483 +-0.207841903,3.9326086,0.207841903,0.000955312047,0.147631675,0.0627115667,-1.28526044,-0.477094054,0.0189357605,0.294269651 +0.118881911,3.93292117,-0.118881904,1.65297497e-05,0.155507773,0.0675246119,-1.37937665,-0.130331144,0.0189343821,0.168655872 +-0.714834869,3.93316531,0.714834929,0.000357121724,0.165651292,0.0779118165,0.101892136,-0.492216527,0.0190352127,1.01171744 +0.757162094,3.93366814,-0.757162094,0.0027253232,0.167430744,0.0785751045,0.205195829,-0.433630943,0.0190238096,1.07134366 +1.1306386,3.9338665,-1.1306386,0.000367788423,0.45012182,0.228082597,0.0140459882,-0.0289198756,0.019033568,1.59913921 +-1.1336472,3.93398476,1.1336472,0.000343942607,0.456700742,0.232207894,0.00509059895,0.0273094513,0.0190513972,1.60338902 +-1.08317578,3.9348321,1.0831759,0.000958410557,0.150716767,0.0711328685,0.0602625832,-0.107304722,0.0190484412,1.53203297 +0.118102603,3.93590832,-0.118102595,0.000231301005,0.155715078,0.0677214786,-1.37058473,-0.127351761,0.0189333912,0.167356551 +0.120868616,3.93650746,-0.120868623,0.000352745934,0.155736446,0.0675496832,-1.36964953,-0.133218363,0.0189330839,0.171125323 +0.600754857,3.93659306,-0.600754857,0.000690339191,0.166716814,0.0786136761,-0.0594098046,-0.610512197,0.019005781,0.850059092 +-1.12000012,3.93667173,1.12000012,0.000285809161,0.456135154,0.23124662,0.0369791314,-0.0992088094,0.0190493651,1.58410382 +-0.162203431,3.93738294,0.162203416,0.000353463227,0.152729973,0.0647250861,-1.33447897,-0.342239588,0.0189442206,0.230746254 +0.817307472,3.93832731,-0.817307472,0.00277614966,0.165678799,0.0778828114,0.238774568,-0.381554544,0.0190234799,1.1561743 +1.15404093,3.93849921,-1.15404093,0.000255095598,0.488887966,0.269761801,0.0834253281,0.155752093,0.0190263838,1.63216174 +-0.657944381,3.93940163,0.657944322,0.00150829833,0.164329782,0.0771396235,-0.00726711517,-0.545260668,0.0190268308,0.931230724 +-1.15711653,3.93943477,1.15711653,0.000218327506,0.507446826,0.282825857,0.0892025009,0.200805485,0.0190466214,1.63644004 +1.11676824,3.93976355,-1.11676824,0.00031515921,0.468044311,0.245798558,0.0852456912,-0.126380593,0.0190309975,1.57945919 +-1.02005696,3.9402082,1.02005696,0.00112807122,0.148035124,0.0686096922,0.0899542347,-0.119905949,0.0190446023,1.44262075 +-1.22865677,3.94022512,1.22865677,0.000249254546,0.130601108,0.0666706488,-0.443488568,-0.00893834792,0.0190457646,1.73773313 +-1.22046661,3.94039488,1.22046661,0.000549920776,0.159269065,0.0756761655,-0.367234766,-0.00273688044,0.0190455951,1.72614968 +-1.21063828,3.94059873,1.21063828,0.000835483079,0.180504054,0.0882204399,-0.199348286,0.00651821308,0.0190453995,1.71224904 +-0.693244219,3.94100189,0.693244278,0.00145091419,0.165117443,0.077553317,0.0572240353,-0.511777759,0.019027913,0.980517745 +-0.86625886,3.94100952,0.86625886,0.00336887315,0.158297241,0.0744480267,0.235409945,-0.331931591,0.0190348513,1.22573185 +1.16132629,3.94104338,-1.16132629,0.000235832573,0.503756404,0.286542028,0.120540842,0.207893595,0.0190237761,1.64248681 +-0.169684812,3.94123411,0.169684798,0.00122489256,0.152290747,0.0644818023,-1.31328249,-0.364518195,0.0189419724,0.240889654 +-1.16164911,3.94134879,1.16164923,0.000186343808,0.520629525,0.29789114,0.117957257,0.224638492,0.0190449469,1.64287925 +1.03417826,3.9415431,-1.03417826,0.000981567544,0.152354598,0.0712372363,0.0724740922,-0.113769099,0.0190302432,1.46273398 +0.0691537932,3.9419477,-0.0691537932,0.000118762822,0.237429529,0.154375538,-1.23009229,0.0678822696,0.0189276133,0.0981043205 +0.0819728002,3.94283152,-0.0819728002,0.000273985381,0.157656729,0.0794561058,-1.31374538,-0.00303090131,0.0189267695,0.116269559 +0.156855792,3.9432683,-0.156855792,0.00104307651,0.154894143,0.0658539906,-1.351964,-0.225825667,0.0189292915,0.222996786 +0.884233952,3.94369459,-0.884233952,0.00321613741,0.163146317,0.0768987834,0.258118778,-0.320016265,0.0190194789,1.25142264 +0.0987579226,3.94370222,-0.0987579226,0.000297911203,0.154817611,0.0704020634,-1.33746469,-0.0718918219,0.0189288501,0.140051976 +-0.203822806,3.94384551,0.203822821,0.00103375083,0.148960382,0.0630504191,-1.25441277,-0.456270695,0.0189321619,0.288875461 +-0.724942029,3.94454384,0.724941969,0.00271478575,0.165495738,0.077829428,0.107129745,-0.479094744,0.0190265216,1.02566779 +-1.10672081,3.9452126,1.10672069,0.000273912214,0.472945035,0.24849616,0.118621543,-0.172198728,0.0190420821,1.5653199 +-0.792218089,3.94544291,0.792218089,0.00694567244,0.162483245,0.0765070692,0.193591878,-0.402775228,0.0190301482,1.12250447 +1.01847756,3.94700861,-1.01847756,0.000843223883,0.154292524,0.0722870827,0.0987583399,-0.141269043,0.0190256946,1.44044518 +-0.260237485,3.94804955,0.260237485,0.00185786828,0.143740699,0.0613644235,-1.12220359,-0.598840117,0.0189234931,0.369700044 +-1.04598176,3.94809055,1.04598165,0.00113016414,0.147905245,0.0683817118,0.0372792445,-0.093374528,0.0190387145,1.4793303 +-0.210213244,3.94825721,0.210213244,0.00151736662,0.148719907,0.0629604831,-1.22940075,-0.470734477,0.0189298186,0.297696382 +-0.924695611,3.94840717,0.924695671,0.00290311803,0.152966768,0.0715398639,0.206979305,-0.253197134,0.0190326031,1.30811572 +-0.479758441,3.94845581,0.479758441,0.00189261872,0.151503026,0.070082061,-0.458725065,-0.761872709,0.0189871527,0.678607106 +0.595660567,3.94861174,-0.595660567,0.000763123739,0.166088402,0.0778260455,-0.0790228024,-0.617792189,0.0190012325,0.842882752 +0.662948012,3.94878626,-0.662948072,0.00104798807,0.168617845,0.0794462413,0.0787750408,-0.526469946,0.019012263,0.938840985 +1.10133982,3.94878817,-1.10133982,0.000374621741,0.491302788,0.269041926,0.168051064,-0.217309803,0.0190263353,1.5577178 +-0.138605833,3.94901657,0.138605833,0.000502179028,0.155608937,0.066969417,-1.32535136,-0.267105371,0.01894469,0.196166635 +-0.975049376,3.94910693,0.975049376,0.00134028937,0.148244917,0.0688684806,0.1530343,-0.195692033,0.0190352388,1.37930632 +0.784352779,3.94942403,-0.784352779,0.00313583366,0.166735798,0.0782259107,0.221474364,-0.405276835,0.0190157853,1.110183 +0.719696999,3.94950366,-0.719696999,0.00338680297,0.16770117,0.0786639154,0.16004692,-0.458370179,0.0190131888,1.02023733 +0.582929671,3.94991994,-0.582929671,0.00135306804,0.164906815,0.077045925,-0.117207691,-0.635857999,0.0189965013,0.824829519 +0.611681879,3.95011449,-0.611681879,0.000976321346,0.166835129,0.0783028081,-0.0428332277,-0.596769154,0.0190038625,0.865296423 +-0.125806674,3.95017457,0.125806674,0.000630096649,0.156520337,0.0677867606,-1.33533418,-0.229029313,0.0189472493,0.17829062 +0.0688557029,3.95035815,-0.0688557029,8.21695285e-05,0.237953797,0.153668508,-1.23687267,0.0572347865,0.0189236179,0.0980416164 +0.0816553235,3.95046449,-0.0816553235,0.000175715584,0.158469617,0.0794533789,-1.30529988,-0.00868791714,0.0189232212,0.116205834 +-0.0702877492,3.95050144,0.0702877492,0.000221024588,0.218246207,0.141166657,-1.29017782,0.0613578111,0.0189507063,0.100476921 +-0.0829288661,3.95057654,0.0829288661,0.000509822275,0.149889752,0.074087657,-1.34482312,-0.0378440842,0.0189521685,0.118553206 +0.0983975381,3.95061064,-0.0983975381,0.000101347185,0.15563488,0.0707591325,-1.32067001,-0.0753873885,0.018925773,0.139962003 +-0.0994498357,3.95066094,0.0994498432,0.000535543193,0.154457882,0.0696924254,-1.34564662,-0.133788019,0.0189517159,0.14217332 +1.04074121,3.95105839,-1.04074121,0.00103075465,0.153587595,0.0717960522,0.046627488,-0.110627174,0.0190244392,1.47198856 +0.6811499,3.95108151,-0.6811499,0.00155800325,0.168200731,0.0790499821,0.10197176,-0.504914522,0.0190129764,0.964143634 +0.14411588,3.95130348,-0.14411588,0.000870391552,0.156456634,0.0668795109,-1.33013105,-0.193460882,0.0189258605,0.204682499 +0.420179456,3.9520216,-0.420179427,0.00165250245,0.146827742,0.0658649057,-0.735779643,-0.768678904,0.0189465471,0.594636083 +-0.711187601,3.95214558,0.711187601,0.00193778519,0.165313512,0.077611424,0.0832919329,-0.487246037,0.0190211181,1.00610113 +0.306361616,3.95298004,-0.306361616,0.00124687864,0.143700242,0.0619596019,-1.12533677,-0.597267985,0.018944392,0.433471262 +-1.20141459,3.9531765,1.20141459,0.00041466023,0.208513439,0.104820684,-0.0474767089,0.0358858407,0.0190358199,1.69911027 +-1.19422364,3.95320129,1.19422364,0.000327407557,0.212698594,0.107196353,0.0214776061,0.0441305228,0.0190357864,1.68900418 +0.100799568,3.95323658,-0.100799561,0.000250860583,0.155819848,0.0704693496,-1.31466615,-0.0801296383,0.0189250819,0.143183649 +-0.119165897,3.95357561,0.119165897,0.00037871112,0.156489059,0.0684785321,-1.32954526,-0.206261933,0.0189474523,0.168914244 +-1.0959723,3.95422244,1.0959723,0.000328422466,0.480765641,0.261894405,0.193693742,-0.215397298,0.0190352406,1.55012989 +-0.649126947,3.95423746,0.649127007,0.00170810358,0.163660929,0.0766225755,-0.0348412506,-0.549739718,0.0190142617,0.918625057 +-0.467524141,3.95473003,0.467524141,0.00107633974,0.151169717,0.069759652,-0.505960047,-0.766365767,0.018978972,0.66141808 +1.07337308,3.95589161,-1.07337308,0.000914718432,0.170037597,0.0825373977,0.0454119109,-0.131763473,0.0190217495,1.51804364 +0.297462493,3.95715737,-0.297462463,0.00074868137,0.143993989,0.0615381822,-1.13982689,-0.571177959,0.0189448819,0.421044946 +1.19701111,3.95732069,-1.19701123,0.000314393372,0.208218068,0.103477798,0.0575110838,0.0539067648,0.0190134235,1.69282997 +1.19689405,3.95757842,-1.19689393,0.00024531706,0.208443746,0.103605457,0.0588689111,0.0542850234,0.0190132335,1.69266534 +1.19694841,3.95774889,-1.19694841,1.03731531e-06,0.208680466,0.103748627,0.0590504743,0.0544793531,0.0190131217,1.69274259 +1.19729459,3.95787311,-1.19729459,0.00018028554,0.207743451,0.103209667,0.0539582372,0.0537380986,0.0190130584,1.69323051 +1.19698036,3.95795226,-1.19698036,0.000171655614,0.208707854,0.103780679,0.0590755455,0.0543913879,0.0190129802,1.69278693 +0.0987178534,3.95894432,-0.0987178534,0.000253249105,0.156179503,0.071175769,-1.296229,-0.0746984631,0.0189223569,0.139902964 +-0.423050374,3.95966148,0.423050374,0.00173690775,0.148828924,0.0670534149,-0.6270172,-0.789354205,0.0189584885,0.601339221 +0.0819488615,3.95967913,-0.0819488615,0.000274464255,0.159650952,0.080198817,-1.27841711,-0.0100117829,0.0189189818,0.116150692 +-1.18816257,3.95986462,1.18816245,0.00033212878,0.302496821,0.168209255,0.190884128,0.124561056,0.0190302189,1.68043184 +0.201671779,3.95999241,-0.201671794,0.00118436455,0.150398105,0.0636072308,-1.28835666,-0.326446801,0.0189283937,0.285511762 +1.22880542,3.96035194,-1.2288053,0.000129811873,0.111379117,0.0568120703,-0.393575996,-0.00368752424,0.0190126169,1.73785675 +1.22209144,3.96037579,-1.22209144,0.000285590359,0.1388942,0.0639744252,-0.334534109,0.00279284432,0.019012602,1.72836185 +1.21402478,3.96040368,-1.21402478,0.000364380394,0.163046435,0.0780884922,-0.192100212,0.014177111,0.0190124996,1.71695375 +0.0691247582,3.96051788,-0.0691247582,0.00011907173,0.239400417,0.154265001,-1.20970607,0.0535465591,0.0189190097,0.097983934 +-0.124025501,3.96055794,0.124025501,0.000505074451,0.157258004,0.0683353767,-1.30749702,-0.223051533,0.0189431701,0.175810844 +-0.242695481,3.96063447,0.242695481,0.00150781544,0.146293253,0.062121138,-1.12836838,-0.544223309,0.0189199522,0.344917059 +1.19061708,3.96333194,-1.1906172,0.000310938136,0.299395055,0.165585518,0.226903856,0.133297503,0.0190073997,1.68378842 +1.19067943,3.96346092,-1.19067943,1.655649e-06,0.2998797,0.165919244,0.22755079,0.133354113,0.0190073177,1.68387675 +1.1907177,3.96364617,-1.1907177,0.000195989633,0.299903095,0.165967405,0.227618352,0.132999063,0.0190071929,1.68393028 +0.407795727,3.96389747,-0.407795727,0.000429755251,0.146270365,0.0647922531,-0.774370015,-0.739483476,0.0189413559,0.577749491 +-0.476079643,3.96403193,0.476079643,0.000421777542,0.152035415,0.0693002045,-0.469224751,-0.740924954,0.0189781953,0.673630893 +-1.03674293,3.96456671,1.03674293,0.000835419167,0.151475936,0.0702355281,0.03568656,-0.112045974,0.0190260448,1.46631193 +0.295947701,3.96469069,-0.295947701,0.000156769805,0.144515678,0.0613224804,-1.11502039,-0.557452857,0.0189421494,0.419308841 +0.584321201,3.9649415,-0.584321201,0.000984851969,0.164962932,0.0769626945,-0.114185557,-0.6129812,0.0189924277,0.826780319 +0.194602937,3.96506381,-0.194602937,0.000667843444,0.15168412,0.0641320124,-1.2730279,-0.304335028,0.0189244114,0.27555269 +-0.317134529,3.96518254,0.317134559,0.00169653201,0.144298062,0.0625256747,-0.93302834,-0.693669438,0.0189209674,0.449829996 +-0.471163094,3.96529531,0.471163094,8.49176358e-05,0.151811644,0.0691074207,-0.484288633,-0.743486464,0.018975893,0.666771889 +0.163435698,3.96535063,-0.163435698,0.000635967532,0.15580079,0.0663504377,-1.28761601,-0.229233488,0.0189200472,0.231755167 +-0.293507189,3.96540713,0.293507218,0.00119560829,0.144672364,0.0621537045,-0.991270185,-0.639593899,0.0189204328,0.416032135 +-0.466037601,3.96541238,0.466037601,0.00130552379,0.151553288,0.068896763,-0.500841439,-0.745889723,0.018973643,0.659417272 +-1.18311143,3.96541953,1.18311143,0.000136046976,0.62167716,0.427315712,0.390298843,0.215674549,0.01902657,1.67328811 +-1.06803274,3.9655838,1.06803274,0.000839916931,0.173019022,0.0838718414,0.0605331585,-0.126289457,0.0190260578,1.51051474 +-0.890090585,3.96568322,0.890090585,0.00293930341,0.156726614,0.0735911727,0.219526753,-0.29753235,0.0190166775,1.26021695 +-1.19828212,3.96578503,1.19828212,0.000309054944,0.226600155,0.11601647,0.0226520859,0.045145575,0.019026462,1.69472122 +1.22878706,3.96728086,-1.22878718,4.06093568e-05,0.110174567,0.0564710125,-0.392598331,-0.00249385135,0.0190077871,1.73785818 +1.22257185,3.96735477,-1.22257197,8.97198115e-05,0.137259424,0.0631030574,-0.339393765,0.00436789962,0.0190077703,1.72906864 +0.199959636,3.96742415,-0.199959636,0.000335298333,0.151170939,0.0638919026,-1.2635653,-0.317097247,0.0189242959,0.283245713 +1.21511531,3.96744394,-1.21511531,0.000116366798,0.162127778,0.0776830614,-0.202350855,0.0164625254,0.019007666,1.7185235 +-0.370710343,3.96753788,0.370710343,0.0015458616,0.146421254,0.0644894093,-0.773598194,-0.750072658,0.0189380236,0.525801718 +-0.385196924,3.96781778,0.385196894,0.00101810938,0.147169322,0.0651524439,-0.7278319,-0.753582954,0.0189432073,0.546434999 +0.300771594,3.96795583,-0.300771594,0.00109671056,0.144705132,0.0614550784,-1.09436607,-0.561181784,0.0189405959,0.425765276 +1.18538654,3.96812677,-1.18538654,0.000124598489,0.613321662,0.422902495,0.417524189,0.223388746,0.0190038979,1.67639136 +1.18545532,3.96822071,-1.18545532,6.95120093e-07,0.613689601,0.423351228,0.418491274,0.223296434,0.0190038327,1.67648888 +1.18549895,3.96839094,-1.18549895,8.49777207e-05,0.613463402,0.423252225,0.418512076,0.222599328,0.0190037191,1.67654991 +0.20272544,3.96863699,-0.20272544,0.00115137594,0.151046813,0.0638484359,-1.2568388,-0.323652208,0.0189245604,0.287217587 +0.518710673,3.9689579,-0.518710673,0.00218889955,0.157704294,0.0718967244,-0.339999586,-0.699903846,0.0189759862,0.735090017 +0.478199601,3.9691968,-0.478199601,0.00294845155,0.153057531,0.0688013658,-0.484650075,-0.741096258,0.0189573206,0.677974045 +0.121334545,3.9694047,-0.121334553,0.000483968819,0.158059537,0.069009997,-1.27642751,-0.132192448,0.0189190265,0.171987623 +1.06393778,3.96976376,-1.06393778,0.000602632994,0.182954773,0.0903847218,0.0580415837,-0.14343074,0.0190130007,1.5047617 +0.501106083,3.97011805,-0.501106083,0.00146407099,0.155587658,0.0704902261,-0.39553383,-0.719712377,0.0189662073,0.711556673 +0.659037232,3.97032833,-0.659037232,0.00131695054,0.16797477,0.0788480788,0.0629936382,-0.522766709,0.0190022662,0.933388412 +-0.662095129,3.97042918,0.662095129,0.0020534487,0.163974375,0.07670746,-0.0190020576,-0.528468013,0.0190038998,0.936893523 +-1.19263399,3.97046638,1.19263387,0.000209358812,0.323444217,0.183617577,0.21404469,0.109403878,0.0190225765,1.68673313 +-0.946873546,3.97063327,0.946873605,0.00120160449,0.150465429,0.0701644719,0.168474779,-0.231459782,0.0190160256,1.33916974 +0.287668735,3.97069836,-0.287668735,0.00183684262,0.145415008,0.0616749041,-1.11556315,-0.530556738,0.0189391151,0.407233864 +0.116266653,3.97119522,-0.116266653,0.000253354548,0.158224627,0.0694527328,-1.26994574,-0.12126632,0.0189183597,0.165102527 +1.08814609,3.9716258,-1.08814609,0.00030850948,0.463201642,0.256558299,0.176956117,-0.20434466,0.0190112945,1.53893483 +0.350391269,3.97169948,-0.350391269,0.00252081919,0.145058498,0.0625355691,-0.946106017,-0.663333654,0.0189350061,0.498138875 +0.199567214,3.97240257,-0.199567214,0.000661741244,0.151675284,0.0641643927,-1.24995899,-0.315166116,0.0189215746,0.282951504 +-1.02574575,3.97243667,1.02574575,0.00107717491,0.150813565,0.0699314922,0.044323869,-0.128187642,0.0190193299,1.45075989 +-0.156269953,3.9727006,0.156269938,0.000658586738,0.156711772,0.0668735355,-1.24432087,-0.31637162,0.0189320501,0.221042484 +0.193729401,3.97306037,-0.193729416,0.000695996743,0.152440146,0.0645407438,-1.25133264,-0.297739446,0.0189206209,0.27414912 +0.398738563,3.97327566,-0.398738593,0.00232516695,0.146300241,0.0639685988,-0.786649406,-0.708539307,0.0189383794,0.564566195 +-0.469592988,3.97364378,0.469592988,0.00225478201,0.152046591,0.0690844432,-0.483052194,-0.728638113,0.018970916,0.664431095 +0.111001968,3.97376442,-0.111001953,0.000223900075,0.158136278,0.0704728886,-1.25903344,-0.107376821,0.0189167708,0.157288462 +0.298223794,3.97378159,-0.298223794,0.00178633304,0.145170614,0.0617065728,-1.08719718,-0.547303736,0.0189382173,0.422373116 +1.21276307,3.9738934,-1.21276307,0.000272223871,0.177423239,0.0867934227,-0.14404285,0.0211073458,0.019002948,1.71514606 +-0.342097044,3.97407055,0.342097044,0.00176453555,0.145861387,0.0634631887,-0.843299866,-0.706691861,0.0189269744,0.484420121 +-1.18792689,3.97436857,1.18792689,9.00353116e-05,0.631015182,0.443697512,0.424203694,0.182983056,0.0190200694,1.68007612 +-0.100387394,3.97461891,0.100387394,0.000312461139,0.155637145,0.0706764683,-1.27750516,-0.136228099,0.0189390983,0.142111525 +0.432042539,3.97479725,-0.432042539,0.00147666794,0.149217248,0.0659473464,-0.656889915,-0.72025454,0.0189443603,0.611496687 +-0.544956565,3.97482204,0.544956565,0.00106783363,0.155952573,0.0716941059,-0.290664881,-0.645158887,0.0189878866,0.770694315 +-0.153052345,3.97518849,0.15305233,0.000132939487,0.157146007,0.0671721324,-1.24098694,-0.306514412,0.0189319029,0.216566429 +-0.0837260783,3.97528458,0.0837260857,0.00027399126,0.150559127,0.0745498836,-1.27542841,-0.0399557613,0.0189366471,0.118491627 +0.413346261,3.97545576,-0.413346291,0.000311840675,0.147322729,0.0646636188,-0.723232269,-0.72296989,0.0189377032,0.585948467 +-1.20929003,3.97567725,1.20929003,0.00024759298,0.190214664,0.0949037001,-0.153233677,0.0244893078,0.0190192796,1.71020865 +-0.0709680989,3.97602081,0.0709680989,0.000118918237,0.219032481,0.140877217,-1.22220123,0.0590061434,0.018932391,0.100403368 +1.03514338,3.97615719,-1.03514338,0.00124429748,0.154766843,0.0724710375,0.0410205275,-0.125116915,0.0190070122,1.46401143 +-0.543469489,3.97622156,0.543469489,0.00124081457,0.15586175,0.0716162696,-0.295275658,-0.646463871,0.0189869311,0.768606842 +-0.319545239,3.97626901,0.319545239,0.000297253748,0.145219743,0.0627853125,-0.898967385,-0.682929754,0.0189192351,0.454241991 +-0.537750363,3.97633791,0.537750363,0.0012590494,0.155585349,0.0713888928,-0.310712993,-0.652913809,0.0189854912,0.760497928 +0.0685863271,3.97668695,-0.0685863197,0.000138349773,0.240436822,0.154354364,-1.1667428,0.0488650724,0.0189096872,0.0979094356 +0.0812857449,3.97676229,-0.0812857449,0.00033290172,0.161676675,0.0813492462,-1.22857773,-0.0141767533,0.018909907,0.11607179 +0.0978833884,3.97685719,-0.0978833884,0.000299046398,0.157806695,0.0722451359,-1.24408913,-0.0764995515,0.0189132001,0.139806718 +-0.0709395558,3.97690344,0.0709395558,1.02136946e-05,0.219101638,0.140893415,-1.21978903,0.0589469522,0.018931739,0.100399666 +-0.544130504,3.97693253,0.544130504,1.99091619e-06,0.155939579,0.0716124102,-0.294270366,-0.644438565,0.0189865194,0.769543052 +-0.0836640224,3.97694921,0.0836640149,3.67374196e-05,0.150624558,0.0745927766,-1.27066219,-0.0398990177,0.0189355649,0.118485808 +-0.100281991,3.97700667,0.100281991,2.9317951e-05,0.15573962,0.0707741752,-1.27069724,-0.136199012,0.0189377256,0.142104 +-0.543592036,3.97709298,0.543592095,5.98619351e-07,0.155906051,0.0715900809,-0.295397907,-0.645083487,0.0189863946,0.768802822 +-0.543115735,3.97719002,0.543115795,3.39767007e-06,0.155887604,0.0715743229,-0.296511948,-0.645697415,0.0189862438,0.768128097 +0.142775431,3.97733831,-0.142775431,0.00072494481,0.158550113,0.0681011826,-1.25485468,-0.181657851,0.0189131703,0.203277841 +-1.22881925,3.97739744,1.22881925,0.000105114173,0.126988292,0.0662225187,-0.433539957,-0.00295555033,0.0190183111,1.73785329 +-0.543868899,3.97749472,0.543868899,0.000192334483,0.155924961,0.0715947598,-0.29502219,-0.644217014,0.0189861394,0.769190371 +-1.22271729,3.97751331,1.22271729,0.000231196071,0.15045993,0.0708925128,-0.387179166,0.00197973615,0.0190181434,1.72922349 +-1.2153945,3.97765279,1.2153945,0.000222421295,0.173417583,0.0853528529,-0.246336251,0.00929142907,0.0190179609,1.7188673 +-0.101993546,3.97778511,0.101993546,0.000326388137,0.155929163,0.0706837997,-1.26776516,-0.141685098,0.0189372394,0.144388199 +-0.0709666386,3.97787952,0.0709666386,0.000117908974,0.219114512,0.140876427,-1.21734333,0.0589134023,0.0189309865,0.10039787 +-0.15404813,3.97787976,0.15404813,6.63930859e-06,0.157286361,0.0672093257,-1.2325294,-0.309246212,0.0189305469,0.218144611 +0.117572904,3.97796988,-0.117572904,0.000682707177,0.158565685,0.0696334094,-1.25096118,-0.123665422,0.0189155284,0.166922674 +-0.545755625,3.97819352,0.545755625,0.00159809494,0.156041726,0.0716602132,-0.291032463,-0.641761422,0.0189858787,0.77182436 +-1.06116199,3.97833848,1.06116199,0.00073853822,0.183728933,0.0902074575,0.0639306679,-0.136730105,0.0190167259,1.50085175 +-1.08417726,3.97836733,1.08417737,0.000289695337,0.448425531,0.24504742,0.179583207,-0.193205997,0.0190174412,1.5333457 +-0.542875707,3.97861314,0.542875707,0.00196819659,0.155920118,0.0715755448,-0.296688825,-0.643750846,0.0189852342,0.767758965 +-0.940617263,3.97865319,0.940617263,0.000603977474,0.151131675,0.0705235079,0.166263223,-0.240457103,0.0190092083,1.33056235 +-0.0837253556,3.97878814,0.083725363,0.000271807628,0.150641263,0.0745989308,-1.26581538,-0.0399353057,0.0189343356,0.118482977 +1.22882652,3.97883272,-1.22882652,9.09181763e-05,0.109932959,0.0563588627,-0.377171814,-0.00150077848,0.0189995952,1.73785317 +1.22296453,3.97894621,-1.22296464,0.000199762027,0.134992316,0.0619828179,-0.32931152,0.00518754032,0.0189995375,1.72956312 +1.2159363,3.97908235,-1.2159363,0.000215595617,0.157794654,0.0754899904,-0.199251652,0.0161992628,0.0189993996,1.71962368 +-0.152474746,3.9790988,0.152474731,0.000471845706,0.157420397,0.0673751906,-1.23042369,-0.304534703,0.0189303476,0.215763316 +-0.154985979,3.97935057,0.154985979,0.000197382091,0.157362401,0.0672433153,-1.22736228,-0.310972124,0.0189297833,0.219354451 +-0.10038878,3.97964287,0.10038878,0.00026274554,0.155845761,0.0708574876,-1.26352966,-0.136065677,0.0189362243,0.142100424 +1.00029993,3.98038316,-1.00029993,0.0013402456,0.154888988,0.072587043,0.109946564,-0.1684459,0.0190031473,1.41465962 +0.548253655,3.98100185,-0.548253655,0.00193945738,0.161798611,0.0742779374,-0.239357278,-0.653456986,0.0189812016,0.77603662 +0.635554433,3.98176908,-0.635554433,0.00163697952,0.166924894,0.0780651495,0.00499019399,-0.539741516,0.0189971346,0.899534583 +1.08094597,3.98212147,-1.08094597,0.000193041546,0.459460735,0.257612586,0.192999631,-0.206291258,0.019004602,1.52881348 +1.00545287,3.98285794,-1.00545287,0.00026142475,0.154726699,0.0724690184,0.0965658724,-0.161444336,0.0190018695,1.42195904 +-0.944337606,3.98309088,0.944337666,0.000376626762,0.150878698,0.0703763887,0.158240095,-0.234634876,0.0190059394,1.33570051 +-0.271879613,3.9831512,0.271879613,0.000873849378,0.146196514,0.0625127554,-1.0070802,-0.579364181,0.0189132988,0.385552168 +-0.951348424,3.98363185,0.951348424,0.00107755116,0.150437117,0.0701028854,0.14619188,-0.225441903,0.019006053,1.34550369 +1.00274634,3.98425555,-1.00274622,7.74955333e-06,0.154827014,0.072532922,0.101427279,-0.165178984,0.019000845,1.41816771 +-0.988730192,3.98446226,0.988730192,0.00337607786,0.148071736,0.0686427653,0.0902065188,-0.17738384,0.0190082323,1.39868236 +0.208041906,3.98467135,-0.208041891,0.000761365867,0.151836306,0.0644326508,-1.20687842,-0.319797337,0.0189177338,0.294385791 +-0.861185193,3.98579407,0.861185193,0.00478683971,0.158640504,0.0744992793,0.192061603,-0.321770161,0.0190010183,1.21903634 +-1.22880638,3.98594093,1.22880638,4.97646761e-05,0.126112968,0.0660255477,-0.430904925,-0.00146485539,0.0190120656,1.7378664 +1.06045735,3.98601961,-1.06045735,0.000956745702,0.180424422,0.088510938,0.0422738492,-0.14279899,0.0190015528,1.49979579 +-1.22319412,3.98604512,1.223194,0.000108897948,0.148284808,0.0697298273,-0.39111954,0.00330266356,0.0190118998,1.72992909 +1.00360167,3.98612261,-1.00360167,6.14683904e-06,0.154989824,0.0726143643,0.0977971107,-0.16481711,0.0189996306,1.41937029 +-1.21645916,3.98617053,1.21645916,0.000124773738,0.171260372,0.0843870193,-0.255789876,0.0103077665,0.0190117173,1.72040403 +0.757030249,3.98655367,-0.757030249,0.00323089655,0.166365042,0.077848129,0.181452245,-0.409435332,0.0189943481,1.07090843 +-0.223580122,3.98672485,0.223580122,0.00208430132,0.150113687,0.0637154654,-1.09590495,-0.478490114,0.0189158302,0.319160253 +0.238943368,3.98681879,-0.238943368,0.00284147193,0.149135292,0.063029848,-1.16030908,-0.409215242,0.0189224295,0.342080832 +1.00201929,3.9868474,-1.00201929,9.73386122e-05,0.154897749,0.0725717768,0.100890234,-0.166689888,0.0189991426,1.41712773 +-0.120531581,3.9874649,0.120531581,0.000850281795,0.158563435,0.0695019439,-1.23271859,-0.211479962,0.0189305674,0.172151446 +-1.07887113,3.98811436,1.07887101,0.000247753283,0.43770951,0.24095723,0.182682186,-0.187663287,0.0190101452,1.52589536 +1.00520372,3.98899508,-1.00520372,0.00071954669,0.155029148,0.0726414397,0.092929706,-0.163698405,0.0189976301,1.4215939 +0.608864427,3.98923349,-0.608864427,0.0017989513,0.165334344,0.0769494623,-0.0573651642,-0.566054583,0.0189891476,0.862480521 +-0.297125459,3.99053431,0.297125459,0.00127805886,0.146478802,0.0629411265,-0.921544373,-0.617016196,0.0189127978,0.42078203 +0.068977721,3.99084759,-0.0689777136,0.000119168792,0.241173968,0.154244468,-1.13338721,0.046138525,0.018902747,0.0978601053 +0.406879693,3.9908824,-0.406879723,0.00253327633,0.147721976,0.0647445619,-0.729216218,-0.684776545,0.0189313013,0.576080322 +-0.938289881,3.99093032,0.938289881,0.00135928264,0.151726767,0.0708243102,0.157365486,-0.239097312,0.0189991426,1.32711112 +0.986173749,3.99172068,-0.986173749,0.00149339705,0.156017631,0.0731794462,0.121205181,-0.183499634,0.0189955235,1.39466846 +0.0817849562,3.99172401,-0.0817849562,0.000274600025,0.162580192,0.0818204656,-1.19120359,-0.0145171229,0.0189029481,0.116024129 +0.166848451,3.99199009,-0.166848451,0.00112468645,0.157516658,0.0673155189,-1.21013975,-0.227215663,0.0189073123,0.236961097 +-0.257748783,3.99231696,0.257748783,0.00146365783,0.148159876,0.0630852208,-1.01452971,-0.536614299,0.0189107247,0.365601689 +-0.394294322,3.99242783,0.394294322,0.00323816761,0.148810863,0.0656965896,-0.676453233,-0.700882673,0.0189323984,0.558789372 +0.0985229909,3.99254942,-0.0985229909,0.000294697675,0.158794194,0.0727568492,-1.20226264,-0.0735412315,0.0189064443,0.139759943 +-0.318302155,3.99279809,0.318302155,0.00118218805,0.146372005,0.0633155331,-0.86891377,-0.652705908,0.018912226,0.452115655 +1.07846606,3.99417591,-1.07846606,0.00031992502,0.40841648,0.223795071,0.149698213,-0.187755898,0.0189962462,1.52526355 +-0.181153357,3.99538732,0.181153372,0.000366760069,0.156209707,0.066572994,-1.14519262,-0.370642364,0.0189197958,0.256190151 +0.683450222,3.99558687,-0.683450222,0.00195285259,0.166232973,0.0776628554,0.0839331448,-0.471048027,0.0189915672,0.967278719 +-0.430257618,3.99612379,0.430257618,0.00146959652,0.15092288,0.0675642937,-0.56897819,-0.708464503,0.0189406816,0.610589862 +-0.183305532,3.99659848,0.183305517,0.000601038395,0.156094968,0.066508621,-1.13872242,-0.375660837,0.018919019,0.259245515 +-0.18347992,3.99664783,0.18347992,0.000640063547,0.156081617,0.0665027574,-1.13824892,-0.376092017,0.0189189762,0.259487629 +0.936332345,3.99666429,-0.936332345,0.00247943006,0.159344986,0.0750395358,0.194611296,-0.238789991,0.0189902168,1.32434094 +-0.183155239,3.99677753,0.183155224,0.000140810065,0.156124398,0.0665258765,-1.13841748,-0.375168025,0.0189189482,0.259034872 +-0.183275297,3.99681163,0.183275282,3.04342421e-07,0.156116009,0.0665202737,-1.1381619,-0.37547791,0.0189189184,0.259211034 +0.923211455,3.99692059,-0.923211396,0.0018607151,0.160305277,0.0754876509,0.199907899,-0.256608218,0.0189890712,1.30572951 +-0.607865453,3.9973402,0.607865453,0.00307601038,0.159906715,0.0739502162,-0.149988174,-0.561722875,0.0189799983,0.860584021 +-0.183678389,3.99751282,0.183678389,0.000542809372,0.156125456,0.0665368885,-1.13557887,-0.375887901,0.0189185459,0.259763151 +-0.148446858,3.99764776,0.148446858,0.000459401053,0.158702195,0.0684479326,-1.1811974,-0.288853049,0.0189222917,0.209944576 +-0.182839185,3.99814153,0.182839185,0.000571194745,0.156233832,0.0666096509,-1.13505793,-0.373860419,0.018918341,0.258575469 +-0.622221828,3.99815226,0.622221828,0.0016863792,0.161046922,0.0746649876,-0.114114128,-0.54630059,0.0189821664,0.880703211 +-1.21089411,3.9984386,1.21089411,0.000205475648,0.202940539,0.104739279,-0.112343006,0.0118815862,0.0190031622,1.7124722 +0.138081506,4.0011816,-0.138081506,0.000585704402,0.159964144,0.0695295408,-1.18442917,-0.171217367,0.0189028289,0.197518677 +0.550449967,4.00147343,-0.550449967,0.00152977684,0.161900848,0.0741801038,-0.234213173,-0.621761382,0.0189757068,0.779117167 +-1.21659899,4.00154686,1.21659899,0.00020098353,0.165748864,0.0816117302,-0.244606853,0.00690220296,0.0190011449,1.72054827 +1.00270367,4.00165939,-1.00270367,0.00128652831,0.155015185,0.0726571679,0.0932156891,-0.161287248,0.018988736,1.41804981 +-1.22879887,4.00238419,1.22879887,9.08813672e-05,0.127380729,0.0668741167,-0.41498512,-0.000812346931,0.0190007277,1.73780024 +-1.22329915,4.00244856,1.22329915,0.000201391129,0.145872623,0.0687300041,-0.376511425,0.00329363206,0.0190005824,1.73002243 +0.0685868561,4.0030508,-0.0685868561,0.000113242881,0.240921691,0.153566435,-1.10556531,0.044297982,0.0188960191,0.0978284925 +-0.070183441,4.00305223,0.070183441,0.000219194073,0.22048068,0.14097394,-1.15397859,0.0567784682,0.0189102609,0.100326449 +-0.0828410387,4.00309181,0.0828410387,0.000491933548,0.151399791,0.0749802962,-1.20139909,-0.0394913033,0.0189167,0.118418574 +0.0813630521,4.00309753,-0.0813630521,0.000247269112,0.163234368,0.0820734203,-1.16293836,-0.0165510811,0.0188970435,0.116002299 +0.0980585143,4.00313616,-0.0980585217,0.000158146227,0.1596535,0.0731910989,-1.17414188,-0.0742970556,0.0189010929,0.139746934 +-0.099371016,4.00313663,0.099371016,0.000380490557,0.156374037,0.0713839158,-1.19997716,-0.133351326,0.018921515,0.142041832 +0.856150031,4.00328588,-0.856150091,0.00420905091,0.163600579,0.0768931136,0.218805164,-0.324351341,0.0189839657,1.21105134 +0.102860592,4.0035553,-0.102860592,0.000487375946,0.15953058,0.0725164339,-1.17477095,-0.0834016651,0.0189017281,0.146355733 +-1.03270078,4.00558996,1.03270078,0.00107447174,0.151247919,0.0703735724,0.0187349226,-0.129858539,0.0189950615,1.46048856 +0.150801599,4.00567722,-0.150801599,0.000899046194,0.159851402,0.068909809,-1.17381167,-0.19515188,0.0188998096,0.215332717 +-0.355567992,4.00604343,0.355567992,0.00275315857,0.148751855,0.0651168004,-0.737449169,-0.672305346,0.0189132188,0.503961265 +0.368221879,4.00609159,-0.368221879,0.0013747639,0.147581816,0.0640880242,-0.832526326,-0.615720749,0.0189248398,0.52215445 +0.441058397,4.00609493,-0.441058397,0.00255653867,0.150515527,0.066605106,-0.613932967,-0.665104389,0.0189329237,0.624080777 +1.20533085,4.00662088,-1.20533085,0.000488099293,0.226835519,0.117982388,0.0605810173,0.0358252674,0.0189795792,1.70478046 +0.329670101,4.00672436,-0.329670072,0.00161693664,0.147670433,0.0633446276,-0.923252583,-0.571234763,0.0189183988,0.469863802 +-0.891156971,4.00705862,0.891156971,0.00506344764,0.157685578,0.0740392208,0.182163239,-0.283593208,0.0189832915,1.26102829 +1.20080626,4.00740814,-1.20080626,0.000255060557,0.325619578,0.189695597,0.257552087,0.0512479432,0.018978186,1.69838071 +1.19703579,4.00806427,-1.19703579,0.00010959043,0.584535837,0.420628905,0.452612936,0.0594973899,0.0189770944,1.69304752 +-1.05802655,4.00851011,1.05802655,0.000867139956,0.174991295,0.0848232061,0.0236326549,-0.13012591,0.0189945586,1.4963057 +0.938476026,4.00921106,-0.938476086,0.000276518549,0.159408554,0.0750473365,0.181586131,-0.234374449,0.0189827085,1.32748675 +-0.118220106,4.00930929,0.118220106,0.000435629481,0.159362927,0.0704859123,-1.17397141,-0.19915314,0.018919114,0.168210909 +-1.20444429,4.00981522,1.20444417,0.000233605344,0.238780916,0.128131881,0.0442942865,0.016253937,0.0189952273,1.703403 +0.932887793,4.0098753,-0.932887793,0.00178919721,0.159688652,0.0751890093,0.186861008,-0.240083769,0.0189818013,1.31960702 +-1.20028567,4.01027632,1.20028567,0.000170368061,0.336150914,0.202877969,0.249832287,0.0183730125,0.0189943481,1.69752157 +-1.19682026,4.01066065,1.19682026,7.33426496e-05,0.605597258,0.450968802,0.459576666,0.0148888659,0.0189935174,1.69262064 +-1.07646799,4.01073837,1.07646799,0.000294535275,0.337106943,0.176729992,0.0900683701,-0.153309181,0.0189939104,1.52238655 +1.21854925,4.01276493,-1.21854925,0.000198018766,0.147350594,0.0702285767,-0.196069509,0.015002571,0.0189756863,1.72345209 +1.22409832,4.01277351,-1.22409832,0.0002353194,0.128193647,0.0586076714,-0.30443871,0.00718276436,0.0189756975,1.73130059 +1.22872245,4.01278067,-1.22872245,0.000107235785,0.108826473,0.0559293889,-0.335051,0.00118379877,0.0189756956,1.73784089 +0.185110733,4.01316643,-0.185110748,0.000471475825,0.155958027,0.0669183359,-1.1417855,-0.256179333,0.0188985653,0.261824489 +1.21381426,4.01354456,-1.21381426,0.000354319607,0.173827112,0.0858328789,-0.0986774191,0.0222048666,0.0189749971,1.71673214 +-0.109357022,4.0137434,0.109357029,0.000298333209,0.158602297,0.0713404864,-1.16639876,-0.168042287,0.0189167969,0.155495673 +-1.20631182,4.0144372,1.20631194,0.000174729226,0.227752775,0.121513046,0.012426246,0.0126719726,0.0189920329,1.70605516 +0.0985616744,4.01466465,-0.0985616744,0.000374992698,0.160278872,0.0736833215,-1.14316547,-0.0700143501,0.0188962668,0.13975367 +0.0817992389,4.01546621,-0.0817992389,0.000273571874,0.164544821,0.0828832015,-1.13039327,-0.0151896365,0.0188913643,0.115990348 +-0.637411118,4.01555634,0.637411118,0.0018556423,0.16145362,0.0747984201,-0.0946273357,-0.522343636,0.0189711098,0.90210104 +-0.139770195,4.01611519,0.13977021,0.000290392403,0.160065845,0.0697667673,-1.13598263,-0.259922087,0.0189148672,0.197802603 +0.0689704195,4.01631498,-0.0689704195,0.00011868478,0.242236406,0.154039323,-1.07138801,0.0421003401,0.0188896526,0.0978009105 +-0.766642511,4.01696396,0.766642511,0.00573813776,0.163820758,0.0768794939,0.112095058,-0.403214216,0.0189725608,1.0874083 +0.9397192,4.0175271,-0.9397192,0.00224253908,0.159597561,0.0751567408,0.176458031,-0.229838178,0.0189768951,1.32916558 +-0.141840845,4.0178442,0.141840845,0.000351567112,0.16007413,0.0696909204,-1.12943375,-0.266128957,0.0189138222,0.200786591 +-0.61828202,4.01789713,0.61828208,0.00094625901,0.160568044,0.0741562694,-0.133170098,-0.533528268,0.018967675,0.87558037 +-0.138333127,4.01898003,0.138333127,0.000313471799,0.160147607,0.0699520484,-1.12928057,-0.255015761,0.0189133994,0.195716605 +0.663807333,4.01947403,-0.663807333,0.00147702987,0.165741548,0.0772788003,0.046082899,-0.482233167,0.0189787652,0.939949214 +0.584255338,4.01947784,-0.584255278,0.00186879467,0.163071662,0.0752381682,-0.131996781,-0.560608745,0.0189719815,0.827460527 +0.641107738,4.01968575,-0.641107678,0.00171452202,0.165242285,0.0768872127,-0.00393878855,-0.506457686,0.0189789776,0.907291055 +-0.141255617,4.02177286,0.141255602,0.000369800837,0.160257652,0.069872193,-1.11941564,-0.263160914,0.0189118441,0.199890554 +-0.272929609,4.02271414,0.272929639,0.00176727795,0.149573401,0.0641933754,-0.901998878,-0.536961794,0.01889541,0.387239933 +-1.02147424,4.02312517,1.02147424,0.00100163941,0.15038465,0.0700581893,0.0259961821,-0.149059817,0.0189813599,1.44467163 +-0.295943856,4.02314043,0.295943856,0.00121007347,0.14917618,0.0642274246,-0.851753056,-0.561264098,0.0188967306,0.419527352 +-0.118176579,4.02460194,0.118176579,0.000408569438,0.160045981,0.0711225048,-1.13167691,-0.195816606,0.0189106185,0.167976916 +-0.100294739,4.02566338,0.100294739,0.000243799557,0.157140225,0.0721746013,-1.13925314,-0.134447619,0.0189080704,0.142035022 +1.0748719,4.02594805,-1.07487178,0.000400101097,0.270864129,0.137206003,0.0300856866,-0.140243798,0.0189730544,1.52028978 +-0.0836260915,4.02637625,0.0836260915,0.000273670157,0.151890904,0.075353682,-1.13971627,-0.0389096104,0.0188993067,0.1184012 +-1.19573617,4.02665043,1.19573617,5.03481351e-05,0.515894175,0.376239121,0.425540745,-0.0183703601,0.018982755,1.69104767 +-0.443226129,4.02675152,0.443226129,0.00509107905,0.152745306,0.0682326928,-0.50350076,-0.644415021,0.0189304184,0.628886938 +-0.684744954,4.02684307,0.684744954,0.00453757728,0.16352497,0.0761330649,-0.0129895173,-0.475016713,0.0189642254,0.969871461 +-1.19928718,4.02705717,1.19928718,0.000115005154,0.302356452,0.180090874,0.24639374,-0.00201104581,0.0189832188,1.69606972 +-0.147892758,4.027071,0.147892758,0.00054530974,0.160306349,0.0698344037,-1.09706616,-0.277254373,0.0189087819,0.209177747 +-0.0708622113,4.02715635,0.0708622113,0.000118758282,0.221573129,0.141061977,-1.09320486,0.0571462288,0.0188898593,0.100301884 +1.05569601,4.02719402,-1.05569601,0.00118763163,0.167395562,0.0802063569,-0.00193774304,-0.127331465,0.0189713556,1.49316788 +-1.20354855,4.02754593,1.20354855,0.000176189002,0.222984582,0.119297311,0.054970406,0.00131939165,0.0189833064,1.70209622 +-0.711148143,4.0280447,0.711148143,0.00358565571,0.163542598,0.0763322264,0.0297291465,-0.446601629,0.018965194,1.00796747 +0.516209722,4.02827454,-0.516209722,0.00113869889,0.158229485,0.0718132854,-0.330620527,-0.602173507,0.0189477764,0.73101747 +0.484708905,4.02872086,-0.484708905,0.00247758743,0.154619783,0.0694011301,-0.443018347,-0.633764029,0.0189331472,0.686602473 +1.02933359,4.02922869,-1.02933359,0.00187252008,0.155659556,0.0730547458,0.024788443,-0.138515487,0.0189693719,1.45588291 +0.0685659051,4.02926016,-0.0685659051,0.000116172268,0.242495179,0.15384984,-1.0384649,0.0410292298,0.0188818444,0.0977830589 +0.0979507416,4.02928877,-0.0979507416,0.000353038369,0.16136694,0.0744686946,-1.10326314,-0.0692069232,0.0188882146,0.139779955 +0.0813047141,4.02928925,-0.0813047141,0.000281726243,0.165832043,0.0836087614,-1.09328604,-0.0154069625,0.0188836604,0.115990914 +-0.102980964,4.02935123,0.102980964,0.000177275972,0.157580301,0.0721461177,-1.1276418,-0.142823637,0.0189059395,0.145826027 +-0.0707926303,4.02939701,0.0707926303,2.22546332e-05,0.221723974,0.141098261,-1.08738053,0.0571056642,0.0188879315,0.100296728 +-0.0835147649,4.02941751,0.0835147575,6.43013918e-05,0.152015284,0.0754375309,-1.13147783,-0.0386438891,0.0188969709,0.118393764 +-0.100129277,4.02944517,0.100129277,4.79562514e-05,0.15725708,0.0722934455,-1.12902319,-0.134019241,0.0189055484,0.142025501 +-1.07484257,4.02960014,1.07484257,0.000260141765,0.251920581,0.125576928,0.010961392,-0.125198111,0.0189803969,1.52017617 +-0.0708589703,4.03169727,0.0708589703,0.000117955256,0.221789896,0.141098335,-1.08178329,0.0571343154,0.0188858081,0.100295663 +-1.05602169,4.03247023,1.05602169,0.000748460763,0.166399077,0.0796751827,-0.0110464022,-0.122932479,0.018976938,1.49355567 +-0.0836211741,4.03253746,0.0836211815,0.000271938916,0.152049214,0.0754572451,-1.12355137,-0.038543351,0.0188944228,0.11839173 +0.855662346,4.03303051,-0.855662346,0.00280761905,0.163322404,0.0766979903,0.196850106,-0.310394943,0.0189667884,1.2108258 +-1.22864091,4.03305626,1.22864091,8.21018621e-05,0.129380643,0.0682344362,-0.385341763,0.000591902644,0.018979555,1.73768592 +-1.21704149,4.03307962,1.21704149,0.0003097851,0.154301748,0.075842306,-0.223510861,0.00108644087,0.0189794246,1.72129297 +-1.22346044,4.03309488,1.22346044,0.000184422301,0.141095459,0.0666590407,-0.349576086,0.00341567653,0.0189794153,1.73035908 +-0.100287385,4.03332376,0.100287378,0.000288028794,0.157408729,0.0724180266,-1.11892629,-0.133628115,0.0189029761,0.142021015 +0.128527597,4.03340435,-0.128527611,0.000580244872,0.161381692,0.0713014901,-1.09724331,-0.132948056,0.0188893266,0.181897804 +0.839095116,4.03357172,-0.839095116,0.00437410409,0.163885832,0.0768892616,0.197158292,-0.327431351,0.018964706,1.18745995 +0.129671574,4.03386879,-0.129671574,0.00025308723,0.161373809,0.0712504536,-1.09612727,-0.135066211,0.0188890286,0.183496088 +0.125654951,4.03406525,-0.125654951,0.000499922549,0.161437377,0.0717031807,-1.0948441,-0.126138762,0.0188888423,0.177758679 +0.241238564,4.03418541,-0.241238579,0.00219891616,0.152714223,0.0654053614,-1.03043628,-0.357879251,0.0188997649,0.342496663 +0.355339438,4.03498077,-0.355339408,0.00231282925,0.149731666,0.0648482814,-0.803627968,-0.544475615,0.0189118162,0.50454098 +0.128997609,4.03514242,-0.128997609,8.2498882e-05,0.161445543,0.0713384375,-1.09255743,-0.13354291,0.0188885201,0.182569176 +0.732154727,4.03601551,-0.732154727,0.00240289047,0.165758252,0.0773717761,0.134087652,-0.407959551,0.0189655982,1.03678727 +0.553860843,4.03604746,-0.553860843,0.00159190316,0.160904437,0.073579818,-0.216425806,-0.571294546,0.0189579185,0.785766482 +0.380905896,4.03614521,-0.380905896,0.00328076584,0.149972349,0.0653786883,-0.738549232,-0.573871672,0.0189127475,0.540113568 +-1.03014624,4.03659439,1.03014624,0.00107357709,0.150580242,0.0702226907,0.00565241929,-0.140727744,0.0189717319,1.45695734 +-0.233214259,4.03677273,0.233214259,0.00109731872,0.153965771,0.0663121194,-0.940615296,-0.452524036,0.0188934449,0.330151707 +0.198743522,4.0372591,-0.198743522,0.00122200127,0.157756418,0.0677783713,-1.06161427,-0.289211482,0.0188855529,0.286251187 +-0.996786356,4.03753996,0.996786356,0.00162787247,0.148150891,0.0688901842,0.0593119711,-0.167992532,0.018967323,1.40990901 +0.140689149,4.03811932,-0.140689164,0.000394084491,0.160940751,0.0707889274,-1.0822531,-0.153257698,0.018886188,0.198976904 +-0.488118231,4.03871489,0.488118231,0.00522384653,0.155139297,0.070085898,-0.403166294,-0.600383759,0.0189327858,0.691687226 +0.130133063,4.03961706,-0.130133063,0.000466108148,0.16155009,0.0714237019,-1.08056378,-0.133461744,0.018885985,0.184074819 +1.19529009,4.03964329,-1.19529009,6.07932016e-05,0.40558365,0.276157975,0.364571601,-0.0347435847,0.0189560093,1.69047248 +0.502780676,4.04064894,-0.502780676,0.00107831042,0.156775281,0.0707600564,-0.369628876,-0.597754538,0.0189351086,0.712924123 +1.1993432,4.04104805,-1.19934332,0.000140172007,0.25848031,0.145867646,0.23520872,-0.00828818139,0.018956257,1.6962049 +0.171500489,4.0414505,-0.171500489,0.00089943019,0.159566849,0.0691477954,-1.06799948,-0.210061654,0.0188820567,0.242775157 +1.21789718,4.04148865,-1.21789718,0.000225603231,0.140659377,0.0668128878,-0.170591787,0.00282510044,0.0189562216,1.72240281 +0.699489713,4.04157209,-0.699489713,0.00329534989,0.165295362,0.0770458132,0.083813183,-0.435570836,0.018965451,0.989642262 +1.22384787,4.04159307,-1.22384787,0.000158799638,0.127465531,0.058825288,-0.275911868,0.00349690719,0.0189561509,1.73081875 +0.0689254031,4.04164124,-0.0689254031,0.000120085373,0.243230253,0.153903127,-1.00742173,0.039657563,0.0188751798,0.0977650583 +1.22880757,4.04167986,-1.22880757,7.22871482e-05,0.114662774,0.0595966913,-0.308093637,0.000348637695,0.0189561564,1.73783278 +0.0817815214,4.04250717,-0.0817815214,0.000276818493,0.166654482,0.0841200203,-1.05943036,-0.0139532182,0.0188769754,0.116000533 +1.2042079,4.04273605,-1.2042079,0.000277332583,0.192992225,0.0989683419,0.0708170608,0.000273184851,0.0189556889,1.70308471 +0.0985825211,4.04326725,-0.0985825211,0.000522648217,0.161850378,0.0750445127,-1.06637287,-0.0677084178,0.0188812613,0.139828458 +0.798183203,4.04351473,-0.798183262,0.00319915824,0.164365292,0.0769291669,0.167323738,-0.353675753,0.0189596787,1.12905812 +-0.512759387,4.043787,0.512759328,0.00215986324,0.156483501,0.071090214,-0.337143272,-0.587737978,0.0189351011,0.727962792 +-0.165087163,4.04472446,0.165087163,0.000366930792,0.160300508,0.0697193667,-1.0291785,-0.312471092,0.0188981071,0.233992666 +-0.212725312,4.04496479,0.212725312,0.0012868417,0.156186104,0.067361027,-0.957888603,-0.407582104,0.0188915152,0.301802576 +-1.20938134,4.04587746,1.20938134,0.00024133535,0.172215596,0.0877332166,-0.0816268027,-0.0115400851,0.0189709701,1.71036375 +0.321386814,4.04625607,-0.321386814,0.00394886034,0.150803044,0.0651047081,-0.850370467,-0.497175217,0.0189010091,0.459939778 +-1.22869766,4.04646826,1.22869754,0.000100943966,0.131452426,0.0697792992,-0.390555561,-0.00140065118,0.0189704336,1.73772311 +-1.22308719,4.04649544,1.22308719,0.000224632589,0.141284525,0.0672285631,-0.34719646,-0.000484138262,0.0189703349,1.72978854 +0.171400517,4.04667521,-0.171400517,6.99764787e-05,0.159862503,0.0693945959,-1.05315411,-0.207895502,0.0188791566,0.242809191 +0.607444763,4.04667854,-0.607444763,0.00190470577,0.163642883,0.0756875202,-0.0846938267,-0.505040348,0.0189591087,0.859806657 +-1.07955313,4.0469141,1.07955313,0.000286406663,0.181366667,0.0846483037,-0.058585912,-0.127651393,0.0189691987,1.52674937 +0.17623657,4.04711008,-0.17623657,0.000736559741,0.15941973,0.0691090077,-1.04939258,-0.216746807,0.0188794937,0.249498054 +-1.2161113,4.04738617,1.2161113,0.00023103226,0.151540548,0.0743627772,-0.214955539,-0.0103673423,0.0189697444,1.71993065 +0.657885909,4.04750872,-0.657885909,0.00394689897,0.16486904,0.076674521,0.0229356438,-0.463697016,0.018961709,0.931473196 +-0.627021551,4.0485239,0.627021611,0.00317293103,0.160792574,0.0742649883,-0.125759631,-0.50161624,0.0189425834,0.88734144 +0.227289766,4.04869556,-0.227289766,0.00149266969,0.155539721,0.0670235455,-1.0036304,-0.316353202,0.0188890919,0.322770417 +1.07908094,4.04882813,-1.07908106,0.000309145835,0.174969792,0.0812183619,-0.0690434799,-0.129339069,0.0189567246,1.52623534 +-1.19277072,4.04925871,1.19277072,4.60250812e-05,0.390883327,0.276095986,0.394917667,-0.079167977,0.018967811,1.68689787 +1.19423294,4.04952812,-1.19423294,3.61580096e-05,0.34826529,0.23167792,0.333685726,-0.0652948245,0.0189493783,1.68900251 +0.172369644,4.05002117,-0.172369644,0.000753314875,0.159936219,0.0694871247,-1.04353762,-0.208071053,0.0188772846,0.244176969 +-1.19664001,4.05076504,1.19664013,0.000105988853,0.259947062,0.152314916,0.265481174,-0.0353533179,0.0189676732,1.69237006 +0.937123418,4.05087996,-0.937123418,0.00245159818,0.160278857,0.0754083395,0.157133251,-0.215747476,0.0189542044,1.32533348 +-0.116797514,4.05148029,0.116797514,0.000104008424,0.160782188,0.072090812,-1.06164193,-0.183974683,0.0188951194,0.165178552 +1.19842565,4.05156088,-1.19842553,8.47652336e-05,0.236841723,0.131724805,0.227188006,-0.0286954492,0.0189494006,1.6949321 +-0.162344933,4.05190277,0.162344933,0.000392042537,0.160678029,0.0701060072,-1.01266074,-0.304185987,0.0188947581,0.230095938 +-0.167249635,4.05225372,0.167249635,0.000917291502,0.16063951,0.070005767,-1.00586402,-0.313520938,0.0188941266,0.237063006 +-0.117737621,4.05236959,0.117737621,0.000191715808,0.160977677,0.0720612109,-1.05877531,-0.186938643,0.0188947339,0.166513711 +-1.20136845,4.05255222,1.20136845,0.000149707252,0.199166238,0.106065787,0.0829577744,-0.0207483098,0.018966645,1.69905424 +-0.117608845,4.05277872,0.117608845,8.41573419e-05,0.160962492,0.072078459,-1.05776143,-0.186412603,0.0188944526,0.166339099 +-0.117904082,4.05281305,0.117904082,0.000353376323,0.160992563,0.0720655993,-1.05746293,-0.187345371,0.0188944843,0.166752592 +-0.117728628,4.05282593,0.117728628,4.28876883e-05,0.160987064,0.0720724091,-1.05758381,-0.186829284,0.0188944563,0.16651465 +1.21133518,4.05322313,-1.2113353,0.00019905348,0.158839196,0.0780955181,-0.0548386201,-0.00631935801,0.0189485215,1.71310687 +0.51926446,4.0533061,-0.519264519,0.00209208298,0.15839234,0.0717136711,-0.323304534,-0.563200355,0.0189412627,0.735302806 +0.740449905,4.0534358,-0.740449965,0.00190124137,0.165019318,0.0769756064,0.130055979,-0.391197681,0.0189541467,1.04888082 +-0.205718666,4.05383682,0.205718666,0.0010607536,0.157384649,0.0681332648,-0.944121659,-0.390218586,0.0188889112,0.291900754 +1.20345688,4.0539999,-1.203457,0.000104309431,0.183195502,0.0934462249,0.0753703862,-0.0128194261,0.0189482868,1.70204782 +1.21749103,4.05421305,-1.21749103,8.56313491e-05,0.137849733,0.0653555021,-0.159405261,-0.00376370852,0.0189476963,1.72186899 +1.22364557,4.05431652,-1.22364557,9.40149039e-05,0.127333343,0.0590273775,-0.263735145,0.00152456691,0.018947592,1.73057318 +-1.06207895,4.05436325,1.06207895,0.000842788839,0.141297609,0.065603286,-0.0608543307,-0.109963626,0.0189610403,1.50203657 +1.22877419,4.05440235,-1.22877419,4.26794177e-05,0.117721125,0.0615154244,-0.297023356,-0.000105759165,0.0189476218,1.73782623 +-0.116677366,4.05455494,0.116677366,0.000155850343,0.160871074,0.0721842423,-1.05378091,-0.18296136,0.0188929159,0.165008411 +-0.327456057,4.05486441,0.327456057,0.00298127672,0.15134877,0.0659293979,-0.710432351,-0.567800641,0.0188819412,0.466581345 +-0.0701403022,4.05555677,0.0701403022,0.00021474954,0.223082364,0.141395256,-1.02221155,0.0559773594,0.0188644715,0.100261033 +-0.0827995017,4.05557251,0.0827995017,0.000481972937,0.152911052,0.0759802014,-1.06373,-0.0367511511,0.0188757107,0.118353717 +-0.099329412,4.05560112,0.099329412,0.00048638205,0.158047706,0.0729711503,-1.06100774,-0.128627285,0.0188871901,0.141974121 +0.0980966687,4.05570173,-0.0980966687,0.000261015375,0.162497103,0.0755944997,-1.03358471,-0.0700126439,0.0188743174,0.139894962 +0.0684951544,4.05571651,-0.0684951544,0.000127240113,0.242702127,0.153124169,-0.973150969,0.0391934887,0.0188668184,0.0977559835 +0.0813287869,4.05572987,-0.0813287795,0.000279498607,0.167260617,0.0844301358,-1.02535653,-0.0148080848,0.0188696068,0.116026595 +-0.220774233,4.05586958,0.220774233,0.0013587093,0.156294435,0.0676264986,-0.91669178,-0.411032498,0.0188855715,0.313027442 +0.260241568,4.05606842,-0.260241568,0.0034409184,0.153593495,0.0662887096,-0.934875369,-0.367043734,0.0188889764,0.370146871 +-0.956310809,4.05804157,0.956310749,0.00109631685,0.152575895,0.0712369531,0.0888817087,-0.206393674,0.0189459994,1.3524673 +1.06133842,4.05807066,-1.06133842,0.000927357469,0.136881754,0.0629955456,-0.0656613931,-0.102200933,0.0189486239,1.50114202 +-1.19070208,4.05835009,1.19070196,8.15262902e-05,0.310432434,0.208274677,0.33247447,-0.0839952976,0.0189622398,1.68402302 +-0.579661965,4.05843019,0.579661965,0.00249202363,0.158575237,0.072629042,-0.214928329,-0.521361709,0.0189339481,0.819822013 +-0.138942182,4.05900192,0.138942182,0.000841436908,0.161021411,0.0709159523,-1.02216685,-0.247208834,0.0188912749,0.198697954 +-0.799650729,4.05958652,0.799650729,0.00601278385,0.163410991,0.0767100304,0.113286763,-0.352982551,0.0189375374,1.13207507 +-0.213239938,4.05966187,0.213239923,0.00072752015,0.157222241,0.0681375265,-0.919701278,-0.397722185,0.0188847799,0.302445799 +1.18925166,4.05998993,-1.18925166,8.02910799e-05,0.288344264,0.182313457,0.285025299,-0.0846232623,0.018944189,1.68190742 +-1.19481373,4.06062937,1.19481373,0.000193923916,0.221561641,0.124721184,0.225379407,-0.042415563,0.0189614184,1.68983817 +0.498366117,4.06068897,-0.498366147,0.00167660753,0.157120466,0.0707038343,-0.378547817,-0.567131877,0.0189264212,0.706966996 +-0.953400195,4.06101418,0.953400195,0.00023081711,0.152865097,0.07140816,0.0917766318,-0.209668517,0.0189433545,1.34839833 +1.20635569,4.06255102,-1.20635569,0.000246287178,0.169808477,0.0850504711,0.0172211714,-0.0154947694,0.0189426895,1.70610797 +0.199516296,4.062644,-0.199516296,0.00121261878,0.158925712,0.0690372661,-0.992689073,-0.26610437,0.018873157,0.285446495 +-0.954610884,4.0631938,0.954610884,1.80592506e-05,0.152851507,0.071400702,0.0887680426,-0.208198383,0.0189417526,1.35012949 +-0.301746458,4.06328964,0.301746428,0.00168488827,0.152216077,0.0662821829,-0.738585055,-0.520985603,0.0188787933,0.429310322 +-1.19974792,4.06336403,1.1997478,0.000210655475,0.185427487,0.0969471633,0.0671911389,-0.0329361632,0.0189593155,1.69681644 +1.19384599,4.06366444,-1.19384599,0.000188550883,0.211820543,0.114120439,0.201703131,-0.0479880199,0.0189424697,1.68840528 +-0.950568914,4.06370449,0.950568855,0.00308177806,0.153226539,0.0715994984,0.0921077877,-0.21195741,0.0189409684,1.34437907 +-0.953225017,4.06412554,0.953225017,6.66229016e-06,0.153010964,0.0714876875,0.089999944,-0.209363759,0.0189408548,1.34819686 +-1.03815556,4.06461906,1.03815556,0.000913256605,0.14382945,0.0667153671,-0.0198045056,-0.118748486,0.0189508349,1.46820307 +-0.565720201,4.06474018,0.565720201,0.00204496784,0.158041835,0.072215192,-0.241832867,-0.526121557,0.0189278349,0.800147772 +1.21588075,4.06478977,-1.21588075,0.00019141665,0.137186751,0.0650403127,-0.154408738,-0.00965479203,0.0189408362,1.71957159 +1.22292268,4.0648694,-1.22292268,0.000196986366,0.128249407,0.0597607642,-0.262017876,-0.00178090995,0.0189407207,1.72953057 +-0.264627934,4.06487799,0.264627934,0.00280736876,0.153035223,0.0663507581,-0.813912153,-0.479152083,0.0188756306,0.377328932 +-0.57320255,4.06488037,0.57320261,0.0004244546,0.158232331,0.0723768324,-0.228011921,-0.51980257,0.0189286694,0.810890555 +1.22878432,4.06493616,-1.22878432,8.95906705e-05,0.119491898,0.0624677874,-0.303057224,-0.00227640267,0.0189407822,1.73782039 +-0.959654391,4.06546068,0.959654391,0.00132032344,0.15236339,0.0711567923,0.0824518427,-0.202942759,0.0189405624,1.3571794 +0.723294497,4.06604862,-0.723294556,0.00153075159,0.164667264,0.0767199546,0.103924461,-0.393044651,0.0189468283,1.02425873 +-1.20463228,4.06662607,1.20463228,0.000331129297,0.177425414,0.0914594829,-0.0168915763,-0.0311717633,0.0189569592,1.70370245 +1.0839206,4.06692696,-1.08392072,0.00039832195,0.0987396091,0.0413639657,-0.149389356,-0.132424444,0.0189442448,1.53308845 +-0.157173529,4.06719923,0.157173529,0.000441536249,0.161366031,0.0708355159,-0.980144978,-0.286153018,0.0188861545,0.222386301 +-1.0126431,4.06741047,1.0126431,0.00147149758,0.148341879,0.0691194311,0.0196685474,-0.152281418,0.0189456008,1.43239498 +0.59124279,4.06745815,-0.59124279,0.00183121371,0.162163109,0.0745591745,-0.134830713,-0.496518135,0.0189445317,0.837742031 +-0.170424968,4.06763363,0.170424968,0.000873442215,0.16122444,0.0705638453,-0.964233756,-0.311379403,0.0188860092,0.24121812 +1.01329017,4.06780052,-1.01329017,0.00117113884,0.155439705,0.0730063394,0.0438068807,-0.135776967,0.0189422835,1.43311787 +-0.953337669,4.06801462,0.953337669,0.000955958094,0.153187975,0.0715849847,0.0878354535,-0.207587928,0.0189377014,1.34829569 +1.19935572,4.06805801,-1.19935572,0.000204063734,0.172359645,0.0865019783,0.0721323341,-0.0292614773,0.0189393405,1.69619727 +0.85559684,4.06823349,-0.85559684,0.00379241398,0.163613558,0.0767534375,0.177301332,-0.291998506,0.0189427789,1.21047115 +0.0986897945,4.06838417,-0.0986897945,0.000263632333,0.163086444,0.0760971084,-1.00134587,-0.0655979812,0.0188680962,0.139964491 +-1.08471262,4.06847286,1.08471262,0.000223989686,0.0919388309,0.0380965732,-0.147879556,-0.127008289,0.0189552885,1.5341481 +0.245356798,4.06907558,-0.245356798,0.00219876645,0.155005321,0.0672151744,-0.931134701,-0.329123199,0.0188810639,0.348450124 +0.0818279982,4.06921196,-0.0818279982,0.000279250962,0.168536276,0.0852321461,-0.991777599,-0.013051521,0.0188627895,0.116052523 +-0.570011735,4.06973267,0.570011735,0.000962809543,0.158220366,0.0723394901,-0.231895,-0.51672107,0.0189244561,0.806355 +0.0689199269,4.07007456,-0.0689199269,0.000121080753,0.243800461,0.153425679,-0.937489629,0.0372140706,0.0188592263,0.0977447405 +0.549348474,4.07130909,-0.549348474,0.00295827584,0.159616873,0.0726525784,-0.252713442,-0.515161991,0.0189350527,0.77750212 +1.03715825,4.0718236,-1.03715825,0.0011266144,0.146302193,0.0680965707,-0.0149107482,-0.104424782,0.0189386532,1.46694446 +-0.575523734,4.0720768,0.575523734,0.00251956051,0.158323541,0.0724298954,-0.225769505,-0.511478603,0.0189232379,0.814095318 +0.114594683,4.07212019,-0.114594683,0.000250412064,0.163133696,0.0738359615,-0.993412197,-0.0922097117,0.0188680906,0.162061825 +0.114616238,4.07215691,-0.114616245,2.23169936e-05,0.163134992,0.0738344342,-0.993319035,-0.0922506899,0.018868072,0.162093014 +0.114604697,4.07215881,-0.114604697,3.67127359e-05,0.163135573,0.073835969,-0.99331218,-0.0922297686,0.0188680701,0.16207689 +0.114612117,4.0721693,-0.11461211,7.27020777e-10,0.163135707,0.0738352463,-0.993287027,-0.0922416002,0.0188680664,0.16208747 +0.114638276,4.07217169,-0.114638284,0.000302978035,0.163134694,0.0738333464,-0.993280828,-0.0922818929,0.0188680645,0.162123337 +0.114594281,4.07217598,-0.114594288,0.000168442231,0.163136438,0.0738384575,-0.993267894,-0.0922039524,0.0188680608,0.162061259 +0.114618145,4.07222271,-0.114618145,0.00024216267,0.163136527,0.0738361999,-0.993154049,-0.0922271386,0.0188680347,0.162094802 +0.134176537,4.07305861,-0.134176537,0.000306232076,0.162821978,0.0724639818,-0.990459144,-0.131365478,0.0188660007,0.19079341 +-0.836309671,4.07383156,0.836309612,0.0033603732,0.161961585,0.0760203376,0.111105181,-0.31101197,0.0189258605,1.1835109 +-1.08911097,4.0753932,1.08911097,0.000277043262,0.0724667162,0.0289640203,-0.154325128,-0.138157994,0.0189513918,1.5403316 +-0.961357892,4.07642937,0.961357832,0.00113810226,0.152481601,0.071224682,0.0766683295,-0.19524397,0.01893216,1.3595866 +0.227181524,4.07687187,-0.227181524,0.00104235474,0.156983346,0.0684343502,-0.92864728,-0.294797242,0.0188726,0.32284978 +0.141753972,4.07703447,-0.141753972,0.000876305858,0.162842646,0.0721945688,-0.978113711,-0.144302279,0.0188635439,0.201615468 +-0.201655507,4.07729197,0.201655507,0.00124303298,0.159050733,0.0694311559,-0.894048452,-0.368993104,0.0188775584,0.285533458 +-0.100258909,4.07844019,0.100258909,0.00027901915,0.159000039,0.073651135,-1.00246191,-0.12443164,0.0188711714,0.141958326 +-0.66459465,4.07897234,0.66459465,0.0036164436,0.162311658,0.0751762018,-0.0689668655,-0.445185125,0.0189189054,0.941206932 +-0.0836044028,4.07916069,0.0836044028,0.000273313548,0.153758883,0.0765207931,-1.00495112,-0.0362578407,0.018856233,0.118350118 +-0.0708460435,4.07997179,0.0708460361,0.000118630131,0.22443372,0.141894653,-0.964218616,0.0561281182,0.0188421961,0.100262351 +-0.101406127,4.08074141,0.101406135,9.79239194e-05,0.159255117,0.0736553147,-0.995893896,-0.127559766,0.0188697297,0.143672869 +1.00867665,4.08144617,-1.00867665,0.000132473506,0.154850841,0.0727414563,0.0473584905,-0.131371871,0.0189325288,1.42680299 +1.06834364,4.08146906,-1.06834364,0.00117727718,0.109564051,0.0484678671,-0.120983511,-0.0838509202,0.0189312771,1.51105738 +1.00006044,4.0817976,-1.00006044,0.0028667124,0.156335607,0.0735059083,0.0620926023,-0.140375122,0.0189324711,1.41462457 +-1.2131238,4.08182144,1.2131238,0.00056889985,0.145623147,0.0710787997,-0.203003287,-0.0411500931,0.0189463496,1.71582782 +-1.22162008,4.08186674,1.22162008,0.000404712162,0.142215624,0.0689223409,-0.349528193,-0.0145501439,0.0189462695,1.72784495 +-0.0835070014,4.08187532,0.0835069939,5.57308813e-05,0.1539101,0.0766215548,-0.997971058,-0.0360768102,0.0188539512,0.11834605 +-0.0707885474,4.08187771,0.0707885399,1.86567522e-05,0.224545613,0.141931161,-0.959521115,0.0560272299,0.0188404396,0.100260228 +-0.100109138,4.0818882,0.100109145,3.97959848e-05,0.159098595,0.0737356097,-0.993629694,-0.123555765,0.0188685507,0.141950727 +-1.2286998,4.08190393,1.22869968,0.000184125747,0.136883005,0.0736378655,-0.417445034,-0.00924166106,0.0189462062,1.7378583 +0.0981498957,4.08226919,-0.0981498957,0.00027186994,0.164029852,0.076730974,-0.965355873,-0.0635342151,0.0188597422,0.140033409 +0.06855537,4.08228397,-0.06855537,0.000113694012,0.243719667,0.153085172,-0.908032537,0.0367359854,0.0188515484,0.0977431238 +0.0813856572,4.08229733,-0.0813856572,0.000276404229,0.169637948,0.0858659223,-0.958537936,-0.0130937994,0.0188549329,0.116079114 +-0.123016596,4.08250618,0.123016596,0.000337615435,0.161922768,0.0727099329,-0.977156103,-0.195180893,0.0188763011,0.174133554 +-0.14295882,4.08282948,0.14295882,0.000457031536,0.162079245,0.0717732534,-0.957379222,-0.247058287,0.0188775789,0.202679262 +-1.06912529,4.08316851,1.06912529,0.000669689965,0.109420717,0.0485322513,-0.12446025,-0.0927490368,0.0189401656,1.51210594 +1.17881727,4.08329821,-1.17881727,0.000133374007,0.156105936,0.084167406,0.182641014,-0.128406078,0.0189322047,1.6672641 +-0.111100726,4.08342695,0.111100718,0.000219771915,0.160559207,0.0733244568,-0.982795,-0.157113582,0.0188717544,0.157142818 +-0.0708428621,4.08372259,0.0708428621,0.000118200791,0.224598125,0.141951457,-0.955276668,0.0560796894,0.0188385788,0.100261517 +-0.120812736,4.08376741,0.120812736,0.000116115079,0.161882147,0.0728252381,-0.975851655,-0.188433737,0.0188752003,0.171161428 +-0.387027085,4.08381987,0.387027115,0.00395305827,0.15408808,0.0683877468,-0.543616891,-0.547601461,0.0188788921,0.548163533 +0.617482543,4.08406544,-0.617482543,0.00350104598,0.16283147,0.0751549825,-0.0753368139,-0.457615733,0.0189351216,0.874532938 +0.902464747,4.08435917,-0.902464747,0.00302653387,0.16234085,0.0762500316,0.145680711,-0.236118585,0.0189319421,1.27638173 +-0.0835966691,4.08450365,0.0835966617,0.000272378471,0.153914228,0.0766316578,-0.991709352,-0.0359364636,0.0188515726,0.118345365 +0.177165389,4.08479309,-0.177165389,0.00058725971,0.160849765,0.070669353,-0.947728574,-0.203141958,0.0188584849,0.25148353 +-0.100241758,4.08522606,0.100241765,0.000253017293,0.159243345,0.0738378987,-0.985545158,-0.123073027,0.0188660417,0.141943738 +-0.943070114,4.08535242,0.943070114,0.0013089315,0.154691055,0.0723539889,0.084551394,-0.208092853,0.018922288,1.33371949 +-1.17515922,4.08620644,1.17515922,0.000131469249,0.17764169,0.10063614,0.250637054,-0.192926958,0.0189431328,1.6620369 +-0.11903654,4.0872426,0.11903654,0.000157563525,0.161732063,0.0730342418,-0.968322396,-0.181463614,0.018872017,0.168547541 +0.762909532,4.0883708,-0.762909591,0.00414354866,0.164624631,0.0768483877,0.124364361,-0.352001458,0.0189296044,1.07939517 +-0.356279761,4.08888483,0.35627979,0.003346971,0.153699219,0.0677399412,-0.601376414,-0.534478188,0.0188668892,0.504653811 +-0.880984426,4.089118,0.880984426,0.00563874841,0.160488039,0.0753586441,0.118041545,-0.260078132,0.0189143289,1.24731803 +0.421768516,4.08943748,-0.421768486,0.00367384963,0.153610304,0.0683147684,-0.555860281,-0.505158544,0.018894976,0.597223222 +0.141119227,4.08950186,-0.141119227,0.000555331586,0.16294983,0.0725417659,-0.946954072,-0.134859174,0.0188559499,0.200019389 +-0.521469474,4.08951807,0.521469474,0.00438343408,0.157272264,0.0715684891,-0.315131694,-0.528571606,0.0188985933,0.73888737 +-0.122256771,4.08972502,0.122256771,0.000214340966,0.162037507,0.0728929415,-0.960170865,-0.19044289,0.018871842,0.172971323 +0.456622481,4.09009552,-0.456622481,0.00444647158,0.155704141,0.069776915,-0.458197623,-0.512738168,0.0189026129,0.646134257 +-1.00447381,4.09010124,1.00447369,0.00165561051,0.148178428,0.0690623522,0.0250478722,-0.15040426,0.0189268161,1.42095423 +1.02038097,4.09037256,-1.02038097,0.000795247499,0.149163142,0.0696874782,0.0205336995,-0.111588307,0.0189256389,1.44315004 +1.18417776,4.09046412,-1.18417764,0.00032228342,0.157449692,0.07785099,0.14910011,-0.0895320177,0.0189268924,1.67484617 +1.20341563,4.09211063,-1.20341563,0.000328361697,0.140507102,0.0671399757,-0.0445590913,-0.0427527577,0.0189236477,1.70209146 +-1.07502913,4.09213924,1.07502913,0.000810930855,0.096936956,0.0421780683,-0.141327828,-0.09402477,0.0189341027,1.52041841 +1.00814676,4.09328842,-1.00814676,0.000706060731,0.154523998,0.0725303218,0.045251213,-0.123210266,0.0189237799,1.42602277 +1.10317123,4.09371901,-1.10317111,0.000267790369,0.0324550644,0.0117110629,-0.166899621,-0.178461596,0.0189256426,1.56012893 +-1.16794968,4.09407425,1.16794968,0.00019120943,0.138284445,0.0715015754,0.191504613,-0.230978996,0.0189366154,1.65184367 +-1.18082082,4.09437084,1.18082082,0.000313471101,0.162974596,0.0835039392,0.186892599,-0.122437552,0.0189365819,1.67004442 +0.0689151958,4.09466743,-0.0689151958,0.000123260281,0.244130701,0.153032422,-0.877995849,0.0351166055,0.0188442729,0.0977359265 +1.10396206,4.09483576,-1.10396206,2.90714197e-05,0.0298420917,0.0106732054,-0.16799733,-0.180357918,0.0189248491,1.56125569 +1.21160853,4.09511852,-1.21160853,0.00041685297,0.133657753,0.0632521585,-0.13015312,-0.0305466764,0.0189213715,1.71365118 +1.16547382,4.09515667,-1.16547382,0.000142374731,0.0989367738,0.0475534312,0.0981286168,-0.167122319,0.0189243462,1.64830732 +1.22092628,4.09532452,-1.22092617,0.000346974412,0.130594403,0.0617542863,-0.252348721,-0.00986513123,0.0189210251,1.72682977 +0.166058585,4.09546375,-0.166058585,0.00062322797,0.16242677,0.0718476474,-0.92470789,-0.177278727,0.0188508462,0.236242577 +1.22868967,4.09549665,-1.22868967,0.000157738788,0.125414968,0.0655437261,-0.314462543,-0.00696454197,0.0189210325,1.73781002 +0.0818536356,4.09555912,-0.0818536282,0.000284239708,0.170589983,0.0864763856,-0.926143885,-0.0116279554,0.0188476108,0.116086461 +-1.10534763,4.09556007,1.10534763,0.000315033947,0.0307218879,0.0110548884,-0.151250094,-0.168235272,0.0189369898,1.56334162 +1.10588086,4.09579182,-1.10588086,0.00026566186,0.0292537119,0.0104653733,-0.162701696,-0.181926534,0.0189241283,1.5639571 +-0.149667591,4.09625006,0.149667591,0.000737075869,0.162305579,0.0719810352,-0.915826142,-0.257423878,0.0188703202,0.212213859 +0.0987614393,4.09631824,-0.0987614393,0.000379400328,0.164678201,0.0772560313,-0.930774689,-0.0582996272,0.0188519359,0.14006415 +-1.03372359,4.09654617,1.03372359,0.00101057638,0.138810158,0.0641577318,-0.0271607898,-0.112114936,0.0189254023,1.4619869 +-0.136062697,4.09869528,0.136062697,0.000335515564,0.162291855,0.0724346936,-0.925022364,-0.223017156,0.0188673902,0.19264318 +0.971850574,4.09894419,-0.971850574,0.00194966258,0.158567443,0.0745135695,0.0838796943,-0.158759132,0.0189210922,1.37446856 +1.19061041,4.0990634,-1.19061041,0.000530207413,0.148653001,0.0717675239,0.065609701,-0.0654767677,0.0189195406,1.6839447 +-1.11465216,4.10135746,1.11465216,0.000319887185,0.0306874327,0.0109719438,-0.131153062,-0.182808027,0.0189312752,1.57651091 +0.80585444,4.10158348,-0.80585444,0.00289197266,0.164020941,0.0767345577,0.144446641,-0.308612853,0.0189181026,1.14114916 +1.04736876,4.10249901,-1.04736876,0.00177154317,0.137568742,0.0635399222,-0.0479247198,-0.0708658919,0.0189160183,1.48139167 +0.431910396,4.10260344,-0.431910366,0.000330537412,0.154676795,0.0690844283,-0.505537868,-0.491990626,0.0188887529,0.61251533 +1.15651965,4.10281229,-1.15651953,0.000117856187,0.0600770824,0.025513377,0.0415188074,-0.191187575,0.0189192221,1.6356895 +-1.04804337,4.10391045,1.04804337,0.000759711838,0.134935975,0.0621771365,-0.0530947149,-0.092037864,0.0189216826,1.48229229 +-1.1876123,4.10415602,1.1876123,0.000308859017,0.156843513,0.0779138729,0.0580835268,-0.0904039443,0.0189280882,1.67964983 +1.14966309,4.10424566,-1.14966297,0.000205993987,0.050076019,0.0205045119,0.00373290293,-0.193264201,0.0189179406,1.62600398 +-0.377150744,4.10444975,0.377150714,0.000768615806,0.154960543,0.0688017011,-0.533843756,-0.515045524,0.0188605301,0.535182357 +0.158337444,4.10451126,-0.158337444,0.000455277681,0.162669718,0.0723474473,-0.904209137,-0.156926334,0.0188457612,0.224446058 +-1.19302273,4.10510159,1.19302273,0.000433970592,0.150624052,0.0738098621,-0.0231580995,-0.0855533481,0.0189275052,1.68728054 +-1.14640474,4.1055479,1.14640474,0.000287002942,0.0700816885,0.0289976057,0.00653707422,-0.252674192,0.0189247131,1.62141299 +-1.17393517,4.10607862,1.17393506,0.000497117871,0.145770997,0.0714590624,0.154556349,-0.157655537,0.0189267844,1.66030908 +0.175245628,4.10624361,-0.175245628,0.000851312478,0.162075996,0.0718054026,-0.892120481,-0.183585197,0.0188455805,0.248919889 +-0.721712947,4.10643435,0.721712947,0.00147738308,0.163955763,0.0764363334,-0.00493829884,-0.39782998,0.0188992769,1.0211184 +0.118175611,4.10662508,-0.118175618,0.000170069325,0.164020166,0.0745299757,-0.906965852,-0.089488551,0.018847337,0.168253407 +0.422668517,4.10665798,-0.422668517,0.00123988837,0.15466848,0.0690421388,-0.522421956,-0.478789479,0.0188856646,0.599605441 +-1.13563406,4.10707092,1.13563406,0.000321928354,0.0489766635,0.0185997486,-0.0598783344,-0.231629461,0.0189237688,1.60617495 +1.13071692,4.10727501,-1.13071704,0.000413169793,0.0250605717,0.00905492157,-0.0927539095,-0.20035848,0.0189153776,1.59922338 +0.126727581,4.10805702,-0.126727581,0.000537847518,0.163792998,0.074082166,-0.901979566,-0.102026165,0.0188460518,0.179543555 +-0.0827773884,4.10810614,0.0827773884,0.000523315684,0.154738754,0.0772176608,-0.933958948,-0.0334599875,0.0188311581,0.118327983 +-0.0701358542,4.10811615,0.0701358542,0.000233940838,0.225912541,0.142492339,-0.897373438,0.0546923317,0.0188159868,0.100256778 +-0.0992688239,4.10812092,0.0992688313,0.000609871,0.160061285,0.0744573101,-0.930571079,-0.117687568,0.0188482031,0.141898364 +1.17079258,4.10845089,-1.17079258,0.000347339519,0.118269563,0.0545758717,0.0875974298,-0.12556316,0.0189129524,1.65582967 +-0.116667822,4.10856581,0.116667822,0.000295512553,0.16163829,0.0735751316,-0.918047428,-0.169310495,0.0188561883,0.165618286 +0.197069854,4.10861588,-0.197069854,0.00113051222,0.161499843,0.0714438036,-0.872491062,-0.227692991,0.0188456103,0.282516479 +0.110262766,4.10875607,-0.110262766,0.000361976592,0.164429143,0.0758866221,-0.901266694,-0.0728783384,0.0188455861,0.156183988 +0.296462625,4.10903454,-0.296462625,0.00196097419,0.15562506,0.0685609728,-0.77119863,-0.346371233,0.0188681856,0.419758171 +0.0982487127,4.10924387,-0.0982487202,0.000225844546,0.165285662,0.0776932985,-0.899229169,-0.0574795157,0.0188441128,0.140113458 +0.0684833899,4.10926485,-0.0684833974,0.000129037217,0.243351072,0.152210563,-0.844207644,0.035070084,0.0188350994,0.0977386534 +0.0813881829,4.1092701,-0.0813881829,0.000283581496,0.171173513,0.0868025869,-0.892514944,-0.0121487435,0.0188394897,0.116110772 +0.942302346,4.10948896,-0.942302346,0.00120002904,0.161126122,0.0757335722,0.11429812,-0.182250351,0.0189144928,1.33303964 +-0.124282353,4.11015177,0.124282353,0.00033295661,0.162381411,0.073151432,-0.909215152,-0.190975428,0.0188583061,0.176594853 +0.143601105,4.11206579,-0.14360109,0.000390319765,0.163653314,0.073262006,-0.889641225,-0.134117827,0.0188416708,0.204471022 +-0.809218943,4.11226177,0.809218943,0.00462036626,0.16374363,0.0768438429,0.0839550272,-0.317192227,0.0188946892,1.14551079 +0.600121439,4.11291218,-0.600121498,0.00577251753,0.162371188,0.0748287588,-0.116019294,-0.434012532,0.0189132262,0.849973083 +-0.130605742,4.11381435,0.130605757,0.000467239326,0.16231373,0.0729272142,-0.894321084,-0.202869326,0.0188569762,0.185571656 +-0.758970618,4.1145792,0.758970618,0.00303622033,0.163769662,0.0765408427,0.0355802067,-0.359142154,0.0188932307,1.07359874 +-0.73672998,4.11488104,0.73672998,0.00285123149,0.164006263,0.0765515938,0.0142007312,-0.377941787,0.0188932214,1.04257739 +1.09396875,4.11568785,-1.09396887,0.000781920447,0.0646869019,0.0264171604,-0.176712245,-0.0898779333,0.0189065505,1.54711413 +-1.05625963,4.11576176,1.05625963,0.00126338424,0.129301488,0.0591384806,-0.0667803735,-0.0795083418,0.0189132802,1.49387538 +0.118827075,4.11586761,-0.118827075,0.000349870883,0.16420418,0.0748070776,-0.884745359,-0.0852468759,0.0188416149,0.16850464 +-0.294066846,4.1166625,0.294066846,0.00251085754,0.155209199,0.0685684979,-0.646146595,-0.459030569,0.0188516062,0.416922361 +1.00077617,4.11673927,-1.00077617,0.00196090993,0.15644756,0.0733862892,0.0365139432,-0.114451066,0.0189067293,1.41545248 +0.946729839,4.11682606,-0.946729779,0.00221888884,0.160880044,0.0755810365,0.103900559,-0.172294483,0.0189090241,1.33921206 +1.09490573,4.1170063,-1.09490573,7.5933589e-05,0.0629166588,0.025592681,-0.179299474,-0.0901639089,0.0189055856,1.54844666 +0.252605677,4.11730099,-0.252605677,0.00300420541,0.158329636,0.0698865503,-0.800453961,-0.316632003,0.0188513044,0.362895817 +-1.20576966,4.11746168,1.20576966,0.000431519875,0.148834929,0.0727964044,-0.17895399,-0.0582434088,0.0189185534,1.70530379 +-1.21829534,4.11756849,1.21829534,0.000395609997,0.148423523,0.0728044212,-0.363319337,-0.025606513,0.0189187154,1.72301865 +-1.22872686,4.11765766,1.22872674,0.000179971714,0.138795242,0.0734201521,-0.472870529,-0.016138494,0.0189186223,1.73777151 +1.09715962,4.11808491,-1.09715962,0.000762708311,0.0622094274,0.0252543781,-0.175061733,-0.0936597437,0.0189047642,1.55162299 +-1.09599471,4.11847925,1.09599471,0.000913980301,0.065294534,0.0266683698,-0.171682373,-0.10902904,0.018914327,1.55011523 +-0.178799421,4.11880112,0.178799435,0.00148902903,0.162627816,0.0721233934,-0.826790333,-0.302236497,0.0188582744,0.253977954 +-1.1876862,4.11909533,1.1876862,0.000416665222,0.152476102,0.0747423097,0.0127729438,-0.0976188257,0.0189163052,1.67979252 +-0.270361394,4.11957979,0.270361394,0.001357381,0.155833647,0.068702504,-0.690378249,-0.430401653,0.0188486315,0.383666217 +-1.1810329,4.12015963,1.1810329,0.00077560253,0.150591195,0.0733167604,0.0579310246,-0.111036643,0.0189149287,1.67035151 +1.16184378,4.12017679,-1.16184378,0.000299069652,0.0913440064,0.0396862216,0.0449186638,-0.148067802,0.0189036839,1.64322019 +-0.242297322,4.12025118,0.242297322,0.00156353309,0.157744661,0.0695530623,-0.730837822,-0.396139324,0.0188507922,0.344907403 +1.19823027,4.1203227,-1.19823015,0.000428881584,0.139682591,0.0665989891,-0.0325058512,-0.054454945,0.0189035051,1.69470406 +-0.366641462,4.12115717,0.366641492,0.00286425999,0.155689463,0.0692332238,-0.528510511,-0.497626096,0.0188469365,0.520325303 +1.20537448,4.12144375,-1.20537448,0.000336973811,0.133967146,0.0633615851,-0.10504479,-0.0436126702,0.0189025979,1.70478785 +1.21809888,4.12167835,-1.21809888,0.000407934305,0.134175807,0.0639335141,-0.251474679,-0.0167038981,0.0189025942,1.72278416 +0.098797597,4.12171841,-0.0987975895,0.000314157602,0.165774897,0.0780812353,-0.870196104,-0.0520535968,0.0188370459,0.140138239 +1.22869551,4.12187433,-1.22869539,0.000185137716,0.127617657,0.0655851811,-0.338897109,-0.0114538651,0.0189027917,1.73777127 +0.353212774,4.12228584,-0.353212774,0.00231640856,0.155207291,0.0691071674,-0.635771394,-0.417219043,0.0188677218,0.500333667 +0.0818622485,4.12249899,-0.0818622485,0.000281991146,0.172254696,0.0875168443,-0.86154294,-0.0104122218,0.018832067,0.116119303 +-0.350803614,4.12293434,0.350803614,0.00279694796,0.155771583,0.0691663474,-0.549357355,-0.489121795,0.0188465416,0.497353435 +0.0689005405,4.12334442,-0.0689005405,0.000122318321,0.243976653,0.152334064,-0.811132312,0.0337333865,0.0188267212,0.0977340192 +0.935591221,4.12346888,-0.935591221,0.0025426494,0.161687344,0.0759586841,0.110114574,-0.180881351,0.0189044941,1.32341385 +1.15325201,4.12398386,-1.15325201,0.000558731321,0.0807432532,0.0342330933,0.0023924429,-0.146994442,0.018900523,1.63108039 +-0.158733547,4.12406826,0.158733547,0.00095481344,0.162371725,0.0723472536,-0.838070214,-0.267131567,0.0188530292,0.226876274 +1.17717528,4.12441254,-1.17717528,0.000391884474,0.132224768,0.061787121,0.056223616,-0.0874367654,0.0188997239,1.66485691 +0.514030159,4.12454081,-0.514030099,0.00522488682,0.158865526,0.0722232088,-0.315937221,-0.464258134,0.0188867301,0.727522612 +-1.03614545,4.12469292,1.03614545,0.00105216529,0.139504507,0.0645303801,-0.0393771045,-0.0943022147,0.0189035982,1.46540511 +0.433868498,4.1248374,-0.433868498,0.00760769984,0.15547578,0.0697573945,-0.480291545,-0.460488141,0.0188743938,0.614699006 +0.334904045,4.12614202,-0.334904015,0.00281752599,0.155329853,0.0689668357,-0.673078001,-0.389470398,0.018864695,0.474792361 +-1.10796463,4.12666035,1.10796463,0.00091457495,0.0647493675,0.0262326188,-0.151105881,-0.131004333,0.0189075992,1.56705379 +-0.225894183,4.12670374,0.225894183,0.00158062344,0.15966627,0.0705905259,-0.741641223,-0.368430197,0.018849954,0.321830213 +0.714923263,4.1273036,-0.714923263,0.00400550198,0.164270073,0.0765185952,0.0610317811,-0.341347784,0.0189023316,1.01137924 +0.156376034,4.12738991,-0.156376034,0.000546101364,0.163306504,0.0732013285,-0.849032938,-0.14257507,0.0188321155,0.22177279 +-0.440570235,4.12842131,0.440570235,0.00304527651,0.156722009,0.0706795305,-0.411609083,-0.482542574,0.0188536327,0.623365402 +0.13774845,4.12887859,-0.13774845,0.000394844508,0.163508028,0.073708944,-0.851953149,-0.111192048,0.0188319162,0.195215464 +-0.201543197,4.12891197,0.201543182,0.00142757269,0.161716267,0.0717467517,-0.770940185,-0.332542539,0.0188520215,0.285912097 +-1.14944339,4.12950373,1.14944339,0.00076361309,0.101896688,0.0445667766,0.0143802911,-0.199933067,0.0189052746,1.62571049 +-0.710287035,4.12958527,0.710287094,0.00259047328,0.163333416,0.0759470239,-0.0332182609,-0.385738432,0.0188789945,1.00491381 +-0.118852921,4.13105392,0.118852913,0.000353438576,0.163057625,0.074179098,-0.864175439,-0.172305733,0.0188414138,0.169719487 +1.12958956,4.13240528,-1.12958956,0.0011449795,0.0551500693,0.0218493287,-0.107582614,-0.143965244,0.0188936591,1.5976305 +-1.20225489,4.13269091,1.20225489,0.000579467684,0.150400728,0.0735681579,-0.164477915,-0.0663882121,0.0189064872,1.7003901 +0.811896443,4.13276291,-0.811896443,0.000422045239,0.163773566,0.0766132399,0.12968564,-0.282592297,0.0188988745,1.1505599 +-0.419658929,4.13276625,0.419658959,0.00241541886,0.15655385,0.0703240782,-0.442540765,-0.473361462,0.018847147,0.593620002 +-1.21665549,4.13286734,1.21665549,0.000514501939,0.151496783,0.0746387467,-0.368753731,-0.029575048,0.0189067405,1.72075737 +-1.22865486,4.13301373,1.22865486,0.000237601576,0.139395133,0.0730031431,-0.497594744,-0.018438071,0.0189066194,1.73772812 +-0.100237876,4.13319063,0.100237876,0.000282147113,0.161253527,0.0754686743,-0.871290207,-0.114503607,0.0188286491,0.141815215 +0.219051406,4.13367128,-0.219051391,0.00126959616,0.160191298,0.0712510869,-0.796967387,-0.238095403,0.0188349076,0.311380476 +-0.100846387,4.13373899,0.100846387,0.000165279707,0.161331266,0.0754579827,-0.86959368,-0.116113618,0.0188284721,0.142690599 +-1.13552916,4.13383007,1.13552916,0.000890294672,0.0840712786,0.0351336785,-0.0542210788,-0.188249066,0.0189012494,1.60602689 +-0.0836527646,4.1338892,0.083652772,0.00024408508,0.155311361,0.0777371526,-0.875097156,-0.0313403271,0.0188079346,0.118322827 +-0.0709113553,4.13407087,0.0709113479,7.51557673e-05,0.227881789,0.14380312,-0.840713203,0.0552922152,0.0187910721,0.100298166 +-0.100186087,4.13434172,0.100186087,1.11447898e-05,0.161296725,0.0755117685,-0.868565559,-0.114264041,0.0188276675,0.141808406 +-0.0836362317,4.13435411,0.0836362317,8.62794514e-06,0.155339673,0.0777583197,-0.874000847,-0.0312921889,0.0188075081,0.118321806 +-0.075925082,4.13437939,0.075925082,9.86486411e-05,0.199426547,0.117621616,-0.853345513,0.0213077087,0.0187973361,0.107374534 +-0.0709022954,4.13439751,0.0709022954,8.31264401e-07,0.227899283,0.143812522,-0.839987755,0.055267673,0.0187907815,0.100298561 +-0.0836500674,4.13476801,0.08365006,0.000244543888,0.155338541,0.0777598545,-0.873128116,-0.031262584,0.0188071039,0.118321501 +-0.0709140524,4.13477325,0.0709140524,7.53174972e-05,0.227940068,0.14383775,-0.839236498,0.0552843101,0.0187904555,0.100300066 +-0.100222826,4.13536024,0.100222826,0.000185577446,0.161335498,0.0755426511,-0.866307378,-0.114112362,0.0188268181,0.141801625 +0.098220177,4.13594723,-0.0982201695,0.000226631062,0.166573346,0.078641817,-0.836413145,-0.0501454771,0.0188280232,0.140183121 +0.0813967884,4.13598537,-0.0813967884,0.000292667886,0.173066661,0.0880124792,-0.829487681,-0.0103003848,0.0188234281,0.116139695 +0.068523109,4.13599539,-0.068523109,0.000120849007,0.243659079,0.151935503,-0.782601297,0.0340527259,0.0188181531,0.0977378637 +0.106051177,4.13630533,-0.106051177,0.000470128143,0.165982306,0.0775178075,-0.835941434,-0.0609037578,0.0188284032,0.150743976 +-0.101317398,4.13642693,0.101317398,0.000142633507,0.161507621,0.0755240172,-0.863252223,-0.116781525,0.0188267399,0.143317506 +-0.14244324,4.13793945,0.14244324,0.000399072946,0.162742168,0.0731236786,-0.825932622,-0.226136431,0.0188425984,0.204535037 +1.18312097,4.13832903,-1.18312097,0.00052528712,0.126596302,0.0586608052,-0.012580337,-0.0787290782,0.018889254,1.67325735 +-0.128498793,4.13849068,0.128498793,0.000503803196,0.16300191,0.0739080682,-0.837007999,-0.189798534,0.0188379996,0.183476955 +0.174815804,4.13908577,-0.174815804,0.000835318817,0.162900269,0.0729489699,-0.811810613,-0.166865259,0.018826114,0.248533934 +0.201409876,4.13955641,-0.201409876,0.00158593245,0.162037939,0.0723678321,-0.79867214,-0.206081912,0.0188277643,0.286532491 +-0.438460737,4.13970518,0.438460737,0.000150183027,0.157078013,0.0708737075,-0.404761404,-0.466379106,0.0188445225,0.620820165 +0.129039854,4.13997746,-0.129039854,0.000534649938,0.163983911,0.0745610893,-0.827143669,-0.0915789604,0.0188254267,0.183068886 +-0.637070656,4.14022684,0.637070596,0.0087612113,0.160837695,0.0741963387,-0.129222542,-0.412227541,0.0188713353,0.902938128 +1.1682328,4.14101553,-1.1682328,0.000397022435,0.120486021,0.0548905209,0.0465350263,-0.101562247,0.0188865643,1.65225697 +-0.434582889,4.14385033,0.434582889,0.00016408143,0.157211885,0.0709478259,-0.406649649,-0.458604991,0.0188411847,0.615266025 +0.134871021,4.14402771,-0.134871021,0.000399679237,0.163822889,0.0742149577,-0.816617191,-0.10062626,0.0188230593,0.191923186 +1.19796097,4.14438105,-1.19796085,0.000701705925,0.134734541,0.0636385381,-0.0664851144,-0.0550114363,0.0188852455,1.6943388 +0.794178724,4.14462614,-0.794178724,0.00458120229,0.164030343,0.0766766444,0.120385088,-0.287246525,0.0188891497,1.12538242 +1.21469605,4.1446352,-1.21469605,0.000688701053,0.137943029,0.0659918338,-0.245603159,-0.0223991983,0.0188858286,1.71800828 +-0.449671239,4.14476299,0.449671209,0.00260612485,0.15737474,0.0711264238,-0.385796428,-0.459579885,0.018842347,0.636229753 +1.22863197,4.14484787,-1.22863197,0.000316991616,0.128878817,0.0645052269,-0.361820936,-0.014577535,0.0188862607,1.73771858 +0.835698903,4.14492321,-0.835698903,0.00606215978,0.163586542,0.0765497014,0.121548042,-0.257190734,0.0188911855,1.18276024 +-0.180441439,4.14512062,0.180441439,0.000929207308,0.163365498,0.0729804859,-0.7667467,-0.291632593,0.0188438427,0.255875349 +0.34201923,4.1455245,-0.3420192,0.00146638625,0.156560928,0.0699858367,-0.616018176,-0.374987185,0.0188534856,0.485638261 +1.04282856,4.14611959,-1.04282856,0.000903463806,0.142046377,0.0656735823,-0.0440694988,-0.0354912505,0.0188837424,1.47481179 +-0.729353786,4.14623737,0.729353845,0.00387450075,0.164032698,0.0764411911,-0.0108231157,-0.362495571,0.0188654903,1.03194284 +-0.942918777,4.14670753,0.942918777,0.00350155705,0.158655047,0.0745668411,0.058712706,-0.181534082,0.0188733377,1.33505857 +1.08295882,4.14694309,-1.08295882,0.000998523552,0.109926008,0.0487541631,-0.102243848,-0.0147883743,0.0188831054,1.53154147 +-0.847222149,4.14795589,0.847222149,0.00391922006,0.162912816,0.0764822215,0.0789410472,-0.262112141,0.0188667271,1.20011842 +1.15817499,4.14817142,-1.15817499,0.000799839559,0.114156596,0.0513981879,0.0260075331,-0.092008926,0.0188809335,1.63804305 +1.08392894,4.14825678,-1.08392894,0.000104006998,0.109080195,0.0483125187,-0.104129381,-0.0132567873,0.0188821387,1.53291929 +-1.01118326,4.14866686,1.01118326,0.00197805907,0.149068639,0.0695535168,-0.00324693602,-0.111349657,0.0188816525,1.43040907 +1.08620298,4.14912796,-1.08620286,0.00106209947,0.108460352,0.0479974002,-0.101020753,-0.0157879815,0.0188814141,1.53612673 +1.08339822,4.1492734,-1.0833981,0.000993006048,0.10970325,0.0486284383,-0.10352467,-0.0125377886,0.018881375,1.53216779 +0.0689224154,4.14942741,-0.0689224079,0.000123318328,0.243822068,0.151708171,-0.751934171,0.0326256566,0.0188091192,0.097740069 +0.161055952,4.14955902,-0.161055952,0.000654178206,0.163684577,0.0737276897,-0.794223428,-0.141819447,0.0188188329,0.229668975 +-0.533539712,4.14957142,0.533539712,0.00564388745,0.158420831,0.0723005161,-0.269578397,-0.445124418,0.0188504495,0.758000851 +1.08429444,4.14984846,-1.08429444,0.00127101154,0.109682038,0.0486217365,-0.103567682,-0.0122241983,0.0188809056,1.53343415 +-0.254362524,4.14986134,0.254362524,0.00235709874,0.158661678,0.0705613568,-0.650598049,-0.380473614,0.0188353825,0.360708416 +-1.08427179,4.15006781,1.08427179,0.00118411123,0.112630427,0.0502603762,-0.0910195708,-0.0528365523,0.0188878532,1.53353655 +0.081912756,4.15029907,-0.081912756,0.000284407055,0.174003363,0.0886153355,-0.796988726,-0.00844344683,0.0188141968,0.116159394 +0.0988941863,4.15105677,-0.0988941863,0.000292669865,0.167279899,0.0792744309,-0.802182078,-0.0458947644,0.0188181456,0.140234336 +-0.441805631,4.15106535,0.441805661,0.00364649016,0.157467306,0.0711633787,-0.392326623,-0.452232271,0.0188360941,0.625209808 +1.04433739,4.15163231,-1.04433739,0.000117895739,0.140545294,0.0648196861,-0.0482865795,-0.0303442813,0.0188796818,1.47697079 +1.04097986,4.15166664,-1.04097986,0.000366211287,0.143083736,0.0661932379,-0.0419435799,-0.0326693654,0.0188796781,1.47224355 +0.325772852,4.15257359,-0.325772822,0.00321324775,0.157548755,0.0704984218,-0.627141237,-0.349025041,0.0188472662,0.462753534 +-0.994292974,4.15300655,0.994292915,0.00258881901,0.151713893,0.0709181279,0.0103547452,-0.12481983,0.0188758634,1.40662408 +0.117099963,4.15509319,-0.117099971,0.000421404664,0.165350258,0.0761097223,-0.794639945,-0.0695561022,0.0188163705,0.16626367 +1.04237711,4.1558938,-1.042377,0.000977424905,0.142951056,0.066105321,-0.0461285487,-0.0271947365,0.0188764855,1.47419488 +1.03657365,4.15641022,-1.03657365,0.00127929088,0.144397214,0.0668423548,-0.039983388,-0.0348125957,0.0188763235,1.46597362 +-0.117136225,4.15727901,0.117136225,0.000483082433,0.164128482,0.0752392784,-0.806313872,-0.159397066,0.0188206844,0.166388243 +-0.165544897,4.15809917,0.165544897,0.000667547691,0.163418338,0.0734349042,-0.755079985,-0.261003047,0.0188349076,0.235646963 +-1.1552341,4.15825653,1.1552341,0.000972113456,0.132080674,0.0612638406,0.0594836995,-0.126976967,0.0188830569,1.63390553 +-0.280064881,4.15842676,0.280064881,0.00484099286,0.157728314,0.0702793971,-0.593343377,-0.398547471,0.0188268162,0.397651255 +-0.423322827,4.15863037,0.423322797,0.00403895881,0.157752275,0.0712928474,-0.401837885,-0.440752447,0.0188314542,0.598942399 +0.901761353,4.16043949,-0.901761293,0.00607592613,0.163037628,0.0764368102,0.109755248,-0.19360438,0.0188776013,1.27662158 +-1.10080469,4.16058874,1.10080469,0.00176507002,0.110384516,0.0491028391,-0.0643256307,-0.0641293973,0.0188800301,1.55692363 +-0.0991985574,4.16063309,0.0991985574,0.000405848346,0.161858141,0.0761001632,-0.809580922,-0.109020829,0.0188048407,0.141771078 +-0.0828152597,4.16070986,0.0828152597,0.000506025157,0.156303346,0.0784855187,-0.816321909,-0.0285698622,0.0187834036,0.118351318 +-0.0702351555,4.16080189,0.0702351555,0.000221663067,0.230050609,0.145040542,-0.785690784,0.0532962456,0.018766474,0.100364044 +-1.05676854,4.16106033,1.05676854,0.000893712742,0.132438153,0.0607545488,-0.0644444823,-0.0477630682,0.0188770257,1.49461603 +-0.148165181,4.16143751,0.148165166,0.000769565173,0.16370976,0.0738828704,-0.769482791,-0.228299096,0.0188301299,0.21119827 +0.357646346,4.16185474,-0.357646316,0.00752208568,0.157277212,0.0706617162,-0.56839937,-0.361990154,0.0188437905,0.506979048 +0.338677645,4.16215706,-0.338677675,0.00151993032,0.157590151,0.070749253,-0.594308138,-0.354853421,0.0188423898,0.481139332 +0.0984163955,4.16282034,-0.0984164029,0.000184022458,0.167859897,0.0797665864,-0.77571696,-0.0473065525,0.0188100412,0.14027895 +0.0814808384,4.16287041,-0.0814808384,0.000256954547,0.174280107,0.088783063,-0.768793523,-0.00838162843,0.0188056547,0.116188079 +0.0685270578,4.162889,-0.0685270652,0.000117404205,0.243315935,0.15115428,-0.723546803,0.0332484618,0.0187995806,0.0977593064 +-0.758363008,4.16340256,0.758363008,0.00392468227,0.164485276,0.0768193677,0.00733021181,-0.331889004,0.0188523103,1.07281649 +-1.18362367,4.163414,1.18362367,0.000541921414,0.155765384,0.0758431032,0.016993437,-0.0817991048,0.0188801717,1.67391682 +0.684881151,4.16342258,-0.684881091,0.00427583745,0.163533822,0.0760117248,0.000649855938,-0.33132571,0.018876275,0.969432712 +0.215669513,4.1634469,-0.215669513,0.00173798669,0.161886394,0.0727947801,-0.734505177,-0.203691438,0.0188171212,0.306375861 +0.106865577,4.16358948,-0.106865577,0.000286979746,0.166790187,0.0782550424,-0.774681091,-0.052494131,0.0188101511,0.151448697 +-0.109790854,4.16432238,0.109790854,0.000287171395,0.163351253,0.0757694468,-0.795059502,-0.135505527,0.0188096724,0.156089991 +1.1303103,4.16442585,-1.1303103,0.00159419561,0.0991224498,0.0433419533,-0.031438075,-0.0680704564,0.0188684221,1.59865224 +0.115258597,4.16517162,-0.115258597,0.000239363071,0.165807784,0.0765999332,-0.77183032,-0.0635316744,0.0188099407,0.163988769 +1.17536485,4.16540051,-1.17536485,0.000558175496,0.128482208,0.0593804605,0.0282632858,-0.0790000409,0.0188681893,1.66227913 +-1.03406799,4.16606998,1.03406811,0.0011495722,0.143575028,0.0666717216,-0.0338550173,-0.0679529086,0.0188701637,1.46248269 +-1.14785933,4.16640186,1.14785933,0.000267313735,0.126481473,0.0578939393,0.0557193644,-0.124699473,0.018876195,1.62365782 +-1.13815498,4.16663647,1.13815498,0.0010589757,0.121180177,0.0549888462,0.0305452421,-0.112038635,0.0188757908,1.60973549 +-0.583086252,4.16759539,0.583086252,0.0061072777,0.159320161,0.0730942264,-0.214608341,-0.401396811,0.018842103,0.827486098 +-1.00598121,4.16815853,1.00598121,0.000686731189,0.151312172,0.0706914067,-0.0077961036,-0.105967492,0.0188652948,1.42326355 +-1.08476603,4.16831636,1.08476603,0.000973644434,0.117806956,0.052958671,-0.0798709467,-0.0412436537,0.0188732576,1.53430188 +-1.18985212,4.16866112,1.18985212,0.000539212604,0.154846266,0.0753321201,-0.0582537688,-0.0687356442,0.0188764315,1.68272436 +-1.2287308,4.16884518,1.2287308,0.000346042973,0.141346171,0.0701753721,-0.546879232,-0.0179437678,0.0188769735,1.73770738 +-1.2096777,4.16886806,1.2096777,0.000713157409,0.162551314,0.0802636296,-0.329030395,-0.0337390415,0.0188768748,1.71076214 +0.167269155,4.16926622,-0.167269155,0.000681406353,0.164076388,0.0741565749,-0.749067783,-0.135887891,0.0188073646,0.23710674 +-0.214498758,4.16969252,0.214498743,0.00188745861,0.162376508,0.0727228671,-0.66744864,-0.323707938,0.0188296046,0.303965032 +-1.01561368,4.17081785,1.01561368,0.00129852095,0.149976194,0.0700008497,-0.0199518874,-0.0916676968,0.0188643876,1.43675947 +0.140000358,4.17137909,-0.140000343,0.000224785384,0.163876384,0.0746231526,-0.754950285,-0.0924870297,0.0188056249,0.198046744 +-0.128892154,4.17144585,0.128892154,0.000386445347,0.164573163,0.0752510726,-0.764970958,-0.182296962,0.0188156739,0.182944119 +-0.889863729,4.17155218,0.889863729,0.00341849588,0.162651494,0.076474309,0.0678311884,-0.212930724,0.0188460946,1.25879788 +0.989038587,4.17234278,-0.989038646,0.00254310435,0.158196464,0.0740071163,0.0159414113,-0.085419558,0.018866308,1.39945579 +0.0989207774,4.17380238,-0.0989207774,0.00033919909,0.168149248,0.080037266,-0.752352476,-0.0431688279,0.0188027751,0.140323594 +1.00375724,4.17396784,-1.00375724,0.00130904862,0.154917955,0.0722749233,-0.00922211632,-0.0657595471,0.0188644156,1.42011893 +-0.116914496,4.17417908,0.116914488,0.000320094114,0.164568365,0.0757030174,-0.769705713,-0.154200479,0.0188073367,0.166196302 +0.182977289,4.1743288,-0.182977289,0.000873993675,0.163714051,0.0739773884,-0.730816603,-0.155919135,0.0188054554,0.259449393 +0.144548684,4.17445946,-0.144548684,0.000272764533,0.163858876,0.0745803788,-0.746438503,-0.0983344167,0.0188035499,0.20450066 +0.0819196999,4.17462158,-0.0819196999,0.000284927053,0.175144687,0.0893424377,-0.743779361,-0.0066680992,0.0187980272,0.116214022 +0.242090702,4.17540312,-0.242090687,0.00285676005,0.161752209,0.0729606226,-0.682380557,-0.242131978,0.0188157745,0.347105503 +0.0689180866,4.17545462,-0.0689180791,0.00012337169,0.243631378,0.151137382,-0.697345018,0.0333764665,0.0187910497,0.0977744758 +0.13707222,4.17577648,-0.13707222,0.000309782627,0.164228961,0.0750261024,-0.745423257,-0.0867917463,0.0188029762,0.193918586 +1.15076303,4.17627621,-1.15076303,0.000947347318,0.114291728,0.051455982,0.0234770384,-0.0653155297,0.0188589804,1.62767291 +-0.90220654,4.17631578,0.90220654,0.00304705463,0.162089959,0.0762185529,0.06221148,-0.200553656,0.0188434441,1.27626681 +0.141554207,4.17786789,-0.141554222,0.000124379396,0.164034024,0.074768506,-0.740047336,-0.093262054,0.0188014563,0.200428501 +-0.195005342,4.17792225,0.195005342,0.000925895176,0.163677663,0.0736285821,-0.677673697,-0.290429115,0.0188256949,0.276269227 +-1.05407965,4.17803097,1.05407965,0.00123443815,0.139142334,0.0643777326,-0.0518274829,-0.0371983647,0.0188632291,1.49086761 +0.140196621,4.17850637,-0.140196621,8.7133536e-05,0.164093047,0.0748541355,-0.738957763,-0.0915449709,0.0188011229,0.19854261 +-0.170069501,4.18034601,0.170069501,0.000886887196,0.16416344,0.0740842074,-0.702377319,-0.261189163,0.0188206956,0.242622495 +0.140946552,4.18191528,-0.140946552,0.000467900478,0.164115429,0.0748839155,-0.731907606,-0.0906843618,0.0187989622,0.199467644 +-1.17363739,4.1821928,1.17363739,0.000789595477,0.148884252,0.0711977705,0.0141015388,-0.0856022686,0.0188645832,1.65980124 +-0.0709256083,4.18222237,0.0709256083,0.000119075892,0.23055476,0.145319432,-0.747650027,0.0557333492,0.0187470708,0.100510947 +1.18548107,4.18233871,-1.18548107,0.000725488761,0.136631608,0.0641950443,-0.00311322603,-0.0576939285,0.0188556425,1.67666698 +1.20748878,4.18256617,-1.20748878,0.000831217912,0.145959109,0.070031777,-0.217258081,-0.0305703338,0.0188577939,1.70779371 +1.22865236,4.18261147,-1.22865236,0.000402584381,0.1315386,0.0622083358,-0.402234584,-0.0179304183,0.0188587196,1.73772597 +-0.0836317167,4.18274784,0.0836317092,0.000273568614,0.156352028,0.0785388052,-0.773206592,-0.0258527361,0.0187636074,0.118493728 +0.311507076,4.18281889,-0.311507076,0.00366965518,0.159639254,0.072124429,-0.590157151,-0.304107696,0.0188265257,0.441254348 +-0.100177027,4.18296432,0.100177027,0.000255121005,0.162203759,0.0764155909,-0.762262583,-0.104402609,0.0187861044,0.141918808 +-0.674363375,4.18317318,0.674363375,0.00538915116,0.162231743,0.0751816481,-0.0868118703,-0.358035564,0.0188366398,0.956057191 +0.546764851,4.18371964,-0.546764851,0.0050456766,0.161099896,0.074046433,-0.215260625,-0.369667381,0.0188476481,0.774416804 +-0.153402001,4.1842432,0.153402016,0.000442014454,0.164451241,0.0746430904,-0.712853432,-0.228465885,0.0188148245,0.217569172 +-1.1416167,4.1842494,1.1416167,0.000620965322,0.132142723,0.0608034842,0.0491769426,-0.0946257338,0.0188610069,1.61463928 +0.670222163,4.18468571,-0.670222163,0.00344977202,0.163162723,0.0757428408,-0.0323756151,-0.314920008,0.018860111,0.948702633 +0.597532332,4.18480015,-0.597532332,0.00469435519,0.162394077,0.0750121102,-0.131166771,-0.346945047,0.0188548919,0.846681714 +0.160783172,4.18598795,-0.160783172,0.00034744016,0.165154606,0.0750259832,-0.714501083,-0.124479562,0.0187973659,0.229058444 +-1.18380356,4.18664885,1.18380356,0.000349550362,0.15715073,0.0762682036,-0.00574939698,-0.0710228086,0.0188614391,1.67423522 +-0.141942829,4.18668032,0.141942829,0.00073939492,0.164651588,0.0749431252,-0.721832514,-0.206806928,0.0188115053,0.201439261 +-1.20640767,4.18690205,1.20640767,0.000401649333,0.168008238,0.0830731913,-0.313446164,-0.0355784036,0.0188619345,1.70620346 +-1.22867668,4.18690491,1.22867668,0.000198728754,0.142196968,0.0684456602,-0.572426736,-0.0177694708,0.0188620482,1.7376976 +-0.100048296,4.18702173,0.100048296,6.51649243e-05,0.162258103,0.0764803812,-0.753789604,-0.103505626,0.0187826306,0.141962737 +-0.102682792,4.18710661,0.102682799,0.00021744585,0.162642345,0.07642252,-0.751928568,-0.110854566,0.0187847186,0.145462513 +-0.0835110173,4.18724298,0.0835110173,0.000112609072,0.156439662,0.078585729,-0.764178693,-0.0252805278,0.0187598187,0.118529946 +-0.070809111,4.1873951,0.070809111,5.41505797e-05,0.230505183,0.145219609,-0.738075256,0.0557806827,0.018742945,0.100546561 +-0.496011317,4.187397,0.496011317,0.00316758011,0.159081399,0.0726463571,-0.295718789,-0.400074482,0.0188143142,0.705881715 +0.709863126,4.18755579,-0.709863126,0.00319537008,0.163664967,0.0762193576,0.023228582,-0.290906519,0.0188593995,1.00535321 +-0.897203028,4.18762255,0.897203028,0.000508810626,0.162887275,0.0766113847,0.0581826232,-0.198262766,0.0188334472,1.26952338 +0.116943203,4.18864965,-0.116943195,0.000300179177,0.166024178,0.077012457,-0.721475244,-0.0547282472,0.0187946931,0.165513873 +1.17572212,4.18942261,-1.17572212,0.000788144243,0.132983416,0.0619205497,0.0272726826,-0.0572175607,0.0188496485,1.66283596 +0.0982985944,4.18974352,-0.0982985944,0.000313165016,0.168798715,0.0805020407,-0.717840612,-0.0420686528,0.0187925082,0.140408352 +0.0685126185,4.18975925,-0.068512626,0.000139803058,0.243169576,0.150701508,-0.668392539,0.0348699093,0.018780835,0.0978077054 +0.0814186111,4.18977261,-0.0814186037,0.00033678097,0.175902367,0.0897972137,-0.710821509,-0.00640840642,0.0187878404,0.116266571 +-0.129617125,4.19035244,0.129617125,0.000377875869,0.164650097,0.0754237473,-0.72491312,-0.177606136,0.0188023001,0.18421647 +0.697322011,4.19080162,-0.697322011,0.00118504802,0.163612217,0.0761530548,0.0100828055,-0.294588655,0.0188567899,0.987433553 +-0.20553264,4.19234133,0.205532625,0.000715672038,0.163754195,0.0738175586,-0.636418819,-0.297727555,0.0188163333,0.292014152 +-0.100383952,4.19279957,0.100383952,0.000317978585,0.162510619,0.0766308084,-0.742198586,-0.103067756,0.0187780038,0.14212665 +-0.0837981701,4.19360161,0.0837981701,0.000278886786,0.156462908,0.0785784572,-0.751928031,-0.024621686,0.0187547058,0.118652865 +0.508054674,4.19362497,-0.508054674,0.00665288325,0.160075098,0.073381044,-0.279252142,-0.361992359,0.0188365541,0.720287859 +-1.18462384,4.1946187,1.18462396,0.000902758155,0.16100347,0.0783214569,-0.0149079338,-0.0659326538,0.018855039,1.67536664 +-0.0710779577,4.19466686,0.0710779577,0.000120875717,0.229657531,0.144549653,-0.725488544,0.0571809784,0.018737549,0.100652926 +-1.22869861,4.1947794,1.22869861,0.000400791352,0.142119959,0.0684640631,-0.583554685,-0.0170734953,0.018855609,1.73769927 +-1.20688748,4.19480085,1.20688748,0.000821644149,0.170143425,0.0840550959,-0.327385098,-0.0333254337,0.0188554805,1.70685267 +0.112930357,4.19594955,-0.112930357,0.000238162393,0.166764602,0.0779890791,-0.705604553,-0.0494776294,0.0187895726,0.159892067 +-1.172768,4.19619656,1.172768,0.000852559169,0.154104024,0.074075304,0.00829163752,-0.0622392781,0.0188528281,1.6585778 +0.995970964,4.19647217,-0.995970964,0.00105178182,0.158130676,0.073846668,-0.0118468506,-0.0607197583,0.0188478827,1.4093883 +1.05281615,4.19675159,-1.05281615,0.00157397415,0.143049359,0.0660400242,-0.076624006,0.0172507837,0.0188456923,1.48959672 +0.117243543,4.19682217,-0.117243551,0.000125227452,0.166249946,0.0772252679,-0.703817785,-0.0548110604,0.018789269,0.166318208 +-1.03849769,4.19709587,1.03849769,0.001131461,0.146304235,0.0679696426,-0.0636233985,-0.0467659086,0.0188470688,1.46875703 +0.799301744,4.19825411,-0.799301744,0.00545763737,0.164402902,0.0769091025,0.0955738798,-0.235291183,0.0188496057,1.13101292 +-0.875952005,4.1984539,0.875952005,0.00374723831,0.163605958,0.076881066,0.0499190241,-0.210323155,0.018822819,1.23904061 +-0.544009984,4.19930696,0.544009984,0.00675493525,0.159617931,0.0732252225,-0.240265891,-0.380598724,0.0188095793,0.774088681 +0.172009021,4.19944763,-0.172009021,0.00150861312,0.165423945,0.0753006414,-0.682954252,-0.131657407,0.018789202,0.244357318 +0.115123667,4.19978666,-0.115123667,0.000229106881,0.166469246,0.077581495,-0.697856426,-0.0515859574,0.0187871717,0.163327634 +-1.13127732,4.20098495,1.13127732,0.00114177039,0.131131098,0.0600467511,0.0175954942,-0.054797627,0.0188467186,1.60003972 +1.18529141,4.20155811,-1.18529153,0.000860044151,0.143078372,0.0675790384,-0.00292828213,-0.0496989191,0.0188417174,1.6764071 +0.119912185,4.20159721,-0.119912192,0.000415466115,0.166159153,0.0771341622,-0.693777442,-0.0555311143,0.0187862553,0.169844568 +1.20738411,4.20177603,-1.20738411,0.000894349592,0.151331872,0.0727476701,-0.236462221,-0.0296184346,0.0188443363,1.70765424 +1.22866893,4.20179558,-1.22866893,0.000434127054,0.132910073,0.0624309257,-0.428108215,-0.01807997,0.0188452564,1.73775816 +0.206499889,4.20217896,-0.206499889,0.00164160877,0.164221764,0.0746633708,-0.655979276,-0.176606894,0.0187933426,0.29429704 +1.12644279,4.20273495,-1.12644279,0.000905517722,0.123257652,0.0556828454,-0.0286999084,-0.012167614,0.0188384932,1.59306264 +1.1759212,4.20281506,-1.1759212,0.000828068645,0.137484699,0.064128533,0.0151814399,-0.0415994413,0.0188396219,1.66316986 +-0.118041463,4.20347834,0.118041471,0.000492723193,0.163883641,0.0762142166,-0.707250118,-0.143835813,0.0187820643,0.167492419 +0.154417545,4.20380878,-0.154417545,0.000838038628,0.165340304,0.0755329356,-0.680321574,-0.106562659,0.0187862292,0.219313323 +-0.130881548,4.20466566,0.130881548,0.000315843499,0.164985299,0.0757298693,-0.694834232,-0.17778118,0.0187915228,0.186115652 +0.0690689161,4.20560932,-0.0690689161,0.000124003098,0.241260111,0.149094924,-0.63343215,0.0329233035,0.0187695324,0.0979258269 +-0.187051311,4.20611286,0.187051326,0.00084567687,0.164815962,0.0746859759,-0.632318258,-0.265389085,0.0188068543,0.264776915 +0.0821125358,4.20650196,-0.0821125284,0.000286832248,0.176597804,0.0902548432,-0.674739718,-0.00510701304,0.0187762659,0.116412684 +0.0991675854,4.20732021,-0.0991675854,0.000264979899,0.169668242,0.0812118724,-0.681118667,-0.0356873013,0.0187809244,0.140582219 +0.535791218,4.20832014,-0.535791218,0.00245335884,0.161283135,0.0742481574,-0.225225642,-0.349081695,0.0188288167,0.760210812 +-0.157114208,4.21148396,0.157114208,0.000493967673,0.1654028,0.0754372105,-0.6560449,-0.220398992,0.0187985208,0.222529054 +-0.279928863,4.21207094,0.279928863,0.00258758757,0.159711838,0.0719912946,-0.512014747,-0.35135752,0.0187946483,0.3966645 +1.13357568,4.21241856,-1.13357568,0.000606913934,0.1322449,0.0605815426,-0.00775151234,-0.00348217972,0.0188308563,1.60316968 +-0.326663256,4.21289635,0.326663256,0.00334998081,0.159761399,0.0721265376,-0.457724214,-0.377539337,0.0187883638,0.464339852 +-0.969146609,4.21354008,0.969146609,0.00302912225,0.160844237,0.0755737349,-0.00458658393,-0.128626302,0.0188236423,1.37088037 +0.248979524,4.21387291,-0.248979539,0.00313674402,0.163509756,0.074608691,-0.606789589,-0.210059971,0.0187948309,0.353894293 +-0.0999257267,4.21391201,0.0999257267,0.000518394751,0.163250536,0.0771618113,-0.699852765,-0.0996812433,0.0187601801,0.142594948 +-0.0833898783,4.21420765,0.0833898857,0.000347968162,0.157258555,0.0790311024,-0.711142004,-0.022329662,0.0187377334,0.11897292 +-0.0707406178,4.21429062,0.0707406178,0.0001454179,0.227337718,0.142720461,-0.690098882,0.0584406108,0.018722361,0.100897431 +-1.09412551,4.21540546,1.09412551,0.00103880989,0.140436083,0.0649259686,-0.0514862388,-0.0364447348,0.0188343506,1.5474509 +0.691148221,4.21631002,-0.691148281,0.00676240399,0.164004847,0.0764164627,-0.00363295106,-0.271141648,0.0188373439,0.97825706 +0.0688219666,4.21669722,-0.0688219666,9.35060089e-05,0.239693508,0.147945732,-0.610909462,0.0328256972,0.0187613219,0.0980576426 +0.081824705,4.21678829,-0.081824705,0.000203429925,0.176508471,0.0902020186,-0.653159857,-0.0055196574,0.0187689792,0.116535053 +0.0988294929,4.21686792,-0.0988295004,0.000318656879,0.170014203,0.0814740509,-0.661402881,-0.0352018923,0.018774515,0.140695632 +0.736386657,4.21743345,-0.736386657,0.00468104985,0.164050177,0.076521419,0.0300977342,-0.249847203,0.0188368578,1.04182887 +1.12179255,4.22035551,-1.12179255,0.00211846712,0.13558957,0.0622182377,-0.0306110866,0.014684042,0.0188248865,1.58653903 +-0.168565467,4.22062635,0.168565482,0.000608128263,0.165632159,0.0754428357,-0.625939786,-0.236424252,0.0187951494,0.239481002 +1.13073862,4.22114944,-1.13073862,0.00124085159,0.134588078,0.061644353,-0.0166299231,0.00857915357,0.0188242104,1.59918094 +-1.1350379,4.22175694,1.1350379,0.0017767268,0.143789947,0.0668598935,0.0384040363,-0.033710558,0.0188292805,1.60536778 +-0.81848228,4.22249889,0.81848228,0.00710172486,0.165361091,0.0775416046,0.030130513,-0.246499836,0.0188021977,1.15896606 +1.01481676,4.2232008,-1.01481664,0.00182196544,0.157702982,0.0733769089,-0.0665975288,-0.0260029361,0.0188270099,1.43528676 +-0.17454946,4.22388315,0.17454946,0.000352317205,0.165827185,0.0755430534,-0.612854004,-0.241985962,0.0187936965,0.248132497 +0.0990895629,4.22509527,-0.0990895629,0.000258142827,0.170304537,0.0817302391,-0.645479023,-0.0323519669,0.0187691823,0.140550345 +0.0820333511,4.22569275,-0.0820333511,0.000285794988,0.177058131,0.0906466767,-0.635327697,-0.00445703743,0.0187628176,0.116372779 +-0.976049066,4.22570992,0.976049066,0.000755373214,0.160892963,0.0755826384,-0.017173253,-0.116221718,0.0188148078,1.38070869 +-0.983374596,4.2259059,0.983374596,0.00100884447,0.159726262,0.0749765038,-0.0251092874,-0.10629525,0.0188155975,1.39098942 +0.0689817518,4.22629976,-0.0689817518,0.000124227125,0.240235865,0.148295909,-0.591846466,0.0328060277,0.0187543407,0.0978703722 +-0.0710781068,4.22670269,0.0710781068,0.000123613718,0.224473834,0.140427336,-0.667830646,0.0607923754,0.0187140666,0.10095311 +-1.07965195,4.22702122,1.07965195,0.00128795078,0.149559587,0.0699004009,-0.0637772456,-0.0141590768,0.0188243836,1.52703202 +-0.348182678,4.2272625,0.348182678,0.00575556746,0.160393149,0.0727983341,-0.405663192,-0.370126247,0.0187778249,0.495937228 +-0.0839240551,4.22729921,0.0839240551,0.000286796509,0.157014012,0.0788236931,-0.686290264,-0.0214563403,0.0187278204,0.119200677 +-0.100770615,4.22745132,0.100770615,0.000336642232,0.163758814,0.0775296241,-0.673426509,-0.0992449522,0.0187495351,0.143126175 +-0.137319118,4.2278142,0.137319118,0.000238294131,0.165904313,0.0762948468,-0.643884003,-0.183108449,0.0187776741,0.194382817 +0.134054303,4.22781849,-0.134054303,0.000794765365,0.166486055,0.0768454224,-0.639007568,-0.0750817731,0.0187718142,0.192270905 +1.02867031,4.22815847,-1.02867031,0.00124355149,0.155003265,0.0719579384,-0.0860060081,-0.00425121887,0.0188227482,1.45492494 +-0.171026513,4.22955751,0.171026528,0.00112515665,0.165981114,0.07575351,-0.606098473,-0.235491574,0.0187888574,0.242828637 +0.953349471,4.23009872,-0.953349471,0.00131753273,0.161317781,0.0752871707,0.0111312866,-0.0955905318,0.0188235883,1.34826541 +0.884662986,4.23028755,-0.884663045,0.00458985474,0.163853019,0.0767069906,0.0795441121,-0.159287229,0.0188243482,1.25157332 +0.95229274,4.23035526,-0.95229274,0.00163089472,0.161391467,0.075323008,0.0120050469,-0.0966336429,0.0188234374,1.34676778 +0.953584015,4.23133183,-0.953584075,0.000330683077,0.161321938,0.0752826482,0.00985275395,-0.0944871455,0.0188226476,1.34860134 +-0.127359957,4.23177624,0.127359957,0.000339184364,0.165471986,0.0767335296,-0.643830538,-0.157793045,0.0187676605,0.180277169 +0.952808499,4.23184109,-0.952808499,0.000307269191,0.161388233,0.0753174201,0.0104788076,-0.0951160491,0.0188222844,1.34752107 +0.958612084,4.23190498,-0.958612144,0.000906487519,0.161053911,0.0751306713,0.00224932143,-0.0882844552,0.0188220646,1.35568619 +-1.096416,4.23218536,1.096416,0.00101105415,0.150671467,0.0704955757,-0.036247056,-0.0193410479,0.0188202579,1.55069709 +0.627842903,4.23263073,-0.627842903,0.00275447406,0.163653553,0.0760190934,-0.0895149112,-0.281324983,0.018820364,0.88950187 +0.949619114,4.23263693,-0.949619055,0.00189883739,0.16149509,0.0753750429,0.0131287239,-0.0974702984,0.0188217275,1.34297228 +0.953709424,4.23301125,-0.953709483,0.00159111165,0.161366299,0.0752992555,0.00864836201,-0.0940620899,0.0188213699,1.34877014 +-0.226965472,4.23323059,0.226965472,0.000995812006,0.162887722,0.0739211068,-0.533326268,-0.291289181,0.0187903568,0.321016759 +0.113967165,4.23340702,-0.113967165,0.000226702468,0.167854771,0.0788492039,-0.630037963,-0.0404622555,0.0187665168,0.161787614 +0.119563609,4.23373461,-0.119563609,0.000393528171,0.167423531,0.0782697946,-0.628883839,-0.0456071496,0.018766541,0.169402301 +-0.145042047,4.23376846,0.145042047,0.000639002828,0.166083679,0.0763409734,-0.623823345,-0.192707092,0.0187762417,0.205204666 +-1.02293646,4.23382616,1.02293646,0.00180987979,0.15604198,0.0729272142,-0.0787918791,-0.0509981364,0.0188172907,1.44716823 +-0.913164735,4.23412609,0.913164735,0.00267711701,0.163790166,0.0770655051,0.024263626,-0.168035835,0.0187977459,1.29146314 +-0.227925941,4.23478508,0.227925956,0.000544076029,0.162895963,0.0739505664,-0.528807223,-0.29103151,0.0187893137,0.32239309 +-0.222505316,4.23499107,0.222505316,0.000804550014,0.163200051,0.0741302446,-0.535410225,-0.284871131,0.0187892355,0.31468761 +-0.135776937,4.23549032,0.135776937,3.33903808e-05,0.16611886,0.0765405446,-0.629920006,-0.177890852,0.0187711548,0.192529246 +-0.22697188,4.2356391,0.226971865,2.276447e-06,0.162966833,0.0739994198,-0.528657556,-0.289578795,0.0187888946,0.321089149 +0.195477709,4.23571682,-0.195477724,0.0018238232,0.166839719,0.0765638798,-0.599912703,-0.13791728,0.0187707189,0.278225571 +-0.13316223,4.23573589,0.13316223,0.000417777221,0.166068226,0.0766214952,-0.631431937,-0.171800345,0.0187692847,0.188601613 +-0.226431385,4.23591089,0.226431385,0.000601701497,0.163003772,0.0740233287,-0.528995693,-0.288781822,0.0187887587,0.32031098 +-0.107444152,4.23663568,0.107444152,0.000439746742,0.164786071,0.0775677189,-0.650045574,-0.117245689,0.0187478177,0.153034449 +-0.226974711,4.23697042,0.226974711,0.000301250606,0.16299884,0.0740321428,-0.526614845,-0.288718194,0.0187879335,0.321065813 +-0.228757769,4.23714209,0.228757769,0.00152233208,0.1629453,0.0740056708,-0.524407983,-0.289608985,0.0187877659,0.323540896 +0.112267308,4.23747683,-0.112267308,0.00023489655,0.168341592,0.0793739706,-0.622080088,-0.0376775637,0.0187635385,0.159040362 +-1.05973351,4.23792934,1.05973351,0.0014449138,0.154996842,0.0726082698,-0.0736059025,-0.02761974,0.0188146867,1.49878836 +-1.08030832,4.23895979,1.08030832,0.00115023938,0.155163795,0.0727319196,-0.072221674,-0.0130737871,0.0188147333,1.52794039 +-0.136485547,4.23898792,0.136485562,0.000160063384,0.16622521,0.0766374543,-0.622487545,-0.177854419,0.0187683012,0.193423718 +0.520253539,4.23931265,-0.520253539,0.00571184698,0.161827236,0.0747057199,-0.233610839,-0.318468243,0.0188046712,0.737243533 +-0.13373144,4.23947239,0.13373144,0.000181646959,0.166147292,0.0766737908,-0.623826444,-0.172147125,0.0187659785,0.189556986 +0.11691656,4.24000072,-0.11691656,0.000592483673,0.167885363,0.0786957592,-0.617788553,-0.0418034419,0.0187624376,0.165782034 +-1.15987229,4.24041367,1.15987229,0.00118442625,0.159802616,0.0755203962,0.0330051184,-0.0173253622,0.0188167207,1.64039719 +-0.719266415,4.24094963,0.719266415,0.00700852834,0.164333552,0.076558128,-0.0560213141,-0.297358871,0.0187887028,1.0185287 +-0.472366691,4.24098444,0.472366691,0.00415815134,0.160870641,0.0737363622,-0.280473053,-0.353043497,0.0187630132,0.674863458 +-0.100419492,4.24143028,0.100419492,0.000274665246,0.163988918,0.0778286085,-0.645616293,-0.0972688049,0.0187375303,0.143392533 +-0.0706769973,4.24151421,0.0706769973,0.000173114444,0.221654981,0.138166994,-0.63962698,0.0618001483,0.0187049061,0.100950927 +-0.0835411549,4.24157143,0.0835411549,0.000387680047,0.157346278,0.0790169165,-0.658115149,-0.020087963,0.0187175311,0.119304389 +-0.982026517,4.24163055,0.982026458,0.00182403252,0.161844686,0.0760088265,-0.0353801511,-0.109685622,0.0188034717,1.38895762 +0.272455871,4.24277735,-0.272455901,0.00292041665,0.164427206,0.0755577087,-0.530137002,-0.214468598,0.0187817961,0.389166564 +-1.22863197,4.24330807,1.22863197,0.000368654961,0.138122037,0.0696502104,-0.65096873,-0.0121971043,0.0188159738,1.73776138 +-1.21490788,4.24340439,1.21490788,0.000796055421,0.180089384,0.0880795717,-0.481866777,-0.0141114369,0.0188157521,1.71835017 +-1.19842589,4.24351978,1.19842589,0.000746820937,0.195310369,0.0973796174,-0.160809994,-0.0227877423,0.018815767,1.69503832 +0.0979953855,4.24367809,-0.0979953855,0.00037268622,0.170991451,0.0821987912,-0.609544516,-0.0301359892,0.0187583193,0.14015156 +0.0681755766,4.24371386,-0.0681755841,0.000173857712,0.242010891,0.149696246,-0.558244169,0.0335509852,0.0187424291,0.0974830538 +0.0811052471,4.24371719,-0.0811052471,0.000411330548,0.178240478,0.0915424749,-0.598664999,-0.00450080074,0.0187514424,0.115983456 +1.0660665,4.24376678,-1.0660665,0.00114002184,0.15613395,0.0726708099,-0.114314757,0.0262685474,0.0188096799,1.50771224 +1.22864032,4.24392271,-1.22864044,0.000323674642,0.133017987,0.0650849044,-0.491266131,-0.0159886237,0.0188156124,1.73771763 +1.21467221,4.24398422,-1.21467221,0.000700362609,0.162934065,0.0783029348,-0.355095416,-0.0193787944,0.0188151356,1.71796155 +1.19790447,4.24405718,-1.19790447,0.00070307072,0.169637993,0.0823030472,-0.103532821,-0.0210698731,0.0188126881,1.69424605 +0.232169077,4.24482775,-0.232169077,0.00140589953,0.166158885,0.0764604509,-0.559288263,-0.167624146,0.0187726077,0.32971859 +1.02831304,4.24510336,-1.02831304,0.00121966773,0.159445137,0.0741124004,-0.101161659,-0.0085345488,0.0188097991,1.45440972 +1.0709759,4.24618196,-1.0709759,0.00196393114,0.15569894,0.0724632069,-0.114469782,0.027675271,0.018807672,1.51464844 +1.17998338,4.24658728,-1.17998338,0.00043103029,0.151770741,0.0708779991,0.00154049881,-0.00655911211,0.0188083909,1.668854 +-1.18251169,4.24752569,1.18251169,0.000787334051,0.176123247,0.0851723328,-0.0114199612,-0.0146342842,0.0188129041,1.67247581 +1.17276132,4.24826908,-1.17276132,0.00110784383,0.147650331,0.0682607293,0.0154052582,0.000303912559,0.0188062582,1.65865064 +-0.208711654,4.24854755,0.208711654,0.000487790443,0.164255828,0.074945271,-0.527377427,-0.26451987,0.0187769774,0.295166045 +1.01694584,4.24921417,-1.01694572,0.00215415889,0.158615872,0.0736949891,-0.0908319578,-0.0159517583,0.0188070238,1.43833721 +-0.5019117,4.24924612,0.501911759,0.00302197831,0.16053094,0.0737400055,-0.266847223,-0.320462197,0.0187627003,0.715815544 +0.596913338,4.24971533,-0.596913338,0.00260782498,0.163658202,0.0760127902,-0.126563534,-0.276354522,0.0188010111,0.845604181 +-0.947626233,4.25008631,0.947626233,0.00194258569,0.163030908,0.0766740069,-0.00845158566,-0.132291645,0.0187901799,1.34018958 +0.151213154,4.25064516,-0.151213154,0.000775279244,0.166596353,0.0769067332,-0.591146111,-0.0771320835,0.0187599398,0.214484707 +1.06565344,4.25159502,-1.06565344,0.00158932293,0.15820545,0.0736762285,-0.121221952,0.0240632221,0.0188037045,1.50712419 +-1.02888536,4.25183344,1.02888536,0.000537935412,0.160329089,0.0750806928,-0.0938307568,-0.0511750281,0.0188039578,1.45547962 +0.163882732,4.25210428,-0.163882732,0.00100924715,0.166783631,0.0768779814,-0.584179699,-0.092721656,0.0187595114,0.23249504 +-0.136947751,4.25316238,0.136947751,0.000587738352,0.166621357,0.076997593,-0.597182631,-0.173827454,0.01875511,0.193779901 +0.784018457,4.25322819,-0.784018517,0.00202808878,0.164681613,0.0770553797,0.0585563816,-0.193209842,0.0188076179,1.11087692 +-1.1336565,4.2555027,1.1336565,0.00106273976,0.145342469,0.0664497092,-0.0182004981,0.00711509073,0.0188046508,1.60341024 +1.13043487,4.25580263,-1.13043487,0.000868275878,0.14267844,0.0652871355,-0.0451702587,0.0360604487,0.0187990479,1.59875119 +1.12354207,4.25614119,-1.12354195,0.00105610071,0.144446492,0.0663340092,-0.053885363,0.0240644999,0.018798722,1.58901346 +-1.01434326,4.25627756,1.01434326,0.00137732201,0.15985395,0.0748209283,-0.0854176655,-0.0652852803,0.0187986866,1.43478799 +0.853452027,4.25738096,-0.853452027,0.00377528509,0.16439116,0.0769390613,0.0663993061,-0.155617699,0.0188032538,1.20729423 +0.208614409,4.26034975,-0.208614409,0.00174611947,0.168000326,0.0775532052,-0.547615826,-0.145048618,0.0187574681,0.297782779 +-1.17860496,4.26038074,1.17860496,0.000610413961,0.178024679,0.085539259,0.0279671401,0.0040075276,0.0188030563,1.66696203 +-0.774040699,4.26050138,0.774040699,0.00739576714,0.165129587,0.0772390589,-0.0167783294,-0.249246895,0.0187742095,1.09560299 +0.885797381,4.26068211,-0.885797381,0.00196160981,0.164034829,0.0767589062,0.0635154024,-0.136110589,0.0188009702,1.25341332 +1.1797483,4.26091671,-1.1797483,0.000583463989,0.159810826,0.0750012696,0.0200383514,0.0108329123,0.0187977459,1.66853046 +1.22865379,4.26268005,-1.22865379,0.000221953058,0.131411135,0.065583773,-0.512777507,-0.0130430842,0.0188015606,1.73772931 +1.21732092,4.26271915,-1.21732092,0.000488329562,0.166045785,0.0795219392,-0.400085509,-0.0129218623,0.0188012291,1.72170031 +-0.622394562,4.26272631,0.622394562,0.00194735138,0.162453026,0.0752331167,-0.140297934,-0.303358316,0.0187687613,0.880444884 +1.20371175,4.26276588,-1.20371175,0.000486538134,0.182153001,0.0893226415,-0.163709611,-0.00817401893,0.0187992379,1.70245218 +1.19803059,4.26300478,-1.19803059,0.000405131897,0.180740282,0.088253513,-0.0815631226,0.00164665934,0.0187986754,1.69443738 +-0.101357624,4.2631011,0.101357624,0.000291111559,0.164476797,0.0783343017,-0.605559826,-0.0963094682,0.0187194161,0.143509164 +-0.157003671,4.26348829,0.157003671,0.000454281922,0.16680105,0.0769010186,-0.559195697,-0.198491856,0.0187569316,0.222054482 +0.148381501,4.26356411,-0.148381501,0.000571692421,0.167408213,0.0776223093,-0.567741215,-0.0721184313,0.0187517758,0.210733593 +0.068887122,4.26392651,-0.068887122,0.000124131679,0.245322168,0.151526853,-0.5193519,0.0310785826,0.018724829,0.0976119936 +-0.312312722,4.26401949,0.312312722,0.00334124663,0.161645919,0.0737126097,-0.396357,-0.324379981,0.0187594723,0.442802697 +-0.0841984227,4.26404619,0.0841984227,0.000290404132,0.157008991,0.0789733231,-0.617335737,-0.0192043521,0.0187031515,0.119192183 +0.0819864124,4.26458454,-0.0819864124,0.000284591515,0.179419264,0.0923540518,-0.558572054,-0.00333657418,0.018735012,0.116151407 +-1.228719,4.26478672,1.228719,0.000231339858,0.1323625,0.0682690293,-0.674138784,-0.00875300728,0.0187992733,1.73782945 +-1.2181201,4.26489973,1.2181201,0.000509369071,0.177983761,0.0859278217,-0.545448601,-0.00578459539,0.0187990014,1.722839 +-1.18985176,4.26503181,1.18985176,0.000417788193,0.190268278,0.0926732719,-0.104864642,0.000708068954,0.0187992156,1.6828177 +-1.20539761,4.26503515,1.20539761,0.000662555976,0.210082829,0.105196923,-0.255762577,-0.00339084282,0.0187989715,1.70484495 +-0.0711223483,4.26506424,0.0711223483,0.000125334947,0.221506238,0.137514085,-0.598347962,0.0641018972,0.0186938345,0.100661844 +0.0991312116,4.26512289,-0.0991312116,0.000287261617,0.172428101,0.0833559707,-0.568673015,-0.0268513262,0.0187434349,0.140411898 +0.265043378,4.26547527,-0.265043378,0.00288947066,0.1660299,0.0767221898,-0.504931748,-0.182696402,0.0187674463,0.376923859 +-1.10524476,4.26566792,1.10524476,0.000931120652,0.161550149,0.0769784376,-0.0330311656,-0.0551341288,0.0187961739,1.563182 +-0.927523673,4.26586056,0.927523673,0.000414343434,0.164219752,0.0772808716,-0.00261247298,-0.143675581,0.0187742077,1.31205451 +-1.15445518,4.26605558,1.15445518,0.000697786338,0.172529846,0.0820954069,0.0194381215,0.0582936592,0.018797908,1.63273406 +-0.11728698,4.26618433,0.11728698,0.000369256246,0.167349622,0.0783214718,-0.588286638,-0.133802831,0.0187306181,0.166463375 +-0.275390387,4.26656437,0.275390387,0.00179824769,0.162567928,0.0741415992,-0.4259305,-0.307005763,0.018761836,0.392058879 +-0.922552466,4.2680378,0.922552466,0.000324050925,0.164432272,0.0773930997,-0.000369164976,-0.146522701,0.0187721383,1.3051511 +-0.0709731951,4.26869631,0.0709731951,3.0442141e-05,0.22149238,0.137383163,-0.591330409,0.0638848916,0.0186922476,0.100606352 +-0.0840271935,4.26877356,0.084027186,8.59345892e-05,0.157184035,0.0791144297,-0.608212113,-0.0192297064,0.0187003072,0.11918889 +-0.101193957,4.26886797,0.101193964,6.82904283e-05,0.164606363,0.0784871802,-0.594727755,-0.0961613804,0.0187146664,0.143626019 +0.101589561,4.26988077,-0.101589561,0.000246617972,0.17246224,0.0832140595,-0.559953034,-0.0291147418,0.0187405664,0.14401795 +0.0989251435,4.27010679,-0.098925136,6.34442695e-05,0.172770277,0.0836109444,-0.559519529,-0.0276114587,0.0187400226,0.140448287 +0.156129405,4.2703681,-0.15612939,0.000817278225,0.167364389,0.0774878189,-0.555008292,-0.0779664963,0.01874841,0.221617654 +1.1651932,4.27038765,-1.1651932,0.00075832213,0.169858158,0.0811543986,0.0330721587,0.0983853936,0.0187904332,1.64794695 +0.0817825273,4.27044535,-0.0817825273,0.000113847513,0.179582626,0.0924828127,-0.547579348,-0.00347042363,0.0187305193,0.116179653 +0.0686924607,4.2706604,-0.0686924607,5.50015902e-05,0.246485904,0.152280152,-0.507012784,0.0306889284,0.0187190808,0.0976415649 +-0.071049802,4.27119732,0.0710497946,0.000125238861,0.221810237,0.13764517,-0.587570608,0.0638311356,0.0186917894,0.100599237 +-1.09356725,4.27144289,1.09356725,0.0010283892,0.170650572,0.0828268752,-0.038740743,-0.0798767954,0.0187915228,1.5466907 +-0.1061875,4.27168703,0.1061875,0.000170729734,0.165566057,0.0785567164,-0.58618331,-0.105848148,0.0187161379,0.150260165 +-0.0841180757,4.27203512,0.0841180757,0.0002890912,0.15713647,0.079118602,-0.603141665,-0.0189984236,0.0186991412,0.119139321 +-0.101285309,4.27290058,0.101285309,0.000216219807,0.164715469,0.0786041319,-0.588106513,-0.0956647247,0.0187126305,0.143492714 +0.16583088,4.27294922,-0.16583088,0.000900211395,0.167686552,0.077622056,-0.54730922,-0.0858196542,0.0187477246,0.235148489 +0.0992385149,4.27424192,-0.0992385149,0.000259210821,0.172855034,0.0836699083,-0.552500367,-0.0264935642,0.0187372379,0.140620038 +0.799708724,4.27489281,-0.799708724,0.00410745014,0.165152892,0.0773635283,0.0562155806,-0.167325154,0.0187895093,1.13292849 +-0.608519077,4.27526236,0.608519077,0.0055793589,0.162159935,0.0750133693,-0.161664054,-0.295509875,0.0187567249,0.860956967 +0.0820858926,4.27527952,-0.0820858926,0.0002849382,0.179533243,0.0924360678,-0.539784133,-0.0028539612,0.0187268481,0.116345853 +0.197203815,4.27555799,-0.197203815,0.00126661384,0.168519288,0.077974394,-0.530241251,-0.122327566,0.0187480766,0.280413955 +-0.16817145,4.27588177,0.16817145,0.000822119473,0.167099997,0.0770229846,-0.526243389,-0.210639119,0.0187510848,0.238013923 +-0.116971701,4.27591038,0.116971694,0.000308157149,0.167611212,0.0785667449,-0.570139766,-0.131129563,0.01872099,0.166329011 +0.068995811,4.2761941,-0.068995811,0.00012324292,0.245973513,0.151836604,-0.499302983,0.0315570235,0.018714454,0.0978166386 +0.44436121,4.27676392,-0.44436121,0.011564767,0.161987171,0.0748611689,-0.311958224,-0.270943105,0.0187731553,0.630322576 +-0.166290358,4.27739477,0.166290343,0.000270916178,0.167142838,0.0770961642,-0.525478125,-0.207725987,0.0187490173,0.235305071 +0.117896169,4.27760744,-0.117896169,0.000738521048,0.169307917,0.0797143951,-0.54981178,-0.0390267074,0.0187409278,0.168223381 +-0.631317317,4.27791023,0.631317317,0.00351065514,0.162862763,0.0755185559,-0.129952908,-0.285807699,0.0187563691,0.893098354 +-1.17127275,4.27793884,1.17127275,0.000590416254,0.214125067,0.107150763,0.0705826133,0.105455674,0.0187898763,1.65659213 +1.08654714,4.27799606,-1.08654714,0.0010492088,0.180683106,0.0876751095,-0.0803676322,-0.0471406467,0.0187825095,1.53666961 +-0.171157539,4.2784729,0.171157524,0.000846001843,0.16709955,0.0770326406,-0.519104958,-0.211951941,0.0187497269,0.242142543 +0.338264316,4.27852297,-0.338264346,0.0034935642,0.163457632,0.0754472688,-0.426141888,-0.227276325,0.0187699366,0.478426784 +-1.03658056,4.27859163,1.03658056,0.000780427596,0.165264547,0.0775885507,-0.111804321,-0.0606049374,0.0187857524,1.46601653 +1.17216635,4.27881908,-1.17216635,0.000454662688,0.1992549,0.0988919362,0.0746448487,0.112951249,0.0187848937,1.65780795 +-0.167980269,4.27913809,0.167980269,0.00041189295,0.1672187,0.0771237165,-0.521036506,-0.209335357,0.0187482387,0.237691075 +-0.392971873,4.28042126,0.392971873,0.00662499852,0.162433982,0.0744156763,-0.326042265,-0.306340724,0.0187405329,0.556788087 +-0.927844167,4.28068352,0.927844107,0.00103002624,0.164623454,0.0775151327,-0.00960781146,-0.140287578,0.0187624563,1.31240821 +-0.209117949,4.28108788,0.209117949,0.0012496463,0.166213498,0.0763236061,-0.476837367,-0.25308013,0.0187533833,0.298531562 +1.08270335,4.28212404,-1.08270347,0.00112320227,0.18529062,0.0903750882,-0.0833982378,-0.0539311245,0.0187792294,1.53123689 +-1.13405609,4.28227234,1.13405609,0.000383035658,0.484622717,0.249295577,0.0239253677,0.00682343543,0.0187894274,1.60397577 +-0.937244117,4.28267622,0.937244117,0.00218575215,0.164825633,0.0775972828,-0.0190710109,-0.137900889,0.0187627822,1.32562828 +1.13182485,4.28293085,-1.13182485,0.000315853307,0.508569539,0.265963167,0.0385307893,0.00616828352,0.0187814888,1.60071814 +-0.340929449,4.2830224,0.340929449,0.00406244816,0.162268594,0.0742451847,-0.352312654,-0.320415407,0.0187396649,0.485457182 +-0.111554302,4.28321743,0.111554302,0.000253063074,0.166821525,0.0787940249,-0.561177671,-0.115405604,0.0187121518,0.158257529 +1.12646067,4.28357697,-1.12646067,0.000369272573,0.511179268,0.267650455,0.0446465723,-0.0358382091,0.0187803432,1.59314239 +-0.283123761,4.28366184,0.283123761,0.000879775442,0.16292873,0.0745189711,-0.393963486,-0.302698612,0.0187497195,0.403187692 +-1.04934967,4.28448868,1.04934967,0.000992288115,0.166682541,0.0783125982,-0.115551442,-0.0536663346,0.0187821481,1.48411298 +-0.904187143,4.28550339,0.904187143,0.00307185389,0.165104657,0.0776949599,-0.00507475715,-0.15140292,0.0187570527,1.27880263 +-1.15095508,4.28705454,1.15095496,0.000259761844,0.517899275,0.284952968,0.0904519409,0.132675424,0.018786123,1.62778449 +-0.117409669,4.28717804,0.117409669,0.000404247257,0.167902157,0.0788438469,-0.550409496,-0.129499272,0.0187128522,0.166707665 +0.876389563,4.2872448,-0.876389563,0.00284651713,0.164768428,0.0771917254,0.0586109087,-0.120129615,0.0187804848,1.23977828 +0.127669364,4.28737926,-0.127669364,0.000528604432,0.169302985,0.07959456,-0.53176856,-0.0461097583,0.0187359825,0.18196173 +-0.12712878,4.2874999,0.12712878,0.000496010471,0.167953208,0.0785404965,-0.542524457,-0.145908147,0.0187165067,0.180024028 +-0.293904871,4.28837585,0.293904871,0.000889142742,0.162636399,0.0743793175,-0.382880986,-0.305978477,0.0187448598,0.418873787 +-0.25191319,4.28884029,0.25191319,0.00207111007,0.164377034,0.0753965974,-0.416109324,-0.276398778,0.0187468734,0.357328773 +0.108751968,4.28890419,-0.108751968,0.000350603223,0.170899808,0.081563957,-0.53004986,-0.0300653819,0.0187313706,0.154912323 +1.15930223,4.28901005,-1.15930223,0.000280296255,0.53721118,0.304181069,0.128229916,0.203714281,0.018779479,1.63961565 +-0.443196446,4.28940916,0.443196416,0.00500885118,0.162797898,0.0748451725,-0.275501817,-0.306317836,0.0187306441,0.628430784 +-0.620168626,4.28955507,0.620168626,0.00022555649,0.162737533,0.0754239187,-0.142342955,-0.278230429,0.0187465139,0.877853096 +-1.11269796,4.29057026,1.11269808,0.000322343461,0.522502363,0.282998204,0.109688483,-0.163035542,0.0187824573,1.5737232 +-0.72904861,4.29100704,0.72904861,0.00330559351,0.165050924,0.0770183876,-0.0554105826,-0.253150344,0.018750051,1.03386581 +-1.16516399,4.29256344,1.16516399,0.000234865467,0.567435741,0.335073173,0.182553291,0.225532487,0.0187816359,1.6479522 +1.16585088,4.29370928,-1.16585088,0.000185651515,0.563472509,0.336248934,0.196332753,0.226615325,0.0187759455,1.64887655 +-1.01783693,4.2937355,1.01783693,0.000617748068,0.164725244,0.0772375688,-0.108192742,-0.082119137,0.01877103,1.43999743 +-0.614445984,4.29402781,0.614445984,0.00103849103,0.162711963,0.0753975511,-0.148294359,-0.275430024,0.0187420901,0.869534433 +0.62478435,4.29481173,-0.62478435,0.00499548949,0.16483815,0.0769529641,-0.088171728,-0.214798361,0.0187683385,0.88497448 +0.244057357,4.29485464,-0.244057372,0.00195693667,0.168567687,0.0783518404,-0.468567908,-0.156542361,0.0187442955,0.349438637 +-1.10381234,4.29511738,1.10381234,0.000349934271,0.540772557,0.300049454,0.146941841,-0.22237584,0.0187786501,1.56118107 +0.595555186,4.29559135,-0.595555186,0.00370661239,0.164496094,0.0767265409,-0.117436089,-0.228821546,0.0187668223,0.845350623 +0.338953853,4.29560852,-0.338953853,4.33135356e-05,0.164365575,0.0761628449,-0.398955107,-0.210642159,0.0187589489,0.479696155 +-0.0702289939,4.2958374,0.0702289939,0.00023079972,0.223735332,0.139148071,-0.545670211,0.0595811941,0.0186841842,0.100464642 +-0.0831646174,4.2958746,0.0831646174,0.000530235062,0.158022016,0.0798829347,-0.561945856,-0.0186027251,0.0186894257,0.118967369 +-0.0999370217,4.29599094,0.0999370217,0.000446753489,0.165055364,0.0791414976,-0.548107386,-0.0900480002,0.0186978262,0.142672956 +-0.141458362,4.29610443,0.141458362,0.00067886617,0.167812824,0.0780390128,-0.516844928,-0.169641554,0.0187165309,0.20084393 +0.337353081,4.29616833,-0.337353081,0.00102570129,0.164412513,0.0761972591,-0.400376618,-0.208764434,0.0187585298,0.477387428 +-1.04165947,4.29661274,1.04165947,0.000684526167,0.168031082,0.0789798051,-0.124922603,-0.0662241057,0.0187730435,1.47326434 +0.0987669155,4.29681444,-0.0987669155,0.000410723558,0.173814058,0.0842536241,-0.514169574,-0.0270019136,0.0187249221,0.14147225 +-0.841407776,4.29690886,0.841407835,0.00698095933,0.166415691,0.0781868398,-0.00419294089,-0.190717965,0.0187435765,1.19034731 +0.0817250088,4.29714012,-0.0817250088,0.000503574905,0.17931813,0.0922202319,-0.503640831,-0.00170168839,0.0187143721,0.117053337 +0.0687592924,4.29733276,-0.0687592849,0.000211206119,0.243566453,0.150206029,-0.46941644,0.0354401581,0.0187015813,0.0984739214 +0.334708631,4.29768133,-0.334708631,0.00172312185,0.164618194,0.0763292089,-0.400536835,-0.204843462,0.0187572986,0.473515123 +0.346828312,4.29778576,-0.346828312,0.00336779957,0.164324939,0.0761774406,-0.389719725,-0.209663287,0.0187579747,0.490553558 +0.338828444,4.29801321,-0.338828444,1.38193009e-05,0.164464638,0.0762472823,-0.396306217,-0.207649037,0.018757524,0.47958225 +0.916737795,4.2988019,-0.916737795,0.00206251908,0.164149538,0.0768407062,0.0173313692,-0.0878828019,0.0187709536,1.29653585 +0.193030804,4.29984093,-0.193030804,0.000898566039,0.169858709,0.0789953247,-0.490142316,-0.112963237,0.0187338497,0.276736319 +-0.622003376,4.29998398,0.622003436,0.00450132135,0.162898719,0.07552661,-0.140947402,-0.269507855,0.0187385585,0.880153239 +1.09864271,4.30068684,-1.09864271,0.000357426907,0.542902946,0.302427888,0.112782799,-0.18209824,0.0187647641,1.55377674 +0.117812194,4.30090666,-0.117812194,0.000532146834,0.170145035,0.0804767907,-0.511359036,-0.0335277803,0.0187262557,0.167618975 +0.148235023,4.30103874,-0.148235023,0.00110341038,0.168861821,0.0787771121,-0.50579834,-0.0697178096,0.018730944,0.21288237 +1.22869992,4.30142307,-1.22869992,0.000170450192,0.123717323,0.0641735122,-0.53259182,-0.0052079754,0.0187709555,1.73783123 +1.22110081,4.3014431,-1.22110081,0.000374864612,0.163888693,0.0774165392,-0.456204593,0.00123394409,0.0187706873,1.72708344 +1.21197987,4.30146742,-1.21197987,0.000444291712,0.195982814,0.0968482941,-0.262412548,0.0117095765,0.0187696256,1.71418333 +0.337954581,4.30162668,-0.337954581,0.00272855209,0.164660558,0.0763887316,-0.393376231,-0.203599229,0.0187553056,0.478083223 +1.0957303,4.3038559,-1.0957303,0.000376984128,0.540191114,0.302265257,0.113380075,-0.188387424,0.0187619943,1.54966116 +0.995953441,4.30422878,-0.995953441,0.0042151222,0.162064537,0.0753471404,-0.0913956985,-0.0347686112,0.0187656358,1.40931833 +-1.07085633,4.3044858,1.07085633,0.000939675607,0.200037837,0.100734107,-0.0554429516,-0.111591876,0.0187699255,1.51453352 +-0.221152186,4.30461121,0.221152186,0.0032076498,0.166106045,0.0765131265,-0.424022108,-0.251646578,0.0187350884,0.315252125 +-1.20154691,4.30463696,1.20154691,0.000433784851,0.27176249,0.140311226,-0.0959438682,0.0418916494,0.0187700819,1.69930828 +-0.148288861,4.30476618,0.148288861,0.000724347075,0.168184549,0.0782012418,-0.496200174,-0.175620511,0.0187117867,0.210509688 +-1.03513074,4.30486488,1.03513062,0.000728323241,0.168194309,0.0791321471,-0.121328086,-0.070829913,0.0187649187,1.46405089 +1.19989109,4.30492687,-1.19989109,0.000266525254,0.230269313,0.117178589,-0.00362799689,0.0443764925,0.0187666584,1.69698811 +-1.19514096,4.3049736,1.19514096,0.000307480514,0.270692885,0.139419109,-0.00765900686,0.0476017185,0.0187701117,1.69027722 +1.19602573,4.3060689,-1.19602573,0.000448737032,0.230452374,0.117082149,0.0547105074,0.0521301404,0.018765524,1.69153309 +-1.22878921,4.30757666,1.22878909,0.00011934169,0.117275946,0.0634601191,-0.683191597,-0.00142285402,0.0187679864,1.73778176 +-1.22228205,4.3076458,1.22228205,0.000262532383,0.159238979,0.0744383931,-0.61828512,0.00819919258,0.018767802,1.72857916 +-1.21447384,4.30772781,1.21447384,0.000288689509,0.204056889,0.100904934,-0.419676155,0.0204809289,0.0187677201,1.71753645 +-1.22877645,4.30995131,1.22877645,1.54934824e-05,0.116503507,0.0631954446,-0.682510734,-0.00107890146,0.0187662747,1.73777437 +-0.141135097,4.3099823,0.141135097,0.000210366372,0.168231845,0.0783979595,-0.494441539,-0.167370692,0.0187063012,0.200721219 +-1.22244716,4.31001186,1.22244728,3.39602993e-05,0.157984316,0.0737287849,-0.620796084,0.00878402032,0.0187660977,1.72882342 +-1.21430516,4.31006289,1.21430528,6.68048815e-05,0.207189366,0.102672867,-0.412264049,0.0223183259,0.0187660232,1.71730542 +-1.21485198,4.31008482,1.21485186,1.93310643e-05,0.202982619,0.10029424,-0.427296907,0.0214440469,0.0187660139,1.71808159 +0.670981646,4.31080914,-0.670981646,0.00706984242,0.165594637,0.0775147602,-0.0439355671,-0.184795856,0.0187587719,0.951526046 +-1.1891036,4.31141329,1.1891036,0.000297082908,0.383178085,0.216327235,0.210567474,0.122337177,0.0187651515,1.68173885 +-0.132153317,4.31172657,0.132153332,0.000423852121,0.168551624,0.0789448768,-0.498362899,-0.152168378,0.0187039021,0.187412679 +1.18990982,4.31190968,-1.18990982,0.000304091489,0.33565259,0.188448802,0.245262533,0.135187447,0.0187612176,1.68288386 +-0.706272006,4.31217098,0.706272006,0.00719933584,0.164810494,0.0768314898,-0.0784062147,-0.241054893,0.0187318269,1.00122118 +-1.06519032,4.31413603,1.06519032,0.000465582038,0.205607042,0.104124457,-0.0615703948,-0.119095698,0.018763423,1.50652599 +-1.22878611,4.31451941,1.22878623,0.000101998099,0.115919992,0.0628166124,-0.673653007,-0.000884480192,0.0187631827,1.73777282 +-1.22260797,4.31455278,1.22260797,0.000224171832,0.15596135,0.0726881027,-0.615454137,0.00905536022,0.0187630132,1.7290355 +-1.21519184,4.31459284,1.21519196,0.000270439341,0.200069219,0.0986496359,-0.427954078,0.0217496548,0.018762935,1.71854758 +0.777833104,4.31465816,-0.777833104,0.00497455196,0.166064575,0.0779141411,0.0266722813,-0.139348611,0.0187586304,1.10062778 +-1.1991787,4.31568718,1.1991787,0.000273423386,0.295162171,0.15441294,-0.0210488196,0.053431537,0.0187620632,1.69600177 +-0.427069902,4.3156929,0.427069932,0.00399606535,0.163748205,0.0754189342,-0.269129157,-0.281869918,0.018712271,0.607044578 +0.932481587,4.31578827,-0.932481587,0.000729929423,0.164182514,0.0768700317,-0.00409228215,-0.0640418231,0.0187574606,1.31915569 +-0.9990592,4.31591034,0.9990592,0.0045615281,0.165010422,0.077564016,-0.0976836532,-0.0953230932,0.0187489688,1.41351461 +1.18481159,4.31678343,-1.18481159,0.000124048704,0.66530931,0.462259233,0.459265888,0.230287939,0.0187579915,1.67567348 +-1.18407047,4.31679678,1.18407047,0.000121598583,0.691050291,0.473468542,0.440415293,0.215276793,0.0187618323,1.67462111 +-0.192855924,4.31688547,0.192855924,0.00136321387,0.167317718,0.0774057359,-0.436789602,-0.218372896,0.0187197104,0.273257613 +0.128169656,4.31783772,-0.128169656,0.000638471276,0.170238599,0.080317758,-0.481827497,-0.0447832793,0.018717641,0.183430642 +-1.03878188,4.31801605,1.03878188,0.000799813599,0.169268265,0.0798102915,-0.124776065,-0.0762583315,0.0187557191,1.46913135 +0.567819476,4.31878185,-0.567819476,0.00472741108,0.164641619,0.0768806785,-0.144159615,-0.211215004,0.0187478233,0.804850817 +1.03235674,4.31884718,-1.03235662,0.00160336844,0.165024251,0.076508373,-0.144974202,-0.0351013131,0.0187532846,1.46002102 +0.94119674,4.31958199,-0.94119668,0.00254817517,0.163813606,0.0766156986,-0.0179891363,-0.0575870015,0.0187544581,1.33125162 +-1.08648443,4.31981659,1.08648443,0.000317781145,0.511676311,0.290596604,0.120438725,-0.214574486,0.0187605377,1.53663397 +1.19942248,4.31997204,-1.19942248,0.000268667936,0.249259412,0.128775045,0.0415717214,0.0519246198,0.0187550299,1.69630313 +-1.19343197,4.3201685,1.19343197,0.000163342571,0.421160191,0.24259761,0.233961254,0.117077813,0.0187587477,1.68787479 +1.02815449,4.32025623,-1.02815449,0.00103811827,0.164709955,0.0763506591,-0.141096801,-0.0378004611,0.018752344,1.45407975 +0.458503842,4.32057238,-0.458503842,0.00643482432,0.163703576,0.0761542395,-0.264898598,-0.229547024,0.0187427402,0.650020957 +0.934522629,4.3209343,-0.934522688,3.62436622e-05,0.164096355,0.0768183768,-0.00891489349,-0.0603758469,0.01875351,1.32206857 +-0.179507613,4.32137489,0.179507613,0.000945060106,0.167859003,0.0778262988,-0.4421781,-0.206928521,0.0187118705,0.254584283 +0.929271758,4.32138157,-0.929271758,0.0013819749,0.164294422,0.0769370571,-0.00442259479,-0.0626247078,0.0187532306,1.31450379 +-0.0709835216,4.32160664,0.0709835216,0.000124759099,0.223918647,0.139778495,-0.510832787,0.0594948716,0.0186785813,0.100453943 +0.0695535988,4.32166338,-0.0695535988,0.000124040263,0.237666532,0.145736381,-0.430046588,0.0372912511,0.0186857525,0.0984516367 +-0.603724182,4.32225704,0.603724241,0.00542160077,0.163306713,0.0757806227,-0.151114285,-0.248403072,0.0187208652,0.854075611 +-0.863993287,4.32233238,0.863993227,0.00149081659,0.166772515,0.0784736946,-0.0131200291,-0.161712259,0.01872571,1.2227 +1.21520483,4.32233953,-1.21520483,0.000242062888,0.19168207,0.0943205953,-0.298749089,0.0171327442,0.0187534224,1.71873474 +1.2225821,4.32235909,-1.2225821,0.000263553666,0.157090813,0.0734731406,-0.461428881,0.00597694889,0.0187539905,1.72916889 +1.22872841,4.3223753,-1.22872841,0.000119927106,0.11976935,0.0628262386,-0.518265903,-0.00253502652,0.0187541842,1.73786187 +-0.0839038566,4.3224411,0.0839038566,0.000287371455,0.157389551,0.0796877742,-0.522491097,-0.0166321211,0.0186817702,0.118699312 +0.427710027,4.32245636,-0.427710056,0.00575436326,0.16398403,0.0763035491,-0.289208412,-0.223672271,0.0187423583,0.606762528 +0.082777448,4.32252264,-0.0827774405,0.000288657262,0.179014474,0.0920203552,-0.45922783,0.000475299428,0.0186982043,0.117130823 +0.172679409,4.32279587,-0.172679424,0.000724472629,0.170218721,0.0796071962,-0.463878751,-0.0767619759,0.0187210627,0.245151222 +-0.100760348,4.32293844,0.100760356,0.000266286836,0.165483966,0.0795771927,-0.505056202,-0.0883407965,0.0186858382,0.142513707 +-0.0709365606,4.323174,0.0709365606,1.41499004e-05,0.223898783,0.139783099,-0.508406401,0.0592545979,0.0186781026,0.100450099 +-0.083874464,4.32321596,0.083874464,1.89893781e-05,0.157406956,0.0797014087,-0.521244705,-0.0166109204,0.0186815653,0.118694581 +0.100180499,4.32324934,-0.100180507,0.000271683151,0.174770981,0.0850291997,-0.468516529,-0.0222965125,0.0187097322,0.141709551 +-0.100950986,4.32329321,0.100950986,0.000207407094,0.165522292,0.0795846134,-0.504340529,-0.08879444,0.0186857395,0.142788023 +-0.100749068,4.32330704,0.100749068,6.02464024e-06,0.165491238,0.0795836374,-0.504468799,-0.0883289278,0.018685719,0.142519519 +-0.100773081,4.32369518,0.100773081,0.000245532428,0.165504187,0.0795923695,-0.503867507,-0.0883496106,0.0186856091,0.142531008 +0.100156099,4.32382917,-0.100156099,9.33355932e-06,0.174793079,0.0850457698,-0.467550397,-0.0223074295,0.0187093765,0.141714066 +0.100617342,4.3238349,-0.100617334,0.000232435792,0.174735054,0.0849783123,-0.467604041,-0.0224628095,0.0187094826,0.142322034 +-1.18864381,4.32390118,1.18864381,7.01443932e-05,0.715250134,0.501536429,0.492782354,0.200542271,0.0187563542,1.68110335 +0.0827222392,4.32394934,-0.0827222392,2.88369592e-05,0.178995878,0.092009671,-0.456685096,0.000513963052,0.0186973047,0.117133185 +0.0694704652,4.32397556,-0.0694704652,1.86391953e-05,0.237177283,0.145390421,-0.426006764,0.0373898074,0.0186842512,0.0984449759 +1.19384408,4.32413864,-1.19384408,0.000185525714,0.361990094,0.207900688,0.258341074,0.116281323,0.0187519435,1.68841398 +-0.0839124024,4.32418728,0.0839123949,0.000291830394,0.157407999,0.0797000751,-0.519857526,-0.0166663304,0.018681312,0.118703008 +0.183298856,4.32431602,-0.183298856,0.00101473415,0.170508727,0.0797046125,-0.457570434,-0.0857549459,0.0187210236,0.259950101 +0.100179121,4.32434177,-0.100179121,0.000191929284,0.174792647,0.0850489885,-0.466782719,-0.0221655574,0.0187090449,0.141711935 +-0.0709893852,4.32514858,0.0709893852,0.00012669494,0.22395505,0.139802724,-0.505813062,0.0592335165,0.0186775085,0.100447781 +-0.118380643,4.32517242,0.118380636,0.000684999861,0.168809786,0.0796943456,-0.486374795,-0.127631441,0.0186903533,0.168833852 +0.0827680305,4.32522535,-0.082768023,0.000290568423,0.178941071,0.0919858813,-0.454700589,0.000719451928,0.0186964776,0.117125988 +1.03065646,4.32574987,-1.03065646,0.00102168601,0.164785221,0.0763805658,-0.144252568,-0.039121218,0.0187481232,1.457618 +0.0695287213,4.32606649,-0.0695287213,0.000125171791,0.23699519,0.145240143,-0.423015952,0.0377189331,0.018682912,0.0984276086 +1.20981932,4.32671738,-1.20981932,0.000320400461,0.231284425,0.117845044,-0.158068851,0.0279246569,0.0187500771,1.7110796 +-1.08223665,4.32689714,1.08223665,0.000157221861,0.497202009,0.282992244,0.109089114,-0.207007706,0.0187553056,1.53063309 +-0.311507255,4.32701921,0.311507255,0.00256777019,0.163559064,0.0751575008,-0.34117955,-0.277816653,0.0187162124,0.441915274 +1.18919742,4.32760525,-1.18919742,8.02780924e-05,0.677710593,0.481663018,0.48958835,0.189884737,0.0187495816,1.68184245 +0.93490082,4.32831764,-0.934900761,0.000802829047,0.16431275,0.0769594386,-0.00989743602,-0.0566075407,0.0187478811,1.3224256 +0.118757538,4.32850218,-0.118757531,0.000661273138,0.171441302,0.0814039558,-0.465967327,-0.0340650976,0.0187119097,0.170363918 +-0.186599582,4.32978582,0.186599582,0.000426230574,0.167915508,0.0778963268,-0.423001111,-0.210502818,0.0187065918,0.26484856 +-1.06275737,4.33042049,1.06275737,0.000894656521,0.200209379,0.100382134,-0.0790809542,-0.117259517,0.0187505782,1.50304127 +-0.52714169,4.33071804,0.52714169,0.00316519965,0.163912445,0.0759479553,-0.198683009,-0.246885121,0.0187057909,0.745504141 +0.265716672,4.33085537,-0.265716672,0.0043011927,0.169640198,0.0793156251,-0.406327873,-0.150984988,0.0187251549,0.378898859 +1.05876708,4.33212519,-1.05876696,0.00110860879,0.188250154,0.0913635939,-0.11682824,-0.0859338343,0.0187404845,1.49737012 +-1.20635343,4.33218241,1.20635343,0.000316537247,0.245694339,0.12483079,-0.178040698,0.0436242893,0.0187508464,1.70607972 +-0.84702611,4.33427572,0.84702611,0.00364435697,0.167034715,0.0785509273,-0.0165598914,-0.164923474,0.0187151339,1.19883668 +-0.271898061,4.3351903,0.271898061,0.00249143247,0.164685324,0.0759229884,-0.342405677,-0.263445407,0.0187107269,0.385232449 +1.02214599,4.33628464,-1.02214599,0.00129339437,0.165046513,0.0766706839,-0.129158959,-0.0353666954,0.0187402554,1.44555187 +1.0575285,4.33693266,-1.05752838,0.000870068208,0.186066344,0.0900635868,-0.11908666,-0.0872087032,0.018736979,1.49562228 +0.109639928,4.33720779,-0.109639928,0.000269315555,0.173936456,0.0837800652,-0.44805795,-0.0272708964,0.0187059045,0.156506747 +-0.500198543,4.33746481,0.500198543,0.00171063689,0.164175034,0.0760333389,-0.214773193,-0.244177312,0.0186982248,0.707442284 +0.728690028,4.33779526,-0.728689969,0.00567444181,0.166514844,0.0781292096,-0.0186619852,-0.139442325,0.0187394619,1.03170955 +-0.50492686,4.33790588,0.50492686,0.000752880471,0.164161488,0.0760482401,-0.211485848,-0.24283506,0.0186979119,0.714287579 +-0.506358147,4.33824492,0.506358147,0.00276573887,0.164142489,0.0760466605,-0.210863397,-0.241308495,0.0186979417,0.716275394 +-0.109178491,4.33857346,0.109178491,0.000386713102,0.167602658,0.0799817368,-0.473413825,-0.105471626,0.0186850745,0.155385017 +-0.176266879,4.33871365,0.176266879,0.000702068442,0.168255895,0.0782687217,-0.418846667,-0.198756978,0.0186965391,0.249667168 +0.183981031,4.33882046,-0.183981031,0.000810119673,0.171152398,0.0802389532,-0.434776664,-0.0847199485,0.018711498,0.261601776 +-0.144503891,4.33914042,0.144503891,0.000444823585,0.169171751,0.0792624727,-0.443979979,-0.163117334,0.0186856687,0.204671651 +-0.136378184,4.33927774,0.136378184,0.000374672934,0.169263914,0.0795428604,-0.450492799,-0.152027294,0.0186841935,0.193083405 +-1.0803318,4.33932543,1.08033168,0.000307529001,0.438630402,0.243056104,0.0588460341,-0.190680891,0.0187459495,1.52789426 +-0.506355405,4.3410182,0.506355405,0.00201546424,0.16424711,0.076111123,-0.209902778,-0.238747597,0.01869574,0.716230989 +1.07802629,4.34152222,-1.07802629,0.000369835005,0.390467405,0.209029883,0.0157284532,-0.158674389,0.0187312514,1.52460742 +-0.141115636,4.34236526,0.141115636,0.000133253969,0.16921711,0.0793769509,-0.441923052,-0.159015715,0.0186825152,0.200019762 +-0.904949903,4.34255219,0.904949903,0.00212742528,0.166784376,0.0785922334,-0.0352459848,-0.133972317,0.0187129732,1.27992201 +1.07708776,4.34509802,-1.07708776,0.000252471538,0.372967929,0.198003262,0.00434783241,-0.155106589,0.0187285617,1.52328408 +-0.500445127,4.34596157,0.500445127,0.00227452558,0.164412066,0.0762062371,-0.209948212,-0.236065507,0.0186922494,0.70778352 +-0.138500065,4.3460927,0.138500065,0.000143231257,0.169494033,0.0796686634,-0.438265949,-0.155023679,0.0186804142,0.196303219 +-0.141056865,4.34663486,0.141056865,0.000272037491,0.169342712,0.0794883892,-0.435573101,-0.158486366,0.0186797138,0.200010628 +-0.146091491,4.34671068,0.146091506,0.000480167946,0.169259161,0.0793607458,-0.431357533,-0.162908077,0.0186799709,0.206777439 +-0.859830976,4.3467555,0.859830976,0.00232351269,0.167478323,0.0788525119,-0.0183823202,-0.151444271,0.018707063,1.21682 +-1.20314455,4.34688711,1.20314455,0.000218311368,0.265648156,0.139758453,-0.0818391889,0.045654539,0.0187407434,1.70151997 +0.22281985,4.34728622,-0.22281985,0.000859760679,0.171777785,0.0805265531,-0.412037313,-0.103766844,0.0187108275,0.315467715 +0.158171982,4.34754038,-0.158171982,0.00059478177,0.170425266,0.080165647,-0.431944519,-0.0555685461,0.0187068023,0.223733202 +0.154576242,4.34784031,-0.154576242,0.000443521829,0.170319736,0.0801408067,-0.432829797,-0.0529509336,0.0187063832,0.218775779 +0.930072546,4.34786606,-0.930072546,0.00185258838,0.16529128,0.0775443166,-0.00862541609,-0.0468802527,0.0187329818,1.31539464 +0.84657675,4.34827852,-0.84657681,0.00389921316,0.166156366,0.0780233145,0.0362828076,-0.0847145915,0.018733494,1.19954908 +-0.39981854,4.34867001,0.39981854,0.00389417913,0.164534241,0.0760085508,-0.260926723,-0.255332857,0.0186929349,0.566729069 +-1.19807053,4.34897804,1.19807053,0.000173086213,0.372111917,0.216178596,0.147762835,0.0731359348,0.0187389292,1.69434404 +0.153373793,4.3491354,-0.153373778,0.000175972731,0.170469508,0.0802768394,-0.430908442,-0.0516061969,0.018705681,0.217107892 +0.228667349,4.34934187,-0.228667349,0.00109654979,0.171923369,0.080636397,-0.406315774,-0.108938523,0.0187102109,0.324002206 +0.155121595,4.34934425,-0.155121595,4.02154046e-06,0.170408741,0.0802005902,-0.4304066,-0.0532942191,0.0187055711,0.219652951 +0.154416114,4.34984589,-0.154416099,3.00068609e-06,0.170413703,0.0802185312,-0.429844946,-0.0525486656,0.018705355,0.218703225 +-1.1938467,4.35070419,1.1938467,7.47875092e-05,0.619584322,0.432244688,0.359480411,0.099018082,0.0187374018,1.6883707 +0.0686823949,4.3507762,-0.0686823949,0.000239845569,0.234801739,0.143828571,-0.383306384,0.0396211296,0.0186726078,0.0983740091 +0.0818246603,4.35084534,-0.0818246603,0.000554642465,0.178478509,0.0918656662,-0.412345469,0.00221707951,0.018684363,0.117193304 +0.0990779176,4.35085773,-0.0990779176,0.00056092476,0.175347835,0.0855070129,-0.426093996,-0.0200283565,0.0186945871,0.141898751 +0.156069547,4.35086012,-0.156069547,0.000678726123,0.170485407,0.0802500844,-0.428040087,-0.0530871004,0.0187047739,0.220883653 +-0.0999552459,4.35094786,0.0999552459,0.000409525819,0.166419312,0.0803197175,-0.460829288,-0.0874143541,0.0186786074,0.143120006 +-0.0701418445,4.35095119,0.0701418445,0.000219758251,0.224527776,0.140265569,-0.465872169,0.0565148294,0.0186704751,0.100364126 +-0.0830710754,4.35096455,0.0830710828,0.000520396512,0.158800498,0.0805674419,-0.477553844,-0.0177523941,0.0186751205,0.118907452 +0.154384211,4.35120296,-0.154384211,3.32211166e-05,0.17045933,0.0802611411,-0.427879602,-0.0520221516,0.0187046938,0.218558609 +0.151535302,4.35211658,-0.151535302,0.000656009826,0.170688972,0.0804907084,-0.426477969,-0.0494644493,0.0187040716,0.214390248 +0.118928537,4.35232782,-0.118928537,0.000607455149,0.172413245,0.0822879449,-0.429176748,-0.0271097347,0.0187005829,0.169226989 +-0.9501791,4.35297108,0.9501791,0.00221143756,0.166824386,0.0786836818,-0.061862275,-0.111216366,0.0187097546,1.34399927 +-0.163296893,4.35391235,0.163296893,0.000517277338,0.1690211,0.0789648965,-0.407260835,-0.184377566,0.01867822,0.232743934 +-0.938027978,4.35504484,0.938027978,0.00191163691,0.166681439,0.0786442906,-0.051678665,-0.112690784,0.0187056512,1.32692242 +0.874566793,4.35516977,-0.874566793,0.00303508528,0.166011617,0.077948384,0.0282850526,-0.0666511059,0.0187277086,1.23842716 +0.760349751,4.35517693,-0.760349751,0.00148722215,0.166808695,0.0783663094,0.00373118557,-0.111152068,0.0187271107,1.07776093 +-0.118691608,4.35584307,0.118691608,0.000525265699,0.169884741,0.0805885568,-0.440283835,-0.124542229,0.0186749995,0.168554306 +1.2050395,4.35630608,-1.20503962,0.000340263417,0.267142296,0.141302556,-0.00175738172,0.0426828414,0.0187283717,1.70434856 +0.234037682,4.35657072,-0.234037697,0.00172274234,0.172101989,0.0808124319,-0.393140942,-0.10865353,0.0187064782,0.331402242 +1.20062494,4.35720062,-1.20062494,0.000202450377,0.384363323,0.229136735,0.240560547,0.0540994257,0.0187277496,1.69810462 +1.21819544,4.35723639,-1.21819544,0.000206743352,0.173631281,0.0842112005,-0.318510622,0.0200511627,0.0187278856,1.72295141 +1.22391427,4.35730314,-1.22391427,0.000210568251,0.14399232,0.0664938912,-0.438440681,0.00881569926,0.0187280867,1.73103976 +1.22867978,4.35735893,-1.22867978,9.58196106e-05,0.115900397,0.0606578626,-0.467532158,-0.00107420608,0.0187281743,1.73777986 +0.513034999,4.35738325,-0.513034999,0.00673265709,0.165464416,0.0774355307,-0.180286169,-0.194729686,0.0187147073,0.730863333 +0.227047205,4.35754681,-0.227047205,0.000469158374,0.172257453,0.080902487,-0.394993424,-0.104948997,0.0187045634,0.321789682 +1.19694543,4.35794735,-1.19694543,8.73031531e-05,0.661055088,0.485452235,0.476946771,0.0587867573,0.018727174,1.69290066 +1.2127465,4.3581152,-1.2127465,0.000278132327,0.213325173,0.107315078,-0.181724697,0.0301225483,0.018727107,1.71520948 +-1.21854174,4.35945415,1.21854174,0.000428832718,0.171324596,0.0826876685,-0.44085747,0.0259983726,0.0187321249,1.72342086 +-1.22407556,4.35947132,1.22407556,0.000255510153,0.135836825,0.0623340867,-0.567717075,0.0125112683,0.0187323522,1.73124766 +-1.22868693,4.3594861,1.22868693,0.000116229901,0.109708317,0.059006393,-0.591804206,0.00150899054,0.0187325589,1.73776984 +-1.0179863,4.35962439,1.0179863,0.00121387537,0.170020759,0.0803564638,-0.119107038,-0.102114514,0.0187191144,1.44004226 +-0.928634465,4.36074448,0.928634465,0.00138204673,0.166946277,0.0787630826,-0.0494224802,-0.11296837,0.0187007654,1.31364739 +0.803987563,4.36186171,-0.803987563,0.00274748076,0.166741103,0.078354761,0.0122682685,-0.0876293555,0.0187225565,1.13770318 +-0.253099948,4.36219978,0.253099948,0.00231450633,0.166181341,0.0769865662,-0.326196253,-0.239407331,0.018690085,0.359693497 +-0.77649951,4.36488056,0.77649951,0.00310175843,0.167536169,0.0786248446,-0.0431395248,-0.176963419,0.0186932664,1.09831393 +0.110175863,4.36504984,-0.110175855,0.000270260178,0.173568189,0.0837337151,-0.408989549,-0.0207683593,0.0186904091,0.157114863 +-0.15854162,4.36708546,0.15854162,0.000997574301,0.16926071,0.0793013573,-0.39135468,-0.174024165,0.0186675657,0.225579083 +0.18854855,4.36736155,-0.188548565,0.00109130854,0.172569811,0.0812534615,-0.397833824,-0.0772081316,0.0186947417,0.267041385 +-1.20809197,4.36745644,1.20809197,0.000160249503,0.235622928,0.123095602,-0.176796019,0.0373669155,0.0187266171,1.70856166 +-1.02895534,4.36812401,1.02895534,0.00150909228,0.171418875,0.0812221169,-0.125747621,-0.103312105,0.0187151637,1.45534587 +-1.20607579,4.36851358,1.20607579,7.81564886e-05,0.250538796,0.132620633,-0.12483339,0.0393288434,0.0187258609,1.70572746 +-1.20151007,4.36865854,1.20150995,8.90695883e-05,0.347957313,0.204193741,0.0935943946,0.0389084443,0.0187252779,1.69926989 +-1.05534267,4.3687048,1.05534267,0.00122688874,0.187303543,0.0914166123,-0.121112108,-0.11579819,0.0187211037,1.49266756 +-1.19770527,4.36877871,1.19770515,3.81630998e-05,0.568187356,0.39758569,0.281551868,0.0240767505,0.0187245104,1.69388878 +-1.07443261,4.36915588,1.07443261,0.000417251897,0.29843837,0.153454036,-0.0571176521,-0.146064728,0.0187239647,1.51966786 +0.296115875,4.3709631,-0.296115875,0.00281737489,0.170196667,0.0799874291,-0.335317791,-0.137166589,0.0187044721,0.421747565 +0.221351773,4.37213707,-0.221351787,0.0019363726,0.17294696,0.081422016,-0.379223347,-0.0960670412,0.0186951812,0.313223362 +-0.0708795339,4.37271786,0.0708795339,0.000130499946,0.225570351,0.140505612,-0.436445653,0.0565645769,0.0186597779,0.100450024 +-0.0839995593,4.37358093,0.0839995593,0.00030011643,0.158905894,0.0806495249,-0.447265208,-0.018039804,0.0186631549,0.11902082 +-0.101052843,4.37403059,0.101052836,0.000321623433,0.167651862,0.081156604,-0.428923726,-0.0866891444,0.0186660886,0.143170863 +1.07680273,4.37480831,-1.07680273,0.0003348717,0.238764063,0.116836444,-0.081775941,-0.140969321,0.0187058263,1.52283132 +0.100275092,4.37580681,-0.100275099,0.000206458149,0.175882131,0.0862030014,-0.38702631,-0.0175101608,0.0186805297,0.14197515 +-0.141268283,4.37645054,0.141268283,0.000327407004,0.170300812,0.0802334771,-0.393882304,-0.154658034,0.01865796,0.199839368 +1.21821105,4.37656975,-1.21821117,0.000281900284,0.164035127,0.0789538994,-0.297732234,0.0190438684,0.0187142584,1.72297931 +1.22390687,4.37666941,-1.22390699,0.000218364818,0.139309958,0.0643522814,-0.405224741,0.00930933841,0.0187143367,1.73103523 +0.0827888921,4.37668991,-0.0827888995,0.000297862338,0.177597776,0.0914430469,-0.370441198,0.00357914669,0.0186703801,0.117167659 +1.22865319,4.37675142,-1.22865319,9.93422291e-05,0.116396129,0.0607978739,-0.429639816,-0.0011463603,0.0187143423,1.73774815 +-0.273233056,4.37681293,0.273233056,0.00287895836,0.166343212,0.0771765485,-0.292072684,-0.235606387,0.0186779164,0.38833189 +1.05767918,4.37713051,-1.05767918,0.00112765399,0.159504443,0.0750128403,-0.133252785,-0.0740052313,0.0187074486,1.49578655 +0.119324595,4.37726974,-0.119324595,0.00103488192,0.173469439,0.0831291899,-0.393470943,-0.0260468032,0.0186855718,0.170323595 +-1.19645965,4.37742138,1.19645965,7.1815608e-05,0.509423971,0.350510746,0.257124871,0.0127606541,0.0187185518,1.69210315 +0.0694486275,4.37754202,-0.0694486275,0.000128838175,0.232759461,0.14205496,-0.342713118,0.0398008302,0.0186597127,0.0982456282 +-0.118791483,4.37782431,0.118791476,0.000339456688,0.170645118,0.0812108517,-0.406607151,-0.123942509,0.0186628085,0.169387519 +-1.20041049,4.37785196,1.20041049,0.000166509562,0.319634646,0.185257867,0.0857936516,0.0336311534,0.0187190324,1.69769061 +0.102414332,4.37796783,-0.102414325,0.00022204782,0.175521284,0.0858416557,-0.38464272,-0.0177165587,0.0186800584,0.144946605 +0.0694261938,4.37815762,-0.0694261938,8.53935126e-06,0.23276253,0.142059803,-0.341771334,0.0398317985,0.0186594948,0.0982418805 +0.0827290937,4.3782177,-0.0827291012,3.65826636e-05,0.177578598,0.091445446,-0.368069738,0.00369231682,0.018669676,0.11716567 +0.987100244,4.37825155,-0.987100303,0.00216665585,0.164760619,0.0771524236,-0.06674584,-0.0262317546,0.0187092144,1.39628756 +0.100165993,4.37830162,-0.100165993,3.27353482e-05,0.175884932,0.0862167105,-0.383349031,-0.0172727797,0.0186792314,0.14198412 +-1.20515239,4.37837124,1.20515239,0.000184093267,0.236392662,0.124363296,-0.118102416,0.0356124267,0.0187191013,1.70439708 +0.355357587,4.37875175,-0.355357587,0.00547062932,0.167858064,0.0788846016,-0.290906519,-0.156961054,0.0187038668,0.506150365 +0.0694447383,4.37886953,-0.0694447383,0.000130344706,0.232693031,0.142010391,-0.340597987,0.0397673436,0.0186592247,0.0982368141 +-0.0838061124,4.37918425,0.0838061124,0.000124824277,0.15914157,0.0808189511,-0.439255416,-0.0180590842,0.0186602771,0.119008824 +-0.100809351,4.37918854,0.100809351,7.76869056e-05,0.167803496,0.0812982544,-0.421624035,-0.0863497928,0.0186634921,0.143119603 +-0.0707067698,4.37920618,0.0707067698,6.02561086e-05,0.225736722,0.14064227,-0.426886916,0.0560567193,0.0186567083,0.100459754 +-1.20922303,4.37932205,1.20922303,0.000240772613,0.217912614,0.112319864,-0.193783239,0.0329493023,0.0187187139,1.71012878 +-0.105413027,4.37947035,0.105413027,0.000304232148,0.168599278,0.0813689828,-0.417327821,-0.0955527872,0.0186628327,0.149254411 +0.0827924907,4.37997007,-0.0827924907,0.000302052358,0.177551463,0.0914333537,-0.365239292,0.00357607752,0.0186688192,0.117163263 +0.1003052,4.38117599,-0.1003052,0.000285867311,0.175984398,0.0863045603,-0.379117012,-0.0172983799,0.0186777655,0.141998753 +0.152075499,4.38123798,-0.152075499,0.000568266958,0.171800911,0.0813223422,-0.389120549,-0.0451232418,0.0186865162,0.215074867 +-1.21785259,4.38153124,1.21785259,0.000207201112,0.157367647,0.0754004493,-0.40382269,0.0213535689,0.0187173784,1.72237182 +-1.22378695,4.38157368,1.22378707,0.000176470232,0.131251574,0.0608738214,-0.525165081,0.0105906874,0.0187175404,1.73076475 +-1.22873151,4.38160992,1.22873151,8.03161383e-05,0.112721302,0.0609814152,-0.553031504,0.000161156233,0.0187176298,1.73775756 +-0.123718597,4.38223219,0.123718604,0.000381392834,0.170352072,0.0808830857,-0.396508455,-0.130204231,0.0186592992,0.176687628 +0.601522803,4.38323879,-0.601522803,0.00315901171,0.16653879,0.0782176107,-0.106624573,-0.141810864,0.0186988004,0.851003766 +0.7750296,4.38370132,-0.7750296,0.00453611696,0.16763103,0.0788785666,-0.00109366141,-0.0819786638,0.0187057815,1.09679794 +-0.100958668,4.38478184,0.10095866,0.000235813641,0.167850628,0.0813893154,-0.41417098,-0.0866394788,0.0186583754,0.143010467 +-0.0839831829,4.38523722,0.0839831829,0.000296100392,0.159153998,0.0808544904,-0.431383729,-0.0180455297,0.0186548475,0.11897365 +-0.201149687,4.38560247,0.201149687,0.000965430867,0.168252438,0.0785158202,-0.3333956,-0.200720459,0.0186617393,0.28453213 +-0.0709164143,4.38617373,0.0709164143,0.000128817686,0.22584343,0.140774161,-0.418090731,0.0565850139,0.0186509918,0.100479893 +-0.765352666,4.3865447,0.765352607,0.00145352702,0.167836219,0.0787528232,-0.056498237,-0.168343544,0.0186763387,1.08293009 +-0.197719067,4.38788843,0.197719067,0.00075836858,0.168407172,0.0786501616,-0.332829207,-0.19743225,0.0186588969,0.279668212 +1.19494557,4.38814926,-1.19494557,6.85286068e-05,0.466367275,0.323526651,0.322301447,-0.00637962762,0.018706806,1.6900146 +1.21007073,4.38857365,-1.21007073,0.000242374299,0.185799584,0.0928974897,-0.15597865,0.0178439282,0.0187056959,1.71138048 +-0.200372383,4.38900948,0.200372383,0.000178116359,0.168363035,0.0786131099,-0.329124391,-0.199152172,0.0186585262,0.283490062 +-0.204203799,4.38921261,0.204203814,0.00113924406,0.168224126,0.07852301,-0.326502979,-0.200499132,0.0186590813,0.288827509 +1.19890428,4.38935995,-1.1989044,0.000158121722,0.299803853,0.17239821,0.178670198,0.0199431777,0.0187056307,1.69561362 +-0.253812253,4.3896122,0.253812253,0.00299819605,0.166951001,0.0776297078,-0.292604506,-0.226667345,0.0186667684,0.360668838 +-0.992816329,4.38986588,0.992816389,0.00165378291,0.167483553,0.0792306662,-0.0952137709,-0.091920808,0.0186891779,1.40432 +-0.771803439,4.38995886,0.771803379,0.00446049916,0.167950988,0.0788438991,-0.0532933772,-0.163389578,0.0186743382,1.09189916 +0.99457109,4.38998508,-0.99457109,0.0010588225,0.164020747,0.076773338,-0.0726826638,-0.0289355628,0.0187000297,1.40679228 +-1.00703812,4.39022827,1.00703812,0.000823682058,0.169152513,0.0801665932,-0.105677888,-0.0950686783,0.0186924096,1.42429161 +-0.758556604,4.39046383,0.758556604,0.00536650745,0.16771996,0.0786701292,-0.0626600236,-0.16666393,0.0186728071,1.07324481 +1.07644629,4.39057732,-1.07644629,0.000130408749,0.166779861,0.0770599395,-0.127497196,-0.132468551,0.0186937265,1.52235687 +-0.199637994,4.39078379,0.199637994,0.000427045423,0.168400034,0.0786545798,-0.327361524,-0.198331609,0.0186569355,0.282452703 +1.20365381,4.39080906,-1.20365381,0.000250613433,0.225046664,0.11719498,-0.0105559435,0.0262990613,0.0187041201,1.70233071 +-0.200774342,4.39090204,0.200774357,1.20032601e-05,0.168378398,0.0786347389,-0.326569587,-0.198927283,0.0186568964,0.284101605 +-0.105504364,4.39117146,0.105504371,0.00015079281,0.169470191,0.0819075704,-0.400741428,-0.0956614465,0.0186526738,0.149330288 +0.865255475,4.39167213,-0.865255475,0.0039108526,0.167148024,0.0786537528,0.0171388574,-0.0468985811,0.0187000893,1.22497654 +1.07700717,4.39258003,-1.07700717,0.000294886529,0.160248101,0.0735241249,-0.131734192,-0.132198825,0.0186922979,1.52314186 +-0.119191535,4.39347267,0.119191527,0.000363660773,0.171466887,0.0818013996,-0.384195566,-0.123390377,0.0186507404,0.169554949 +0.404515982,4.39360619,-0.404515982,0.00530522875,0.167034507,0.0785239711,-0.243693709,-0.161999047,0.0186922066,0.579036236 +0.980041325,4.39461088,-0.980041265,0.00115566468,0.16556628,0.0777011961,-0.0571241081,-0.023068279,0.0186968409,1.38642859 +-0.982796192,4.39488173,0.982796192,0.00159795652,0.167377487,0.0792281777,-0.0866378397,-0.0920797437,0.0186831784,1.39026809 +-0.187472165,4.39518499,0.18747218,0.000498587673,0.169019371,0.0791630074,-0.33088547,-0.1882658,0.0186520331,0.265141934 +0.117134646,4.39563036,-0.117134653,0.000617367448,0.174113661,0.083809182,-0.368052423,-0.0211015716,0.0186726209,0.166720405 +-0.941577315,4.39594746,0.941577315,0.00206882437,0.168479919,0.0797449574,-0.0592030995,-0.0928983092,0.0186752174,1.33292913 +-1.07902348,4.39666843,1.07902348,0.000310970063,0.181104362,0.0846700817,-0.132303596,-0.142606288,0.0187037922,1.52606809 +0.905062795,4.3967104,-0.905062795,0.00268376246,0.167341471,0.0787781328,0.00171775743,-0.0293038879,0.0186957829,1.28033864 +-0.344053924,4.39692259,0.344053954,0.00801001117,0.165734723,0.076866053,-0.248206049,-0.237831801,0.0186603796,0.490665495 +-0.765486598,4.39731264,0.765486598,0.00106306747,0.167888641,0.0787931979,-0.0587718636,-0.159091428,0.0186688043,1.0831635 +0.724165499,4.39765644,-0.724165559,0.00429241359,0.16750285,0.0788430572,-0.0301545784,-0.088804476,0.0186943617,1.02458072 +1.05747044,4.39823675,-1.05747056,0.000358760823,0.145639047,0.0673805326,-0.140139908,-0.0674877092,0.0186919253,1.49552047 +-0.201151162,4.39989471,0.201151177,0.000702034042,0.168574542,0.0788269117,-0.31521076,-0.196866766,0.0186485332,0.284491062 +0.959536016,4.40056086,-0.959536016,0.00172365876,0.166503131,0.0782639831,-0.040787667,-0.0202782247,0.0186924618,1.3571043 +0.690186977,4.40069962,-0.690186977,0.00390244974,0.167284876,0.0787140206,-0.0479410291,-0.0989535153,0.0186914895,0.977111459 +1.05825913,4.40086699,-1.05825925,0.000975051487,0.143304348,0.0661209151,-0.141833961,-0.0660085827,0.0186900739,1.49662793 +0.613809884,4.40286016,-0.613809824,0.00324476557,0.167071521,0.0786127374,-0.0942505077,-0.119800404,0.0186844114,0.868631065 +0.989455998,4.40437078,-0.989455998,0.00109701662,0.165469125,0.077745527,-0.0568603128,-0.0189339314,0.0186893344,1.39958096 +-0.436570853,4.40491343,0.436570883,0.00444894237,0.166219801,0.0772542134,-0.214463547,-0.195084497,0.0186496824,0.620115876 +1.19233835,4.40496159,-1.19233847,8.63168243e-05,0.337200046,0.220376834,0.229507238,-0.0318702757,0.018695144,1.68638253 +-1.06119013,4.40500116,1.06119025,0.000921582221,0.150862515,0.0708479583,-0.153082564,-0.0940940902,0.0186926685,1.5008471 +-1.21676087,4.4050436,1.21676087,0.000306250382,0.14211604,0.0675379112,-0.363703549,0.0139702037,0.0187015571,1.7209053 +-1.22325969,4.40516043,1.22325969,0.000261736539,0.126901299,0.0595459118,-0.481961846,0.0077957958,0.018701626,1.73009694 +-1.22867525,4.40525818,1.22867513,0.000119143428,0.116168529,0.0633263066,-0.515431285,-0.00167692127,0.018701572,1.73775625 +-0.135483533,4.40531254,0.135483533,0.000397077412,0.171182454,0.0811262429,-0.357172817,-0.142878816,0.0186387971,0.19180204 +-0.646819592,4.40547466,0.646819592,0.0118905464,0.165461704,0.0772101283,-0.111375183,-0.16398713,0.0186596587,0.918326676 +0.0685649067,4.40576077,-0.0685649067,0.000224239804,0.233482569,0.142973974,-0.29589653,0.0389032587,0.0186484214,0.0982315391 +0.0818150192,4.40586472,-0.0818150192,0.000503718271,0.178111508,0.0919735655,-0.324941993,0.00401141401,0.018655628,0.117193379 +0.0992031097,4.40619755,-0.0992031097,0.000365765532,0.176305637,0.0866571516,-0.343956947,-0.0175772309,0.0186625868,0.142076507 +0.446097195,4.40640259,-0.446097195,0.00354185607,0.166863173,0.0783863813,-0.232018203,-0.156242087,0.0186822098,0.631604195 +0.195948258,4.40701294,-0.195948273,0.00169478473,0.174640119,0.0827092156,-0.343021899,-0.075178057,0.0186705515,0.278689027 +-0.0831685215,4.40721226,0.0831685215,0.000432713656,0.160185575,0.0816965178,-0.399097949,-0.0174050797,0.0186359547,0.118749499 +-0.0704298168,4.40724087,0.0704298168,0.000183000098,0.226156935,0.141217917,-0.386312544,0.0561290383,0.0186343603,0.100538872 +-0.0996713117,4.40730524,0.0996713117,0.00039248247,0.167609453,0.0815685093,-0.382659674,-0.0857207775,0.0186389834,0.142339855 +1.19664431,4.40740061,-1.19664431,0.000205629214,0.245468944,0.135895431,0.142794341,0.00309110875,0.0186928678,1.69247305 +0.3174963,4.40778828,-0.3174963,0.00375234568,0.170443892,0.0804495737,-0.282796621,-0.128760979,0.0186816398,0.452684581 +-0.991255522,4.40800333,0.991255581,0.00181213801,0.167516723,0.0793785304,-0.0908630118,-0.0862093195,0.0186742153,1.40218592 +0.505934596,4.40838432,-0.505934536,0.00577080669,0.167031094,0.0786197484,-0.163359284,-0.148719251,0.0186754577,0.718995452 +0.59281373,4.4089489,-0.59281373,0.00200068881,0.167202935,0.0786778927,-0.108970091,-0.121537827,0.0186781343,0.839383066 +-0.141900182,4.40924215,0.141900182,0.000861334032,0.171180412,0.0809460506,-0.347150803,-0.151894376,0.0186346993,0.201085418 +-0.917802453,4.40997791,0.917802453,0.00236207456,0.169132739,0.0800357461,-0.053431496,-0.0937815607,0.0186631456,1.29932117 +-0.888130367,4.41020823,0.888130367,0.00243246881,0.168747842,0.0796873495,-0.0462095179,-0.102149487,0.0186611656,1.25834632 +1.20181155,4.41032696,-1.20181155,0.000242494541,0.200198129,0.102717347,-0.010940901,0.0141340075,0.0186900701,1.69978142 +-1.08207071,4.41136742,1.08207071,0.000361780287,0.119248226,0.051970996,-0.168810621,-0.144726753,0.0186923817,1.5304302 +0.147471681,4.41249132,-0.147471666,0.000456335838,0.173282936,0.0825197324,-0.34891209,-0.0373444483,0.0186671466,0.208725542 +0.149400875,4.41280603,-0.149400875,5.27204684e-05,0.173282072,0.0824782997,-0.348167777,-0.0390082449,0.018667208,0.211499721 +-1.20910382,4.41287422,1.20910382,0.000311196549,0.154374927,0.0751499608,-0.248445749,0.0144117046,0.0186955594,1.7100358 +0.107279889,4.41339684,-0.107279889,0.000345008157,0.176404029,0.0860772282,-0.338410258,-0.0191799905,0.0186602771,0.153030008 +1.21587849,4.41407013,-1.21587849,0.000216567496,0.151233658,0.0721790195,-0.235684842,0.00755743589,0.0186869483,1.71961462 +0.148566023,4.41409636,-0.148566037,3.58343141e-06,0.173340544,0.0825338811,-0.346720099,-0.038230326,0.018666096,0.210389972 +1.22289348,4.41423941,-1.22289348,0.000226015458,0.136302203,0.0638580248,-0.340875804,0.00679910649,0.0186868031,1.72953594 +0.1539516,4.41436815,-0.1539516,0.000745905272,0.173462793,0.0825536698,-0.34495154,-0.0412920639,0.0186665412,0.217777997 +1.22873819,4.41438103,-1.22873819,0.000102825667,0.12279366,0.0645673946,-0.371718794,-0.00421146862,0.0186867192,1.73780227 +0.146289006,4.4148531,-0.146289006,0.000373099494,0.173405424,0.0826616511,-0.345525384,-0.0361294448,0.0186653025,0.206999972 +0.149515972,4.4149189,-0.149515972,0.000283146423,0.173369095,0.0825446025,-0.345419049,-0.0386801474,0.0186656266,0.2116566 +-1.18855441,4.41492891,1.18855441,0.000111933114,0.247853696,0.154490322,0.180812061,-0.0375807434,0.018692499,1.68106019 +1.02581048,4.41502428,-1.02581048,0.00125772844,0.158853427,0.0742802918,-0.0936164036,-0.0228748266,0.0186823998,1.4507153 +1.21011615,4.41541862,-1.21011615,0.000372618844,0.170635343,0.0841067657,-0.139840484,0.00904655643,0.0186861046,1.71141291 +-0.140461624,4.41553688,0.140461609,0.000475463748,0.171397477,0.0811433941,-0.339637846,-0.149704993,0.0186291449,0.199104592 +-0.132217333,4.41576672,0.132217333,0.000274085789,0.171886608,0.081775859,-0.344990373,-0.137698293,0.0186298992,0.187119722 +-0.409250379,4.41577101,0.409250408,0.0038944371,0.166402549,0.0773946941,-0.218921691,-0.189651445,0.0186455809,0.579915166 +-0.110895552,4.41590738,0.110895559,0.000178982053,0.171544313,0.082750991,-0.359913647,-0.107515253,0.0186310988,0.157614708 +0.148586035,4.41597319,-0.148586035,2.43409377e-05,0.173408478,0.0825929865,-0.344477773,-0.0378306806,0.0186647195,0.210291803 +-1.03660786,4.41632843,1.03660786,0.00130599085,0.162236854,0.0766234398,-0.121631324,-0.0727809817,0.0186773892,1.4660809 +1.02570808,4.41677761,-1.02570808,0.000360257516,0.158735096,0.0742370039,-0.0926279947,-0.0226094853,0.018681109,1.45057178 +1.0256803,4.4168663,-1.0256803,0.000666551699,0.158743337,0.0742425621,-0.0925346017,-0.0225486699,0.0186810419,1.45053232 +1.02575672,4.41691732,-1.02575672,0.000800234557,0.158709899,0.0742250457,-0.0925944522,-0.0225176439,0.0186810046,1.45064008 +1.0257206,4.41713667,-1.0257206,0.000704281963,0.158749804,0.074247092,-0.0923965573,-0.02233807,0.0186808351,1.45058858 +-0.116200686,4.41794062,0.116200686,0.000408182503,0.172863036,0.0829869285,-0.352605015,-0.117167965,0.018629482,0.165009305 +-0.145895332,4.4180522,0.145895332,0.000753345201,0.171286225,0.0810356885,-0.332564056,-0.154379174,0.0186273064,0.206609353 +-1.1933558,4.41837311,1.19335568,0.000264720322,0.201228648,0.108182922,0.0706399232,0.0074686869,0.0186912362,1.68785119 +0.976814806,4.41838741,-0.976814806,0.00178287958,0.167087615,0.0785951093,-0.050948482,-0.0100836363,0.0186788943,1.38166308 +0.145828277,4.41910076,-0.145828277,0.000343380991,0.173537955,0.0827930495,-0.339948267,-0.0353158042,0.0186622702,0.20632194 +0.60386306,4.41936016,-0.60386312,0.00208511017,0.167382598,0.0788194537,-0.0994533971,-0.108486697,0.0186705142,0.855085135 +0.190600678,4.42207241,-0.190600678,0.00072744058,0.175012127,0.0831182972,-0.326197714,-0.0665532351,0.0186627582,0.270530999 +-1.19911718,4.42250586,1.19911718,0.000493308296,0.176882014,0.0895512253,-0.083038941,0.0143126175,0.0186882522,1.69600034 +0.825114131,4.42293787,-0.825114131,0.00400934229,0.168411493,0.0793983713,-0.00168850878,-0.0383785814,0.0186760779,1.16828346 +0.585324883,4.42302513,-0.585324883,0.00292861555,0.167625502,0.0790017322,-0.107744679,-0.110534936,0.0186671037,0.828444481 +0.923513412,4.42347527,-0.923513412,0.00300431484,0.16812773,0.0792583078,-0.0101142963,-0.00973615982,0.0186756067,1.30664992 +0.117540807,4.42374849,-0.117540807,0.000646930537,0.174917564,0.0844576433,-0.331772149,-0.0221839994,0.0186559092,0.168442816 +-1.06509244,4.42432833,1.06509244,0.00104476023,0.129725754,0.05944423,-0.169838905,-0.0840537772,0.0186769441,1.50641739 +0.202673256,4.4257822,-0.202673256,0.00219676038,0.175545201,0.0833433941,-0.319593459,-0.0717473105,0.0186596457,0.287911832 +0.0996294618,4.42613029,-0.0996294618,0.000260328408,0.176762164,0.0871737078,-0.315204263,-0.0139029678,0.018650528,0.141383216 +-0.0709629953,4.42627239,0.0709629953,0.000122002777,0.226427406,0.141655311,-0.360565662,0.0579887107,0.0186173934,0.100589618 +0.0823141262,4.42645073,-0.0823141262,0.000296828453,0.178134233,0.09221825,-0.294296235,0.00552965887,0.0186437126,0.116786152 +1.08977747,4.42676544,-1.08977735,0.000362816383,0.0585344434,0.023037158,-0.181530461,-0.137144417,0.0186716504,1.54133153 +-0.0836888105,4.4270153,0.0836888179,0.000279029162,0.16045092,0.0819329023,-0.373096108,-0.017037658,0.0186173245,0.118614629 +0.0691868067,4.42716026,-0.0691868067,0.000128121261,0.233881265,0.143975481,-0.265537798,0.0381896608,0.0186372809,0.0981342942 +1.21411443,4.42742109,-1.21411443,0.000512280967,0.1485309,0.0707921386,-0.212853611,0.0012281849,0.0186764486,1.71712637 +-0.100056052,4.4276185,0.100056052,0.000213091902,0.168381929,0.0821570307,-0.356212199,-0.0853471383,0.0186196174,0.141805083 +1.22208941,4.42764664,-1.22208941,0.000311513315,0.137138247,0.064691253,-0.321912676,0.00381701882,0.0186763573,1.72840548 +1.22873509,4.42783546,-1.22873497,0.000141554294,0.125356197,0.0658532009,-0.361057192,-0.00716749206,0.0186762866,1.73780441 +0.683569908,4.42875576,-0.683569908,0.00218837732,0.167848676,0.0790833309,-0.0505301543,-0.0766532645,0.0186685827,0.968712687 +-0.105613902,4.42892504,0.105613895,0.00022435945,0.17023629,0.0826717317,-0.348735511,-0.0963043049,0.0186185334,0.149524763 +1.17816484,4.42898273,-1.17816484,0.000118984572,0.186375082,0.106092349,0.140102148,-0.077889055,0.0186747108,1.66621089 +-1.17863488,4.42901373,1.17863488,0.000143143552,0.168912277,0.0957459509,0.140744776,-0.0923497379,0.0186799727,1.66705525 +0.282168597,4.42920542,-0.282168597,0.00258331047,0.173949659,0.0824052021,-0.289304256,-0.0950461254,0.0186662637,0.399659306 +-0.173029661,4.43136024,0.173029661,0.00134225248,0.170348644,0.0803121328,-0.294082761,-0.178346634,0.018614687,0.247072071 +0.254126072,4.43249846,-0.254126072,0.00192877208,0.1746234,0.0828295425,-0.295550972,-0.0817220956,0.0186609253,0.359643191 +0.103158049,4.43267155,-0.103158049,0.000215423875,0.17614162,0.0866097212,-0.30881685,-0.0144932168,0.0186471306,0.146660849 +-0.475641489,4.43273735,0.475641489,0.00507955439,0.166579962,0.07762862,-0.189010382,-0.165235698,0.0186307505,0.673488438 +0.0689587295,4.43333292,-0.0689587295,8.3038045e-05,0.235034302,0.145235866,-0.256329298,0.0382303372,0.0186345335,0.0981148109 +0.0819304436,4.43339872,-0.0819304362,0.000209609163,0.178266019,0.0924135074,-0.284546614,0.00614086632,0.0186401457,0.116652347 +0.17127043,4.43388891,-0.17127043,0.000891980249,0.175199792,0.0834599435,-0.316788912,-0.0579996444,0.0186500605,0.245526493 +0.0990462527,4.43389559,-0.0990462527,0.000154157562,0.176697925,0.0872081071,-0.304801524,-0.0135044064,0.018646121,0.141110852 +-0.0834370703,4.4343214,0.0834370703,0.000167638078,0.160733655,0.0821410567,-0.362871379,-0.0171791017,0.0186101608,0.118570521 +-0.0707719177,4.43438387,0.0707719252,7.88010657e-05,0.226485029,0.141794205,-0.348563135,0.0577094406,0.0186095927,0.100610375 +-0.0997048616,4.43446922,0.0997048616,0.000111451795,0.168511763,0.0822818056,-0.347038627,-0.0852773264,0.0186127033,0.141662478 +1.09720612,4.43485928,-1.09720612,0.000255966268,0.0435607396,0.0165681671,-0.170072317,-0.140291691,0.0186663214,1.55178642 +-0.297230959,4.43567944,0.297230959,0.0017404668,0.167120457,0.0779621899,-0.240358204,-0.202402741,0.0186321381,0.420675576 +1.18324065,4.43669891,-1.18324065,0.000284447655,0.173048496,0.0877945572,0.0976736397,-0.0280344505,0.0186682399,1.67338967 +-1.18418849,4.43695307,1.18418837,0.000348169677,0.164144158,0.083406657,0.060254693,-0.0352684557,0.0186751951,1.67491031 +0.70328033,4.43706894,-0.70328033,0.00468032714,0.167992771,0.0791828856,-0.0470916443,-0.0666597784,0.0186631922,0.996311545 +-0.534684658,4.43726587,0.534684658,0.00763183041,0.16613698,0.0775115788,-0.171303228,-0.143382311,0.0186273679,0.758822501 +-1.09898186,4.43733501,1.09898186,0.000312929187,0.0505223423,0.0194609724,-0.155665144,-0.17393586,0.0186710283,1.55429816 +-1.03198731,4.43832445,1.03198731,0.00117714447,0.15893665,0.0749810264,-0.113957465,-0.0591947623,0.0186581779,1.45971453 +-0.116854787,4.43924141,0.116854787,0.000440998061,0.173523933,0.0834603608,-0.324514091,-0.11692638,0.0186125711,0.165560812 +0.148204267,4.43998194,-0.148204252,0.000273486337,0.174342901,0.0833445564,-0.31523779,-0.0346708298,0.0186479501,0.209600255 +-1.21204925,4.44032335,1.21204925,0.000250780518,0.138566419,0.0662706345,-0.288293034,-0.00745376758,0.0186747108,1.71411669 +0.102619313,4.44052887,-0.102619313,0.00012927498,0.176607788,0.0869229287,-0.298826486,-0.0132757686,0.0186423939,0.145648077 +-1.22120249,4.440557,1.22120249,0.000253725186,0.12980321,0.0622837134,-0.438420534,-0.00250530941,0.0186745264,1.72706127 +-1.22883236,4.44075203,1.22883224,0.000115407798,0.120457403,0.0651228353,-0.50632751,-0.00997121166,0.0186741333,1.73785162 +1.17119873,4.44105816,-1.17119873,8.70557415e-05,0.110356599,0.0560526252,0.0993311852,-0.0997000039,0.0186646096,1.65641809 +-0.85525322,4.44107199,0.85525322,0.00484789908,0.170205638,0.0803713799,-0.0458371863,-0.0971588269,0.0186373293,1.21049309 +-1.04179335,4.44214678,1.04179335,0.00137592119,0.156113714,0.073509492,-0.120665416,-0.0544185825,0.0186568815,1.47346485 +0.287836313,4.44235897,-0.287836313,0.00221961318,0.174176574,0.0826399177,-0.272071987,-0.0908553526,0.0186580252,0.40778178 +-0.100055829,4.44301748,0.100055821,0.000308491552,0.16876097,0.0824456736,-0.336281836,-0.0859210491,0.0186058432,0.141724706 +-1.10331893,4.44315529,1.10331881,0.000345844193,0.0365162641,0.0135816718,-0.149197593,-0.180816293,0.0186660942,1.56043828 +-0.254101813,4.44322777,0.254101813,0.00241544656,0.168706,0.0789803937,-0.237833545,-0.212265566,0.0186168347,0.363295645 +-0.0837421864,4.44332504,0.0837421864,0.000277258456,0.160775036,0.0821573585,-0.351106912,-0.0175440069,0.0186029356,0.118623525 +-0.0710604042,4.44427156,0.0710604042,0.000121290344,0.225685567,0.141261816,-0.335640401,0.0584176518,0.0186017547,0.100667186 +1.07599044,4.44442034,-1.07599032,0.00113327801,0.0959420875,0.0417494476,-0.167424545,-0.0512808934,0.0186607223,1.52183342 +0.0693454593,4.44480228,-0.0693454519,0.000119393575,0.236444294,0.147025257,-0.240389615,0.0365582183,0.018627448,0.098173812 +1.1638521,4.44485617,-1.16385221,0.000203235933,0.0913134143,0.0443109758,0.0515562743,-0.114204869,0.0186606459,1.64598536 +1.190009,4.44499588,-1.190009,0.000376813579,0.166825026,0.0818851069,-0.00249343435,-0.0101252822,0.0186611302,1.68296289 +-1.20940185,4.44607401,1.20940185,0.000140124088,0.143565133,0.0694414303,-0.243500665,-0.00979092065,0.0186703466,1.71038961 +-1.19077373,4.44614697,1.19077373,0.000499269227,0.160229281,0.0790919587,-0.0568965897,-0.0138691301,0.0186683275,1.68422806 +0.0820083246,4.44620037,-0.0820083171,0.000275539496,0.178693905,0.0929794684,-0.265500605,0.00605848385,0.0186319351,0.116107658 +-0.576915979,4.44667816,0.576915979,0.00897965394,0.166012198,0.0775236636,-0.155364558,-0.126746997,0.0186253469,0.81770277 +-1.16402137,4.44690609,1.16402137,0.000333392498,0.0848974138,0.0400669202,0.0756177753,-0.172577098,0.0186632574,1.64634442 +-0.887043476,4.44694614,0.887043476,0.00233205967,0.170596451,0.0807279944,-0.0511246994,-0.0819606334,0.0186351351,1.2549572 +-0.778490186,4.44730854,0.778490186,0.00499441102,0.168850735,0.0794147402,-0.0618425906,-0.112797581,0.0186344143,1.10102308 +0.098606281,4.44762659,-0.098606281,0.000229921439,0.177578494,0.088004075,-0.284271479,-0.0118460478,0.0186367985,0.139617264 +1.1106708,4.44885969,-1.1106708,0.000336804835,0.0230133757,0.00824751239,-0.144683287,-0.131971776,0.0186565425,1.57091975 +-1.21068442,4.44999313,1.21068454,8.20093046e-05,0.137448117,0.065859884,-0.267456114,-0.0134417545,0.0186673291,1.71222436 +-1.2205745,4.45023298,1.22057438,0.00012348911,0.130543128,0.0630040392,-0.426033676,-0.00552113075,0.0186670944,1.72621107 +-1.22881579,4.4504323,1.22881579,5.55361767e-05,0.121613614,0.0656238422,-0.503271818,-0.0123501001,0.0186666287,1.7378664 +-0.36584729,4.45058537,0.36584729,0.00340226875,0.166996866,0.0778439268,-0.215743318,-0.186628044,0.0186213218,0.520718217 +0.61722064,4.45102501,-0.61722064,0.00341455732,0.168085605,0.0792977586,-0.0936493874,-0.0762222186,0.0186462644,0.873195887 +0.118620783,4.45123005,-0.118620791,0.000803468283,0.175594658,0.0850767642,-0.295989752,-0.0187088624,0.018636737,0.169484168 +1.17656231,4.45143318,-1.17656231,0.000222250848,0.137159199,0.0656195804,0.0788049921,-0.0428840108,0.0186559856,1.6640048 +-0.868186831,4.4521842,0.868186831,0.00333182979,0.17061007,0.0806520283,-0.0472531542,-0.0844373256,0.0186302792,1.22865582 +0.273823202,4.45283031,-0.273823202,0.00159389619,0.175109401,0.0832305178,-0.267659009,-0.0848816037,0.0186489839,0.387626648 +1.1277715,4.45298576,-1.1277715,0.000313682685,0.0293303952,0.0109955883,-0.11304009,-0.146543413,0.0186513029,1.59509254 +-1.20717204,4.45318079,1.20717204,0.000323794899,0.138308868,0.0662897602,-0.238433778,-0.0182030443,0.0186643861,1.70724177 +-0.122522213,4.45364857,0.122522213,0.000511179096,0.173646465,0.0833567306,-0.301590174,-0.126192406,0.0186002124,0.174288779 +-1.13041794,4.45510054,1.13041794,0.00030847438,0.0340008438,0.0129718557,-0.0774566531,-0.197701588,0.0186533853,1.5986551 +1.08591568,4.45516348,-1.08591568,0.000754579669,0.0827934518,0.0351989381,-0.169558495,-0.0553550199,0.0186525788,1.53581977 +-0.209431961,4.4555335,0.209431961,0.00189707475,0.169774264,0.0799641833,-0.240112975,-0.190739051,0.0185975283,0.296920449 +0.88983953,4.45565367,-0.88983953,0.00158250192,0.169517606,0.0800490156,-0.0104678106,0.00296420418,0.0186515991,1.25852954 +-0.197478622,4.45566273,0.197478622,0.00110681914,0.170097128,0.0802220181,-0.248916596,-0.182679027,0.0185952354,0.279723316 +-1.13479197,4.45596743,1.13479197,0.000277451531,0.0357825905,0.0138709191,-0.0631392002,-0.198381826,0.0186524633,1.60484302 +1.14150095,4.45618153,-1.14150095,0.000331754156,0.0359809101,0.0140454751,-0.0738000125,-0.16437535,0.0186493024,1.61451769 +0.525060713,4.45621061,-0.525060713,0.00519819092,0.168699875,0.079775013,-0.129143804,-0.104709327,0.0186418854,0.746372044 +-1.13321841,4.4563961,1.13321841,4.21373625e-05,0.0335473306,0.0128236385,-0.0699835047,-0.199431449,0.018651953,1.60262632 +-0.150060669,4.45709467,0.150060669,0.000342260406,0.17204535,0.081780985,-0.277510554,-0.15676631,0.0185946878,0.212377489 +-0.152003825,4.45740461,0.152003825,0.000655403652,0.171992153,0.0817294717,-0.275769055,-0.158456832,0.0185945239,0.215061024 +-0.32711482,4.45837498,0.32711482,0.00237383461,0.167132184,0.0780725628,-0.21178785,-0.194071203,0.0186138619,0.463219881 +-1.0873735,4.45850849,1.0873735,0.000863159308,0.084753029,0.0364729278,-0.180789381,-0.0788714066,0.0186495669,1.53788209 +-0.150585756,4.45896292,0.150585741,2.30367223e-05,0.172099978,0.0818190724,-0.274796993,-0.157336205,0.0185929891,0.213183507 +-0.148831621,4.45911837,0.148831636,0.000294333295,0.172104895,0.0818693861,-0.275826514,-0.155190259,0.018592909,0.210620105 +-1.2188108,4.45936346,1.2188108,0.000406496518,0.133183852,0.0643885136,-0.410653889,-0.00827552285,0.0186594129,1.72368193 +-1.22882998,4.45946693,1.22882998,0.000183588723,0.121885397,0.0649649724,-0.507778764,-0.0140766241,0.018659059,1.73785138 +1.16813493,4.45947981,-1.16813493,0.000524352014,0.120578855,0.0559377074,0.0373170823,-0.0574272648,0.0186493844,1.65204239 +0.364693582,4.45950842,-0.364693582,0.00372759672,0.170989752,0.0810988694,-0.227693558,-0.0991965756,0.0186488964,0.517565131 +-1.20648587,4.45964813,1.20648587,0.000400597171,0.138938993,0.066656962,-0.230484158,-0.0183252022,0.0186589789,1.70624983 +0.0812762529,4.46001053,-0.0812762529,0.000213602383,0.179368243,0.0937258601,-0.245212197,0.00565057062,0.0186236668,0.115637347 +0.0689900294,4.46005774,-0.0689900219,9.89452819e-05,0.238974214,0.14988257,-0.217338875,0.0343158171,0.018618796,0.098191902 +0.0973979607,4.46027946,-0.0973979607,0.000142175457,0.178082779,0.0885143802,-0.26628378,-0.0114812562,0.0186281223,0.138546988 +-0.972292125,4.46042633,0.972292125,0.000858208339,0.17003797,0.0807536617,-0.0787231252,-0.0517621934,0.0186304189,1.37505126 +1.18872023,4.46052313,-1.18872023,0.00041401817,0.149154425,0.0712902099,-0.0285265241,-0.0202193409,0.0186483841,1.68118215 +0.103321172,4.46075439,-0.103321165,0.000235438827,0.177878425,0.0878956094,-0.270000339,-0.0126170898,0.0186287314,0.146457642 +-0.151767969,4.46150923,0.151767954,0.000630091759,0.172141775,0.0818544105,-0.270861894,-0.158044472,0.0185908284,0.214718372 +-0.0706875771,4.46151733,0.0706875771,0.000132031942,0.225069866,0.141217276,-0.309643507,0.0577488542,0.0185876563,0.10072121 +-0.0831116885,4.46152592,0.0831116959,0.000310207572,0.161668554,0.0828662664,-0.324195802,-0.0175486375,0.0185882449,0.118459508 +-0.718431234,4.46158743,0.718431234,0.00416620448,0.167383164,0.0785210952,-0.0917014554,-0.10205543,0.0186230559,1.01605046 +-0.0988784954,4.46160316,0.0988784954,0.000257093256,0.168421358,0.082461454,-0.311987877,-0.0846988559,0.0185907427,0.140945777 +-0.109741375,4.46183491,0.109741382,0.000295350299,0.17167148,0.0832522735,-0.302774668,-0.103593215,0.0185926203,0.155608669 +0.593066812,4.4619832,-0.593066812,0.00309045799,0.168765947,0.0797400624,-0.0995090902,-0.073522985,0.0186358485,0.839021802 +-0.432355672,4.46200275,0.432355672,0.00348750083,0.16731298,0.0781397969,-0.201011464,-0.152299985,0.0186109841,0.612092376 +0.115235537,4.46201897,-0.115235537,0.00048855145,0.176495224,0.0858700424,-0.28057012,-0.0159162655,0.0186301116,0.164107472 +0.146201387,4.46267271,-0.146201402,0.000279573404,0.175339133,0.0841589645,-0.287504077,-0.0316504389,0.0186318718,0.206941098 +0.148986056,4.46271849,-0.148986056,0.000546326512,0.175321117,0.084096618,-0.287356526,-0.0329713486,0.0186317228,0.21080558 +1.18393207,4.46278477,-1.18393207,0.000189082115,0.150342628,0.0719855949,0.00719864666,-0.0220801495,0.0186463706,1.67442954 +-1.17011738,4.4628191,1.17011738,0.000865058799,0.120075122,0.0560064875,0.0334360413,-0.101742491,0.0186519697,1.65496755 +-0.118480057,4.46340036,0.118480057,0.000688107626,0.173825368,0.0836681947,-0.292125732,-0.120707944,0.0185914952,0.168427259 +0.147114471,4.46413279,-0.147114471,0.000105468695,0.175331146,0.084137544,-0.285904229,-0.031951908,0.0186308362,0.208235055 +0.144871891,4.46421432,-0.144871891,0.000146179023,0.175500646,0.0843213573,-0.285087526,-0.0308199003,0.0186308622,0.205001742 +0.148249716,4.46534157,-0.148249716,0.000449711195,0.175391763,0.0841644257,-0.284651965,-0.0322287902,0.0186298657,0.209837064 +0.184867695,4.46536493,-0.18486771,0.000866301823,0.176511124,0.0843290463,-0.279879808,-0.0568678156,0.0186312012,0.262371451 +0.998929977,4.46541405,-0.998929977,0.00140057039,0.167626709,0.0793626159,-0.0306126103,0.0127395801,0.0186435655,1.41313767 +-0.20438078,4.46557426,0.20438078,0.000396948686,0.170259967,0.0803503841,-0.232678011,-0.185551077,0.0185870342,0.289924562 +-1.09321523,4.46634054,1.09321523,0.00097576261,0.0746408999,0.031556733,-0.180288494,-0.079758659,0.0186433103,1.54614985 +-0.211161435,4.46680069,0.211161435,0.00142335496,0.170008987,0.0801794231,-0.227893859,-0.18721424,0.0185878742,0.299177945 +0.0975524634,4.46723461,-0.097552456,0.000304061919,0.1781611,0.0886132047,-0.256846637,-0.00987826474,0.0186234042,0.138384506 +0.0814568251,4.46734238,-0.0814568251,0.00026368507,0.179622769,0.0939674899,-0.235021383,0.00640266016,0.018619094,0.115562864 +0.0691731274,4.46795559,-0.0691731274,0.000114394774,0.239457399,0.150250152,-0.206868678,0.0347534344,0.0186139531,0.0981502756 +1.2060504,4.46877289,-1.2060504,0.00050061231,0.144018829,0.0685251504,-0.155517608,-0.0111175999,0.0186428335,1.70572114 +-0.309453309,4.46881056,0.309453338,0.00211346219,0.167831555,0.0785635412,-0.205065608,-0.190186009,0.0186035894,0.438409716 +1.21841645,4.46907377,-1.21841645,0.000416011491,0.141999155,0.0680673718,-0.280683279,-0.00585997244,0.0186432395,1.72321105 +1.22871602,4.46932507,-1.22871602,0.00018891113,0.130825236,0.0673858747,-0.353704751,-0.0170008801,0.0186433736,1.73777771 +0.142640203,4.46962547,-0.142640203,0.000429576554,0.175712362,0.0845559016,-0.277756065,-0.0291951671,0.0186267812,0.201776609 +1.05690098,4.47047997,-1.05690098,0.00114974694,0.141550198,0.0654696226,-0.0928715765,0.0153339952,0.018640589,1.49483538 +1.18536615,4.47070313,-1.18536615,0.000542009482,0.149857774,0.0716732219,-0.005377864,-0.0232821275,0.0186403915,1.67644346 +-0.965405643,4.47148371,0.965405643,0.00266974233,0.170618773,0.081072852,-0.0739856511,-0.0451442301,0.0186206363,1.36537063 +-0.195037708,4.47163582,0.195037723,0.00134532794,0.170740843,0.0807577446,-0.230791658,-0.18026717,0.0185808837,0.276224315 +-0.968153894,4.47264338,0.968153894,3.98571392e-05,0.170638353,0.0810921341,-0.0755781829,-0.0438827202,0.0186200757,1.36929965 +0.229409412,4.47276115,-0.229409412,0.00226081023,0.177120328,0.0845412686,-0.26134041,-0.0753167272,0.018629875,0.326466501 +1.10285914,4.47312784,-1.10285914,0.000972164387,0.0629541799,0.0258172918,-0.165813565,-0.0525710918,0.0186388865,1.55987287 +-0.070933789,4.47382259,0.070933789,0.000126137398,0.22337772,0.140118077,-0.292182982,0.0577460155,0.0185797159,0.100731924 +0.680623531,4.47384644,-0.680623531,0.00435267249,0.168775082,0.0797292292,-0.0559546873,-0.0371654145,0.0186325256,0.963106155 +-0.0836054832,4.4743371,0.0836054832,0.000288279436,0.161873966,0.0829121545,-0.305902094,-0.0190822687,0.0185799375,0.11874678 +0.195584059,4.47444916,-0.195584059,0.000935369055,0.177209541,0.0846998543,-0.267660439,-0.0605504513,0.018624194,0.277811855 +-0.099838987,4.47453642,0.099838987,0.000278106629,0.169068709,0.0827734545,-0.294531852,-0.0855320692,0.0185830761,0.141817361 +0.868458867,4.47558641,-0.868458867,0.00281662587,0.170250565,0.0804729983,-0.00891048089,0.00801765546,0.0186368637,1.22855735 +0.761066437,4.4756217,-0.761066437,0.00338069047,0.169210747,0.0799318627,-0.0378857814,-0.0240203124,0.0186356306,1.07649016 +0.339147627,4.47603655,-0.339147627,0.0035081557,0.17260313,0.0820670724,-0.22449401,-0.0824244395,0.0186360087,0.481552124 +1.17430091,4.47660255,-1.17430091,0.000830230769,0.141716421,0.066853188,0.00175759429,-0.0269491859,0.0186359864,1.66076279 +-0.966747522,4.47670698,0.966747463,0.000318753009,0.170760065,0.0811522231,-0.0751838014,-0.0410449281,0.0186168253,1.36732996 +-1.0246954,4.47696733,1.0246954,0.00140620163,0.160860091,0.0760392174,-0.103107072,-0.0253547002,0.0186252277,1.44942832 +-1.00466633,4.47776079,1.00466621,0.00167846866,0.166589618,0.0790564269,-0.0881904811,-0.0273581743,0.0186208449,1.42133033 +-0.973509729,4.4781847,0.973509729,0.00102744356,0.170045331,0.0807940289,-0.0772764906,-0.0375196636,0.0186165534,1.37678444 +-0.31641373,4.47843838,0.316413701,0.00158016745,0.167695686,0.0785484836,-0.199209005,-0.187320828,0.0185960699,0.448957145 +1.1255883,4.47937965,-1.12558842,0.000888817653,0.0666514039,0.02727166,-0.121038675,-0.0803456604,0.0186329316,1.59200478 +-0.118043229,4.479774,0.118043229,0.000418007607,0.174324617,0.0841182545,-0.272720933,-0.120288193,0.0185795277,0.16748789 +-0.323620021,4.48045301,0.323619992,0.000580779102,0.16760242,0.0784846023,-0.202154279,-0.185050219,0.0185955819,0.459298432 +0.981002808,4.48079014,-0.981002808,0.00228061643,0.169709951,0.0804313645,-0.0241587535,0.0228807423,0.0186321307,1.38771915 +0.793872595,4.48099899,-0.793872595,0.00341894245,0.169557005,0.0801286846,-0.0238453094,-0.00985189341,0.0186320562,1.12298977 +-0.253714055,4.48125362,0.253714055,0.00229134923,0.169606775,0.0798091665,-0.198684096,-0.198006362,0.0185830817,0.361711085 +-1.12942708,4.48155689,1.12942708,0.000839727698,0.0722079799,0.0301099997,-0.0990487114,-0.118470736,0.0186316296,1.59725344 +1.1438117,4.48168182,-1.14381182,0.000867991941,0.0725979805,0.0300427936,-0.0681309476,-0.106852531,0.0186312422,1.61778617 +-1.1772927,4.48181152,1.1772927,0.000965523883,0.142403811,0.0679853261,-0.0208310056,-0.0531203896,0.0186377503,1.66512024 +1.04671621,4.4818306,-1.04671621,0.00108719117,0.149221331,0.069511719,-0.072468847,0.0259240195,0.0186317805,1.48035336 +1.20184934,4.48215151,-1.20184934,0.000594578043,0.144884273,0.0689938143,-0.12659961,-0.0150232678,0.0186323393,1.69978642 +-1.1341933,4.48219395,1.13419318,0.000737134425,0.0737408325,0.030866839,-0.0870308727,-0.121353351,0.0186313186,1.60399556 +-1.07423615,4.48223734,1.07423615,0.00161433779,0.132516429,0.0607948303,-0.116685078,-0.0139903463,0.0186270773,1.51939034 +-0.106287166,4.48242617,0.106287166,0.000200094379,0.170582652,0.083124727,-0.277224839,-0.0987809002,0.0185772125,0.151617691 +1.21649837,4.48248291,-1.21649837,0.00056436751,0.144873917,0.06969814,-0.266258091,-0.00809393451,0.018632777,1.72050476 +1.22870386,4.48275948,-1.22870386,0.000255551131,0.131651133,0.0669563115,-0.356957138,-0.0190898608,0.0186329689,1.73776722 +1.03271389,4.48284626,-1.03271389,0.000639742124,0.158662379,0.0745855868,-0.0551757403,0.026035279,0.0186311882,1.46076703 +-1.13256705,4.4829464,1.13256693,9.70316105e-05,0.0718210265,0.0299005564,-0.0922451913,-0.121825486,0.018630499,1.60170293 +-0.350387633,4.48324776,0.350387633,0.00223378418,0.167633444,0.0784732476,-0.201169774,-0.16990447,0.0185952354,0.495872647 +0.94155097,4.48376846,-0.94155097,0.00363685098,0.170710534,0.080776386,-0.0141368508,0.0229662769,0.0186301246,1.3328042 +-0.14536643,4.4838171,0.14536643,0.000275356375,0.173497945,0.0828997418,-0.247434616,-0.152342469,0.0185738169,0.205584913 +1.0705781,4.48427296,-1.0705781,0.00124853058,0.132535011,0.0605375655,-0.0913790315,0.0178036448,0.0186306275,1.51412964 +0.185332954,4.48427677,-0.185332939,0.00112081389,0.177196801,0.0848468691,-0.259633482,-0.055399783,0.0186180193,0.263672501 +0.115986124,4.48540306,-0.115986124,0.000483499782,0.177042335,0.0863159001,-0.251437902,-0.0141918007,0.0186132863,0.16453369 +0.887904644,4.48566866,-0.887904644,0.00180844578,0.170806259,0.080800429,-0.0120183043,0.0180462003,0.0186290238,1.25590205 +0.874930084,4.48639488,-0.874930084,0.000826189993,0.170628667,0.0806869715,-0.0113165136,0.0155728366,0.0186286829,1.23781145 +0.0963902697,4.48641872,-0.0963902622,0.000381647173,0.178351671,0.08883439,-0.232221514,-0.00918113533,0.0186100379,0.137600809 +0.0807453245,4.4864583,-0.0807453245,0.000436578848,0.180821747,0.0949253291,-0.209231645,0.00731022423,0.0186072756,0.11526826 +0.0686905384,4.48649502,-0.0686905384,0.0001900731,0.240580946,0.151269868,-0.181305438,0.0364907458,0.0186031479,0.0980535597 +1.01476669,4.48677588,-1.01476669,0.00159524719,0.165270954,0.0781174749,-0.0334693491,0.0303783603,0.0186274331,1.43524516 +-0.519327879,4.48763895,0.519327879,0.00723814452,0.167412326,0.0783812106,-0.169484541,-0.105027951,0.0185909104,0.736823559 +0.356489122,4.48921967,-0.356489122,0.000855058024,0.172513083,0.0821102932,-0.206462324,-0.080258362,0.0186274983,0.507488251 +-0.0704524145,4.48970222,0.0704524145,0.000151005632,0.222117871,0.139358282,-0.267544746,0.0562530607,0.0185670629,0.100724816 +-0.0830904916,4.48985052,0.0830904916,0.00033797443,0.162515923,0.0833778009,-0.282619089,-0.0204090774,0.01856797,0.118807822 +-0.0992251486,4.48989582,0.0992251411,0.000276260718,0.169178143,0.0829386711,-0.274664313,-0.0859793276,0.0185714997,0.141907319 +-1.18330622,4.49065304,1.18330622,0.000892107724,0.142927304,0.0684743822,-0.0572051071,-0.0443840623,0.018631056,1.67353594 +0.831541419,4.49139214,-0.831541419,0.00196882011,0.170245126,0.0805083886,-0.0200437382,0.00764538394,0.0186246019,1.17605233 +-0.868386924,4.49192476,0.868386865,0.00346817449,0.171570405,0.0811809301,-0.0540475659,-0.0538464226,0.0186030362,1.22857964 +0.19541651,4.49342918,-0.19541651,0.00106283883,0.177767381,0.0851631612,-0.249642208,-0.0557245314,0.0186119378,0.277562827 +0.469611883,4.4938736,-0.469611883,0.00541891158,0.170140281,0.0807693899,-0.157674402,-0.0780295879,0.0186173022,0.665648282 +0.86733669,4.49496317,-0.86733669,0.00291616051,0.170635596,0.0806969553,-0.0115259066,0.0176668353,0.0186222233,1.22715402 +0.108588912,4.49505329,-0.108588919,0.000308739953,0.17739737,0.0872587413,-0.232935533,-0.0105268108,0.0186055191,0.15419364 +0.444334805,4.49534178,-0.444334805,0.0041033756,0.170247823,0.0808401853,-0.173046961,-0.0823245347,0.0186189376,0.631200433 +-1.19343042,4.49583149,1.19343042,0.000613152457,0.144971937,0.0699624121,-0.120836101,-0.0329643078,0.0186277144,1.68793797 +-0.166883081,4.49623775,0.166883081,0.00158894574,0.172531962,0.0821873546,-0.218357503,-0.167989299,0.0185599569,0.237619862 +-1.21268117,4.49681854,1.21268106,0.000810574973,0.143016398,0.0696317628,-0.363305658,-0.0180446617,0.0186277311,1.71518099 +-1.22863102,4.49708843,1.22863102,0.000370145659,0.122593157,0.0621444397,-0.528519034,-0.0210429989,0.0186272841,1.73774076 +0.797115743,4.49801111,-0.797115743,0.000518831483,0.169772372,0.0802687109,-0.0274164323,0.000909375609,0.0186192393,1.12815738 +-1.01055288,4.49848461,1.01055288,0.00123495562,0.166229278,0.0788421929,-0.0896138251,-0.00845300034,0.0186055023,1.42970288 +-1.08730674,4.49904299,1.08730674,0.00112183089,0.122411102,0.0554175638,-0.113193512,0.00105044665,0.0186150186,1.53788793 +-0.138482541,4.49910402,0.138482541,0.000397284137,0.174595699,0.0837958381,-0.233242854,-0.145165637,0.018562302,0.195886388 +-0.107858986,4.49910736,0.107858978,0.000279494037,0.171751082,0.0837631971,-0.256135553,-0.102053612,0.0185650904,0.153373539 +0.788377702,4.49965906,-0.788377702,0.00064236403,0.169841528,0.0803182572,-0.0307060666,-0.000459833769,0.0186182205,1.11574113 +0.145590037,4.50085449,-0.145590037,0.000129139822,0.176738352,0.0852359235,-0.244678855,-0.0295971781,0.0186042525,0.206318602 +0.228985265,4.50108576,-0.22898528,0.00132360368,0.177953005,0.0852338821,-0.234492064,-0.0680410415,0.0186115596,0.325844437 +1.03056109,4.50133944,-1.03056097,0.000631474424,0.161701411,0.076142244,-0.0430085585,0.0422288738,0.018616939,1.45794737 +0.115842298,4.50217867,-0.115842298,0.000653689727,0.177389055,0.0866353065,-0.231633916,-0.0142107708,0.0186012816,0.164644837 +0.399029702,4.50222206,-0.399029702,0.00394516345,0.171835765,0.081784077,-0.190040886,-0.0687499642,0.0186170209,0.565044522 +-0.140731633,4.50259781,0.140731633,2.42875249e-05,0.174608856,0.0837580189,-0.227201298,-0.148138434,0.0185592901,0.199145928 +-0.1421808,4.50339222,0.142180815,0.000251415942,0.174521104,0.0836910233,-0.225322723,-0.149163812,0.0185584649,0.201169312 +0.137274474,4.50351191,-0.137274474,0.000544617651,0.177170068,0.0858035386,-0.237866074,-0.0247803889,0.0186021756,0.194253832 +0.960569978,4.50373554,-0.960569978,0.00171810552,0.170865968,0.0808385313,-0.0210742541,0.0355698243,0.0186156295,1.3596468 +0.148073956,4.50406265,-0.148073971,0.000816362386,0.176892787,0.0853116512,-0.241309226,-0.0301738922,0.0186017193,0.209827229 +0.143576592,4.50421619,-0.143576592,1.62533743e-05,0.17693235,0.0854301453,-0.240162313,-0.0288203377,0.0186021663,0.203594953 +-0.94176954,4.50430298,0.94176954,0.00143685634,0.172774643,0.0820359513,-0.0671901926,-0.0282250941,0.0185956135,1.33223987 +-0.141028747,4.50435019,0.141028747,2.73503065e-06,0.17459774,0.0837598071,-0.224810034,-0.148330554,0.0185580384,0.199617013 +0.145704553,4.50436831,-0.145704553,8.66042774e-06,0.176855192,0.0853240639,-0.240900666,-0.029668387,0.0186016969,0.206689104 +-0.139662609,4.50487471,0.139662623,0.000279494911,0.174651653,0.0838403627,-0.225094125,-0.14670001,0.0185581353,0.197593361 +-0.14066796,4.50590181,0.14066796,0.000101744328,0.174633801,0.0838051811,-0.223184228,-0.147876635,0.0185570698,0.199070901 +-0.142013028,4.50590324,0.142013013,0.00034562283,0.174584344,0.0837477818,-0.222559363,-0.148820579,0.0185565501,0.200933337 +1.09366369,4.50610924,-1.09366357,0.00162477978,0.117152572,0.0523597747,-0.0910865813,0.0226415638,0.0186145213,1.54687476 +-0.100031227,4.5072279,0.100031227,0.00026579437,0.169755906,0.0834033042,-0.25383085,-0.0882222652,0.0185601767,0.141927227 +-0.0835619345,4.50742197,0.0835619271,0.000289998803,0.162457213,0.0834068656,-0.259619117,-0.0207956247,0.0185569394,0.11854133 +-0.23217462,4.50756836,0.232174635,0.00238742004,0.170578241,0.0806685835,-0.179035306,-0.189460158,0.0185553823,0.331252158 +-0.0707459748,4.50774479,0.0707459748,0.000126921761,0.222338915,0.138832435,-0.242796868,0.0566118285,0.0185556971,0.100346938 +-1.06973565,4.50843239,1.06973565,0.00129552407,0.136814505,0.0630521402,-0.107797503,0.0143417623,0.0186056346,1.51296592 +-0.674130142,4.50870657,0.674130142,0.00592426537,0.166784763,0.0781771913,-0.118247874,-0.0611331053,0.01858964,0.953650653 +0.145514503,4.50902653,-0.145514518,0.000664471416,0.176982179,0.0854530036,-0.235857978,-0.028803641,0.0185988061,0.20604597 +-0.825956821,4.50924921,0.825956881,0.0043207868,0.17057699,0.0805598572,-0.0632465854,-0.0471763499,0.0185905527,1.16824591 +0.279439151,4.51011086,-0.279439121,0.00198042835,0.176937893,0.084714435,-0.216434538,-0.0721592382,0.0186103713,0.39620629 +-1.02683854,4.51025295,1.02683854,0.00126346073,0.161769539,0.0765144601,-0.0942084938,0.0115293777,0.0185989384,1.45236981 +-0.682462692,4.51109171,0.682462692,0.000250589219,0.166880101,0.0782470405,-0.116852023,-0.0575399064,0.0185880512,0.965580046 +0.0980888456,4.51123476,-0.0980888456,0.000180654359,0.179078951,0.0894116685,-0.199743181,-0.00725661078,0.0185935926,0.138782516 +0.263105243,4.51124668,-0.263105243,0.00157408917,0.177628666,0.0850946456,-0.220832556,-0.0679179952,0.0186074376,0.372622758 +0.0995661169,4.51136065,-0.0995661244,0.000231419661,0.17892988,0.0891918316,-0.201098427,-0.00750182383,0.0185936615,0.140835896 +0.0820761248,4.51169872,-0.0820761174,0.000259231805,0.182146788,0.0956155285,-0.174355596,0.00669124629,0.0185917169,0.116111241 +0.0697476715,4.51230907,-0.0697476789,0.000112661663,0.237484172,0.14878884,-0.147515818,0.0349641666,0.0185881499,0.0986432061 +0.0980997086,4.51231575,-0.0980997086,1.28495358e-05,0.179038376,0.0893860087,-0.198504508,-0.00714600785,0.0185928848,0.138855264 +1.14897764,4.51234388,-1.14897764,0.00109094242,0.11944294,0.0540321916,-0.00207882375,-0.0455272868,0.0186093897,1.6250906 +0.0697460473,4.51242542,-0.0697460473,2.56231215e-06,0.23747988,0.148783386,-0.147363871,0.0349665135,0.0185880829,0.0986454114 +0.0820726901,4.51245499,-0.0820726901,1.56189835e-05,0.182160348,0.0956212655,-0.173418313,0.00672073709,0.0185912661,0.116140403 +0.0697481781,4.51255655,-0.0697481781,0.000113753733,0.23746042,0.148768708,-0.147203714,0.0349600576,0.0185880028,0.0986435637 +-0.281527907,4.51284599,0.281527907,0.00158806227,0.16970931,0.0799289495,-0.17630741,-0.181751788,0.0185636654,0.400333285 +1.12489164,4.51287937,-1.12489164,0.00127375743,0.11685507,0.0524149276,-0.042129565,-0.0131576043,0.0186091904,1.5910176 +-0.412454337,4.51290417,0.412454367,0.00509118009,0.168247283,0.0788745582,-0.188979417,-0.129895627,0.0185742304,0.585307598 +0.0820975378,4.51330757,-0.0820975378,0.000261866749,0.182213157,0.0956490561,-0.172286004,0.00661558053,0.0185907129,0.116138555 +-0.118066326,4.51336002,0.118066326,0.000632816518,0.174615532,0.0845680237,-0.230349332,-0.121023372,0.0185566228,0.168005705 +0.0981568396,4.51353073,-0.0981568396,0.000285428076,0.179085672,0.0894146413,-0.196980044,-0.00723913452,0.0185920782,0.138873458 +0.350858927,4.51404047,-0.350858927,0.00400518533,0.17330569,0.0826923773,-0.198857248,-0.0696889684,0.0186094232,0.498514354 +-1.13518322,4.51502132,1.13518322,0.000795299653,0.121315315,0.0553706065,-0.0112692127,-0.0365637951,0.0186058804,1.60539556 +-0.932448626,4.51521063,0.932448626,0.00139230164,0.173035637,0.0821231678,-0.0658301637,-0.0241128094,0.0185870696,1.3193481 +-1.13141775,4.51544905,1.13141775,0.00102060894,0.120615974,0.0549365729,-0.0150890863,-0.0340499282,0.0186051987,1.60007036 +-1.13329828,4.51628685,1.13329816,5.1820487e-05,0.120419979,0.0548512414,-0.0112447701,-0.0354440063,0.0186046232,1.60273695 +-0.687644839,4.51690865,0.687644839,0.0029091055,0.167129099,0.0783992857,-0.116123065,-0.0522769764,0.01858362,0.972776473 +-1.13350284,4.5170002,1.13350284,4.57109127e-06,0.120861158,0.0550841764,-0.0106349569,-0.0348049924,0.0186040122,1.60302866 +-0.972296238,4.51700592,0.972296238,0.00210060971,0.170498848,0.0809503645,-0.0789151341,-0.0088808611,0.0185890868,1.37519586 +-0.680623531,4.51731157,0.680623472,5.86416136e-05,0.166941509,0.0782871544,-0.117905438,-0.0517690741,0.018583199,0.963209867 +-0.105921149,4.51746607,0.105921149,0.000233483719,0.171430081,0.0839183405,-0.236617118,-0.0992440432,0.018554084,0.150346577 +-0.0703072101,4.51778173,0.0703072101,9.81211488e-05,0.222887665,0.138469696,-0.226316795,0.0549845658,0.0185485892,0.100118592 +-0.0831588954,4.51788712,0.0831588954,0.000233833882,0.16290246,0.0837261826,-0.243477523,-0.0216406044,0.0185498595,0.118452139 +-1.1359328,4.51794863,1.13593292,0.000833600352,0.122329563,0.0559333675,-0.0115130637,-0.0351435058,0.0186034702,1.60645485 +-0.0998042896,4.51810551,0.0998042896,0.000170327665,0.169838741,0.0835453495,-0.238927081,-0.0896027312,0.0185525548,0.142195269 +1.04092717,4.51919365,-1.04092729,0.00141480227,0.159059018,0.074577488,-0.0516693778,0.0572218522,0.0186039396,1.47224665 +-1.13495696,4.5198431,1.13495696,0.000443659403,0.122584067,0.0559967384,-0.00867629703,-0.0331147313,0.0186016951,1.60507524 +-0.676723182,4.52002764,0.676723182,0.00133328012,0.167008579,0.0783312544,-0.118061677,-0.0500185229,0.0185811296,0.957685053 +-1.13159561,4.52034235,1.13159573,0.000651841168,0.122821406,0.056058865,-0.0150141148,-0.0287430808,0.0186009966,1.6003201 +-0.442151368,4.52040958,0.442151338,0.00515016867,0.168357909,0.0790000856,-0.192585841,-0.0988030732,0.0185694136,0.627042234 +-0.165040568,4.52205753,0.165040553,0.000927465095,0.173190981,0.0827778354,-0.190014184,-0.164373472,0.0185402986,0.235020265 +0.776427746,4.52240467,-0.776427746,0.00346211134,0.170148835,0.0805479363,-0.0378332362,0.0176722482,0.0186008513,1.0982976 +-1.08873308,4.52316046,1.0887332,0.00180365308,0.133986667,0.0615222827,-0.103935242,0.0203961823,0.0185959283,1.53989911 +1.14035296,4.52356815,-1.14035296,0.00045384423,0.121518597,0.0552194379,-0.00422212668,-0.0223997347,0.0186014567,1.61302292 +1.18907619,4.52378893,-1.18907619,0.000985048478,0.150146812,0.0718056336,-0.0344936438,-0.0292272549,0.0186009891,1.68176317 +0.273994267,4.52382946,-0.273994267,0.000281059329,0.177542239,0.0851510912,-0.206265926,-0.0689134672,0.0185988992,0.389212489 +1.21064281,4.52396774,-1.21064281,0.000776529952,0.154961109,0.0750681758,-0.232620597,-0.0146484561,0.0186014716,1.71226597 +1.22861016,4.52411747,-1.22861016,0.000351744413,0.132595107,0.0637606233,-0.38233462,-0.0230627097,0.0186019242,1.73767817 +1.17153394,4.52414989,-1.17153394,0.00107936747,0.137638614,0.064435482,-0.0188176613,-0.0338691548,0.0186006818,1.65689397 +-1.1860311,4.52426052,1.1860311,0.00122046063,0.15132004,0.0732643753,-0.0548153333,-0.0285109468,0.0186028704,1.6773715 +-0.682269573,4.52585554,0.682269514,0.00417034142,0.167118445,0.0784139112,-0.118164532,-0.0437683649,0.0185772441,0.9651438 +-1.20807791,4.52625704,1.20807791,0.000767736172,0.152800068,0.0744414628,-0.331311345,-0.018851852,0.0186020397,1.70855689 +-1.22872686,4.5264101,1.22872686,0.000364785257,0.123836324,0.0600610301,-0.554434597,-0.0217511617,0.0186017472,1.73776042 +0.181757912,4.52669048,-0.181757897,0.000580237189,0.178429663,0.0860155672,-0.221007541,-0.0457600504,0.0185887497,0.257705241 +-0.555420518,4.52779579,0.555420518,0.00738053536,0.167897135,0.0788858756,-0.17071414,-0.049437765,0.018565353,0.786346674 +-0.0706759244,4.52910328,0.070675917,0.000121024234,0.224073142,0.139705822,-0.211796045,0.0545739643,0.018541323,0.100163788 +-0.655727923,4.52912283,0.655727923,0.00449528731,0.167335629,0.078564018,-0.127695978,-0.0424179174,0.0185733791,0.927476704 +-0.944246292,4.52964735,0.944246292,0.00126100215,0.173619807,0.0824799538,-0.071201928,-0.0094457129,0.0185769964,1.33603001 +-0.0834496468,4.52985096,0.0834496468,0.000276986917,0.163343579,0.0841361508,-0.228195861,-0.0212350078,0.0185421687,0.118268587 +0.804548979,4.52995014,-0.804548979,0.00257952465,0.170603693,0.0807764307,-0.0298506133,0.0232096259,0.0185952447,1.13794005 +0.186738431,4.5305748,-0.186738446,0.000628495764,0.178691477,0.086154379,-0.21666038,-0.0460532159,0.0185861848,0.264580607 +-0.0999864042,4.53073406,0.0999863967,0.000272360339,0.170384914,0.0839441121,-0.223101035,-0.0880433172,0.0185444858,0.1417059 +1.07702756,4.5316,-1.07702768,0.00149528682,0.135143399,0.0615560263,-0.0765572041,0.05166829,0.0185957421,1.52336621 +0.17461729,4.53181839,-0.174617305,0.00071360229,0.178410023,0.086156778,-0.214924663,-0.0421798229,0.0185857099,0.247342885 +0.256171793,4.53206921,-0.256171793,0.00134574575,0.17803961,0.0855361,-0.204894707,-0.0628376901,0.0185916182,0.36280486 +-0.341217965,4.5328989,0.341217995,0.00254499912,0.168526083,0.0793668404,-0.191958815,-0.14677915,0.0185570791,0.482747108 +0.180911005,4.53309202,-0.18091099,0.000229439494,0.178556398,0.0861446261,-0.215210617,-0.0451211631,0.0185847227,0.256617874 +0.283526868,4.5331068,-0.283526868,0.0026564945,0.177521229,0.0851835012,-0.201559544,-0.0645024031,0.0185942091,0.402175248 +0.450759888,4.53392744,-0.450759888,0.00746312272,0.171860784,0.0818837881,-0.158665076,-0.0494142137,0.0185896419,0.639864683 +0.927736759,4.53496885,-0.927736759,0.00270552328,0.172296405,0.0816397741,-0.0170986522,0.0483156666,0.0185918286,1.31263208 +-1.04348195,4.53510475,1.04348195,0.00134279241,0.159200802,0.0750688612,-0.103696674,0.0442144312,0.0185811892,1.47603941 +-0.261017233,4.53530359,0.261017233,0.00138989766,0.170580566,0.0806976631,-0.159490794,-0.174696088,0.0185394753,0.371357262 +-0.116084523,4.53556633,0.116084531,0.000326929236,0.175064862,0.0851155072,-0.205899447,-0.118026465,0.0185395535,0.164756507 +-0.131560609,4.53561783,0.131560609,0.000396485091,0.175543129,0.0848461539,-0.194748461,-0.137834862,0.0185363404,0.186907858 +1.00882483,4.53588009,-1.00882483,0.00101400178,0.168539837,0.0795373321,-0.0362405553,0.0606610849,0.0185916498,1.4267323 +0.117361195,4.53606653,-0.117361195,0.000362299732,0.178069547,0.0872310922,-0.193003818,-0.0122530637,0.0185786746,0.165984482 +0.565093994,4.5360775,-0.565093994,0.00439404463,0.171000674,0.0812367052,-0.101991758,-0.019543929,0.0185773,0.800972164 +0.117493965,4.53724241,-0.117493972,2.36384139e-07,0.178072304,0.0872343853,-0.191790968,-0.0123208687,0.0185778718,0.166212291 +0.117756464,4.5372591,-0.117756464,0.000266355841,0.178069547,0.0872264728,-0.191901758,-0.012389319,0.0185778718,0.166554749 +0.117065288,4.53729105,-0.117065288,0.000256211002,0.178118572,0.0872923359,-0.191252485,-0.0122190639,0.0185778271,0.165577844 +0.117415182,4.53751516,-0.11741519,0.000402560167,0.178081796,0.0872443244,-0.191427022,-0.012305567,0.0185777079,0.166083127 +-1.0176816,4.53779173,1.0176816,0.00183237973,0.169064686,0.0800202116,-0.0977478325,0.0235806629,0.018577734,1.43941212 +0.0973426402,4.53827047,-0.0973426402,0.000530678255,0.178708553,0.0892498195,-0.169683367,-0.0092986552,0.0185761005,0.139117986 +0.509899616,4.5383091,-0.509899616,0.00533891749,0.171334222,0.0815089047,-0.132549673,-0.0273786671,0.0185799468,0.721831322 +0.0686331242,4.53834343,-0.0686331242,0.000250475481,0.234546393,0.146658748,-0.114117727,0.0366028994,0.0185740236,0.098094359 +0.0811090395,4.53844976,-0.0811090469,0.000532319944,0.182461828,0.0958694145,-0.14135924,0.00567395054,0.018575659,0.115920722 +-0.796634674,4.53952837,0.796634734,0.00459512975,0.170296088,0.0803604871,-0.0711542293,-0.0270102695,0.0185702462,1.12726378 +0.217648923,4.54049349,-0.217648923,0.0020660325,0.178705782,0.0860523731,-0.204047918,-0.0585382283,0.0185817871,0.309718817 +1.18810749,4.5410676,-1.18810749,0.000790503866,0.154561251,0.0742171928,-0.0265781917,-0.0298315249,0.0185882263,1.68038654 +1.21020949,4.54118443,-1.21020949,0.000807890843,0.158895969,0.0770396516,-0.240644798,-0.0167517196,0.0185887329,1.71164632 +-0.428317666,4.54120445,0.428317666,0.00370053737,0.168689504,0.0793221295,-0.191330314,-0.0953208059,0.0185548738,0.607902527 +1.22862673,4.54128075,-1.22862673,0.000365752378,0.133132681,0.0632902533,-0.401259542,-0.0236268882,0.0185892563,1.73769462 +0.272421151,4.54129028,-0.272421151,0.00221288903,0.178002298,0.0855429098,-0.198751777,-0.0648081303,0.0185874514,0.38640368 +1.15007973,4.54140186,-1.15007973,0.00104966317,0.132569566,0.0609075241,0.00702120177,-0.0209519006,0.0185883641,1.626647 +-0.925516963,4.54187202,0.925516963,0.0024949864,0.173580199,0.0824086517,-0.069526419,-0.00489447825,0.0185687933,1.30926204 +0.99578315,4.54233122,-0.99578315,0.00153177802,0.170689061,0.08060693,-0.0334146991,0.0632863715,0.0185870714,1.40834904 +0.648912787,4.54356718,-0.648912847,0.00817888696,0.170146748,0.0806926116,-0.0733296052,0.0131981513,0.0185781643,0.919733644 +0.140320867,4.54413605,-0.140320867,0.000996564282,0.177750975,0.0862986967,-0.200579226,-0.0257607996,0.0185737405,0.199563444 +-0.082817547,4.54462767,0.082817547,0.000270460616,0.164090127,0.0848280191,-0.207289696,-0.0213265494,0.0185302217,0.118039645 +-0.0702970996,4.54467249,0.0702970996,0.000122385405,0.225496769,0.141363874,-0.189401031,0.0528609715,0.0185280833,0.100219622 +0.184886426,4.54479027,-0.184886426,0.000796869746,0.178838223,0.0863683447,-0.207192153,-0.0449641906,0.0185783394,0.261769831 +-0.0990492851,4.54490089,0.0990492776,0.00019666033,0.170489177,0.0841491669,-0.204576626,-0.0861197412,0.0185331479,0.141139075 +-0.107205003,4.54494667,0.107205011,0.000286836614,0.173027873,0.0848587081,-0.199493229,-0.101370409,0.0185331348,0.151927799 +-0.117776781,4.54699945,0.117776781,0.000335258228,0.175033793,0.0851370916,-0.191351682,-0.11981599,0.0185300559,0.167565122 +-0.290263712,4.54726458,0.290263712,0.0039533521,0.169898868,0.0802586228,-0.154837593,-0.172770813,0.0185352918,0.41471678 +-1.1834178,4.54784822,1.1834178,0.000953762676,0.15706268,0.0763350278,-0.0275461655,-0.0247375034,0.0185825564,1.6737833 +-1.22864366,4.54828358,1.22864366,0.000347063586,0.124703825,0.0589446314,-0.5767681,-0.0215519443,0.0185828488,1.73775017 +-1.20664716,4.54830265,1.20664716,0.000720821728,0.159259453,0.0777025074,-0.331592202,-0.0188649837,0.0185830407,1.70663917 +1.17526317,4.54928493,-1.17526317,0.000692537462,0.151555523,0.0720003471,-0.00835026894,-0.0169743858,0.018582128,1.66217279 +1.00632203,4.54996729,-1.00632203,0.00107148127,0.169518113,0.0799531862,-0.0367995352,0.0686386079,0.0185816176,1.42328775 +-0.14857541,4.54998875,0.14857541,0.00142033701,0.175188944,0.0843186378,-0.168508425,-0.152871788,0.0185193773,0.211253345 +1.00181329,4.55037975,-1.00181329,0.000306698435,0.170649007,0.0805579647,-0.0358238742,0.0677030534,0.0185812525,1.41696382 +1.09845746,4.55113888,-1.09845757,0.000768029306,0.140212223,0.0645062327,-0.0695706233,0.0485966317,0.0185814165,1.55354333 +-0.137793854,4.55170631,0.137793854,0.000658071076,0.175618559,0.0848096758,-0.171517089,-0.145283714,0.0185221843,0.196373016 +1.05589426,4.55229664,-1.05589426,0.00266446546,0.155403405,0.0723804906,-0.0644959733,0.0802682638,0.0185806509,1.49379873 +-0.195161164,4.55244112,0.195161164,0.000762382289,0.17270577,0.0824666247,-0.146753088,-0.171913147,0.0185135454,0.276002765 +0.910703897,4.5529108,-0.910703897,0.00155886414,0.17237477,0.0816523358,-0.0171419606,0.052544713,0.018578779,1.28927577 +0.130912066,4.55318022,-0.130912066,0.000449071813,0.178129792,0.0868181214,-0.185594708,-0.0241060089,0.0185678788,0.186714306 +-0.814271331,4.5540843,0.814271331,0.00398091786,0.171113014,0.0808296949,-0.0699675977,-0.0141238431,0.0185591392,1.15204012 +1.11844277,4.55421209,-1.11844277,0.00119011768,0.13936013,0.0641965196,-0.0386400819,0.0247852318,0.018578928,1.58179688 +-0.19471322,4.55437326,0.19471322,0.000299224892,0.172771841,0.082521826,-0.144953907,-0.171557695,0.0185119305,0.275381148 +-0.195037559,4.55463314,0.195037544,0.000842932786,0.172767654,0.0825189576,-0.144573957,-0.171616659,0.0185116734,0.275840104 +-0.194681451,4.55478382,0.194681451,0.000604139874,0.172782406,0.0825312659,-0.14450413,-0.171499312,0.0185116176,0.275336444 +-0.194967762,4.55501652,0.194967747,0.000621484302,0.172776192,0.0825276151,-0.144272104,-0.171540663,0.0185113754,0.275745183 +-0.798276305,4.55562115,0.798276246,0.00215248251,0.170621946,0.0805622414,-0.0706028566,-0.0127551807,0.0185584184,1.12990642 +0.402452886,4.55580711,-0.402452916,0.0046420265,0.174622834,0.0836418569,-0.166651011,-0.048721686,0.0185773261,0.57032764 +-0.0989365429,4.55615425,0.0989365429,0.000286050548,0.170622393,0.0844126642,-0.191281915,-0.0844923556,0.0185247529,0.140330464 +-0.94340682,4.55640602,0.94340682,0.00159326906,0.174694732,0.0829648077,-0.0752393752,0.00673798518,0.0185586605,1.33446431 +-0.782235861,4.55642366,0.782235861,0.0034621791,0.170165271,0.0803207383,-0.0767466351,-0.011072915,0.0185581185,1.10682762 +-0.082990177,4.55643749,0.082990177,0.000256750267,0.164165244,0.085089922,-0.192779869,-0.0191890933,0.0185216386,0.117714271 +0.996913671,4.55654192,-0.996913671,0.000973658171,0.170994088,0.0807542801,-0.0346458703,0.0684919506,0.0185766593,1.40996778 +0.961268663,4.55669785,-0.961268663,0.00191972975,0.173379719,0.0821231902,-0.0206683725,0.0563188195,0.0185764506,1.3598752 +-0.0706802681,4.55705547,0.0706802681,0.000111999158,0.226591781,0.142683566,-0.174665898,0.0539582856,0.0185186397,0.100254074 +-1.17100918,4.55780029,1.17100918,0.000967891829,0.155387461,0.0748438835,-0.00972888432,-0.00833051745,0.0185723789,1.65618944 +-0.192624345,4.55872965,0.192624345,0.000419361517,0.17302233,0.0827224776,-0.140917644,-0.170597494,0.0185087025,0.272412986 +0.587042093,4.56072378,-0.587042093,0.00615889998,0.171587959,0.0816249475,-0.0896285921,0.0106244013,0.0185598247,0.832022369 +-0.967130482,4.5635004,0.967130423,0.00149509183,0.174793124,0.0829655081,-0.0834492147,0.016804928,0.0185545571,1.36783218 +0.0991626829,4.56428719,-0.0991626829,0.000287512899,0.179762676,0.0899523124,-0.138869062,-0.00950073171,0.018559644,0.140271649 +0.0691988617,4.56462717,-0.0691988543,0.000109097593,0.234348655,0.145821333,-0.0784091502,0.0344077535,0.0185571406,0.0978906825 +0.0994776189,4.56495142,-0.0994776264,0.000226919554,0.17972669,0.0899128392,-0.138503671,-0.00959912408,0.0185592417,0.140733033 +0.0991529152,4.56501865,-0.0991529152,6.37146422e-06,0.179748088,0.0899498612,-0.138085172,-0.0095349839,0.0185591597,0.14030081 +-0.235753238,4.56517076,0.235753238,0.00134673738,0.171653539,0.0818128288,-0.133952796,-0.169928506,0.018506974,0.334127605 +0.0821884125,4.56522322,-0.0821884125,0.000221667608,0.184300184,0.0968708843,-0.105778255,0.00431280583,0.0185586922,0.116237462 +0.0691789687,4.56528139,-0.0691789687,3.39522603e-06,0.234331697,0.145799801,-0.0775751993,0.0343808755,0.0185566973,0.0978919193 +0.0798635036,4.56535149,-0.0798635036,0.000102506347,0.193274349,0.105725653,-0.100554407,0.00971861463,0.0185582712,0.112944193 +0.0821845382,4.56536198,-0.0821845382,3.21574862e-06,0.1843016,0.0968721732,-0.10560707,0.00432006316,0.0185586065,0.116238736 +0.691330552,4.5653801,-0.691330552,0.00615586434,0.17051357,0.0808896571,-0.060228996,0.0416062362,0.0185634084,0.978503823 +0.082191579,4.56547022,-0.0821915716,0.000226616408,0.184306666,0.0968734995,-0.105474226,0.00430133799,0.018558532,0.116243854 +0.099219799,4.56559753,-0.099219799,0.00027862651,0.179759368,0.0899540707,-0.137462035,-0.00966728665,0.0185587965,0.140363872 +0.728540659,4.56593323,-0.728540659,0.00496449368,0.170408592,0.0807873532,-0.0504090786,0.0450516865,0.0185669772,1.03287363 +0.0692097843,4.56597519,-0.0692097768,0.000110569941,0.234281689,0.145749196,-0.0766351223,0.0344104916,0.0185562465,0.097904779 +-1.06852269,4.56802177,1.06852269,0.00227875449,0.160779774,0.0758543015,-0.0958953723,0.0631760061,0.0185575243,1.51162505 +0.160870522,4.56811762,-0.160870507,0.000404852355,0.178824618,0.0868179575,-0.186216831,-0.034380611,0.0185614135,0.227724373 +1.08817315,4.56815386,-1.08817315,0.00114862516,0.152011469,0.0707300305,-0.0599721894,0.0673639923,0.0185688827,1.53900766 +-1.03155625,4.56870317,1.03155637,0.00170219457,0.168378174,0.0794732273,-0.107824363,0.058257591,0.018555278,1.45916033 +-0.111591116,4.56876135,0.111591116,0.000163339049,0.174600706,0.0855537429,-0.168416455,-0.108745709,0.0185144003,0.157939568 +0.140920579,4.56976938,-0.140920594,0.000596575788,0.178101033,0.086687766,-0.178575397,-0.0265142266,0.0185589325,0.200234652 +-0.0824014395,4.57039785,0.0824014321,0.000339761755,0.164911225,0.0857895911,-0.172793686,-0.0179059897,0.0185104087,0.11742954 +-0.0703868121,4.57043457,0.0703868121,0.000143105994,0.227565944,0.143839568,-0.155868113,0.0531916432,0.01850738,0.100285925 +-0.0979276523,4.57050371,0.0979276523,0.000360527163,0.170442611,0.0845279098,-0.172604546,-0.0823982507,0.0185131598,0.13958028 +0.163459539,4.57135391,-0.163459525,0.000159507879,0.178935796,0.0868577734,-0.184385538,-0.0354951732,0.0185591727,0.231584191 +-1.11772215,4.57184696,1.11772215,0.00141176046,0.151818842,0.071081847,-0.045857843,0.0499134026,0.0185552221,1.58078671 +-1.22874546,4.57236004,1.22874546,0.000337762758,0.12220867,0.0593251176,-0.607040942,-0.0195468161,0.0185622331,1.73778236 +-1.21054757,4.57241154,1.21054757,0.000703652273,0.161651999,0.0780530423,-0.401176363,-0.0160610173,0.0185623579,1.71204567 +-1.10516095,4.57262421,1.10516095,0.00255791564,0.152909845,0.0715065524,-0.0728857964,0.0583465807,0.0185543429,1.56304669 +-1.19119346,4.57262516,1.19119346,0.000811068574,0.171960786,0.0842184797,-0.103267871,-0.0216380768,0.0185617507,1.68467438 +-0.243406102,4.57300615,0.243406102,0.00145327882,0.171531841,0.08178325,-0.129275352,-0.168671995,0.0185016543,0.345499814 +0.20602949,4.57336712,-0.20602949,0.00107991113,0.179065198,0.0866041705,-0.183520555,-0.0530023016,0.0185634065,0.292488366 +0.562233031,4.5734458,-0.562233031,0.00409766613,0.172201604,0.0820346028,-0.100117505,0.0111122215,0.0185492225,0.797213614 +-0.139778137,4.57393026,0.139778152,0.000603433058,0.176600456,0.0854767412,-0.144623846,-0.144854352,0.0185042042,0.198196679 +0.893742919,4.57493114,-0.893742919,0.00478054956,0.172438204,0.0817016587,-0.0177933127,0.0584846102,0.0185621791,1.26550496 +0.160613328,4.57557964,-0.160613328,0.000391714828,0.178910419,0.0869283602,-0.179676682,-0.0344289765,0.0185570661,0.227325007 +0.16700992,4.57567167,-0.16700992,0.000603079738,0.179076925,0.0869413763,-0.181740224,-0.0360604972,0.018557135,0.236350656 +-0.117421038,4.57584,0.117421046,0.000314632518,0.175898686,0.0858566612,-0.156753793,-0.118845858,0.018508181,0.166439682 +1.10307145,4.57593441,-1.10307133,0.0010753494,0.150788173,0.0702036843,-0.0575805604,0.059647955,0.0185630862,1.56011987 +-0.879236579,4.57600927,0.879236519,0.00692369416,0.173613131,0.0823154524,-0.0609469637,0.0134134935,0.0185444243,1.24491441 +1.12067306,4.57696629,-1.12067306,0.000958824472,0.151661485,0.070813939,-0.0298081655,0.0408446603,0.0185621418,1.58495522 +-0.566659629,4.57703066,0.56665957,0.00359594682,0.168818265,0.0796601251,-0.172271103,0.000546933617,0.018532373,0.803836167 +-0.113838524,4.57726622,0.113838516,0.000154685185,0.175363302,0.0858391896,-0.155989528,-0.112987503,0.0185074937,0.161333635 +1.15471697,4.57788277,-1.15471697,0.00155655458,0.152296349,0.071506314,0.0228153951,0.0036114098,0.0185614508,1.63321567 +-0.2342273,4.58079433,0.234227285,0.00134043104,0.171959639,0.0821358189,-0.121574402,-0.166842461,0.0184950251,0.332142889 +1.22870469,4.58133364,-1.22870457,0.000352125004,0.132947117,0.063915886,-0.450916171,-0.0213865265,0.0185606796,1.73782492 +-0.116145246,4.58135128,0.116145238,0.000158931478,0.175962791,0.085988082,-0.150437936,-0.116669916,0.0185043942,0.164506942 +1.21214616,4.58147097,-1.21214604,0.000777347945,0.166916192,0.0806547925,-0.288852364,-0.0174328424,0.0185599606,1.71440554 +-0.121118426,4.58159637,0.121118426,0.000262154848,0.176264107,0.0859847814,-0.147746965,-0.122404709,0.0185027439,0.171421811 +1.19227529,4.58163548,-1.19227529,0.000734611647,0.170833558,0.082810238,-0.0527998172,-0.0247075483,0.0185593516,1.68630147 +-0.786300123,4.58213902,0.786300182,0.00362882973,0.170590773,0.0806381032,-0.0781909227,0.0155859925,0.0185400564,1.11245358 +0.830071568,4.58267736,-0.830071568,0.00487542059,0.171676487,0.0814099014,-0.02789356,0.0584818609,0.0185556505,1.17489028 +0.23373507,4.58354187,-0.233735085,0.00165742298,0.179760233,0.0869547501,-0.179449916,-0.0548537597,0.0185569469,0.331464112 +-1.00184882,4.58411694,1.00184882,0.00150525454,0.174094796,0.0824331045,-0.0985001922,0.0444729701,0.0185424127,1.41695035 +1.17778647,4.58470392,-1.17778647,0.00072730903,0.165248811,0.079106845,-0.0293254312,-0.011537822,0.0185568985,1.66575527 +0.117244676,4.58765316,-0.117244683,0.000461656804,0.178187758,0.0876513571,-0.142113879,-0.0144814197,0.0185459498,0.165971234 +-1.15975678,4.58825111,1.15975678,0.00200130232,0.161687672,0.0772995129,0.0312528946,0.0230149142,0.018544307,1.64029288 +0.11722964,4.58905745,-0.11722964,2.25019403e-06,0.17816104,0.0876415372,-0.140897378,-0.014492739,0.0185450036,0.16606237 +0.116206273,4.58933592,-0.116206273,0.000244067865,0.178309575,0.0878122449,-0.138850614,-0.0146249896,0.0185447596,0.164487153 +-0.105657548,4.58937931,0.105657548,0.000116530297,0.173411563,0.085686475,-0.144490153,-0.0954985321,0.018498797,0.149452031 +0.119181417,4.58955574,-0.119181417,0.000486834557,0.178181767,0.0876118392,-0.141970471,-0.0150924847,0.0185449999,0.168639719 +-0.344055831,4.58982944,0.344055831,0.00217892998,0.169857517,0.0804885924,-0.170239329,-0.119131714,0.0185116939,0.487168491 +-0.986174881,4.58997488,0.986174881,0.000690636283,0.175831228,0.0834151134,-0.092163831,0.0381152891,0.0185366217,1.39497828 +-0.0708724484,4.59023666,0.0708724484,0.000110512294,0.22750771,0.14395237,-0.132221758,0.0541187935,0.0184928142,0.100327201 +0.92643714,4.59025812,-0.92643714,0.00462942617,0.173632234,0.0823080018,-0.0205644444,0.0675318837,0.0185512677,1.3109163 +-0.369278699,4.59043312,0.369278729,0.00262733595,0.169606656,0.0803209692,-0.177454248,-0.104977638,0.0185138863,0.523252606 +-1.02111781,4.59076548,1.02111781,0.00105322071,0.17321074,0.0817086175,-0.112810507,0.0566967875,0.018538598,1.44440222 +0.117212966,4.59085894,-0.117212966,0.000293446705,0.178188801,0.0876781791,-0.13912195,-0.0147390896,0.0185440015,0.165962681 +-0.0829979628,4.59119225,0.0829979703,0.000254534621,0.165852159,0.0864376724,-0.145492226,-0.015978016,0.0184953939,0.117479488 +-0.245653972,4.5912509,0.245653972,0.00153538596,0.171801358,0.0820870996,-0.124392368,-0.159625635,0.0184874106,0.348141789 +-0.0988013968,4.59204674,0.0988013968,0.000211418417,0.171498254,0.0852857977,-0.144474417,-0.0816869587,0.0184970833,0.139828891 +0.099349156,4.59210968,-0.099349156,0.000559617009,0.179161102,0.0896044225,-0.11377354,-0.0132566635,0.0185413547,0.142417192 +0.0686073229,4.59225559,-0.0686073229,0.000263028574,0.232975036,0.144187257,-0.0432415754,0.0368940383,0.0185391158,0.0983600095 +0.0818592459,4.59226227,-0.0818592459,0.000578867737,0.183789551,0.0964509025,-0.07691928,0.00364012783,0.0185408257,0.117353648 +-0.138079569,4.59262848,0.138079554,0.00061238365,0.177383661,0.0861392766,-0.12423481,-0.14276363,0.0184905883,0.196076602 +-0.16557689,4.5929718,0.165576905,0.000813655788,0.175614804,0.0847624317,-0.113510489,-0.159040034,0.018484192,0.234247297 +0.161909029,4.59348059,-0.161909014,0.000392396847,0.179074481,0.0871530548,-0.168383032,-0.0353275836,0.0185467992,0.229032159 +0.141979441,4.59348488,-0.141979456,0.000738612493,0.178137124,0.0868907794,-0.159844995,-0.0284575913,0.0185440518,0.202775285 +0.817138195,4.59367466,-0.817138135,0.00450234022,0.171717554,0.0814652219,-0.028681118,0.0657721683,0.0185468402,1.15636563 +-0.098646462,4.59618092,0.098646462,5.07040677e-05,0.171592832,0.0853785574,-0.138958618,-0.0811224952,0.0184936225,0.139765307 +-0.0707763284,4.59626627,0.0707763284,3.79367011e-05,0.227511629,0.143966094,-0.124246553,0.0539973378,0.0184873976,0.100356683 +-0.0828514844,4.59631824,0.0828514844,7.66680896e-05,0.166196406,0.0867034867,-0.138269812,-0.0154929254,0.0184909757,0.117435507 +0.189938545,4.5964694,-0.189938545,0.00168951729,0.179185569,0.0869309902,-0.170087889,-0.0465153791,0.0185456257,0.271009356 +-0.100705162,4.59762764,0.100705162,0.000161108517,0.172204643,0.0855612531,-0.136172965,-0.0853417218,0.0184924938,0.142586872 +-1.18357158,4.59762859,1.18357158,0.000668760273,0.177985281,0.0867788047,-0.0767709017,0.00229927525,0.0185388923,1.6739049 +-0.0989197046,4.59836721,0.098919712,0.00017881715,0.171756729,0.0854648277,-0.136115178,-0.0818507895,0.0184919089,0.140135929 +-0.16634427,4.5984025,0.16634427,0.000304835557,0.175760597,0.0848912299,-0.107114695,-0.159179956,0.0184799582,0.235381424 +-0.0830061883,4.59902477,0.0830061883,0.000263634167,0.166344836,0.0867384523,-0.13454178,-0.0161816496,0.0184887741,0.117637083 +-0.130548924,4.59908915,0.130548924,0.000331359101,0.176871136,0.0861426294,-0.121626362,-0.132872269,0.0184856765,0.185487762 +-0.168779686,4.59913635,0.168779671,0.000129940599,0.175653547,0.0848022625,-0.105161645,-0.160689443,0.0184793528,0.238898322 +-0.0707961395,4.59945059,0.0707961395,0.000114358132,0.227215067,0.143651769,-0.119925037,0.0542338416,0.0184846427,0.100366376 +-0.170314923,4.59945774,0.170314923,0.000647959649,0.175535351,0.0847203359,-0.10451901,-0.161244929,0.0184792187,0.241099924 +1.22872984,4.60109329,-1.22872984,0.000250563055,0.130919024,0.0645314306,-0.473256886,-0.0180601515,0.0185470041,1.7378304 +-0.921967626,4.60111237,0.921967566,0.00272803218,0.17588453,0.083462812,-0.0737620071,0.0347131491,0.0185270049,1.30499792 +1.21503079,4.6012125,-1.21503079,0.000552058103,0.168200046,0.0808234364,-0.332559645,-0.0136739882,0.0185462572,1.71845543 +1.19857097,4.60135412,-1.19857097,0.000430083455,0.180800647,0.0880721733,-0.107065298,-0.014575542,0.0185456108,1.69517577 +-1.22866631,4.60190773,1.22866631,0.000304479094,0.119051911,0.0598493554,-0.64571625,-0.0170110576,0.0185368266,1.73782015 +-1.21642804,4.60204077,1.21642816,0.000656614662,0.163914427,0.0780886486,-0.502256989,-0.0141094569,0.0185368434,1.72050989 +0.33923015,4.60215569,-0.33923015,0.00582449278,0.178190365,0.0859312788,-0.165324733,-0.0386440754,0.0185445603,0.483323336 +-1.20174122,4.60220051,1.20174122,0.000625742367,0.190449223,0.0941760167,-0.206667721,-0.0195888244,0.0185366422,1.69973624 +1.19158173,4.60307932,-1.19158161,0.000480894028,0.182729468,0.0892146975,-0.0333672464,-0.00225106068,0.01854413,1.68531442 +-0.960451007,4.60312843,0.960451007,0.00090658234,0.176686704,0.0838653818,-0.0853926018,0.0404705815,0.0185263921,1.35915804 +0.574693739,4.60323191,-0.574693739,0.00472234981,0.173180133,0.0826329812,-0.0995763093,0.0455328897,0.0185254216,0.814622045 +0.962529659,4.60370207,-0.962529659,0.00308466237,0.174554169,0.0827065781,-0.0237682387,0.0726868063,0.0185420085,1.36174655 +-0.207787275,4.60371828,0.207787275,0.00151331781,0.173609182,0.0833135098,-0.105349727,-0.171907723,0.018474564,0.299228191 +1.07085395,4.60393333,-1.07085395,0.00105146633,0.165077418,0.0770800114,-0.0867111832,0.0640921593,0.0185448509,1.51443481 +-0.116466492,4.60400867,0.116466492,0.000663934159,0.176029593,0.0862062424,-0.122317061,-0.116498984,0.018485751,0.16622147 +-0.982336283,4.60450888,0.982336283,0.000918017991,0.176757872,0.0838921592,-0.0884615332,0.0423963666,0.0185261723,1.38956857 +-0.171424866,4.60468674,0.171424866,0.000905391411,0.175611824,0.0848046839,-0.100524388,-0.160357401,0.0184753425,0.24253872 +-0.990336776,4.60481358,0.990336776,0.000958318647,0.176799476,0.0837901458,-0.0947621465,0.0394043922,0.0185270775,1.4008112 +-0.558368802,4.6051569,0.558368802,0.00380444899,0.169585407,0.0803324878,-0.189393491,0.0242966227,0.0185124874,0.791658759 +0.750331879,4.60555267,-0.750331879,0.00526530575,0.17108649,0.0812109262,-0.0488323346,0.0724128634,0.0185374934,1.0625242 +-0.300851822,4.60606813,0.300851822,0.00233584596,0.170619264,0.0812412277,-0.135286152,-0.141593099,0.0184889026,0.428341508 +1.01749814,4.60611057,-1.01749814,0.0014642647,0.170754895,0.0802168846,-0.0599121675,0.0731146708,0.0185416695,1.43917358 +1.1722821,4.60656309,-1.1722821,0.000604846049,0.173028588,0.0830972418,0.0272578727,0.0208529308,0.0185416806,1.65798533 +-0.945164919,4.60677242,0.945164919,0.000687995751,0.176728874,0.0839015618,-0.0792535841,0.0404043421,0.0185225755,1.3381592 +0.132701889,4.60693264,-0.132701889,0.000677241129,0.177792147,0.0870902911,-0.141308039,-0.0221914239,0.0185349472,0.189252019 +-1.12146997,4.60710192,1.12146997,0.00091539108,0.168280676,0.0801232085,-0.0804821774,0.051067587,0.0185281094,1.58610177 +1.14895487,4.60714149,-1.14895487,0.000862406101,0.158326924,0.0744590461,-0.0189287532,0.0700316504,0.0185424536,1.625067 +0.22674793,4.60831738,-0.226747915,0.000845380942,0.180078819,0.087367259,-0.165588722,-0.0492866263,0.0185382813,0.322725534 +-0.376976192,4.60846138,0.376976192,0.00417746929,0.169892475,0.0806089789,-0.178452492,-0.0848924965,0.0185013507,0.534201086 +1.01094699,4.60867167,-1.01094699,0.000329332601,0.172536701,0.0811548159,-0.0592046082,0.0718293265,0.0185397323,1.42999232 +-1.17491865,4.60898447,1.17491865,0.0005305339,0.192264259,0.0944475532,0.0248817932,0.0311062224,0.0185290873,1.66171288 +-1.11074531,4.609478,1.11074531,0.0013114172,0.170354649,0.0813013911,-0.098148793,0.0363841765,0.0185269564,1.57095563 +1.12323785,4.60961676,-1.12323785,0.000813805382,0.159628585,0.0752234533,-0.054044567,0.0380387902,0.01854188,1.58858371 +-0.36471951,4.60975266,0.36471954,0.000860232976,0.170031071,0.0807079151,-0.173361212,-0.0971364677,0.0184994154,0.517064512 +1.10974312,4.61051178,-1.10974312,0.000907374022,0.159907043,0.0753725022,-0.0752409771,0.0220858883,0.0185419098,1.56955707 +-0.235116586,4.61072063,0.235116571,0.00128189626,0.172655478,0.0828032866,-0.106239818,-0.15795514,0.0184717905,0.332985163 +1.0575254,4.61094952,-1.0575254,0.000976506621,0.169922277,0.0794461295,-0.0960249826,0.0662980154,0.0185404159,1.49567044 +-0.607007146,4.61182499,0.607007146,0.00438138982,0.169235557,0.0801155865,-0.164314926,0.0462222993,0.0185116716,0.858848333 +0.723386049,4.61228228,-0.723386049,0.00545781758,0.171328634,0.0813787431,-0.0493637808,0.0811612979,0.0185298212,1.0248543 +-0.342663944,4.61256886,0.342663944,0.00177418615,0.170203015,0.0809247941,-0.159163922,-0.110770985,0.0184925683,0.484992921 +-1.15431523,4.61309433,1.15431523,0.000858458166,0.191010252,0.0944314152,0.0188671462,0.0929182023,0.0185239688,1.63259709 +-0.722783148,4.61355877,0.722783208,0.0060093794,0.168645695,0.0796535313,-0.110477336,0.0529142618,0.0185177103,1.02522326 +0.308930367,4.6141181,-0.308930367,0.00315804943,0.179212719,0.0866700187,-0.162401512,-0.0417682901,0.0185339916,0.440101445 +1.00301135,4.61435938,-1.00301135,0.00161952444,0.172939867,0.0814139321,-0.0559932664,0.0727627054,0.0185353775,1.41866195 +1.02053344,4.61456919,-1.02053344,0.000502135721,0.172650516,0.0810980424,-0.0670674965,0.0702596605,0.0185358915,1.44339728 +0.103265494,4.61484718,-0.103265487,0.000230137186,0.179733247,0.0899256468,-0.0931693241,-0.0151068075,0.0185278952,0.14604114 +1.05787742,4.61534595,-1.05787742,0.000689845299,0.170969039,0.0799428821,-0.0987193882,0.0649798661,0.0185373463,1.49613452 +-0.107404366,4.61715031,0.107404366,0.000345714594,0.174546421,0.086319387,-0.106742911,-0.0979462266,0.0184771009,0.153170958 +0.249936193,4.6172471,-0.249936193,0.00338718621,0.180360228,0.0875043795,-0.160373122,-0.0548090413,0.0185373574,0.355467737 +0.0694217235,4.61747646,-0.0694217235,0.000129130261,0.234001413,0.145403251,-0.0104711419,0.0358167961,0.0185217652,0.098265782 +-0.154367387,4.61769009,0.154367387,0.000407941232,0.176870614,0.0858037993,-0.0897475481,-0.150108397,0.0184671804,0.218317538 +-0.518099308,4.61788797,0.518099308,0.00369037152,0.169474915,0.080359973,-0.202932432,0.0149247888,0.0185028706,0.733172417 +1.01234007,4.6179204,-1.01233995,0.00180820329,0.173137605,0.0814372748,-0.0612077042,0.0708393902,0.0185328871,1.43185925 +0.192863822,4.61800528,-0.192863822,0.00110315601,0.179482162,0.08730115,-0.156784952,-0.0458246134,0.0185334161,0.274855047 +0.0828460231,4.61841917,-0.0828460231,0.000299745763,0.185859412,0.097920686,-0.0447366796,0.00128590525,0.018523667,0.117220484 +0.100555331,4.61935616,-0.100555331,0.000228199569,0.180003941,0.0903363377,-0.084545359,-0.0151530495,0.0185248759,0.142231688 +0.0827919915,4.61956406,-0.082791999,2.38812208e-05,0.185882747,0.0979411751,-0.0434556901,0.00112715585,0.0185228642,0.117211491 +0.0693311542,4.61959314,-0.0693311468,1.68768092e-05,0.233974531,0.14542599,-0.00807484146,0.0357603244,0.0185203142,0.0982431471 +0.100534871,4.61975527,-0.100534871,7.007276e-06,0.180011153,0.0903425068,-0.0841368884,-0.0152191035,0.0185246095,0.14223066 +0.100808427,4.61978579,-0.100808434,1.93784545e-05,0.179997474,0.0903158113,-0.0845146701,-0.0152982622,0.0185246039,0.142590091 +0.100543357,4.62011242,-0.10054335,0.000272652775,0.180014774,0.0903514102,-0.0837782696,-0.0152148874,0.018524373,0.14221777 +0.0828261673,4.62058592,-0.0828261673,0.000293518911,0.185898915,0.0979751498,-0.0423588865,0.00109013601,0.0185221937,0.117200524 +0.485056609,4.62068796,-0.485056609,0.00527938083,0.175007731,0.0838386565,-0.148329318,0.0294724852,0.0185157098,0.686505735 +-1.19720256,4.62101269,1.19720256,0.000440344651,0.226855814,0.11488314,-0.096326746,0.0117322132,0.018521728,1.69320607 +-1.04804814,4.62108946,1.04804814,0.000588725612,0.176482007,0.0827739984,-0.140472561,0.0538427942,0.0185197964,1.48217428 +0.0694047138,4.62148237,-0.0694047213,0.000126656101,0.234016389,0.145549476,-0.0058102496,0.0355774164,0.0185190085,0.0982543081 +-1.05079639,4.62215757,1.05079639,0.00150649226,0.17616117,0.0826099664,-0.140391976,0.0540681109,0.0185191911,1.48606634 +-0.0993578807,4.62248373,0.0993578881,0.000326610258,0.172587156,0.0859314501,-0.103821278,-0.0821692795,0.0184728745,0.142249852 +-0.0702228546,4.62257099,0.0702228546,0.000182452262,0.226401731,0.142085373,-0.0843769684,0.0543535575,0.0184638035,0.100582972 +-0.0828633606,4.62262392,0.0828633606,0.000420249911,0.168370366,0.0877627134,-0.0990954489,-0.0193077791,0.0184689146,0.118663915 +-1.04955304,4.62368202,1.04955304,4.11381516e-05,0.176883534,0.0829452723,-0.141946331,0.0535036847,0.0185181387,1.4843123 +-1.04814613,4.62445784,1.04814613,0.00093390746,0.176850051,0.0829316974,-0.141300872,0.053561911,0.0185174439,1.48232496 +-0.481709301,4.62521458,0.481709331,0.00519739743,0.169741392,0.0805781111,-0.213858888,0.00314071774,0.0184963401,0.682527304 +1.16582298,4.62529182,-1.16582298,0.00051289663,0.224049821,0.114597052,0.0778506398,0.112970039,0.0185284633,1.6488508 +-1.04888284,4.62549829,1.04888284,0.000741828291,0.176969916,0.0829978585,-0.141808897,0.0525766239,0.0185168628,1.48336244 +-1.16843987,4.62667179,1.16843975,0.000481611525,0.254223108,0.132589579,0.0900160223,0.120055646,0.0185148902,1.65254939 +-0.142388865,4.62758827,0.142388865,0.000319958432,0.177798316,0.0865501836,-0.0830183923,-0.141949728,0.01846187,0.201428026 +0.228357419,4.62828159,-0.228357404,0.00164114824,0.180330917,0.0877040327,-0.153168231,-0.0485475808,0.0185269844,0.32473731 +-0.140903056,4.62967777,0.140903056,0.000165407546,0.1777201,0.0865802616,-0.0812612474,-0.139996588,0.0184607357,0.199382842 +1.18627071,4.63003302,-1.18627071,0.000674861774,0.193199232,0.0947911218,0.0322677009,0.0362509117,0.0185253695,1.67782474 +0.155458242,4.63077831,-0.155458257,0.00042931005,0.178985938,0.087497361,-0.140932843,-0.034045577,0.018524142,0.22053355 +-0.143147796,4.63121223,0.143147796,2.19001195e-05,0.177765191,0.0865444764,-0.0788533911,-0.142156452,0.0184586812,0.202644572 +-0.65773797,4.63168573,0.65773797,0.00329483859,0.169331372,0.0802619979,-0.152605012,0.0729651377,0.0185004789,0.931019187 +-0.141999394,4.63171339,0.141999379,5.42559155e-06,0.177753597,0.0865769684,-0.0784294158,-0.141057685,0.0184588209,0.201054662 +-0.638541937,4.63194275,0.638541937,0.00206908537,0.16937001,0.0803197399,-0.157665089,0.0737419352,0.0184993427,0.905028462 +0.109605782,4.63204861,-0.109605782,0.000185405981,0.179188311,0.08935,-0.0886461362,-0.0182602331,0.0185178649,0.155006438 +1.14604712,4.63211632,-1.14604712,0.000328343711,0.540083706,0.295486778,0.0448205695,0.136378497,0.0185277667,1.62095571 +1.08614695,4.632236,-1.08614695,0.000879183586,0.184330538,0.0897883624,-0.0662053227,-0.0158418231,0.0185272954,1.53606272 +-0.952255607,4.63271761,0.952255607,0.00223660935,0.178573489,0.0848376974,-0.0777968466,0.0491600931,0.018505102,1.34761524 +0.161949858,4.63293219,-0.161949858,0.000563065056,0.179112852,0.0875167847,-0.140342519,-0.0381447077,0.0185241215,0.229782492 +-0.142542019,4.63301325,0.142542019,1.02607883e-05,0.177788958,0.0865889862,-0.0770340785,-0.141239047,0.0184575357,0.201803803 +-0.14406772,4.63303804,0.14406772,0.000659521087,0.177789032,0.0865631402,-0.0772737563,-0.142133877,0.0184569005,0.203920305 +1.05132413,4.63319969,-1.05132413,0.00116035936,0.173264071,0.0812751651,-0.0939482599,0.0528483652,0.0185233988,1.48681903 +-1.12468243,4.63358736,1.12468243,0.000327641028,0.529877305,0.286669344,0.0198173691,-0.0311091039,0.0185119137,1.59064507 +-1.00897384,4.63383293,1.00897384,0.00174005097,0.177937374,0.0839257091,-0.113008901,0.0532733276,0.0185072571,1.42760265 +-1.1503197,4.63387299,1.15031958,0.000319778977,0.572401881,0.32729581,0.105044037,0.148294181,0.0185124688,1.62694609 +-0.139931872,4.6344595,0.139931872,0.000337257545,0.177805915,0.086707741,-0.0762555599,-0.138118804,0.0184572209,0.197955132 +1.12633431,4.63468361,-1.12633419,0.000290599623,0.537953734,0.29039678,0.0576874949,-0.0194829069,0.0185271651,1.59296441 +1.22870851,4.63506937,-1.22870851,0.00017878467,0.124623612,0.0639838949,-0.498701692,-0.0117201265,0.0185245406,1.73781371 +0.150095224,4.63516188,-0.150095224,0.000437127339,0.178765789,0.0875592604,-0.13295202,-0.0306330584,0.0185208581,0.212828919 +1.21992755,4.63520098,-1.21992755,0.000393838971,0.165860787,0.078659445,-0.400406837,-0.00458402606,0.0185237154,1.72539449 +1.20938802,4.63535881,-1.20938802,0.000347273424,0.194502786,0.0951641351,-0.203471497,0.00549194124,0.0185229518,1.71048808 +-1.11650562,4.63575745,1.11650562,0.000446797902,0.528161407,0.286726922,0.0271966327,-0.0869868845,0.0185099039,1.57910252 +1.11583698,4.63579941,-1.1158371,0.000314394041,0.537108064,0.28757441,0.0610461645,-0.10153278,0.0185269006,1.57817757 +-0.118676394,4.63608885,0.118676394,0.00049514143,0.176967174,0.0869627148,-0.0845610425,-0.113782644,0.0184603669,0.168657348 +-0.297305107,4.63653231,0.297305107,0.00287621235,0.171260923,0.0818963051,-0.12510021,-0.127949283,0.0184633341,0.422076821 +-0.355146468,4.63747835,0.355146468,0.0030963337,0.170626953,0.081365265,-0.171909541,-0.0878890678,0.0184762347,0.502973557 +1.20248485,4.63904333,-1.20248485,0.000509210222,0.197308987,0.0967908055,-0.129728958,0.0197781473,0.018520141,1.70075107 +-1.21094215,4.63940334,1.21094215,0.000374713389,0.191105485,0.0929738209,-0.363359541,0.00376736559,0.0185084213,1.71257007 +-0.0996663794,4.63951445,0.0996663719,0.000269047334,0.173406795,0.0866123959,-0.0825287402,-0.079409346,0.0184595697,0.141324893 +-1.19032025,4.63990402,1.19032025,0.000641216815,0.255260259,0.131290942,0.0181068815,0.0477382019,0.0185061395,1.68353128 +-0.0833757669,4.64007187,0.0833757669,0.00024202725,0.169420719,0.0885790363,-0.0756414682,-0.0158526693,0.0184558313,0.118198119 +1.17933822,4.64027452,-1.17933822,0.000417381292,0.278728724,0.150430426,0.159136847,0.147699282,0.0185171552,1.66801929 +0.15679124,4.64048004,-0.15679124,0.00022650577,0.179077238,0.0876130015,-0.133570343,-0.0341958068,0.0185184292,0.222764701 +-0.0710225403,4.64059734,0.0710225403,0.000103809594,0.226138547,0.141222492,-0.0619597137,0.0581777431,0.0184500813,0.100663036 +0.163493872,4.64107656,-0.163493887,0.000664031133,0.179232657,0.0876556933,-0.135407552,-0.0379791595,0.0185195152,0.231871217 +1.07659149,4.64111519,-1.07659149,0.00048712024,0.19422549,0.0957670957,-0.0628091842,-0.0310033318,0.0185211226,1.52260196 +-0.143221483,4.64120007,0.143221483,0.00053052837,0.177959397,0.0867493376,-0.0688877404,-0.140300691,0.0184509214,0.202586576 +-1.16304135,4.64144087,1.16304135,0.000193269792,0.617841542,0.382899672,0.224138469,0.212602034,0.018507028,1.64491427 +1.16173065,4.64162827,-1.16173053,0.000199768634,0.59690547,0.36955744,0.201806948,0.215258569,0.0185186844,1.64306319 +-1.22042322,4.64226246,1.22042322,0.000360298145,0.151324823,0.070033744,-0.578931212,0.00219342648,0.0185065772,1.72596955 +-1.22881901,4.64229727,1.22881889,0.000171325548,0.108058758,0.0569259226,-0.670626104,-0.00632602489,0.0185068827,1.73784328 +1.0208472,4.64351749,-1.02084708,0.00139250956,0.175853863,0.0829111934,-0.0685935095,0.0492080674,0.0185138751,1.44374216 +-0.471777618,4.64573622,0.471777618,0.00599426497,0.170058846,0.0808901638,-0.213559538,0.00945059676,0.0184819996,0.668811858 +-0.20289059,4.64580154,0.202890605,0.00162116648,0.174976677,0.0845489651,-0.0716554075,-0.160458729,0.0184439383,0.28926757 +-0.0709009543,4.64617538,0.0709009543,0.000126398343,0.225957096,0.140939727,-0.0530802645,0.0580290258,0.0184453782,0.100695603 +-0.0832585171,4.64638853,0.0832585245,0.000296467566,0.169891164,0.08887209,-0.0658419058,-0.0159928259,0.0184507184,0.11830546 +-0.0996260196,4.64666176,0.0996260196,0.000235122308,0.17358385,0.0867643058,-0.0731567964,-0.0786224231,0.0184539016,0.141636714 +0.081359379,4.6466713,-0.081359379,0.000500656548,0.185856342,0.0987955853,-0.0152957952,0.0012688986,0.0185035393,0.116318062 +0.0687572137,4.64671612,-0.0687572062,0.000215266904,0.236305922,0.149604827,0.0212641601,0.0344509818,0.018500736,0.0983037651 +-0.637412786,4.64686394,0.637412786,0.0010347988,0.169628441,0.0805248022,-0.160743818,0.0877736732,0.0184885543,0.902948618 +0.097943157,4.64689255,-0.097943157,0.000568723073,0.179995716,0.0908707976,-0.0559698232,-0.0176272802,0.018505739,0.14002417 +-0.106268898,4.64698076,0.106268883,0.00021687831,0.17477119,0.0869331807,-0.0735809579,-0.0894716084,0.0184527412,0.150520563 +-1.07169867,4.64720249,1.07169867,0.00112207152,0.198808402,0.0979655012,-0.110082142,-0.0260506682,0.0185041614,1.51562393 +0.121929675,4.64723015,-0.121929683,0.000295546313,0.178080142,0.087999098,-0.0958908498,-0.0222755671,0.0185096338,0.172457471 +0.123495109,4.64775944,-0.123495109,0.000315891928,0.178136751,0.0880001485,-0.0968999192,-0.0228504092,0.0185095537,0.17465575 +0.121440694,4.64806175,-0.121440694,0.000217403198,0.17808111,0.0880193561,-0.0947560668,-0.0222448707,0.018509075,0.171793148 +-1.0708518,4.64821482,1.0708518,5.00678907e-05,0.199777186,0.0985387564,-0.109875105,-0.0275811106,0.0185035486,1.51443076 +0.120952316,4.64823437,-0.120952323,0.000255446153,0.17814301,0.0880984515,-0.0936561152,-0.0222081039,0.0185088702,0.171078965 +0.121715322,4.64830446,-0.121715322,0.000107208369,0.17808713,0.0880186856,-0.0948918611,-0.0223334972,0.0185089838,0.172167525 +-1.18407893,4.6483984,1.18407893,0.000366206688,0.366682947,0.206805572,0.222435921,0.15445599,0.0184999425,1.67470396 +0.121402457,4.64851809,-0.121402465,5.10222089e-05,0.17808719,0.0880299807,-0.094320409,-0.0222794767,0.0185087789,0.171739548 +1.17402601,4.64938974,-1.17402589,0.000168259052,0.643286109,0.427295148,0.333900392,0.275291055,0.0185115933,1.66050541 +-1.070436,4.64941549,1.070436,0.00100556086,0.199583828,0.0984033793,-0.110305995,-0.0278656073,0.0185028296,1.51384091 +0.121729501,4.64981079,-0.121729501,0.000423878839,0.178113595,0.0880482644,-0.0936491042,-0.0226097088,0.0185079798,0.172166497 +-0.11805065,4.65049458,0.11805065,0.000233967367,0.177229702,0.0872793421,-0.0679222941,-0.112066977,0.0184499864,0.168152094 +-1.20908237,4.65143108,1.20908237,0.000325485715,0.201367021,0.0983922482,-0.337197095,0.0213843081,0.0184987281,1.70996189 +0.36655724,4.65224504,-0.36655724,0.00546243414,0.179282576,0.0866944864,-0.162347212,-0.00446802191,0.0185038783,0.520299315 +1.09789944,4.65249062,-1.09789944,0.000300132553,0.525747418,0.293682963,0.114584893,-0.160865992,0.0185145028,1.55268395 +-0.267938823,4.65289783,0.267938823,0.00275925035,0.172609448,0.0828744769,-0.110560149,-0.142045289,0.0184432231,0.383872688 +1.07186115,4.65412521,-1.07186115,0.000889006187,0.196627051,0.0970243961,-0.0606571287,-0.037030898,0.0185104962,1.51586366 +0.271910369,4.654603,-0.271910369,0.0018606279,0.181664318,0.0884348899,-0.153267831,-0.0407756716,0.018511517,0.385350287 +1.22872961,4.65488529,-1.22872961,0.000125552426,0.119244054,0.0622756071,-0.500401855,-0.00776074128,0.0185123421,1.7378099 +1.22168767,4.65498161,-1.22168767,0.000276099221,0.160444707,0.0754949898,-0.421215713,0.00050183048,0.0185115114,1.72785044 +1.21323514,4.65509796,-1.21323514,0.000392876507,0.19678688,0.0961832553,-0.240506455,0.0120676486,0.0185106583,1.71589589 +0.153096259,4.6551857,-0.153096259,0.000506428711,0.178989545,0.0877982453,-0.119507492,-0.0340372026,0.018508371,0.216678858 +-1.1788795,4.6554718,1.1788795,0.000152279681,0.70069474,0.47944206,0.437730968,0.275124043,0.0184970517,1.66735005 +-1.22877848,4.65554047,1.22877848,5.50501536e-05,0.10442774,0.0557906851,-0.679858744,-0.00291891908,0.0184969492,1.73785067 +-1.2216748,4.65558863,1.2216748,0.000113453774,0.147343934,0.0674699545,-0.606410086,0.00735201361,0.0184964258,1.72780395 +-1.21469903,4.65567255,1.21469903,9.64402789e-05,0.192829698,0.0932100639,-0.434340268,0.0144501496,0.0184958894,1.71796727 +-0.123690918,4.65644789,0.123690918,0.000447664381,0.177977622,0.0875458345,-0.0588874146,-0.11866422,0.0184449051,0.175579488 +1.09054756,4.65938091,-1.09054756,0.000165066813,0.520777345,0.295403421,0.136367559,-0.184005141,0.0185091421,1.54234099 +0.191558287,4.65976048,-0.191558301,0.00260620331,0.180315673,0.0882237479,-0.133818805,-0.0475133434,0.0185115114,0.272787273 +-0.669358432,4.66040421,0.669358432,0.00370598165,0.169914514,0.080665186,-0.150498837,0.102424994,0.0184805579,0.947285116 +-0.3895908,4.66128159,0.3895908,0.00221627671,0.17052862,0.081554696,-0.200933039,-0.0354284085,0.0184635762,0.551093221 +-1.21333063,4.66186285,1.21333075,0.000125587219,0.208895609,0.102441899,-0.388822258,0.0207481906,0.0184918493,1.71600711 +-0.109344572,4.66268587,0.109344572,0.000224421776,0.175953925,0.0874089003,-0.0532772243,-0.0945133418,0.0184400734,0.155034766 +0.798292518,4.66303778,-0.798292518,0.00691937702,0.172283292,0.0818971023,-0.0332019068,0.112385906,0.0184926912,1.13121486 +-0.611612797,4.66338825,0.611612856,0.00399923418,0.170192823,0.0809939727,-0.175820604,0.0956587791,0.0184759591,0.865799963 +-1.22880507,4.66370964,1.22880507,0.000117601128,0.103084013,0.0551807657,-0.666108191,-0.00161621382,0.018492002,1.73785067 +-1.22210634,4.66374779,1.22210634,0.000235549654,0.142959192,0.0652107149,-0.600717902,0.0100187995,0.0184914898,1.72837698 +0.317750216,4.66436481,-0.317750186,0.00333707849,0.181320727,0.0881788135,-0.15235582,-0.0277383178,0.0185011178,0.450592935 +-1.08755708,4.66500711,1.08755708,0.00037816292,0.480977118,0.26692149,0.0577295013,-0.167691588,0.0184914805,1.53805006 +-0.190711975,4.66564751,0.190711975,0.00224748091,0.175786495,0.0852543637,-0.0524844714,-0.153918803,0.0184305385,0.272227705 +-1.08694994,4.66571617,1.08694994,1.59102365e-05,0.479953676,0.266550004,0.0583579876,-0.168579757,0.0184910651,1.53719568 +-1.21575189,4.66573143,1.21575189,0.000274634775,0.184363797,0.0885612667,-0.441599339,0.0194107853,0.0184898153,1.71941066 +-0.907254457,4.66575718,0.907254577,0.00365978619,0.176018894,0.0836213455,-0.0646083206,0.074372381,0.0184826255,1.28400421 +-1.08667386,4.66657734,1.08667397,0.000343547465,0.47616601,0.264041036,0.0563136116,-0.167644411,0.0184907056,1.53680348 +0.416813552,4.66746283,-0.416813552,0.00700945314,0.177644163,0.0856802762,-0.149189368,0.015530427,0.0184862297,0.593420506 +0.0984242558,4.66856384,-0.0984242558,0.000315700803,0.180390477,0.0913309604,-0.0345284045,-0.0184829384,0.0184906796,0.139459446 +-1.01561332,4.66858387,1.01561332,0.00126456225,0.181546956,0.0858366042,-0.117821634,0.0393602252,0.0184844248,1.43713665 +0.0819387957,4.66866922,-0.0819387883,0.000278639171,0.186986461,0.0998135135,0.00941298343,-0.00155893969,0.0184881873,0.116100065 +-0.100559875,4.66895103,0.100559875,0.000282956869,0.174655795,0.0873617828,-0.0439057052,-0.0801740736,0.0184363984,0.143458858 +-0.0834896266,4.66896915,0.0834896266,0.000324037333,0.171096236,0.0894966945,-0.0334269665,-0.019899521,0.0184329115,0.119061522 +-0.0704932809,4.66914225,0.0704932809,0.000139454904,0.226299793,0.140701517,-0.0197308697,0.0573346913,0.0184263457,0.100485116 +1.08692837,4.66923237,-1.08692837,0.000300190528,0.486137152,0.272736102,0.11893177,-0.1728324,0.0185002629,1.53717279 +0.069354862,4.66934347,-0.069354862,0.000120714321,0.236752763,0.150349349,0.0461556241,0.0316471681,0.0184846707,0.0982520282 +0.144162148,4.67038488,-0.144162148,0.000307302311,0.17876114,0.0879863948,-0.101270825,-0.0333999917,0.0184975136,0.20467183 +0.960464954,4.67074633,-0.960465014,0.00145181827,0.176133677,0.083581619,-0.0145041188,0.0809658766,0.0184897631,1.35830498 +-0.498184144,4.67137432,0.498184144,0.00374860829,0.170502871,0.0813082233,-0.225154191,0.0559606999,0.018464556,0.705464482 +0.159493521,4.67171001,-0.159493521,0.000460060139,0.179328665,0.0881326869,-0.109528884,-0.0359716117,0.0184983164,0.225986212 +-0.640209794,4.67173195,0.640209794,0.00484560942,0.170259029,0.0810111463,-0.167369187,0.116833568,0.0184712037,0.906536341 +0.957418621,4.67259407,-0.957418621,0.000543331262,0.176313862,0.0837107524,-0.0117803607,0.0812848583,0.0184882004,1.35400081 +0.956370175,4.67263365,-0.956370175,0.00106214359,0.176298544,0.0837056041,-0.0116172815,0.081191726,0.0184881352,1.35252082 +0.0998353586,4.67356586,-0.0998353586,0.000130228407,0.180150539,0.0911027119,-0.0335305706,-0.0186884552,0.0184876658,0.141701683 +0.098035112,4.67376566,-0.0980351195,6.41808074e-05,0.180317134,0.091400966,-0.0295284744,-0.0183476228,0.0184866916,0.139139235 +0.0817327946,4.67380714,-0.0817327946,0.000103357183,0.186935142,0.0999186188,0.0145483315,-0.00126317784,0.0184843168,0.11599724 +0.0692641437,4.67382431,-0.0692641437,4.1050851e-05,0.236888483,0.150562763,0.0505861118,0.0318289883,0.0184813458,0.0982626602 +-0.125657871,4.673841,0.125657871,0.000410075823,0.178219154,0.0877654701,-0.0380210951,-0.117931269,0.0184307247,0.179071337 +-1.19943142,4.67411327,1.19943142,0.000304074434,0.297889769,0.157088935,-0.0678385943,0.0578916818,0.01848411,1.69631624 +0.957077384,4.67413807,-0.957077384,8.80176776e-06,0.176343247,0.0837284476,-0.0115739871,0.0814995468,0.0184869766,1.3535347 +1.20015252,4.67424965,-1.20015264,0.000333677075,0.276349247,0.145135045,0.042556487,0.0593845062,0.0184984058,1.69731128 +0.957509637,4.6745739,-0.957509637,5.55599254e-05,0.176367328,0.0837418362,-0.0115989419,0.0812516063,0.018486632,1.35413909 +0.957045019,4.6750474,-0.957045019,0.00139697373,0.176360935,0.0837418437,-0.0111956242,0.0817551389,0.0184862334,1.35347939 +-0.740189493,4.67618752,0.740189493,0.00478008948,0.169952229,0.0805724189,-0.110648602,0.117319189,0.0184737574,1.04924214 +-0.106210023,4.67624855,0.106210031,0.000293380464,0.175487757,0.087500833,-0.0375874005,-0.086532943,0.0184290968,0.150997251 +-0.0705833435,4.67679644,0.0705833435,0.000138637435,0.227327138,0.141771376,-0.00864518434,0.0577958748,0.0184207205,0.100395784 +0.147060782,4.67682171,-0.147060782,0.000168841274,0.179036081,0.0881327093,-0.0994594917,-0.0344457738,0.0184940714,0.208928347 +0.943545699,4.67687798,-0.943545699,0.00144935783,0.175882995,0.0835281685,-0.0121827135,0.0870015174,0.0184847619,1.3343761 +-0.854909301,4.67693615,0.854909301,0.00479473453,0.172961056,0.0820648894,-0.07511729,0.101726726,0.0184763931,1.20985401 +-0.0834596232,4.67712641,0.0834596157,0.000320606399,0.171992764,0.0901891291,-0.0214441977,-0.0185314287,0.0184268318,0.118751243 +-0.100332692,4.67761993,0.100332692,0.00031059701,0.17506218,0.0877482295,-0.0323252901,-0.0782674998,0.0184293762,0.142806858 +1.19513488,4.6776967,-1.19513488,0.000203414354,0.40458256,0.239803493,0.280146778,0.118603826,0.0184955038,1.69021511 +1.20383978,4.67795992,-1.20383978,0.000196004243,0.272506058,0.142584607,-0.0023207292,0.0549789146,0.0184962582,1.70251298 +0.241888732,4.67800808,-0.241888732,0.00130160362,0.182338193,0.0892186463,-0.139563605,-0.0483564623,0.0185008924,0.34222123 +0.0693668947,4.67831707,-0.0693668947,0.000121449237,0.236517787,0.150335208,0.0553972796,0.0310154334,0.0184778776,0.0982689634 +-0.768135905,4.67839336,0.768135905,0.00298622507,0.170627356,0.0809346959,-0.0952634215,0.118184477,0.0184739809,1.08883023 +-1.19466043,4.67864799,1.19466043,0.000181268668,0.444944024,0.264695257,0.196838096,0.103722438,0.0184808765,1.68956614 +0.0819328949,4.67893171,-0.0819328949,0.000279829721,0.18701762,0.0999621078,0.0199289527,-0.00242619915,0.0184804313,0.116092816 +0.0983812362,4.67893791,-0.0983812362,0.00027791367,0.18034327,0.0914053544,-0.0251225922,-0.0190198645,0.0184829514,0.139401108 +-0.984997988,4.67930889,0.984997988,0.0015793537,0.18052952,0.0856381208,-0.0882186592,0.0559981093,0.0184749179,1.39340258 +0.105958156,4.67940569,-0.105958156,0.000321444357,0.180011481,0.0907387435,-0.0384513661,-0.0218435712,0.0184850041,0.150008306 +1.20171916,4.67941046,-1.20171928,2.61164278e-05,0.286471009,0.151572511,0.0455771685,0.0623157807,0.0184953231,1.69954216 +0.514088511,4.68046713,-0.514088511,0.00377702434,0.177150369,0.0851818621,-0.130493686,0.0813778639,0.0184666067,0.728510618 +1.19095397,4.68056774,-1.19095397,8.5118445e-05,0.719540119,0.533390641,0.543007374,0.183559895,0.0184937511,1.68430233 +-1.19051766,4.68192625,1.19051766,7.75445151e-05,0.745215356,0.54041487,0.486192703,0.160370946,0.0184793714,1.68370712 +1.19690621,4.68201923,-1.19690609,3.30074508e-05,0.420091748,0.251485378,0.29657355,0.115678646,0.0184930749,1.69273531 +-0.1401048,4.68205881,0.1401048,0.000610262505,0.178608596,0.087606892,-0.029924253,-0.130811051,0.0184197724,0.198617458 +1.03243172,4.68229342,-1.03243172,0.00176606711,0.180104896,0.0852290541,-0.0796643049,0.0177464094,0.0184847806,1.46023488 +1.20329225,4.68238688,-1.20329213,6.72861715e-05,0.276122063,0.145018339,0.017120935,0.0580545366,0.0184940789,1.70176661 +-0.425827801,4.68335533,0.425827801,0.00344836293,0.170692593,0.0818074867,-0.217264324,0.00666861795,0.0184504241,0.602380395 +-0.973586798,4.68373489,0.973586738,0.00208684267,0.180714697,0.0859018788,-0.0790797621,0.0612154752,0.0184702668,1.37737286 +1.19289541,4.68419409,-1.19289541,1.4025436e-05,0.728962779,0.546217799,0.569605529,0.173935205,0.0184917562,1.68706298 +-0.158931702,4.68429184,0.158931702,0.00103854411,0.177776575,0.086900942,-0.0281279683,-0.138329938,0.0184183605,0.225246608 +0.138445348,4.68450165,-0.138445348,0.000577137806,0.178933889,0.08838851,-0.0831537098,-0.034142822,0.0184872337,0.196108416 +1.20205474,4.68469143,-1.20205474,0.000224991702,0.281307727,0.14870806,0.0429487787,0.0582081079,0.0184926987,1.70000505 +0.156959757,4.68500662,-0.156959742,0.000446464983,0.179652184,0.0884344503,-0.100796022,-0.0376989357,0.0184910446,0.222229332 +0.23315458,4.685215,-0.233154565,0.000988724059,0.182325929,0.089334324,-0.135060519,-0.0481134579,0.0184973553,0.329898 +-0.232700557,4.68533802,0.232700557,0.00241572224,0.174635068,0.0845315978,-0.066448614,-0.143167317,0.0184155218,0.332018882 +0.880751371,4.68538475,-0.880751371,0.00210737996,0.173622623,0.0825271383,-0.0159659944,0.111827761,0.0184776876,1.24563015 +1.22877181,4.68617773,-1.22877181,8.97927021e-05,0.112403631,0.0592933856,-0.473100424,-0.00198967732,0.0184950083,1.73783004 +1.22343421,4.68622494,-1.22343421,0.00019638965,0.148570135,0.0691691935,-0.422734708,0.00770157436,0.0184943173,1.73028135 +1.21702874,4.6862812,-1.21702874,0.000247929012,0.185667843,0.0905126706,-0.276675403,0.0191092994,0.0184934847,1.72122216 +-0.210882813,4.68636894,0.210882813,0.00179664721,0.175612807,0.0852491483,-0.0542566925,-0.145775437,0.0184125658,0.299529135 +0.875913918,4.68639851,-0.875913858,0.00236614468,0.173492655,0.0824672654,-0.0155355306,0.11209207,0.0184767991,1.2388593 +-0.14780502,4.6868825,0.147805035,0.000692645553,0.178427964,0.0873973593,-0.0234133601,-0.135951027,0.0184168313,0.210103825 +1.19729829,4.68695974,-1.19729829,0.000143647761,0.410088003,0.24521035,0.28803286,0.105483048,0.0184906293,1.69327819 +0.873250008,4.68707943,-0.873250008,0.00245898007,0.173479348,0.0824647099,-0.0158039108,0.112711899,0.0184762068,1.23506272 +-1.20287764,4.68712091,1.20287764,0.000231984392,0.315134346,0.167687535,-0.0948074758,0.0608125404,0.0184755661,1.70122838 +0.244213536,4.68790913,-0.244213551,0.000517675187,0.182754263,0.0895301327,-0.136310205,-0.0471264087,0.0184940454,0.345674217 +0.175303072,4.68798971,-0.175303072,0.000744529534,0.180536002,0.0887357816,-0.10927514,-0.0463998057,0.0184936393,0.248956203 +1.19333446,4.68885088,-1.19333458,6.27226182e-05,0.707705259,0.528688729,0.54887563,0.154250488,0.0184893571,1.6876725 +0.749324739,4.68914795,-0.749324679,0.00326851779,0.173099816,0.0824801698,-0.0505452268,0.140887812,0.0184709672,1.06075251 +-1.19847131,4.68938208,1.19847131,0.000164518555,0.471761644,0.285418749,0.198391706,0.089072071,0.0184739754,1.69499195 +0.876636267,4.68948269,-0.876636267,8.95997891e-06,0.173552617,0.0825026482,-0.0149891162,0.113275237,0.0184744578,1.23994422 +0.238995001,4.68960285,-0.238995001,0.0002962258,0.182648361,0.0895001441,-0.134828016,-0.0487277173,0.018494036,0.338456243 +0.878655374,4.68981218,-0.878655374,0.000448340987,0.173606992,0.0825299844,-0.015007766,0.112934902,0.0184742287,1.24269164 +0.29779309,4.69009018,-0.29779309,0.00169667508,0.183308616,0.0895299762,-0.144578665,-0.031184271,0.0184842311,0.423071206 +-1.20577693,4.69015074,1.20577693,0.000310345029,0.285746068,0.149326608,-0.160533011,0.0579012074,0.018474089,1.70530725 +0.875206232,4.69037771,-0.875206232,1.82852455e-05,0.173570022,0.0825150535,-0.0146154212,0.114145622,0.0184737239,1.23794556 +-0.934959531,4.69048643,0.934959531,0.00236076722,0.178403243,0.0848361701,-0.0686749667,0.0851481631,0.0184654612,1.32300234 +1.05784845,4.69102192,-1.05784845,0.00108660944,0.20314686,0.100398317,-0.0526315421,-0.0557624213,0.0184802432,1.49618721 +-1.1947062,4.69108629,1.1947062,7.1208422e-05,0.760726869,0.561383903,0.508419752,0.126708359,0.0184731204,1.68966675 +0.242915854,4.69363403,-0.242915869,0.00178776158,0.182883874,0.08963871,-0.134983003,-0.0468606427,0.0184905659,0.343851268 +0.877468348,4.69423246,-0.877468348,0.00130487094,0.173611268,0.0825398341,-0.0134491874,0.114643529,0.0184707288,1.24100709 +0.123312637,4.69516563,-0.123312637,0.000762618089,0.178947076,0.0889467597,-0.0573144108,-0.0290913172,0.0184773244,0.175033227 +-0.402316034,4.69540977,0.402316034,0.00367934001,0.170959547,0.082155399,-0.21502544,-0.000589317409,0.018438803,0.569828749 +0.107285023,4.69693089,-0.107285023,0.000311807817,0.179591805,0.0903367996,-0.02693207,-0.0232645888,0.0184706636,0.152732432 +1.07619524,4.69728231,-1.07619524,0.000366085849,0.38629815,0.209433317,0.0729602426,-0.143476114,0.0184749495,1.52213883 +0.870657444,4.69773436,-0.870657384,0.00266155065,0.173625544,0.0825665519,-0.0150626227,0.119476303,0.0184677746,1.23134887 +-0.835823894,4.69841671,0.835823894,0.00277899113,0.172468171,0.0818303376,-0.0769236386,0.121855393,0.0184624176,1.18368864 +-0.113077827,4.69867325,0.113077827,0.000160480704,0.177510872,0.0883003771,-0.0114526264,-0.0963566005,0.0184106361,0.160015494 +-0.0832037851,4.69938087,0.0832037851,0.000351230934,0.172897026,0.0909528211,0.00786818936,-0.0179285407,0.0184086803,0.118977405 +-0.100168616,4.69947052,0.100168616,0.000324821565,0.175127983,0.0880575851,-0.00643526483,-0.077844277,0.0184126124,0.143241897 +0.727220953,4.69953918,-0.727220953,0.00422367221,0.173415571,0.0826915801,-0.0510801226,0.152047187,0.018460799,1.02983046 +-0.0702675879,4.69954538,0.0702675879,0.000152933178,0.230019361,0.144157305,0.0232179724,0.0566558391,0.0184015036,0.100474261 +1.2185204,4.70014429,-1.2185204,0.000263296417,0.175875798,0.0853200927,-0.285904735,0.0193478726,0.0184869561,1.72342062 +1.2287128,4.70022583,-1.2287128,0.00010270541,0.110734709,0.0582750365,-0.45274061,-0.000490739651,0.0184880998,1.7378304 +1.22374439,4.7002511,-1.22374439,0.00021082774,0.143360049,0.0664738789,-0.411373734,0.00970298517,0.0184875429,1.73080325 +-0.140280187,4.7006464,0.140280187,0.000692172849,0.178726017,0.0878409371,-0.0106777977,-0.129629165,0.0184059367,0.198999688 +-0.118270598,4.70065212,0.118270598,0.00027311474,0.178359449,0.088451229,-0.00860680267,-0.104597829,0.0184089262,0.167410642 +0.0978171006,4.70079565,-0.0978171006,0.000398464181,0.180118859,0.0914459825,-0.00592777645,-0.0195396598,0.0184663367,0.139792234 +0.475244999,4.70092964,-0.475244999,0.00535325939,0.17836827,0.0860263109,-0.141850159,0.0753911585,0.0184523016,0.673028767 +0.0813279599,4.70112038,-0.0813279599,0.000490153034,0.186622664,0.0999070853,0.0417048521,-0.00303254579,0.0184624139,0.116221815 +0.0687534064,4.70115185,-0.0687534064,0.000211623614,0.235699803,0.150008038,0.0792471617,0.0309609734,0.0184588227,0.098251462 +-1.02911294,4.70130014,1.02911305,0.000884499052,0.184534669,0.0878900439,-0.112159051,0.0200412571,0.0184650868,1.45543802 +0.523851037,4.70187998,-0.523851037,0.00636460399,0.177841425,0.0856047273,-0.129824683,0.106584653,0.018449476,0.742161989 +0.506588459,4.70227718,-0.506588399,0.000633289688,0.177938387,0.0856840089,-0.134601742,0.0969912708,0.0184487496,0.718646169 +-1.03098559,4.70266914,1.03098559,0.000792558829,0.184706792,0.0879776254,-0.113647006,0.018261902,0.0184644405,1.45807588 +0.629761338,4.70302534,-0.629761338,0.00328197191,0.17536366,0.083989203,-0.0887543857,0.155378848,0.0184484441,0.890629053 +0.628396034,4.70304537,-0.628396034,0.00271877809,0.175384358,0.0840028301,-0.0890899226,0.154989511,0.0184483286,0.888698041 +-0.303430557,4.70318794,0.303430557,0.00479622837,0.172704399,0.083323665,-0.137179881,-0.0853538811,0.0184131972,0.432051778 +-0.40716517,4.70417356,0.4071652,0.00468054367,0.171349838,0.0824316218,-0.220656067,0.010270711,0.018433284,0.576688647 +-0.981751323,4.70490456,0.981751323,0.0018249515,0.181763887,0.08659067,-0.0729204416,0.0614971668,0.0184561666,1.38867021 +0.629360557,4.70511198,-0.629360557,1.31370484e-06,0.175429121,0.0840305388,-0.088881284,0.157135472,0.018446764,0.890103519 +0.629892111,4.70512486,-0.629892051,0.0029846183,0.175420746,0.084025085,-0.0887742266,0.157130167,0.018446805,0.890827715 +-0.915048718,4.70514822,0.915048718,0.00282610068,0.177143425,0.0842735097,-0.0600546226,0.10262835,0.018454561,1.29537559 +1.21442604,4.70515299,-1.21442604,0.000312987744,0.19509995,0.0972780734,-0.201288849,0.0219442807,0.0184837617,1.71759343 +0.629055142,4.70523167,-0.629055142,1.87005662e-06,0.175439015,0.0840371773,-0.0889761895,0.157155871,0.0184466671,0.889674604 +0.626446605,4.70528126,-0.626446545,0.0032129176,0.175509036,0.0840825066,-0.0900869742,0.156011343,0.0184466094,0.885938346 +-0.116496347,4.70539713,0.116496347,1.45333088e-05,0.178254724,0.0884987563,-0.00376733486,-0.101974167,0.0184055492,0.165133119 +0.629109561,4.70572805,-0.629109561,0.000440408243,0.175455078,0.0840475783,-0.0890777037,0.157590419,0.0184462555,0.889741242 +0.629575551,4.70585871,-0.629575491,0.00805898942,0.175444975,0.084040761,-0.0888747945,0.157730937,0.0184461772,0.890386045 +-0.11431928,4.70590067,0.114319272,0.000218984351,0.177772164,0.0884294361,-0.00329802954,-0.0980740339,0.0184048302,0.161845356 +-1.02707183,4.70590544,1.02707195,0.000815641659,0.184665322,0.0880178735,-0.108254343,0.0222944021,0.018461518,1.45253336 +0.985543013,4.70606995,-0.985542953,0.00089754205,0.177310467,0.0843354166,-0.00943836384,0.0570472442,0.0184600297,1.39376831 +0.164764076,4.70678616,-0.164764076,0.000770727522,0.180256471,0.0888457224,-0.0902444497,-0.0414986089,0.0184783209,0.233546883 +0.138501585,4.70687675,-0.138501585,0.000615401892,0.179248899,0.0887920856,-0.0645462796,-0.0365403444,0.0184723809,0.196506143 +-1.05631614,4.70689583,1.05631602,0.00103420008,0.200020552,0.0987412632,-0.092853047,-0.0384006985,0.0184677932,1.4938972 +-0.117742687,4.70808172,0.117742687,0.000473487191,0.178396404,0.0885585025,-0.00085808197,-0.103445336,0.0184034761,0.166705117 +-1.22389615,4.70836353,1.22389603,0.000253325386,0.120220169,0.0537353009,-0.563925505,0.0186845288,0.0184654482,1.73113549 +-1.22861528,4.70838928,1.22861516,0.000118488715,0.0983374938,0.0529776327,-0.585413694,0.00137827534,0.0184657369,1.73781025 +-1.21823263,4.70887661,1.21823263,0.000323642395,0.150245234,0.070308052,-0.453931957,0.0367931202,0.0184647981,1.72312999 +-1.03111172,4.70921946,1.03111172,0.000680815894,0.184337124,0.0879172534,-0.107872978,0.0195041522,0.0184596237,1.4582448 +0.124862581,4.70953035,-0.124862581,0.000350549759,0.178960681,0.0890138596,-0.0477242991,-0.0299368296,0.0184673071,0.177449971 +-1.07487154,4.70953369,1.07487154,0.000348914677,0.313565582,0.164755851,-0.00679446617,-0.117012322,0.0184704103,1.5201391 +0.894173086,4.71006107,-0.894173145,0.00177380431,0.174361855,0.0829616338,-0.00461952854,0.112625822,0.01845764,1.2645582 +-0.0703870133,4.71042633,0.0703870058,0.00014950418,0.232446402,0.146112517,0.0378783382,0.0570021197,0.0183925815,0.100459114 +-0.0828594416,4.71048975,0.0828594416,0.000348611997,0.174246609,0.0921000466,0.0239374191,-0.0146339824,0.0183995906,0.118272536 +-0.0992396325,4.7106657,0.0992396325,0.000319837738,0.175452724,0.0885340199,0.0094112847,-0.0732290596,0.0184030049,0.141664088 +-0.811163723,4.71116161,0.811163664,0.00455240346,0.172080055,0.0817053989,-0.0869697034,0.138811767,0.0184530634,1.14792478 +-1.05648303,4.71161604,1.05648303,0.000765586738,0.196983799,0.0970478877,-0.0912522078,-0.0363669395,0.0184643921,1.49412405 +-0.176622674,4.71172762,0.176622674,0.000593196135,0.178077444,0.0871938989,-0.0131104961,-0.142026111,0.0183963254,0.249839053 +0.322043896,4.71191454,-0.322043896,0.00366216805,0.183419675,0.0895945653,-0.146984965,-0.0103914272,0.0184650403,0.456822932 +-0.857167184,4.71270657,0.857167244,0.00264643249,0.173683882,0.0825013146,-0.0720247775,0.129093498,0.0184510648,1.21334422 +-1.07504487,4.71314764,1.07504487,0.00026208465,0.298684686,0.155646831,-0.0126910917,-0.114158534,0.0184680279,1.52037489 +-0.184904888,4.7148633,0.184904873,0.000374614057,0.177856609,0.0870208144,-0.0134167615,-0.145035535,0.0183934085,0.261752844 +-1.21285355,4.71601105,1.21285343,0.000169165927,0.206505477,0.102081329,-0.293424994,0.0429404974,0.0184599366,1.71524596 +0.201368943,4.71667671,-0.201368943,0.000914694625,0.18184422,0.0894487947,-0.109926805,-0.0486979261,0.0184779298,0.285038441 +-0.188543335,4.71679592,0.188543335,0.000633405405,0.1777592,0.0869617537,-0.0149978586,-0.143933937,0.0183915514,0.266763061 +-0.538704872,4.71683693,0.538704872,0.00951475091,0.171950907,0.0824339539,-0.230703428,0.121788219,0.0184327941,0.765817761 +-0.183380678,4.71697807,0.183380678,9.6155316e-05,0.177927509,0.0871018171,-0.0110414494,-0.143606678,0.0183922071,0.25963527 +0.376553953,4.71700525,-0.376553953,0.00574131636,0.182016253,0.0885265842,-0.155749261,0.021459857,0.018454209,0.534711719 +0.291211307,4.7170949,-0.291211307,0.00346949697,0.183915704,0.0900441259,-0.138243556,-0.0300655644,0.0184678901,0.413807184 +-0.26297754,4.71750355,0.26297754,0.00249014213,0.174439773,0.0846371576,-0.0914615691,-0.101994947,0.0183974039,0.373642832 +1.03240216,4.71781969,-1.03240216,0.001287458,0.176801756,0.0840853825,-0.0481850877,0.0135739604,0.0184508935,1.46012568 +1.07667065,4.7179122,-1.07667065,0.000305259164,0.295691639,0.15231289,0.0198755804,-0.123929203,0.0184545927,1.52273548 +1.05807555,4.71802616,-1.05807555,0.000906216796,0.183198243,0.0890566409,-0.052692838,-0.0476976633,0.0184538066,1.49643612 +-0.184629142,4.71865463,0.184629142,5.54204926e-05,0.177958027,0.0871205255,-0.0103427134,-0.14368166,0.0183905903,0.261435181 +0.998735249,4.71935797,-0.998735249,0.000939896796,0.177782729,0.0846151784,-0.00989885535,0.0456828028,0.0184489004,1.41242623 +-0.22499904,4.71939182,0.22499904,0.00324732834,0.175888106,0.0856854171,-0.049336601,-0.136078984,0.0183891915,0.320539594 +0.998119175,4.71968985,-0.998119175,0.000793465471,0.177724004,0.0845930204,-0.00875772815,0.0463322178,0.0184485242,1.4115591 +0.192680627,4.71993923,-0.192680627,0.00055132946,0.181696281,0.0894764513,-0.102997765,-0.0480207875,0.0184754729,0.272641808 +0.998192847,4.71994448,-0.998192906,1.72741721e-07,0.177745089,0.0846059024,-0.00873835944,0.0461107902,0.0184483211,1.41166353 +0.998027325,4.71999025,-0.998027325,1.86050966e-06,0.177730933,0.0845991895,-0.0085485708,0.0462676585,0.0184482709,1.41143274 +0.998005688,4.72018957,-0.998005688,1.64607336e-05,0.17772834,0.0845990926,-0.0083945496,0.0462807342,0.0184480958,1.41139877 +-0.837990403,4.72020149,0.837990403,0.000479445705,0.173071206,0.082233876,-0.0738135129,0.142909467,0.0184466243,1.18700838 +-0.339734614,4.72026062,0.339734584,0.00562978582,0.172394201,0.083244957,-0.171351478,-0.0543526486,0.0184077807,0.484975874 +0.998407125,4.72035027,-0.998407066,0.000225795171,0.177700788,0.0845892727,-0.00856822357,0.0457409099,0.0184479486,1.41196334 +0.998145461,4.72088099,-0.998145461,0.000469059916,0.177719951,0.0846030787,-0.00771674281,0.0461595356,0.0184474476,1.4115926 +0.997653067,4.72115421,-0.997653067,0.000870541495,0.177718803,0.0845975354,-0.00769068208,0.046836827,0.0184472501,1.41089654 +0.994550765,4.72135687,-0.994550765,0.000947008666,0.177637637,0.0845599696,-0.00740704546,0.049340114,0.0184472129,1.40650773 +-0.185632229,4.72196579,0.185632229,0.00103094918,0.178066775,0.0872034431,-0.00948655326,-0.14271152,0.018388005,0.262711167 +0.102418095,4.72477055,-0.102418087,0.000194663095,0.180128694,0.0914204791,0.00714414101,-0.0260475855,0.018448716,0.144959494 +0.0692143515,4.72549486,-0.0692143515,0.000131429144,0.235611379,0.14813149,0.108596906,0.0300645158,0.0184364244,0.0980732366 +0.154512167,4.72579098,-0.154512167,0.00117141963,0.180100471,0.0890212059,-0.0690536052,-0.0411459208,0.0184635725,0.220450625 +0.0826357156,4.72617197,-0.0826357156,0.00030425252,0.187078744,0.100059539,0.0658121705,-0.00652521802,0.018441258,0.11704874 +0.138484269,4.72635984,-0.138484269,0.000413835922,0.179497346,0.089130953,-0.0482092127,-0.0390168428,0.0184577443,0.197134167 +0.100355044,4.72636604,-0.100355044,0.000212762694,0.1802513,0.0916743875,0.0123995543,-0.0253728721,0.018447198,0.142107144 +0.405064255,4.72657776,-0.405064255,0.00564078195,0.180534974,0.087566644,-0.163231567,0.0448951349,0.0184409842,0.577212691 +1.19731116,4.72815943,-1.19731116,0.000106210398,0.53136611,0.389732003,0.399723381,0.0070689572,0.0184692983,1.69337618 +1.20476842,4.72857285,-1.20476842,0.000502499111,0.24488835,0.13044849,0.0390114859,0.0345955603,0.0184701048,1.70392442 +0.204468936,4.72859764,-0.204468936,0.000377240911,0.182236016,0.0897130519,-0.105228215,-0.0497046337,0.0184696689,0.289878607 +1.20073605,4.72871971,-1.20073605,0.00024392191,0.329657584,0.197340757,0.230836734,0.0363971591,0.0184698328,1.69822025 +0.100349732,4.7288475,-0.100349732,4.00834579e-05,0.18024081,0.0916791484,0.0145559674,-0.0256098062,0.0184453279,0.14225997 +-1.20484865,4.72897291,1.20484853,0.000223385534,0.216048434,0.111033335,-0.138200134,0.0526969321,0.0184518471,1.70391726 +0.0825823694,4.72918606,-0.082582362,7.67281526e-05,0.187049165,0.100039467,0.0686647892,-0.00657660561,0.0184386689,0.117132962 +0.102153726,4.72920561,-0.102153726,0.000283728616,0.18016848,0.0915105119,0.0114835594,-0.0261610318,0.01844538,0.144624561 +0.0691085085,4.72926664,-0.0691085011,3.92559414e-05,0.235570386,0.148004055,0.112511814,0.0302870069,0.0184329841,0.0980915874 +0.717381477,4.73012543,-0.717381477,0.00434683962,0.17436105,0.0833014175,-0.0539664999,0.177070498,0.0184350088,1.01621425 +-1.22416401,4.73017168,1.22416401,0.000122807076,0.117604718,0.0530689992,-0.514509916,0.0151670417,0.0184527878,1.73129106 +-1.22873986,4.7302351,1.22873986,5.78218387e-05,0.103036858,0.0554236807,-0.530095518,0.000829245662,0.0184528567,1.73776269 +-1.21896172,4.73100376,1.21896172,0.000218929577,0.139195651,0.0647321045,-0.424403757,0.0314562842,0.0184519943,1.72391462 +-1.19630837,4.73134708,1.19630837,6.03748413e-05,0.45829469,0.319578886,0.212463588,0.032905329,0.0184485782,1.69183743 +-0.961794078,4.73141813,0.961794138,0.00120198447,0.180556968,0.0860649422,-0.0558181517,0.0952643678,0.0184367839,1.36035812 +0.118860602,4.73178291,-0.11886061,0.000434555812,0.179103196,0.0894714892,-0.0226608831,-0.0297206342,0.0184492413,0.169770136 +0.197733894,4.73201799,-0.197733879,0.000539900619,0.182108551,0.0897578299,-0.0985899642,-0.050032407,0.018468529,0.280231416 +0.100538597,4.73204803,-0.100538597,0.000344563829,0.18025662,0.0917200521,0.0168993305,-0.0261002406,0.0184426699,0.14232555 +-1.20010126,4.73212099,1.20010126,0.000143571349,0.285941035,0.164042711,0.0522703826,0.0538808182,0.0184493549,1.69720137 +0.0827589035,4.73310661,-0.0827589035,0.000317819067,0.187193796,0.100168414,0.0724311545,-0.00693317642,0.0184352677,0.117178723 +-0.0707369298,4.73313951,0.0707369298,0.000118788914,0.2352072,0.148494437,0.06571652,0.0593102202,0.0183736403,0.100144006 +-0.083414495,4.73344755,0.083414495,0.000271491037,0.174714386,0.0926150456,0.0525890924,-0.0119574806,0.0183813591,0.118084051 +-0.0997739285,4.73371077,0.0997739285,0.000273216865,0.175928578,0.08880537,0.0365270711,-0.0679258555,0.0183839109,0.141230986 +-0.15765059,4.7337842,0.157650605,0.000501954171,0.179693714,0.0885157436,0.0170690194,-0.134921029,0.0183803998,0.222960427 +0.210711941,4.73395872,-0.210711941,0.00109180156,0.182587415,0.0899134204,-0.10587582,-0.0469512939,0.018464921,0.298484057 +0.0692740679,4.73416805,-0.0692740679,0.000136870425,0.235763565,0.148106486,0.118488818,0.0299919602,0.0184284132,0.0981114358 +0.203182906,4.7344017,-0.203182906,8.23097871e-05,0.182361856,0.0898440853,-0.102578394,-0.0498396717,0.0184658654,0.288342625 +-0.130000472,4.73510027,0.130000472,0.000967375527,0.17896235,0.0885868967,0.0245037396,-0.114095226,0.0183818508,0.18536666 +-0.158081472,4.73530865,0.158081457,4.29290776e-05,0.179722801,0.0885441527,0.0183643773,-0.134935558,0.0183792487,0.223605111 +0.498856068,4.73544693,-0.498856068,0.00486333296,0.178944215,0.0863924921,-0.152813286,0.116685882,0.0184206683,0.706274986 +-0.15823032,4.73559618,0.15823032,2.21043483e-05,0.179730475,0.0885494277,0.0185205005,-0.134932533,0.0183789823,0.223820478 +-1.19648707,4.73561668,1.19648719,7.23545054e-06,0.426180273,0.295092136,0.179588467,0.0226734877,0.0184459686,1.69210005 +-0.157729626,4.73565388,0.157729611,0.000275777362,0.179723844,0.0885553733,0.0188359376,-0.134550765,0.0183790382,0.223086804 +-0.15848057,4.73605251,0.158480585,0.000508829136,0.179741159,0.0885572881,0.0185517445,-0.134812132,0.0183786172,0.224153116 +-0.158124,4.73608494,0.158124015,0.000352584058,0.1797373,0.0885595381,0.0189687964,-0.134719342,0.0183786321,0.223654211 +-0.101925887,4.73615837,0.101925887,0.000303315319,0.176344439,0.0889233425,0.0395175144,-0.0710896105,0.0183822867,0.144286796 +-1.20598197,4.73637581,1.20598197,7.31122491e-05,0.192411363,0.0976645872,-0.164830595,0.0498158783,0.0184477549,1.70553029 +-1.2002784,4.73660612,1.20027828,1.9691397e-05,0.266266108,0.151777476,0.0361343063,0.0500987619,0.0184467714,1.69746161 +-1.19616473,4.73662376,1.19616461,7.10264576e-05,0.419299215,0.289412618,0.17786254,0.0212506168,0.0184452366,1.69164038 +-0.0994775966,4.73688364,0.0994775966,4.36206828e-05,0.175945282,0.0888456553,0.0404336043,-0.0669655725,0.0183815025,0.140968919 +-0.0832228586,4.73701429,0.0832228586,7.07078871e-05,0.174880788,0.0927965194,0.0574269965,-0.0114912139,0.0183783788,0.11795453 +-0.070619747,4.73705864,0.0706197545,3.33719436e-05,0.235717431,0.148987994,0.0712068006,0.0590800531,0.0183701105,0.100106619 +-1.20522726,4.73760319,1.20522738,2.08340844e-05,0.195638835,0.0997508392,-0.14751251,0.051061675,0.0184469633,1.7044729 +-1.19998729,4.73771286,1.19998717,0.000172160318,0.263174862,0.149625495,0.0360440277,0.049257867,0.0184459835,1.6970464 +-0.475215256,4.73872185,0.475215286,0.00450846693,0.1726484,0.0831684321,-0.262883306,0.100860983,0.0184150375,0.672473073 +-0.588576436,4.73983717,0.588576436,0.00369293196,0.172225296,0.0826920047,-0.218996584,0.172198132,0.0184205659,0.83354187 +-0.0996393859,4.73987389,0.0996393934,0.000208331621,0.175940275,0.0888820067,0.043803405,-0.0671132952,0.0183790512,0.141032547 +-1.20473158,4.7401042,1.20473158,0.000167516118,0.192435235,0.0978042781,-0.145351946,0.0495141372,0.0184452012,1.70376456 +-1.20668137,4.74037266,1.20668137,0.000217704976,0.186699986,0.0941867232,-0.172364995,0.0463208556,0.0184453521,1.70651138 +-0.0833647251,4.74040556,0.0833647251,0.00027171601,0.174886838,0.092816636,0.0615891442,-0.0112874396,0.0183755867,0.118003547 +1.07661247,4.74048805,-1.07661247,0.000289830321,0.190232128,0.091032289,-0.0391919613,-0.105691724,0.0184322149,1.52274537 +-0.103125662,4.74067068,0.103125669,0.00019862238,0.176587239,0.0890100896,0.0432322025,-0.0728927627,0.0183786843,0.145913094 +-0.0707504079,4.74079466,0.0707504079,0.000118474956,0.235931486,0.149018973,0.0757338405,0.0592242703,0.0183669385,0.100152604 +-1.21855474,4.74154282,1.21855474,0.000155498914,0.133983329,0.0620705001,-0.400651067,0.0259690974,0.0184455011,1.723315 +-0.748012781,4.74178028,0.748012841,0.00643161125,0.170823455,0.0813248381,-0.125783145,0.183776885,0.0184294507,1.05914676 +-0.842449784,4.74285603,0.842449784,0.00488240551,0.173669919,0.082634002,-0.0699296743,0.162180319,0.0184308924,1.19249833 +0.206946373,4.74321079,-0.206946373,0.000619316241,0.182670459,0.0900621712,-0.103283957,-0.0480983295,0.0184580795,0.293167144 +-1.22395682,4.74372959,1.22395682,0.000115905306,0.11563132,0.0524973199,-0.485413194,0.0113814911,0.0184442829,1.73096275 +-1.22876537,4.74379826,1.22876549,5.41657319e-05,0.10569717,0.0567915887,-0.50427407,-0.0028669457,0.0184442457,1.73776329 +-0.936958313,4.74380255,0.936958313,0.00188338966,0.179167405,0.0854631215,-0.0455870703,0.115367107,0.0184280481,1.3253268 +1.22350526,4.74386501,-1.22350514,0.000191350278,0.133683443,0.0618482754,-0.34400332,0.011307437,0.0184613783,1.73038602 +1.22870243,4.74390507,-1.22870231,9.44354906e-05,0.11210759,0.0587698407,-0.378542602,-0.000561099558,0.0184616782,1.73773646 +1.21821952,4.74402761,-1.21821964,0.000145237907,0.155668452,0.0743048787,-0.237745434,0.0129568372,0.018461002,1.7229147 +1.21575046,4.74555397,-1.21575046,0.000339287188,0.168003961,0.0816957504,-0.188159361,0.0147486459,0.0184599571,1.71940327 +0.92304647,4.7459259,-0.923046529,0.00012483052,0.175744459,0.0837438703,0.0135712614,0.11194697,0.0184282623,1.30559361 +0.927089393,4.74607658,-0.927089393,0.00325074769,0.175873935,0.0838139951,0.014862569,0.109669052,0.0184280258,1.31121719 +-1.07778859,4.74671507,1.07778859,0.000475072244,0.165737197,0.0785485208,-0.0638636798,-0.0940271765,0.018448174,1.52441406 +-0.318608433,4.74760151,0.318608433,0.00346747227,0.173739493,0.0842704773,-0.156367615,-0.0508017875,0.0183835737,0.455731511 +1.058164,4.74775934,-1.058164,0.000860810105,0.161098897,0.076760672,-0.0499904826,-0.0441279635,0.0184250865,1.49665189 +0.13640137,4.74789715,-0.136401385,0.000780042494,0.179506779,0.089380078,-0.0321813226,-0.0402989909,0.0184416976,0.193397939 +0.196940601,4.74889612,-0.196940601,0.000940793368,0.182475507,0.0901197419,-0.0905070156,-0.052150704,0.0184549298,0.278705746 +1.22321665,4.7519455,-1.22321677,0.000258035376,0.132832542,0.061511077,-0.331532508,0.0111420611,0.0184558034,1.72997105 +1.22870207,4.75201035,-1.22870195,0.00012122422,0.112632722,0.0589831173,-0.367530733,-0.00119154074,0.0184560623,1.73772895 +1.21713674,4.75203562,-1.21713674,0.00035649637,0.153600484,0.0732009634,-0.222675651,0.0115870573,0.0184555072,1.72137308 +0.124679975,4.75216007,-0.124679968,0.000347192312,0.179273874,0.0895918459,-0.0162710343,-0.0348570347,0.0184358805,0.177012563 +0.918854952,4.75315714,-0.918854952,0.00134938548,0.17572163,0.0837480053,0.0138926851,0.117716283,0.0184224341,1.29953647 +-1.01793766,4.75321007,1.01793766,0.00133607187,0.180722445,0.0866489559,-0.0606718771,0.048399426,0.0184254609,1.43977284 +0.75902921,4.75372887,-0.75902921,0.00376172317,0.174069986,0.0830966011,-0.0388672464,0.176356912,0.0184205882,1.07399273 +-1.05946565,4.75506306,1.05946577,0.00138907973,0.165915951,0.0799786896,-0.0792412162,-0.0170500949,0.0184343625,1.49849892 +-0.125383556,4.75519085,0.125383556,0.000386269938,0.179103926,0.0890869275,0.0460089929,-0.106871158,0.0183662586,0.178046063 +-0.985144377,4.75541401,0.985144377,0.00146942004,0.18212536,0.0871242657,-0.0464911908,0.0856830627,0.0184200685,1.39353704 +-0.139214858,4.75674295,0.139214858,0.000412405876,0.180005342,0.0892230496,0.04447826,-0.119947448,0.0183653124,0.197578073 +1.08197761,4.75685787,-1.08197761,0.000349819427,0.135776684,0.0612625778,-0.0719328001,-0.102657013,0.0184176359,1.53030396 +0.0822867155,4.75790596,-0.0822867155,0.000484183314,0.186389893,0.0999228582,0.0940577984,-0.00713897077,0.0184118729,0.117845684 +0.100033045,4.75791645,-0.100033045,0.000471791544,0.180029064,0.091799289,0.0359784663,-0.0276892297,0.0184201114,0.143292218 +0.0687717348,4.75798035,-0.0687717348,0.00020318068,0.236032963,0.147932157,0.145618498,0.0310859643,0.0184049234,0.0984776616 +1.03280926,4.75800037,-1.03280926,0.00136706128,0.17302382,0.0827832446,-0.00925043505,0.00269758678,0.0184125304,1.4607898 +0.926991224,4.75848198,-0.926991284,0.00112879765,0.17592217,0.0838603824,0.0200573429,0.113711931,0.0184173137,1.31103885 +0.129366055,4.75927877,-0.129366055,0.000114703129,0.179441929,0.0895842984,-0.0163675807,-0.037189234,0.0184319895,0.184358746 +0.117589064,4.75964069,-0.117589056,0.000408095191,0.179634094,0.0904507339,0.00369106838,-0.0339635313,0.0184277594,0.166893363 +0.16837354,4.76072598,-0.168373555,0.00130895257,0.181527227,0.0899812803,-0.0639087558,-0.0484181494,0.0184389763,0.238792032 +-0.621864438,4.76113319,0.621864438,0.00674275169,0.172592908,0.0829501376,-0.214224011,0.209882408,0.0184067842,0.881038427 +-1.21677983,4.76138353,1.21677983,0.000385666761,0.125223607,0.057630308,-0.348748505,0.0135646965,0.018432688,1.72092104 +-1.22326875,4.76159477,1.22326875,0.000261148758,0.113102287,0.0517136529,-0.450564384,0.00467990991,0.0184325725,1.73009288 +-1.22869229,4.76169205,1.22869229,0.000118187716,0.108205065,0.0579994991,-0.479613841,-0.0104763284,0.018432375,1.7377634 +-0.11502108,4.76217365,0.11502108,0.000328306283,0.178794995,0.0896202922,0.0623662844,-0.0926130563,0.0183629058,0.16360271 +-0.0994072258,4.76343536,0.0994072258,0.000446982885,0.175897568,0.0891052783,0.070342809,-0.0667288601,0.0183608402,0.142010868 +-0.0830110535,4.76361132,0.0830110535,0.000434708665,0.175375894,0.0932849348,0.0926775932,-0.0124027822,0.0183559414,0.118567988 +-0.0704164058,4.7636323,0.0704164058,0.00018535534,0.236300468,0.148627385,0.108579829,0.0561886169,0.0183465611,0.100564793 +0.797742188,4.76418686,-0.797742188,0.00536392489,0.173929155,0.0829622075,-0.0214818679,0.172155708,0.0184133817,1.12937605 +1.18762112,4.7658534,-1.18762112,7.31283872e-05,0.281617552,0.177402392,0.232529774,-0.0782188624,0.0184447281,1.6795615 +-1.03420138,4.76642895,1.03420138,0.00179367873,0.17941165,0.0862324312,-0.059244588,0.0371218808,0.0184179265,1.46276653 +-0.205044895,4.76675224,0.205044895,0.00169535796,0.178346992,0.08764752,-0.00542055164,-0.123599753,0.0183566287,0.293302983 +1.18719912,4.76711369,-1.18719912,7.82005554e-06,0.273077637,0.170699432,0.226094902,-0.0803135708,0.0184438471,1.67896867 +0.124921389,4.7679224,-0.124921396,0.000380247395,0.17936787,0.0898070782,-0.00449864054,-0.0359426774,0.0184238236,0.177423716 +0.251260281,4.76864719,-0.251260281,0.00358201284,0.184244156,0.0907319188,-0.117507041,-0.0378057063,0.0184311159,0.357621253 +1.18580437,4.76872349,-1.18580437,0.000104120816,0.2632204,0.163000792,0.216351122,-0.0831057504,0.0184422284,1.67698598 +-0.121572554,4.76904297,0.121572554,0.0003447817,0.178926706,0.0892549306,0.0619596094,-0.0999502465,0.0183564387,0.172991455 +1.06476283,4.76938534,-1.06476283,0.00102769432,0.136950761,0.0635586753,-0.0657479167,-0.0293968022,0.0184049048,1.50595593 +-0.145668685,4.77016211,0.145668685,0.000866974704,0.180366069,0.089425005,0.0515630841,-0.121675745,0.018353615,0.207037076 +1.19225538,4.77018023,-1.19225526,0.000168063678,0.227989972,0.122671187,0.167443201,-0.0316487774,0.018441774,1.68611455 +1.0182941,4.77059793,-1.0182941,0.00113118673,0.174426317,0.08354491,0.0205297992,0.02404093,0.0184005555,1.44020915 +-0.136769414,4.77088261,0.136769414,0.000251445075,0.179917783,0.0894110501,0.0604235455,-0.114286378,0.0183553044,0.194454908 +1.19190347,4.77150583,-1.19190359,1.81686919e-05,0.224569559,0.120280012,0.164645895,-0.0331907719,0.0184408221,1.6856209 +-0.881194472,4.77240133,0.881194472,0.00276260776,0.175488025,0.0836067349,-0.0524946451,0.167141542,0.018409865,1.24642205 +-1.20644712,4.77250957,1.20644724,0.000364190986,0.133024454,0.0623196773,-0.230158731,0.0144130588,0.0184233189,1.70623493 +-0.910690546,4.77257109,0.910690606,0.00179200887,0.17727454,0.0845354199,-0.0454627946,0.156793207,0.018408915,1.28816259 +-0.93933481,4.77305794,0.939334869,0.00118195638,0.179486692,0.0857153907,-0.0392467938,0.134297684,0.0184072275,1.32919192 +-1.00742197,4.77343273,1.00742197,0.000591546705,0.180333674,0.0865598023,-0.0445880219,0.0701911673,0.0184098054,1.42503285 +1.19067526,4.77362776,-1.19067526,0.000252305676,0.219073087,0.116616704,0.15785414,-0.0352775753,0.0184387229,1.68387425 +-1.0909903,4.77418661,1.0909903,0.000318138133,0.0898554251,0.0387719721,-0.0842644423,-0.0877755284,0.0184237715,1.54301 +-0.962337613,4.77447653,0.962337613,0.00200803136,0.180714205,0.0864298791,-0.0329389125,0.11815919,0.0184059627,1.36117172 +0.136175156,4.77449942,-0.136175156,0.0005738365,0.179718614,0.0897487551,-0.0151576251,-0.0416153073,0.0184212476,0.192923635 +1.19782233,4.77538967,-1.19782233,0.00026628538,0.191227689,0.096253261,0.037398193,-0.00969615951,0.0184376407,1.69398665 +-1.18206966,4.7760067,1.18206966,0.000210614788,0.16498974,0.0942234397,0.114215195,-0.0349032879,0.0184158124,1.67186046 +-0.713953912,4.77617216,0.713953912,0.00690716971,0.171573505,0.0820276141,-0.149427801,0.223335639,0.0184040945,1.01189375 +0.0693918616,4.77633858,-0.0693918616,0.000139285316,0.235822558,0.148813516,0.168283507,0.0288988873,0.0183880944,0.0985544473 +1.19798732,4.77650166,-1.19798744,0.000205064673,0.189024642,0.0948994905,0.0326267779,-0.010268054,0.0184368696,1.69422138 +1.19754684,4.77676964,-1.19754684,6.35328033e-05,0.189599305,0.0952511206,0.0373349562,-0.0107346941,0.0184366237,1.69360065 +0.0828603208,4.77686167,-0.0828603208,0.00032261727,0.186843455,0.100643843,0.113530621,-0.0101664448,0.0183950029,0.117674574 +0.100481689,4.77765751,-0.100481689,0.000373823888,0.180345789,0.0923081413,0.0524047054,-0.0316829272,0.0184032805,0.142692119 +1.19650245,4.77939177,-1.19650233,0.000345093431,0.187309191,0.0938064232,0.0364789553,-0.0119412579,0.0184342153,1.69211459 +1.00367916,4.77971697,-1.00367916,0.00128763239,0.176711142,0.0846601054,0.0465297513,0.0451326929,0.0183927659,1.41982031 +-0.107721254,4.78077078,0.107721254,0.000228781864,0.177734733,0.0897461921,0.0863882154,-0.0772296488,0.0183470398,0.152540922 +0.55517447,4.78080606,-0.55517447,0.00449858001,0.179112837,0.086444594,-0.142897606,0.191614658,0.0183786377,0.785263896 +1.09426832,4.78116798,-1.09426832,0.000363623432,0.0635475367,0.0255045388,-0.118801475,-0.109352052,0.0183990151,1.54768181 +-1.18701482,4.78155756,1.18701482,0.000534282415,0.151846647,0.075715445,0.0432877131,0.0144205261,0.0184138473,1.6788547 +-0.0708600506,4.78210688,0.0708600506,0.000119712466,0.237313375,0.149241656,0.130778387,0.0575063154,0.0183309149,0.100472592 +-0.0836256519,4.78271866,0.0836256519,0.000276028528,0.176108301,0.0938376933,0.114919409,-0.0106017292,0.0183405951,0.118557394 +-0.100292303,4.78333664,0.10029231,0.000232724051,0.176388264,0.0895292982,0.092398569,-0.064555876,0.0183444303,0.142162114 +-1.09518826,4.78347874,1.09518826,0.000152617446,0.0644638985,0.0266588368,-0.091863215,-0.0848262906,0.0184150897,1.54896474 +-0.281152636,4.78368902,0.281152636,0.00387016567,0.175340027,0.0857851729,-0.112872586,-0.0598951988,0.0183504559,0.398113072 +-1.02923608,4.78430128,1.02923608,0.00107590808,0.179480955,0.0862060413,-0.0411228389,0.0596337393,0.0184035003,1.4557842 +0.961339474,4.78547001,-0.961339474,0.00178588287,0.176772669,0.0843742043,0.0447371304,0.0941117704,0.0183907244,1.35997152 +-0.264869243,4.7856636,0.264869273,0.00162509154,0.175988674,0.0862618759,-0.0948331058,-0.0740610659,0.0183460508,0.375328541 +0.201016605,4.78575706,-0.201016605,0.00117990724,0.183205143,0.0908047706,-0.0774131864,-0.0538461544,0.0184247084,0.285032928 +0.0824511051,4.78723526,-0.0824511051,0.00029920449,0.186784536,0.100864321,0.123492017,-0.0104696238,0.018385645,0.11755611 +0.0691939518,4.7872529,-0.0691939518,0.000133886308,0.236095399,0.149964362,0.179181516,0.0291040055,0.018377712,0.0986784622 +1.04139256,4.78728914,-1.04139256,0.00171295227,0.164240718,0.0780215785,-0.000786134158,0.0187331364,0.0183859393,1.47290158 +0.105460823,4.7874012,-0.105460823,0.0003059968,0.180174977,0.0919281319,0.0501102656,-0.0332847796,0.0183968954,0.149883479 +0.0997814313,4.78756523,-0.0997814387,0.000200203634,0.180410668,0.0925174728,0.061697077,-0.032264892,0.0183949992,0.142240137 +-1.10136771,4.78811312,1.10136771,0.000330019568,0.0547817834,0.0223200694,-0.0943804309,-0.0909563079,0.0184096247,1.5577054 +-1.19294906,4.78821802,1.19294906,0.000713473361,0.143042728,0.0684700087,-0.0764835924,0.0188868791,0.0184102524,1.68724787 +0.182104006,4.78895617,-0.182104006,0.000944287167,0.182576254,0.0906512067,-0.0598161593,-0.0537375584,0.0184215158,0.259296626 +-0.0999897048,4.79008675,0.0999896973,0.000150310196,0.17651546,0.0896307454,0.100416273,-0.0637012124,0.0183393154,0.142118171 +-0.0833147615,4.79021168,0.0833147615,0.000160966185,0.176500291,0.0941502452,0.124882221,-0.0108677987,0.0183342379,0.118471548 +-0.0705567598,4.79022408,0.0705567598,7.45867801e-05,0.237365678,0.149391696,0.142232418,0.0569962822,0.0183234196,0.100366183 +-0.18166241,4.79042244,0.18166241,0.00150348269,0.180606991,0.0893138573,0.0332961157,-0.127414852,0.0183385704,0.258534193 +-0.16834031,4.79095078,0.16834031,0.000954379211,0.180454999,0.0893846303,0.0483747348,-0.124109641,0.0183395632,0.239870474 +-1.07608819,4.79110718,1.07608819,0.000926681212,0.128145874,0.0593751036,-0.0923031271,0.0130138043,0.0184050221,1.5219363 +0.162241131,4.79170465,-0.162241131,0.000950950547,0.181422979,0.0903405622,-0.0367778838,-0.0485818535,0.0184138548,0.229893416 +-0.112992272,4.79186392,0.112992272,0.000289863558,0.178209767,0.0898105726,0.0939930528,-0.0828619748,0.0183388926,0.159914523 +-0.780323923,4.79236317,0.780323923,0.00447585247,0.17283389,0.0825633258,-0.109018594,0.225297004,0.0183936525,1.10540593 +0.118523389,4.79250622,-0.118523389,0.000672359951,0.180058748,0.0907344222,0.0230666604,-0.0349871777,0.0183995888,0.169832379 +1.10566628,4.79294586,-1.10566628,0.000346677669,0.0398881324,0.015115222,-0.124730334,-0.12145818,0.0183929335,1.56379926 +-0.126595736,4.79319572,0.126595736,0.000388714514,0.179398134,0.0895283744,0.0839633867,-0.102686338,0.01833844,0.179661542 +-0.132071927,4.79342222,0.132071942,0.000297683233,0.179673761,0.0895441771,0.0789290369,-0.107135139,0.0183368158,0.187391251 +1.16599023,4.79396582,-1.16599023,0.000203758449,0.101412788,0.049085103,0.0691197962,-0.119103886,0.0184181407,1.64908743 +0.14670895,4.79456568,-0.146708965,0.000184377379,0.180613339,0.0901538134,-0.0166394189,-0.0439028442,0.01840722,0.209220961 +0.138546616,4.79481888,-0.138546601,0.000477549183,0.180387676,0.090339385,-0.00302763283,-0.0443278104,0.0184035208,0.197005898 +-0.570986629,4.79523945,0.570986629,0.00565170636,0.174786195,0.0845535323,-0.249395385,0.221410796,0.018380478,0.809200168 +0.882892191,4.79731369,-0.882892191,0.00470193662,0.175101161,0.0834841207,0.0165819656,0.154101759,0.0183876138,1.2495513 +-0.100460321,4.7973361,0.100460321,0.000335304037,0.17655234,0.0896925628,0.108098671,-0.0644782186,0.0183334313,0.142366767 +0.237139076,4.79742241,-0.237139076,0.00293664006,0.184443176,0.091183655,-0.108504876,-0.0419658832,0.0184101872,0.337599337 +0.456512511,4.79775047,-0.456512511,0.00508785853,0.181667775,0.0882811025,-0.185419947,0.131969824,0.0183753707,0.649561167 +-0.27062273,4.79775524,0.2706227,0.000122902449,0.176167458,0.0864588991,-0.103996962,-0.0631512925,0.0183382891,0.384206653 +-0.0837504491,4.79824638,0.0837504491,0.000275267201,0.176588088,0.0942109153,0.134512007,-0.0116516724,0.018327754,0.118702918 +-0.0709623918,4.79895735,0.0709623918,0.00011917697,0.237383753,0.149340913,0.15327476,0.0562973171,0.0183161739,0.100587472 +-0.998120546,4.79899979,0.998120606,0.00156680797,0.180512041,0.0865511522,-0.0179957543,0.10454125,0.0183889512,1.4119463 +1.20978439,4.79946804,-1.20978439,0.000400600286,0.147115394,0.0696109757,-0.137975216,-0.00824575312,0.018418638,1.71099401 +-0.263652414,4.79955292,0.263652384,0.00050352735,0.176562518,0.0867360085,-0.09053085,-0.069591552,0.0183362849,0.373672485 +1.22008538,4.7996459,-1.22008538,0.000359123282,0.13579914,0.0637440085,-0.26223895,0.00172201754,0.0184191018,1.72556305 +-1.15684104,4.79965067,1.15684104,0.000186519668,0.0697125047,0.0321305282,0.0166426785,-0.110059917,0.0183960516,1.63602507 +1.22866642,4.79979372,-1.22866642,0.000164382451,0.118274547,0.0606905818,-0.328028142,-0.0108060911,0.0184194483,1.73769939 +1.15602803,4.79980421,-1.15602803,0.000236614622,0.0740182325,0.0326897763,0.010551841,-0.141614348,0.018408753,1.63500118 +0.976122975,4.79985142,-0.976122975,0.00163192744,0.176566571,0.0843551233,0.0522450991,0.0835478008,0.0183772668,1.38089633 +-0.129977852,4.79989195,0.129977867,0.000254965591,0.179661363,0.0896363184,0.0861116946,-0.104416296,0.0183321368,0.18442966 +-1.2199012,4.7999053,1.2199012,0.000348381262,0.117962971,0.0547299422,-0.381117463,0.00313962763,0.0184056535,1.72534037 +-1.22868562,4.79999399,1.22868562,0.000158152674,0.106622621,0.0556335077,-0.447663784,-0.0199072845,0.0184056889,1.73776472 +-1.20928454,4.80012512,1.20928454,0.000328399707,0.127118558,0.0589428358,-0.256394088,0.00813552178,0.018404521,1.71033049 +-0.745098591,4.80013084,0.745098591,0.00533730723,0.172445044,0.0825502649,-0.131130487,0.24453789,0.0183883067,1.05606592 +0.83643961,4.80081463,-0.83643961,0.00521747069,0.174909502,0.0834791511,4.34238464e-05,0.178724647,0.0183839053,1.18351531 +-1.15537465,4.80097246,1.15537465,1.74552242e-05,0.0642070621,0.0290090293,0.0106052877,-0.114304289,0.0183948576,1.63396096 +-1.15463293,4.80100775,1.15463293,0.000250982936,0.0635396466,0.0286442693,0.00834599137,-0.114164814,0.0183947962,1.6329093 +1.08110809,4.80120945,-1.08110809,0.00105202396,0.0988062397,0.0434382148,-0.104415849,-0.0194506757,0.0183786731,1.52906871 +-1.20042825,4.80204773,1.20042825,0.000502190087,0.134739012,0.0634945855,-0.156320825,0.0103630852,0.018401796,1.69772744 +1.20669758,4.80213928,-1.2066977,0.000139646741,0.150441423,0.0715188533,-0.106164955,-0.0117915655,0.018416252,1.70664895 +1.12386119,4.8025713,-1.12386131,0.000332525145,0.0331473947,0.0124262879,-0.0990150124,-0.138331264,0.0183930695,1.58951569 +-1.08138537,4.8032999,1.08138537,0.000454948575,0.115529545,0.0527530648,-0.0955660045,0.0243629254,0.0183947068,1.52944469 +-1.12356436,4.80352402,1.12356436,0.000548573909,0.0303449687,0.0119007453,-0.0904692486,-0.11351265,0.0183917992,1.58909822 +0.0998915434,4.80422688,-0.0998915434,0.000288919837,0.180485711,0.0927950442,0.0749996677,-0.0343438275,0.0183799919,0.141541123 +0.0826802254,4.80453587,-0.0826802254,0.000331451243,0.187113449,0.101506568,0.140974998,-0.0122540724,0.0183700975,0.11715474 +1.13720191,4.80468988,-1.13720191,0.000308955438,0.0419122465,0.0162742045,-0.0660923347,-0.150086567,0.0183968954,1.60838723 +0.0694923699,4.80516624,-0.0694923773,0.000143666315,0.236638904,0.15123041,0.199550003,0.0272521526,0.0183615349,0.0984694064 +-0.949922442,4.80519342,0.949922442,0.00187413802,0.180327952,0.0862256885,-0.0241427552,0.149159521,0.0183845758,1.34373808 +-0.481541336,4.80565262,0.481541336,0.00373333786,0.174780533,0.0849406943,-0.290014178,0.163965613,0.0183666926,0.682678938 +0.325330585,4.80585575,-0.325330585,0.00432134746,0.183736041,0.0901890919,-0.159221649,0.024276942,0.0183878541,0.461491436 +0.797573388,4.80598307,-0.797573447,0.00195206748,0.174543127,0.0833784863,-0.017164167,0.195790231,0.0183797963,1.13001096 +0.147779346,4.80598831,-0.147779346,0.000665679632,0.1811198,0.090596661,-0.0118197296,-0.0468023457,0.0183976013,0.209968984 +-0.225526378,4.80606508,0.225526378,0.00196899078,0.178431883,0.0879936591,-0.0268702321,-0.098285988,0.0183281824,0.320390046 +-0.27488628,4.80637789,0.27488628,0.00348638953,0.176257953,0.0865771919,-0.112762749,-0.0526651964,0.018332893,0.389319837 +1.17196882,4.80760288,-1.17196882,0.000501059287,0.128061861,0.0596148819,0.0565451384,-0.0647598207,0.0184060801,1.65754378 +0.571670413,4.80791664,-0.571670413,0.00119070348,0.179379225,0.0866235718,-0.143821523,0.223054916,0.0183549318,0.809129238 +0.578761876,4.80821419,-0.578761816,0.002566993,0.179187164,0.0864946842,-0.140309498,0.224011794,0.0183551572,0.818957448 +-0.905018449,4.8086381,0.905018508,0.00161916728,0.177004516,0.0844914988,-0.0394838378,0.186990947,0.018383652,1.28060877 +-0.18017365,4.80899906,0.180173665,0.000918543665,0.18111217,0.0898093283,0.0436833091,-0.120423473,0.0183252972,0.256376326 +0.383117855,4.80905151,-0.383117855,0.00390343345,0.182661936,0.0892207399,-0.195859089,0.0745741799,0.0183750652,0.542801321 +1.20760489,4.80980253,-1.20760489,0.000429593463,0.146735445,0.0693827868,-0.119685568,-0.0114788068,0.0184102412,1.70790172 +1.2190975,4.81002617,-1.2190975,0.000480905233,0.137280673,0.0646131635,-0.24915269,-4.65608609e-05,0.0184108969,1.72415578 +-1.08964384,4.81011295,1.08964384,0.00097633386,0.106639497,0.0479292758,-0.102744155,0.0218223296,0.0183888916,1.54112577 +1.22867572,4.81021261,-1.22867572,0.000218208384,0.119063675,0.0606217571,-0.323856771,-0.0128120538,0.0184112955,1.73770237 +-0.203574911,4.8127594,0.203574926,0.000897374179,0.180019706,0.0890895575,0.00625402294,-0.10754931,0.0183226746,0.288620055 +0.698182583,4.81282043,-0.698182583,0.0105659878,0.17617622,0.0845841542,-0.0628434718,0.236415967,0.018364314,0.990957916 +1.19817948,4.81308174,-1.19817948,0.000507062825,0.144558519,0.0679627508,-0.0805246308,-0.019119665,0.018405566,1.6945231 +0.765044212,4.81400013,-0.765044212,0.00429061614,0.175049424,0.0837888941,-0.0378510803,0.212115407,0.0183715075,1.08317494 +0.56481415,4.81411076,-0.56481415,0.00450942153,0.179696336,0.0868461728,-0.15109773,0.223717421,0.0183497705,0.799160182 +-1.05589056,4.81420708,1.05589056,0.000862781948,0.167137802,0.0795904025,-0.0438845977,0.0768273994,0.0183829777,1.49337411 +0.103434995,4.81477737,-0.103435002,0.000375957607,0.180580169,0.0926610157,0.0741079822,-0.0356666371,0.0183731243,0.147031203 +-0.115413368,4.81485033,0.11541336,0.000160455267,0.178630397,0.0897744671,0.113109872,-0.0870213434,0.0183197074,0.163241714 +0.95677042,4.81517649,-0.95677042,0.00341266673,0.176794633,0.084432818,0.055498831,0.107353546,0.0183654819,1.3533597 +-1.20604253,4.81525898,1.20604265,0.000543887785,0.128257453,0.0596190058,-0.218922138,0.00620361837,0.0183934476,1.70580578 +-1.21837878,4.81545401,1.21837878,0.000384531479,0.12023817,0.0560664535,-0.354720861,0.00288582454,0.0183945633,1.7232542 +-1.22865915,4.81561708,1.22865915,0.000174596498,0.106724143,0.0548622385,-0.436421454,-0.0234417357,0.0183946136,1.737795 +0.191292405,4.81616306,-0.191292405,0.000922727399,0.183027431,0.0910452008,-0.0635143816,-0.0544432923,0.0183996614,0.271143287 +-0.099969238,4.81660175,0.099969238,0.00040271008,0.176522642,0.0898776129,0.129615843,-0.0655480847,0.0183184426,0.142853573 +-0.070620954,4.81660271,0.070620954,0.000156671158,0.23681581,0.149035662,0.177910984,0.0537995398,0.0183006618,0.100869015 +-0.0833387598,4.81662035,0.0833387598,0.000373970077,0.176792696,0.0944932476,0.158224493,-0.0143290246,0.0183122959,0.119061261 +-1.1618638,4.81689739,1.16186392,0.000369279995,0.0992849693,0.0444619842,0.000444527017,-0.0259423628,0.0183854681,1.6431284 +0.294279635,4.81695795,-0.294279635,0.00308492593,0.18425858,0.090678826,-0.151122421,0.00649209041,0.0183859356,0.418176204 +1.0962801,4.81696463,-1.0962801,0.000992212095,0.0796280131,0.0337100737,-0.126555443,-0.0300250929,0.0183691438,1.55052471 +0.577487648,4.81787157,-0.577487648,0.000603969034,0.17944622,0.0866801962,-0.142012477,0.23088868,0.0183470584,0.817133665 +0.0690316632,4.81812096,-0.0690316632,8.4847612e-05,0.237340033,0.152780041,0.213936508,0.0271393191,0.0183488782,0.0983135179 +0.0818826705,4.81815529,-0.0818826631,0.000203105257,0.187191918,0.101950102,0.15557611,-0.0121618258,0.0183568187,0.116638936 +-0.983625412,4.8183136,0.983625412,0.00173653429,0.181562185,0.0869799629,-0.00808293466,0.131744966,0.0183747169,1.39159 +0.0986265987,4.8184762,-0.0986265913,0.000158945753,0.180624053,0.0931235403,0.0886661857,-0.0341940783,0.0183660127,0.140521437 +-0.118551396,4.81893682,0.118551396,7.94780935e-05,0.178939283,0.0897121802,0.11426881,-0.09169925,0.0183164291,0.167765811 +-1.16031432,4.81901169,1.16031432,2.72067191e-05,0.0959352255,0.0425946526,-0.00286163134,-0.0283544622,0.0183837004,1.64094734 +-1.15925312,4.81926441,1.15925312,0.000555913313,0.0956204981,0.0424245931,-0.00553388242,-0.0272713155,0.0183834173,1.63944387 +1.16101503,4.81933165,-1.16101503,0.000633280782,0.104931235,0.0464265235,0.00263162516,-0.0809141845,0.0183923058,1.64205575 +-0.149240583,4.81989479,0.149240583,0.000635459903,0.181315467,0.0903282315,0.0888390616,-0.116685532,0.0183177516,0.211660475 +-0.117766745,4.8199048,0.117766745,9.48968591e-05,0.178961918,0.0898056105,0.116409741,-0.0907789469,0.0183157604,0.166662902 +-0.119193852,4.82035542,0.119193852,0.000481397845,0.178989872,0.0897343829,0.114801213,-0.0920037478,0.0183151029,0.168669596 +-0.118393004,4.82069349,0.118393004,5.5629338e-05,0.178968132,0.0897539854,0.11622677,-0.0913305879,0.0183150209,0.167547956 +0.173960537,4.82288361,-0.173960522,0.000707553059,0.182460874,0.0910689235,-0.0363286585,-0.0556217879,0.0183917582,0.246290445 +-0.115834191,4.82352638,0.115834191,0.000285319577,0.178737015,0.0898871198,0.122280039,-0.0875647813,0.0183126926,0.163841024 +0.0690587014,4.82355309,-0.0690587014,0.000156970767,0.237480134,0.153076515,0.220822379,0.02679535,0.0183441155,0.0981413275 +0.0816734433,4.82385254,-0.0816734433,0.000361385581,0.187468708,0.102372453,0.163179532,-0.0120958369,0.018351607,0.116086453 +1.17914009,4.82393074,-1.17914009,0.000664861465,0.14543891,0.068247743,0.0273873955,-0.0353428088,0.0183934681,1.66768718 +0.923307776,4.82411289,-0.923307776,0.00412174035,0.176098689,0.084043026,0.0473575965,0.134306908,0.0183618721,1.30669177 +0.0982031822,4.82438278,-0.0982031822,0.000268025236,0.180687726,0.0933535919,0.0956958309,-0.034711834,0.0183602646,0.139602482 +-0.465845466,4.82458878,0.465845466,0.00632646494,0.175501153,0.0855325907,-0.301860452,0.173487142,0.0183513071,0.661010861 +0.489824206,4.82483912,-0.489824206,0.00801122561,0.181016386,0.0878708959,-0.191862315,0.177630305,0.0183453821,0.695031047 +1.01493394,4.82487345,-1.01493394,0.000723870355,0.173629999,0.0830458701,0.0648570657,0.0599837154,0.0183529183,1.43535149 +-0.146909118,4.82605314,0.146909118,0.000651614857,0.181281447,0.0904114693,0.0959324539,-0.113825791,0.018313298,0.208363295 +0.128165126,4.82661724,-0.128165126,0.000501048926,0.180519462,0.0910574421,0.0295381173,-0.0479193144,0.0183736999,0.181683555 +0.105123632,4.82701397,-0.105123632,0.000258674059,0.180604666,0.0926549062,0.0779372007,-0.0391366407,0.0183623806,0.148992166 +-1.16461658,4.82743835,1.16461658,0.000329792238,0.110467643,0.0499988087,-0.0131101627,-0.00821712241,0.0183777995,1.647017 +-0.154298186,4.82747459,0.154298171,0.000576973544,0.181591913,0.0905059204,0.0867577717,-0.115141034,0.0183117576,0.218718708 +-0.479778349,4.82759285,0.479778349,0.000532545324,0.175695688,0.0856317356,-0.29586798,0.183021963,0.0183508676,0.681127012 +1.06459832,4.82782459,-1.06459832,0.00214907946,0.144296706,0.0669663846,-0.0181943774,0.0378101207,0.0183536168,1.50572729 +1.12032104,4.8289175,-1.12032104,0.00094300753,0.069763124,0.02866349,-0.115626708,-0.0598482564,0.018368762,1.58450925 +-0.223042473,4.82930565,0.223042473,0.00108306552,0.179411143,0.0887995362,-0.0189365111,-0.0911746323,0.0183118004,0.316992939 +-1.05326986,4.82946634,1.05326986,0.00109985808,0.166620135,0.0792681798,-0.0299440324,0.0951000527,0.0183708258,1.489694 +-0.904314518,4.8295002,0.904314518,0.00135151739,0.177307159,0.0847103447,-0.0359144211,0.20153968,0.0183692649,1.27945757 +-1.06277955,4.83065891,1.06277955,0.000462485536,0.163071513,0.0774344578,-0.0372731462,0.091433093,0.0183706265,1.50313258 +1.13784826,4.83072758,-1.13784826,0.000849230099,0.0763820261,0.0316652991,-0.0781107172,-0.080532454,0.0183743015,1.60930228 +-1.1193006,4.83082962,1.1193006,0.00158254674,0.0803701729,0.0341574773,-0.114066504,0.00274136197,0.0183710512,1.58306825 +-1.0189991,4.83090878,1.0189991,0.00180735695,0.179834098,0.0863450244,0.000444761012,0.111939564,0.0183665361,1.44160891 +-0.88004148,4.83096743,0.88004148,0.00227338471,0.17636773,0.0843182504,-0.0512147993,0.220301405,0.0183690172,1.24478292 +1.01191664,4.83171606,-1.01191664,0.000672805123,0.173976079,0.0832039714,0.0738700926,0.0672937259,0.0183469523,1.43112612 +0.132408723,4.83215809,-0.132408723,0.000591537217,0.180864722,0.0911872834,0.0257051177,-0.0491151549,0.0183706451,0.18763487 +1.01420319,4.83281088,-1.01420319,4.83668737e-05,0.172960177,0.0826397762,0.0716146231,0.0663490891,0.0183461197,1.43435562 +-0.611020625,4.83290291,0.611020625,0.00448002107,0.175726429,0.085224852,-0.248696029,0.279230475,0.0183553342,0.866458654 +0.124934994,4.83336401,-0.124935001,0.000221623166,0.180548176,0.0913479254,0.040347144,-0.0482299998,0.0183657985,0.176863372 +-0.0709073618,4.83337879,0.0709073618,0.000119655102,0.237558454,0.149777144,0.197164953,0.0537233055,0.0182862692,0.100547954 +-0.920462787,4.83345509,0.920462728,0.00219008559,0.178193092,0.0851665139,-0.0251422096,0.19274734,0.0183659215,1.30205429 +1.00714958,4.83380318,-1.00714946,0.00109026732,0.174093068,0.0832515284,0.073896423,0.0723789632,0.0183455106,1.42436254 +-0.0837351009,4.83415031,0.0837351009,0.000276361679,0.177432522,0.0951188356,0.177451327,-0.0136986487,0.0182976834,0.118724525 +1.01988816,4.83426523,-1.01988816,0.000614629593,0.169254616,0.0805627629,0.0615435243,0.0646109283,0.0183454026,1.44235849 +-0.100511782,4.83498526,0.100511774,0.000290455646,0.176780567,0.0901830196,0.14959164,-0.0641377717,0.0183029398,0.142492905 +-1.17315054,4.83590603,1.17315054,0.000479745358,0.128545046,0.0594880879,-0.0436694138,0.0159896612,0.0183724035,1.65909052 +1.01173282,4.83616638,-1.01173282,0.000689243781,0.174063951,0.0832406729,0.0758975595,0.0694759339,0.0183433238,1.4308542 +-1.17085624,4.83621216,1.17085636,0.00028685655,0.129124001,0.0598091073,-0.0288116857,0.0172305983,0.0183717478,1.65585351 +-0.511948884,4.83685589,0.511948884,0.00425402261,0.175980538,0.0857622251,-0.290308923,0.216854602,0.0183471534,0.724726379 +0.113120303,4.8371563,-0.113120303,0.000215959299,0.180625245,0.0919588953,0.0646871328,-0.0425064713,0.0183574334,0.161253855 +0.128030747,4.83740282,-0.128030747,0.000266260759,0.18077074,0.0913729817,0.0372481756,-0.0490811206,0.0183637775,0.181403562 +-1.16995406,4.83812428,1.16995418,0.00016062794,0.12863642,0.0595050976,-0.026659539,0.0168818273,0.0183702316,1.65458453 +-0.151007295,4.8382163,0.151007295,0.000558399712,0.181493953,0.0905855,0.0980085135,-0.112491399,0.0183041021,0.213834971 +-1.17035306,4.83897686,1.17035317,0.00035192311,0.129035398,0.0597333498,-0.0270302352,0.0175489523,0.0183696859,1.65514708 +-0.242625117,4.83959389,0.242625117,0.00247102091,0.178828567,0.0884766951,-0.05743137,-0.0628395826,0.0183069669,0.344272494 +0.179520488,4.83976221,-0.179520488,0.00035978618,0.182711601,0.091308482,-0.03526178,-0.0514508002,0.0183751099,0.254588693 +0.165906847,4.84005213,-0.165906847,0.000758601003,0.182462752,0.091412425,-0.017973939,-0.055837214,0.0183751062,0.2352487 +-1.07429171,4.84007454,1.07429171,0.00101461215,0.156857401,0.0738761127,-0.0394477472,0.095363453,0.0183642246,1.51941574 +0.306184232,4.84072685,-0.306184232,0.00126427971,0.184207082,0.090681605,-0.16224426,0.0214165859,0.0183628015,0.436388791 +-1.16464913,4.84092951,1.16464913,0.00063267845,0.12943463,0.0598226339,-0.028125111,0.0250432119,0.0183678363,1.64706707 +-0.677341044,4.84122372,0.677340984,0.00502677821,0.174882561,0.0845682397,-0.194885567,0.299271971,0.0183553584,0.959851742 +0.407622755,4.84128046,-0.407622755,0.00495008519,0.183162838,0.0895311907,-0.205804229,0.115058646,0.0183452051,0.577313602 +-0.204305962,4.8418045,0.204305947,0.00103997008,0.180709377,0.0897569135,0.0189941749,-0.0997529328,0.0183017012,0.289530277 +0.278802782,4.84270382,-0.278802782,0.00360895041,0.184450239,0.091117084,-0.140992388,0.000585671514,0.0183676407,0.396250963 +1.16792536,4.84293842,-1.16792524,0.000889501302,0.136327207,0.0628543645,0.0183361638,-0.0348430425,0.018375393,1.651829 +-0.0704131871,4.84300852,0.0704131871,8.7172084e-05,0.237853035,0.15014185,0.210114941,0.0531421639,0.0182774346,0.100253604 +-0.0832410678,4.84304619,0.0832410678,0.000188260979,0.177933648,0.0955741629,0.188532397,-0.013547698,0.0182901118,0.118467249 +-0.100013673,4.84312582,0.100013673,0.000116785966,0.176951364,0.0903815255,0.158915579,-0.0628725439,0.0182968788,0.142271385 +-0.104369372,4.84385729,0.104369372,0.000281843764,0.177675158,0.0904427171,0.155676261,-0.0702115893,0.0182971451,0.147985652 +-1.19493639,4.84476662,1.19493639,0.000781304669,0.137246251,0.0644355938,-0.13258034,0.0248410162,0.0183707997,1.68994725 +-1.21337509,4.84486389,1.21337509,0.000714276626,0.129571125,0.0608764999,-0.303228289,0.0116963694,0.0183725525,1.71602392 +-1.22873998,4.84494591,1.22873998,0.00032396178,0.10835968,0.0534151867,-0.430365682,-0.0241155084,0.0183727946,1.73775363 +0.214276582,4.8461051,-0.214276597,0.00315789506,0.183919594,0.0915201455,-0.0795860738,-0.0451379977,0.0183709823,0.30476591 +0.172800735,4.84639072,-0.17280075,0.000737004681,0.182818979,0.0915237814,-0.0257991347,-0.0548132882,0.0183699857,0.24508363 +1.0235908,4.84652376,-1.0235908,0.000698271557,0.171127513,0.0814998224,0.0665260553,0.0715909898,0.0183363743,1.44758534 +-0.183484778,4.84834242,0.183484793,0.00130743918,0.181928709,0.0906331018,0.0570490472,-0.108681351,0.0182968974,0.260808408 +0.797693968,4.8483963,-0.797693968,0.00393201225,0.175325677,0.0839398876,-0.0111390837,0.217756048,0.0183440279,1.12887359 +1.18329394,4.84896803,-1.18329382,0.000570922042,0.145132422,0.0680539459,0.00124091655,-0.026071379,0.018374119,1.67350459 +-0.36362198,4.84925461,0.36362195,0.00186030031,0.176352188,0.0866970196,-0.272579819,0.0844788924,0.0183178447,0.514253497 +1.0866003,4.84983253,-1.0866003,0.00127755129,0.130602494,0.0594319887,-0.0424905978,0.0374171436,0.0183416419,1.53684425 +-1.06167412,4.85083485,1.06167412,0.000913280528,0.166335255,0.0789771229,-0.0259852149,0.111142382,0.0183558222,1.50152886 +-0.100371882,4.85141659,0.100371882,0.000349379698,0.177017212,0.0904647261,0.166844308,-0.0624793917,0.0182897933,0.142281383 +-0.471983343,4.85211658,0.471983343,0.00440879725,0.176696211,0.0864093155,-0.320218474,0.210586995,0.0183328595,0.669299841 +-0.0835699514,4.85218048,0.0835699514,0.00027599727,0.178045392,0.095703952,0.198450536,-0.0131648453,0.0182810593,0.118479133 +-0.0707165152,4.85297394,0.0707165152,0.000120036842,0.238469571,0.150619417,0.22191298,0.0542348176,0.0182661936,0.100266486 +0.0986843184,4.85309362,-0.0986843184,0.000176109956,0.180260867,0.0935730934,0.118164383,-0.0393952765,0.0183362756,0.139577255 +0.0980666801,4.85340309,-0.0980666801,0.000191083964,0.180260241,0.0936387405,0.120201401,-0.0390838273,0.0183356255,0.138726309 +0.0820331722,4.85343313,-0.0820331648,0.000301690889,0.187118515,0.102746665,0.191825271,-0.0148274843,0.0183251854,0.116036095 +0.0696433708,4.85344362,-0.0696433708,0.000132130692,0.237066403,0.15370889,0.253278732,0.0241236594,0.0183168165,0.0985039175 +0.0696415305,4.85363531,-0.069641538,2.85462033e-06,0.237059951,0.153705031,0.253479958,0.0241209753,0.0183166321,0.0985093564 +0.0820373222,4.85372925,-0.0820373222,9.07559297e-06,0.187099382,0.10273347,0.192079812,-0.014837699,0.0183249097,0.116056129 +-0.84143436,4.85379744,0.8414343,0.00440174667,0.17537722,0.0839955509,-0.0670063868,0.262231499,0.0183535051,1.19102013 +0.0980739519,4.85381365,-0.0980739594,6.67375116e-06,0.180261135,0.0936420038,0.120499611,-0.0390653796,0.0183352437,0.138759658 +0.0985248163,4.85388947,-0.0985248163,5.81732675e-05,0.180279151,0.0936163217,0.119282432,-0.0393213443,0.0183355119,0.139365882 +-0.374645203,4.85396624,0.374645203,0.00267388974,0.176352486,0.0867018402,-0.291902304,0.100203171,0.0183164515,0.529938042 +0.0696446151,4.8540163,-0.0696446151,0.000119477176,0.237048,0.153688997,0.253924102,0.0241441075,0.0183162987,0.0985004455 +0.0820505619,4.85432053,-0.0820505619,0.000274235208,0.18709074,0.102736644,0.192701116,-0.0148692727,0.018324405,0.116051145 +0.345674098,4.85443354,-0.345674098,0.0045977775,0.183755234,0.0902600586,-0.190725446,0.0665173084,0.0183431432,0.489522576 +0.0981085747,4.85464573,-0.0981085747,0.000248476485,0.180265427,0.0936576873,0.121191517,-0.0392251983,0.0183345713,0.138769329 +0.868311167,4.85465193,-0.868311167,0.0033870684,0.175663427,0.083899416,0.030433476,0.178299636,0.0183414128,1.22852921 +0.114467531,4.85489464,-0.114467539,0.000248555298,0.180492908,0.0920856744,0.0746339858,-0.047862187,0.0183430258,0.162331417 +-0.373867542,4.85497475,0.373867571,0.00106866541,0.176402062,0.0867394581,-0.291351646,0.100335412,0.0183155555,0.528861582 +-0.375255615,4.85538578,0.375255615,0.00348557206,0.176413178,0.0867457911,-0.292776406,0.101817109,0.018315522,0.530800521 +-0.374484867,4.85578775,0.374484867,3.29099998e-06,0.176432371,0.0867623165,-0.292544603,0.101461954,0.0183151066,0.529734373 +-0.225299969,4.85594845,0.225299969,0.00194146635,0.179905847,0.0893605724,-0.0267440565,-0.0742774233,0.0182935968,0.320088208 +1.19294143,4.85609245,-1.19294143,0.000641978288,0.14872995,0.0703079849,-0.0320437141,-0.016504582,0.0183706954,1.68723583 +1.21242023,4.85629272,-1.21242023,0.000768835191,0.146199882,0.0694698021,-0.192072615,-0.00416257,0.0183726884,1.71478629 +1.22863233,4.85646105,-1.22863233,0.000350082672,0.122497268,0.0592861287,-0.321083128,-0.0196475238,0.0183737576,1.73771632 +0.144411758,4.8574996,-0.144411772,0.00041852193,0.181943387,0.0917538255,0.0224494264,-0.0538807027,0.0183545873,0.205000132 +-0.372287929,4.85769796,0.372287899,0.00284506707,0.176515847,0.0868382379,-0.290202111,0.10018599,0.0183134321,0.526540041 +-0.375322521,4.85796642,0.375322491,0.00406168913,0.176531389,0.0868337378,-0.295150161,0.10478586,0.0183137637,0.530841291 +0.374760062,4.85863829,-0.374760091,0.00390049675,0.183456287,0.089932546,-0.213172585,0.099313423,0.0183354747,0.532177508 +0.19885844,4.85882425,-0.19885844,0.0007393501,0.184057862,0.0919380337,-0.0581575409,-0.0521740988,0.0183611065,0.28289479 +-1.00465894,4.85904121,1.00465894,0.00143280637,0.18099913,0.0868328288,0.0151953809,0.145890892,0.0183459688,1.42152202 +-1.03949165,4.86088562,1.03949165,0.00120611489,0.17693387,0.0845756456,0.000360719394,0.129549384,0.0183460917,1.47033262 +-0.819605649,4.86104965,0.819605708,0.00307927886,0.175197065,0.084033668,-0.0805899575,0.27644363,0.018348584,1.16044533 +-0.169608518,4.86227322,0.169608504,0.000744646182,0.181659341,0.0907434821,0.0855645239,-0.105599791,0.0182869677,0.240546227 +1.14093447,4.86325264,-1.14093447,0.00194492983,0.12593174,0.0570141561,-0.0112933964,-0.0157090761,0.0183515903,1.61366904 +1.11717033,4.86357594,-1.11717033,0.0013557137,0.123837426,0.0558248051,-0.039166443,0.0100779403,0.0183429569,1.58005381 +0.135938168,4.86455202,-0.135938153,0.000432076631,0.181697443,0.0920293555,0.0425759628,-0.0534503087,0.0183440223,0.192917481 +-0.703693867,4.86549854,0.703693867,0.00426267693,0.175806046,0.0851473361,-0.180431634,0.321542501,0.0183391105,0.997222662 +0.150901183,4.86601782,-0.150901183,0.000580118096,0.182319254,0.0919083431,0.0161822159,-0.0525637642,0.0183472689,0.214286581 +-1.11521423,4.86613035,1.11521423,0.00163418218,0.136182293,0.0623628609,-0.0450539105,0.0978351533,0.0183459241,1.57728863 +-0.158478513,4.86634398,0.158478513,0.000583322602,0.181459278,0.090753369,0.102009937,-0.105403036,0.0182840116,0.226020858 +-0.125339404,4.86707926,0.125339404,0.000294363446,0.179779321,0.0904576555,0.150236115,-0.0936729237,0.0182804614,0.177265108 +-0.452013224,4.86709213,0.452013195,0.0052496437,0.177366704,0.0870130211,-0.334843814,0.20488286,0.0183199067,0.640325665 +-0.126830518,4.86799812,0.126830533,0.000352480245,0.179906011,0.0904344916,0.14909187,-0.0953574032,0.0182798021,0.179397687 +-0.126568079,4.86806297,0.126568079,3.27870694e-05,0.179898262,0.0904400721,0.149516031,-0.0951395556,0.0182798095,0.179030076 +-0.126344979,4.86841917,0.126344964,0.000102269223,0.179906666,0.0904686376,0.150252268,-0.0949039757,0.0182795431,0.178714678 +-0.126781747,4.86843634,0.126781747,3.19464192e-07,0.179903373,0.0904382616,0.149458453,-0.0952521786,0.0182794705,0.179337323 +-0.127327919,4.86845541,0.127327919,0.000549297954,0.179935157,0.0904468447,0.148708448,-0.0954463333,0.0182794742,0.180083409 +-0.126595527,4.86869097,0.126595527,5.96202008e-05,0.179902971,0.0904475823,0.149996713,-0.0951133966,0.0182792973,0.179071128 +-0.0995315164,4.86940384,0.0995315164,0.000470660219,0.177344918,0.090810217,0.185297504,-0.0607694834,0.0182759408,0.142164439 +-0.126783222,4.8694334,0.126783222,0.000356708071,0.179910406,0.0904527232,0.15014562,-0.0951132327,0.0182787366,0.179318264 +-0.0829231143,4.86944008,0.0829231143,0.000361554383,0.178555667,0.0962183475,0.218839481,-0.0135949906,0.0182650201,0.118412286 +-0.0702013001,4.86950874,0.0702013001,0.000151719607,0.239192083,0.151397124,0.242868006,0.0542746484,0.0182487313,0.100220144 +1.06056619,4.86973572,-1.06056619,0.00102025655,0.159276903,0.0747593492,0.0264309291,0.0699508041,0.0183215123,1.49994481 +-0.12535961,4.86984539,0.125359595,0.000209549078,0.179824427,0.0905134678,0.152914941,-0.093628481,0.0182782486,0.177293673 +0.116912805,4.87002659,-0.116912812,0.000572660763,0.180905372,0.0923873559,0.0802660137,-0.0493862927,0.0183313843,0.16619572 +0.143920332,4.87004232,-0.143920332,0.000105732885,0.182165235,0.0920482799,0.0289655179,-0.0531863682,0.0183419883,0.204829216 +1.09624314,4.87148666,-1.09624314,0.00076135993,0.133119687,0.0606460273,-0.0339141153,0.0444146097,0.0183303375,1.55070186 +-1.15577316,4.87263918,1.15577316,0.000374465162,0.140416682,0.0655891672,0.00695442501,0.0700809583,0.0183436163,1.63476992 +0.303973377,4.87293625,-0.303973377,0.00506749982,0.184289664,0.0909966603,-0.172588155,0.0342864394,0.0183357205,0.431724489 +-1.13082564,4.87326813,1.13082576,0.0008004923,0.139684081,0.0646274611,-0.0173924491,0.0938661695,0.0183417462,1.59928751 +0.986031234,4.87385511,-0.986031175,0.000900922343,0.175554276,0.0838944837,0.0808032826,0.0954326391,0.0183137897,1.39446211 +-1.09825969,4.87423992,1.09825969,0.00161274849,0.147869587,0.0685369298,-0.0309280772,0.113449611,0.018339375,1.55326796 +1.18738365,4.87465763,-1.18738377,0.000877335551,0.152163088,0.0722035468,-0.00312349014,-0.0126856109,0.0183552299,1.67935288 +1.20900118,4.87486315,-1.2090013,0.000859964988,0.150929183,0.0719619542,-0.16905275,-0.00357619743,0.0183575805,1.70992696 +-0.863139033,4.8748827,0.863139033,0.00337588275,0.176830471,0.0847664028,-0.0467711724,0.264025182,0.0183384959,1.22126472 +1.22865343,4.87499809,-1.22865343,0.000408373948,0.123750903,0.0582859479,-0.327164292,-0.0205898285,0.0183588397,1.73772216 +-1.20800579,4.87503052,1.20800579,0.000773065374,0.138926566,0.0657492504,-0.252289593,0.0212186407,0.018349655,1.7085638 +-1.22862852,4.87505531,1.22862852,0.000351473456,0.109600738,0.0511725806,-0.426538378,-0.024955783,0.0183500312,1.73773086 +-1.18346012,4.87521267,1.18346,0.00112472719,0.146077067,0.0692571476,-0.0421676189,0.0426729247,0.0183472391,1.67384982 +1.00896668,4.87569523,-1.00896668,0.00211125263,0.176227927,0.0841278583,0.0912475437,0.089785099,0.0183123033,1.427809 +0.899926126,4.87588501,-0.899926126,0.00332841673,0.176447451,0.0843390003,0.0546081588,0.162883818,0.0183210559,1.27322555 +0.730460942,4.8769846,-0.730461001,0.00624879636,0.176849991,0.0851147249,-0.0462395027,0.265945852,0.0183158312,1.03408623 +1.16771221,4.87701988,-1.16771221,0.00121059688,0.142854393,0.0666191354,0.0188355166,-0.0192878302,0.018349098,1.65164185 +-0.574797451,4.87772655,0.574797451,0.00663540373,0.177962691,0.0869579315,-0.283556104,0.314102948,0.0183228292,0.814537168 +0.107262976,4.87849045,-0.107262976,0.000265156967,0.180583477,0.0932680368,0.116222307,-0.0460915342,0.0183179453,0.152278304 +-1.11497116,4.8792963,1.11497116,0.00115816027,0.143993363,0.0663631335,-0.0424064994,0.111501798,0.0183362216,1.57693636 +-1.14516652,4.88023424,1.1451664,0.000239718793,0.143220395,0.0670046583,0.0115140062,0.0888259411,0.0183371566,1.61983299 +0.514551103,4.88030338,-0.514551103,0.00771149434,0.180245757,0.0876435563,-0.218607843,0.250910193,0.0182953365,0.731393933 +-1.16007054,4.8805275,1.16007042,0.00055056886,0.144196153,0.0678134188,0.00255463552,0.0757327825,0.018338643,1.64082503 +0.0685472041,4.88083982,-0.0685472041,0.00018450059,0.237260818,0.153710037,0.282482326,0.0278461017,0.0182902627,0.097884059 +0.0971285775,4.88089085,-0.0971285775,0.00033068168,0.1807096,0.0943624824,0.146431655,-0.0404281244,0.018311996,0.138665676 +0.0809656829,4.88095856,-0.0809656829,0.000419365126,0.186828151,0.102974243,0.221484661,-0.01350768,0.0182999168,0.115604393 +0.201902479,4.88134813,-0.201902479,0.00099979993,0.184510887,0.0923966393,-0.0583080947,-0.0481011122,0.0183411613,0.286623031 +0.115066662,4.88188267,-0.115066662,0.000259781344,0.180996671,0.0927302763,0.0929137319,-0.0483682454,0.0183200669,0.163768381 +-0.609082818,4.88227367,0.609082818,0.00514627434,0.17780377,0.0867699236,-0.261526465,0.331554234,0.0183207951,0.863412321 +-0.968738317,4.88257122,0.968738317,0.00355295697,0.181151807,0.0867906287,0.0138141727,0.187883824,0.0183297694,1.37083483 +1.07458222,4.88419819,-1.07458222,0.000934956362,0.15067327,0.0698998347,0.0113401292,0.0700091794,0.0183135532,1.51976657 +0.172328711,4.88601589,-0.172328711,0.00116595638,0.183688223,0.0923759416,-0.00882501807,-0.0526664779,0.0183365121,0.246112391 +-0.672330618,4.88608551,0.672330618,0.00361174811,0.176828384,0.0860167295,-0.209273353,0.346269846,0.0183236878,0.952504873 +-0.070951283,4.8862772,0.0709512904,0.000119942968,0.23995024,0.152289823,0.2630077,0.0543919466,0.0182337109,0.100588299 +-0.19871074,4.88687754,0.19871074,0.00105662737,0.180991337,0.0904041231,0.0348261483,-0.0843084902,0.0182699952,0.281296611 +-0.083793059,4.88693523,0.083793059,0.000277043786,0.178866193,0.0965860337,0.237414211,-0.0128031047,0.0182499941,0.118786886 +0.139637649,4.88701153,-0.139637649,0.000426287268,0.182431877,0.0925960541,0.0465764701,-0.0557425544,0.0183278918,0.197711945 +-1.01127136,4.88727665,1.01127136,0.000917775149,0.181689322,0.0870008692,0.016889127,0.152299374,0.0183273554,1.43034375 +-0.100577518,4.88754272,0.100577518,0.000427747727,0.177600622,0.0911681503,0.201902479,-0.0618254803,0.0182608888,0.142573014 +1.065516,4.88762856,-1.065516,0.000106014486,0.158422142,0.0740948841,0.0287067275,0.0807749107,0.0183087606,1.50708532 +-1.05388975,4.88767719,1.05388975,0.00192891411,0.174991146,0.0833506584,0.00170717074,0.148058325,0.018327672,1.4906019 +1.05701494,4.88955784,-1.05701494,0.00124724407,0.163338736,0.0767923892,0.0444544852,0.0844169185,0.0183060262,1.49502838 +-0.765051544,4.89087963,0.765051484,0.00616203854,0.175972715,0.0848911479,-0.114956029,0.320083946,0.0183256231,1.08595157 +-0.297885895,4.89153481,0.297885895,0.00438605202,0.178969622,0.0888594389,-0.189232811,0.0231309179,0.0182777774,0.423189402 +0.127717584,4.89233494,-0.127717584,0.000361114478,0.181982338,0.0928721279,0.0711024478,-0.0533171892,0.018318478,0.180937484 +-0.831120372,4.89274502,0.831120431,0.00336852972,0.176736712,0.0849625096,-0.0637625605,0.299942285,0.0183263868,1.17619634 +1.06434786,4.89418554,-1.06434786,0.000308166374,0.161507696,0.075751245,0.0376128182,0.0854646489,0.0183035806,1.50549078 +-0.931557715,4.89427948,0.931557775,0.00248603383,0.180334345,0.0864786357,0.00254457025,0.228264406,0.0183225088,1.31834984 +0.0981996506,4.89526081,-0.0981996506,0.000269144191,0.180592552,0.0943236873,0.154156923,-0.0416378304,0.0183008406,0.139508724 +-1.22870588,4.89533997,1.22870588,0.000380597776,0.110387668,0.0518220626,-0.428281665,-0.024618661,0.0183340479,1.73774242 +-1.20940816,4.89547586,1.20940816,0.000839162094,0.143302172,0.0678560659,-0.256762952,0.0195631273,0.0183337592,1.71045041 +-1.1862638,4.89564323,1.1862638,0.00106389378,0.154778764,0.0741043165,-0.0414756611,0.0446205847,0.0183316376,1.67771816 +0.0817183405,4.8958292,-0.0817183405,0.000278390013,0.186307222,0.102773808,0.233843803,-0.015211992,0.0182876699,0.116096511 +-0.100362912,4.89595842,0.100362912,0.000133843321,0.177829638,0.0913994163,0.209899753,-0.0613794625,0.0182550121,0.142781407 +-0.0836254507,4.89596224,0.0836254582,0.000185410812,0.179291695,0.0969401821,0.247834265,-0.0128416233,0.0182432923,0.119004764 +-0.0708320811,4.89598846,0.0708320886,8.47960036e-05,0.239830017,0.152444884,0.275956482,0.0536431521,0.0182259381,0.10083238 +0.0690883696,4.8961134,-0.0690883696,0.000120981458,0.236437172,0.152933493,0.299370289,0.0273158848,0.0182769746,0.0981529057 +-0.153366968,4.89640522,0.153366953,0.000817790278,0.18138203,0.0910882726,0.124852471,-0.0990314707,0.018261645,0.217290342 +-1.16135645,4.89849043,1.16135645,0.00066627434,0.154453218,0.0732200891,-0.0179626327,0.0909297168,0.0183251984,1.64245987 +0.764957726,4.89893818,-0.764957726,0.00676543079,0.176838934,0.0850588754,-0.0208972599,0.263250172,0.0182990693,1.08246911 +1.0725925,4.89916325,-1.0725925,0.000749278814,0.161649004,0.0757931843,0.0292821955,0.0821491405,0.0183025058,1.51702213 +-0.185426906,4.89969635,0.185426921,0.000521903392,0.181760132,0.0910430402,0.0602241568,-0.0864423066,0.0182608571,0.262869269 +-0.17594783,4.89973688,0.175947845,0.000510150334,0.18161279,0.0910407975,0.0784295797,-0.0883672386,0.0182607304,0.249165669 +0.863066435,4.90152454,-0.863066435,0.00116120791,0.175973088,0.0841312781,0.0427510403,0.192296505,0.0183033794,1.22221589 +-0.901281357,4.90308809,0.901281357,0.00333240675,0.179101169,0.0858994201,-0.0119884387,0.256352335,0.0183172971,1.27619815 +-0.108971506,4.90308905,0.108971506,0.000302639033,0.178925976,0.0913425758,0.202905059,-0.0718907043,0.0182512347,0.154245079 +1.06447196,4.90313721,-1.06447196,0.000426379673,0.163670868,0.0767836347,0.035084758,0.0833786875,0.0182972904,1.50557804 +0.10336566,4.90361786,-0.10336566,0.000354060932,0.181010365,0.0941246301,0.141932353,-0.0426110625,0.0182979293,0.147284821 +0.143519998,4.90378428,-0.143519998,0.000815674488,0.183027267,0.0930718333,0.0492446199,-0.0571104065,0.0183154959,0.203542918 +-0.266798139,4.9039588,0.266798139,0.00211015949,0.179325938,0.0893279091,-0.123674102,-0.00932093523,0.018265279,0.380836427 +-0.100607522,4.90416622,0.100607522,0.000229252255,0.177889869,0.0914981738,0.216865242,-0.060924314,0.0182476863,0.142632663 +-1.14445066,4.90460539,1.14445078,0.000738666102,0.154358253,0.072818622,0.0121130599,0.116943955,0.0183172543,1.61856723 +-0.0837990567,4.90469456,0.0837990493,0.000277509855,0.179634139,0.0972492993,0.256771505,-0.0126082059,0.0182343721,0.118813246 +-0.070939213,4.9053216,0.070939213,0.000119867866,0.241052002,0.15338333,0.286102563,0.0532834828,0.0182159096,0.100588545 +0.120655715,4.90554905,-0.120655715,0.000373870542,0.181993455,0.0937409922,0.10077551,-0.0498389266,0.0183050409,0.170987338 +0.956275225,4.90564489,-0.956275225,0.00145788095,0.177443892,0.0847231969,0.0830075964,0.123594031,0.018289743,1.35240245 +-1.00349116,4.90566349,1.00349116,0.00102484948,0.182414442,0.0872938931,0.0255360045,0.172392055,0.0183140654,1.41941237 +0.833693624,4.90570545,-0.833693624,0.00614398438,0.176135972,0.0843838826,0.0223893654,0.216083258,0.0182988662,1.17971539 +-1.02623844,4.90573072,1.02623844,0.000769087696,0.179556936,0.0857182592,0.016006181,0.164510414,0.018314736,1.4514451 +0.229423791,4.90668917,-0.229423806,0.00193499948,0.184707284,0.0924242511,-0.0989608318,-0.025654586,0.0183183681,0.325190842 +0.134478688,4.90736198,-0.134478688,0.000645901135,0.182755619,0.0931971669,0.0663721263,-0.0554633997,0.0183101855,0.190958634 +-0.116486304,4.90759945,0.116486296,0.000164556972,0.179495528,0.0909684002,0.192424431,-0.0796023533,0.0182491932,0.165386841 +0.0981450528,4.90786266,-0.0981450528,0.000252010097,0.180757865,0.094541505,0.162759274,-0.0394346416,0.0182902236,0.14015542 +0.180066139,4.90789032,-0.180066139,0.0015175154,0.184273273,0.0928358138,-0.0168090165,-0.0478546545,0.0183172282,0.256268024 +0.068908073,4.9080019,-0.068908073,0.000151886517,0.236306131,0.152803347,0.311452568,0.0285425987,0.0182659365,0.0983834565 +0.0815574527,4.90805864,-0.0815574527,0.000359115045,0.18610841,0.102737539,0.245195478,-0.014230716,0.0182768218,0.116454542 +-1.05094206,4.90936947,1.05094218,0.00129642477,0.177471608,0.0843008608,0.000948331552,0.155644178,0.0183123853,1.48653841 +-0.150793746,4.90949011,0.150793731,0.000227429089,0.181180924,0.0911494792,0.133213148,-0.0951100364,0.018251976,0.214532509 +-1.01278925,4.91056108,1.01278925,0.000206278695,0.182228372,0.0871456638,0.0254388992,0.169925258,0.0183109026,1.4326365 +-0.113233715,4.91213942,0.113233715,0.00016913467,0.179596499,0.091408506,0.203511626,-0.0769349337,0.0182455312,0.160718694 +-0.186017096,4.91275311,0.186017096,0.000243170987,0.181701452,0.0911327675,0.0610022694,-0.0815832615,0.0182515625,0.264174223 +-0.180326983,4.91281366,0.180326983,0.000217730063,0.181496143,0.091084525,0.0722615868,-0.0815566555,0.018251529,0.256154716 +-0.119985178,4.91353321,0.119985171,0.000636651064,0.17963478,0.0909849629,0.19014436,-0.0811547637,0.0182447731,0.170031279 +1.11044002,4.91413593,-1.11044002,0.000849796226,0.157488376,0.0734867603,-0.0158473328,0.0576892421,0.0183053166,1.57042968 +0.616504371,4.91425991,-0.616504371,0.00730680022,0.178929716,0.0866988152,-0.157007739,0.321281165,0.01826513,0.872244656 +1.11806011,4.91460943,-1.11806011,0.000943089719,0.158551499,0.0741007328,-0.00655271579,0.0498813652,0.0183076803,1.58120751 +-0.144510269,4.91562653,0.144510269,0.0010346676,0.180991322,0.091225557,0.150214225,-0.0930668488,0.0182473082,0.204876885 +1.22858119,4.91567039,-1.22858119,0.000457403687,0.124258362,0.0580954477,-0.356418252,-0.0216026828,0.0183262601,1.73774147 +1.20830178,4.91567993,-1.20830166,0.000953038805,0.157837555,0.0753978118,-0.180016384,-0.00203336915,0.0183249768,1.70905733 +1.18681335,4.91582203,-1.18681335,0.0011419229,0.164850876,0.0793161914,0.00867247023,0.00162533403,0.0183225423,1.67866492 +0.603758216,4.91591644,-0.603758216,0.00307651912,0.179360762,0.086983785,-0.165462732,0.318060875,0.0182634071,0.854161441 +0.951756239,4.9163394,-0.951756239,0.000947121996,0.177419171,0.0847015828,0.0848099142,0.128897741,0.0182813033,1.34607208 +-0.15298228,4.91644955,0.15298228,0.000688850239,0.181291685,0.0912593752,0.130247861,-0.0939036757,0.0182470903,0.217533574 +1.02576995,4.91675758,-1.02576995,0.00147582567,0.175880402,0.0835038796,0.08295241,0.0936531797,0.0182806477,1.4508512 +1.16056788,4.91751671,-1.16056788,0.00125573052,0.157933414,0.0743103102,0.0343068913,0.0283977874,0.0183145385,1.64134669 +-0.955671132,4.9181366,0.955671132,0.00192683772,0.182541311,0.0875812396,0.0249545109,0.21418035,0.0183054265,1.35223818 +-0.297513336,4.91843319,0.297513366,0.0010655165,0.180333808,0.0899422541,-0.20472528,0.0418344513,0.0182594415,0.424304336 +0.634359956,4.91870022,-0.634359956,0.00305755832,0.17877762,0.08658503,-0.141684145,0.31883049,0.0182644278,0.89722985 +0.958207071,4.91897964,-0.958207071,0.00131205772,0.177411899,0.0847004056,0.0879205242,0.125667661,0.0182784274,1.35517073 +-0.18234466,4.91923904,0.182344645,0.000764580094,0.181598395,0.0911864117,0.0695298687,-0.0804442167,0.0182470176,0.258921355 +-0.193643972,4.91975641,0.193643972,0.00103608309,0.18175295,0.0912018344,0.0407806933,-0.0741340965,0.0182469077,0.274606466 +0.414431304,4.91977453,-0.414431304,0.00481839338,0.18260324,0.0895799175,-0.274142325,0.195280194,0.0182734616,0.586311519 +0.220588565,4.92047882,-0.220588565,0.00128326414,0.184963733,0.0928302109,-0.0844997466,-0.0295089949,0.0183068495,0.312432259 +0.239553913,4.92101336,-0.239553913,0.0018266734,0.184641629,0.0923930183,-0.112025887,-0.01139386,0.0183035675,0.339441746 +0.229848728,4.92114878,-0.229848713,0.000159553558,0.184844673,0.0926104337,-0.100551784,-0.0219016392,0.0183049273,0.326517045 +0.954515457,4.92127657,-0.954515398,4.81085372e-05,0.177538827,0.084763214,0.0879158154,0.128020599,0.0182769131,1.35000288 +-1.1306268,4.92137432,1.1306268,0.00152427796,0.16390942,0.0774637982,-0.00717239268,0.144374594,0.0183032136,1.59910119 +0.946904182,4.92156744,-0.946904123,0.00219923211,0.177429557,0.0847268105,0.0846702158,0.133784652,0.0182774626,1.33917475 +0.61525923,4.92170382,-0.61525923,0.00155097921,0.179145172,0.0868503302,-0.158330604,0.326471388,0.0182588957,0.870466173 +-0.995719194,4.92226744,0.995719254,0.00129413954,0.183049187,0.0876635388,0.0305633545,0.185927585,0.0183026977,1.40838563 +0.61186403,4.92228079,-0.61186403,4.03755184e-05,0.179203615,0.086897485,-0.161435649,0.326788574,0.0182582736,0.86606741 +-0.0701629966,4.92239761,0.0701629966,0.000156547088,0.242470458,0.154732674,0.305771023,0.0514301211,0.0181996357,0.100205153 +-0.0829039365,4.92249155,0.0829039365,0.000371943141,0.180486351,0.0980262011,0.276127577,-0.0126015032,0.018218413,0.118422695 +-0.0995506048,4.92257214,0.0995506048,0.000362550345,0.178030208,0.091803506,0.233323574,-0.05850292,0.0182329454,0.142223567 +-0.311951667,4.92268658,0.311951667,0.00180765335,0.179960102,0.089711152,-0.24257502,0.0716834366,0.0182587076,0.444944918 +1.11217821,4.9229722,-1.11217821,0.000757433358,0.162861571,0.0763808116,-0.00986637082,0.062180344,0.0182998087,1.57291543 +1.03145099,4.92329407,-1.03145099,0.000274829334,0.174760059,0.0828250796,0.0782400668,0.0953268334,0.0182764977,1.45898199 +0.957131684,4.92348671,-0.957131684,0.000277894287,0.177643508,0.0848000646,0.0886075944,0.126850367,0.018274866,1.35365868 +0.95255667,4.924088,-0.952556729,3.913619e-05,0.177544206,0.0847757012,0.0882025585,0.129584178,0.0182749387,1.34722686 +1.11644983,4.92425585,-1.11644983,0.000709959597,0.163149655,0.0766076744,-0.00566602452,0.0610692054,0.0182997957,1.57895029 +-0.526492715,4.92452002,0.526492715,0.00440145331,0.180185765,0.0887098387,-0.337310493,0.34471941,0.0182851013,0.748703003 +0.131026939,4.92543936,-0.131026953,0.000472777057,0.183007672,0.0937618539,0.083625868,-0.0544663891,0.018295493,0.185637236 +-1.01525998,4.92576218,1.01525998,0.000745601719,0.183000207,0.0873864219,0.0257496387,0.170110434,0.0183011908,1.4358964 +0.955185235,4.92670822,-0.955185294,0.00156402064,0.177682117,0.0848419592,0.0896091163,0.127623975,0.0182722937,1.35088527 +-0.701696873,4.9269352,0.701696873,0.00309043005,0.178848892,0.0872498602,-0.18284744,0.386772424,0.0182959307,0.993210316 +0.870707095,4.92795658,-0.870707035,0.00655622641,0.176022589,0.0842053816,0.0551203787,0.191788018,0.0182810836,1.2326721 +0.606864929,4.92825365,-0.606864929,0.00323841232,0.179329574,0.0870283321,-0.171734124,0.331116825,0.0182532109,0.85868293 +0.613136828,4.92900562,-0.613136828,0.00255124248,0.179417267,0.0870705545,-0.162150547,0.332887441,0.0182526354,0.867432892 +-0.108468339,4.9291296,0.108468331,0.00021032634,0.179077402,0.0916403979,0.224997342,-0.0689977854,0.0182303414,0.153526798 +-0.558739603,4.92946053,0.558739603,0.00406005234,0.180464059,0.0887944326,-0.308339834,0.367899895,0.0182851367,0.794851422 +1.02400994,4.92956686,-1.02401006,0.00126859173,0.176511258,0.0837631673,0.0848156363,0.0964067131,0.0182705354,1.44838977 +0.233073056,4.92972469,-0.233073056,0.000581805536,0.184795514,0.0926231593,-0.108085245,-0.0143406708,0.0182973593,0.330599695 +0.0695039108,4.92976332,-0.0695039108,0.000121192061,0.234834895,0.151976526,0.335859656,0.0289139245,0.0182495974,0.0983767286 +-1.14882016,4.92984056,1.14882004,0.00133104518,0.166849107,0.0796639547,0.0171844549,0.13384597,0.0182981696,1.62480307 +0.082321927,4.93050051,-0.082321927,0.000280015083,0.185612842,0.102839507,0.265199363,-0.0147209847,0.018260153,0.11650683 +0.0991693288,4.93075228,-0.0991693288,0.00037005046,0.180936038,0.0948713347,0.17603074,-0.0388402641,0.0182742849,0.140343606 +1.03323293,4.9311471,-1.03323293,0.000407928746,0.176345259,0.0835524797,0.073567912,0.0926605761,0.0182713158,1.46140969 +1.06164372,4.93174839,-1.06164372,0.000941501814,0.171616748,0.0807989463,0.0347373188,0.0741119608,0.0182776079,1.50141776 +-1.22860312,4.93220806,1.22860312,0.000462644122,0.110618263,0.0529438853,-0.434820771,-0.0244842675,0.0183048863,1.73776007 +-1.21301937,4.93237686,1.21301937,0.00101925351,0.148401052,0.0700995699,-0.281123608,0.0153710218,0.0183049347,1.71571779 +-1.19430304,4.93257952,1.19430304,0.00083811162,0.169519126,0.0824467465,-0.0616705194,0.0465251729,0.0183036309,1.68924499 +1.16778111,4.93278122,-1.16778123,0.00056087767,0.166499108,0.0792892575,0.0305986144,0.0369122066,0.0183040146,1.65154946 +0.10107033,4.93375158,-0.10107033,0.000166996237,0.181053355,0.0948420912,0.173436642,-0.0393923782,0.0182727594,0.143129349 +1.16177893,4.93383741,-1.16177893,0.00081429421,0.165529847,0.0785202309,0.0395231061,0.0450517945,0.0183020439,1.64309514 +-0.182406664,4.93448257,0.182406664,0.00106992899,0.181639612,0.0914010331,0.0692643821,-0.0770150051,0.0182359871,0.258489519 +0.0990652964,4.93468523,-0.0990652889,4.30045111e-05,0.181036115,0.0949790478,0.178837299,-0.0384599231,0.0182714369,0.140427977 +0.0821886212,4.93483448,-0.0821886212,7.0804359e-05,0.185562998,0.102862924,0.269273579,-0.0145972427,0.0182569232,0.116530798 +0.0693401471,4.93485403,-0.0693401396,3.44805339e-05,0.234576538,0.151828319,0.341352284,0.0290984381,0.0182457641,0.0983571261 +0.157104522,4.9351635,-0.157104522,0.000694490853,0.184898019,0.0940818265,0.0359341316,-0.0540615954,0.0182946753,0.223139495 +1.09486926,4.93589211,-1.09486926,0.00110135658,0.168468177,0.0791995749,0.00405130535,0.0628349334,0.0182857122,1.54838943 +0.443682313,4.93636274,-0.443682283,0.00394075131,0.181732148,0.0890428126,-0.288708389,0.238631636,0.0182533599,0.627989292 +0.0991673917,4.9368391,-0.0991673991,0.000211618928,0.180985719,0.0950021297,0.180073336,-0.0385956727,0.0182697643,0.140437558 +0.18395257,4.93710804,-0.18395257,0.00122189638,0.184892148,0.0934553593,-0.0149400337,-0.0426628217,0.0182965249,0.26159066 +0.0822879151,4.93719625,-0.0822879076,0.000280111737,0.185551032,0.102913618,0.270932674,-0.0143661071,0.0182549339,0.116547219 +0.948112607,4.9373517,-0.948112607,0.00202595792,0.177552834,0.0848183185,0.0917072147,0.133595288,0.0182644911,1.34085572 +-1.18314409,4.9374876,1.18314409,0.0011626971,0.172155708,0.0836482793,-0.00620092638,0.0776132718,0.0182978418,1.67342591 +0.0694393069,4.93765163,-0.0694393069,0.000121060177,0.234641016,0.151924863,0.344037831,0.0293484498,0.0182432812,0.0983724892 +0.102482848,4.93793774,-0.102482855,0.000389740977,0.181273133,0.0949066728,0.171048671,-0.0403010324,0.0182706043,0.14502044 +1.01424944,4.937953,-1.01424944,0.0013133015,0.17669192,0.0839470997,0.0878005698,0.100543097,0.0182638019,1.43451965 +-1.03156483,4.93873072,1.03156483,0.000874110963,0.182852179,0.0869477764,0.0173006747,0.165068701,0.0182925146,1.45908165 +-0.233680308,4.93882751,0.233680308,0.00328245061,0.181467935,0.0910944045,-0.0659827664,-0.0296313278,0.0182372238,0.334723592 +-1.08727813,4.93890572,1.08727813,0.00114021485,0.178988487,0.0847381279,-0.0455377065,0.156565443,0.0182930045,1.53764713 +-0.126892447,4.93915081,0.126892447,0.000979464035,0.180204004,0.09130577,0.191909969,-0.0820469335,0.0182277877,0.180748612 +-1.088027,4.93945599,1.088027,0.00110393227,0.178950891,0.0847076327,-0.0461575463,0.15667744,0.018292632,1.53870738 +-0.0705006197,4.93965816,0.0705006197,0.000119684206,0.244289339,0.15623498,0.322461128,0.052817151,0.0181830041,0.0999621749 +-1.08718121,4.94035006,1.08718121,0.000764885277,0.179221064,0.0848462209,-0.045681484,0.156119511,0.0182920918,1.53750956 +1.2286098,4.94036484,-1.2286098,0.000376255543,0.123421207,0.0593181737,-0.375049412,-0.0210893247,0.0183067378,1.73775804 +-0.0833718404,4.94040775,0.0833718479,0.000275141094,0.180923253,0.0984757692,0.292146742,-0.0112426123,0.018203076,0.118197739 +1.21266818,4.94048166,-1.21266818,0.000823592825,0.159993097,0.0761723071,-0.222491115,-0.00136368151,0.018305501,1.71520996 +1.19353127,4.94062138,-1.19353116,0.000980608165,0.176774904,0.0857993215,-0.0135273915,0.00925427582,0.018303534,1.68814301 +-0.10019286,4.94098997,0.100192852,0.000254341925,0.178141087,0.0919049978,0.247641534,-0.0572194122,0.018218236,0.142029092 +0.144219533,4.94151831,-0.144219533,0.000426630373,0.18456085,0.0943027809,0.06076736,-0.0515257195,0.0182861239,0.20522882 +-0.195031807,4.94230843,0.195031822,0.000856443134,0.181835383,0.0915747434,0.03248116,-0.0639152527,0.01823139,0.276029557 +0.223908305,4.94232082,-0.223908305,0.00124967203,0.18531321,0.0932018012,-0.0895840228,-0.0203441791,0.0182884522,0.31695348 +-0.797304749,4.94498539,0.797304749,0.00449669687,0.178730711,0.0864824802,-0.0765595585,0.356051028,0.0182881262,1.13004541 +0.718634725,4.94502878,-0.718634665,0.00763966795,0.178854391,0.086640045,-0.059584219,0.321545988,0.0182535499,1.01694477 +-0.256434381,4.94523859,0.256434381,0.0014065305,0.181332782,0.0909759402,-0.124418303,0.00636745431,0.0182358641,0.368969619 +0.432240307,4.94556427,-0.432240307,0.000246872776,0.18193756,0.0892566144,-0.30028519,0.237520218,0.0182482265,0.612523437 +1.04551828,4.94675207,-1.04551828,0.000837001484,0.178301334,0.0843781233,0.054522112,0.0786919966,0.0182638392,1.47861481 +-0.0998040885,4.94869423,0.0998040885,0.000113403825,0.178286195,0.0920435637,0.254083097,-0.0558124371,0.0182136875,0.141958922 +-0.0830105394,4.94876575,0.0830105469,0.000176843198,0.181268975,0.0987874642,0.300444067,-0.0107681043,0.0181981176,0.118116722 +-0.0701631084,4.94877338,0.0701631159,8.19788402e-05,0.244654998,0.156666398,0.332176387,0.0526851974,0.0181764234,0.099879384 +0.281445086,4.94888067,-0.281445086,0.00270280149,0.184983656,0.0923904777,-0.179922193,0.0448902324,0.0182742961,0.399194688 +1.16992104,4.94889927,-1.16992104,0.000572832592,0.179663777,0.0867469534,0.0531754903,0.0558696166,0.0182925519,1.65455461 +-1.00486112,4.94900513,1.00486112,0.000701234792,0.185071588,0.088695012,0.0416984074,0.175471231,0.018285064,1.42117429 +-0.657881021,4.94920826,0.657881021,0.00439226627,0.180711031,0.0887043327,-0.230721876,0.412758738,0.0182783753,0.933132648 +-0.104985423,4.95000458,0.104985416,0.00043272262,0.179017365,0.0921525061,0.246011615,-0.0623646304,0.0182141308,0.148913801 +0.124192834,4.95205498,-0.124192834,0.000327637827,0.183546424,0.0946634114,0.11199645,-0.0497590415,0.0182722975,0.177165538 +-0.908917725,4.952075,0.908917725,0.00239455956,0.181546956,0.0873893872,0.0156855192,0.274362773,0.0182832573,1.28629327 +-0.961456299,4.95299435,0.961456299,0.00179651577,0.184405088,0.0885665268,0.038635008,0.220410585,0.0182807539,1.36084557 +-1.13078809,4.95395088,1.13078821,0.000985297374,0.173895687,0.0825795904,-0.0703091025,0.164957538,0.0182792973,1.59932518 +0.428403705,4.95430946,-0.428403705,0.00416042283,0.182036594,0.0893711373,-0.30775544,0.24109152,0.0182417985,0.606719375 +0.160517693,4.95493364,-0.160517693,0.00103146944,0.1853154,0.0944772512,0.0356961116,-0.0502229072,0.0182807632,0.22786352 +0.136686951,4.95533848,-0.136686951,0.000875304802,0.18435365,0.0947223082,0.0854545459,-0.0513815098,0.0182737783,0.193840951 +0.441816866,4.95615959,-0.441816866,0.00526785851,0.181782588,0.0891933218,-0.303450435,0.255390614,0.0182372797,0.625556171 +-1.01975977,4.95626354,1.01975977,0.000651932962,0.185128614,0.0883771256,0.031492196,0.167206913,0.0182806216,1.44251108 +-0.100410402,4.95655298,0.100410402,0.000272708508,0.178378791,0.0921776071,0.259014994,-0.0565019809,0.0182064921,0.14233093 +-0.285736501,4.95661926,0.285736501,0.00241857348,0.181531787,0.0911350474,-0.207426995,0.0536506549,0.0182317551,0.405821025 +1.11626196,4.95684338,-1.11626196,0.00033868727,0.167293072,0.0784736723,-0.06450928,0.0466650762,0.018278772,1.57868934 +-0.0835616961,4.95728016,0.0835616961,0.000276335573,0.181302845,0.0988431722,0.30783245,-0.0107729901,0.0181893334,0.118459508 +1.11961079,4.95730114,-1.11961091,0.000776089262,0.168546319,0.0793374628,-0.0581093878,0.0533763282,0.0182789415,1.58341956 +-0.320847183,4.95739651,0.320847183,0.00503457151,0.18130815,0.0907220989,-0.302462339,0.126910537,0.0182367768,0.455538601 +-1.14498794,4.9579916,1.14498806,0.000781275507,0.186398655,0.0907761604,-0.0247813538,0.184025079,0.0182759836,1.61937869 +-0.0706841499,4.95806837,0.0706841499,0.000119803357,0.244937599,0.156954616,0.341724783,0.0531702265,0.0181660783,0.100213766 +-1.04963434,4.95886612,1.04963422,0.00123589463,0.185272723,0.087922141,-0.00627007801,0.140889674,0.0182811562,1.48466396 +0.519376695,4.95888615,-0.519376695,0.00850903336,0.180195421,0.0880679414,-0.271838725,0.32857424,0.0182308443,0.739733577 +1.06250286,4.95941877,-1.06250286,0.000904882443,0.179013699,0.0844813883,0.0287835598,0.0655730814,0.0182604641,1.50269651 +0.112499639,4.95969105,-0.112499639,0.000269430282,0.182611376,0.0953698158,0.157517284,-0.0440348536,0.0182587802,0.159929007 +1.15505278,4.9599371,-1.15505278,0.0008254688,0.17560856,0.0845300257,-0.00426741689,0.123808324,0.0182818249,1.63358104 +0.121404618,4.96118355,-0.121404611,0.00051537517,0.183891147,0.0952171236,0.126185745,-0.0482610539,0.0182647929,0.172502846 +0.0982525498,4.96143436,-0.0982525498,0.000424778147,0.1815411,0.0960384607,0.201115623,-0.036209058,0.0182501432,0.140608251 +0.0815386027,4.96154594,-0.0815386027,0.000461978663,0.185554832,0.103313863,0.291752934,-0.0100169089,0.0182359349,0.11669948 +0.0687755346,4.96155739,-0.0687755346,0.00020044946,0.235242873,0.152897403,0.365984261,0.0316456482,0.0182244703,0.0984431058 +-0.410248756,4.96358252,0.410248756,0.00697871903,0.18187964,0.0905888975,-0.408938646,0.260557115,0.0182467978,0.586717427 +-0.73826158,4.96414566,0.73826158,0.00332814548,0.180029467,0.0878433809,-0.143929809,0.409023792,0.0182724204,1.04568732 +-1.17917621,4.96459723,1.17917621,0.000923450396,0.192943513,0.0956563652,0.0641290173,0.12172088,0.0182755534,1.667768 +0.27336365,4.96514702,-0.27336365,0.00265401392,0.185261354,0.0927736685,-0.177732021,0.0436062366,0.0182620995,0.388335794 +1.10541773,4.96547794,-1.10541773,0.000887394068,0.172340035,0.0818090662,-0.038631741,0.0244854037,0.0182705969,1.56330919 +1.05612075,4.9684968,-1.05612075,0.00118574989,0.181417659,0.0858801231,0.0395357162,0.0621914864,0.0182520542,1.49368143 +-1.09880996,4.96911335,1.09880996,0.000756731024,0.18708545,0.0904124156,-0.0784150809,0.0837468281,0.018273415,1.5539732 +-0.934603572,4.96930027,0.934603572,0.00201537483,0.183562472,0.0883679837,0.0360668153,0.256003618,0.0182707068,1.32241595 +1.16306114,4.96999311,-1.16306114,0.000504084979,0.212432414,0.107377455,0.0579062998,0.141502276,0.0182763785,1.64485252 +0.246099234,4.97069502,-0.246099234,0.0017365315,0.185837448,0.0935477689,-0.126802266,0.0146519914,0.0182617698,0.348532617 +-0.212273896,4.97167015,0.212273896,0.0010077249,0.181801826,0.0918876007,-0.0179404914,-0.0363674946,0.0182125531,0.301281214 +-1.09605706,4.97196388,1.09605718,0.000579839165,0.187969312,0.0909777582,-0.0736231953,0.0769424066,0.0182720143,1.55007279 +0.196506768,4.97230101,-0.196506768,0.001357642,0.185517371,0.0939858779,-0.0366416872,-0.0241917931,0.0182662066,0.278862536 +-0.119282171,4.97259235,0.119282164,0.000709773391,0.180206418,0.0919720829,0.224547863,-0.0756918862,0.0182015207,0.170125291 +0.681419015,4.97342205,-0.681419015,0.00255997526,0.18053782,0.0878545269,-0.0870896876,0.357178956,0.0182226598,0.965727091 +-1.03226602,4.97360516,1.0322659,0.000653846073,0.187348753,0.0895821676,0.0256034806,0.136343002,0.0182702336,1.46000171 +1.19222045,4.97371197,-1.19222045,0.000535875268,0.202908158,0.10078273,0.0455443189,0.056687247,0.0182788223,1.68620265 +-0.100136057,4.97496414,0.100136057,0.00027736061,0.17853722,0.0926201046,0.270617723,-0.0564702414,0.018192254,0.143101886 +-0.0833600685,4.97507763,0.0833600685,0.000370066497,0.181461915,0.0990770385,0.323884964,-0.0102555733,0.0181747079,0.119100645 +-0.0705613866,4.97510576,0.0705613866,0.000154589477,0.244804233,0.157158688,0.360217094,0.0531485155,0.0181509349,0.100785464 +1.04403079,4.97511101,-1.04403079,0.00135927321,0.180727601,0.0856751502,0.0533115044,0.0705287755,0.0182432961,1.47654867 +-0.144670978,4.97521877,0.144670978,0.00047607813,0.181489453,0.0920557529,0.166075185,-0.0787260383,0.0182042252,0.20474419 +-1.06168878,4.97577477,1.0616889,0.000864771253,0.188996926,0.0898475945,-0.0249819793,0.118003547,0.0182709191,1.50154197 +0.154256761,4.97673225,-0.154256761,0.00110650144,0.185831577,0.0951431245,0.0548874661,-0.0463532135,0.0182651468,0.218770981 +-0.865914702,4.97703314,0.865914583,0.00332779298,0.181349874,0.087707974,-0.00673170527,0.33777684,0.0182668064,1.22517073 +-1.17232931,4.97948074,1.17232931,0.000577101193,0.266891688,0.143171504,0.135724232,0.215615168,0.0182627924,1.65808368 +-0.147374704,4.98054218,0.147374704,0.000648508139,0.181627139,0.092137672,0.161082745,-0.0777734965,0.0182004962,0.208751723 +-1.13191605,4.98067713,1.13191605,0.000358575198,0.510219991,0.273085117,-0.0260010175,0.112274751,0.0182636548,1.60091925 +-0.107287541,4.98070192,0.107287541,0.000299252628,0.178701952,0.0920773223,0.254605889,-0.0613720268,0.0181891732,0.152731836 +0.0992384702,4.98087788,-0.0992384702,0.000288394105,0.181840509,0.0964609832,0.212986767,-0.0350597389,0.0182365794,0.140808403 +0.0823758915,4.98144436,-0.0823758915,0.000280594249,0.18558833,0.103620082,0.304600894,-0.00832998194,0.0182218049,0.116863437 +-1.14295697,4.98171043,1.14295697,0.000298209401,0.540111423,0.302051306,0.0347911157,0.183693647,0.018262146,1.6165055 +0.0695118755,4.98202038,-0.0695118755,0.000121304576,0.235096812,0.152862087,0.381925404,0.0318174437,0.0182100609,0.0985950679 +-0.459076226,4.98206997,0.459076226,0.00426314911,0.182684451,0.0909599587,-0.41354233,0.347418547,0.0182390101,0.65129137 +1.15080822,4.98230219,-1.15080822,0.000310363772,0.55507493,0.31323576,0.051919654,0.190766186,0.0182710607,1.62757838 +-0.146020845,4.9823308,0.14602083,2.02211049e-05,0.181605533,0.092171602,0.164947271,-0.0777098164,0.0181991365,0.206855446 +0.104603797,4.98234653,-0.104603797,0.000276876293,0.182639182,0.0964276567,0.194323629,-0.0375408232,0.0182398781,0.148374632 +1.12077856,4.98249865,-1.12077856,0.000114836112,0.523106456,0.277138472,0.011920155,-0.0694417283,0.0182640534,1.58507669 +1.12334085,4.98250294,-1.12334073,0.000279336557,0.52758342,0.281676501,0.0181369223,-0.0477112345,0.0182645563,1.58869421 +-1.22879708,4.98262787,1.22879696,0.000193201122,0.103882127,0.053379897,-0.422573119,-0.0191758983,0.0182658751,1.73779929 +-0.698462069,4.98270798,0.698462069,0.00457686186,0.182158276,0.0895039588,-0.191875026,0.444897354,0.0182562787,0.989202023 +-1.22006965,4.98276663,1.22006965,0.00042530772,0.141173333,0.0656685606,-0.325096428,0.00803819858,0.0182658248,1.72545624 +-0.143071681,4.98291874,0.143071666,0.00040974858,0.181497574,0.0922111198,0.173230827,-0.0772835612,0.0181982033,0.20250684 +-1.20960271,4.98293352,1.20960259,0.000309264113,0.180367425,0.0877889022,-0.147601798,0.0373910442,0.0182655007,1.71065354 +-1.20819628,4.9830904,1.2081964,0.000341009727,0.180582762,0.0878834948,-0.1405316,0.0410380475,0.0182651412,1.70866227 +0.339219689,4.98323011,-0.339219689,0.00376193109,0.18307066,0.0907179788,-0.283144504,0.151951358,0.018235825,0.479776114 +-0.148843393,4.98366404,0.148843408,0.000754032866,0.181641251,0.0921763107,0.157199353,-0.0766115338,0.0181983244,0.210665554 +-0.99438709,4.98491621,0.99438709,0.00094367261,0.18729575,0.0899394229,0.0542525612,0.185059428,0.0182605311,1.4067204 +-1.22879541,4.98491812,1.22879529,2.03040636e-05,0.1035375,0.0533477627,-0.421893895,-0.0188486427,0.0182641186,1.73780501 +-1.22030544,4.98502541,1.22030544,4.41175471e-05,0.140785262,0.0654429942,-0.326499164,0.00786859263,0.0182640851,1.72579777 +-1.21011567,4.98515463,1.21011579,2.59171666e-05,0.180516422,0.0878429189,-0.150954321,0.0369898975,0.0182638187,1.71138692 +1.07989371,4.98517132,-1.07989371,0.000800089445,0.18407923,0.0896625966,0.0194748864,-0.0283977855,0.0182527695,1.52731085 +-0.253904104,4.98565006,0.253904104,0.00260125659,0.182552755,0.0921732187,-0.152162492,0.0321200565,0.0182078201,0.362232447 +1.22882986,4.98583603,-1.22882986,0.000176031928,0.115957379,0.059518978,-0.392761022,-0.0139241507,0.0182733294,1.73784161 +1.2201035,4.9859786,-1.22010362,0.000387983426,0.15464431,0.0728189871,-0.293724388,0.00441018632,0.0182722379,1.72550046 +1.20963609,4.98615026,-1.20963597,0.000384468032,0.186246142,0.0908994898,-0.119646087,0.0280360896,0.0182710718,1.71069694 +-1.20890319,4.98628569,1.20890319,0.000279882224,0.18693158,0.0915905163,-0.129268244,0.0428601988,0.0182629339,1.70965552 +1.18975019,4.98697186,-1.18975019,0.000635941455,0.213377088,0.106989004,0.0847988054,0.0852633417,0.0182686988,1.68273485 +-1.18942797,4.987957,1.18942809,0.000454143388,0.229338303,0.117521331,0.0914216191,0.116431832,0.0182598904,1.68219852 +-0.953938127,4.98796463,0.953938127,0.0014279444,0.185889721,0.0896035582,0.0594296008,0.233440533,0.0182568375,1.34982049 +1.20944381,4.9879694,-1.20944381,0.000150515873,0.187485725,0.0916152447,-0.115762159,0.0315449163,0.0182696935,1.7104274 +1.22882164,4.98800659,-1.22882164,1.4801537e-05,0.115495622,0.0594789349,-0.393190295,-0.0135463886,0.0182717517,1.73784375 +1.22044313,4.98813438,-1.22044301,3.23317436e-05,0.154165789,0.0725473017,-0.296893328,0.00466438709,0.0182706807,1.72599423 +0.0990431681,4.98816824,-0.0990431681,0.000199475602,0.182312593,0.0967989862,0.217735603,-0.033577282,0.0182310585,0.140988708 +0.0693370327,4.9882412,-0.0693370402,7.05268685e-05,0.235731944,0.153340429,0.386644542,0.0319999121,0.0182053298,0.0986253992 +1.1585685,4.98824215,-1.1585685,0.000200598661,0.583423376,0.355094552,0.152690381,0.222474054,0.0182677396,1.63849902 +0.082181707,4.98827028,-0.082181707,0.000174922898,0.186028928,0.103975832,0.309519649,-0.0074061472,0.0182166882,0.116948538 +1.21038795,4.98828745,-1.21038806,1.8499426e-05,0.186405301,0.0909896791,-0.124809392,0.028848175,0.018269565,1.71177363 +1.11285901,4.98910141,-1.11285901,0.000311798474,0.510314882,0.273920804,0.0567025729,-0.109689832,0.0182582587,1.57383311 +-0.494623959,4.98912764,0.494623959,0.00493668206,0.183048069,0.0910562649,-0.411019474,0.396962464,0.0182381105,0.703068018 +-1.228809,4.98943901,1.228809,0.000131696521,0.102862209,0.0531140305,-0.415160388,-0.0179672949,0.0182611234,1.73780608 +-1.2205925,4.98946619,1.2205925,0.000289488147,0.139083236,0.064561367,-0.324062049,0.00790903997,0.0182611085,1.7261858 +-1.21071899,4.98949766,1.21071887,0.000295437465,0.178614676,0.0868192688,-0.153481007,0.0360292606,0.0182609055,1.71222246 +-0.222006664,4.99003315,0.222006664,0.00089681556,0.182248875,0.0923063383,-0.057229504,-0.00961662643,0.0182012264,0.31473884 +-1.00235868,4.99003983,1.00235868,0.000981416437,0.188213184,0.0903763771,0.0565852113,0.176251233,0.0182571113,1.41784453 +-0.146657467,4.99023151,0.146657467,0.000549265766,0.181670472,0.0922963619,0.162933484,-0.0762251616,0.0181929506,0.20752348 +-0.207954153,4.99029636,0.207954153,0.000446245918,0.182221279,0.0923481733,-0.0162039548,-0.0296791866,0.0181995612,0.295714736 +0.210736796,4.99030876,-0.210736781,0.000883948582,0.186174408,0.0942873284,-0.0680441931,-0.0116041219,0.0182523672,0.300128669 +0.221640095,4.99059391,-0.221640095,0.00264733844,0.186508596,0.0943870246,-0.0908264145,-0.00330092851,0.0182504635,0.314837456 +1.22883272,4.99083853,-1.22883272,0.000113425005,0.114780352,0.0592207126,-0.390212119,-0.0130000738,0.0182700641,1.73784125 +-1.10734701,4.9908824,1.10734701,0.000266831834,0.508192539,0.277551919,0.0102275554,-0.0706146285,0.0182580389,1.56604671 +1.22066307,4.99092913,-1.22066307,0.000249471283,0.153120607,0.0720101967,-0.296672493,0.00498611294,0.0182690267,1.72628736 +1.21085203,4.99103737,-1.21085203,0.000211016421,0.185830176,0.0907201096,-0.126345009,0.0288246833,0.0182679556,1.71241224 +-0.0708763003,4.99176884,0.0708763003,0.000120422133,0.247144371,0.159131885,0.375683516,0.0530956946,0.0181351248,0.100503609 +-1.16662502,4.99185848,1.16662502,0.000224370378,0.626455367,0.40530929,0.271377087,0.299586177,0.0182555877,1.65001583 +-0.374195933,4.99228668,0.374195933,0.00604218338,0.183044255,0.0917558298,-0.417271018,0.238076061,0.0182220396,0.531707883 +-0.0838001221,4.99258852,0.0838001221,0.000279351836,0.182302073,0.0998726562,0.33861199,-0.00897119008,0.0181580894,0.118818529 +0.334122598,4.99259138,-0.334122598,0.00204536156,0.183092728,0.0908245221,-0.28629601,0.153109387,0.0182289332,0.472666323 +-0.907893777,4.99278116,0.907893777,0.00328343734,0.183287114,0.0884660706,0.0355303772,0.295428693,0.0182542671,1.28525615 +-1.04751742,4.99290562,1.04751742,0.00128876814,0.189689443,0.0905853957,0.00633187313,0.114056319,0.0182591695,1.48158956 +-1.10520744,4.99311209,1.10520744,0.00021148927,0.502323747,0.274609536,0.0179526899,-0.0802241862,0.0182573255,1.56301332 +-0.100751825,4.99325085,0.100751825,0.000249048346,0.178466052,0.0927868113,0.282621354,-0.0566675738,0.0181754436,0.142839804 +1.0745753,4.99351072,-1.0745753,0.00116353948,0.189499497,0.0931024849,0.0420565233,-0.0365262926,0.0182454698,1.51980197 +0.183290303,4.99401522,-0.183290303,0.00131689303,0.186067194,0.0948299319,-0.00259878673,-0.0242459998,0.0182510111,0.259884447 +1.00046432,4.99435425,-1.00046432,0.00135197374,0.181766689,0.0868829191,0.108625516,0.0892362148,0.0182184316,1.4153707 +-0.19866778,4.99441481,0.19866778,0.00118477456,0.182118863,0.0923743621,0.0125608006,-0.0397810265,0.0181958098,0.28154701 +-0.117195591,4.99513721,0.117195584,0.000789870624,0.180499971,0.0924836546,0.23955363,-0.0701474175,0.01818409,0.166925907 +0.333408207,4.99549055,-0.333408207,0.000963698432,0.183116481,0.0908678025,-0.287001193,0.153970361,0.0182266384,0.471732646 +0.336937368,4.99554205,-0.336937338,0.00323887169,0.182977259,0.0907504112,-0.291329294,0.159103408,0.0182260182,0.476681441 +1.18327963,4.99571896,-1.18327963,0.000455667789,0.305779546,0.169587255,0.217282265,0.189747378,0.0182626862,1.67358303 +-0.776697278,4.99618721,0.776697278,0.00329147186,0.181751579,0.0886844546,-0.0936383754,0.423047811,0.0182510875,1.09993577 +0.334947199,4.99626923,-0.334947199,3.29291433e-05,0.183015749,0.0907884315,-0.290480703,0.156891048,0.0182257406,0.474021584 +-1.18306994,4.99675322,1.18306983,0.000301588618,0.335504413,0.191255629,0.250843853,0.211398005,0.0182524174,1.67320597 +-1.07756209,4.99702072,1.07756209,0.00080244313,0.199537367,0.098293744,-0.0243949071,0.00970758498,0.0182598587,1.52397776 +0.0696508139,4.99717045,-0.0696508065,0.000121804798,0.236022189,0.153523654,0.393653363,0.0320843793,0.0181994941,0.0986781269 +-1.01771343,4.9978261,1.01771343,0.000895730162,0.18949911,0.0910015851,0.0454136878,0.146263942,0.0182532128,1.43939614 +0.0826007426,4.99806404,-0.0826007426,0.000281936518,0.18636167,0.104279555,0.317523092,-0.00708961487,0.0182099957,0.117033288 +-0.52060771,4.99820709,0.52060771,0.00363147841,0.18350251,0.0913047343,-0.390982717,0.421154171,0.0182346925,0.740251243 +0.0996033847,4.9987669,-0.0996033847,0.000286204799,0.182814777,0.0972462818,0.225267738,-0.0331776664,0.0182237048,0.141126662 +0.335247099,4.99879932,-0.335247099,0.0029598726,0.18298164,0.0907831043,-0.294541478,0.159987181,0.018223837,0.474280775 +1.2088207,4.99943447,-1.2088207,0.000198870606,0.205329746,0.102746472,-0.0657149628,0.0387757793,0.0182629507,1.70953286 +0.120974615,5.00014877,-0.120974615,0.000393854658,0.185761034,0.0967033058,0.151183724,-0.04294613,0.0182378516,0.17114532 +-0.987165987,5.00132179,0.987165987,0.00133514404,0.18784973,0.0903886333,0.0643203557,0.195558012,0.0182491597,1.39635539 +-0.105291814,5.00141907,0.105291821,0.000208088866,0.179356813,0.0930555761,0.276997656,-0.0607649013,0.0181719121,0.149306431 +-0.0703901649,5.00146675,0.0703901649,8.80721636e-05,0.248011947,0.159985423,0.385727584,0.0527863503,0.0181295257,0.100249521 +-0.732609868,5.0014863,0.732609868,0.00360973552,0.182201803,0.0893493667,-0.145245776,0.452786565,0.0182457436,1.03708076 +-0.0833018571,5.00155783,0.0833018571,0.000191579646,0.18283008,0.100369602,0.347469777,-0.00775198918,0.0181526616,0.118588105 +-0.100233935,5.00161219,0.100233927,0.000123286329,0.17856136,0.093004398,0.289054632,-0.055527892,0.0181698892,0.142637417 +0.985781908,5.00165701,-0.985781968,0.00285342289,0.181463867,0.0868404582,0.111135393,0.0975029096,0.0182125829,1.394454 +-0.83477664,5.0018568,0.83477664,0.00442323368,0.181582898,0.088108778,-0.0204842351,0.378229916,0.0182498004,1.18134177 +0.116919316,5.0018754,-0.116919309,0.000216900764,0.185291454,0.0968762934,0.165583879,-0.0408021621,0.0182341542,0.165386483 +0.669460952,5.00273705,-0.669460893,0.00480660098,0.181652874,0.0887606591,-0.106587037,0.383561313,0.0181971975,0.94860667 +1.17788756,5.00300932,-1.17788768,0.000183921453,0.656268299,0.453340918,0.411570489,0.30459258,0.0182597414,1.66595674 +0.155212671,5.00332546,-0.155212671,0.00161000155,0.186699316,0.0958129391,0.0623460189,-0.0370600596,0.0182452407,0.22119835 +-1.17776918,5.00409937,1.17776918,0.000126156214,0.679175854,0.477618486,0.452255428,0.306857586,0.0182485469,1.6657089 +0.120614238,5.00421906,-0.120614238,1.07599308e-05,0.185939282,0.0968648568,0.154481918,-0.0421869867,0.0182349272,0.170738116 +1.09318137,5.00467491,-1.09318137,0.000286565453,0.481657028,0.266447634,0.162528321,-0.209680378,0.0182453636,1.5461061 +0.123651326,5.00497246,-0.123651326,0.000617571292,0.186052963,0.0968288928,0.147466004,-0.0418637656,0.0182354692,0.174933523 +0.119673654,5.00534964,-0.119673654,8.70814911e-05,0.185922235,0.0969566852,0.15797627,-0.0417392179,0.0182337034,0.169428378 +0.120699167,5.00691319,-0.120699167,0.000238952605,0.186039761,0.096937336,0.155583203,-0.0419191532,0.0182331931,0.170838237 +0.911119938,5.00713062,-0.911119938,0.00469304482,0.177293539,0.0849126801,0.104930349,0.164821386,0.0182120409,1.28911543 +-0.176596373,5.00732422,0.176596373,0.00154410419,0.18189773,0.0924676284,0.0718906373,-0.0518215187,0.0181855727,0.251131952 +0.118798137,5.0082345,-0.118798137,0.000211570819,0.185914278,0.0970926508,0.16301626,-0.0411928594,0.0182309393,0.168091223 +-0.341077447,5.00935888,0.341077447,0.00219427887,0.183360532,0.0922534391,-0.398601025,0.203447938,0.0182055775,0.485773683 +-0.860150337,5.0096755,0.860150337,0.00234771473,0.182597861,0.0885301754,0.00514750043,0.360560358,0.0182437114,1.21728301 +-0.100688063,5.01014996,0.100688055,0.000269709184,0.178769201,0.0931792259,0.294531673,-0.0550538003,0.0181611441,0.142735288 +-0.0837194771,5.01074505,0.0837194771,0.000277467974,0.183093756,0.100570217,0.354686886,-0.0076421462,0.0181418937,0.118693262 +-0.610153317,5.01096439,0.610153317,0.00300137186,0.184922785,0.0919521004,-0.304980427,0.487542599,0.0182326771,0.863314331 +-1.06673503,5.01111507,1.06673503,0.000810481957,0.194100529,0.0951031148,0.00215615891,0.010011645,0.018251976,1.50876474 +-0.0707834587,5.0114131,0.0707834587,0.000120246914,0.24882412,0.160623178,0.393809259,0.0529858321,0.0181165487,0.100363687 +1.08923137,5.01148653,-1.08923125,0.000400891528,0.466363192,0.260345727,0.195936009,-0.215011016,0.0182401761,1.54053259 +1.01327562,5.01155806,-1.01327562,0.000816581538,0.185153261,0.088718392,0.101895377,0.0703743547,0.0182069074,1.43333161 +-1.08988321,5.01276302,1.08988321,0.000287842966,0.444778264,0.244760901,0.0763759315,-0.139925361,0.0182510298,1.54140317 +0.0690737814,5.01485348,-0.0690737814,0.000134566333,0.238229394,0.155456036,0.408545673,0.0322836414,0.0181866251,0.0986380428 +0.0989573002,5.01486397,-0.0989573002,0.000320446386,0.184010819,0.0980852917,0.237755328,-0.0313930586,0.018211823,0.141217291 +0.0819932967,5.0149107,-0.0819932967,0.000299437641,0.187827379,0.105366088,0.333068192,-0.00657060603,0.0181976426,0.117050834 +0.950175285,5.01499844,-0.950175285,0.00217553647,0.179741189,0.086089626,0.11151953,0.128991336,0.0182043873,1.3439008 +0.70116502,5.01549435,-0.70116502,0.0061794566,0.181639016,0.0886405036,-0.0573919788,0.373403162,0.0181933306,0.993087947 +-1.1993618,5.01835442,1.19936192,0.000474339293,0.259574115,0.136502966,0.0932975262,0.0932605788,0.0182404295,1.69626606 +-0.623932481,5.01865721,0.623932481,0.00306001888,0.185183957,0.0921138898,-0.298140854,0.501648605,0.0182278417,0.882882893 +0.311362624,5.01991844,-0.311362624,0.00120821095,0.184261218,0.0919994488,-0.271930397,0.137836367,0.0182124972,0.440340996 +-0.132839411,5.0217123,0.132839411,0.000574665493,0.181233793,0.0927856043,0.195283979,-0.0667415112,0.0181654394,0.188761219 +-1.19395781,5.02242947,1.19395769,0.000216270462,0.390141189,0.233425975,0.317550123,0.157618999,0.0182375051,1.68862295 +-0.110894024,5.0230155,0.110894024,0.000177304202,0.180220008,0.0933157578,0.269124806,-0.0618547946,0.018155355,0.156952322 +0.997896731,5.0230937,-0.997896671,0.00193966622,0.18354021,0.0879951343,0.11995174,0.0828016996,0.0181956254,1.41169846 +0.922618508,5.02325249,-0.922618508,0.00162605161,0.177637145,0.085101068,0.116338715,0.15415138,0.018198723,1.30517006 +-0.641876459,5.02381229,0.641876459,0.00131658034,0.185260743,0.0920650139,-0.277503669,0.504388273,0.0182249099,0.908006787 +-0.933057725,5.02391815,0.933057725,0.00204210728,0.185459793,0.0897004753,0.0738786906,0.268986285,0.0182320271,1.32011247 +0.131564498,5.02425289,-0.131564483,0.000274438207,0.18713358,0.0971958339,0.13226904,-0.0368926786,0.0182250869,0.186068609 +1.20066214,5.02527761,-1.20066214,0.000352166826,0.254937112,0.134628147,0.117176533,0.0736617595,0.018247202,1.69801855 +-1.0825206,5.02527761,1.0825206,0.000290546683,0.389532119,0.212650344,0.111333594,-0.153546542,0.0182473361,1.53109121 +0.0994453281,5.02579355,-0.0994453281,0.000385380408,0.184383065,0.0984271839,0.243371546,-0.0311465766,0.0182040762,0.141230851 +-1.18945467,5.02582359,1.18945479,9.20186285e-05,0.70829761,0.531849682,0.569779754,0.222428411,0.0182361193,1.68225455 +0.0824116319,5.02640057,-0.0824116319,0.00028508628,0.188704863,0.106122732,0.339828432,-0.00600121683,0.0181892421,0.117051125 +-0.598131061,5.026896,0.598131061,0.00275262399,0.185598686,0.0925287306,-0.327473521,0.498021394,0.0182207432,0.846269786 +0.069436878,5.02695465,-0.069436878,0.000123082733,0.239722282,0.1567702,0.4170807,0.0320315734,0.0181783196,0.0986277014 +-0.0702814609,5.02781343,0.0702814609,0.000148145948,0.249029756,0.160998866,0.408300966,0.052351743,0.0181007851,0.100380629 +-0.0999655575,5.02783537,0.0999655575,0.00036765766,0.179304153,0.0937140062,0.304858536,-0.0533014871,0.0181465838,0.142834917 +-0.0831226781,5.02784634,0.0831226781,0.000353320414,0.183577031,0.101009771,0.368532538,-0.0081286598,0.0181270335,0.118749216 +-1.02057862,5.02808285,1.02057862,0.00059950602,0.191051692,0.0921286717,0.0666847229,0.134196445,0.0182322077,1.44349051 +0.813241005,5.02874088,-0.813241065,0.00382071175,0.179009914,0.086501427,0.0675208643,0.270470917,0.018198153,1.15016687 +1.19540048,5.02886105,-1.19540048,0.000197837813,0.377740413,0.226230398,0.330210149,0.130558431,0.018244883,1.69057739 +-0.161156327,5.02951193,0.161156327,0.00109680311,0.181962252,0.0929006562,0.115220696,-0.0558063462,0.0181659162,0.228808522 +-0.118646838,5.02966022,0.11864683,0.000241722024,0.181106716,0.0931733847,0.249000981,-0.0665112585,0.0181535352,0.16814509 +-1.00291514,5.02981091,1.00291514,0.000692025409,0.190059379,0.0917803645,0.0882003158,0.166291863,0.0182291754,1.41872537 +-0.144353956,5.02997494,0.144353956,0.00050487835,0.181925386,0.0930068716,0.162418306,-0.066746667,0.0181630366,0.206077769 +0.594626963,5.03030872,-0.594626963,0.0053762286,0.182223767,0.0896856859,-0.223793522,0.433896989,0.0181640163,0.843606651 +1.22867775,5.03082275,-1.22867775,0.000143561396,0.104665473,0.055292584,-0.348617375,-0.00531282928,0.0182464141,1.73776543 +1.2234149,5.03088665,-1.2234149,0.00031572135,0.138426781,0.0644584745,-0.292251527,0.00955385715,0.018245589,1.73032212 +1.21709931,5.03096294,-1.21709931,0.00038843599,0.17740041,0.0868160948,-0.147180259,0.0282481909,0.0182448458,1.72138977 +0.910294533,5.03102541,-0.910294592,0.00294972537,0.177551895,0.0851466358,0.117529079,0.168940008,0.0181928761,1.28767133 +-0.217045292,5.03134203,0.217045307,0.000723197358,0.183532536,0.0935119614,-0.0710798353,-0.00171875302,0.0181721784,0.307244301 +-0.186665446,5.03149414,0.186665446,0.0019068293,0.182690799,0.0931034237,0.0250204206,-0.0371982828,0.0181691516,0.266029775 +-0.624797702,5.03153419,0.624797642,0.000234914914,0.185895994,0.0926200971,-0.300753117,0.516082764,0.0182187855,0.884674251 +1.1910181,5.03183842,-1.1910181,8.40642097e-05,0.698738635,0.526291668,0.595450759,0.188762814,0.0182436388,1.68437958 +0.55887121,5.03207636,-0.55887121,0.0063875732,0.181903124,0.0896010399,-0.280380428,0.430016458,0.0181620084,0.793840468 +-0.232220024,5.03253841,0.232220024,0.00161634176,0.183748439,0.0935880691,-0.1193306,0.0193274394,0.0181729067,0.328781396 +-1.22871089,5.03432465,1.22871089,0.000133665715,0.0951835886,0.0504222214,-0.353651643,-0.00916882232,0.0182311106,1.73783171 +-1.22348881,5.0343399,1.22348881,0.000294020283,0.121081993,0.0553544499,-0.308397233,0.0078667514,0.0182307679,1.73044574 +-1.21722186,5.03435755,1.21722186,0.000253197446,0.158581331,0.0761301219,-0.190185457,0.0257938839,0.0182304718,1.72158217 +-1.03405428,5.03481197,1.0340544,0.00137631642,0.190403908,0.0919689313,0.0612931028,0.105269283,0.0182292592,1.46252215 +-0.225235462,5.03541327,0.225235477,0.000322106527,0.183829814,0.0936926901,-0.101014815,0.010278943,0.0181701817,0.319339633 +-0.855251312,5.03542805,0.855251312,0.00138493453,0.183089525,0.0889857858,0.0196729265,0.378250092,0.0182252564,1.2105267 +1.20596099,5.03601742,-1.20596087,0.000448006118,0.252188861,0.133279935,0.0820083693,0.0640920326,0.0182413999,1.70552564 +0.804230571,5.03627539,-0.804230571,0.00367291179,0.179367602,0.0867838338,0.0596088879,0.281263381,0.0181904938,1.13742638 +1.20371628,5.03643322,-1.20371628,0.000126868094,0.267526627,0.143177807,0.126930758,0.0710835904,0.0182410479,1.70237803 +0.817377627,5.03665829,-0.817377567,0.00306829484,0.179110065,0.0865623951,0.0737157166,0.269399464,0.0181917306,1.15607381 +-1.21152902,5.03687859,1.21152902,0.000359942613,0.202073187,0.10154742,-0.0747818798,0.0466005094,0.0182288811,1.71346021 +0.195691884,5.03744698,-0.195691884,0.00111168216,0.187096849,0.0954425484,-0.0356822275,-0.00445828028,0.0182203762,0.276916862 +0.813156664,5.03760052,-0.813156664,4.42198652e-05,0.179202333,0.0866411626,0.0709685609,0.273287952,0.0181909073,1.15019536 +1.19881988,5.03846836,-1.19881976,0.000167873368,0.399325788,0.243695647,0.363331497,0.1140453,0.0182397868,1.69545281 +-0.115917526,5.03847265,0.115917534,0.000164959842,0.181247011,0.0936459303,0.260804087,-0.0645787194,0.018145157,0.164492875 +-0.518335223,5.03859997,0.518335223,0.00421935832,0.185275018,0.0929379016,-0.433480859,0.485957384,0.0182075147,0.735892534 +0.278284818,5.03906155,-0.278284818,0.00180763681,0.185802951,0.0934792757,-0.236987829,0.101624057,0.0182046499,0.393620163 +-0.227631956,5.0391984,0.227631956,0.000134917471,0.183917224,0.093756251,-0.112696283,0.0177006312,0.0181678813,0.32281217 +-0.119539954,5.03939199,0.119539961,4.20965516e-05,0.181248873,0.0933356956,0.24841544,-0.0659126192,0.0181455463,0.169720545 +0.81455344,5.0399065,-0.81455344,1.54005447e-05,0.179238528,0.0866660997,0.0733108521,0.273113549,0.018189026,1.15217352 +1.1947391,5.04016447,-1.19473922,7.22517871e-05,0.711178005,0.547041595,0.648525655,0.155597284,0.0182390343,1.68968141 +-0.125892594,5.04074192,0.125892594,0.000410749752,0.181425989,0.0932888389,0.227977812,-0.0650608242,0.0181460027,0.178289428 +0.0689392239,5.04171848,-0.0689392239,0.000174412853,0.242141515,0.158957168,0.42889756,0.0310457982,0.0181671567,0.0985447764 +0.0818323195,5.04180288,-0.0818323195,0.000414596492,0.190186977,0.107269622,0.351399213,-0.00604951382,0.01817731,0.11700061 +0.0987581685,5.04191017,-0.0987581685,0.000339367107,0.185186312,0.0989255756,0.253525585,-0.029260125,0.0181917455,0.141223773 +-0.615275085,5.04207516,0.615275085,0.00260882289,0.186282694,0.0930406377,-0.320635796,0.531357825,0.0182113368,0.870623708 +0.820236385,5.04207945,-0.820236385,0.00303988764,0.179119498,0.0865704119,0.078111209,0.267065644,0.0181872733,1.16005814 +-1.20415604,5.04212046,1.20415592,0.000334826327,0.255603313,0.135283604,0.0783113837,0.0690252483,0.0182255972,1.70310378 +0.815949798,5.04237509,-0.815949857,7.90582126e-05,0.179241106,0.086665079,0.076032728,0.272110343,0.0181871355,1.15411973 +-0.830796838,5.04259682,0.830796897,0.00511440635,0.183173075,0.0893168971,-0.0102919517,0.41550076,0.0182205159,1.17584074 +-0.277131975,5.04273224,0.277131975,0.00314763468,0.18442446,0.093714796,-0.281797916,0.106968552,0.0181728508,0.393149257 +-0.984434485,5.04283905,0.984434485,0.000871794822,0.189585552,0.0917670727,0.0970576927,0.189937115,0.0182199869,1.39258409 +-1.0581162,5.04306602,1.0581162,0.00100448681,0.194170654,0.0965420306,0.0666351095,0.00254915399,0.0182298757,1.49655557 +0.812571347,5.04321241,-0.812571347,0.00437860796,0.179422572,0.0868043751,0.0724145994,0.277391583,0.0181860384,1.14929676 +-0.118634172,5.04333591,0.118634179,4.73358741e-05,0.181338996,0.0934605151,0.251739889,-0.0657218844,0.0181416664,0.168594778 +-0.950380206,5.04333591,0.950380206,0.00253487658,0.187644958,0.0908798426,0.0967163891,0.249308139,0.0182176884,1.34465981 +0.109054491,5.0435338,-0.109054483,0.000442863093,0.186467707,0.0986453742,0.213209689,-0.0308784842,0.0181992222,0.155325532 +-0.0709461272,5.04364967,0.0709461272,0.000120366247,0.24987185,0.161952883,0.421296865,0.0518534184,0.0180831142,0.100618556 +-1.19950342,5.04371929,1.19950342,0.000185807323,0.396076262,0.242706686,0.310859978,0.0952185467,0.0182247981,1.69652319 +-0.0839195997,5.04433775,0.0839195997,0.000277775718,0.184085846,0.101474307,0.379151165,-0.00784323737,0.0181091316,0.119008377 +-0.713673174,5.04483891,0.713673115,0.00358441169,0.184802294,0.0914156586,-0.167977244,0.507380486,0.0182140842,1.01081479 +-0.100938432,5.04487085,0.100938439,0.000243017261,0.179312289,0.0938532799,0.31052357,-0.0524098948,0.0181289967,0.143130124 +-1.19562626,5.0450511,1.19562626,8.0087797e-05,0.693381786,0.536452413,0.563979447,0.112031743,0.0182244293,1.69103944 +1.02330887,5.04569101,-1.02330887,0.0012743806,0.190338954,0.092077136,0.115673378,0.0425680503,0.0181826167,1.44721591 +1.02953959,5.04603529,-1.02953959,0.000990494736,0.19137831,0.0926191285,0.11102844,0.0355951488,0.0181842372,1.45604742 +-0.111579284,5.04622173,0.111579284,0.000214937027,0.180646971,0.0937675238,0.278208435,-0.06048619,0.0181341823,0.157936811 +0.187083885,5.04623556,-0.18708387,0.000797556015,0.187454015,0.095875971,-0.0163205229,-0.00662326301,0.0182144623,0.265049666 +0.121747039,5.04668522,-0.121747047,0.000936797704,0.187807739,0.097967267,0.168658435,-0.0329610147,0.0182058252,0.174217999 +0.145895541,5.04703999,-0.145895541,0.000762303767,0.188524827,0.0974723622,0.100961871,-0.0302099697,0.0182141885,0.206520841 +-0.634423137,5.04892159,0.634423137,0.00268557318,0.186733499,0.0932251811,-0.289985001,0.536123693,0.0182071328,0.897451997 +-0.304106712,5.04910231,0.304106712,0.00325025991,0.184442431,0.093568407,-0.361343682,0.168019623,0.0181728527,0.431313515 +0.143790007,5.04917288,-0.143790007,0.000385665247,0.188600361,0.0976216644,0.108212039,-0.0300338119,0.0182121899,0.203476951 +0.146093532,5.04919004,-0.146093547,0.000116891853,0.188603684,0.0975249857,0.100705691,-0.0291718319,0.018212501,0.206889734 +-1.07662487,5.0493784,1.07662487,0.000345770444,0.327223122,0.177149847,0.163603574,-0.136666164,0.0182307884,1.52273369 +0.191738755,5.04946423,-0.19173874,6.24163295e-05,0.187379569,0.0957363695,-0.0284777582,-0.00183770037,0.0182117522,0.271895766 +0.276629418,5.0502038,-0.276629418,0.00127039419,0.185936317,0.0936434343,-0.241063878,0.106972001,0.0181964263,0.391417176 +-0.475139618,5.05034208,0.475139618,0.00332558015,0.184459254,0.0927115157,-0.50880599,0.471318752,0.0181952938,0.673091292 +-0.143288806,5.05079126,0.143288806,0.000571291777,0.182364672,0.0935273767,0.169590354,-0.0601296946,0.0181467328,0.203379124 +1.05613947,5.05093002,-1.05613947,0.00111129787,0.211676121,0.107669979,0.14493826,-0.0404271372,0.0181907825,1.49367285 +0.189257771,5.05135679,-0.189257786,0.000181860742,0.187598899,0.095935829,-0.0217730571,-0.00316125411,0.018210426,0.268348604 +-0.221588895,5.0520072,0.22158888,0.000762293988,0.183913112,0.093896389,-0.101639822,0.0166626498,0.0181584433,0.313604295 +-0.675095677,5.05237293,0.675095677,0.00229781866,0.186286211,0.0927657336,-0.230451733,0.53340131,0.0182068236,0.956048012 +0.278847963,5.05242729,-0.278847933,0.00015115182,0.185923845,0.0936147422,-0.247788176,0.111808017,0.0181944203,0.394732952 +0.146294475,5.05281258,-0.14629449,0.000597241393,0.188637897,0.0975579992,0.100717798,-0.0280265436,0.0182100069,0.206997111 +0.494539201,5.05287075,-0.494539171,0.0096671721,0.181516007,0.0897451937,-0.38485086,0.425834,0.0181477871,0.705970943 +1.02851546,5.05358315,-1.02851546,0.000520919741,0.191656992,0.0929231942,0.117500827,0.0329093225,0.0181780457,1.45460653 +-0.119016841,5.0536232,0.119016834,0.00033723269,0.181304663,0.0935589895,0.252345085,-0.0634306818,0.0181320459,0.168495297 +-0.100541487,5.05400848,0.10054148,0.000162178432,0.179558605,0.0940835401,0.314784676,-0.0501444414,0.0181225855,0.143167064 +-0.0835556611,5.05410957,0.0835556686,0.000210206374,0.184583813,0.101915844,0.38694641,-0.00762288459,0.0181031693,0.119021416 +-0.0706079751,5.05412817,0.0706079751,9.59824174e-05,0.250107616,0.16239889,0.431175411,0.0509952717,0.0180773623,0.100614846 +0.190642834,5.05438614,-0.190642849,0.000319105049,0.187509492,0.0958608091,-0.0263079721,-0.0002683934,0.0182080977,0.270272583 +0.277296185,5.05442572,-0.277296185,0.000556295156,0.185970441,0.093674317,-0.246382624,0.110616483,0.0181933679,0.392493546 +1.07562208,5.05448198,-1.0756222,0.000377176824,0.380966008,0.21373944,0.277007163,-0.141013727,0.0181953795,1.5212326 +0.280284166,5.05543661,-0.280284137,0.00178163615,0.185896695,0.0936112776,-0.254702687,0.117395557,0.0181917623,0.396642029 +-1.21774268,5.0555892,1.21774268,0.000218771747,0.147572368,0.0703049451,-0.167954952,0.0206656381,0.0182182286,1.72223186 +-1.2237606,5.05560589,1.2237606,0.000182973658,0.115009636,0.0522171818,-0.275249839,0.00753715169,0.018218372,1.73074293 +-1.22877538,5.05562019,1.22877538,8.32640217e-05,0.0952492952,0.0500549786,-0.313405454,-0.00800020993,0.0182185452,1.73783517 +-0.998360991,5.05708981,0.998361051,0.00101879775,0.190760195,0.0925284699,0.114189088,0.163826793,0.018210033,1.41223085 +1.05524111,5.05719233,-1.05524111,0.000389541587,0.212480918,0.108312145,0.153248012,-0.0378219821,0.0181850027,1.49241054 +-0.767495096,5.05756569,0.767495096,0.0056126127,0.184168667,0.0905393139,-0.0822055414,0.481934071,0.0182068124,1.08715475 +0.199286535,5.05764437,-0.19928652,0.00137233746,0.187435552,0.0957002714,-0.05209589,0.0105432337,0.0182050411,0.281989187 +-0.359959543,5.05851507,0.359959543,0.00440323306,0.18494606,0.0936131626,-0.506949425,0.305341899,0.0181758814,0.511581123 +-0.410972655,5.05864716,0.410972655,0.00304639759,0.184746534,0.0933202878,-0.512419343,0.389513612,0.0181820765,0.582682967 +0.184570447,5.05918217,-0.184570432,0.000892574666,0.187794805,0.0962006673,-0.00717350189,-0.00370056648,0.0182051081,0.261275798 +1.07476985,5.05966043,-1.07476985,0.000141613666,0.367157161,0.205150053,0.27696386,-0.127821952,0.0181899425,1.52003622 +0.233679742,5.0598278,-0.233679742,0.0018925987,0.187667996,0.0952787846,-0.146322399,0.0478257164,0.0181979537,0.3318156 +0.963560283,5.05997658,-0.963560283,0.00185535743,0.180966631,0.0868583396,0.141395047,0.114326201,0.0181668978,1.36273813 +-0.970302343,5.06214046,0.970302403,0.00107098883,0.189283639,0.0919230878,0.11936485,0.212157011,0.0182046443,1.37275958 +-0.44814083,5.06268072,0.44814083,0.00308836927,0.184562042,0.0930907205,-0.540270388,0.457870901,0.0181846675,0.637587428 +-1.01761174,5.06292534,1.01761174,0.000697101175,0.189962879,0.0922817662,0.102848887,0.124204442,0.0182083678,1.43940735 +1.22878981,5.06309271,-1.22878981,7.58697788e-05,0.103418835,0.0538486205,-0.293284148,-0.0043772636,0.0182280112,1.73783731 +1.2239238,5.06309891,-1.2239238,0.000166762562,0.127614573,0.0586887822,-0.251390845,0.00740589015,0.0182274338,1.7309556 +1.21808386,5.06310558,-1.21808386,0.000378945464,0.161320388,0.0783408135,-0.129583657,0.0167483557,0.0182268806,1.7226963 +-0.152661622,5.06333351,0.152661622,0.000658510253,0.182281926,0.0934461802,0.127719209,-0.0459488034,0.0181402229,0.216803715 +-0.100956351,5.06347704,0.100956351,0.000338977406,0.179769084,0.0943306461,0.319284588,-0.0490209013,0.0181122534,0.143140331 +-0.0839221403,5.06420326,0.0839221403,0.00027951051,0.184951961,0.102263153,0.394117892,-0.00699955598,0.0180903897,0.118997663 +0.0694993213,5.0648241,-0.0694993213,0.000124411206,0.244846642,0.161364973,0.446816176,0.0302266926,0.0181515664,0.0983795002 +-0.0709369332,5.06495476,0.0709369332,0.000120794728,0.250967741,0.163189501,0.439557612,0.0513412692,0.0180623271,0.100592166 +-1.21277714,5.06557751,1.21277714,0.000253476057,0.181001425,0.0901152641,-0.0548409261,0.0338029824,0.01821227,1.71526933 +0.082481347,5.06564283,-0.082481347,0.000287776988,0.192452177,0.109081842,0.368283153,-0.00653197197,0.0181599762,0.116741471 +0.0994955897,5.06634569,-0.0994955897,0.00026428292,0.186460435,0.0998116806,0.268095493,-0.025778966,0.0181744471,0.140809089 +-0.236981764,5.06774521,0.236981779,0.00086372334,0.184606612,0.0943327174,-0.179087684,0.0574133024,0.0181501228,0.335217953 +0.100634046,5.06801462,-0.100634046,0.000309510739,0.186635777,0.0997981876,0.265273809,-0.0257713776,0.0181739479,0.142487764 +0.576961517,5.06863403,-0.576961517,0.00460278429,0.183414593,0.0907672122,-0.267217904,0.471536338,0.0181344077,0.819126129 +0.0693695843,5.06888151,-0.0693695843,2.99237727e-05,0.245375872,0.161841601,0.450157911,0.0301212501,0.0181485992,0.0983634815 +0.0823512301,5.06898642,-0.0823512226,5.97975777e-05,0.192800179,0.109329432,0.371107131,-0.00671713473,0.018157471,0.116722494 +0.09935987,5.06916189,-0.09935987,3.13782002e-05,0.186646044,0.0999254659,0.269929796,-0.0253899973,0.018172415,0.140785664 +-0.140742987,5.06924295,0.140742987,0.000561765686,0.182707071,0.093956843,0.173141837,-0.0567949377,0.018131176,0.200534105 +0.135963231,5.07039261,-0.135963231,0.000221463066,0.188519239,0.0979751348,0.138033211,-0.0264690574,0.0181954131,0.192290992 +0.276936918,5.070683,-0.276936918,0.00157557928,0.186030611,0.0938086286,-0.268189579,0.124214925,0.0181820691,0.391715646 +-0.284891456,5.07071829,0.284891456,0.000656140095,0.185102895,0.0942757279,-0.344465494,0.150627539,0.0181553364,0.405355871 +0.953033686,5.07087803,-0.953033626,0.000646965287,0.180195078,0.0865252167,0.148331285,0.123550683,0.0181583706,1.34794688 +0.0994345173,5.07110929,-0.0994345173,0.000352305418,0.186752811,0.100001074,0.270849228,-0.0252181068,0.0181711055,0.140774533 +0.0824269652,5.07127571,-0.0824269727,0.000284957321,0.193040535,0.109515935,0.37253195,-0.00666452013,0.0181558095,0.116716459 +-1.07501233,5.07137012,1.07501245,0.000335161079,0.267173856,0.141049355,0.180912077,-0.0976856649,0.018213788,1.52046943 +-0.126857325,5.07151031,0.12685734,0.000490458857,0.18192564,0.093958877,0.227052212,-0.0583712682,0.0181215443,0.179900318 +0.0694474578,5.07163572,-0.0694474578,0.000123612597,0.245773703,0.162193418,0.452382565,0.0301342271,0.0181467459,0.0983596444 +0.671328962,5.07186222,-0.671328902,0.00311687938,0.185114324,0.0913171917,-0.10093303,0.441216052,0.0181412622,0.949846148 +-1.05519271,5.07273293,1.05519283,0.000998790842,0.188252836,0.0941217691,0.113414146,0.0168429725,0.0182079617,1.49243629 +0.404468566,5.07273769,-0.404468596,0.00419947691,0.181709081,0.090275839,-0.458879083,0.357079029,0.0181519073,0.573681295 +0.946377039,5.0732708,-0.946377039,0.001526176,0.18008557,0.0865083858,0.148030281,0.131379217,0.0181566924,1.33850622 +1.07672524,5.07414865,-1.07672524,0.000324672787,0.314514965,0.170030653,0.230252951,-0.101241216,0.0181733388,1.52274132 +-1.02858806,5.07433033,1.02858806,0.00117777986,0.188620374,0.0918241143,0.109547675,0.104239821,0.0182007849,1.4548049 +1.22877514,5.07433224,-1.22877514,8.01533897e-05,0.103325441,0.0535371378,-0.275126994,-0.00472465577,0.018221477,1.73785615 +1.22400379,5.07434273,-1.22400379,0.0001764232,0.124055646,0.0567792393,-0.237702653,0.006021081,0.0182209611,1.73110819 +1.21827805,5.07435369,-1.21827793,0.000227769138,0.155789286,0.0753552094,-0.123548761,0.0117840106,0.018220447,1.7230103 +1.05777943,5.07469463,-1.05777943,0.000959700905,0.202748477,0.102292866,0.148228556,-0.0229083169,0.018169323,1.49594605 +1.031672,5.07479334,-1.031672,0.00136767887,0.189722925,0.0920974836,0.132038474,0.0350804143,0.0181623716,1.45902228 +0.957108736,5.07481098,-0.957108736,0.000293886813,0.180491447,0.0867080614,0.15127869,0.118223302,0.0181559287,1.35374188 +0.42781049,5.07807827,-0.42781049,0.00447779614,0.181253403,0.0899768397,-0.453886688,0.384428203,0.018142337,0.606471598 +-1.19466567,5.07954741,1.19466567,6.86614876e-05,0.48842746,0.357159674,0.428329408,-0.00483435392,0.0182045549,1.68956304 +1.19637561,5.07961464,-1.19637561,5.93046243e-05,0.53556937,0.40180397,0.509545624,-0.0180076752,0.0182153955,1.69193149 +-0.110675544,5.07961559,0.110675544,0.000447424565,0.180642828,0.094156377,0.286448002,-0.0511817858,0.0181036554,0.15700388 +-0.118278816,5.07983875,0.118278816,0.000270231394,0.181499094,0.0940020159,0.255086631,-0.0556019396,0.018111052,0.168509841 +-1.198627,5.08032513,1.19862688,0.000158367198,0.301147968,0.177259952,0.279532194,0.0191110931,0.0182040967,1.69516528 +1.20004416,5.08045053,-1.20004416,0.000136780931,0.319634855,0.192891791,0.342602402,0.0100305248,0.0182153564,1.69711959 +-0.100080952,5.08046103,0.100080952,0.000278880354,0.18032594,0.094904542,0.326910585,-0.0470253006,0.0180982314,0.142975777 +-0.0703244358,5.08049011,0.0703244358,0.000140675111,0.251387417,0.163796321,0.452851295,0.0514554754,0.0180483554,0.10041824 +-0.083193697,5.08049393,0.083193697,0.000336272526,0.185381383,0.102775849,0.406462312,-0.00663977815,0.0180763006,0.118826181 +-1.21780479,5.08103085,1.21780479,0.000329022558,0.135594472,0.063962236,-0.140216246,0.0121694682,0.0182032287,1.72239697 +-1.22376251,5.08109522,1.22376251,0.000267018011,0.108443268,0.0488164984,-0.24036032,0.005357977,0.0182031058,1.73082328 +-1.22872734,5.08114862,1.22872722,0.000121496632,0.0959891453,0.0499946214,-0.272578537,-0.0086219376,0.0182029959,1.73784506 +-1.20338058,5.08125782,1.20338058,0.000186317455,0.208023965,0.107665464,0.0915889442,0.0198191423,0.0182030816,1.70188797 +1.20444298,5.0814724,-1.20444298,0.000170291183,0.226935044,0.120676383,0.146509215,0.0144540444,0.0182150342,1.70334029 +-0.299101681,5.08153296,0.299101681,0.00273281895,0.185290068,0.0943986177,-0.401934743,0.197419956,0.0181502122,0.424315631 +0.819687307,5.08290672,-0.819687247,0.00367655326,0.180400252,0.0874645114,0.100823313,0.278642595,0.0181561559,1.15922594 +-0.172644198,5.08349609,0.172644198,0.00123087643,0.183156103,0.0939394012,0.0475949794,-0.022707656,0.0181294754,0.246171534 +0.231829017,5.08362103,-0.231829017,0.00155759591,0.188068882,0.0956484079,-0.162819833,0.0598580614,0.0181817897,0.330055267 +1.19655263,5.08423138,-1.19655263,6.67628319e-06,0.515013933,0.385197163,0.493335038,-0.0383330025,0.0182126332,1.69218922 +0.739601254,5.08437252,-0.739601254,0.00655987719,0.183569402,0.0899355114,0.0250566471,0.380736172,0.0181431063,1.04912138 +1.19636178,5.08476257,-1.19636178,6.74149123e-05,0.511738002,0.382078886,0.490108877,-0.0398844965,0.018212216,1.69191849 +1.20016694,5.08521795,-1.20016682,1.51448294e-05,0.310695261,0.187256694,0.340384573,-0.00181126804,0.0182125866,1.69730055 +1.20535302,5.08553314,-1.20535302,0.000225220778,0.218593106,0.115612,0.132201925,0.00859379489,0.0182127748,1.70462799 +1.19999886,5.08579779,-1.19999886,0.000157860937,0.309585094,0.18635121,0.338777184,-0.00303630903,0.0182121266,1.6970619 +1.20450413,5.08640242,-1.20450425,9.60217403e-06,0.222586051,0.118289649,0.148826048,0.00824378151,0.0182121918,1.70343411 +1.20464051,5.08659983,-1.20464051,3.31484589e-05,0.221701026,0.117687546,0.146096006,0.00802505575,0.0182120577,1.70362675 +-0.495482743,5.08678198,0.495482743,0.00337503338,0.185795575,0.0938456133,-0.519112527,0.540460706,0.0181711949,0.702203751 +1.20436215,5.08703661,-1.20436215,0.000290485506,0.222105637,0.117939807,0.148232102,0.00733289495,0.0182116888,1.70323241 +-0.950875521,5.08714676,0.950875521,0.00197342341,0.188839406,0.0919421762,0.141912326,0.259177804,0.0181864537,1.34525323 +0.126499191,5.08755589,-0.126499206,0.000445810059,0.188344166,0.098307699,0.170879513,-0.0239284616,0.0181807075,0.179071456 +0.95589602,5.08761406,-0.95589602,0.00112631079,0.180555642,0.0867540017,0.160674497,0.120598376,0.0181463864,1.35193193 +-0.463191807,5.08919239,0.463191807,0.00157305424,0.185576499,0.0939104185,-0.566918254,0.523321509,0.0181674156,0.658705056 +0.127975181,5.09011126,-0.127975181,0.000450160471,0.188400418,0.0982989296,0.167232618,-0.0231435318,0.0181797165,0.181138679 +-0.202492863,5.09011364,0.202492863,0.00179462379,0.183852017,0.0942290351,-0.0709757805,0.0183850192,0.0181304608,0.288057983 +0.126563951,5.09031057,-0.126563951,3.85366275e-06,0.188400641,0.0983432159,0.171286181,-0.0234834477,0.0181789789,0.179293334 +-0.153285787,5.09032249,0.153285787,0.000999230542,0.182659239,0.0939281136,0.115572467,-0.0364057161,0.0181190651,0.21865648 +0.124763414,5.09040499,-0.124763414,0.000288645446,0.188433632,0.0985600874,0.178459838,-0.023387881,0.0181776229,0.17659907 +0.150878787,5.0913763,-0.150878787,0.00138231029,0.188485473,0.0974330381,0.0867895037,-0.0126613062,0.0181830842,0.215175301 +-1.20789468,5.09158754,1.2078948,0.000256468222,0.171531782,0.086018905,0.0218059011,0.00385628501,0.0181972254,1.70826411 +0.636453211,5.09201813,-0.636453211,0.00343033648,0.185744181,0.0920155719,-0.155270517,0.470840514,0.0181198586,0.900767148 +-0.621452093,5.09213161,0.621452093,0.00200136262,0.189269036,0.0954924524,-0.333129942,0.601601601,0.0181766655,0.878991127 +-0.996484995,5.09242535,0.996485054,0.00142332946,0.189313814,0.0922105387,0.155085385,0.170616642,0.0181831252,1.40969276 +0.126201063,5.0926733,-0.126201063,0.000302196189,0.188372493,0.0983678252,0.173298344,-0.0231799316,0.0181773212,0.17862159 +-0.257292956,5.09313488,0.257292926,0.00172692176,0.185391217,0.094836615,-0.278459907,0.114580907,0.0181362256,0.364091724 +0.388464421,5.09338665,-0.388464421,0.00466003502,0.181804135,0.0905395076,-0.474751592,0.353981674,0.018139191,0.5508973 +-1.07819009,5.09346581,1.07819009,0.000350936083,0.201976866,0.102241375,0.159881607,-0.0549312606,0.01819022,1.52502441 +-1.19476461,5.09350634,1.19476461,4.66903512e-05,0.412726074,0.296910167,0.382309347,-0.0539643094,0.0181964356,1.68975151 +0.892443836,5.09436321,-0.892443895,0.00643576076,0.179364055,0.0864490643,0.152878538,0.193233386,0.0181463864,1.2632463 +1.00345576,5.09446239,-1.00345576,0.000743396347,0.185403854,0.0895326063,0.164476752,0.0611083023,0.0181430001,1.41910279 +-1.198699,5.09515095,1.198699,0.00010973779,0.263457596,0.153468415,0.269859493,-0.0112232082,0.0181957055,1.69531584 +0.412213594,5.09542751,-0.412213594,0.00243107765,0.181331113,0.0902339071,-0.490709037,0.393194944,0.0181327667,0.5846681 +-0.0708089843,5.09548283,0.0708089843,0.000121152785,0.252480507,0.164749458,0.461403608,0.0507678017,0.0180279072,0.10043852 +0.0687290356,5.09593248,-0.0687290281,0.000210232567,0.24907285,0.165107593,0.471972167,0.0309025049,0.0181281567,0.0983369946 +0.0815286785,5.09597301,-0.0815286785,0.000484294142,0.194777966,0.110843688,0.39074403,-0.00505532045,0.0181364436,0.11663951 +0.0982773677,5.0960393,-0.0982773602,0.000584213703,0.187130466,0.100307554,0.284719408,-0.0212405995,0.0181518365,0.140591174 +-0.0837839246,5.09608555,0.0837839246,0.000280103908,0.185508594,0.102994062,0.413516164,-0.00579066575,0.0180570483,0.11884059 +-0.100799784,5.09659624,0.100799784,0.000377676071,0.180080965,0.0949054211,0.329293549,-0.0449982919,0.0180804729,0.142971694 +-1.20342028,5.0971241,1.20342028,0.000161909731,0.18842262,0.096917145,0.0986562446,0.000928835943,0.0181940254,1.70199299 +-0.9005844,5.09784222,0.9005844,0.00200816756,0.187645048,0.0916239321,0.103449784,0.356895924,0.0181800891,1.27377748 +-0.885964394,5.09803438,0.885964394,0.00205400074,0.187182114,0.0914668515,0.0938371345,0.38087675,0.0181800891,1.25330949 +-0.24118723,5.09842777,0.24118723,0.000712658628,0.185161933,0.0948529616,-0.23019357,0.092478238,0.0181303192,0.341702998 +0.119728044,5.09857941,-0.119728044,0.000179502502,0.188272879,0.0990589261,0.202863067,-0.02252369,0.0181676373,0.169355184 +0.221850485,5.09882832,-0.221850485,0.00185603229,0.188152969,0.0959339514,-0.144911185,0.0540737361,0.0181735978,0.315240175 +0.942676187,5.09938335,-0.942676187,0.00108033628,0.180292815,0.0866857693,0.164264768,0.137111604,0.0181380268,1.3331871 +-1.01511288,5.09982395,1.01511288,0.000874871621,0.187786788,0.0916505978,0.151318789,0.134879068,0.0181795154,1.43584204 +-0.564790368,5.09994173,0.564790368,0.00812887214,0.187830418,0.0949997529,-0.433158875,0.611409545,0.0181680396,0.802614868 +0.989778519,5.10105991,-0.989778519,0.000782795716,0.183120787,0.0882779583,0.173407376,0.0771338642,0.0181368012,1.39976132 +-0.168544561,5.10266781,0.168544561,0.00135185546,0.183376402,0.0942089707,0.0468823835,-0.0179605763,0.0181151479,0.240621284 +-1.05967784,5.10271645,1.05967784,0.00105981866,0.172115982,0.085139513,0.130945176,0.0451015383,0.0181808732,1.49884105 +-0.442622721,5.10276699,0.442622691,0.00372737925,0.185599446,0.0942205489,-0.614090204,0.518483162,0.0181562379,0.627400637 +1.08048892,5.10473728,-1.08048892,0.000388021872,0.203369737,0.101174563,0.137274086,-0.0459895581,0.0181403738,1.52818358 +0.996596515,5.10484505,-0.996596515,0.00066077552,0.183662146,0.088593103,0.176911786,0.068769224,0.01813416,1.40942526 +0.997341931,5.10546684,-0.997341931,8.273731e-06,0.183824286,0.0886979029,0.177104846,0.0677458867,0.0181337558,1.41047823 +-0.248445749,5.10632086,0.248445749,0.000264278089,0.185449868,0.0950393081,-0.268285871,0.110579722,0.0181262884,0.352145433 +0.995654345,5.10660124,-0.995654404,0.000496031542,0.183605552,0.088569507,0.178041443,0.0697331578,0.0181329064,1.40809548 +0.996634603,5.10661507,-0.996634662,3.001245e-06,0.183662519,0.0886050984,0.178191915,0.0686927587,0.0181328952,1.40948462 +-0.240228161,5.10670567,0.240228176,0.000742184173,0.18527779,0.0949783623,-0.233635455,0.0957882702,0.0181242675,0.340435505 +-0.0704811662,5.10694742,0.0704811662,0.000105094026,0.252961487,0.165302411,0.469700933,0.0493035503,0.0180212315,0.100485645 +-0.0834094584,5.10694981,0.0834094509,0.000232537233,0.1858183,0.103336245,0.419974327,-0.00590007985,0.0180501826,0.118887424 +-0.100360841,5.10696411,0.100360833,0.000242852795,0.18018958,0.095082432,0.331299186,-0.0427062288,0.0180730876,0.143014014 +0.99810195,5.10730886,-0.99810195,0.000893971708,0.183663949,0.0886247307,0.17786999,0.0678782091,0.0181325302,1.41154528 +-0.199400872,5.1082325,0.199400857,0.00215421291,0.184075728,0.094489634,-0.0746110231,0.0238590389,0.0181170702,0.283908874 +-1.1882441,5.10824871,1.1882441,9.50134709e-05,0.335448682,0.226262257,0.310117781,-0.0938378274,0.0181857981,1.68046474 +1.2287432,5.10837841,-1.2287432,9.59178797e-05,0.106554165,0.054305099,-0.265263736,-0.0125678144,0.0181975868,1.73771346 +1.22275722,5.10840797,-1.22275722,0.000210777376,0.120496385,0.0546150915,-0.216269866,-0.00325478101,0.0181971639,1.72924793 +1.21556592,5.10844421,-1.21556592,0.000254493731,0.145557716,0.0688259751,-0.0957655758,-0.0147041008,0.0181965809,1.71907759 +0.996615887,5.10968494,-0.996615887,0.000860273954,0.183571264,0.0885476172,0.179825708,0.0695883334,0.0181308854,1.4094429 +0.652991891,5.10995197,-0.652991891,0.0005903524,0.186868683,0.0927307382,-0.125081465,0.482920945,0.0181070585,0.925142288 +-0.662500322,5.11003685,0.662500381,0.00225597993,0.189437002,0.0953133032,-0.260569006,0.608330727,0.0181655791,0.9398669 +0.187812716,5.11019421,-0.187812716,0.000822852133,0.188361764,0.0967138037,-0.0344458707,0.0221756846,0.0181700755,0.265757769 +-0.352860153,5.11142921,0.352860123,0.00291663315,0.186333865,0.0949679911,-0.575668573,0.355708599,0.0181391239,0.501695454 +-1.19272923,5.11210871,1.19272923,0.000222888339,0.232750148,0.12943013,0.226642549,-0.0383740962,0.0181830972,1.68680763 +-0.884059548,5.11285591,0.884059548,0.00136364345,0.187527239,0.0917587429,0.103030764,0.390191197,0.018169459,1.25069153 +0.325450927,5.11313295,-0.325450897,0.00682482449,0.183118179,0.0917515978,-0.445568204,0.261089683,0.0181406103,0.466454148 +-0.688480139,5.11319828,0.688480139,0.00551944179,0.188918024,0.0946793854,-0.209493265,0.595258892,0.0181654394,0.975067079 +0.173298687,5.11340618,-0.173298687,0.000619584636,0.188737422,0.0972243845,0.00928604975,0.00887820311,0.0181689821,0.245326117 +0.66583544,5.11390686,-0.66583544,0.00167750835,0.187203422,0.09287633,-0.100645468,0.477831244,0.0181054808,0.943299413 +-0.890086174,5.11392307,0.890086174,0.00177749735,0.187764645,0.0918739885,0.109463237,0.380353779,0.0181685388,1.2592361 +-0.977836192,5.11415291,0.977836192,0.0021460983,0.188907623,0.09221486,0.174376905,0.214977324,0.0181673039,1.38329291 +-0.870812416,5.11469984,0.870812416,0.00293866545,0.187464789,0.0918632001,0.0856572986,0.409044445,0.0181683488,1.23191845 +0.680498421,5.1149416,-0.680498481,0.00307607977,0.186781585,0.0925191417,-0.076299794,0.460799247,0.0181071907,0.963275313 +-0.121867821,5.11530161,0.121867828,0.000282930094,0.181484818,0.0941901878,0.238870725,-0.0445047803,0.0180812553,0.172383741 +-1.08552217,5.11532116,1.08552217,0.00034341088,0.136534244,0.0644924417,0.102103107,-0.0192131177,0.0181680527,1.5353055 +-1.2098285,5.11585474,1.2098285,0.000253947394,0.148819149,0.0716889501,-0.0291614942,-0.0139756743,0.0181804299,1.71096802 +-0.119790331,5.11587429,0.119790323,0.000178667164,0.181320652,0.0942131132,0.246569827,-0.0437137298,0.0180793554,0.169449374 +0.177603424,5.11602259,-0.177603424,0.000317267666,0.188590005,0.0970374048,-0.0068081324,0.0138265435,0.0181670468,0.251803577 +1.06365228,5.11620712,-1.06365228,0.00117717357,0.181244597,0.0893436894,0.140921071,0.0117747448,0.0181336254,1.50437307 +-1.03492856,5.11636257,1.03492856,0.00142754987,0.182510257,0.0888629034,0.150543749,0.11106199,0.0181676652,1.46382236 +-0.398865074,5.11641788,0.398865104,0.00380744552,0.186075866,0.0948061198,-0.640114069,0.47026974,0.0181416515,0.566600204 +-1.19811475,5.11675262,1.19811475,0.000313997909,0.176370859,0.088295415,0.0814311057,-0.0169320311,0.0181790832,1.69442391 +-0.122392021,5.11708927,0.122392021,0.000432543573,0.181467727,0.094190903,0.236220941,-0.0431515388,0.0180799551,0.173130885 +0.532397687,5.1171627,-0.532397687,0.0031355184,0.184801847,0.092364341,-0.39590767,0.537118077,0.0180936214,0.754648149 +0.0991095901,5.11716986,-0.0991095901,0.000346590794,0.187432408,0.100684091,0.293983996,-0.019940393,0.0181373991,0.140527934 +-0.120890833,5.11730671,0.120890833,7.62744967e-05,0.18143101,0.09420003,0.241941735,-0.043856848,0.0180791356,0.17106232 +0.0822184756,5.11750221,-0.0822184756,0.00028489891,0.196776867,0.112424195,0.404522389,-0.00492032617,0.0181214176,0.116563924 +-0.100754961,5.11751461,0.100754961,0.000283492263,0.180102333,0.09517508,0.332973689,-0.0392033234,0.0180617385,0.142888561 +-0.120436147,5.11780787,0.120436139,5.33586062e-05,0.18137902,0.0942078829,0.243767664,-0.0433956124,0.0180784408,0.170427129 +0.0692970604,5.11798477,-0.0692970604,0.00012337463,0.252192557,0.167712882,0.490592569,0.0288844481,0.0181140304,0.0982277915 +-0.0837531835,5.11808681,0.0837531835,0.000277698826,0.186003387,0.10358762,0.4251526,-0.00432064757,0.0180354714,0.118778139 +-0.256924599,5.1182642,0.256924629,0.00141914457,0.185361028,0.0950779617,-0.323962152,0.143684819,0.0181198996,0.363660902 +-0.121232376,5.11842918,0.121232376,0.000112844325,0.181431413,0.0942050666,0.240376711,-0.0432306454,0.0180784613,0.171518058 +-0.0707870573,5.11877012,0.0707870573,0.000120317483,0.253647208,0.165935799,0.476248324,0.0498048551,0.0180026647,0.100389108 +-0.119728237,5.11899614,0.119728245,0.000239437504,0.18132028,0.0942586362,0.247369707,-0.0428370796,0.018076513,0.169359669 +0.176348567,5.1192131,-0.176348552,0.000279343891,0.188567027,0.0970660821,-0.0035506878,0.0141236819,0.0181646515,0.249996215 +0.180362001,5.12102032,-0.180361986,0.000730519067,0.188408419,0.0969003886,-0.0195788331,0.0205151178,0.0181630403,0.255515516 +1.21461046,5.12102175,-1.21461046,0.000110886969,0.141411096,0.0662436485,-0.0855482444,-0.0246439725,0.0181879029,1.71776402 +1.22228539,5.12111187,-1.22228539,8.09940248e-05,0.119004853,0.0537197925,-0.207733735,-0.00671424624,0.0181884114,1.72861874 +1.22868013,5.12118673,-1.22868013,3.70289963e-05,0.107809253,0.0546122007,-0.26041314,-0.0154006556,0.0181887131,1.73766267 +-1.21438527,5.12126637,1.21438527,0.000210125509,0.126172587,0.0580907278,-0.111207813,-0.0177389588,0.018176185,1.71744561 +-1.22226894,5.12141275,1.22226894,0.000229443118,0.107408993,0.0480605103,-0.218504906,-0.00450484687,0.0181759838,1.7285949 +-0.120978773,5.12147236,0.12097878,0.000379503268,0.181372792,0.0942019969,0.240604162,-0.0420036875,0.0180757865,0.171116427 +-1.22883797,5.12153435,1.22883797,0.000104373852,0.0994857401,0.0506032743,-0.263083279,-0.0198719967,0.0181754977,1.73788536 +-0.320788145,5.12241554,0.320788145,0.00117520767,0.185898587,0.0949559659,-0.540185213,0.301393896,0.0181269702,0.458920062 +0.103011243,5.12252951,-0.10301125,0.000358312536,0.187667161,0.10041216,0.277031571,-0.018791426,0.0181370601,0.146104187 +0.0691447705,5.12297249,-0.0691447705,5.34416431e-05,0.253055274,0.168506145,0.493832916,0.0286409911,0.01811051,0.0982187837 +0.082031779,5.12304926,-0.082031779,0.000133010064,0.197033852,0.112653516,0.407652706,-0.00454495475,0.0181174185,0.116569504 +0.0988774821,5.12311029,-0.0988774821,9.25974018e-05,0.187222347,0.100572191,0.296409607,-0.0190357305,0.0181331355,0.140546203 +1.21300185,5.12313318,-1.21300197,0.000229541809,0.14429076,0.0678765103,-0.0719256327,-0.0281727351,0.0181860719,1.71548462 +1.09171665,5.12348843,-1.09171665,0.000292131619,0.132277966,0.0603789426,0.037083894,-0.0610498674,0.0181278773,1.54395032 +1.18290412,5.12374783,-1.18290412,0.000146143953,0.268174201,0.165865824,0.261884302,-0.160262391,0.0181826893,1.67295802 +0.169419929,5.12401676,-0.169419929,0.000665856351,0.18823649,0.0970574319,0.0212886557,0.0097257616,0.0181612726,0.239764974 +-0.949515283,5.12433815,0.949515343,0.0038844808,0.189790174,0.092783995,0.178290606,0.269972682,0.0181590505,1.34432983 +0.118820436,5.12472153,-0.118820436,0.000562797708,0.187244445,0.0981207564,0.200653046,-0.0165007524,0.0181500707,0.170034826 +1.21402884,5.12473249,-1.21402884,0.000340839586,0.141396135,0.0661523044,-0.0839487463,-0.0262934025,0.0181850176,1.71693361 +1.22202086,5.12485218,-1.22202086,0.000290948257,0.119316705,0.0538716093,-0.207311049,-0.00725951511,0.018185582,1.72823668 +1.22868252,5.12495136,-1.22868252,0.000132284753,0.107902788,0.0544774793,-0.262228906,-0.0162826143,0.0181859005,1.7376579 +0.145092383,5.12668514,-0.145092368,0.000743361772,0.187120423,0.0969033837,0.102796301,-0.00521885091,0.0181578752,0.206413239 +0.432518661,5.12728643,-0.432518661,0.00316581735,0.1827306,0.0914413482,-0.515419662,0.461222529,0.0181051157,0.612350762 +-1.21353137,5.12816525,1.21353137,0.000162160693,0.125193924,0.0574149787,-0.107118763,-0.0222304743,0.0181711726,1.71625865 +-1.2218734,5.12832975,1.22187352,0.000223108858,0.107637666,0.0481359251,-0.216077402,-0.0059227678,0.0181710012,1.72805667 +-1.22882462,5.12846708,1.22882462,0.000101015314,0.0998234376,0.0504868664,-0.263469934,-0.0219720583,0.0181704648,1.73788726 +1.1879319,5.12936783,-1.1879319,0.000348983624,0.224883765,0.119894192,0.229009584,-0.0997696295,0.0181786697,1.68006849 +0.0693028793,5.12939692,-0.0693028793,0.000123175763,0.253661484,0.168934852,0.496988714,0.0278910436,0.0181061663,0.0981737748 +0.249210611,5.12957144,-0.249210626,0.00193253974,0.187422022,0.0953105092,-0.27482903,0.129151031,0.0181462765,0.352910817 +-0.151276484,5.12983418,0.151276484,0.000997683033,0.183034718,0.0944396108,0.10791155,-0.0238429196,0.0180869922,0.214355528 +0.0822518319,5.13015509,-0.0822518319,0.000284315814,0.1976493,0.113085814,0.411903977,-0.00478253607,0.0181121342,0.116530538 +-1.21007061,5.13047028,1.21007073,0.000316864345,0.129026845,0.0594427623,-0.0874917433,-0.0258350726,0.018169038,1.71135187 +-0.880460858,5.13055134,0.880460858,0.00347315706,0.188144714,0.0922819152,0.110536866,0.401488751,0.018156236,1.24552417 +0.0991724581,5.13071442,-0.0991724581,0.000305395195,0.187248543,0.100636505,0.299550712,-0.0187095255,0.0181273669,0.140513405 +-1.09670782,5.13114452,1.09670782,0.000339469261,0.100257501,0.0444480442,0.038122084,-0.0166125,0.0181512553,1.55107152 +-0.749312758,5.13157606,0.749312758,0.00561011396,0.188275337,0.0937179923,-0.0989897028,0.565255225,0.0181532484,1.06233692 +1.04035318,5.13210583,-1.04035318,0.00206392095,0.184653059,0.0899195969,0.172379881,0.0398037434,0.0181210916,1.47142208 +-1.07019687,5.13251209,1.07019675,0.00101609994,0.147688597,0.0707050487,0.108909965,0.0775411576,0.018154731,1.51362896 +-1.17585278,5.13316345,1.17585278,0.000225411961,0.209982663,0.120715626,0.187381744,-0.159532785,0.0181664694,1.66305363 +-0.0999440253,5.13319302,0.0999440178,0.000328613154,0.180103704,0.0952824503,0.335207343,-0.0343912803,0.0180497393,0.142754957 +-0.0831038803,5.13321352,0.0831038803,0.000314459874,0.185810864,0.103635632,0.4313052,-0.00231013237,0.0180234704,0.118667431 +-0.0702632591,5.1332593,0.0702632517,0.000131355628,0.253614753,0.166149408,0.483318329,0.0510243624,0.0179896001,0.10029652 +-1.00334942,5.13496161,1.00334954,0.00190645619,0.186964154,0.0911263302,0.194523662,0.173401564,0.0181519482,1.41936088 +1.19396544,5.13611221,-1.19396544,0.000440131291,0.186377123,0.0928209126,0.115480505,-0.0672309697,0.0181736797,1.68860114 +1.16978705,5.13665771,-1.16978705,0.000155848596,0.186233431,0.103551112,0.143993437,-0.187822387,0.0181647427,1.65433955 +1.09955013,5.13719034,-1.09955013,0.000407114043,0.0812894404,0.0339845419,-0.0336697325,-0.0694491491,0.018118212,1.55510497 +0.134046778,5.13725376,-0.134046778,0.000553559279,0.187082529,0.0974002481,0.14108029,-0.00698803645,0.018146906,0.190655202 +0.645329177,5.13773727,-0.645329177,0.00446294993,0.188518018,0.0940732211,-0.152145833,0.520729065,0.0180833973,0.913316369 +0.54324609,5.13827467,-0.54324609,0.0031734996,0.185678348,0.0930343568,-0.387451112,0.56103462,0.0180777088,0.769824266 +1.19600499,5.13888025,-1.19600499,0.00043312335,0.180739075,0.0892591625,0.091941826,-0.0634583309,0.0181718916,1.69147921 +-1.18124843,5.14099884,1.18124831,0.000567676674,0.182072341,0.0915796012,0.151278779,-0.0834113359,0.0181602947,1.6706841 +1.07843757,5.14114761,-1.07843757,0.000859625114,0.146010488,0.0683466047,0.0634108335,0.0151777882,0.0181186814,1.52517056 +-0.144320607,5.14137506,0.144320607,0.00030271578,0.182867229,0.0945770964,0.130954146,-0.0229996815,0.0180757381,0.204761386 +0.14334169,5.14352131,-0.14334169,0.000828640244,0.187001243,0.0969848558,0.105584905,-0.00293600373,0.0181464832,0.203890905 +-0.150744215,5.14365149,0.150744215,0.00014028493,0.183065414,0.0945628881,0.100174159,-0.0154303266,0.0180766173,0.214252025 +-0.245323867,5.1443224,0.245323867,0.000962634571,0.184825242,0.0949283987,-0.318523437,0.141575903,0.018101152,0.347000778 +-1.11077213,5.14553452,1.11077213,0.000436342118,0.0702529699,0.0289345011,-0.0306172725,-0.0335150659,0.0181368086,1.57103002 +0.962770939,5.14730549,-0.962770939,0.00220756931,0.18178457,0.087537013,0.206313312,0.114208117,0.0181047805,1.36234117 +-0.0708407387,5.14732265,0.0708407387,0.000119303528,0.254402518,0.166836575,0.487744987,0.051262863,0.0179673936,0.100479633 +-0.0837743729,5.14797878,0.0837743729,0.000276081992,0.185577005,0.103568777,0.434075713,6.03301451e-05,0.0180036221,0.118824884 +1.17506289,5.14840889,-1.17506289,0.0003802391,0.182650059,0.0912159607,0.133587345,-0.125296533,0.018156983,1.66180074 +-0.100724608,5.14861774,0.100724608,0.000404132705,0.179709643,0.0950845107,0.332521081,-0.0300947689,0.0180335846,0.142864138 +1.15768588,5.14866161,-1.15768588,0.000274817867,0.109770447,0.0513759255,0.0343636684,-0.213551313,0.0181485284,1.63729119 +0.068632111,5.14988041,-0.068632111,0.000168564555,0.256562442,0.171119884,0.505280614,0.0269270875,0.0180910416,0.0980918109 +0.0815116838,5.14999056,-0.0815116763,0.000379184698,0.198640555,0.113719389,0.423761517,-0.00424357224,0.0180970468,0.11647509 +0.0983240604,5.15008068,-0.0983240753,0.000402062695,0.186736763,0.100393683,0.30702132,-0.0173346158,0.0181123856,0.140477166 +-0.148377419,5.15015078,0.148377433,0.000538665743,0.182809591,0.09449967,0.106396876,-0.014316122,0.0180715509,0.210578591 +-1.18772352,5.15039873,1.18772352,0.00102193945,0.157662228,0.0750760436,0.0537348166,-0.0463130549,0.0181522518,1.67984104 +-1.13785064,5.15085697,1.13785052,0.000314324745,0.0883141533,0.0379212275,-0.0462752283,-0.128551006,0.0181365218,1.60918999 +0.208935678,5.15088177,-0.208935678,0.00204222277,0.188237563,0.0963347182,-0.156323403,0.0724417865,0.0181363951,0.29983896 +0.113274924,5.15110111,-0.113274924,0.000170793268,0.186082006,0.0983708277,0.23281233,-0.0140152955,0.0181259774,0.160236686 +-1.14876401,5.15112543,1.14876413,0.0002450748,0.102772094,0.0464944094,-0.0297261216,-0.15741764,0.0181393865,1.62464619 +0.925231576,5.15179348,-0.925231576,0.0012420651,0.180557996,0.0870129243,0.195623323,0.160133481,0.0181012414,1.30882215 +0.911039233,5.15205336,-0.911039233,0.00263199396,0.180289,0.0869458839,0.193088382,0.175826013,0.0181026366,1.28878713 +-1.02888513,5.15216351,1.02888513,0.00193737831,0.180526137,0.0877392888,0.189616904,0.14048031,0.0181398392,1.45540607 +1.13429189,5.15227127,-1.13429177,0.000267619413,0.0645304173,0.0267974436,-0.0623837151,-0.167487219,0.0181275699,1.60413384 +-1.08485556,5.15246487,1.08485556,0.000976645388,0.128666058,0.0592733547,0.0576968826,0.0831901282,0.0181373302,1.53430855 +1.12629986,5.15257788,-1.12629986,0.000297021441,0.0530354492,0.0210465342,-0.0873097777,-0.150201365,0.0181215145,1.59285021 +-0.337723374,5.15258121,0.337723374,0.00248911325,0.18590346,0.0952916816,-0.65056026,0.385772854,0.0181099959,0.481090128 +-0.490443528,5.15278339,0.490443528,0.00389509904,0.18936272,0.0971976742,-0.614988804,0.65195334,0.0181260873,0.694429398 +-1.14484072,5.15300035,1.14484072,9.85865408e-05,0.0902528688,0.0389334373,-0.0561403185,-0.152664691,0.0181356892,1.61910892 +-0.13632524,5.15305424,0.136325255,0.000521775277,0.18211481,0.0944576636,0.163043484,-0.0213748068,0.0180605799,0.193031996 +1.12739408,5.15327311,-1.12739408,7.75075096e-05,0.051613465,0.0204167943,-0.090141423,-0.153739884,0.0181214698,1.59440053 +-1.04977894,5.15633297,1.04977894,0.0012792116,0.171934247,0.0827716589,0.163665354,0.126033247,0.0181370433,1.48474145 +-0.797048926,5.15778637,0.797048926,0.00731527712,0.188052952,0.0932295546,0.000235677231,0.526083708,0.0181367621,1.12851477 +1.02992797,5.15803623,-1.02992797,0.00167684047,0.183446497,0.0888916776,0.201869369,0.0553220361,0.0181025416,1.45701694 +-1.20430017,5.15812254,1.20430005,0.000382396713,0.132456571,0.060722433,-0.0757479221,-0.0110274116,0.0181479882,1.70314324 +-1.21771026,5.15817595,1.21771026,0.000440307165,0.117135428,0.0528717525,-0.193707526,0.00333296414,0.0181490742,1.72210813 +-0.17121467,5.15820026,0.17121467,0.000643676904,0.183405384,0.0947005227,-0.00593668595,0.0211399216,0.0180738587,0.242260054 +-1.22883689,5.15822315,1.22883689,0.000199985428,0.101164863,0.0492046699,-0.265000165,-0.0254373439,0.0181492101,1.73784375 +-0.234985933,5.15840721,0.234985948,0.00100824842,0.184302539,0.0947629958,-0.301821887,0.136699617,0.01809063,0.332510114 +1.08841789,5.15883398,-1.08841789,0.00117739895,0.121959314,0.0546791218,0.0118653942,0.0198049843,0.0181077328,1.53935909 +-0.0834187418,5.15938997,0.0834187418,0.000249081408,0.185680225,0.103743687,0.437214792,0.00176711404,0.0179963931,0.118926235 +-0.0705619752,5.15939331,0.0705619752,0.0001124275,0.255107403,0.167526871,0.493172407,0.0510022752,0.017959239,0.100623786 +-0.100270651,5.15944099,0.100270659,0.000188450387,0.179436803,0.0950252488,0.33199507,-0.0276774429,0.0180265009,0.142912552 +-0.388534069,5.15964127,0.388534069,0.00540820602,0.185599849,0.095122464,-0.725220561,0.514756799,0.0181117579,0.552802086 +0.278594881,5.15993834,-0.278594851,0.00352863921,0.18560724,0.0939970538,-0.398531139,0.207460403,0.0181200057,0.395381868 +0.119019471,5.16031075,-0.119019479,0.000271479832,0.185522199,0.0973588675,0.206722155,-0.0121636922,0.0181246512,0.168497279 +-0.309437543,5.16064787,0.309437573,0.00351735926,0.185163289,0.0950728059,-0.585079134,0.31562829,0.0181005858,0.43953079 +-0.110126495,5.1618371,0.110126495,0.000411287067,0.180169687,0.0946953669,0.283073306,-0.0258682761,0.0180324819,0.156055838 +0.12074092,5.1619873,-0.12074092,0.000146632708,0.185480863,0.0972734913,0.200276643,-0.0113918642,0.0181242172,0.170936763 +0.117620528,5.16209221,-0.11762052,0.000125181396,0.185589463,0.0975750238,0.213037476,-0.0121898111,0.0181221031,0.166577354 +1.18138528,5.16231632,-1.18138528,0.000449217681,0.171782732,0.0829329789,0.0798582137,-0.0719894618,0.0181482602,1.67074239 +0.267480671,5.16326332,-0.267480671,0.00103223324,0.186463058,0.0946562886,-0.372987121,0.188214526,0.0181187224,0.379817307 +-0.120225087,5.16327477,0.120225087,0.000404800638,0.18094644,0.0942475125,0.228992701,-0.0256548058,0.0180433244,0.171246395 +0.119094662,5.16348267,-0.119094662,1.9688734e-05,0.185420841,0.0973074064,0.206305876,-0.0116547057,0.0181224309,0.168707639 +0.514810026,5.16530418,-0.514809966,0.00291327038,0.185724318,0.0935260206,-0.479621887,0.592068017,0.0180614218,0.72881794 +-0.190809861,5.16533852,0.190809846,0.00154290465,0.183777958,0.0947754383,-0.102763578,0.0520885959,0.0180767961,0.270525724 +0.477804273,5.16549063,-0.477804303,0.00528903631,0.184491217,0.0928902999,-0.540604949,0.569461823,0.0180680174,0.678638339 +1.06043887,5.16561699,-1.06043887,0.000835107872,0.17088455,0.0815219358,0.142324358,0.0478749424,0.0181033947,1.49971581 +0.115353294,5.16571856,-0.115353286,0.000225751151,0.185738251,0.0979765803,0.226546645,-0.0126343891,0.0181169305,0.163210273 +0.0989935845,5.16585064,-0.0989935771,0.000279040774,0.186739653,0.100482211,0.311278671,-0.0166687034,0.0181004424,0.140466958 +0.0820657164,5.16620493,-0.0820657164,0.000283137284,0.200255111,0.114740267,0.432079971,-0.00436227862,0.0180848725,0.116443872 +0.923497796,5.16642618,-0.923497856,0.000587140094,0.180674821,0.0871048644,0.203497186,0.165533707,0.0180916786,1.30664635 +1.16291451,5.16653109,-1.16291451,0.000723942823,0.142465323,0.0654288456,0.0431697257,-0.149963409,0.0181366671,1.64468729 +0.0690962002,5.16664124,-0.0690962002,0.000123162405,0.259365112,0.173087895,0.514382601,0.0256412663,0.0180794839,0.0980377793 +0.169273779,5.16788197,-0.169273779,0.000870841788,0.188129291,0.0970980301,-0.0106072165,0.0289138313,0.0181288198,0.239714742 +0.123372957,5.16797638,-0.123372957,0.000320969935,0.185518906,0.0971708596,0.186507195,-0.00895494502,0.0181206204,0.17453897 +-0.251767933,5.16941738,0.251767933,0.000965247396,0.184475496,0.0948420018,-0.379908711,0.182824597,0.018085856,0.356367499 +0.119074024,5.16987753,-0.119074024,0.000254715735,0.185263231,0.0972345248,0.206439853,-0.0110175861,0.0181173682,0.168473288 +-0.245729968,5.1699729,0.245729968,0.000100752783,0.184388027,0.0948245227,-0.362531662,0.168814689,0.018084649,0.348112196 +1.20499694,5.17009068,-1.20499694,0.000807407429,0.143486291,0.0664279535,-0.0635426342,-0.0377742834,0.0181484204,1.70430851 +0.915528774,5.17016697,-0.915528774,0.00220157462,0.180791959,0.0872171298,0.204458669,0.172936291,0.0180897359,1.29543936 +1.21788692,5.1702795,-1.21788692,0.000506123703,0.125673711,0.0571873337,-0.199566051,-0.00884827599,0.0181502812,1.7225399 +-1.10355198,5.17036819,1.10355198,0.00122582284,0.110614412,0.0486499369,-0.00829134509,0.0677317828,0.0181223992,1.56081843 +1.22862399,5.17043686,-1.22862387,0.000229843601,0.107481621,0.0518522821,-0.285581112,-0.0233220998,0.0181511901,1.73772621 +0.254905194,5.17044449,-0.254905194,0.00161305163,0.187135011,0.0952377021,-0.339540392,0.172643945,0.0181146488,0.361984223 +0.14337334,5.17045021,-0.14337334,0.000669948873,0.186543033,0.0967501476,0.0963720977,0.00188495475,0.0181260165,0.203157037 +-0.100609064,5.17112923,0.100609064,0.000287096598,0.179444671,0.0951446891,0.330830127,-0.0228209067,0.0180147123,0.142645538 +-0.608470976,5.17137098,0.608470976,0.00414824393,0.193244159,0.0990158692,-0.391645074,0.71234268,0.0181205068,0.861556113 +0.595824301,5.17154551,-0.595824301,0.00504535763,0.189639881,0.0953817442,-0.262426645,0.584365606,0.0180522576,0.845845342 +-0.0837140158,5.17168713,0.0837140158,0.000274570164,0.186350077,0.104308113,0.43970257,0.00440444658,0.0179800857,0.11869362 +-0.241122961,5.17199802,0.241122961,0.000184247765,0.184402883,0.0948593765,-0.347845852,0.161362246,0.0180827733,0.341591567 +-0.0708180591,5.17235136,0.0708180591,0.000118890297,0.256603122,0.168614492,0.496135294,0.0519981906,0.0179376788,0.100409493 +0.943288445,5.17245865,-0.943288445,0.00164934224,0.180677906,0.0870366246,0.208759636,0.146450087,0.0180879645,1.33420563 +-0.220561117,5.17256737,0.220561147,0.00103687355,0.184089482,0.094827719,-0.25109005,0.118605763,0.0180780962,0.311986834 +-1.15169275,5.17343378,1.15169275,0.000621513114,0.130281731,0.0580686964,-0.0143141616,-0.0778273046,0.0181266069,1.62878728 +0.838518023,5.17440128,-0.838517964,0.00365392887,0.182886496,0.0891198888,0.164291382,0.280192941,0.0180861354,1.1860466 +-1.19538617,5.17452812,1.19538617,0.000432465313,0.142389059,0.0658554658,-0.0287049673,-0.0116451178,0.0181350149,1.69054723 +-0.19137916,5.17465353,0.19137916,0.000714443799,0.18369697,0.0947813019,-0.11858663,0.0583048761,0.0180706885,0.271532685 +-0.11947538,5.1746726,0.11947538,0.000489044411,0.180888623,0.0943106338,0.228981078,-0.0226623807,0.0180332251,0.169886962 +-1.13828814,5.17491484,1.13828814,0.000850242272,0.122495368,0.0538420863,-0.0248607509,-0.0439510904,0.0181230716,1.60980856 +-0.639743626,5.17522383,0.639743626,0.00226162816,0.193209365,0.098713547,-0.330826133,0.704961896,0.0181202143,0.905424595 +-0.133578271,5.17656898,0.133578286,0.000568474468,0.181786209,0.0944866389,0.159409225,-0.0120191127,0.0180418398,0.189364731 +0.0985201225,5.17679501,-0.0985201299,0.000235668296,0.186337501,0.100211807,0.313720584,-0.0147405835,0.0180920567,0.140469164 +0.0687688142,5.17680073,-0.0687688068,0.000102021178,0.261614233,0.174757451,0.51786387,0.0255326573,0.0180719923,0.0980129987 +0.0816742033,5.17682266,-0.0816741958,0.000242935581,0.201009393,0.115164876,0.436470181,-0.00343569042,0.0180769991,0.116431497 +1.1331085,5.17694235,-1.1331085,0.000726163853,0.106147528,0.0455638282,-0.0518021956,-0.0831517875,0.0181136336,1.60246038 +0.182161883,5.1770606,-0.182161883,0.000386716245,0.188702643,0.0971326008,-0.0702311769,0.0450755395,0.018121697,0.258814663 +-1.14726388,5.17720795,1.147264,0.000256846281,0.123580985,0.0540772639,-0.0355300978,-0.0715941042,0.0181222539,1.62253511 +-0.179743052,5.17772961,0.179743052,0.000760720519,0.183547467,0.0948000699,-0.0601808652,0.0412354544,0.0180635881,0.254452765 +-0.242643893,5.17791271,0.242643893,0.000764065597,0.184439555,0.0949279293,-0.36386323,0.170163095,0.0180792194,0.343627572 +-0.450596273,5.17802334,0.450596243,0.00548485294,0.188804597,0.0973322913,-0.729439497,0.645232439,0.018105844,0.638952017 +1.12329996,5.17888641,-1.12329996,0.000840256922,0.0972694233,0.0409715511,-0.0738937855,-0.0609128438,0.0181074459,1.58860755 +-0.250117779,5.17937183,0.250117779,0.000563977112,0.18438077,0.094926022,-0.401723355,0.195799574,0.0180791616,0.354057729 +1.12471139,5.17978859,-1.12471139,0.000204856784,0.0961415544,0.0403641947,-0.0778745413,-0.0640958473,0.0181072913,1.59060633 +0.189580768,5.17991638,-0.189580768,0.00124102912,0.188406244,0.0968239382,-0.0994778574,0.0566997528,0.0181190763,0.269009888 +-0.620418191,5.18003464,0.620418191,0.00198501721,0.19394508,0.0994777828,-0.371508896,0.72366327,0.0181155223,0.878860176 +-1.19785511,5.18012094,1.19785511,0.000177867667,0.137273952,0.0628539175,-0.0549880899,-0.00372898625,0.0181310363,1.69407737 +0.82926023,5.18018293,-0.82926023,0.00285700453,0.183265314,0.089434348,0.162739322,0.29387331,0.0180820115,1.17309916 +-1.21472812,5.18040276,1.21472812,0.000280155509,0.123790979,0.0562121831,-0.178829581,0.00926985592,0.0181327537,1.71794033 +-1.22878098,5.18063784,1.22878098,0.000127872452,0.10208609,0.0480085202,-0.266902983,-0.0285854768,0.0181331597,1.73781514 +0.983549595,5.18158817,-0.983549595,0.00375586282,0.18170625,0.0874588788,0.225108355,0.102330714,0.0180826094,1.39138532 +-1.06973004,5.18188,1.06973016,0.0012180456,0.162289977,0.0766731277,0.136595473,0.130690247,0.0181180127,1.51291573 +-0.245250508,5.18249035,0.245250493,0.00112956192,0.184389696,0.0949479043,-0.388786554,0.18338792,0.0180766582,0.347268164 +0.276474148,5.18348122,-0.276474148,0.00323374849,0.185704589,0.0943650529,-0.436194897,0.23102653,0.018103499,0.392959028 +0.357786357,5.18352222,-0.357786328,0.00535963755,0.183946848,0.0930676535,-0.623097539,0.43915239,0.0180802029,0.509290636 +-1.04851007,5.18412209,1.04851007,0.000890170166,0.172777802,0.0829809606,0.187403411,0.143909961,0.0181169659,1.48295259 +1.17857158,5.1844449,-1.17857158,0.000501650386,0.153546482,0.0714517683,0.0146216433,-0.0657395571,0.0181290377,1.66678035 +-1.19642186,5.18454123,1.19642174,0.000807696721,0.138796195,0.0636486933,-0.0479515083,-0.000338812824,0.01812765,1.69204676 +-1.21406817,5.1848526,1.21406817,0.000751258864,0.125491396,0.0571006648,-0.172827706,0.0119647095,0.0181295425,1.71700346 +-1.22877455,5.18511248,1.22877455,0.000340307393,0.102564357,0.0479657017,-0.265097141,-0.0281325858,0.0181300566,1.73780239 +-0.0829973072,5.18551779,0.0829973072,0.000276797247,0.187001944,0.104902811,0.442945361,0.00718936045,0.0179692078,0.118392706 +-0.0702361465,5.18552923,0.0702361465,0.000115559131,0.25801909,0.169811353,0.499152184,0.05357337,0.0179255418,0.100159764 +-0.0997117087,5.18555737,0.0997117162,0.000193381493,0.179469302,0.0953262299,0.331776559,-0.0192815848,0.0180042461,0.142270952 +0.836857021,5.18574953,-0.836857021,0.00180837093,0.183314919,0.089395754,0.168960705,0.284568131,0.0180780198,1.18385589 +0.545527577,5.1864562,-0.545527577,0.00255758106,0.188654363,0.0953954533,-0.407702506,0.619686484,0.0180440284,0.772106171 +0.264256835,5.18738556,-0.264256835,0.0030019586,0.186365068,0.0948498175,-0.405272543,0.204807788,0.018101301,0.374958992 +1.06481171,5.18760681,-1.06481171,0.00118537259,0.165053934,0.07792411,0.140491724,0.0563162789,0.0180901382,1.50597084 +0.183327794,5.18768692,-0.183327794,0.000777758367,0.18829979,0.096908018,-0.0825332701,0.0510800257,0.0181133691,0.260334641 +0.83163774,5.18776608,-0.83163774,0.00230474025,0.183489174,0.0895612538,0.16819638,0.291785449,0.0180767812,1.17649436 +-0.701439083,5.18795204,0.701439083,0.00517873745,0.19243069,0.0973841026,-0.185215816,0.66082859,0.0181117672,0.993235171 +1.16918993,5.18797302,-1.16918993,0.000604638364,0.157158718,0.0732798874,0.0441611968,-0.0774665773,0.0181235541,1.65356469 +1.19890082,5.18830347,-1.19890082,0.00062616606,0.146539122,0.0679891855,-0.042435199,-0.0284003597,0.0181332231,1.69563627 +1.21513891,5.18847513,-1.21513891,0.000570255623,0.130727857,0.0598626919,-0.181732744,-0.0031068211,0.0181362852,1.71860218 +1.07346189,5.18851471,-1.07346189,0.00115432765,0.16186291,0.0760805309,0.123461068,0.0542113781,0.0180911291,1.51820433 +1.22866535,5.18861866,-1.22866523,0.000260688568,0.108332977,0.0511821061,-0.28586477,-0.0226095133,0.0181378257,1.73773289 +0.0691623837,5.18872452,-0.0691623837,0.000123204198,0.262937546,0.175729796,0.525639892,0.027137015,0.0180632286,0.0980564803 +0.0821767598,5.18927097,-0.0821767598,0.000282261579,0.202096581,0.115824506,0.442563504,-0.00165825221,0.0180670843,0.116507411 +0.0991760492,5.18963718,-0.0991760492,0.000374094234,0.186344564,0.10020186,0.315486848,-0.0130665731,0.0180816539,0.140605927 +-0.152029082,5.18980455,0.152029082,0.00109373149,0.182718098,0.094587326,0.0598872006,0.00727042183,0.0180460699,0.216483891 +0.141943008,5.18983459,-0.141943023,0.00019942419,0.185811013,0.0963808745,0.0910001919,0.00726093398,0.0181094147,0.202472776 +1.00710404,5.18991613,-1.00710404,0.00244433852,0.182122827,0.0877744183,0.228916824,0.0804951712,0.0180802047,1.42470741 +-0.104566522,5.1900177,0.104566529,0.000354416406,0.179753125,0.0950462669,0.303532839,-0.017665796,0.0180047862,0.148903668 +0.195989132,5.19052458,-0.195989117,0.0016333044,0.187910795,0.0965639651,-0.142806262,0.077889137,0.0181106254,0.277919412 +0.784594595,5.19121933,-0.784594595,0.00484291837,0.186367095,0.0918141752,0.107096247,0.369865,0.0180680025,1.10962939 +-1.17678702,5.19274855,1.17678702,0.000510418322,0.14310126,0.0656183213,-0.0181843471,0.00082186982,0.0181185007,1.66423321 +-0.199698091,5.1930685,0.199698091,0.00119562005,0.183355719,0.0946421102,-0.196770415,0.0907627493,0.0180611834,0.282653749 +0.147406146,5.19313526,-0.147406146,0.000418570417,0.18603839,0.0963968411,0.0646031126,0.0142605742,0.018107973,0.209701926 +0.136058927,5.19346619,-0.136058927,0.00031742084,0.185132548,0.0962859765,0.121185049,0.00398535328,0.0181040037,0.193537116 +-0.745961487,5.1938529,0.745961547,0.00350365206,0.191341072,0.0962221995,-0.0956510007,0.611666083,0.0181094036,1.05557084 +-0.533455253,5.19449234,0.533455253,0.00545605645,0.192486584,0.0996375903,-0.606544554,0.754419267,0.0181014221,0.756506383 +-0.910627246,5.19481802,0.910627246,0.000877527404,0.190786332,0.0940286443,0.210306734,0.366220266,0.0181090571,1.28869545 +1.17124939,5.19554234,-1.17124939,0.00105665065,0.156283394,0.0728584528,0.0396120101,-0.0630211011,0.0181188174,1.6564486 +0.724337041,5.19576168,-0.724337041,0.00623995624,0.190175116,0.0947504416,0.0305249114,0.468387246,0.0180571713,1.02484334 +-0.821594,5.1967411,0.821594059,0.00505284499,0.189734355,0.0942571685,0.0626539588,0.506368101,0.0181069765,1.1631217 +-1.02629471,5.19756985,1.02629471,0.00155055802,0.182118297,0.0882009417,0.229128152,0.170110554,0.018107025,1.45175719 +-0.0708412081,5.1976161,0.0708412081,0.00011846851,0.258475065,0.170134589,0.497517169,0.0556134507,0.0179043487,0.100488394 +0.188152686,5.1978488,-0.188152671,0.00102888548,0.188095421,0.0967844352,-0.116444208,0.0637597963,0.0181056671,0.266747564 +-0.617625475,5.19804668,0.617625475,0.00528410589,0.195316672,0.100564606,-0.386403739,0.741255581,0.0181026552,0.874545932 +0.170218438,5.19812918,-0.170218438,0.000444527745,0.187292397,0.0966416523,-0.0287996642,0.0377644114,0.0181038212,0.241115481 +-0.0836891532,5.1981802,0.0836891532,0.000272854115,0.18727538,0.105062641,0.439252883,0.00988734141,0.0179511271,0.118715122 +-0.922059834,5.19842911,0.922059894,0.00296651991,0.191282123,0.0942849293,0.224129975,0.347956866,0.018106157,1.30491126 +-0.100519285,5.19872093,0.100519285,0.000265369803,0.17957145,0.0954387262,0.324941069,-0.0149682872,0.017990252,0.142589331 +0.397021115,5.1990633,-0.397021115,0.00396843348,0.183366284,0.092835702,-0.671622992,0.521751225,0.0180607606,0.565346301 +0.718287468,5.19945526,-0.718287468,0.00108754775,0.19059591,0.0950732827,0.0222848803,0.478515983,0.0180535447,1.01669955 +-1.15692985,5.19980621,1.15692973,0.000660914811,0.14973104,0.0689708441,0.0236512963,-0.00146406749,0.0181102864,1.63619244 +-0.303477257,5.20128441,0.303477257,0.00216246117,0.184784859,0.0954200253,-0.677224398,0.370583385,0.0180733707,0.431221545 +0.142632276,5.20287228,-0.142632276,0.00063704449,0.185543686,0.0962367728,0.0841966867,0.00949682295,0.0180991758,0.202182859 +0.117207706,5.20291471,-0.117207699,0.000380418671,0.18397063,0.0965469033,0.208359212,-0.00481451023,0.0180888008,0.166977704 +0.0984070823,5.20314789,-0.0984070897,0.000210090468,0.18593429,0.0998976305,0.319257259,-0.0100201229,0.0180700738,0.140410423 +0.108307913,5.20330524,-0.108307913,0.000369476329,0.185058534,0.0983513445,0.266263336,-0.0085549755,0.0180799682,0.153546005 +0.0816996843,5.20352507,-0.0816996843,0.000277281564,0.202241749,0.115837917,0.448551387,0.00169774401,0.0180554371,0.116577893 +-1.09501314,5.20355034,1.09501314,0.00219896366,0.152199924,0.0703002959,0.0884576365,0.122277878,0.0181024075,1.54874063 +0.0687343627,5.20365429,-0.0687343627,0.000125160295,0.26516068,0.17736876,0.532267213,0.0300026201,0.0180509891,0.0981087685 +-1.14040983,5.20393038,1.14040983,0.00105664623,0.149969876,0.0689872354,0.0372814089,0.0302083045,0.0181055572,1.61280823 +-1.15625584,5.20453787,1.15625584,9.48771412e-05,0.148456007,0.0681505576,0.016308412,0.00551060028,0.0181065947,1.63527107 +0.699786246,5.20471239,-0.699786246,0.00409395061,0.191033036,0.0955710411,-0.0232041739,0.504977763,0.0180456396,0.990013301 +1.06973767,5.20560455,-1.06973767,0.00126342499,0.165631026,0.0780176073,0.142636493,0.059292227,0.0180808865,1.51287842 +-1.15221429,5.20569086,1.15221429,0.000275723258,0.148606434,0.0681852251,0.019984467,0.00844511297,0.0181051008,1.62953436 +-0.98200047,5.20620298,0.98200047,0.00118054124,0.188361734,0.0921265483,0.26162672,0.238571331,0.0181009173,1.38879359 +-0.137612879,5.20644712,0.137612879,0.000568505609,0.181687906,0.0944800526,0.121910281,0.0030355351,0.0180252176,0.195211098 +-0.792212248,5.20645714,0.792212248,0.00560899172,0.190237284,0.0949822068,0.00851710513,0.549873352,0.0180993453,1.12212586 diff --git a/examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.xlsx b/examples/inno4vac/2_A310_60_BM_160rpm_FlowStats_003.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6b96b374f620484e32fa347acab6e2e125801717 GIT binary patch literal 1840225 zcmY(qb97|g6E->%+g4{{+nku4OwzG!&%`z-nV1vXwtHgRwr$sk>}5fM+3ZqwX-bVC$wv_vjL2-CU~&#_q_qutzBq#twsUtMB+O+BC!=aik+@>o zwPj};K>j{Y{wy>yoD-3=>siUV<{woGqEbQf$Z?vMYU3w8-& z@aLaPANl&_3;O@p1!H?B)Bk)(j0Gx!S&%|LhG#ubIK&9Wb(!S({e%8dpf%B4HAd`< zg)6oBDrz^{!7=goU+fGtDj$*7$2?+qcS~~?YMK)!2ceXme#e6PJ`Gz>hb_4E>~N5$ zIxDCS_>YB8QyrS_uU=*myz3LA6|=&KJSL>X^$IXWMmxZaV>HoR2{uiDzE$yGnJXk&#Rg-S!_qK@rT>g#q zm_IFDR_arO&J+N_=o-Im+)ZMGe7mH$&_kv;M=#?NQU`}T?lA&IfJitwH>{C)olR{5 zX7c&t`js`cAWNGZJSh_cZ#@Q!?~^J@TK4*+^?LyJN9+-m-==wAG1Wz=TEgnDpKSVG zm)C_%Cyw}t+5GKT2sKE3$L))D6|};(RC@n)TbT>1Sr1H2OZx>3c_%=(%G~G8V8gK? z^Yi`H7&;;{9@E zY+>ndkmAgP_r^)OMFzreZN(XD*R`4G@cxQPH{{MM#ZYi%cz@aCuMbFYk{39F- zQOTVX4-D*vz3(%mUo;$C=0~R?lk{kxof8O_h}+ggbS^c{dBf4)`}?5gEvNC5I3%6^ z{((mM!u@Yb{)bnUNMpoiZ``!bpZN*eh93lQX@mZEQUTxkR;%9blG}#z***Sx^Nm|4 z_*#~IEjnvUpNN0`dAOTZ6u$rz9d~GFfWLYn*ES5Lw&TZi;v+H_^_sZ9k1e2No49yF zI8hKV2dE`g>rPDUW=1)Yx2@f4c;72Z*^w`lbk~tBBuG+7WDPR5?xOQF$RM*}3d8*k zNwNAt1d$KVnv@grSl?fczKQAG)Co7Z@jL9H%sx#}Jx4=kIp`5hl3+XI=l;(rn-|yu z$*FtQ_SL*(4eYPUcpDt0oD6;QZi(Gj6&V7=m>6RTh%h1{$rMx=CA>aBY0P)}g5~#& zneUeg%oNYEu`!l)y^iR1dOxL5oYL;`x3mFWaj>S5U&&Q&m$LVo@ z{&qa_4|*3#2#;*qS+1i7)LW(=Sf=MNV8raL*(YR<-G(9hL24FPb{CbZNcf1212!*B z6TTxz%_^%jltZYPgbe}us)a;o&%+IYJE_0@M`eKL*N>@X?%uM;fNox2Chv)Yi2~^7DAa%!UoDQi8ZvRyAPN?uVrR zlj|iPC2{C*kgTJ>GZnY9QfS&>S4HcJZ%d}k+iRJEXCn-e5$6XV4DQ#MlPvp3NPkXH_R6NCbm}%eMRDJnjz+=GU==A@NIy0Fy!@zm#Xhj%%bATI}%( zAzohzhQJU7y=h7etcYqP=x?}AI~N!6R<2PC&kX*yK`Lw}bGXA|;XQ)vPGXBHlsA>j zREWVV+bUyi1f5g{a$pa;zl_u$D|)kn^|*qPH+iX>Bz2)b(>zq z0C6zJQQEg0`Y~8W6@@hw{mZOK?tU6KNI7Oa8=(?u1nhH><-ETU>_z6j?+LHWB3s-e za}dQs>#?Rba^>wRAPB6!Um#ca{)^r^i|qRP{}PDer$8w3FeI^sAo^mN6Y&M_{}70) zy_5A%3sciyKbimc@jn(R?>MUD9CD<1q=WkK?ORNSk@$YFtI68UG0QGUSml zLRU4eb;D=$+DDaphM^7$O$;7Gv;M@LOpv^H&Fkf?>uvAF_jwD@^>RL-{}v_kG-F{&-!>y4rYc>hk*deDKfr^&Q}I0~YrESZnIi z|2S0ieFY-qyzMJ)yl+i(y|39X_}&A$KGy6%u9=13uTXv8&xL(H$^h?sioVbHFCXqt z=P|xdOWhmmmOE%5Ar^*$d8Ar4c)Gn9RMwI*M65T_Up+6>>_!2aLpz+YImZ%=UxUtO<9*c>ld_bY z!s<-C<#79g1wg(0c);6uRbc>zTvaY0F$IL^^-^1_&GlB#<%H(Ep-SYVefTYj=~;>B zHjrDjPT;Sw(h{s4MJ7t7KrWD}nmxBg-)GOe=g+boyZj<MZ?$M2;IZEzhqQhA}t;uI-?ZO7BqBLOpuc_()+=vB_i*A4D`0)t14!3zDRE{d| zNIN;SN6=b{DyhytuY;?5=r4x+SJgI80NqB{rj5kBbL7vsKeQEi1J$I&Ps_+O|gz znPJHJ_{jWt{jIVw%obNc(}C&8+V^^?X{$x=hvj(vc3+indD($IZ)_<|0VxmJ3m#G**u5m8Ml|i!1+OXAOBHH1vPidup zqpUem8s_g=G^{S+%_;|u!?)tC;BvG5yM}oW$CtJq;|`sX1l6k`Ug&_fBN7F{%8tqn z({l*b1M?_Vd1+O~5QdYDsRjXIPDpTb`AMOv7OimtTaC^gy83je&qw&wF#->aJbYx> zmD}NoINUlvRzJQ~c1)M@VdDC4xgw=lxxJNUH!nPdw@d5=XC7fvV!MG1Y#MOd8P^1< z9Gq^tPk)!@6d!0;HbZO81fCp8r;uGn(FFmB37LIm91ulo`K29N2H?ST4Vb3h%CJga z-gs;+JICrXjHNL;a{deGw)|&~)Y~}Nq1+)81WZM({0RR@;4zQcOleUmd@`xLWGtAQ&h!%_;M05mB#B_sXCLh zRtE4VHJ<)>BBbH3Pw0HXm~EaP5EW)Q+HxrI!Gc9BLHcv~ROwvQ2G5%7F*n04KBLAYLG>Z#Hm(>9E2r{Fo3daYA{F*nw~^zFHf&XRn;= zPkay?62*fWSd zax0!YY)*xP@2`Yv?DL>N{OY%s|19QiTQp8&gscy8LyL-OWVDKe^h#xzPeUFV^0>uo zNDq|)DDjLoo96FGyq2u}Jq%8dQ?GDz!a2yLcv+iwsNK;XI&BqLB(*?+S7a=m;{k$N zXF-^#Z{q8@*B19lKgOauX<6<={(dEt=gjBHxP)XbD-B5y?IuHDfN}nlg+LMLcOvmL zpDdI@sv%8V5^~=R!A$YsxLwk(i1F=QcQpzT1t(=164$@SbLiGlSqVD4$cM~c$^CJ2 zB@EtPA3I;Z*DoG&#;P;`3wOkZu{9t;wi^-n%Q->%hk@+3e9Po>IY0))(sS|Zw6+5a zGGXdGCJet%9K4c_&EiqTmO?eTg3bYi9OZx+R>o#$gtf~*+OJ=PTcEwvbvaF#Jd0W4 z5?!0=nYL}YVu%EObv$ypVWDVzDJ3(Ng!vm~rdReR`WSi37Ex*uQ-&=!#QV48FkU@O zlmRQ{^=nZD@y~7Hs!oxnmpi)uAs_f5RcnB?$|eKi3c_u@INe=cCqFMx-GDBwG*?M7 zza?9|gv_vE$AqAg>?N3X=8{#+Fs2MLX<+qv!Lv1A|sV&D9S-cCuk%1gIyuJ)~|Fq(oT0OVcVw0Zg0Jmt0dbl&%GK25%2 z(zkG7-J{or(#{FWaPHqRFbfoap0lf-m%)npOmv(EU7JV@$0Kx1z!YX6@<3Z}^_|*< zq?mi_;di4NdATrmI5b4lj)KY)H^j=D_JNC&F0Xg*I20K#>kR9bQH%T^ z7!w2l7uk|2Gv3*G5+5>Wr4pWX$$raxpCO=sYE4^`z=afTF#fVMNU$xGiSU`A8KMo} z8$n*)qNk-4Cs>H5FN9fZ;RdD^>v8i@%F!kh!{~YwUyV!f_cP7B8ajb?0U4x0w$&az zUql1~VAykC#!Qf)M&)628qWS~iGhpF=-9u)pgnZ$wb_W^!jfK~6p{4ycIi!I{eBQ+l z4xnJQ9{BswElx1U7H~Q=no|OFz0!6>FBE!jXxY0Te%>XElX@jDPt8vKiu+YkZ)}mi zkm2S|7|QIe6UUQHAR@zflGp)6S`Veoei-VlPLwAhpUR0l>|@kF#nQIdDR4%O@;;d6 zAqEPc*$zp{ zewTAI9UflAN?}*eO33e^k8a>%@xp$X+=E${Blbxpa7Ump zbpO&f?mQ8oADL;~65ABOWB&5_erFEvj=0r)WA!q=szzR{dNKeEL(?8(qM- zB#Xut#ej!$Oio+9?PM)zVYaU8$dZyOoh{T0-c4M0bkz}R_o-;RhCj~L`zcXW4kce4h^$+s~NfJoGqtAY)wTW)UA&+{m>gu5)lOyDKI2_-sFgCOu!tV&%HsACFvpB@&>ELnrm#n*JqL%R`kTk7_yo=C3P?p@kywyp7RN69pEgtZN~QrXrnawIZK<|$Fw*c8SI9Jk*eG6@GMKY38A!(G+LRji#I`=rLM~Zz@&&Nafs(qC61DkUz_(iIiEhZrsiuE@` z>?T)DTbnAUDnMYfNe;fUNn(D;&3`&?OtfCp`$2D|dtmpzF%B`cC(WisGy*IUK0|-3 zd-;Qi{B@DQN>~V6eG|eJv7rkqWF-b$z@x4MIs5wfw`6(faU@#?Dp^34 zpH%@k)Q)g0rlHd4J9JzP8z+ z*-zj3PZ=FV4#0*agLC*NeYBZbt~c4Ul1^5$X5m?X(KenjBj~SRa_CC|oZ`NDkvlR3e{3Tb(Aw`#@>+p0D;>hR=VQN+lHRp% zZ#sqDs(>-Vm>t3f(bxkkbik=dGy7AOp|bzr*w|s@X>WxIyc`Xn&$1DXJr0>hIQJT< z#l%x6N7r7kxN5LK=?>*VCSd4`Lp3;HEs~kb>wNY5+GB#C8sh|4!Ma+MbtUGAJnWBi z=fI9$&1{CqF&*=+mL$>YWw*;;eukuqu%e-TjR4t;iC8 zBX1=wrcY})|KBa9YB|4Ssk|4!_U*WS#5An&ZbHAx@l)aV!#}A-F0JrL$@2#_1zbtGck z(7k6UHGB(sg!(@@x!RRw*mlmK8Y$ufx^)8QsD`wIm_;uQJ%2j)H9ia!b zqj6B&4pB|OzX>9s?=lhOZ5Vm-%$VA5d&0*|Ln!s(%WD$p{i&aycF{`JB)hXudzL+P zOaH(jCri>CH|qQsijt(TZiu)aV?H2Kp;j44eK~b3DcvT`1V^7kCz-jrsnEOrAEb8g za81Ljq}~n@sUwq;44?bJz!V!xH=~|8MUos@@-L_SB%4-d>SHVhA8EPp=nHh?58=%P zT2#G3HOY|$%yfUwI2Y%qBZ@kYWiXMA0JrHJXR^NL-L#>3kH(-JmPDcZS^ z5uO|srz`|*kr`39bQ<~Oz&iMpyKgEaZL~!7H!X4Op(}J`;K}k*G(9y2bt!#Cm~1C$p`recqrG>1P(8RYk2Z6rDr%Lxm_3>?lOT`7(XL<{xa!&6%p?P)=NV zl>No9Dp#>K=X`CmN8Hb8vPx|bhRC}`gD}n-8}KHUu}96QIusIB#a>vMIR^B9T!uYS z8wJ(Q!@02$v4G;$TnrF3+eV9W5A(M1*ol|Ks9#PsK;0rY{0V-Rtm@5E3D2t3q)+wy z>a$LmoT0|ZW7Fnyv2p(l)$v)ptA%H1bFJzZ&#jWUAlDQ~?)K~S1*-Aq&#c2gn@myW zuQH9Cl@acE7@UILoZ`MJ)KmzE0%7%J$C%n8Iu&zV>6hR+eO`- zh|-@sE86oy=+{*H*$iGQXI4nyetetwr{xBYpR=2T+79H#th{4&#uxGa7TZQYm%l#g z6_BRw-mn)=m+A5SPYI;4p`EsI(K{$= zDVT}@xq#hCPD&E0sDHe34z2Xj%Q=umywSiXOdNR)$_0?YF2>~>UYnI-fy*MPRs%?d z|NGxL&j!Wi9Mu^GBiA_hQ!v-iUQ95ui!G^$D)C#uXaVhspS4+cquTIA;dd(pK&jPc zWpj+TN#Y!8PtPmdDYkK197oKsPJH3r1heOHDQ!B^wVf(QpI^V`OmHJU{#H0Ni({Dr zTMJzDs|JY-W>poC_z~5eF=KTtQc#$^$pA+X*B&BBGh7g@{2`zhqU^2$Za*g`_$$X! zp_aSAi@Oa8!4j?9oe4xL{?ckSNC*FvZFz#@Zis_Jj>#Z>G+X6E!eJ6i`;|7{-By?L zPBl~U@e<}wy!$JcM*;0n>>xnvEx9+Ftlux8V`hLVvtfzgx6s+aRtLD8DDCuGnN+pj zg-02CNjz$N;!Q;&OI{4q&TpSUe(TpN{nm8;@wYin?SJ>PB=;kt$%XA=#zb@)wZlNa zDEMl!6($-+??XZMY5UB$eWppN1J=r8Wg?XNhP+U#krY@n#N}5A|1BrQQx}i8fjObn z&_X5O{>3=T7JaBtcD^Dmj_~JY4*tzD0cfUYo#@}k)1HLbnOY) z(*vR_<)hV)V zE5n$yosFtcQ#4&+{h7wijT&PvNmR4KB_WmP9O*lk9O}?AZ(`&A#*!++0nccKLGQJJ z1@@cWt~eV2jZNK_knuEM;AW@mSkNKlf}`btz$_RC(wq{RGdc6wZj-h;rJyW5Us2It z7oI`j8_W1X%1t@(j}HohR>>RwBFbgy5;?`nTr==wCBlDAOM|0yR$iqNfV&JCOC|Wp z<~o5h#*aAbl;3la>~d6PF2ntp-`|QyY$Ed$LMvOpJrxbh6lUm5Y-7B|>mL&IUYOQ) z%RL2GzCm0s*9|6+R~uW(sr%&gvX)Nu|6GHDTjS88Y4qhl4+wM#*(VdSK@UF-{Y^jV zim|y}Q&O)8U8jd=J)hFRfUZN57lW>-*z`#v);FR=(vP!qukE)+%Z3~xzj=a*N6>ov6^q!LVm!bEaRVs`-Ar$qvwNR;{Y+|4M6i5Zc*xa#(Z~Q`BDXoM z4z@0y9;mS%FkP@NldLYOl;tw^_t`U zS~$KU!csE^@*IWxdDT7|B&wgZIDK`TD)W8vXF~6_oTDu$q>W&pl%Lc3zeew|PrFE> z3y%VJh|y0|dYZa;P*hBhhF+?Rp&Zr&vvVQ`SaL1^_7`Bfu^9ig2zAPzL z<5mOTRZjGSdbl7RV&`HV$QJ*;8QEk?s!o?09G{z)qXM~_Zzg^w21sAjx7RSfFM1Pb z_8{7$r&Gqm&%_9AH1*|Ys>Zr2$8z^#gA+R-U?Cxxd+9*BYq8D(5C5$c^E$_L9J#a! zc0No}{=@yX_5;QX9nfXnfQ23HGxs*-adLb*mnfL{D9HWa@@VisFUh#vLzWXrses zLobXanO5RLc$3pr$&zTXyf~7)?Y2!xBPRpxX`_#Pjrr5gD-J;{9qE^jDT|rydUNYm z1!~z@^M5<`CU{S=NJ>0=T5ze4Jsoo$9L3SoFLn3R+9{NMk7Ay2t0NiTb&z4k*9=CK zo9QAa7tM68si%snN~+d+LUoU-bVWMDu!Ysdz5t=_q&nx+HSvi@)u?!?jtGo%yF*C|?uhoGn52kfAbVZrKP9ElKpCp~9wQ z7|gA7=)crMwJp?tp@k9NnE*wJlHyfJyn_Z)U#z#QZGeq4yu7k2&YOkRJ8AaYf4PYc z&Yu++OQ3>aXpz%X(`-r;jJB{PC{zRV)gw$)O*Z?cVI*2$YSXG@`RL7ijC((;zrY(5 zrYTlRs3_NMR)3Xd?`<;x-z?~I-};n~7Si{GPtpjoEw(ZMEZuILOdh`F)SFshKy)>y zG4xk-A%|`Rjb*c{1aJM^B(>q6RnbD3IfxLt8*rpSp)MfOmS+wI3A5yIB0f|oUbHMY zYE1|Wxd-Lw;vtf3x(htaHVv;d+JDk*@t9G30n%pPH*^J({ro`xWXA;sU{V zJCS>u!!S4@)|PmW;*u3+^{;FvZS+0CibYx|o#L6bbw{1T@0)n>lx2Tb_6nV|k;rak zLuTA`Tc5vb^4}fJLK$a@BQxipu{tvCo?i@1W^M9#E)Wpqw=CyJM)PaVQs#^W?+$vR z`yb}E9a~1^woaa4^hFa_fghn4YmuC4o$@*8+1WoB=Y6mj)h)Ty zz33v*7OJIdNdt$C6*Y==nE{F1OI4h;{?CRa0ZbvfwRLt)MM9ouq82cM!lCfe!?)`vtxK8p z7g2R-C)Y#& z>6GO^u{w>MChc$x6{bj29&BUf=4(04rgVZ28YkF2OCC18QHE zzAf`J!0As=^dxLz1#$VvoHHHaXA3g5AF!#?Jy3o-Z%gOP@`VHQtn#|wk2tvuJLiyX z(^Ng_XNg_8KKa1g^5I;vP*P50!$K3Cc?|s{)(8(HYi1TyZ-Rv}g>Qfd%MaFKpnFJAaV1u%IpsjVs?R(Dlq8uBF>2OvnQuNN)Sgo$! z^CFZ!YL)KqjHXSz!2rwj@r-Om2tzB+zH$6Up!Eb3h$g7<8DA}*`LjVbqJr=(QD?Aj zrG`s|KZ>`_kVSK3(;2Dv2q7iBDCA z;dKdq@jAcrs6@=k>;x@W}=vPNe*Xpk??7@WHf3dwF3m$-|z?W-f%7LETrpTFD2R zxFHqxRETpb$7zxnE`~$H?scA1`HQ)tir@}TS(e;QQ-~p&O_S>LafEVf6cgbS1U#{I z8re5rh3d?C>djhMAB)m%q90`<|64CBH-8nRSHc2UcrZ5R6kP=JK+Bi>U-F8>QJW8m zc4sxGxG2#b%IX1H<@bIIr$Vu59u$2=Q?i?NNRT2EL zO*Bm9c|WzUVza1fYI`a0S`3=IPf2bDNgCsj*yqgSgn)WRcx;4s#`H2LoAe`8o-2WJ z#)Nh3kOCpCO7ZoM42iqV{XR?)a&LK9%MJO&L^04zbbod>2w!|PF_OqE(Q4Nfz~WTs z>c31<gXixktoKvQxY*eQ-Km2i%A_9-JW->F`rCL#C8TWg$P1w638Kp} z$(cPjwTks5C=BXAF{MuwP!pQ>|_;(E}2<2(kZq&d(o}-kH#qLiu2qSENrB+i?qXpp(*T(g-tiV=g$d7~u#8itkY!GVK}# zF5iDIjRF;vX|1dGc_$XVm@4UPYS=H%f~md{VlYRtiqkuBl14Jnzr>Z4LWS));pNfF z8W8b?+7D|@5)0rK(kd7fJluB=vh8vxSpPF#{eh|E$>OAJV?i*}cItl;KKA z>*q`Z5iLb6yp``N79Rep|Az5F*7p2xLE+VTXax^etCW!Az2%_Fl7;o+psTi=(UqAT ztj97We;Z+tSJD>RPDomqjL?TH_xDKB&!j8!$7Im7hW{@_)V_h{qe6H{I!gHPUvZS)gSl z37@^3BD#oWG%TeTf!YLqt-RwA66tx~ z+Pw^RpMd`rACyAQzlvPfOJJ-#iIG+U{t2DqEt_K@-Og1t=RnW9MbhNGN;qXXCOTui zoua~MCM(@e$ACn6{xq{7?cXp*u^-}&^YoyA+Bp&ZPiO-^nsDG=mR5g`pKV*nZCX{R zp8ZQF(+q;P*V2DqbMVJ3uJHOWqz~bZDf8vjd^Bj|I7wgcjc^*p)@@Z1NX1eg-J z#9}JVh7^PWA3!DzxnnLXkm?dO)?vs(%B!L6cA9h%J2i@A%q!;JAR4aOT^fhF8P#0_ z5ca-PdL_r0VL|}=m@zRKdNdIs1;B=ekbY{3PTjlnfn<<)&eQr}|Fhj1wk-9nkn`2n z&OTulzHrRsXF}!wkjReFJ=|8yel(rT{gRdKKwB1*+#`qDl`VA7P>%WxwrslgMunvf zL-K;}y%zA@S)>dWR~6TJtop=<{CL>`O9|qUNWia65b!Xl?uKGx3aE#AX&vx>de~*6 zOV;JY0KKf@<4{0SfJ4?+k#XGMVbZltg%gHGGGfzW4&DXNPz@k`Q=SS1$e9=4Mxy3F zTf$46{j&;+eaN2Zrby5i`Gy^Y%n>6wF7uRaF$IA%(Vs}iQeJT*!=+K$C3=MB7!vi; zs}q@iVeSDl5oq{MLtsjne}*zb$)#U-K1CvlE>5OTpL!`6d>NR;y{x48ZrV;s-^ zDKPwI+^#C07tRe<4dlKC?#vk0Rv`havam#IpFx<68rA1qY})ZOQrYwm3ZCND#?x2v z-UMUAaRQrdWYxQDXjMQHNv|(z230JWF1ww@mSS2ITX>5QmRc{7k=xmYNX84a_xTiq zHQf@>y&YDJ*i{+rv~gZgz{MVX^~IYmu)f_b zluk=6z(aQbED>|--(LaunB<`<*f*@1Fgj&d9WkRL^Kpwz(Br?SP9aX|K_2H81;~!E z`B~rU;yvr=kimVN0~@lo|JP_HR~fO9cPQ4-Nm|D5w))e$%b*|&_)~X zMFJNEgN4!kU{I<3>Q39A;iv8a)L%#`o*CV&_G>SXg8Z!UQ2%|R_f2TtTMJOsv%}r?Zdq^moMt226 zpzc;(N|SB0u8V@ZFwRo&iVhkKE`Cq zB?Z;_jltsTDc+WCcMi{do*rmUEU)++%<`uwV8GDSNWVAYNqfo2Hug}q3WUcS+CLXO zTl;f=(H7RH7{NA7#@22u3&v z3kl;yXoGr;(|S#L8*6KDtm`P>PTp{?ExUwlru)nx4Bo;yaaW6(r~eZ>z_a4-Z?^;x zgi0dKDzO5qQ#f{wr0iv%Uf04ZgOK&36I1lDA5=5hj3T$CA*U}gj>*=rhIEFNru~B} zvHAoMiUnSW+|=^`x2L|#D>9?l!C5+MiZimlN3l-4{RQ7 z;+hiTo7x7J>~PS(kZ&{&n|#)WD_f3L#qC>E*X#QGI$0SN>Y2T4T^~06tInUK5if88 zTYBA_rVdp$Q8x@F!yPB$X8cEG+pmq7U7$I>ob9c^0Rd#-pgBhwKtGB)&$FysAWT|Q zU^2#K^r=_m5zOfaK&G~M5e%b{qd$q5=DAlLVk;B_kRMk54?}Mfz!+whtM8kPm38w2 zms)Y~nMNDh!q4dXfX^BIc|x|dHflP7Ko|EV8yVWID#3M$C{Q1KHC}G=jrm65ea4ja4YmoY`T2MsNRc+ z242LtQZ?b@A@bIp4s{A1jVbkfzDo#O*l_k)kemwe1?^k3wQgs-BH0`Z$(LB+!F@?v z&i_|aoRCiQrOlp3mfryuYufmqsDYMEQseFN9yUT=w1I(04QO|ka)!iAZC{?=*$R!$ z2rCYbwf!|9nQnj0Z@_i==271b992qMo4YN2(uM>~(O4_m>gV8|qkKq6sAfgQ1u*us zDXGlVW)(SE17y@3S{3y5X+IeH8PQ$5TdIah1;(Tiqm#lKc%*o4daF4O0dN;nHKCR5 zwj;*rZa+2j5*=x7Skv0r>dYAW1j!qEs?IscT+vwkaY1)Z;l~VC3kNOR_bdoR{xb)T zq9YkTTcalR+V6!_7c4z13whnwm54~Y%@sQsjJ7Ee4C`*Do)H!$h@V@IIZSXtCW!uj zI&;y)EzZBLL?}Whl_b_m2w`=yAW*^x&w(S&Bx&Nsf>9qCdR$@A{$J);LKSnwxhZL(Fb+gJuvQ*A+ z?o&g3Xeugl)f-$Agk85T7{pn)yK-p49IUWg?cq3jDn!`|;l$4LX-B>+F5KVlVrnL5 z-_ehijQkX39vI-%I3)nFU==?M2 zGWU#_b#G)8NRA3v3m|F5qKU`WIR8NS!vryLHPcc5jjonTsXB!;!{kW^Yy4J-M?~*2 zoiTYk`I9zr|KJ;{?w7NMq>GXtyzg07Fd`3FT22L|qP~={PU>58sV@3inx5AJeH;5G zQLE-WmfEog)iyf{XEGvcw-_TXaRlRkgCumYl0S!OqmH`HKM@$i0=q2|!6aR7KhOo( z)lAEFy;yDf8G`Oc$$wz#@r@|A^U>6kClzjMxl`?p!Q0`Vw(^1B02V}jAlkvx}Ja3$6po4HD` znU|Sl<~ZgJSqrJ?iAplc_Nn}Sua#{A$?1>-v&ZgWWf_mfZFb@<*oVv(El}`muDjh}xjJd|lkMxVui&+* zDWQ`Z?lgrLWY?seSkJYHb1wEvUX8la~CDHqAu%pTlq0H5}Hy@ z`?u5O4)p7F9KUF2W>f;0qy-MUZaGLhsOMK6bxlpbv8Zh#wa(|8g`}GDo5|HTZZXQv ztwI0w1htQl3=YdTJAIx|Y9Tn+SkG;){v6C%KinxC9Bjc}vULrv8PKVv`v`sO9_>uo zM-e<5V}bQIX($^i`jteG+nLq`A-6x+gg$}6H4@TH(<}AM1v}EiSO-a+43yXq^!A@j z)6C}L)m0%icUHr3@N5v7!irRqw$>QdM6<3+VV;#>S% z+?-k)VYF^j>s_o59*WeuMc)#oH>Z4(rA?2C$8|KegK?`GLMQg(Je-Musr5)mH4VnO zc@6iATzcBS31)|Q2H2g}P;cJErecA@#>woucUo?VTH^s4m&aA)0fi-7I_=x)tQ1X{ ziNd-E#F4CwUPN=_e#w1t{OiGBI}DX2U&(hWK$&c97`f5?i41|W%5vO%%wq`;$?uxFt!G1f zTVJ1yQ_G5tYi)g{;K(0f%Z<#|E!tA9^6so2!b!!`TG+}rUtTi>cGmx+vzdZeQ{AK2 zoCW^;_#kB)Uk~)zcEuE!=T#)?^vbZvu_qPBvG1Za;M44r5hU0W*8M+Rv-`k z#<+iRAqKba+WyTI^L5XoS*3)HxyJ?y1U5w9El%~vN~wwJ!HCV!52^;&#}Lr{)r}~1 zmT2!L_vh7qo4StH{}8H1Vg%h;cng9&=>a71iePn^hp3BaWx9MV%EDSqTV;rLu&y>^i7Z-G z6OpH7j&82%vs+OGQODV-@mVD}TV)wzGs#f+ycEARD+-zS7#B;sjn$tKbC^&V?#2qd znR$Ro-cnH}3kB6=)@}=S{xuCJ%t}qpU@euav8`w={m-qa1o7DTxA`O^s%CP-$bjbi zC`RW$Xynpv8WgU-xYpJjM(J&I<@x}P8agdeR2I*}Gk(?uJk-G{0SprXMfz6)-@iJ! z@rd~rne~O#6!S$v_M3+H6YAW5-?ZA4{yL$jzFPB1{3Z;8GO!mLpx-r{aN++CP1hJ6 zSKF=I*lEnhZ0w0`+qP}ANgAiIZ5tEYwr$&L&$RD%{>`s_&9xt_TWf7_Yh4_8sL#JD zzGK_fK{ltt%X_n(myXj+U%*LU7z7D(*U&r)q?y(aI3HQ{X{c0sq-3C(FHV~x7i1l8 zu#zMFZv!({)-xN}Sj`4wkUM=T91uWHUd#m}P-zGfPz&{9DXqO#qU|^8haax3f)AV}5>0Px+L(w*O$6V` z!72mW%ea2kHgqTW;yK@6Chwh2H+tZJ+_Zq&qQMNF2e|8Vfx)0NKepECb)#b|b*p|+- zi-^vxe^#6DF1-US8u0a}=9#ZG=%{6RE6C1$b08Ym+wCEydIzUR6bqfWo}+XQCY(3H zY#j}>jz7E~K?S19!KSivjjPoGiRc%%E^WcgcL9e^hsQufx|#l$EbEb<3*#WAV?pN| z^qtQC1WX43X@mA#pi8UR5_w-Z`HT)Ud zFA8PZKrDMAz)qdQyk*anop0PBPrF97PDXRaWC#xg0?3so%FjS5uDSnY5eE%~AxVa7 zMH@9^ug(vY;|qQC5cQZ=Hh{-6!#J&22H)Mpk9!Xm@HR1-W3A==)Qw~vdGGDxcmh>G zIfE^pRi5Qk_$uC&r*TYL4H{!`i6Xoj>?Nqtq`CVMXc)Eq@E}Vg=w;O09nDWl#pOKe zqdgLjN7;eoT`BL)5mtYhR_NCyLsB1SSk#J0H7;w|d}VWLVT0$DSBgAIQ8j`p2vSJP zD1i3YgX;g}q$tH`X0^20`GP&66`E0s*-gYDs4frKDhf?l8bU4Q-=~(<6pU>C6R@^I zEp!w+M%W9eB3qB=y)eB%&O!?-VFlI;VJ35IO?&@{9b6g;Sq%Uth})|9H%tmv z6j6~=ElZYrIJ*wSk`5=mzt$v@T}}l`bX1X5zI9lO9GlW;9)(BlgAYJxoW71c)K?q< z4XIW)yY!%;MA9F96!9Y=nj`y;ez2A%06>(vyW4;(G6ys2OvLULI<|1P(wgvh8!Q1M z%F6u6L!q$%a|ODMApf5NHPSeTduBl5kf(d$R~JDG?=q6TJo&X58*keOMD>}0j%Wmt z)fGyrEKC-y{IkD{_qXB8;HBsEvZiA~0Lx@Qlv&PG9fP{6=0(-LPabPllSI8?ec!UH zhJ_kvepOi7E#dtA80QuU-RCoUO(3t@Kuq1bz{hbyd8D3PLb$0mRA)#BQK1g!4WM!wTRbl=|a+}P|>ZF$U@B?&|e@8WwfiUdSMZVv1 zTrGkaBaexNKt^3=zNf6>W=cRT(!;u-JF3@ltDHzq(_Bf3G7wekA=u}VDw=&vCM>qNo_zg!A2StCASc8h!=Dc(g zoPE%0`D#=Did}*gsbcVCu5w<-fX10>O=6{lKK0BDk=pObD4$sNrHP?ya*`@`(ck)l zri&}J?Ua74@GIq5NM`#>_=!QzB+@_BlOed}k?YA8MZ&^>u^eocMf2sYx-zPZT56PT z*^G)HrY^wPxnXw2{?vQ(k$OjuQPM<9Qxn{j}YX zH>kpzVDPW*RkvFiy_yenYoCUEIaZ9CEdF?VjxwsD8DbsCn@Z|EFXxsxgiZDD7@J7l%WXXx*PgA;Rpc3sYC zLBP@&7#MR#Q~?0YZ~H&9SqtAq@Sdv@hdfr5NQ4{2`_NsfsU0pWRUx}DhDW%cIQ*D(Jw?hEIdC zu^Gfea&}3ldCjg-_X;#Gh5-D$MoqpWkfNr^+wa1-5KkZUbsoH)M@3#ZLbS%@a3JHv zvQG}-D+OG>w;99b7ahGL7p=gI|1RLHc-F{F32S#hUNyV$NCj?h#FRAFz`Q!>z$MaC z29qZ9#S06o{<#>1cb($dv^<+`=%`NSjhHV)+QB`C>E@1`wL6r-uiHT=O*t)}lX+v( zj4Flzf68~|_CXyC=5@2eHTL^O!}9>B{#muF$9+W&=)$epzWqwrH?atQWHqJcFY58; zvIfKpb5jpJ9{w!Zz%K-NPDUn*4q**nBGbR%CnPv?F3aw|eos7F@1M>HgEQwtgumKC z$8lV*b8XA^8kJKi;qhK=`Q0D4Xhr{&ciyu+@FF2SDCL6Pd$B#g2DZmBZu+C2CEv$J zA}p5^EnfMf&dUNMM<6zuGB|dAJ1+-hk8>o%8}#MCfG-%~30t#bt4&(nY|4_@$=~7= ztYHx0T{BvpX`w9kfEQH9@Vx-+WhUR8BL zHi2{@u*7HVKL?a4EYrU*ccg?vw3pSIX3WGYjAr)HGPA`|bL6(31nhjWy% z(}oyueXQcut^oPi+aq3#v1}|Xig1yFbEcC{o0{}9!eE^l`6>?7`wnvIJQ#M`rl13# zAYjj&4EQ;T%bVvpPj0t|m4gj4(F3OXu=zxL2S=I#iH6@-i~vgbVi{t7`V&|FKHKxNEzXWY}yVje?x+#Zg3-#=eU;6MzKW_cT9)|Oq=@)EMc=gipcsjw!6 z!86}LSISH^Ez4B?&A-0R|6v||Ir(#{qXM9KwSf%&Wtf{A(LNFpg{j~?fYcg$g`Eu+ zg~_9?%+TR~db^&6ybD+JpztySe)9kl?oR~S;_atcLAE=_V0lZ=e`%QGv{S`WcXAp>7Pf$OEjj-B%qD5HT+s-^CNHT!S7%o+ z*f@0h=Wj3*l|O6@4o#7Ds1G4XCCg3z9|glq^4R{O+dxkp77{cD7T=G6%h9)gRgN2r zpwTavQu0h~(wId^Os@P{1)9R-eR&+{7&BYTd6#(@9GzTWQ z{`4UN@~vx&&Gzv%JErWz``d6E@l|lYAzcyLtBoNLJfhX|=E|f$U#s|+_L`@wPQ@nE z1zmMPA+~iqH8*IyD*gKnG9V^YvD{blEFSc1-1313R_|{Wh*7jBn@ysG zQ}@^u)p$6>S0N9`Ya+-qbHNcQy`n13=Jnb#fBvfE=UYiU3rY_EQU{HLgh$a?(Hx?2 zY<(C-Tpf5(Uv=6ZCjJ(Cac27VvbTN9VRS8>p^%g;S{ATN8o#0!c`%dcq7i%`i>&Q) z=m|Z?+MP$%i%nT6bI3${+qb`%60qpz(5dps!PTOXE;3Qj zoP}j%Eb~91wJe^zhy?@!Dbi=~zOx3U`~{W*QCuc0X(uQpr4YR-^=Z5yzt*UvjJom< zNSI+Z&myy@De4}!`nkv(D8D4+$6MPwa9_|TwlWkmpxZTH3^#N#^}5@&^`~gO$$DfJ zR5;+u37uy}4gcAcQ7^TeOn(F)3MHZr57-J&guR(<>;Xfka;bodpORWyoo2hsNjYA~ z0Bx8+{ARBQZqK)?bempZv8NriO^cD>K<2mU%j7YFW-C~^GPkd7xaYzdreCR}(4tqM zeUXe!FcYKtKmmC1JoCLCSQRvBBlOcwPVp)$?%js2Q_1yZvBy=v8{E0JF1KqVK zTkW&(tXVPnRq%ROpFf%}37|)xh6z75Y#&=S8-p(6P$kyd{WEZZmCcd{2KcE-2`@-cJ_D=Z z;2p&9=i_A`{YslvrF}W5w<+mNSESEuKm)@RMKn$GX)nMe)6ACQ9w|+!#b?Z<=2l1l zDvWhQ1NIs<5lu-*iKZC%XYWppR0z!n`Q)~BpD_9!=4mrPhC7|>vzwW+{(mac5I-x>Udj7+(QxDV;4q)? z4&uC#Fg!>_qU}u=Uy64^GZjkhOL5j7=5lVu@u+v9A$^Ip5>OnK;xh(bst?FDadlnq^^*H1dadlu za*V6(STy$K%b$deQ)s-Ff_xJe9sPO$VfdaXWY<_Y*!hNn{`i7JU@vxf7B={kFF68a zIgc4v)N1HX<;iu~X%r7h~fa#xk)8YFanhOl3c7#rw85u_vc! zw&;-YC#LOyVa?l+1tr50nj-$Xn)dA>yUSm}-GkWp>eTBo z*}bI4K$XLrdeGvo6J3Loy}a)63~Q>hd51i2Q5zizhuW%E?@^#`Dwi?AI4fZ{>VPgh zzZI;@&Uz_tcvy|f_^SL+JGg zGpH;f{6ar#{$1BN4b{J4#w(4XG3OPZO|DSTOiZ1Zq_>f*l-Vi(BamEeW?7*;q!PP?Gas#<#9r3oFqC;Nu27yeD=zK(+a@?E z_{0wD2xQcln7F8`N{X~Gn%9%SDHR*=g{fNoUpaET>f<~NGAqg!P*=-fvY(4%8>#4v zC?)`!0endJDAUBr!JG~AG6q)kfJv?{E{!;~SG+M+-xwz*jcx%#9A2}%5kH+fEG(|` zntNa7eGH2z$`LrxL6umA61^Z zya^Y`@N|fxYdSHN&Q0^6vfgR}WfarY2wr7m@svm|g`ckz;C;|I?kcWCg8cIuC6{(Xt35D|z zI!*fzpMz=qSy+TCw7^ble8XplHk$)}YW(tuua}td=KL zO%d$UNa$iQorkSiq5kk#R{G+(GYx_7S%f7Zb2Y&4L5D@qnOhHIRzS&t?nCWNQ;w`}X(cyyBYSsM^-zmi(0kfh3tHSGQW zlG(qRP@D)ezMw>#Ep*tvA3iB&1{;V&KUZzYi;&;Ktb4uByngT_VjGvRa_Pv5i6zY3 zI7p+SZFdKSMt5Y+uXnevP)TV(J<6qsGIU4mT;oC^Q!6LbpiqLe0tq-wB%Tl7yPP;I z=SVXamdoI=a|;$;gzDxRH}?iyYi;;3i`51{NFX|}NNObw9^`E;dw1C%WkzJNyNKK- ze8T)h{r#U|UwaU%*ZH5$)fDAM)KcuZ%ON@lI}u%hcV!0{WbvL2o#|8SwF|w5(~({E zC!u7%VkdnwwKnXVw-iR*3?EC}nRjCE$1occlRv#MM_R7!i4UiVH7=|)9tTA(oW6my zqjO2fyP=Q_5N$D#R7JvK6EBHW97|=mWnXAsiOibC8&P z?U<#FEEanSj+RK9>n^z7X`u}_4mC3CQ21+#{N-5%^Y#kpHAc`> z7RG{zY~y4I0M&IkV+#09??$5+P=<~Rn`nm4$&_T*Bp!2aW_~J;cnehi8}Xi(y{Om; z=hb>&$6`7L2eWjJYZiQf$+y7)!`_5mwi;pDv$QZhf|9;&*0#R?pR&+CaUnRteF2F( zPV3G`NcS3Qk8!EOQF|(s^`*zD)XiH>atMR9zn2y|V zi)r6XJR5EwpBn$WS7bYeM7Y_w=476{XP>Bv_0#Z-iyllDG-$9WR&nRyg2T|?2)64F z; zOL3xtXP=nKO|+*tI$oiNB7QudFaCimGH8>5=4Op+?OK!+gm+QLt+>gsFdNG|dS>cX zU8sXtEDNiqp>#@1vGm~QaQFcV(lsRq(b|t{uq|%`69RN}!YSnkNNZQHpza^S&8n~1u`3fVAzn3eaftHVoRJS+KQzFnExR|498}o7-)m@FXG>jbJTW7V zwW_31lT?I^rA{<{gCfN}0W*fjPIBc<-FRJ1@u-C-d@Ga-OZmT~;z= z1YNOYVG1T9QYseki}cFdC*is)>S%hSm&Uq)G@f_bskE@tc7a~g`5j(*jFHQ!^SQz@ zB@N3+<8OU8HIUBB0!=){#g!0m#6bpy#SGf8=B?t$k6jlSz!XmBZ53%exjc~8XtN%1 zd5B3)zF2jsRp!I?&*6;Zoft`tU{}-0t-#jaBP*hk{dF99sP#wWyGyR69__+`rG3c! zsR1b5nTTQIfS$;<>OoVp=a=W`;`W$`NUZ2WbgTt1S>Oh-3RMg~7*a9_R}x!A{IhKA z7hp+`Y%Jh)`#>yR-xzRSsF1I9jjYX>@%gm{ItVvBGQ)7z7G`A(Gd_hWv9kVA+uy?> zC1d4r4ARp07ed$&`)aYbq>@UWiK3=B|zO0aCiy*ixlWp>rlj0SQf1 zm&UVN*oy&&MH2WwYyejAxd`gmUhe!-SYYtLxGY9C%ZCvzlSYfRAduAcE7Ta<3a8@( zgL#W0Qw=-;kxj8+OfXnD+lDHk_ZlL}rg@>bj|X(Qf3y3l6-trP3u4PgLbLgeP2Dn5w*ss?ibR+)5DnxiStB~_5s zOi{kq2j)+$N_I>9NVE_Q0yFt@vjL!0oD0sNlA<8vGxU0Onn?&B)%hyTjk>Jvm^G=C zkRD1%KkQFwIuEfXSK{r%p<~EX&macO7 zLBzCPpnVx=*<{hbLgKEVZ~5GV{afY+8letjT%5=$^{yN&RV>nq9hOtXf0L?%UBR4Q#Qk1gZ@ zata8I!H2)8N>u|!pr@jLWMBPvT0W8b=Q1TU8BL4LJORfb&EEv!N*Yos33W>H+HmQy z?$||Usb@+6=OY8Vb#4D&3!Y3FxIV7JvMRF4p|m-U|)9Mx1Xwcf&K!vRh8jRCmoJVWpaYrxS0*?B2axJ;|Z zkrsrbcs_GW8wEN+a0D5dJGw<@F}U{~d_Lk|xn_I&^?5Ca9VwJM%;T7_hJ!u5C8e+` zq8HN`PhXxF%OKmgP@Vxb^qH4qru!!PLq= z;wwZ8yQSfrqH>CwlS4pwZ6FA%a>hSpdR6hO8kl-N*|3y?c7}~b5)44R4P0#2sM-7M zWN#Gl(NV?@rKs4~#<=bOSxk0|7<%2l(u^?NCN!41YOR;@Ew$pX_B zqPp6h7(+qGM}Vexh;2T_@!Vp+O){oU#mX326`e%u0xifkTRE-GOsZQzR8(}o1gLBP z>L;x$tkr$lJb=&?Z=DgnwauafmGOf#@!S*DN@T?rE>VN*Y?h{?XF-rRen?WAFg%dR zO}w@PiK;WY{L#sO1TqdP@z>SfIOgC&c9WFrjrx>SZU%NV>lS`sxu`hSrkW<#V`;+w z6IUsWpnNJSJxQ7TZ|lnNuPn8cvI3CuocNKonZLGXP-f6r>*OflM%Wl17H6}iN}Q`0 zClAjPFY;)?fT*0#vH_a%lRs$)FWV1zVwqjyHHAcyZK#NZ@2`mPvR zBvD3vV_}m#71^DxcawT)L=>HAcm}KDx0ToZzTQRSf1%YNCn~CqQVPuDsZg z&6RaCl0r+)GHfP8s}3$K-q_MF!(tA z;KNp9=h4HPd}Af5B<8yAEJSLCeOzi>8zIo;n#grlwH*#CG7*Y!zHo6p9@cq$RyAH` z{MgPyo!!G4pocTx8Ebs#IRxHLr2{FWlzjmDNuf3P|$=ToWAs{%sqh~DPD|XOr zPk{nO@(#}1d>I~LLWz^l#ycXlx;i@&f&734)aWf)biXzg!1RboXRT8Ek;>bM-OV>Q z7o2OM6xSo7L_^FE?E%cU2VbhA<1~R~71FpEYB%Z#IEWj(F>pL!^18T1fP*M+w4b(K< zY@ZPa>z^uj*3P2}UsXVpMWZ4)g2Ge(z5?FTDv3Mg;o_ee3JPrQM#bIQs3AKjTbPX9 z^Qh#y_o)uPRxZ7R$YXNZ?<+=me-m#@g(y+6D!{f+nl<|( z%zCSil^zt2p~U}SuX+A24UuvZaAqeXx`{rrYSRuXb(g`$8=OZ8X<4*PU|4=Not*OE zgYCDqX-p4wjoa-5N?y*Q7yiDtyUVMx-l7kn)Kude7(T}OTo1bnmJ?X8lR0O~H>v+D z9oJD|`?-pPbfHwvLAP|wBL#fB0i3*BkcQ-(ceTR0`uq{(Ju#a{++qht+FBA zjt9Cr5QAb&VfD+hnn@ClWFUgX^D(&Uwl3FIg)cf_j0o~aM#AWfehDn;54Tj)-YT43 zTS}&>X zA&|+tqmVU8NwAl`+5w7sk;>;lz7}V4OViOfXz#Ax;)}aG94rX6!!u}PX`8Iu}3sF`_!^e#zoe(yE@DIbw_b?$TV7i zLDh4jxs{B3Pq@OK{(y2@b629q{vDKK9w}ujt90Vfv5Fk==D^Yg@HF&0dG7rYA*%0_ zsCW%Bg+;fWZg8-@K%+uEM}Jl^heh`lmUpQfGoZyu`hjw)%Ra>cIz4u#i@7qDB*oZp=wXE12V5i)hTFpu!r&yD&7E~lxnzDU5p-s&y zm^DUP9=vI2ue1k*)2l*zBL1UsW{(D;U&~)Y-F>_ zbwu?gNnE|SeCaS7TU+{7P}IWV8~Pom9w-QlW4g~QBYSHAROCk_eMID+X>>i1u;rzb zkv`R4YB0l3NrLznKkrkvX0~*rD78Knv78Gw*hEz0@*cBlI53nC4hMTnPTeZMGPCu< zM|frqd){@s_v>D49=&v^Tedd!A)hE7N*S;{H zyjqSy??Z)Kj_YqN(fixjSZF%d-15)nY<7ja%9s!n+5$ybJ}hO8E}`}~2UsK$$(rHb za+s{O8w>0y5RkGM7AN0Kr41Lc+gMA}AfWN$I`rj3oFfs%nHs=FX#m<1#*Me^-C1E!4`)%}PZ#?o&c=9Kd@^axb501$DeW4>p1qto*luqim;1f&QlT z>*zQ)QjWIG7sY_2UDfgwACTXxnX-LITL}hEa|Br1^nlYv5Ohvi0htWm%L}!x(xS?E zMMfoSdRn1#xblBrgmNUW$7;m(-vA4#bVQ-)S_KEFjkR67I;(AW(XD^OBQIq4RBL;I zHRGm19gT#NyMH?n$(4>eX1w9-r1VeuLwzA zmiw$mL~FdrmT_j;rx;l#zQx5UxYY}yaA%*D_(J7j&p}ZE zmwR9A>)7BikIjhb*IW~}B6;xO{yshk-G?!?zWiv})Q>pS)1oPj)DFj@Qba+fe%Pt{ zSgPqK2ar7`t136oj4S!?)~(DHDRTB?epLt{QKc{k1%OnL2&u!C@5H@n*KI-j&WjV27o4fqk<6l5uR0z0UNB<33F`|=M) zGK~Oh7CPOTRmsk{dKCxS!K@35j{@yo$PFPT*&i>+9th*r6sK*U>W+#YOxO?4E31PM znP=U;<`p3FGWA1JGC<6!^Dq20dBdFF6UdtXbLiQvtlO0z;yOX0E;`r7o=W$=&&$dW zob9hBN)lOnFDg3HHn^GXXsx4r8iHpAPn&%t#jkOv+#3>jQbwVBvf`-G*OL>%oMBo_Lj!Z4m{Ui+@1P zG_(JOH>_BVh~j56PXupO)hQaoOqgA_Ljx5eX2^COIa-Q;f7WTjggru*&GfI&+o}vR z*^&2^0Pb`Z<8;TsCRDo1rgx|A<8^weBtlJim(Yu$mxi}8(FmzL)=a&~zD(6r?r+1g zpr^LDfg!3@UT5#rf_(=kLpVsN4|Bltrri4?n4_sRuap&u54L+ygqrDy8Jmn3Ypcg} zOovb~A0aFjU`Z#rn%!BK^yASdf^A-YeLYrz??!#e;H)|<=~zhm$NeI~%w#1Vf#}tH z5I?rN{iVsWMPf9tp6TGjq`vQhL<)*4yL{-UbxXog zV`MiEMyGZgcBtc~Tg-1&%`L@a-#iMg=nJYU^|!fcUB1|x)> zUEaeH1({;n0hWk2)C@?guLonhOs|%aCL+ddfXE1{_RRR%l4}g_WpLlbz*{3CTt%Z) z`_^H3G?p1nt-R$Ey$7>!N1SgwLGXP9G?(Vq*Cv5`c^tcWV#=G7^CAqBpcr%VcHIHX zD`Y1m2Wz!Gh0wK@P4)Rom`JbsBG>`b@awQG^k;bV8>6)(lgF^MW1Yj8>FS=g=^g+8 zPWbcBv}2_xCWKR&&B=`~*sRm!Y2TTrC%^9x;#YP+V2NRom8Z5J!1}s3f1O1!F!{11 z&J>RNqOJy}G@LIly58@K1|)91P$=b_LG`s||H0>xkn^fx*e97HIYs?yJn(UTo@rw* zkwPIN)Ov)%9JPbUAq0icfLyhsq+!f&1nm{b^UJjU$%#JG6O&4KbKH7wt7!`9I~hmp z!0V{=;ChTN1RxeI^NssmVQK&QRKwpv9Y53al>YRpxyhXw39E$k;ehmDM4}&k#E3h0 z3MZNIv}emld3`IEd9b}a1s;3|UmYE}EWe?Pbcswf9}AqW@U>%O)6>d`s?|c?1D(0F zK$S9>gmU~~+xiH4&+j5JJwXbN%IQj?G=U@zKa98zT83t{f7h}ykt$xq+UrBce>wY|ahHs8Axw=^C2 zzh5xjdDihlKkS+H)G%X2o-eedM@=Mus`u#a1 z;0=p12b)sz1;2UmAV zr%cDcrx?GJQ`#&%A(v%VFUgcpY3tqyzkpRY`7)r1w&kZzUes~o)>rjdK`9Co^3O^b zpl?`I0%VTAdTs_MhSJN)#S!CCWni7m7(@Q%qE?IL@nW0U)f-(6`iA)=}(Ld#42qp+HeeJ4n`D}7(P2j6*L0Be~{M$E>ufsDfWJ+xIVdh zQ}*TZqL7dg0X|I0ggWCgV;Ums?4cZoyL&ofuOdA?jUAU#%7Y!!RyQxobzHma_nU1vQJNA@!D(vrooCm201b#a^LqMc@wo&~&4N&^T@dQDO7ODF zWIc_$)7ANe=uLJhv`0WpPQ2FPP2)2W2 z({r$>{*#fx4K@LayDVVlVMJO-Hiqs~NuG&sMfcXLQ_XKL2_|1h>njudd+C{1vzB5g z3?0E(1$r6`^Z*)T_6`}LglvL~@2U+Xe78M*Ef=E>(j@oU@mXr-LrM=Q!{Z1srP7bS-{)GxIEe5Nq;LGl`)vxYBKpsv^C1>^% zwn|_;^-m}v&AB<~AA1v7OS3v0c7;+3`woRsi&iuAV91o*pC2}DqZZJ7y;C97l&(1v zZl*iJtR@$L6eSC17(7s8X$=9|rD4O%TYC0<;-VG-U_)~x5`FKD#(1h{^QaTN_jHkQ zMMYuu6fys7asCd}i>&`bW(9aN)1Y@n*iG7qQQw8z-=Z~6Ad5&2IQ(2pyf7f(;*PPV z?|z@1Edk$Ea7a*~In>Q}gQhMK>4@Po%&)et@2phRe<;R*^sIh4;sJ+R8Mw@TZ%sl} z6z9KS#IBnZXZ01beV6JKs`j0I z($fraph8XMQBji(+6@;gQAatKgw@1?hmtY_Bi}$UC+NCq1><7?~ULS@BH-3aG(t!1ep6Q~;ji(XaTF6H9E1 zcGB68ep!!iUrO?0)T_L3%(->HRyyyJU81*efZi>uzW17Yom`SRm6UFTo_+^}`B7-5 zA^uYr4pz?NX@P@GGINoOnHuBoQ6+&{vx`nMeBcyR$4O>7gj zD!s*wrRod#r$agRkXhJquThR#aP!}Yvlag71o~hi7bcj#w;X#!DnFM~y!UaSJIc2U z4EM^BVW6m`w483r{Y@sBm18nknb5M1Y}~Tz+=k(+UZcYGB|UjrzIH)z@^YKvH93`EAr zZ~4ihaqegm_o||EhlMV{;kRZpIjxKaDt@n!BxKkls`^?lFAEjHJo_Hyt+=VE7XUuC zWODzU?ub*Eh>h7P?QUup0$HirnOI#h+{uFgV_cJUDMubuW)iAqi zI1r|4RZsVM@};)d?{_05+@sCZudKu4LdlyEiMKT3u*&4nNW8nBrb!>#1SktXG|l{d zAk5PPpRfmq?RE@KqF%j3~O}{~fiSElb-Oc6ZBY^Ad3kA{YGu z9>YhaBk%a=3UUJ(4d;rikHp4hY7AmRG8u@^cM40H@MFV@XlN)NR3Y`w z3Pn2v0p-9#^cjcm70uaQQ1L}Af@xefj&7G>j}!5^p`}XEUVYL4&~ZCJ{}$j_l7^t^ z^~IDf$zZ7+^hw39FTCrF8BRKg_iU1#IPN+7jPRteQ15TjYn6d1>8ydfiOZcK zP)tP}^iaKO-yAs%XIMl(U-5$Sv{2lSK^o*^!~~D8RYHz#=UeMMQjg zCZU=4qK^ul?N@BWF3HLMkGPT=BCM`tR*1GIg0$h#?jTg4{4R+?N=LVi$b}-j7-2x$ zU;M~%y-k;MMI*N>1q(A6)_yGQ(1OK%E~2gN$3+R>(h77M9&_9y3uC4~rJ*3M4dpj# zaV0URjYbNuYO{W3R7CZcMqs4S6WR=PEM+%GX<&s0ty*PIJR(=fC_F;M^i0!sxv^p-2i9wMnM8jk)(pkt4d>c;}&}=s-{?OLT zQMcbw(|V;K%*eHb?DMY0{b!&50KMxravLnfy$^Xn$ATM*_Jvw&r?+`#iaNmIHV4zf z?6}!tnKB41SKBAcv^%^4lDE}@E3Ow7Y}M0DvSv#yJ|f~<&EpZk`SyQhP!lmBwQ+Uh;)vL8%eNq>|YKx#m|=Ps@k`2-X`R% zspX7_Tx8QC#-DV+8v2n(d~W~fa-mR8l2mE3QZ#9c(5I93C^-v{>V1e={s!@&i(h8v z1X`%B@07y4^x=%6%Ikw)iAm?tWR*3g8nz2Zj_zg(A-=RJ;)qmx{SU&byS6JJ~e`U@S~uqDX;004~A8Tu1otTwdVy% z{AA(CrIFNjA~||~f|6$sWj0?jN*XJsBn2OY;@I)m3lO$2gD$?7YDb3;rgc7$`5>(x zREsRp=_tq-i~oA5#5Xn-vJ19G)})uV96k)rgD-MS=E?JyWFs_^etM6xSca!}cj>9+-nyOZK|)5zN8@lz3<7=Ht8XVFxmru4!z9UjCc@uU zCuZW;=zeKfP3Sn3NXd*NnKvVnP!PFP?~{fjzjh!c9z=c=0Y;0ACo`%sdLFq6uIjbJ zOn4P*Y9#4n4$Q9{A^ZX9+Uq&BUJM+4O(}tGe<%1GG+FSTLKkaWyg#x(MfVAUv+6T{ ztdF}^bnj4|d+S_X8>|z0`+$2fBRz$s9HIdn{g`L7=o-H%Z|Vi~QQ0u$k=ScW;zKqt zm#b&hq$Cr0mEsYe=?gUTa%>VacnYmYCRSDmMxxoGlpYfQIGQEOY=#+ct=SfcD<8(d z>C1>~h~qf5;$fFseoTzQ>a;(ue+Wv4jEDCKZtR=A4T*u>CA&M%F+|iA)Z_fg~ zV@fS{QYWZ@vCf}F`5Ifdkv*NLW34X?`=kO?#+*L6PdFdyn2=9Lw1pp7;54|_-VtlZ zJ|qkz?p{AO2cbym&(4{3_#L61zpPjDrdEvubd*&a>aGcU;$wSI6EY5>4+a4GED*wW zbyU5E*wt;8DM#viF^EDx6kmNj=`_S;n8O~8h|ouCKDYjn^O_S;CtFO$eo{E4AKb}f z7vbGm|$9NviX*(t-B%gDNqFaml zhrEbVVTvjnbUZN02QfwFq8*Pdy9<~cr5U|uaGb_q&fZVa%UU`X48-?ITpFL z%#9P0Ue3ze2`Kx{jJ}mHL|EAzF8wXPFtf zwO2;iQsxn+7SLj&NQS|8Yb8{BpjDQ$6`!CY@Jg}e5$4wty-3=HNKO$<0-JAOSymXK z^b(hnH(V+5qV3CgxukdCaAJbbR~+n3R7&c@jNW_31RMBv4n1pHs+5gy*i81{2;tCvcV$-Lq5;QU;P~3l(tRdO+8X^8lm-HT2T$#Pnw%U=X_> zPZVoVHN%Z0?!ipw2h!(WY)3SCti}tbv7AAMH9T`PlNgsJ(oyiArJj~}$@1u;R_8^z zrPaO!VVvOsmLnO%eArF3ptAXOsY-x`XM^Sw?~A^`BBYV&E}h+@MCsGucS`%gAUJ;) zOZxX=Jh+jSv@(f;vG8qr30li(@dkx{qKa14ElD)~*n;MqoI1gV8Fiv{)%d||;$&5@+l5+iHkn~{Ay7dpBdrMTB|3YXfn zX*04hTt-~s*1*v*KCZS0YLisxKiEwB|5-9|DD=Q9mO*0Y}5 zl8R>@H8Y1*gA&pI(R3ATQ8sN`knZm8Zl$D`?(XjH?q-+nt_7r&ZfRH=1OyQQk#3|r zzSZab{=gg@!`w61nXACyeVA*Ha>c;N9*VvC7sLL*=&8^SI8qcx8&#fd#FlkmmvyE3 zO|P>@$&saC=u}Bw{^VdJUIG^_?4BWKlQihqtI|PaXYM*!-n=H0!w9B{pNW9iM}NBw z(Hti5iigzfdw(Em=k-IulA50?Q?W^$P|d%z#HId4xW$$~Io3^&v2A*q5?`gC-$b1A zwuQ5WBE{X3#39x74-OSdec-b0k6mEpSV8>O43C^Cq!Bi@Qei53JOXj+<%gxsi4|G7 zM(S!@(7q-c0#Ye~^Tdo1e#DAU($G5EP!5w^MwGH3abL+Cn5HJ!R6luHDjCf31&eDp zrnCG@m58d9Gy?=and!@z66Q#5tq@!)J>pEp#$U=8i!zg3tdsdscFb(uc)|V>?UH!d zK>Z@Q7;97uC%8HJ167QPK2eoQngz;~$Yjl-QooM7?4NHp8F^J8rE%U2+AgFxiiEdE z{2&&HV#cq3ODYSMfz^S1Q%dmj4gCX)if)kDg(&*aN!l)0kqQp!VoC|{FWTF&P!Cgm zw2@H@nOwLqxKDb`&zZ+AVVA?&R+}tj4`d3H-B9NAVo4W&&32P@VvQd`6$X4pUm9ej zNB?54c%-o77)>}tbCuDc4XoXd{qmK`>>Gl#KIrXQXqo(gIGN_n{Q*4wTlS;IV0(u7 zF>PG))J|+V*+)mar)Wx6tRj@E7cF{@bt;-fOr0q`Gr!#?Kb`F2n| zumXPwwzKYlwYIUF#ZYB{5QXrqV{&y{6T9vNu4}4(IV^grKq^GHFc`mq(a}so{{AmZ zeMcL$-@ER|R z8t*IiSiU=wU?lFzm*j3zQ!Z=cqX|D|q`)Z{gNpG#SPpY->Boa0o;kc|&+~|{bO=3< z?89Oua)UhB%t0KIZ&yh^!0)>?60-Ma4uL|uu1x^)8xSrfRB7_?PCr z^~ZvWE&+vw%C{~Ly6}O(N0I~?dUyOwd`RhtULQLLd6-Bpl_w9zJL^8}cWG~NFMRv+ zmYPro^?jlzSx-Li(HnlS%vUE|ZcnC>m|ZAWhvyu5U+6wvQDhK~kGnq9tJkCCBweb2 zG-a*`X7lEnA%h=B>c#jA4*$XonwtHy%!;A*FLUXy(ZPl(Y`dEggj-xg@YCcPHj|2f z;4N|Q@?ZAT*z6h#C2J@B}NUo3hQXd!d_Z5s2Ff z$kC%CvV8zswWL8xT#$1qd8SXVZF-csALE}zf4%bwmjF&w?)-jHvMGF zQwqr&iyx$An(fHDPkJyTW02!Wln8wW_`gsF=9%E{avZ~pUx|-)W6wX~xm76?!)&l& zx0R%tyZR5t*^sq>fcZI1aoiHzD%K5t?7JUhWW3#R(P^Wfl=oK*`gynsqSHJsIXPBc zdKo{mjWpQy^f5vQ;eb%noJJ&a4=#D>1|)k<81y2t<{qNhE`z8|61a;rR-ua8?-G}o zTNCAzzPFhbVP?J}_NpQ<+?JC&f{nCd%3jj?jFt~Y>A3HTETab$$>H;ZtVDHIzs~#` zzu`LkEdEBvagmr98^5UEE+pekM$y}$1v%8pj{TXTnf z@DjXsSTH~LiqT!DNsZ9aP}!jNW}gDHXj+NQGQ|1QjoBS#bC9$1l&&>b z`neN7L^yPuxiO=L$^5dT!{TDmf}9gR;GZlea$f^y7nm0fGJ^N#p2hGtT7bM_Yc2r0 ztBy*P+{SLqCq}hJgr}DnB+LJjip{=FJ=}r>6|5w%Ixc7ZT3z|5*dzCIpwHyOQKW>i zbM79G=41~?v(5BMRP}Ub6s1`wCQlzV0pW{n0nI92(&#Og()+bswgI0yxY04K!D~1*@@$|susPB`M_g)1zXQ=DbcjIhmeExMKwphIbZQ-Kr z(%Le4ask!;QU+2B+S9PGWD;i}z{b_yV2(&ki_jg|2mbE^=~^d3Aa3XY#-YrCIAaHS{)Rgpt}2V|j67lraXbHRE|(Fgt+JSvKD1 z@lIGm&}A^mU%FdHK`Xh!%Vb*FPgHF?n~^EKbY1uoVP5y&zV|l8u54Z@yyAw zP8iZQbVz5zkJTB$<~AR3C|JjM|MZ!eDq+ zZP}$R<^eKVEaGw^Qn%W)h&1ft-wazSV{yI?cl>23S7%rF5u=?%vU8Fe@K8mRHyOdS zBtMIID=}P0D$>}TYbP$p4R~T^_)ngHxBkFI@T|EBIpe%tS6E-W)++oFH{pRJa8rH* z1)D?a_?PI5>U2Ktj;B_h9S*W!?UuN#)DCG*^^Ysva7dDPZ-ckH+C7M+XlH!=!m+rC9SmfthCH2FotowbB8NEN_kWz?a5Ty~Bj3GBWo zKH9*{90djT^KCCAM!^ioE2pej{Wl}bP)2t|%<$mQ=0Y~Ujs{<#)%i$Wh`PETR)3+xb z=2dvmE)aa0B(Suq?9x)8WX~iEH+qt91K}1LLIuX6=#FU;L1Jlv7CGb{Bh&7<^n**E z1&)yh6A$UG1r?ttJNL;K_C{qm>8FeeYvBc$K_?HB=Z!N1tDtr zl2HPa{>wmz*>3RuRIRb%ZSH*~_te6N3iSAHf|Q|~Eu2pw5W2kU2&AvZ39L6BT=$k= zUX{tD4fia-HlINS>y3lID_zvlmik0>etex-9p7cUoyJmf5t97m9t~(^)87^EgWEd` ziUua|ZqhV%Dj6g7?>fVud#>F>Q;pSL~p?|>s+xQm$jvgg>B zxCAkgrC5yTNU7#ro~3u=2(tD#7o=aw&s1YJEhl))pCDY1S!51K*G^#57(S)mjR!yG z4x_qL7dU3a7FA?wLd_?_x6}yQ4$BC~&KArhnG7ZO^Y1C;Ye~}a$PF}B&g!x68yf?g zjO~~u-g1KuZ_`WVV%S)+IttCr8s`=mUea{X`F{Vpi}z;X@_1B%{uo9VD28G&ZOa$A zx3MICR}6n~W!QjEz0{4s*b{zt09v?4P6)qQH&{%FrVxAG3Hwb9L;0+2Oqd?-;Uvs{ z`KFSCpCamV&5+_WXU&gy=0)XLkxj$`~o*S0lYtsy6QamHtmd>06hh3ShgP7HK%O9syHrI*G9TLdKy# zBwhXwI&^?Pxf<6uGwysiA6Hv3D7pFk){2;Ljt zx!20ea;HhC6^W{ zUP(ZYjUjT#ZfkR}o@f=?uNi}W+inh*n&~08JV1i%{aMILb*X(>Df`n)Z)C~UtZDZ&34Oq$bi78;g*$d)58Db<(UiV z;NzCPVTAr{GSM)yCA0bfPJDVrp@xMkGMPWR-RGKWV#^`a{Jn)d52leo%dvFym#k?S z(emO1RJ){VUzbgJsv9qLQV}E_x7aM#G!qj(`$g$Wx-s+AF zl*+>Z+iRt`9)pi8%Ua3D<)9PULO||oy~s4U%gf))Ajw(7<8iJthFbj8pc8q}-_A+0 zUww60sN|-rzZ8^zw^;INNm5Eaz@PcXSL;FRsn)d0!bR9pIDY$j-otP~hj3 z1vonQl2whWS`#Qd04ANTJfHK;;TC#xvxnQ8c&i|1_nh=f(@{b>uf2MS&Qrl z&%3%luj!>Q*b!fqeENv?guQl2O^3R7D!E%w3wbqSX5t5CjM65QLLl2!!!4@Xm{m%3 zHFj*bhPuiHfJz0BfDQRkg_f-fEPRNO@r$0hm|-B}iqx3x9#I{`pv+ahr-*c-9rgFI zqzM^nNX94 z+JGZ+X#kocu0_O>MJRafMdf~_k0?hbbLFNsFAg{ZfMtLc=hc21o&v-aaQlWsA^u-3 zB>>Ov>?Coe9lFU%?@JhsXvG*9P;45{2QISS(Jm@7QO&~qgk>iV;4E!haeZZ-Z1Q~f z-GlZ~vVW6&;;6mwDwu{@i2DutI|}}HT!n%l5Jg?n*20$zmerpk%cu2c5)$JEYhG#d zeMroB@$YiJ2Ox7;lm}^cQViY`oM6U2N{Kdst=5x+GlGbMtfkHD70;e3{l-~agAjf) zk*bJvzHYIdtyjjLWAOuX-|kyRKfC8qbSC4sH~KWSa;v}hFZ^(ARSxe;RKi;J6+X7@ zla5sy+!jsKZ#u8JSof+cxz;#9^e4K6PT8b`jd)WfnVK~Iat)6V4=ir1ftMmhD~x?C zvH*6iLW}5Ur;|b_%yIld-LHWo>8Wk)KS)zRmryuE)$?wyDgcW4PiGqq9D0{3XG6_a z9HS(o{S=m?XC zy}xC74}7=D$784z-p9nZ8~>$44)%G4sCp_CrkK=jLha4zAnb%g$^HJEEK41YKZsAp z^kj_waVW<~dRg#ev;TGf0Ztfpn#?}2j@OF0JQN?Dfn~b86B}MQdF8Td;++41bF^Izx;Y42} z!&DBboL@Lc243Z_L)W`JGQ=|&8ih%R-x>^#p+HRa)!%eR_%m$Q5%0?;8Wbls_duLyB2RV=L2oV$LT&O)vrWc2 z@qfdsQcz?{ix!LsaV}LyhTho*q#+Ee2PpZF?{0VgP8Qjk+7)52**M^~uL%n&T|Z;u z-9R=`l!actDYbvKvI)4HtZdm}QN4-Pt)n^|`0XoDi!eqcA+gh$!A!sc#8<`Ci*8QG z@~afF%ocw`vh_{BJJMN}X&pruw|QkS3ug)SgS*khGyazW!h|(~op1PY8&?%2pS|{4 zLLFX167CZU7U5t=nr>*Sqzt7}=t`k}$R_KDBZv2~4x}$-&@t1E z$j2y=>jN)r!`{wekvkKt6l-p}V=klA+n?Yrt?*trLay&T-2V3j1(7eZcoy>O$`J`g zNm6O8aJnbMIGNjuCKfFzHuge{vdZ1jOWYNAWjk`WP?|>FXIO6Md!&2c4M@q!#C=Xu zhUtA}h~}qphG})I>oivE0e!Yp@24X}x0F|Q`4OFiFXL^t1ci)~2(s)6Je>U&1H#TjKrI+q9@#!{-s$ccsm`jvxXL&MU^Pjl*RqIzKSQedpHOC+i70g2_T0|+8X;Mc{l%#xvBUt zhl?R(b2BP1au4PBRZlz_6xNr!coGY_CP4RH=V=aepS>Ovs^6OK&|ve>FK zapIKC%nm?p$Ok*Pb7L)5mfo@B?lXQLtoQdKXV>I0x-~24sdgs^GvZe~^dXcn@ij@< z^;xarFA;i7Ts%z&Pv?6Hgwii!Br;rKmL}jHkWf;IgDEZ=3aGnWNnL z;L>b$hCL+tR(T(AW%B(f{dva&_9oLC?rKFa*DCZpFkA~VAEH8$r-#C6OoE^37j#Am zJ;7rUl++WH|0yQ3MEs#AF%{RV*K=+{3ardqY?nt_Fq2NO1A=H;@~ckwsj^O0eQ4l_ zJN%O9-FJ+02z^9)LK7Fy+o~Q508PL7EV-Lons53#3uhW_IU3FD@VA#sWS5+bE6vk& z(E3g#mJjei_dGQ4ja1B#y^9xLCVj@2j5FN`bE zhcLUu%=v)+H?5OQxb&t8mmLMC0e`5!>f_Q#iRy`3U~T|5U9VY>kStlk<*JO)TEv*I zkX);QT)9rI3>ASsGKs^T<$%1R_|(K&SE^4cJrLXsX{#)ISl-)wg8s5?vp$?OUfn!lo!F@kO9AI8V#qH{oeKX_-dE!_RmW2E&xhzgAd z*@EB%gwSWL!0R~+IsnsFy?qO_p&yMrgk!0d3{5m@3@*iu@FGPbZcr7Nc_n~$)E{%? zxseeXAXa2egJd<?Lv#JdoGC9wLHCemg>6$3mmR)c7WBCy9Qmd;8DqNt^9o|`3o`vs++OC2xV zfeJ@Jjx)M7Ve&3ve)`&VRs)`Qzom+XOCDSCL=B8b!R*G1bd`_0$Idwt?#3ov-njk{ zN9=tKeA|vm$`@;>u;!nAKcR8#H299*b#e*iib!R}U|AL)R~5VC>%fb(5{(bkSh&F$ z|E*j$-<;HwaZByCz&+p7lN-MSzI@}497+-Kp5dq!3B#9PO*lp>{Lajox{)|CE0X2S z;@=}a!YWy5@VleRwefHH2q`ct@k#$ScoRDy4pc3O46k}>vfO5fNl`Bvve>Sz(+nZ` ze2*3LjjAw|X! zJD-fQ)1UnzfIghUCHGW=PVU%XheW}C(fR+}0RS2&TYWW>!s1zS9p%@hN%&g zs2ChNH)1xo`FmzcePo7v!7)r!%K=5?6hkTUZ~+H+@PQyipCs{#kDEZkk-6LRY03MO zz+JVZB0%Ur+dL5qGY*5uUA`rVmH8On&pgC5qPh44yajzg+mzviI}-wM%{)s|PXv8) zGYB+FG_r1i@!@0qve*M7hVGl}H19&pkXZ6$ei)`A$H%C*PArYI4s85_G6*GLpr%|N zpeQ1$sR44{jobr=H2pJaAM`BUuQ6Rh=$(PN#kSjG+{M~Mr@F5`nJYlrbGN2tYnp*6 z?8B_0C0%Yr&VEn7mhlC^z}ywP%iIpjd%9G_*I$q@1dm@O@JqQE4bU3x%*F%Aa_>;6 z)@I>cZ?aHaK|P$=Dci*7mou5{PpJPy=a;e*Bm#9FyT;mufd@InlW|$GtKq3vRIsF{ zU(E{cnSLw{Z_Goli@)QKo7*9V=ZsardntE7>9)ZI)8KNfyRsN_3n(%eWYBGV7BiM@;oe|5@BBC&SKEh^PQCU=o=POf zH-J$Va4k*VSyRwD!vz=4mEGCh23H43^X^R`VIdHV)wF5&66+Ko#mfnL+22s+e(fGq zLxGo2>ooeSNEAYyKBeF`$!ArBV%~Yn+3M%qF?iZ7H^Mqvk6#H=fJiO%)6aeoCfo*2 z$VpH|d2}#u;p8$$$OaZ(t-0Y7A>%wv*7e#088uC*I+gW9TdZz9ITfmt?TM8mMw)Zg z-nPPGC6!_8tJzt32Pll#qg7cZvd5Y}M@YN1DZ*@5W3nIC7ZkGN%bkxBS;U86WU3r~ zvA|ZYDw+rVgO^1nS{1h}<|5s9%l5SfcA>Ix+h4EG87%tA+_~VD)jrcVmZZqG?B693 za}~vp(*jB(Gy1knhX!n^?Y|{a$Nkuu5J%s@uiaMZ3}vlY{6IFZ5WvPywY3%BkvkQ@ z9NCH61?RIq${jq9K<_r{zE~9qM~z4VpcMM6FOGK>1=2bxs2cp-hHr=i=SCmL@&^#K zS$*|`tf@n;Di1%1`u9dfeC)z}WyqtsU`nK5Ga-ObjO1oJL{|RREbLTd<}s zwAQZou}M3;m;-~5XPS`hQtTRLG(R{{3PyJTi)O*i7J~S)jHWOa5pd-&eASyQ1en%g z&Vu?-ivS=KepX516CJ)aFdy%jsXj%e6CV%zj?2*MkaTPIOnu5&=y`iw&4>fQnI_LU zvh0qLNREw@T2WSvl1MnHb;b)$udgh@urxbU<4UDEv@m050=cY6PV>3r19^NON7VHO zMJA#4gCQ^{f1x1UN)A*H)$hwf)nQC;CbmbW<)O+24|Py4ZMpgxn8ZCt(;p|rRM!GTRLPQiAs8 zoM?x(RA`G!qDwyecfPxO%Nxczk|!<){i;zqT>~4qsTUKi7tvNtjCTS+#?NTgR);b_d_tQz#pC z&}z5iE@&NPmSFhw_&Yi4_iqPZcDundm{X>!-<>}K%jG@|nIQ*ei^W8`+x@s;-e-3M zr$zsD!C?S9g+^NB&rv0$TEuW3(YAX*?o|&BBIU zz0Zn0OGnZ|8H2tfDA#6wP z;py{X2hyIhtjAqP4Si+dZq`?*F+WOlAFtiP!ye3p(;j-4W0_7E_(}W@IT(wl6!h<5 z9%*TJ5d6}DAWBTqDC|>>A8?==YvO|U>IbQ6Z+R-H9!c)an?FbQls?t{j-%EKOqJba z{NC9wp0n#qC!Hq;0<>ZdEdMIo!X?hOOwL+$yms3BnGgu&z=m(4>WqxO$Cc@wHA@62 zta$mc&mvT7Or2%fUJaz7Pl|XiZ9(wpM4uT_(_S#~u;hf#=<6G|FzQc}DnB&hVl_p@H!r}cy(=RWd1GLn#O z@->fs9#6J4q%l*iD2lElnZ?7sJX{B(oc!LgDbqNX(G|#ZLUW1C#&EfMi0P zM4dFFxG-B)O4UmIy;k&9*{(d8$Ly;6v#lv@$-g>YMm2mz9sj)!nv}xp+7w-y!e8lpCK*IQxleo904c4SH#O< zaD%1YdpF&|_25#$xJ9cP=U$$&-^W%FgLJw~jH4|uF%%wVn2XBLNSaHFW&Db2<0VnBYT7b_5-o`_$DGfRx z>E{eXo%vjtc!@0@TG+FL7!8OkLKPq8aC2)YQfj5X7_VmhP{#MH{sVzfvOd{5-dcT$ zW9Pc!Ck$~_jX^L{rI9Cal@E-ICRDfKom5@H*5lDS3J7=BTbE#diU0}7J7Vz86a>c^4q2=6f~UO`aRZ=-eH$ecbqET znKrq{0zlpdt0Q+#FkRD;2^s(eS52zf^V_hh)kI#cv#^0WltBThIx1hA@}I|j`+I!J z5-?GI35PO5_d)L17hBU08N-w0LYWf(^(x2o7tfMw5K-Kp@igt{0xvpy_N?*R;;N7` zhK^tqA!q+Tu4FJ8hvpB* zX-HjA{r-uyp70N$ZtXvUXI}rvvhp0XpICw%bzYYg3&j|ad=6WwH`rqOqcjgt@42vA zxVvzoi_9YL^4NqHSWsXIGN>!{32eNza_@kWk!;67axWw5(X})s9XK7HxBvgr8)HVp zN%O@Pp}mt`2Juo_LIXC!;$_3RP;1WPHkH&zSVTBJS%0r$MGOeSM%C^e43u*-hR{?x zQ`_Vsfh6Vq1|*6q_%HwRC#9sPCK($8XNk*DDJK6G8L=1+H!8}eKzc9e>$L@0FJ7gx zldHa96XMEGuA`eaP()~-yp!rb?u!4yV6R4ls==Saa z>d$W>V^f=*pQ6D>Yp9&3mL?H%dw@^vhkAP#kLuQ$(z$0!GnEdR))QE#dp|LJYlONO z-FR`DzP-ShC^TfuMo{F^Oo}T#MWPKs?{+cujx;KnM~sf5T{E(W-m}*u~ct!N!HE11DTWHKb?wL)S>0#YqWR=?l>BT?sLi1!%}D=kdu83tHA5*13()nn zr{TTLgqRIlvJRRUp|Pp?06xFWXyP)fGwpmWA&v6=KxA9ggr!Wk^#9)5GcAzM59v$= z8oPe-<{o(YG9tv*2PTmuSN-@C3!;MRKnh*uh4u4HlH0X$bt~e1uLDjgHRhAISHLVL z04<-`LdPA+HS|1aqUZH?oqYbsdd)1y+8)%cdsT?tQzj@Q(SSEOHgS#@VyD70lFlcb zg_Z4S7ct{?L?_rl4x{Iwh_6)$>KMT=U}a?MOZzV{D%${R9+*TEn6&Iob{j@EWp8l7 z<$sLum8EVyE=DmLnRL<&>yoU%s)99RSFo!-cgBKH#tw8!Jo!CxCYU(sT@!n9f3IKwa$UqqA8^Wl`bW82EGH%2+tF2h`L*6A z0wqV%=;>o7*q_Bnphus#x$IO>O8go_t;&^uS|IZPd7nr6=)9gctUt@QxL?mBJs0q8MqSeRQ(?l8d35RLtY)Ol8HTr4 z0ktft+;tL(qn=ApN}NFU0juzP=UKjlx!ywlWBn(1LU(%k>)-VCvmS+wji;-8jd+=l zgvY7QeQKR46MXR7_+TFzp1(<;4r<7c$dfb!K?$|lfs`^0S@#{ljc6Rk05k^^5O3$v zbzg@hK$M+vpLEYEKBW_75bZ^cgGIVs<*@=yQZpa2fUwlg82G(LQAk4$Q-02uL@cmD zhX$vwq9M9mt6@twcvfDKTC)yb2uV+-T5i7*YUd(Qbnhjvh6L8nM>)x$SHv&r(gI8NDvNOzCGEGt5x&yn8PuEv`~-$} z7*Ty>tsv6gj1I$QVH*3+AL4*(KBq%3OE_Zo4*5Ij9RAJRk97jE3+RUY4cKD_lym>A zo*ti1Pwfp4Bpe52|Hfj_`5M9PIsz#*4xk+#Vtp?s^GYHN)QwPNX*n7n1-J@@Pp@Zd zv;b@EKIPg6c1O1d$^Ip~=%)@+BJ{5EEat2@U;iOBp; z!4hH`{`~GCl&+uZpT1R~{zD(c_g0LUB+pqYM~@SOwxDp8z~;PoBHukEXf{ooyCz?? z)(8U%kOzdls*g&JM;1wa6mIVi3%dER@s&R+dDVk55VwAp*I9D?|An3s*7mhUI&))J zwk5}ZN(-A2o8#x66LRfoa0{MR!;cp#Mm#a|0RhK-GiL)2BFsFv3rwgd6AQ1T-8ocN zy9HQdr=r zA&QMxn}Q`Y#eQvU^lcIme#bV6d_%wgGMY$1^)({P4rgWy_M`vjiXGV&*PmeP@mevb z*+G=5%tLWg6O>btNoCcWh|AY7H7`$LBtiR477}ghmY4)1!zN@z#&<0R@!5V%BRzkS zVR+zJ0bEb*rY+#sEA?)RUSPpvnensmZ_v;abv&N;+wBmnee8_>+cHyq6oXpuXDJ>t z*rZ$!>h_Zv{yF@_M;vCbNeZ`5 z;sPvN2q}}^|HU<8Ym^LQ$?NhiaTdr>KASQ4Ktop&JapI)O`0fVW81as4(j3et_iCI z{POJ4tSXFs(1@e+g3sV-d+axWGM~$J|Jp}1J7FS3&S)w^VW?B_a>?xX)v;CNT@h@{ z*wFMXfVc-9r)m$E6B`W#mr_W;IY;|*0NU7%DzqF|%zYb{E-O!mkd)d;R8C#AX@W`l zz+)G5tyMe*RDpkc6C0+&IHQq-FMv|dCZGB+gt+zBFf0*0D!Wog8v6`2PQN$pILNcj z@y(*p{v1GU6n&a4Fap-=A`6ngf`r|twyqbZ@)<|gh?8GQFC8xiJ|Gjhw;tlfHvzF}zo#Mtryo6N9X!GRyg&&2;i3;C> z*o7a_$cmQg0c-!8#kZ>{@#%V(gY$p%E|a#8a4F}i#Y-emm;yskq0rbwlCD-LBzl1<3kma3Cm z9ZrD%$@ZbL+;zl!M#V#=70r*i&JY8m+MfAxtJUl~h0y)A=Vl|d9rNjzE}*D8c43z= zj!TpD{E?Z_%;y#RuRVGH%h?aCr(!LVv1lL^<_m+UBQ>xS6e-U04^Ob_5&~053-wJ< zWFo;PhRF;YG%4@>>N2~C?CdLcGM!iaelT)?HH{^&X76_{sw3U2c;9$aX#pyqo|7fm ziI1kFqwIu*T1bXfGsXOiyW!|LjX}<$+BRuD#JX(rlZ|eq=dwi&231Q2-;i0+0LzvV z>eY9^$`Wva%P!BjDlY!qlFr*d2$5i0Tx{$dina2_KTtH}bEDFR*tW{3rG)ybAcwgY z@b%9jJ%a4o=RV@~5mpJZh0|_8hC)ljl!YWU&0VbQA9E~csC$#I_e!VzGV^g*%1a^P zM4yeZ6F4F)%>0F0<}QQ`P-zru3B}zQJDTL}1YOte@KHMtdH6j2w`Zp_Hrh#~#ag|EmY&2-b*|k_S2+k=#I-HU1qlazG;t)!j_#g98USE=ELrMGb$peP|ncwT&)m3 z{WoAEG|z`||IZCFgKnLYl~sx#N)Dlu8aZQ7X)ysc3k=>E&3F;VN|Z3iaZJgsD@*$q z1&x{Nqmsejvxrs@#kDO&6{Q!JZEiD>)TYjAvF>EEqPc*WSQKvC*OT#Int218^o9Q% z(}pp9bO{-Luc!15s*CBf(S?&rW1|Q0a2@4?>*VtGSGRLRzyNo?CIdDMy}`@cS+NJDt^UmZ8cOeS~>tn3G9s6>sfbpcw)Y<>gF^P@6SNkf4SH<(Pd!tqedgR! zWyx?5Ob+khY)#2VwmnwRw@S8Pb^(#1x%)68HN&@-ruy-apbD?tdk=0bd>r>;dHoLp z_x71$VM-CWbKfna(fOB==?m%q-_l;Xkv2rc$>>5;W$g;jA{HRTEf~h}{!y+|GAsPu z%GZGE>u0W+0>O`7j!e{rWUcT|O?URe%lJ5*=KQs^U*2~DN%6RhD&G^Ux4>>xMWE}& z)clvQN9&be^Bpx%Rh9W!8cCdCq_eV5kZZ#y(A7Z&yXtG`kP$xQiy-7UBgq zc1@^mM^z?>R+I{k;qN6hKM$IxrYZR|2>-h$3uD_{0~vYEcCa0hQku+7blg&gm4wuD z-4`vNDwS^U#&9Lsd1CX^LE*i=S~BOx&yfCg|EOu#Q^BUPnY0A;)6|?J8)x;vX!P6((-sUue^}Vt3uq^?m?)k} zIm$TD>y*4QM#P_*A5{Vi&j1W1S@Yv@wUO>^s`^*aIh&$K*9AY;S45UM-X9mR8Kt)E zR(_}{JSD^2eLQ5fP>uTa)Q(oC-MJt_f|tC0y%RDKCd% zM_9z#VJm<1j`1qK518k{AeZ z@1H7G!})sUmLtMwYHEtc7rQ+Ey+t{Rj6anigqqk58EKje<0=XNb|rg-#x)#A>Az+RV znCJc0YJJFjEW#|ZZZbAbIRy;z;<4jpPA9fj)mVW9cWg}X2bbR*Y5&M&+9r{_y;d3qHyB72FryB0q;#Ea ziDohEB4J!39;8U-P9#EmxW%5HNP3Mm5J@gok?a%=M^?}D>SRR9MU zfq^%zkcVaRzs|9$iy3xXW;8z@oSm^7#Qx5kc=ukkM!}FlXg?VJ)WOk|e~{HUvIAe5 zU@+8*^%jF|biOd9#xR9o)R@#B12-Aljzm_PS}1fAN=K+Tw8rP`{pAfB8F|Z8+xQ1> zs3)qvP$?Q4^t$%dtx#oKbSScKd}5dZ4AmM2NJpGX z9M!Xz>j*r5n(fZ7d*qV_jJu(EBB>(|w!xHKwuH-GL!9}a90Mr0{@8NY^WimF_wPnQ zq^A+TDA(UW2NY9Jk~YMT93|`DTHhax%V~*ZQLVoyx-qpgzt}vM%_9nbW3x#a5KL$; zV|@STE_sWUm6(vuxM??jU5TQiOw&kSG|w--KM2s04m;16&l$hr^VIQ)S*IlGweO_J ziEt?y*(0DpLWJ0U{fOw4m6>~kOLEw@y4G(p{i7Du(_|IsG+#0@3P~GkAdD?=>=14a;;mt%J9Q&#=h&Xle`U{(p3* zE{zg3%$*#Riy9Cxp+kdKhaF&7H00l9*EYY2uFVlcyUfu&^kxXpLH%VuA0~5{dL+U# zoIjt0oPcYKZT$mr>@we(lgHlNFyqL;M*>QIdP21Enk6r)eksvor6XI)NuTK#VO^gQ z>9d+x*p%XL30HDUGnGU_-P+GsCbQY?JDp% zYq`jxVge+V%7MggLR?2)B1S*d7bY_V&@|=2$+X6dgw{a8VLH_)Yx%O&zxF^0e%xSg z6GaOoVzv)W$GY)g;#lrZp7x_@uApqGb&Y~yawgXHE^2LBg=-0+OW7J+Hu2Cg-Jp8xzB{w(ibUwY(E zH?f`AieV;o9Oa1g$_P~yi$31#nVQc`l2}*#x_7wF@1P~Azm*1K!K4HQGNoEc`24F; zQF>7sWCJZH@EUOtzpxP|**I9AyAm|5&@tV!HF`r8L) zX3}s3KM{KrUcXPVVs?*U2Ue&PYGLZ;oQ} zxHi-sB+pG<_WAwUNB|c{Sq7BFFPjx%kLn}j;Xk9B6;bM2O3x|XmRc*?gc#of?W1^4;~^E-1CJGa z8?84AqI79CGC^sihV6kV+VHi_GcpVYX)U@Gy{lDj!ELJDn zE@L$a%cIJN;b1wG8w1|1XIv}3T@)P4WQMIR<3DUu6(MI#Mo*8A%|l1SIoOY2+`rIX zVQs(3fHS?>Ab{vFiep5#$&lAm!|~^}aq}hb8<&W^gtWvd=Z>su%tL{!F47ku`;Ak6 z*0(PhCS&`J>42M|jyORHYS3xs(`m|YnYL*aFn_vYL9@lh?64voLAD%`{?fIJsQUMH zt`I>Fwda4bNQanZu;x*~qM{nogBe<)lmErHtOEJ|8yh`x9C=~x{N!$GFOuE;7Pms( zDDx2}{PZnQ7;-cjy=%O~w_z1J8}cU7Ott)Ppbd7zglvId{!lIQ)fx(9X-5ZJT&-Dg zvbFVQzUL=c*^n`OFkBeqpK$e`&yeWiJHgnM{UpWJYsZTD)_pG=xp$D6zOIs}1;Kk%zCe&Bs3L z@m){3*n?KiSGOpyXuMxgoAGWX#i@rmY{ZO0-Jg~nC)(mCfCy$4T%-j!MH$0 zwDqj~j*LYijP-PhYyo>%e$ePg@&D2E z6>L#;ZQDwB#~|I^NH;_0Al(cpozmSQ-6dU$G>p>SDM)t+NP|f8ZSUv({=gjjn7!A! z;;gI_#8rnY0!vWGH>p7z^yy5Dm#SZejCzwU2`7GMzT(F0F1BJXrl*=52bGH6_X(bnE`Pc;IA@g*-B%*e zzaFT4GkZ95BGVC*tMG-}TtsOL>G_|C1~1J(;Cch@#iD8L*tgnfhMnWM{YjMMP@X*) zqd6!>c6C+Y`qAMHp^q_W4PuFP5#^dCVbA?C@w%*+umm1b()kC|YS?f*hlh7RsFu*57_f@;`qbk<%Bv}S>W9qip zDCzVyo(y68KFWo$Y^U3|i_O70N&A(N zRQgbN=?w0^!uMb)!7ItX!iSpxClBsImM%>EGQ36kEeiUaY7o}W7SFg<5?BethG1{! z{BEjcR&<6S`&X2-L*ekjCxB1cRfM2y{~q=4P=W79{n+Rmt9ja>SSkM%cK41y%0YsL zddy*r03byah_vyXAdsny6R0sx`y0i$-(EO@z_RKzs`NZt?moF?G6xo`k_Y!Z{7&1o zri)`I26Q6@nEAlsnUh|c0B(1hgau0S_@zG&9Zs%{UuHbh-cMNP;^n2fq zx-wjq1!97$d$or+0{I}^CI->5UWng`|O zeKlpBToKsQ)5BO8dtF=UJ8Qw5Dvi=B* zAwfrxR?3`LW|Ka`4&Bncr%{$l&KwpE0tqxN=Mr%H??v^@l{2LlaRkoeoS(akoF0|( zKnNqi_&HCK$$=#Ry_CM4MZ1H3U>fJ1#fUp!PjnWw)##+MR}_!jsh-Vj5yG z0NeS{j!=*3`lGro#s}TDY2)9yMytoZG1oO*>u}qrc8Nzk2{B#zHzfU&J`9vO*HRhX z`UUXJsqyZ9=FwAe0da&V+g!YP_ZE|0+iQ(7qD|4LCZR72fS5aQnd5MP{SR8f?B#*6 zAcP^K7)KcwJ~Cy@BOEweDnPYj{Ob!66!k6=FhL_%bN zqFcFrh5sX>(_NgbEtot6IR1Hu!HAB>J)xB+i~WW=u8`W-{24BYe)jG;8M&D_?xA6p zUxjLCrtyby#)1q$Y?30!VrX6VoE5a)G;R7~e=v5AH{mG}2~MwT1yC218{o;MnPS ztY4jA^ht!E0E~HJmKQ;lHB)f*ZGQ;uWeE^wa(s|xN?-X(=cW5tsqrcKVLG#$i(>TI zI-;D)NPa0Df3Gi*%?f28*j_j2&;v)o)?ImHKyoDj zU{wG)~?XA!0>nmSY%1^*b z`HW6Q}YRsMXUJnUGmvJshc-eM|g|Qvf>$z&Pi`ZYJAG|>>Cr#Je_VCq|~OAC7eu{o+~j8 zPcBF(s6*CHFvB|*Gz*ASc>&oSEj-IFud&*(OFrD1@xGrSO{EG zxsbd705C)bn+T-9{WCTB<|D$xa<-2zH`ZvEzWjaX0EMNL@_zR@Eo*({^fSlX?Va>^ zQszU^P7pC3U&YhSyPT|8mM0RNxv!+(ZY>6|O^X6$uq#JT=w7UDECpljieCBheosug z@tPfMCw3*7LF;(NGRDtzT|w5NgR=u1RH2;wa<8wl&bz7}<1AD?vz~k9c+VnenXsk%S&U#rGG|iaZEv2XJHU+&bv~ zn9HQ(-dRC&6FWB#%fiX`pU+Cn49&vc&boK3p~(R;W%sqj6{_*c(&zMwo2+2Nz5|m& zAK?32U8V*zb$3e);F%Op6wg8vXD^8FFMWk!kHZMDL1Hk`qXTxXTWm~@Vs4-(bF#>F zdGhh|^oT-o{+2?O6SyW=`^|T)q2xpcgJSD@G%-7oX7(r-#FM8FD3ys!=^H=?vkCiK zIrBl`>wq^8U$CsLz&&z!W7A9m9eEXB|g0iI+f#B5(c$_B8Jh9W&}bR0B}=HlK@S=ZG*OF#ir^^au%c ze1YnX77{k2CAmzO-q_mWec~2No-i9AW-!6`?KM=OT}UH_Pd%gmQwJ>*Q^k<${eeF6@&yKdSKyGW@k7kg3i+z(u#aW=S;kL!IQW(Q~eTi@FdHo`z3c z;lGRew3$*ScJNv9K$1TjH;9|7B~(1Q6O)PILouERu4{d9{&M;fDnb6-dVB4qM8+t4kH0Z2f|WAC@{jL^-JM#wAUlTIqDe1WhSQA?~uT zj9fTwv6=5z)3RoKgC?ODu&3v$_vRW^yDG{o=*uBHG+jE@!KUlfO1)lB5+~aKQrTr> zQl9-XfcLA-0-MTDbl*U3CqBm8@{W@B45<+$-0gNymXRaTrGsbfa=#iMOF(5+$zh)9 z0sw)1V$*IXsZsrp{WUFC$Asu0AQGE&E8{7}foBqbHT=vTm8zPUx!UM8J(2b!CKCW~ zf<71EaUzxyXtDLHJC-rB^^r9E6cJFp2A3$IA>$Huf+RqZzB&6~>kFW>e_r0fYfL@C zZ1(WemCEiMj3CH((9Iscf|AL_Z^A)11aDD)XSGFb=Rc%e5B?#zDb0#!=$!S9o!MrO zH!bl+!yt<@?CIjKC-|7+QMbr+kWy2Nc%#!nB6a)E?Nnv6AU=#N0uh-=OBq*x#|ew9 zBmJeoBpw|p6z%IUgpY%|-gp74V-03)lJo@8=l{$r?k#nIZf_Ef!0DqF*Q695@L=`t z$*Yl9=_>j+P62Z3*w5j%dEoB+Paw_b+l@1q+b}+8MF2aBHsW~EB-_TSomg_TLN#g# zPypA9HxL9nVDEfB08sr%q+nAQ}1>55z1B*Z|tdDeS&+2X) za{fbuo8RDmON>ksC{JJJyKz0WIEJFeR^S!jPg)EHliMFL`pT`0pF}7++?$6HYIQ~H z29oe=Zlr-xei?+&{+ZanH|EyQWr`h43w;t%sch@Am(Y21(Zy2T#}fnn-LO`VED3tm zL91q11uTXtM(?bNxVG57A9=GL@%p~LLB?^I(lW@`O(@u=ivX+w(KI#3X09(wYW!uR z%UW9|{8##Q`A)~84+iWXX8?+W_h(?qH@@HVZ{0H3iVE36Kb0U4;#H3{+b5zh29xJLa<1M%HJ^KROpGyG9r) z6rTcDZ|quQzSy#{z7G;X43*1$b1+yctCUsF@C+r4HrFQg$Vnn%vU8ZFzpNuYVA1gnQcxd#(I#5x%g7KQtCxzaDpP!L|jMRrT6(qZzDS@Ro>aa!P7WY8sJs{u4sGIjZ|AATZNoxKC0jF z%>6nD#;&pupSd_ZMNmr!nuDz9GekY(71Pi2*PBj$gOb};&>s3tJx&ouK9H@cupFqE znSJnvxF&PdP_+V*7L=bvB?s&rDJ7rLBVIqJq5lC)6%NE&7{q9ueFj6RuRpjb39BH@ zK+Mi0PQ}?x@QQD#2boW|GjOyFozU$cz~&ysTrTXv-`P=7MBafA1A>iUfcNk}`vdTs zC4NoXa2M z6(r+zhU3W4?(Au}g^eF98Y&bLC|Mnv^l6@UME|=)7C#%|d}t7}h2F(xAFgg)SXQ=P zv-2H-0%At2JHMQ66d))%If-Ngnd1qOtZlcYd$f#{p zRpcs;yGoc0W8x>lNE{}mA1?ooSP>;mC-SOe9NC+PN9Q^oOupPJXvE!CteqP^mP8p$ zlXR;v_{n$mLIFI?`g-ipR~w=VXK-s(Vd~aq^!X*Ix06jVg?zzNR=?cm_TxF|Z&#r_ z)91<5S5>uZJ%Z#hC+bOXVY(7T&F*d&tr7h1}BBJoV}93@;iWrOE|IJ zUqagcZg z5>EViqmDypVJM?8%l5I7x`%dlSj&dEgMc5au^-7rLElg|Pn z*Q1LY@az@wg!B5^)LqK{VD!yxzeho%pvZ610EB zNuYE^@VU~sVbR}0nPik`7AxIHh)${csw`s+D%o+CBK;)IB#qgrt@&!eK>oO~gOkdU zyXyS_1qKEdO=iqtF5}LlnHM>6Ye&Dy5T9o)2L2W_Q4E}Xc{?nv(fYoK>}9#@5vo!7 z`xo_LT%3cz^OWrE6l=#^q4TsL-1nO9En2NRmzte?S7blpox&O86lc6KF%ar{OBogY zbZA%}Bopg4lVho*Q{j@SKB9@aLK#a_Wtfjeg@_5*bgSIfo}LC8gyDP zA!dCj8N--fCr9#K?1Rvo_C>160F-Bf?EHyguE_AQx||B&{WXr~Nqo-~g+|NRs9m4# z;rd-Lfs)ZAUrUQmen295>FJJr6aG`3n0g>$1Y)0X%AQV~9=#G9n(NY$A(+-y3;PuI zEpFmtQKnVnTX9fKvJX+}rP>Wa9J{{nw(RIVJu8V#idK0iNfa(4>}8uy_n9l!Y@5gF z`BUOgVq*Vki1mYz{%nr}*JFfZz>ze~eLA3;sU}jAv3``k& zFvGH_75iI8+anjt&h73TJq-@iVZ%&3qrQH5wL(kg4<0(>AoJqH5C8#Ge-06CUEscp zar5R9!x15nz$L{s7-Zwb`U8jxf{=tnfIq`-F8|47#*HPgn6I-r!H(+>e$7C8!XEbEg4d%{^>7lulfoL(Y3;=taBdfM@dkMl2P_d9_> z^Vx!Y70tZ=JBTO}+LWROXgBd+MD0}9%-IrQajre$Y}uyI2Ci8jtf@Q48v#Zen|Ylx z;)3EfXL7lVAgHuBG=vCy=_`|Gf2L+&rRn4FY!2+OE zD4E87PA!3z7nkGtXXeBb3X-J{8dzG~1o}V^=@z5ho5CxY3A!}j;c0pgaj<}hn8h!(1nXP9>cz+)8j$zeZ>kVtw|L8jVG9+nI`sQG zlFsoE9B9*s39nm0DzM08R3*xutepfmYwTo&Qc>x2>5djHrrLXrbAa+Ma{{P)lvMc z?`XZ9gGkrF{`A1OFUyri`)OEQA{oEnFx=Ku3i5TzU6T@7jCm-HvBARr6zYCZ62+#N zq~8_aWXTC;+KFvUD+s2_B1q<*#yNn_3@5&Db+*yGxuv}81AWj^-laY>4Sb6zy?Us{ zYklV6hPStgwH-XYzsWyKh$^tayo;M=>HvU4`I8FFhQ z9#s#3$Y+T9SI&QG3}#;I`H```j$po62>mk{99~pu`&ApInsMjYFOsD}B_7AG?E7}9 z$ngX$Ton_uY@2bu;+4?wLL2Mkb_^uMCHD3a4Dr_SP#{tp(GRd7%epd?@FSVNn$i|s z-C6i**;x=1`)Zw;a59J@9$fSOXqNoNl5AfbkyGkY`B;jFt2!yAoeH6z`ilHoUI%Kb z^~Kn3y$hq?3^lr*qN_5d@Eok+z00F5ezt-}Mw`K|hzRjLCz?WD%K=!7I#mRGfxo?E z`()W<`p&V$zIt~@o!Ad3z9Za`tU@~X+-CRfjZEgzw^J5}>qlDDR`|_&R*tYLP3bK9 z2pF!6R>oM-OFF+~d6+gcV_C z%H{wrT8}pB77`@q7b^qQ95kJ;|KQ1L^O6XZk_#XcByu)y7-UHzPw4m0+R5{Kf% zz7mhYSoT7^m&mduxK|AM*-||sHFxlOKZq$TIw~tu(*5ghs@EX-v2nbN1T0@9i<(u9 zhNg#~(N=MokaH_(aQPQQ<66H-J*7LY+5tQ3NF{zWDW~Vsspc?GbfRky|HoJ#Lx7YW zlZB!s8Z6BhFP22c!u2+!KIW2y+fFa;cr4C!XP-`4?#7G^0fRj-tq3>%D#JARW9lO_ zj_WprBE57h^Q4Fe;UUEGTYJJLyNP2;QUJ*!>GkzhmH5xlPb0Em8oe8|-jK%36|_fB z$j5xw|2?j|jFwlfK)r0dSVNYsk^x9}I_9VByvG1FZmX@VQs3^tZN`jOkNLSg5wwE7 z(6>#hTT9GW@1B_s8=n|gudAp8CP#DGtp&zDAlQEH16rU@VjQiOerDqqe}zv^sj(O3 z-nDv|vSMK`@{2yn~xcYtInVqEX63dcJ| zhF5DKnfZ*77Ih!#`feV4yCW!Im%Hr$e6 zY$VQ={Rldp+~ql?9$vN^$HSHY4BF!9h<|eq&cB)2YF@g7)gsQ)%FgBOofS{FE9DMl zZnO@BR?16Ir~!#YOs+!+0%97@@vH~7ABtBzOkE}9!-z@yiRYyqK#6WJ77U{Wh~`nu zA*_N8^+>McN(U%y8pr~imd_vCtz%R;I7SqY@n|ZM zNOuc58`==*^Y~0go{J2IwfvGl@5%dks_aSa8EY9OI7bfuG3FDBrrZn_M(@&#BO=xY zAtPbES0wp3&|vNo=E&~0ya0{y>Di*-pbr|*V7?~}3$$&Aj&0&2@bw#uhBg%=86Hhr zF`GxfQYgN$GHcx7YRR^w5>R~vZ@!7uWJPK@np9x+lcp%$&i=2u2@qhdYPjP|;L4lV z2aHExUsh~7>K@ZiADlF20(kiESi z2&radA&~GP?W(EUD#vLK{|$5xYBwA$QGu_cMm%$OV;4h-j%>q;1w5bsU>|y$TcJjw zX6Y*o3iO2rC>JTV?a3426(VKhFMJNXleIC5-Q6LC<|)K73FCrLnEUE=SI;5Mm68Y} zI;#@y?W#r&SPNt|HylN$VaYvkq6crI<4|mT90%8u^3=i`lh&|?tF;y4l`9=@9{nlx zN2ZTIL*DG%P0(E@NA3g?GiK2EUP3|&!pAA}T)V`TG;nb!YY4h)g|a((_g!j^4IODX z9?VJu(n;_ZXIZ)h`AipEncK*>3U@U<7BW@x2MPIL*b`u0ALoSL#<2 zFfDcgFRL8}+)SpMR_$pY;G*2b9`i>5w%I8(Ulkkao3hH;;!Q16ie**6X#^~IBLDh` zj-J~hm^{lmCEUk@9p>WFdq832A>f%-1 z41`*#@SPHMc>khLG$+=89{KIT>3^3^NP3Nzl97qf92{S&uqum|-LhxqvNmFjFN>@1 z(L)m`^0XrUtFz|TwAS-rCT2k|Z!0Lf1C$VFl38R{(?j`LjqejXT$+b~o2oSCNQ*t@ zGZ@r&89z+cYe+-@;bfdA1Wbbr>@|s`Ue3_2qx~Dm9fvlZx9MnX9?41A;?mbax?EX= zo><$g1;767L@_z|qwmb-rANQyJBG(onClTkfaoW$GUDuyf1pNj)MjwGf%^T5i^(~8 zKW2$cVulFKiRZu6vLVz=wjk#%b_u%TB@g=#lk-8>-Fi z>DNP17h%brd=F`5&`V~)`1(st&TD91#IGCU7F8`Nj3~#?87|D9CRwGvqEDEAdngpZ z)G3?X?$|AfNr=|sH>ZqFOsWE;LDb3QkseKblC&Xb6F~gR9&&j&V)n+ELSEHv#-BLo zGmX4Q<5&cgZr}18MePA`m?9FID+@tLP6r`;-^sa}<-Sn ztc`L+7}H9IFI}Lx^J@+m_=l znfAT;qbHZl5KD8hIAOv?VB}n`X~tRfPAL-nFY#uc;f^kXz*Y=io%%1S!>mj)<2mDB zg1mfh;f$Msy2S~Z`b+UY)_LS!2PJcUU=!3;zWv+ST(}@bTYd>7|MyTPyb+zq;Lmnz z=QJW!=BKG(y!WcTtv@+h_?oP-#$RDdm$~_Of>73ge9Pdok5Vfl zToPLCbO^G@LcLoLnH!i$eoOEDzb`4^OC_iHD-(H*+_tZvh36J>Rt*Foh-3ky203Sw zE6JBYn$(uJ<)=a{K4@P*sG#6IDGx5SYS|Mbb_?uiSZGwQ&iY$2cWr3m9r_~aj3b~k zzBU`vVBoa6z^jz!82>kgm&KQ3e+!{m?O7jyQKLg&hp)?v_S5D3@}IY}9xQrvY2ATD zAfo*Y_26hHu?Zq9A#9HOsLO-JP^(H7-iTS-B8bgG&8hkYyj_*QR?LPf>>SU_sDIGi zO7)lU#=Qx+9=J`LG75J6y}9_Hb~Y)e`4wzs&3MI4>RljY^X@nO>xLAr(PoxRWoL18 zAZG~H=@&4f8j%*;x0s7Xs&v4)PWu@tRJPKWR2IfFdRC&Mum7(!FQBOe@q}h>ubh^L zeZoCK5w|$^G(2 zzd|X)*;|^oxcf}FjLG=d{IgZ5A2)+0E?WX>V3!p|+pSU1Q#_u0)nbFPIHIR_E;nVq zBT!R}z7`!Y)%^q)dMoZhoTk`LAa*q!-he4mv8O~y;Q8*Cm>dP;y!oPL>b=I8su(Rc z`n`8gld!HEEf6y|W5_;I6qNAeggz-;P0(!i3xSa;P7ncHjM)cGDSmLJUg(y0(|I`Q zTk(b@Q%<4vcfc2mV)pQjSzO%`OvKY$(k_QrIc|xdWS+h|HY$63Z0skAT^{J9WPYVPln5U)}A00g0bxpBMPkGsh?{G%J$$@yUk!@|1Dd+LU|eg+CWQxr3AFVf-q<~eGuEo zhRur+`a%Cn^H@t|@lPpvK_(B4J1~oVf@ziP9Q^_*?8YPxkIIM7z%eF3#o>y=71q{B zyz0DaU^mFlua>LZBtup2ErWEIXFr90hWSB$Mw?r}m^MN?Ns#hk2Uf-VQLbH-shN4e zwEd7n<>2;ZYYd+}SrKcNg1B$2UtUFivsyve^$Z|YS)M`trn?-5O$9_Ks88xz7ZO>% z89!bUv_HA7eyP0Wd_BQnNk#J4nv8-^C)wv^m{QKd7R6ZP%VD|&(YQZXN-cv9%~c(y z4P)7A!v;d8@^9hw=l|Pg9FXllOBR|+FwKV5wPGupj+BCa6?QLq%lnPcN;57oe!cdO z>(B}4w<;G@)Qi~#(xe915gf{btK*Z;qK6IfMUo@(E6s^7tr!^XLZijmaBMoAGOO>f)+0pHxxPii_`9m$0&C48$BoAOvd7ulki2{P(_cP%}oQ8@^o& zJa}G{9F@nEvb0mK4?2IvSiaYNT%~oy=d5Z7KjF`PRHWdN)?vs;OTGjvSyE`s6v_2L zM_K{iDS{8RHnE`#qdRdf={qDIAlhofq65XHBHdRo2sSL+kjgU(0*<0COy;((V)uKrvf5JXnh zRZzC~!=#2Ev|JgR1%+0ILA>%{O6Ri5H?~93s*!=6OC}9_{N}w94N04><8sf&fh3E4 zOcvsp=Bz$Y8Xj)k52rd~8_o8#y!fvJ&56Mp1zoLP+*stT6y#CW5PG7EH^peFJXitA zJlL1by&865${zcy>z7bArrP;1-kO- zYB`mfr`U4KfeX_L9JnT1a_H9#a$o!WXYgs-8nH(%p0BO_O7`kvJ0IkA@ciWr6TjOI z6cuy(1(987Fc1~jO_x2P#M0pa?<{YQ|6|HuLN6Y#`fuDm6F2I(b^a&~{K`nAReXV{ zlNOIf(XL%q^cDq;3Ryvx^hthwTAZ$UOQdIKS~!Lb9K|kyWOgCo3K&y;+;=O#p_K~h zyXT(Mfe$n0(FuRL#ip_4BB`Tk->#|;`aHZg1kV^|+7D zAgtqsHaFI0YYGSJ5`~-CgQ;do zB{`X*2r`=zjov~CB6wV*wJbuv0FjCi$$@Gm(t-c2?U9nhThtw~*^O3l(5(H?WqV-3 z34BY_CJlJM?8bR|0TQD~Zb0uV@{5#FQ|mgC9Q}(tO?S=cp^RH$Zi4g(TGmnXtkHJv z$#yM6=j8#zDx>XMsjq*!7OC7=9}3wVi3PO3W^@ln^y>Pn59))F#Z6=+daasD4e}Tu z!d-6^lAEiaBHHm_BN<=v?GgGFVzP$t8f;UBpb}^C! zML#Mwr#%^25Nin|=Xxi#laYePLh~Yc7b|xHm*?e)h`3ze#c_0EGzFJ!w+pTX&&9M> zetCb$U8BgM?*s_sF^5VfCFuV3WP%=;V58p`3=d|O;1UOH|Ej+PMv}%U)8?G|sG?`o z$@NpUC<*)JNdn7A?Nrz!Qz>_nkE8CzvE5}B&8GRFc%>h2SppNKy@5^4WbfNBJ5ntU z?c2AN5r^89aS0iF#l+X)7`ATAxjqZweXkVI&zr?#PPTkU_~}P#QEcRc!_wlzN!syL z=vyBRP*=b65YNyU1pNfEeLNuxDx~W6qr=qJkKpg$`zjN6Q;vv3CZ4-%XNLYO+W^1pqzXekr)-!ad^~+k7p(vyIrM?Hs zogkTYmvhzcZ@i~wXHc@pSmAiYq7_zx>M0~!l@?q9${|8^3EWiBX z$X>y1v#NOf3BYDEov-rJx7jkPE6II=BSV|c?Ydr$tQ-b%F%5i4juYLdUgUK`bF*xJ zCHcn9iEDm#{pm?>qq-_v<#~i~^ zF@%DWcJf$e&e!4==dfQrH-A35=XT@Y|LhwVpIjf&xQHy{81@?nl=2`q*c{tSWrcVL zIT4s2)H8iwVmEHJn4R;MdA}K>S}fLJDl_DUrAL0@9or%UO9^+nIjUmc)a53BIS<$N z=fm_se3qS{rH(}ox83-j_88Nvup-=u9}qN5ARR=^aGCtu+(}uGu%JpSj_>V+!s?VZ z#u{N4b9ORy4~rkvf*&5=f2@9}P}M=M#FBjAp+{48iIDUM31*+RxAXV^Ug0X0$5j?D zZNl~pIjVNz5o2gk($p&FLP9$<^Vo5K!!F6$r=Q0SdWR(e2j*`2%!9f$)@^WPrkO~& z2sY!R;c}_{(O4Ev}O zJCvuyQ`(jqEDF4P(&LN9+|~;E$?#l!ff09ltQyTQ>xh`p@Q8pYCRW3=M|p$BDr*$q zw~nkM{e6fcz6pa>TXCfTqfuQ5NoAKv0@or;xriV;-giuT+98h)^<`L^YqaKIcb^kp z#&by^Xcz9^Gb?Sjk><0?IJq5SQdFu|bo)x8l>AVU!ay$_6TjuAad zb_2bu1n517@N-T}p7h zjDpDg<@k{JRA%L*6I@=R)|Ah0J~!4Bq09U++tmm{^o~+pkj9JY{ZbvxY!PFIs8L|=^R_mWY4||H(%HImA8D$T$P@<(I-F-JxHl~2B)g63~YPQw43JDx?~9 ze>qb_(6MrOcibGzYn!{ejP8aC59)CwwzSf=xX$F%JG#5-%|#GkCq|erGQ~g|Zes=S zJEF;Ron9*Qn>|Qi@MkCiYS8Z4@-Iupx?h8TIJ=H`R!P*k{XQ+msR@ZQlmJP0y+F#vCNyLm7D_+tKA6Nf1}>5{Ef?1sDTaq@3u*=j(69+BtA-c3QDye!qr}B7 zuZ$L58@u%7@x3;Qe;~h0cFS~%K$hV~TXn8pB8kiu}%$_Op9L* z8PafuviMRHZ~c@r^zk*v-kaUqe(c=F`nNuU>qtPq*v8flx#naes~2?oK{+INHcizh z12KsoyRp(ykrTqO+CqMQ64TdltHiSO2U)=FNj_XYjP_u4dZ)=B;G53)1j~PALQWUK z84Nj|&8hu&JpM5xI7o)3^-l1q=@^QykF@(kU2)DXXfCgd<@@#E9-4SeQGtQ%C~Hu& z8IqujCt8ZU_u*=+JK;%aeuvxwaP?7pL`d+MpF37jH(NDYx71Wo$8cX|cCQ!131Xs5 zJ8Z+2^Ho`Bao59VZiu!AGU!gHnTA+yYti zDiCRZ0KfBK{-(g~;GrS%gFwiFI2EmDlAf5Wq7T}}A4lL~rUEB{fQox*gcii9{<=IG z`bSkA`!(*g_sS|?%jUOo+NPbl7up~YJ@HK(gwb_C*6Yfonc3;6&} zn3LbF6GmU;n5n1>2j8$TaN_cY#9iXZ=KKZ-2f4>#f5yw#5L^EZzNYVn4?6bKGLxy1 z)22r};CjAM7-n!2a~kjvw6RU;yjN|>q}p?gN%2*zW|qsv<=h?X{#ietmI@BdUrNm_ zCGU4@OOvHFN9Zi6suxsp4VDAty>Q)ZM~I6O2yO)CRak;#UQ`t%SIIEjx^XG5<(CqoZ?xh$tvoFQ;xnAeH_T|m7m}1E6$6*oY z3tX7lUgJomQNyYCEG0NFioY|jC5(dn#v#uzdFRs``Bmvb1>rf@JCa`9*1-g5g$0h?KCW4!=q7Mn?ZscC)0JK=e zSjmLvHNv~R|BENiwquD(6Y0|))5EXnRO)oHF^YUJ&1i@_n&lw7G=S7d&=$9v|XtzJ6&Z zcha_t2>?{Kv&VTB0lIlnFvZ5H>*;r9q0=#RPAp;XRXW?td|rQwujemNfvmM~^n#^}$>8LCfM;ey7LZ_%5k~R)&hg z2iLmdm9v`l1;c!}F;3nmx$WB<2MCZ@pw5&uT3H~T4Uut>ko>hOjJU6oq8W16tmJ(J8s50)OpY6LRdA5pSsApwMh@;!(~q;VhC zlqu)c{y<-sg%cHI$3VsLsUxv>o_X*?1Tr|`PmDgWkK6Fx*#prjnL?73<6})f0agQ6 z_h2+f0K(V-s}8J~gn7Jb}@O4Z{K)!ywhKXCihI zq1YhH+3&WSyj)9v9V>ioQ05d7g-`;Ns+B%P ztL&6~R&&$u&znK!@;N6dZSZl-=#|E!m9d$kufYuLy=hg>a4NP1P3;EKQb@(WF&}D6 zbrJadoHQa{+zA5y;J@FBX_B;0&6hiB>2(4QgX^R#a61QK>SXu$*7s})#K~13O>*;D zUWbjbbyaLiJ69$FW*DDl5@^zvKKH>A`=yh0tW-XIu}UH$!WgAbx0x-5q60DYE;Q_- z0=9Y|4BGi$@w%)+4#k6j-?fR$1Oi(#n)BGFQ&+QI1Y5?C_6pZ3ZY{k-Ulk&O=0I@l zRx8-_oEZXXaC6K;aQ7%K2q5YU=j$=aM03~XJP*0*PY38zJXn}$zp@ke{t+^C|L}+$ z{qH~CXY~MbEW-PTxsdP_X&x-|YI{l)6VXjAM=}x_{ZwZ9pkbST*l~WXozN=RcNwNW z$9J;goNx`uFx>B!$8?`7nIS}d9X7BE?_Mtnx^_+qoV z4y-SXe(H{y_?TEWQpCbvw;|}7$yj8bx8xRC`P8L4O*V}E<1@s6`X6wB>?qY9KmVf7x z$>9rfEp#Zf1X$$VeWsaDQW3;)zObL}3=df0T!|o(o)TJ$OO=T$j9%uBkoJ=4ji4yv zD}64Om(?xJ|MI2s#X79zQ~aQlP_sAt4xB{n?*EkDD zXh;jqS1fSV6NKDLusyZ*hmvFfb51H(fD(cSfU;Nuv^$g;8E2CyRj%16owhPfH^y-y z>flVSH|C~=9O!V(yLh}g&dqV_73U(CPNeW?7O#_gFo)Ef(U{kG!P-Wh_?(NhJur;KPIvRh`f1^Z_Ehqh}*)7JU zeu)u>&e%6bEUD|mZFQ?&CX@i==5d>x?#<_?e^9heGk{fkXrAD%>-^8-#A9dUgzUpd zWfY(v0!29H#=@BKbT1YP(h2M(Oi@n~8?iEOf<@G=T>1@3fc+bVSkP@F-=E7Dq3BnO7v+y4OBqfuL#O9kLw*SW~qOf^vM7z5jZ|0UT zT|UC$1#ovH_ob^-5tW20o$Ri8`8UqJ_b=@Pi^_;kfKrhi7S7qIF$1TbWe3$GczUp(NEhbSiq;i=eBpc8u zg)wl${eE)HzGu?ru3q7#M)KGnL}Z%yX|7)xOi#w9Ph=8mzLtW<$UX&7_}v?T6QMvc zx9K}AazDIA3Hn5j)(h8IDZ1QJyn)9WW!+D@nhJm{gg4V-3>@q??GK#voyrNCPIUvD&`1mlQD8Wjq`qc;?Y`di=`fGd`8XNuT zbyA+DV+#R)u2rQSj`I(KceUPiO&TyLw2iwcD@k2^LZm&KtvG>}54vhvkFA%)H6IYL zWpq;ffTov7nh1L#Gr1W)uU9G&f|`4k)^}9J%Y|dF5`Q{LC;}SLfkIJ~6Ez2~pVJP? zo;uiRkr0FAb%t68GVN>zRD)WIh>N`(;pX*yE=tCm`a(hbP$faDh4fWudch|IO;GFa zWOPQ~ucLiY{`ebpjBb}WWkV%fjmNLFElA;C@q!k7{)tP#m9m|HYTs8J+tkxqfu|L? z_LbZ2-TXv1J4p@PGx`L)AltC+wi>PY zEnjtXVH0*+XM~iyv?-U4+j%bvm0Ed+XdxCMS2qo1Qo}<`(hq_^F-)@i^_(CB>|_{r3+0h@o?2?_+0oIEWt8UAq8-n_2Lh4(w&^+C-#ng^=!`Yk>2`N*ME zZ3h(X7w<5&*MEnz{m^~8y|T|%T&HFmg^I0n`4|*_WN*QMTXux=Io1H}-E(t=d8LKk z6GRMP30#=j_@kj6nW-`$#?l&^7oS!D=M5y+Y}X#$)e#0`g&ZE(D3lxzZ8IX*%&ZoH z(x4zv;~{v-a_HhBC3^&_z1Ji)2f<gi9ch8Fh+IA^y5ye(X4nw4O$TDd{$jX60>A`!Dx3xhI{#`7Sj^w2Fho|C2-SM*&kqey2 zp}|#RiYZVkmCHgmH&+wBv9w26?5_L4hLxJ78Ab&V@Kq!8@aBhVcEv~@Km>>auV=WJ z3`G_s28v?cj3Q5#T2-M`ILq>c6k|hjf}TEAY%xd8tb@AS*(jP_)=Z0&61ZqW<4SdT z)Ax*gXr=*BGu0I?;b}a*q^ysO?11IOJF$Ic(%%l3Cdpe<=RG#onSiRy9N?)_u0s_Y zi`u|!jc}snhK;7`G5Z9-d*$@n1QT?bh<_-HS^_ntbQ*0;DT5|VeZ)#5=<^PGM7apE zvSOmw6}#f54W-nR5A>diz#t@_j@Cu$R#c406a{9Wg}x{iAMw+*Aohy*H1B?|XBU+% zp3-5%Lts#8NYK@|5thL}N!~o}EXGs}jyb)0(x1p>Z~$q^NGYjr&3K#i=}hD*=Qlk4 zyNz|t!UWbBBL&foXK4pePSu%K-ZM|_>6SVjG;L#RO59{_oaRjWU_Ci}{hAYze?Va# z6N#@}xM}j~w-$REgE#1k98*b?nPIbq0Lj+i6CLkvK*VD%K<=ICF)qdt+Fjr@y)FFJ zKVBFQbV`d4N(G+=1#7Pu+tbi}0tc*;c$Xh6QSZxhZ`W6?{{FwWWMhzN%)=%*i7O&j@sTcZUn5vDR4vgJvz1_ zvsAiFp%a2g$yAv2#vg*EuTIB!B_$TxA7Ol))*r|5QfrJtru2harE)5SMzQbqAe<3` zmK0;jL6Bj+{^#E^#|%NtP)ea39*t#PKrzgF1lVD2b{@Xn#NRs+Z34fxDG4T2^D*Sb z14Jt&Cigq3i;I`#kwfj4FmnKdk(RFoB$e|_{l0~*ITA={Wgn_60c$H%?siv7(^ z>Xe`weQ~*i7+Jh1wzK~D`EN$V5%&|2!GYQJt&J3CG==rimwG=Ozi$x266=Z9TmXP_ z^Lvd-x$wr| z*XBE}E0pseHdAE4VvN?>nZYD`hrXsGwf%%~4gFme(xGE96PyJ%m(kxYZe zGiJ3^8B^agENPjG^}%1V7I*%88I$R$A4sThml`XlFJwEDd9(ojA2bnPs_vM+E=2We z8ZHg1Mf1B0l;@lfpc5xh)E2v`bjtW6Fi*H?1$cZPki$RQL&0%R8#~6gpjy(8 zw2|yZ5p634arJNT2$U9+;L3C_@LromJlQ8Ywj{i`5PDUo>Yk$O+320Ws0)@V=5@zI z`|(XlS^j$FYpdJRx(oJ0jSkz9k=sSW;2)vgdNx;^6vPiA8BVVeb&Z_8ZRGomNQK6W z+%&`gjF2C2E3d_#H6kjyA|n+!N1ou!aBpB&p%0&1Y%`!$QZ9}fgyFNV5=R-Yg|g;h z=tlp1KFT-kT3z6@z=H-55xU)mxR*&EHd*ys?B3X<*9ann)XCT%_%sM5_)!oL>{!27 z!nnYxN;o(aMzY=8A@F}zy(nRgTuo5DsDP+Sq%k^?A~F9`KACuf@sjqKlT(;#H-HN8 zO=;y+6LOBLG2Wkf35=a}BqI+xH(|UA7)OVPWpwi923je2>xaM=gz0?JT6yh1)`d=ew(=wS zT7aJ6&`A$w5KBzmwm|n}nYxA92EEJM9^_;tW*uQLDP5 zPWGqHO&dZ=ieT3c%_8c15*OY4lEXOp>1~{<=K0)j7t3PKWhC_%=uJI5Lrp%-g$&)b?iHFx!DS2eKjsUmx)`F4whJPM~!uNG)jNs^P>SXnBd-n4g@$!!?i3}ds5s(^g zwnz(I@c+h#Sw6idAZgBEMI37tp8UgxB*I)XLk>1cPDWK{<9@e2{GDzgyCy?m zaq=~N#hA*P550Hacb5w+(^voF{$*kQ;R7&ZO5C}UjIOcCQ!Tg5FBp=p?zp2S7Wz6# z3%LTHcUv-EV#sV)?9#$e%^0dy$%5{!jW7w^x_mtV&php9lL~cSd~g^4MKb-OFOF#? zq51PrWouLm-TGXhP7p0)Rl-TrCH=aV+tbfh*^9ZDhMy=^V#dW+HrNf-K4RsiO1^j&}azXa!>|*`%k1ugg7{ z3uuS3kMkMc5)dB8r0yxD&%qmZE*1cKN8ht7IUXYXt?0dp4RIHRT>p%{42?haH0nDl z=Xb}A3kRRGw(sz%mYgDIS_{tq2mepS<lwy>jw z|1@}z4F(al*cd>RfYZ%ify;-0vydomDXxpkRbUwc;Ux?T*L;)Foe4AvOhVDJ35U^K zfYMxUnewa0XakrbDIPN1%WwdUbW0Bu^3qp|Zed?q;qYbLM|W1e#RzvaO8dQ+7VfT6 zC{|4R>LK*Oy<0lRE_z6siS?zkW`(z9ZW{{yyNTRYAVQl3=3y_G2(+<@_R}aaR0y$u zffeu6dd=JQRhXx~FBqaKwfEW|XACsq5|3n*av#xt3HIuXhcIpLAhRy5Pl;;69(ZT5 z;toPF*@oHIXr8I1Z=9tX?>d2W`5l)_Vr^!QZO%bRcv(=0U==S3>4jA;)t-lnqb1pQ z_IXlx25HyGL5*!{+9I)f>e${@D^l()6}cd|!0ve| z$xlUK{qvu)f!;2)UY$Fx8eP){^s_#^N1uUB1VHGWv?HX)i5S zqQ<4_epyjm;&1nT;5OCrfH<#sxIJo+r=trsuhqogJxv@ zIe$gV8qN+fmMW|xAy?!q?YaGMUwzwUfGTTheGgRqD5TsP^~BnHfQG^R(Y+vVl?pk8 z787Jpzm>-55bj02;5sQ0s&^^#*L@|E7L>yhd%*m~7s@gCrxNqWQhndB zn6iK3YA)=ele1}FOFAwq{tf==xQpsyLCC8zeUM_cCrP5*jx zbns3k3iQH!0yAA`+SDfl`-Ku)zCM({4ma+7IL-Lito_c_(Z%Ez{?>5rFh|q7Sei<&hsi}ip^Z(tPS5lPns=a$J;R2|92aB; z;Kjz)brG0t;6>nVIj?0T$GaTvg=nOM71MXF9!CXXEZCaII_5v}W7aLA+y8Q5&LLrU z+fZF77M85#^11}*6(Sxsi(6VPjLP7N%=-A3Kk9}l@3nny-70Rb4DR}un24hc2_<{0 z`b33sgKbrtr&eXKXccAr5ph8iEcqq2?L+mY=K8gRI-^ZNirhL|AZ}o>3-ejeg9q!Z z9Q1_g?if#UwlW_Mk)GHb?6UpwF?6!vPx&8%y zzD$@b3;=MVRIB|;$k&+8uIfrD;Uv|dQltT}J(fCD$t5MijC zq7n(4=e>H^|L^o2eIHx?PDHgNP`{~U@{sdYkr&{1T&wo2eeadFLZB7FU6tGz)I$mz$0 z$*LkDp`b2Ixedf>n>C_Cxg5N$iLN)7YaSdHW* zP}&@y? z`=Mc!czbM`G-Z4uE>SBCvM_h_tGrvh!i%vM{m`z6RcQaVY;uSLQGZkf-h3^an_ z_2N47IbJGJM9ecR)Ch^U!8$mYHE||C0(4`>>Cappt|PNk3vvte&L~E>i?E{BN>6Wu zOM^i{WsBfUxB{J6rI|n89)~ySJu95E+7)yLsNk6*hR~L7g6Kc%Rz-uA^383W_t8R# zeuOZ0A#7v!#Cf@9_D^GZ?tY#`{gI5(kDnY<#>66JE(yv6L^$L zSjxdSLF0?-xYAGAUR~6v>f*CT$^^^dr*7Y7jdRHdRfsB>Z{wJbfZI90Zyq~o$^4)4 zIPZ#f>hwq}hpg0ni;#W$do;{f7R7zn#RPr_6^mGq_8sfqTYC%s7q&X}iNSD3H0OKk z86kwC`zDW-EA4H(K2ZILllGR+I_=wfo9DPko~;w-|E_IfIa49N;8`Fit^ft0m;Bp; zZBp>f7(P>PlZ#wdhB?-y!wIeA)U;neP_g{j6zoj~peL_)^6yIn>^r{gG7#pBxWqE; z_&Xr>sbM#G=a#MhJMiStV=to4mbl1k*f5&QDX7^VQV_}_egDSyyA>0os_8(TXC3{+6sHVy<8+W%tHX?p}<6aHe7 zP^yvsB9kEqG!WU+Dzl{yO_2gZ>;a_;g6{AEKGU3lduzS#hL{X#6yu-40ysftRL*r? z@qaK#YgZ>{KuGmqLHkt2>V$|OltH+Th%5zKUV3WD>3;fuAy(2ZHDxAoB00+KV>wwN?{Ex<21+eU5gpT6#qJ<*0jC0dtoxnQ=*z={)IGS3-&T zsmXnXZ!9yZZtJZ1bNX2n>j|A58IQ`C^AD6>|Je|88grW5@r zP&mL6UCg?(Sz&Wn;1rb47#{{q!h!&TF=p4K3YnJe2z{nlT`md5Mw-XX?CF|bNugCF zy?#$%=LEgUdZeN};gi)vuvRLUz-2Jy_EQ&SHBL@}KI-&mVnMLeN;>Zt51Tnt%-GTT z^IqeciW@Wdu8u_;n0$meVH6X{vBq#dx15>N713j5zGz^HUq<1h6&Q>1s+bSVLe|@k z4+o-}P!LIY7g#e{yDUu1z;@?O@I!&C8fd)paTGAf1SQWsR z{lLvGjsMki?MzA6LJnC9=?s>kX9*`5E!vHHH)6P1UUUl%EM7>C|2^!nj=+%I$DrNyNV#Iaqj(%ThtoVI6dBH`Wzh2pE)`FAn)4zoh|E&vRxcgDezJb zDd@P}7T8*~>Rp~5Uje}tmodBOBf6`b33bQ>=`ME?Kx^xFERt%2SxeAlehQ*MrO|v| zWmv?>$UD>^R{r&;n`C~awe!n?^=I50#v&n=kHpcqcU2aWrh(FBAVHC)Sbp&&{Co#Y zR`_^3OMFu4SL2D= zP{62#s5W~O<_#@jKZ-@wI>nLWiDMVDkHa>TsQZf@i6p3+z|c}bEw+03=)W096Z}d6 zrCR|uSDL(l__k)D>B~Lk3;gd+X31JOYnnrR2Q;!-RQKskiCp#aGvRC9Zn*OwZ=G7WyCt z2+6SX^e_a1>^JWHZ`giK+%*3?z$Ub-qrRFnNjt5+V& zqW`0Bm%h`1eneHgpaO!(DXn&zj4w}ZG)VPNzzB3Oh*XALlBF96TxXnvx6e~@!08~) zk7hxAgOf-jbP-)l(QMH<;Wvu_l)H)D3yrR^@sp(e%!X?xfe_Nd!cM-=m7DZF$|VOLgBMBkaq_jJg$W!l zXL(8d#8d*BsOEM#n9_n5MGImC2CW$_Jq7*$EB_$0#o3=})EuEgf6K=PfBhL_#pTCg z$$%^F9;E18H2UdEV1EAz5z?rN}a? zN5as))+ic@NpvYv5s;BfGY?N#c5nJ{@?O6PF}KeqGH#e06T_$Zdql_Z-A^;gsRpg6=y?y_c%e`Mts8EWvC$Aqk489-_Iiy`qaxGzjp)>CLR4Xh2%qWVMVTfp6TT=U`OrFBk4eaWk%SJo28cOh4Tem%)w70PtdZohP1uBz663~cw2(O|H)cZ#|F@He=^0|aFrQ5Cj#;lY>dMe4X z^~2`s`!}l%!0d4RxAnBx`H~0>LW-}u^K#28=3EN6I9h?T2NJS_4?vnogJS@L1D$(Z zc^bK&YYcwFl9K}T+dBxlEbHh6(2m_8YEE90vz0%#Y1sk%gy_51B&~Dz?hzmwy~` z?-oO$(W~JhM}g>hm^y(;sHnUk_jFHFbMe0!OR&k%bhm@$YyX{VGrPv7$WPKS2;XJD zbt=;n86SCPj-2QLVY+%?x)2kU0UF&`N%zD3;T=`#!YEY|Me>n%fWuDZuNOC{c7Jd_ zaIu(Es~c`NO%xDe_+oam^9vg8pAOh*=G-LOl27>T{wV^g#0$j5BQ~AHQTG$rxr8R^ z-!&~F2ci$+M-3eFB73PxX^N4>HjyH3=bosO|>FkFtnI^L~-rbl}< zC0LN4D8ouJoht}m%93cd{igu>IK56-?(ZlysKP}2i#qKu5DQ;t?}_(O;Y@*K4(zY~ z1dSV>{4gC}V2MwbLPJk-79vIF|6NE*+A)p#Z9oO0T3zy(MHdEf!DysnrbEiQ`iH)C zO%g~~dTNw`pG5got;J5_@^pd={kuipCwVpV|uJe1pg7qOKv<0~_liuqraG~(NT6ApEBnF#gy$%I7I5UphQ zDYc=cm%b>VIun!~G{w2jYtn8&!R(>|{|->|qg< z_d`iAu<3>UV*Zg3ow+kNjhB(j`J9M`O|4ui{XRdmKe2lIZWvJNYGp;kzRp;UDd03z z{eJpck$K_^=hLv`A2M<3?g23tIlyya3dCg_lD;>w2ON||`otyg>4{YP489b`(zGv9 zi*Z!o->URdN%Ablu~Sf}^?u_Lj;1)bShcg`Q2EH~!&W9GBNzESz>2MxAhvhmE|d{{ zg71s#8Q^TuAV0xnW)?=lGk2bz*~lrErjo(Gg?Y<9^ym`ijQ3qctP^BIZ zysha%^6-208RIQ+xelTgnPdW`Psy9FiL++m_PY3)!27h!+C>p=M4p7)g!bT|adeMY zS09D&0GU?S{(5Zjs%#Xvm&r@nQ>F_8hI9^pQG6y=79OhV8gN6|m;x16pMbw`oh0v( zggn1C<`5Nz$~ycDAPqueg;bn-z5sNo0uP+{vVxz|k*`bQOh*6{u3iT)L)&jX%38DO zECT|d{a`?s-5;VyN=DTOTtX^rin(sjz!1rNa?e1lOmJeXwx$@d;Ly)`6?(QU5CUxp z_9}+~^j?&@16ROZ0WqAR^l+0Fy>5E-)2IyaSnMEysf($jGSNDMECw68dD!_cU&~yd zN+pfa0GUVf$u}&VPluR4dA?C-DFu-P;9AxS`7!Yrz*TzM?*xr1dNg=e!90Wkj~|?G z`l8?@cj>Dah9{S77cWC+zc8i%VpsJb;69cN8V~faG;X?nrJY%-on;VX8b&T-;)ET+ zf#|uZlO38!{e?!6_JnH7A`G0Rjn-+!bgq$so-DA_8CDy(MZ8bT!X;3IC3T!~2Y0#y zQ8}xu0IBiHl(S<+U-Ef={6v*M{oohO$u^*R2;))PwjI)>T*I9AIge7K*ZwONgdb_P&O+M^1jFGLt`A z1(fLTIcoyo8va=_hQZ*>N}SbRj_!b1(qte-t@qxAt9xF$n^;dXrXosl*;>r(nMEiasd~#E0P>Et5(5jphz=AAR)b$a`{MDLV+#Rk?SQwT+I)_-iJ_ar6)g zH#N|UJ78P|FIrEn9?1tp!##abdp_`|6FQg`K}^t_Qv-D%kL((F_ljueoXgxu607?? zbezWFM6>?}pLkiJLF*CP>8&mCe%N)s`5w;lnCq}~DB%TLjdQiU`wFmi{p6H>#M&2A zald6nSYeX&o9_N2%!8hUD=UcBl>v>oYcjH$qa=g)q6ex~Wl+ZQYR9U&yvhfF9xpSh z#z3v`hK6R#k%m?n8U;L3q%H|32TSh-zVx>7W(R!NW8x_?9~C#y*9jkikeZEDk6Wh* zaiJ&0aLlc~wFT(a!?aFfWJ3P9ViICVC8#SZizf;{AWb{C$$X;U3Qh8G>U__d)a&KPqgTgXW?-0nk!NqU}WW9 zQQhWLXawVY)RsEdl92j8y#cEpyD4lSDtV^QoB3!0(Tf#+nbEP=J7MXt5e>Bw&(g3s zQ-qK2yL~wQ=<3V0(_+r>86g3PqlOlje+^~O0lKfmNu&XS-^S9RVT`G%M(|5sR=?uh ziK7i1cKe3@$Mv8Y!V4d~?Wd(XtLHjVmhu3ak^4FFBwf2W9Wv71^A`*cHeooXHrL$f z8tE3jlxUoSQ}^7pG3M^0vVEv<@#D#gURadIE-WQgnPIjOeB#xM&v7yye_L&p) ztH1W>hQLb0!7Ey&`=3D6kjZ1#Bix0ihw#r@y0fEs zP3^oQzf=r<-JrjS>lxO+KLHZ!{ZUjzlM0-i9IXMnD`hR+lraC!GV)Fxe=9adm+I#q)V=rNq*Ay^pzo`W2RjZ~U#2lRwjiS%qus z$25K*(Qq@!Y}YNq!$fm$etWnZB6SkiKi=|FrjpJCgV?Jp|LL+rRobeX$`S@GX4IU; zo>>D}^vv7}#*Q8Ahkv6p%T`gr*tlHDt+^=7EGrU37D4QWH^`wlp9EI##$SAC5iM$Y zxlCh$!%-;)cIe?ZqIzvM6=26u@W5M#7tzFEq+IFl^3Kv&<(0!Fvz>b8=^`1B(HBm$ z-B&>svXP}V3N0i{lI3GRTJpo0vUd|B^YP9bJA9f-5#@Y6ASTwfyV+D|>V;uIC^u_# zoyZauKKB=c^=LptJKr&62tni^yy&yCCNIi2E>n+ZY`kfEnQBB{Qprh=T@sv9Q_-H5 zwHO-auk7;h0g!7glWY23SSFWt7-b^+2DW;EhAkzIJ43+EDeHt6t&-bxvxn2on|;WBK7ZZO>S$ z8O@dL&==xp1Df^55kVxG5{gk*UbVtpglX3}@B^{Jjwb8GQ3{e3$Alcv;Qr@M?F=^+ zZp`al&2DaU9OnS{9s0hkuaar<=X#Z@bcX4{A+FnCU!F|zXdd4`e;!6cS=D)iM#p+E zAoLm`$(N%Bc+MJG&CxiQXUQnvN2bP>6jb*9yFN$QF)55rPb(&jO1Z+6m>G$Q*a#0I zd=iOv6zxY2-qXAK^6aEDTUN!Xj&2QZu9pbm%>KR{R~U>EY{5^;0rwS;$)m46+Dm$> zoRo_l@eZhHOV#ncs}s^5Y3IV%wKd0^$Ash5crYvog;hLG84v!k$lV+9F1JIspa&!W zAwfz)zq(Hv{GuXh6a$oaaFI}&{Jp*oXlqmQIT!_f)a3Rx3h4FLXOiE@y%*nNQJ9-z3AK|G<>TmF`E3x=IDh!7g*F= zc+|E)wy4|X?~5_#OMi+4{9(RNzzoxqp0ak@_A7UnEBdj8>e=$jIsqH`MaLB6Mc z50@QNbsc45VV!_gwayV!ArBqFK2W|EH%|@N+}QjVhO9ka%#VrW)8M9O)E?7luOZ?5 zuC;jI5XbsHMgh~zTt_&*pe`XxBtKy-;YE=I_wTwv4P!N&fG@4z!aghy=6ldCNh+|y|_zih!><*(6+ zj~pRh+4?Y|313Bi%D_x+W~6{iw-!(xNhbh&KibNPjbzogxI6@0ehhxo&y0HmgQzoJ zDClO_!$a65xbQY5ax6Pg#i_nbY(I8n3-Tot_PRD}n~po01y|&>)qICmV)gF=vsPXA zLp99WKYf_Ii&q0b&NhDeySNwifZBw{fauXAfc-#gpQps(e5VOVkGqg*CRNg_-?OP% z7%Qube*a_I_f{Q0?_EVpCkf*YQbw!GF95){^!D1JS_MLtNzj&{Rhh~vqy$5hHgiHJ zVwf}qkC2K)e=HaEA9mgrkNJ^1MGH$dl>U`q2ed2~W_=UoyDA6}_vC~h zOjpj^VA9E&FY=MBX}3Vg+BvVqI*|<2#7Cd?ucSi^^J|5&Dx%HpDt*~xZF2+MzqzJz zq1s-&51!9zRODkvuIpK$9%eV0gHllJg&mdMe6yR@DO@Zj6x|U$>j0_C~y2B#NVM#Q_66!XrVkF2qtl{(?9D}zLFTHasMliSP z>EDkK-T31&gCs3&8!kR;L&(4O^&S4MRndmfGWP|(f#Wg0P66iH`f_B9wo!k5rwsBX z+KF7yX~`($fuY!kI3)qDULtgQ7o)7u3IUkz`B*_Ygl5oeH8ht9U_5vM3NO zKi(-GH1}H5E&hk>b(#dFQDyiW` z05Ob>p6&(C_E71`4oaAp-ApyKamhganS+|-f`adEWJ?_P&lOVrmj`JHXqE_lX3Lw+! zH4{^X*2f8JCQbc4pmH7UEmo#Z_bw17X{ydt9y8gA?=*d&nW~>)T8wDXbbWOzfP+#pq(s*z%`_V3(^Wt|k6B<| z*8}vueUnzo6fH0UnsenUP(pnl?q+paRJR>s%!a~^0!9@Jhb>U+e4&0qnz99|x+>Tv z7%m>}Cx^`~-Q*0(@|(gka?8>)aMhZ|Av~sa_Ai$mh3)e z(YVSHL~x`*no!*kftZMurZ3ae9nbNNl#{!(?75!~Eeqn&;JpjM)CDR3g){2_GKCd7GFhlMj_g&KxG&#C zGJ6s_uQSjpx$=QE++LGp_)E`q9bLVxMz1@6MRd0f-Y1fh8|uNu!GJs(hFc`xL9f`e)Q{f+wf?^|Jd7zTvuW=e23IkIYLTyOQXMv|RMwED}XDTKjoMU8OO?7=BV zHDDJ0F7=()?aDMr9?+(qG?T|Xuac9N91cmINrbKr><5->?H3-73pPH)Nc&z z(u1+o2WRL*Tel-K5=9uH>9K#fhL7)iIp+=kh#r*;%1p>mH!0w1sty%7rkx68ITjN~ zVc=neU+M0)@#Df!?;gdtlQ-ogPx}<~*x}iPESAc2yotb68kN%hd~rLegCaYdC3BbM zU;B2@dYn%woru1N3l$6GPceXmPD)X?;K1<+$a!gtWpaB2QSb3l4d#BTo6dO4z}8P^ zkB?s6hnY#1)}#fonIeH#{g%XY-1=lWeNGM4Uj&lb|JrUGQDs5V_Q`4Ab`kMIUXkv@ z;%!jeeL0;{Bqoc$e>4GtHS@2Ol*OJ8O7NOSAQ67`zckKaEvf`8bBIS}Z{OazoQ)Td zdikKb^vii=fEhG)VrR3e6&QO3|KzT%X9qzOSk9XH-q%W!7XcNr6eILi@q3QK41d5C zkqp+?4n5POen`WC<9HZUOs!>DW5*oYnlW&HODL%7!;ODo}dDaGHv1+`zA& zujS&7^$-}{6eszS(h{LkPiVr84I}hqCj*rJIvKr+XMNRnBz1Cw^Kq~GOrJKJOTqZl zXU5;adb9ST;gQQ2oAZoN_2K=R?FFLaSvZagfZG0m27Ivp?gFl4y$sSFZ-1UL_6)5JTWYh-o72Z^S2 zmX?bX1D1W9m`d7|Z?XIZ2Ic)+Drwww_n2G{mJh5)Dkowc59A`=>pnmZsb>3v8nFpE z6z(HWQ|!(`CZMUol5y?NIpgtX4CQ?(Cw;9&Td00LeVe7+bj5e&zhXL0Pbi$QJ|j$! zI=os`2){027Vub@VQQVl`D|A>MO(KxV$XPAo>b_7z~(}Vr%gqIM)>*;3%cjsNXqr?z!W(||1o-FDW4mA;fSt6Vt(?PT(lj7|$w${P<&)IlUaHoK^a zAEyZzgWE(#l60O=eu$wsZl5F9bmV^F32Z5#!as#LY1Oy1F&5Eo^cN!8*tPT*t!_F(y?UR>bRN zW)@y(KyZ6L_$5BMiup8V-2of9lNpzU3QmfoYo7hJ)cvuxk@bFB`YJCDZhrjQy6T)k zDe0LW`Rcqy9P9jTYoGT5X7hfeX!xmnvg@ck*3%cL)Cdz{(aRW&1(h?L9rt0}n3QC` z-(o0l61#Fzk9UZ^sIl8^ba4cM9%2Gk`1Wgge(kcjL<%j$3>|jKaL_G!-G=9h-!Bea; zQ&@I8u(v1$sa(zuNWI7Pw_{XI95R15^v$9U$F~Uv(@(N+J~s=aog^RCRGqsgHauy8 zTaaZJBL1G}#IZdM019jd=u}?sEL7>G<})JB#JKUjG+In^Q3`lC6Q1DcT}m#Xq32!` zLqj$zynl;->TTAPIKk$m@#sMhi$()G%2JDzaMryMIgEKFawzLcJRqNX8Kc4&zA2+< zOW(tW%LO$&=BnYW&krN&CwjaN3xbldA%qyWi!15Omv}F?+Qy1^(DG9(YihU3C{t{k zH{A!Hx5O*Sa5hvDw$VWa1m{~Ss!Vo4L;+0pHbzs`FS z&Aic_(J2*HB_$PB8IDW+5OIWIabj3PePR``!d?$3%?g*Dft+W<`6nRco!V*XgjuE6 zLn%cgX0q#fpL`x-%uI3)Ks^XVh41ry4Bmfjk!<1RRW+l$pp`~tY@H~^zqU4u9Fsg> zag5{S!VcM`O*8_>(f!n0R5K+U_~3DaA3dYLBC<$H9G#g2Pb0RCfkIW{48}dKlU%jD zZTG-MH8-4Dz6jc;8>4|Xb4kWT&{yn^Qd2t_q_6WoRCq~iqI}C*p*%0lrmwd4%*Yon7KAgw2L@8tu9 z0!SInmut9>31|`q_BBVFE)#n$SA`8>Cj)mU$Eq$C&XF!uKuQm&D@B9c!L#%Us%KgUzKGk&)VBo#N5zKla(ybl4MxvKQ6BW~{a->mM8XC72c50!!RSZTq{cTlo z&n$;B1np>bmRG~hCgKl0O*=A95>6C|LtMUCe+v}^cHQb$Gx!G06lvKN)tb7)rTVq9 z7sPB&o_u`o%~@=iTl!Wewx6+k%je!5G-dCFkbF}U)boo5jhLAnFDvmqiX`#_pYMLq zw%AAuRSvh8Tzq!!6sb$-*;MAkNNk}Ng)*()Hpe0q%rHp?4jh~<4YQaScXvEI4DSUd z!@DWK6*$bDKTFuFb#OZ+iA1_#`b)&m*ameTNgoY%p2hWw{p70Ume>Ka?y-a&TG|js zbhI9?!yUqMCY#cslT{!#4QUNi?{!nK-XcKeK%CEJy=5FT)6W(mjx@TBH9^U}y0W5c zUq*oO(tne8do?WLk_s3DJM1_a=%1)7b1pK-be9eJX*Px6wR+V7i@R)J^`p7V5(}_7 zYP|rLE|YE00n5u$dZ{h^Bc{Xo6{QpQsX(#JZ_x2yD=V~qtuYAa6rb@W^GCVXNJ@-A zu8adj^yLEya^uy30O1pLD|R#R-*E{qsisrUoL6LE5Xg-g(!^M)XgKkRMjlviT4eVT zaMX2FyY3?v$PNSJFP-cmiXQ#h`(|WBVxM|<4z6s zQ~Gw7h@7E8+L@C3(|sFM?A3VC{5xh>bm!z+pSx6ZNhzuA)!&rYteqzK?C`^^*Rts^ zK-@$)vX}X8vJde%wwmcigpO{$ips2A_H-pB6xAu=-*!SC!hJ$4KLUtUup8kkm;O#c zE}SGQiZ}Id#bdTbcbF0Q9QQr%cm7?6b2(iH{J@x$3jbmQ{D?r7ZMr^!|D)+E*xKxx zZVSa-Lva$^i@OutrMOe9xVw9BDeh3*wYa-e+_gY~;>CN?=l#wf$dzmE*)wac*?U%9 zi8IH2p;l;$g!Blp8?GObOG(T=>99gUz6=dl(tp_J`;m?%55A;#yC_JD!m@v6=V>Csw=6=3YSLA<9NlY39 z5)$hOW&eSQ3bL)l+KN;Z7g||5YVVkg)o(Q!5qwUtOGcTfO_X}(!d6OI77Z?WZE5li z>BiGl57p^U_vN0$Wvib#!!E@0343j;(m471(zf@ejoa+S&C|fB*P53}cg6NYKU|#0 zIsruER2{r7&L@LC>x*CT%E-nqvJyO&@4-dxb?KNilihWD=+abApcea+V|G1s|4W^>hCoI^2k4bE@JbKAUOi%@-TKK-X6Bmq(2s?MFYG#bx{o znL?))-bj_B-byYwqWT$q%#>p~Pa|VT-|qG|hG1WQ>bQJD3&+8$`_X2!CbE`F8n)8# z@H7qDM`s=#yt(i+W9x=*XqKpwl{e0jWl@M6T=R>uNPCgS=mRd9O zV`!+(3vTp7OmiYCRzHt8uzfiq9Hy$!5x@x6(uu{V)cAT)N`HVgm3V> z(W(pzRMwYv`Vjh-yl-Xx6b_H5;90e?>=Bplc$ZZdL)$7C)_Y*f;R(CTO$IvyM+Z{j zC1ZjWl7#${O3=)KQbF$VCWkAMSlj~Aq@5dojV69$uxh1w*4UemPlW=Y?{mrKuFe*g z)bxvi&g86O(5LVP&gRft(G)GTt?8V6OitxeR&#r_*7}qZLHuzyhVk9E)(H_r7Mmu{ z^ODL`{FUn_==6imU5V+rWe7>#8}W?xmKVk@D`$+Z>bUBj%0aqtb`jRKQD4zw(x(_; zo=uHwnME1F?sVKA94oV_&-aT&smKZ_vmQ>K+-BFAhwZMNGe1O2-o3wXj7~c9@97WE z5|0r}PQ%3}`|^*3<;B8s3F}bjp@BEQ%Ln~=RaYon0&w-8(u^N{)NoYA^Rs3W@hz_Q z0Sr3Z|Bxn&BRnkm0i|IbqUaUBi_?5E%c5L`C_b)rdEqOW?;;`c{0vRyc{p>WECMi z%oVarW?mSSqOzcLw9`tz>@jj0P#$$ZM1lNQDeAss%iYeQDJ=_Gz$XlAXiOtXQkme{39}RWhqJS`UnO?akf2R*IK8Uti?*!v>_{@?^nT#g z4R)TH*1~u2HMW`9YJ?vyUt$e4yr;Nf81AHEQ{I8r72#qqnh#OVm#gsC&N)q;BA4Jb z5Me`wUoLFSy}6zWfhzf8+Dh%ZaD@_64T9KfQFV{F?8nQ}YEMlASZ_zL?L{m8Z!c3S zc6s4Xx9*>ux+h~K5ou4CMShRq`>(GFt<*f13$@1TeH9ZQ#!x({TJ97C;oXH7J~G?R zv`}znCNX*u$|1KD$-ON|hnp^7OdU2Yg$KGjSB<%ES9j3ZgVYrz5Kic6#|8G8P{eI= zw#F@M{5~KQ0fH<{Xu~C?k}9TXCDbEM!zFKM_ic@&g($XBy3Cnm&Lb6FXg!(An~*j| zW%G9G^ZV-nC%-6IkEOnsZNr~g75hYxSEz^ z%fdPgRD(%o;EB*V29ycPwZp~3QQMY79QV_L%7Q~}p+Qwd1JmFm>9>r(uDqfUD^;*v zwqLjP+xHwv+C3S&i0JFascc}AV>gK%G|2SL(D$OjC@z<A5c#a9CeLCR)7i=uKzmnj?1yX&ibC2!$U%sV-aJ)uZaLS=M!@roryRA3x7u2iSz(?j=P>(`9;zK2I=-p1?9jW>IN8FVZE6i zN%db~UDHYD+xeOg#%2%ZNNBIDpYZhSdS}0-4EsO{}P1;{!)a?%m8&&V4s$H%}| zI44x5yioc}=o5t6d2Hs=hJz}RKBtlVc*f`6;Iv_J6=vpSU)+M$85Z(u&XR%|^?Y}6 zThzx2^}x16WbWDn=d|INd_k>mA={h)Cg1W;krtIjP3TtQhvdf7~(WG85_)WpS+X*ob?!ZmzXGefDRwW zo-xj)4x(A-Zkgg4mz2Vjv#rB#Lk{tT_MP~%Qfky6P#F1IU&^COp#O-O$uau5L0h?n z#=A+PFb>kdoC_ODW++#Pez(Ua!SoUFlcsN@5K`;vX`lIvbgn?AP=QY>Z`3@MKGB_< z04sDZgnU-=iI<_>k|bw1~g08s@2Us81vP8sBTX zCmraBt4lmyBZ*12D#~(h+Q~kL8P;yMqhev{WN?`tAi9j%HA|PGQCIJwAM_})PEaSs z`V;4nL*j*B1NF zapQv`DZesS+#-L=AYL(^ElXElb#47G!fqk!2` z6Lg7L8Q@(3vpt9lO{-&^b>!R*r49Bvi%nvjAem_G6haa;A_~*WrS|6 zUV6A_#Kdsh2)@TUk>CnNTq|}2(mAqbI(kDJA$(lGuqaJr=VogiMCZ&^cBmo*)) zfo2x7!i>K;)$u|!s?qn+Ljp7zLwWkfKVy2hgsNqNecaZ|>8R~cxl*SEP5yBf`p5sN zbiYem+Ij41p)59xWQ*HI(b^=L^bd>J^e!uc>3Ya~E5e}$a&R5eZl$OE`j>p<6VtSI z|6j05LyA|FUe=}{lt1SRD!n$7(p$B?yQM^%;^HxmBKK5;uf`bY7+K0yhOhmA4;fqZA#E<~x%QpDd=E`4Fv zKuk-}uo&u@Q?UfouD!>sm@I>=>9WTxmn<4kd*+^8q2w!h$oQ;b+i>YN1(g7|Y%03+ zqvBUS2(IM2>=YINsC?mo?^9wM%{J)UjA>05!+ho#y_=|<{8izNYHx#DM@x@m_MG6F zeyOJ>u)en|YhLu@bIW;%9QTzJYlwlvO?^aijL8{TgMPbbGi6Qcief1^)K_slzNJ!8 zVs@R7l$~7ICM`)9A?A&Iw)J77X3m$Xds`6r07(`DRm4M~1eA(o}i8x3s0%KkQJpw^kFYBGvo^b*aD+WrUX?Ns7TiJ0Zv z9~y8w)(vtCMg7?GV*YY{^vMGHh$gEnWpam~|HcaB^4Y#HUq0*;;M2GOR4!N{IS@HJ z#%$*K9snw9H8O4WlUAer@KcRV`GgC&>r5|GaIkQa)r~ei(xSF1^(|S>g%SnFiHf__ z!3?|8uE~d0@j$YKk{1t1JWe^NsGyuuCqwP`zj}O4BHhSa?MGYunm-50Ty9c#Bt)MQ zSkCXU8YNrq2FfTrSolnF-Bx|l0gxdlA)3zUzDy(3pFOsnzZ%l&7CP66_W89Rplm?1 znCAJxpcxmL=L~Ezk1-s}B!6%u|7jz+AmIj2%j?VBb77y=Z zPrQ23Qm51@c{q$C^U0>)YO_|<6M0P;#B^!AF}&5s+cp+&XT;TroT(abMr&yBBEtYn zWwuY1nbyk>*Ve(_nA#{bd#{y(Ey9kYQNCtk##VCNcdTh4^4);JHpePT?h#f6*t*@k zWT!zxgXQYc{n;DpL%IdpF*Ai-Y}bCbD8F&bv1D~4xi4hT6FmW`K|YEZ5b{rvc-E6L z#TD|R_kA6esbdC(D72O_V&(j4u$vS(>QoGs#DzgX4ajEy8HiSG4}(o`+Vr zT_F__^2cC|Q_zf;CCP@yWqcd-8Z0*gCO6Ww;G=%WQ9TyBxj;t6xBD?(b8N7pb-);- zRGER5E?)p47KF`Fq%a}S6S+wulxylL&_Ahp)Zl~kBiOLenr1;MZEi>Xug{mBlUxCeCh^@t6hpEYL%>z{0I6Lr!Bpq zJ|&Wz(>8TQ7)@`XQC5?ZoaQNx`Op7L1by7XpO;|ayZE9={?Wcd9vU;HaIu+rZk+p{ z@{@O4&N`Ri7i-&6Y03VD3rdN;xiSCDPQrl0F~DvzyHI3;=c!kLzBtym8A-m4N-LECF*Q_+J33oJk2LcLY(*`VjT!&8{jeTmT-Pv z$plN_s*l-1H9!6o!Nck}$*i(SDMB1R*U_|-twDuQW?|K)BQhw1{Q_0-^Fe15+&4?@ zw=eXyC?<->B9T4Eo$&|$At+zAc#A-5GkWaV+w8@0D?;*!Me%6#`IY7gPh+)$e5<>l z7Q6Sg+^X2I>{zh;*ffTE7crHaN;Gajy1BA(6EowyA+5fdk@Ic6&9>x($a~kS)IfVs2>O$dlh3#vF5z79M2X+RT601> zHlaz6Rh2|ir^0`#YUI=Gbp^{)6&DSqpfmo#QjYP^H#H1d-1rs!@KL>G=U6H8(2*m$ zrz&zns5@Q|ne*fKuKa+sbuwpKmO`iJnbY&*p^YnOaZr-G|FS3_>)!R(C<|I1W)nnN z(N&uR*nbq|%4vR8VvAa$>z3Vpg9H(Z_i>X6?c=xw4i;CS;JoMya+Z!O+^2~sj?F62 zb&yslD@b~r7OQCtbqYACDHR(0Y1?!E2h-lPY#+D)JvgHmlZZP+y(h?Njsvna$R<~& z6xpFZoZlBH^sV4cTh>Za$pt&j9q5AK{D?iv@9Xa7B_&<$m#y=fS+u(@hUAO`O040b2n59jFQw#5jq`FpN}<)NJN&_ZGV6HO*xc1#fr9)fJm_LGTCy1@g^;Zg2T>djjZ5FQr7ii z4H?`?McQQL`7f1{E@wA^wxjQN6* zHem2&^ATO|Ph?9oGTnP2B5M?=XKMC&Zn=K@d+7UEsX`;nF)MoYiYCG?4h*>f9c7pQ zKRb-r>R6dqtUj*W4NBdA%u*r_nEtjAZQMo6UYDx%FA#hzc9X-~Fq zx?o=e3d9TC*FQBt{YfoL5G@1RqbZL+#7A!D_Y>cJ(d=K_=sT*r^@`jme}_srcUDNd z>ZJs;H(ee**a!6?g5I0pTO^HEV^)bsY}{(Qap~)KPxbnHU0QyW4_Jr`JI5uRJ2^AV zZ=8Gh<7}x9ZVs;yfhx5Bsc{kZlH`YUdo(r~$b1G&Z+q0k@VBw^a9^jxK1@$n%g!j8 zV}76S;!Wk)OAM@T2x&L8!m2CSw64|T3Kp)%%8_S0E6ppZ`t3i|r-)oQoejSHmth#( zJpGYzQl8#CGAgbV4GtAlaQneveg@l{BKtvVah6Wr^>F*t>0s64m&eVIJdLTi zh*ef@I1hVm+b;ZcZGzsX{RM-+%wHP$O^iji5lPi%(US>AM;6?G(DO2Oerb&O+->kg z!(J#~8w)!J`W|?yAQgyo=bgGvKWF-{Fvx^9V}WFP(r77@nSJlS97yK{{~8Ta&X&41 zB~g;HP+{dZr$g7$HDt~Aq+3ZTAZO9KxDLnYGT=@nN|<>5ReB{-2i&bV zb51FF1@^`cNd!`o1GtFi!yo9iQw-Nz6GF9Nj<8gM7-$VimFXhy`HmM@Q|zjlbQxdg zuHZ(8&9OV5PvzUmR8(4aC((afrm0Q`GD5LSWru)R#LQXKPKk|Tpg?j2NY!k=qWV@L z=huRPQa1uJ418pj*18DQxmpm*&y5o6=5BKZ3w3i?5fn)~QH(Wu(S)s#tc+C{cb#;D zVfOgBuwnVp9LGz7r%-%An5I*{4;o|UvD+89QRPwzotDk4A zl|M!D)zp4Hp=!OgyzZE^T^wP!>*u?byP}^y@m-oxXu6H=elt1c1zDbPTU9+pcQHg)F2L9=Ix7Oe>xB2jk-+R-huRP2~&4Z3+ zio8!;I}XcDyHCegl{#X#a=R&C(5Xhne5Pd8#r3pxkwuScaG3(O3M&b@kp7Kg=e$-H z;{}r~imHUHpmXx2S`-ydxx-utime;tJv2|1jZm0?yUU}+`ThkTqcgn5o{t^tcy-JA zmw`6WcO`rJ3ZobkjRS4q2zWF#UQgPMO9Hqbl1qVstvN#yOnaU?Sj~JVd9>PDJSuz# zlX2=n^|1|{-<n%VlG>oS0yInxZhjFm;H$izFYJ<_jhN&=>Njy_@ymPm;}AwC#i#p zY;qLqzGdmA>9tI@Di2U1>j3k32ES?Mvo#Xq=1xd@U>8Kza}&0nepqMr>8smcV6PE` zq=^)kb34sKf=OXd5I%FhEqaIRQ6r!E5{7!?w4SjJ*s(f2W4(zjZUkVSAhE>n@MJ`_;IVXBF6GYJ9#GVZujoynULqHE zC{`xkIm8WR))eLWLma_80p>y?Akk8O8mELZl~u z^18$3S+qqftdqJ)J^VKB{|+D{Rx%)**Ht0eLJT^~n8a#gKhxMa?x$G;vii&aH4>*K zC{OUhb(C>!VL7iC=Kr9Ow^ibEs>Ng)B^HoW-C+S3RIh&jpo7(Z$};}vLlj#f?K8!W z-Ir^u*-YANKKzlXDI=;cj? zMwXsMqL9)h%C(_l!GqW$Rgib>^&k=2gXWA|t4R}#7wUCmOAazmWg|$IBRB$vwKS`# ziH_R+9X~cs97&?B8q{T(N#msrktFdJ&8Tqay_?S+JOu0>GBB?uBX%~6=rXsEANSey z)=EyQ-tho1Vd9qV#spUPp+ruo;5X|wVh)PrFKku=Z9~{5yC3fK)_k{1t%I9o@EK|= zB{JL69|onLYW+cUW~tp@_`|zT8z+v_^Hjkz3WGV0l)u=u>xKy7Lp#pV$V{<_Ke!Tg zaNgjS)wW%of}kbtAOg-B^FhtnwFZIJ+5sXh@x5Fostv>P0Le>L{bihhbxu69E_sgU zVKT&%|KN{Gfk1uR&27#rzMsd-6dCMGeOqCq&<#b~?x?2cTB#_|Ar9^&Y@o~?K5S(^ z;efiWp5c(8d=++Z^7=ZQoK)d*6ytz$BQ5Z)C(=ICUfC}+;|U1_P$htxQNv_5;z(jH z>I5~=aMNJ2@gey=b9tva&Ho9FQJgAlEfLl5!e0d&qDW$Ur#!E>Vjz)X3C=$bnF;3a zoJk%F8PWQ}>!?^Q98KcfuPOw8rfO87tPEU z)}03bPxJ>Q$*_=yi*YQB#B_TFoS(wl%}1uF zWb*ePWMWw+TQ}j6Mi%8;GkW68=8f&3sf$$%Q?wph9)QBV(rtDVi+iF3A9o}?Zyjoc zODqSyzyvyEP-&0x+opjRASaE@DIu=;nqo<1&Z7bG*V3|n$aqG|Zr^-;ih(kxTG zcfTH&QzMl3-788%oJF)hZKcUW#$Tk3&y;Jz*!-+29^!9pRWv8t_gFi%U~F8Rot0U3 z-Jy>+e>IBmvsIIYn_(vt-ZQVMXa~Z(kyzmrD-|h+B7~4mE}PO0BfE9#h1a4@VkIZV2!1(j=ZppvhY6yKqy~IBD;%_UC$f~#PS`VVJ5#>Ltw~1xGw8+4bRP=9@m?h4!z^A6Un4LVjz?UZEti#O ztMx4ij?VeoGU%8cl`v{U3jZvCd8yP(9WSe@ubHBHNLX`ZCf$ZZfsz; z7JySKoQ=X6fN!mKt@}aJN%_EKS1%BzIv%X`NZDrOa0p()@FVxEoRYOTtIl|h)c+1^ z{W>0WpA$HsN7(t()E)lnD-kry@~iVjQ}~$tQI;fp>T2e@2-D@z1wR|2`jCzj`Yw5+ zVu^=aO?-m@6KOP_sc|k7YCKvL_tu zEE-=rSo27~vhw8y^$O(Y-Al%b4r2(5)||f+>(I9aVf`!u2eBu>L&Bt^7+aCm z5`Zbh6n8V3z!=GR7nS{YR=<8FCxFaD9AiXmB6s!lUk74$az(;A7h-&B{<_#OIwfxx zsVT{?1hcjwmi!&w4lHUepc$!BIdY7f8cqI-VKEC4?yjXuU`uP8y#;Nq)h>P{p$Y=plQ?!gDNAdOXP=*;%O_Z5c zn*z5XtxZN1(quW`PCw%H3oKeZnDP{L;-ZQ?xA?KZ6+$Tiy#gj(mVQ;-WZ(fnwYQ3F zpCKKJrI<{0Bulk!<j;5nr@P=B%C-=yq*99_X7>Dz#ICX zMGhawk-J_jy04Gtqa)^Tm+UwYaiUOrOKg%`cs*eH9foMaa;HH~6#xEo=zesym(IaP z-c#--hHv$a*CSrOP%CZqk}o~h$Ss3n+m;}OhL{HDJ3U)VrdPINX3D?X-A`xsm8!@B zVBvuoCYj<}OxF#aVsB|0F)Ygo;E`DG`tS}Aq3`HVV*Qx;pnBbLR@nP&vTuY|0vCH2 zH`Jn$wXWsA{BEplHvpdL1I6(nafoZiVvDog*F!FSvaU0SBN=azzVDmy+tWc7nM8dQit`rw9iy=diu8~RMhWoz}J z1XFwhTF;SYp|D8-;cN~ab~Y-7XDWlA{-cl+yehcplKEcEijHWJ*oF*kEzMMRb~G^o z|4i4}ZsMdg16DTsR3+jEt;ms*%mcb2gCyPK|5#!X&NnL7i7oYfCz6sTj)->!omH!a ztYkdS4|1v*8?AA}(@uaRW?nxsbPW`h~)tIYYVZYA0eCxljCeO7Gn9^ z!5w$_Sx*!%c3&Q`CU{F$cPEzVm`CBW>}n+^J}4%e<>zQs8s$_Hu81DV5gunD9z4JmB5|y7d zbXl}bgZI=h5E)}-kdB|N6uYnxc9)sZqt_V*Wkyw{ApFi#Y5Tj{2iX-95C~xdQdpq; zK|e+oa^fH%(3npJvy{wCycobav4EBIAFh@rt}{10hP0z_M~4U9BS6ZBHQsy26(Kk^ zvv?Px>1uyL{DsKzduRnba#1vZnxNBcG-G-+ClDA^`)nJ+*+>}$Cz|-QUP5)r zBHHw&p@@y+920h{1&U0fVoZ_b_=Hb{;iH=_J}rR2Tuva_xG{ILE)_~+Nw9J4i;pkr zM`?%mtiEus$ByCe^1-Rzqe@z)!%W{kPDC~gSlClV0m^a?vplr5jF zFR?;I=!YI`Al^3p!M4bnN$AS(Yr{wFGQ~Y`A2=@lGFt9+J-#mx$$2e4>#Q&bU?QO$ zG2<_}KaA6kue$%O)1sH>U`#5LKc(Z|ExO5Z958aXVR%`C{%v;vWD@^==`7g#zV5GvIzu zh@!H_(WBU)WylH*9pO*v1zV{97wJUkf>p1Gq!jO%n8H0hPI{%j!$9172J5__MSljd z67D-xx8Iex%vPl6>?HDuMD4W{6Ds(BBhZX9brK~l{T-2F7wCS6K09gI&ujiW$J2X2 zzzB7w1D&hEV2sA;e8S2Pf_Zba7=W*p@^0F@DI%M=HqMKweVCcxj*X^SxLuf7LI4MO zU(fX%aQN`A6XdHUKa~;Yq4q`c>yO*?uNfHi`#zeadjI$7)=!W8uoS~fMbB6ERbmQM zg<<@poJvycI^ohGIVkc+`bDkpioj8`+-jNW5x7#fTg8+}K<1;-X~2b_vsrFb0uz`` zWi!b?8V+i`YE)t_CJfic?TKVR`-DX0xg@+;+-R0j-5?hNjcq|0v%LvY1j0JogrqO4 z@C?@8bvE4N+%5&<_Z4JmFD&slSE1OB?nw$$%K-SN$2MD^xZE)$OWZ!h(c zfSlSdw6^E{VIq}V`6;}PgxC+MDD+$SY6pd3>RqF7UPFvqMG#89TmTV(lxgR_$&Xu) z^t10?hbSJ8N?~zzS!D)(6ZCxhTMO8bk2V&D5mUt*J*KOkDH5}AYe8~i>#30$?c*hI z&p}5MX@t7WTs1$Il^j9)UBGU;r4zQqe=?QKy;Qwq;;;bhP^!n|+B`V0%v{nEGK5Bn zjv)}1N|jmd;MWv_*5-b>uuHKwYM_f2fNV{y4dI$G>1nyxA00o>O_&oq2_M@vZWhtiDgmN0|ALKCxOW%s5!1+DbJX^Goj* z1sJazNO~3{YlX&?nKzL-PbeQ|T#Wi=B1-28vi5q2$93p7mF{%>jDTH+GOj{qWwBu7 z?O!7BHbunjeMFnMvqc>_en;S2vG?(15lJEUdQ9$kxl(p6B?EnXNbI^NaSAcB#}I=* zdaDW^=AUU%e$YWh3Xc_Uf`tkU9@LB6b^o6}lieGDeJW3S-$?+G|J{F(p%DvhZ=j% z29UpUIiV5OP|%~Z{W}D+u3kqrz719yDuq>jO)*~%IB|3=$%Xx$>j1@B;{JaM z2XjV3Pyx1iM3nQitaOKGKK%8Qw$k4}nYIDDnvDfe8cEB=RVCmA{JXi5!G$VF(MyXBwd(e9+~^%S~R;y?G5%Ik-Xt@M^HMKa7{o zxW9Xl&epaVFTw)Pp=!*&{|!wwjGkB`4r+Ylwt7z_M?APs=5b%*FvRAj`lgRMqjF(y zRrVUmpG`BdmqW&F^n?j8ilim93_Qo<>edrlD4}!UY z#M^rWURy6o+J;8{{7TqU&XS30 zQQ-PQ6ZuAYZ+O#L)2Ipr>)82Ylt9;KwT(cIP>H&F@#P zWU??SUS<`?YLNpBaDnRd37>T2#w8=;@a=1cEaHt^w00U8tbzaSCD;pCeb- zTo`!@_7x1|XcYUw>yYxM25d;DWx&!aXg}EY7z!*fjhza-!ssLRi6^dkBVBHXWA?=_ zox3C9eSRwyrG)D}KWIl%Xq#{d@kJ)jG<+iLJt_>UO45GG1jxF>2|_5d%7U6AZ_~mM z%NLZID2=0i?0)mBgHmPStl}Pq3z0lv3QN&blwC`zBtf+r)J0S48B!XxnX4Z z1pp$$0Bz^yiVS>*d&4!%t!FNmSn*V!$e|nf1WAsm#prc0S8Z{aW1TcMy=`g045UwX zPlGtxj&CfzK+{C()${)=7fwG3RVv!Ck|@ij46^vHB}52B^>DH!u~_{T*Vk>0z+zqA zG0*3P0SvWl45GNa~qLy@nwKIKCAd{95xCf3prJt?u z^VrH!>f4=%`^ks?M7W}2KnNJhc}W5=xHU1%%_b(^L*(wG09{ibRzYj_rBsSRs~#LY zYPihU`M0nF2THxWeEL<+y3-+nJqVO8XAvJrh_dLoalQBGwL`=bLR;t6gO0_l#r~RF zQ#r#r>Fg=CNtkZXWYJ87`&gVzI%Pik zX|Y-t)%f?YPY=qJ-1s-n;*}N+=~wQt>nG9QjrKM}#rTBuIwL&?$OLCFf?%8cQZKzI zoo}JG7{{UK&g{{-J@uYA4K`OX9gh$>Ddx4ui?~;*;r9;^4BO^SkIQlnLbY-%$^z^_ ztO5@hZqA}f`$T<}D8YY(;Xs?1QLcLBRJ{&H(Tmwp`|LAx18V0eSn5VG@D0+Vj{VY}nDG7UDM0K?pk23og|;~)T) zwMkwfs3>6shjKCCJS50lrk>hV>6=*nXGC@cyHe1|c0s{wvSCT00jh}Ul6gaX_q$-< zCdCE(q+GP5`sIMhmJCGeVh58%mz1_WrMBHJxNvoe7b!3eG}p8T(RCXfvcWXa6M_mz zlxkX;`G6FJLMzgc_D*bHngGxo6dP5TScpmOcDDlJfII)iX;EAow^k#+N#?HPMVPFN28cDg1JK3$)CM#1jCk=V2VtyUvb0A*A(2WQsLGSG zg$a|;>W;Vzx-Po@6$_A+!99o$Kx1`2LgG`4eaT*&A%iwPDZzJ0$DasFa$*Uw%nh7@ z%OQ>eJ`pPe3aEthD*DV%8n*Ce@ImBmAAr*Pbqw-1^4pEzAN7np3IIF#va&qAL5O%D z1y;)7X071bv_kV4F?mzQn-x{?oInLJAj3I!H69Nqj_j26qW;+|$tRG+6bI1;E=VZC zZSg?;jf&UBaRSwV3R-$_`x(mZi!cLG%<^;|_o^KP))>J0#SRRDkC;-oANc>0^n^AY z&yBtU74QU$PTp3!a}-QN^}-0d$e# za6Qt}L@f-c#Wr&|mikuuE_li2cY;<_Jlr5iJ7wJ$87pas1#))k!vSccI?yfK-!%7A&e%7daFPo@x@3G`Z zBh8<)Am6_^ zE|K@o6=j6oZoKeUNUJ8qjgu4VK?PP9A~P&mtBFdM0anY!45Y^wp`kOj zOC!TBKMVfrBD{7!8mEq(Z+LX`ilXsM0I4L&a~7Sm5t9dbM8i4scY{g%u~sQq(nZj@ zxg%w__tfv_iXqkI#-qwHi|apa2DJImeSNeman$^N0QrBV^j3&X#G~kKru+JKpGYk9J6Y z^W{jAe=(Y3wT^Z0fS&{O(BM1hhjr2NZ$`lb7vW+b=JBo6SlWTXDx$KZt=6vjkkN&C zNM`crle{2^;B}$SjmOU-ScFmtA%8K`S2sXM}MCY z_o5vND~XiC!1xyMey4`}+Rk&+m%-gU^)t{!84S>?ORW0#R@e$B#$e6oz-9$3Y&6;y zp9#xD6CPCJ&XiVAZW%>aSoUYmeoUA~SHX&QX1x*E4R17E+T8yy45-b;s2_n{gGGA} zf9)qvg%3|)2n_5rPggS#V3eNDyWmz5)uU)|PgzX4Y`9$vi_1l#2hS>6J~3Gk+>o~* z+%h-+-W&|r3DD>6j$<)hQ@M;L#`sm{neuRn@;}gW!&s`;QAR8b{|o45l2r;vY}y2V zHgEAkb{cv=5^X^3bifQKh%(hHtoS}!G-cFc;)*fSeQkx8^K-}J&%)N@s*!#(PGT%@ zDA_~2-)zdT>oV!~eyNPuCMx&Zr~rYrwzkQS=k99X7|f!jK( zDr`vhPRv};{q_q+RfKm8gULrcf>yjD4-E(qH;|&&hIc1>-)**n&h7?UtQqC;+l$C%KsxM#{I(U=1p*SAD zf)gjakn1SZ@|lbE517xXtm6{KzsG~>BMO`O2Xm;HLGD+L%K^L9z@^hI7q5E~m-pPFtSGb4(d)11R`oGcYjft<<}nF{Lf7)9 zL_n4BJ{ePe;C%{>Z-CHH9? z6fUIPowO~dpsxi9mkEG+ika0A{bZG81th4>JCfFFVnTP4_V(1W3}BO0g-Wr+>ChDr zRT(3^>rlNgr%wXSRDNRAAF!62NY)?6SK*rU&JV2A1;{=Th>P!7nWa-i_Hn|69uWL z3M_2go986F}+-L0F zo5qfT4BIST5MbrJlcLr zl5xi1v-y-wfvv!kO!0Lj zF7A60{Ucsg>xa+gb>$sMR=A}SLWY}QKSRe|$_i2kvZ>hvI4ywtm?L{tpn3gilNoQ1 zxciVre+$m=GxUCrYiGR5d&VSDciMwX;$mLF2s^Aj6B(=|d&M~;yx%#`SlJ7$yPOAU zTI{LF^kW%(p)u-T)oJM=laTl~hgX#r_aA{6G^f0(a$se)uEZse!9)AAb)@+j&PZB5 z_2NR!#PJ@~x}b*Rd8A*^+G~{T8z(SGWjcy<;x=OWyVO{{ex(l?=#KKSs8D~L#xOX9 ztObl&!35kd2ktF>bpZ+UlVKGBBN2wQjOJT@SSWAPa>C~qTSN5Qv@NBxF^j(-QRWNx2mD3C}623=`b zMfiyxPHF2lMCd7Sc~2qW$W-DAM@!b@{s7$tDvlCSNUOFe#&qS;W6yw@ z5-?&wx*oJtz5oixvKRbae>8y7Dlc4QjrTpZie4!TrEdRT*Qb{~nqe2BQ59r;eYG2_ z$yWFg_qz`|RmWR%UZ=jUyp*&oUemuHad6O2b*rDL5{3OhfO*6BCrGYKNcoA9|wWwp(gTy zqqnS&r@3}3h4qvCg6Tf+h0XpZNXDaQC?71Sy$@)FM1(x$&@2}ic{$f}SkJimFrjiF zHb*9xZ68cP2kOIN|xR?}^ZI|O%k*A{nocPQ@e z?i33WT#7psio1JoDeh39cyTD!o4()u0Xa{eb7uDJC40@?5Cn6vDI%>-(#{{KfXOq> z4vpI5737xx8J3)>V=QPyud8G%5OB-%x1ej_MDe$=O^};MR>NaQ5_m$2%_q%fi`gIM zp^A((=eBuF#Byk%4qHD^yXtPD8rMveZ9=%xf+B&4h^zlG{#1WUFc2K(#MNFG zC{ycQ34KOtS@$HAjAaBU)DY*6A|d4Ns|wr1#M}Iym@canB^v}26jFPoeRBRs4u%D^ z7s?y#1vWt_Jmc0RY25U7Xct3>06k1=a{)k0HZqH%v()FWNPvYyOyNXw`9npK_Vc{p z%R(aR7{(!M$K=zoYhgKI>fQ1)+vi3xjc?AX=4MAi(AYR?qMw^h%?tfd<$tXI-bMZ& z%x}SFc%3nFy}_~Vmu4pFtQteqlljdh90OM_WDup%ou3DzPS(1GtDg6CY&!Q)jC}hC z*Yt6YC~OaiJS7J0#_sE2IErzD@a-`5`)6TmdMu5+j*SV(Ie3rB6%-28_4L zwoEm!79OPgi|&6JEKbn;5ksdG=4!=fE>F-aVutae!{1%(uTttFa3%0PRXzlgNT|2*!V!lM2s;yitQZiz z+rLJwj(?Uba2EH)6uq>wG({=YtC{^k`h-@@v+=r?Yv<4MZ;OBm#dQ9$q(p>gyeA1D zVlvS|yOx?*n=#<0l7|!(?K;D!Gvu7%=FBN(SvIsmrskp-CMuNHyN;d4l50G&iFRrdzh+{H%}Q zDSzgyE?Pv6cSrc-?;V2WlWNze~uK8jb!`RN~#?(kzSJj zXWWX3{1MZV>~mkSK4rUk{-+#L$%xx5UNhLCGH{q8UwGPovBO%UBFK~p`3l(%n|^yL zR)_`JF2_=>vRaYbOi(K%#Ie#iB?|(wuNgq|sAjs-m>oIRR*!%#Np%D(Y2ff>WedA} z;$g)u1xV+|zLZS6Go{!=3dPN`j}nCsOtc(1T=5m0)!6*IXvGr1@6G4q_zoYNW}!a^+~GVS2MfPct0|c%5DSq zV2x5ArHMo^#_(iZp&@1n!Pn8#ppAm@eI@_lvp-!Mb`^HmxsaV^u_W;*-RMe_VfwE% zG0i|D$a@$ux2@l5pl4(fg*(2`+U$1aW{0u{GNe>K^uT4#sVsZXkEqbClX=@J1LLcG z%M7VHqhCurxo6^KOGoL^61?!zt&)+F7B0YDVB8of+8S0eSVvo})Eq;drrV*2yjV5m zK36>Y2%N7eQOG|4M`9e^3mqYw2$51J{)(2kK&vPOb|63i)?h5?eUq3 zfJSM}r%n7kz2wAaU%(dSB2;IAGDYt)hOcx?>CgAw7h?o$@Nm~Y~ldKSF zmH2xhOlD&benAB_F*U0*x1U%m?}Ib2QG+aU$~FaLLyPmUGUZ1ju&^PIZXB+S_#8)q z?odddhD`S#L*?ls#=(O2tpJ)8JmOg<_cGC!Z*e*lPHv2YWCf)14B6;h0vpOkRX5OW z_RGq`vr^)Gul@}-msA~Uyui5pF%?X+&_hsV|1BVM_(1letR3XdW6^n}`MPRs8ALPw zT;Jc#GmadD%(FYgRGU&wfQUJv!RPLaGza~S$o;VJidF2@)A7r4D-IXQB9j+zC~c|& zLu+o-MU|^O`>$NuECBhakH@JS8|!mZ!k~6KmNmpNxgCoEO=lSRdaT}tN{0O_Sr2jL zp!!kE6m~ibpKvSo+h;YA%Di6(DE#1ebM+q-k@*S7oR4%G-6rCrIROK@>(7oyqF9F- zyS+?aDgiwx0Dehu_KJU|ROG-YM0PEb6*R~h{|GS>w<}(G*Ua-tg|-XdO)2&v#xSd7 zilKj-)obDrU(x3~n1zldR&hl-+rDbq~?nqeWfC1@AJlGVm zGmm(K)->)6X6acUPCnAxZCw3>_2T^k0?)9-g%@VPlacPI=?l8BsVcDzAs0N{O5h2d(2eoIhRUXtxV%&zYh+Z>@nOhDMT+dRy+ur3rv^@DMkvl4li8r z|9W_ms&ctrAEhY~I0q4!s{W$es{U|)bUVcdEYr3N_@4H()_qmjqPZM=;W#TXIT}}O zjq$$lsqg-kNS83L*>7?wPhq6O?lP-+pesUT4gCB0SZ>h_cnm12rU~dIc<;}~%WGD) z%gt)9rl#Y3IxHHZSU<=C6e)pKkNYTVcdaH%_Eu?|NuhYh-_nykL|^5YH=`c?jzqa0 zt625kCnca51-NGj7CiRG?b<=U7MG^PS{P5%n(wj^NxKj1p zK-z0}*@qTShu33Y025sg?_XprW9&H97n*P(O^WP*E|$1{@{ue9juJ#} z#F21U#Koikvo#`n7P1&%*b_Q3IVNmgC9(1oUEgkk^Fv!{4GZ2`tp6{Zc3t5hw3 zIm^O4RaTZ?5%Y?nJ(LZ7uCKSB1E~=6q)!O1=Aq2Iq$K&%Z>cT48`ce)cjj)Cf)Bvh zFhSisj#E-WtB@=-e0HJHH5x^TRv=Z1ktdWOiWoCka9*0XSS9Acj7)W>kb~glAY+L8 z*J@w5@WbV^f>tzw1vX2Y0e+_So#WjDi`TaXXA@^{Jg<~{Cr_#$irmmSZ7k3X-4CLW ze%(TYZkm$LElLG356{Lne7%^!;gqS7O$=qjB6DFov)B3_?&EhLP=zbjQ4*+w?=B#e zziV)+h-524)z?%E^~q!5yd(P+?CB_L!3T`>{n?GOV3Y~6>swuD*E}CRDpHkgyAFSs z0FKKz!tJXEI^C02IMBRsq^RFunMUDtpdZ(|#FperPS2LB7QPM~^Udi#+C<)wHBp`$ z^LkMJ@efS`b<5>{yuO5XWV{|Y6EEB_@mRM>oJJF;@$9x#AFdEfy}-ij{7y##^%W@n z?X!tMhThyAsH&wck^W~UF3HYqu&2<^$c)IJ&&XV|C`&hi4>ms2N^-qq<3&wS^IScJ zbcG!#(#61(4W;4#D$mwjx~%sR6@1ZM3Yk!IHy)b>#c94SR?f;wq!5Z_3jPgCw!6&L z88gZW6PdCYyiqDoUtO>QjwW2+iqR}LTFObhNinOLEgQsvM>K3Mv()Q{=nB#GcaMkl zFMgFviBOJ7-MwP-;p&2f@Uz4Nuj{9c86BGDc=tdeE^e8Th2*4hZ~2ATJ+62`BhI2& zG3_pSA8*OCRUY|%tiAU)Kjwj4Ggv*0Z%iSx1}$LGE6LExLf7N5dH@AQ<%r%)@K4|b z7yL5%MaGwBk8&1VLDG#GFg=(T3iExiAu#E7ex3r}iIwdp@{b~(Ai;7YJ`Nki=+GYG zC==CRJgsPULruM^ZP3n<*Vqb~S(A!y|BllUS|K(cOkzIjpTU;$7wTh?^g99u!cxEV zcbjeKW^G7vv*B%|A78I7L*aE(-}7{Ur=2Pvy`vZKp!>^8S@;DH8cco znWPGL(KfgqldtN{7mi&kLLhkotVVxe97LjWO<6|H%Y+VSSuvKkxiK_Q!Y>Lg4WpvQ zWGL3JpZO?JeC_%87jVnW{a5|Tb;n5;!%ThkbJpK}OpfJ`KW+i9qgN0-=b7%7)U0OA zt`w1$d{y?#9zMgUr}Y{#L39WER@OX&r4ETtuUiSbeE z?fF198Y4@_9_uF`;BEs4sriPChtkvkd(963j!-WQ1`DbKqj+vMeXBdZVtAn9lUy#n z*L-KWKHj~9ZRC5~0@?&<5do?VCVQZU-ZQQxBb=9?Q{TvRjU1(Wp_CfWO_m_#UQ3*P z!N?Xp)W6x5{VV~TVy=S0f^g}Lgknar3g`=h+`FUu5$eakUI#Nr(qALom5E}HqbZ!E zMFmJusEXo8c!^EK*Q<8|U&dGsve!U^Ir$xuvths9@<2lt6sEe&G}n0ll61>k~4ilt{j zJzF=4R^?*IniL=jqbd~qaxt}LwIP2P-~Vw|R*T-@Uk%b#v3W)~$M~;Lv>+E^W2#nf zNX5f2%NpT}^m^%eTTiln|6c2-ckGdb^5e_j7@UTo*_K%vi1k$(xs6{u1y*BfF=8q% z3xT!Q1U5bGxxV$E8K~C>MXp(sQ<6Gui&e$QH!<{KK5kQ@*LO2Z7C>mka0wDev0%-b z0_H-@y5EUY@hOk$a+<#o?n?(mPnXK=4I^lo;g2c4Kwg9y+TfhOo$`O=qQOqKHqPwU-&h8a3E|Bsbm*(_SxU|j- ztvj6za+zCm_<81+t}MKh2LifO^8X(m;$2?)^pW1!B0pT2&rPnPQ`4<7P*PIiUgy_N zI~otPJ<5vb@N(ftZ ztnR(ThxC(KZlhmPEPAF7HyH}Pl4h%iE zur87}DILFdJ>S8>nPqC29crk=X6?Y+DzoAN9k`h(3N2?pS8BlhjL4h(Bl7x>ND;qM zD|wmF=75}fA7rJaYoy-GvOU#6Kko0&0 zo{mFhW{^)Umu!X)(wtMfesAb2n%g2YKtD8wEIKhtWFZI^Ygn8H8Llh@3@eQx+SJp z-jWR z)$RD$i&8HRm>3Kyi)H497o~&z4&PEH=_TL%Zqgn&(T&#W0v7Q-4HaUWIxAie-@#rP zZ||6MBomK16}miKv>6OrH8eo2;^CxJ9BA3jhpys=)2J#O<}IbU<^Kb5_TORuQ5He; z*)V`8!}jhDRpK*+szHii%}1~uR0Xu6oM|au7co?T7vuBDNK1T0x!Syu1SuVf+!R{b zw^I(P*k^#y8b0cBHcZtp;i9FWvklWOo0u=^L?4hKML)e|JOV_h%+d6P@2kEHja^E?b1nF|YyV|6?y+53mivUX}P%b6;IB9Nz3IVvi zjAwl=4D68cjHyLrEKYc!dc{u$#dD7oyI=@+ud~!+Z#;NzSqqf%Lwu~-IT<@hh-0+P zOooeK9@#|0e-wIgnteb(hG2Y!xrGOwo>cj)igc7lVa2x!2mfiuWFzePhBl(+9fgV3 z#IsX|BpHlfI9bq76HN}DBjy(u`>T*gt7k}kk#RIQzT&Z#oKsWsyn^^&-Z&YZ5YRbe z1!!MEy1SrSvvw~{RzMU0Q)Q^{aPmW|tN)=D{@+xXQfqwoO1o(zfgur*B75sc z_+oW0-7nRd-PR2eVYQu|LMhUvqvj|J9-lmgGGfoh-ZdQ%9ks{vEx`0)gEb>m040mZ^vND;BoKnOP60W=mRg{5` zMRLmR{D4JDBztxL6c8rGJ*9`&_?%z|IB%(P3t!a*m3exaZtw;;a$_uHArR6RjHD}B zkkRNKtFnay_Qa#cr40t)PX0=EJ=l`_Uho`=@5>#k7tH&r^$a8hLnP5Atf=Nyh<@S7 zdlj6Pokr2jkZGG9L)`@KlP=Ub7 z*-^_Fl*)r|8rpwwSZ)A;@vk`*MAA$2G+dGCZ)byNPbi-z8*SBOqb@k`qX?>>mE){5 zWWH5PFNOqpju^iMYEC+TWlSCwHWql6aMnXZ&YmL25JSaV5ITs7T-KKI$kCp2H@)rE<jWx>*~DIDUJ!) zM&f(59sn6uD&H~JL6V$e2FRI2sgM+YkRS=B?TR5)^%2ByO{Q0(^jHzCR{#adXX4{n zNpi}s=J(=z8svoD(q-{qs+vP!$+^$wWAFPPc6DC#v~8?9sQvzz$uUwinHX^2d~80o zx_Yi=aB6R5xd7$Wp?xW7!gX`xB$D=JJyM9crYIF9eRhBCIwFXUGRiE*X!2XLUQwM8cRI3kYjZ2&eSs-YT(RsTjhSx z|3?u5Nb$C8KK;R=$+4c0eyrlC)PViY7l?^2zcV8dxpX8=K2{FztI+HEe5^LN(xY=S z^|s_A72!_a`h&SW_N@PJ`>Wfu_l){`z8l~u4t%yLMXLM1(jd9G%qy7XmN2PVkICQH za<$0sr6n20XdmF?r~HytvXdA26i%W~`T*^pm_bPy+i!=~uM28l`7&5Sqh62jb}l{> zQGd)P_Mj1TycP|&m!z zN_(7XhE|kWqbzHwC&yZ6Q1hgnN(-qd8*-E3-`6}gnaeG>O+z-3_(%})3e$g9%1_0# zl%tUfpC5dUToXU#O<_2xlu8RzRP~!k!`5T76SIgQ@Gvcyp}#i_^QAwvbI)vGN9BBT_t7N6H)^az4xT-kda&2IWSH9cX~LfpdQmz{@C1YSuY(C* zOLnQ*VwSt*LosBSTjno_W|qthbE}FGdQ_eMN~JuGZQlg2!@`a@mGabz!d-T)9Byz@ zuk=P81*5j%?6cdP3akA`_>NmYB6SpW5-ov!U&6fix8VLeM<~|O+^vm|$ zeD)x+Vs5j$o;t1j?MSjTK2SycKC0|Py9uY*{1>hJoF(7ft$Y!RnBXt`Wt@|p3g*wY zhax%Gl*$0lnTFr#k9d?RN51jazh#ci9N@wN-G^BwC`%xBZHyyI-o|tdCiylmnQ+0u zVWukibz`~vqZ$vA4DI}*(2!kwO*|;tZ-d>)l_VZHSMr2#^lmu&XREvP_DZI=Y3VOP zE?|j~J(=fq1Z>x;pRi;s85;e9j&K@3=XEpXQ)RzAv(Ss^N~mOd#ZP)rVNjt30xLey zPa@`d$9}&Imo8ARqC))xFlB2n?MoF@fhU>?KJf-Q-5q%9BZ5fSq%yud!6@|z$bjaj8NajFJm@0tJ=OgOJ>&=158`<@f%=Xm&3?(gAN z5x5M484EgHarz%9n>at4yDMPgKxDKtf2unn!=r+8Sr9Jm4xoy$oT$NNgyLp~*BKTFQ(sYP9O- z6R|=DsFdlE*~J)esdIj{WM^=*N4jF*W+>)}aB|AE@S~sL?$XwUYfcE>$)lF#3I1~{ zohm0%P|yplBuLzN6vo*?f$=Ki3SjD7yCFD*`I;JPrVy;tQ<`Dp2rhR28T48!7cYjY zY{?)Ru9U%HcD739V0I`9{VmR%A_?`d3mJgkM6FLB8v?^_m|Bq)xlCv6r%O2Jh40uH zNGF~kFD!$C{A7l^gqZxR`G93_TkcF1*B&9qsRJ_cw%u7CgHborPaq@l(7RFIvO}ax zMpJ)x47DWGOVf*7U(&MBi2O^Knh4_O!AbRnWHT{oX!_&Zwg!@w+51;=*5jcVwRhcA zO*ZiLQ(?|pb?3sfvYoj3ow*k-Ei}FqbHZ5k^|8O1KddT*!&U^A!~!PLLw{KGz(H;Q zYm>3QuO;E{jMN|x%AemPgaL)2i4>8WvM><%$66=vk}8Cp2b#&}d4jI-Kl=1SE897R zWn#32)T7p1&+bu^i%d!+)~@$jb$$EQ{$*s)j=|BP5ibjEoK$i%jhYU!E^7AOkO7%? zc#^c3)4eD-KBKlEZzDQkPP|$>YgTe6cE6e-$y!i|zDrBo+q^g7=Vw{a zl4+&e=I%`3@&N-dK)_m{dNwPg z-$@*o?45B|UwwM1nNEt;JAgE4FyL}SJZke-VjUZ`0?o8_H0u{!9R(U!Oxb=?iodJh zVIv_|qm#Vn?fiQkaRd4mp;0#5UoVks+k2a|8aq~uG2URB+w@#VrPej`TPgpb2%sgf znnz&`i{!{^mp zG%coYx#~JH!z2)`^$CPPh(8R+)s?A}1x>OxQtuC>)nOxeMJL8*yU2%a!8` z&Ct14);-&l?>lfgGW8L%JV@lvduk`K8YuT#K!o65#ou2STo_PMYbU#Z^mqwlvNVvQ zPF!O*j-s~wuFX}9XC}m|A~=xKJd%AJ23vyr(_zM(c%d&*^UYn+^G4w*dB6A!80cAG zo(<6QV8E4w+~mu&5QS+20n**CBRd%T^$!wifSCIJW-OP_p}9(sv50<l9>^ZT|v@xwTdZmBJv>2K)0egs{xlVh-8U8@o`QR z>``Cnc_Mlkz=4s;;`Noi!8TdDAC*9P?x|!?cw;m#HQ^W(Gw=xoYGB*&1jG>*qCo413#` z?PRLsx(C&Ph^0Xs7ecKN{Nr4Ybd26F0f-!HzsGJAE6PQ&SQnipBZuQVlUK=%AZOHs zp>6~Z@r`uxIn|DX6Pj+tOQ}LusrNf0Bn)Wtw+LeM4^&Tj0NNu47hE)bCpXz3@F<>Q@C=#3@?e&V_M(Xd1NLm`d^3pqP4Fu`Mm z8EWsl?YyUZVvE!l{O<#rsKsJKD&q^e+p43Zx$s2RACb){76s;Ji{GDvCtS5A^YT`h zIqf248r9eK4Og(;B+p`%Hn@>w}VrZm2L;0+{dg2W2fFt^3eY# zz*7Dgdit`a%FLJ|wdC0h{&Se_Dmrp$inL@_-DMA-XFfLUMJda$M1@_k6kb$$!A7-q zt42{hA6M2kllau*xUsITSx17WFU6@Vzi{=uoYd-7;e9o|B`eYq#=`&LC1iIfj%61| zW@UNXQhCNb*KO66+nm0I==;Y;L&hM_9E*Ond*6MAT}R}iz2j%?QIXi>KF6@cP$0BK z?N}p}3aUvb$p(*lZz&9mCI7Wt*3T*dq4;L*508++bjtE{1bG@wdt$7kz3QRT%u>pG zFKG0AaY&n`7umEGWg|$U0)u$|~@YXo9vK=V_$bgA@yaqo(YD|iDp!i{?e|$znl8U7DOEAtF>qXm0 zrjxv!0Y6A8UOF^UJH;?y%pcyd-`JGdRv8wDH0Cz#W~5@&{zpBPp}6+Ny1AK)@exKSuA0knq=$k*cxH>EqKTrmo&1!zYi~OBAg~S zS{j%|wo76)tX4S7F%HOy{@@{A@m}=vjKDU)oYkQIX5r8jQEgI%6_MSh*Cc&BImw`A zPEWy*b|Xu7f*M=W%sECP&;$v=XN@>euB9Jx>g7Rp^bE=ROgTlZ1mqxj7E$Y}b|HY_ z&gsvQMElXnS|K0J4Ih>fQI3WfBvZb*-AQKDw!-$PK>p{P3po5Eqj-Y(S911kmSzD- zQ07!Ff_1V&-eCenXs;j`jzZkxb-OSw9Dvw^hV1SwO_`8}xY9LBqovfvA9H4(D2E_- z4hPx2PsyD}KLlTI?aPX6?7zgj*VlIGOi-svFkJq{=uqxK23$7Q6hxf;|E`OiE5GV_`sLSj4hx)MLqHf6{8>FpXYE3y*RZU9!etV%c2C zU03m`%b`q=Yn}ka+Gz5NZ>0%P^CIHsTv8 zf=M?w)o=G(-MPMECE`rgqR${)WE{H?%sky*YR#=^IHp#COc*7<$ zL5U5s(fi?>L3W~&75T9do^l%VUU?rA9jo95vw8&dXu7 zcP+GHCCFUYCmA3&L+j)0;2%4Hn4lo1@U5$PirQOt`K##KgW1Mvn`EQ;XU4?WEq|!I z7^c+A?~yOp%eIY_km9qZFNCD`F2=ScVQCT^FCtv@Qv<E_h+k_RBko>)CZ9uMm8c)`{slQF!L45-c-(N|65TvRDDr7IN|R z-Z2nF0!iMmD|$YbHEe(JqMn*DkWU;Oa&dZDfG%c+s%Ub>=r%afB^fjQJGB4;0U()r_=dntHuHVva5C?rh15`k^`w z84kA9;K=SFqoxJ<6SaKl08F}C>}ws!^oPLnBM6L8AeszgMwg7psionS#OfK+u3C>J zc;4{Xqwr>xYDrK3qQ#@OJ~}+O>Uo`?s~DL>MZ@}2B0ihhv#Y01m?)7zT!}IgN$rKN zPJ*X}AxM?y1C$F(fOPZg`bmm=Y>gW}VKQl_u=1?)xmc#4`!VhLM9Ch=$?4kUv~x0C)UBnmeAGFq6Fno}RG zueM;o9jRj`3N}!=39DgT+iyRiAh#au-MwF%Usc=m=szD*QyqjKzb>0FpQ!h8yBhI6 zsPj-WC-f{)I#U)_nb4#j93qi_jmHb3u+y4y4wFG8tGHf^23AP(0@SsV( z$|?Ke(`F^}ntIhU^u(BLpZn{GqwLTf0)1B96b7WwL(QCgZC6MnQP_t2S`=iq(Tiu# z4Tw+_Udw$}=8vqx9wWI>B*$VBYQ^>V0ya#BvM^*(S-As(<_1Vjuqw|R(tlSj$cD!n zLG_{E6Kaz6zy?tB$kYtezBUnk2@uMoujk+sgweWu{-CztQ^&>p*ezyN$EEm&Q%HN( zKI#3LM_(O@G)UFR^mZA}%tq=@+E0FKxrMO3UmF8e-a0kkORVuGtT*I*LUckr803oA7^zvwcVQpehrHuMF#>BONc9P(pAP*hLt# z7|urpHhPI%Nv@;@@JMa_f&?>7734JihVKt$N0Rp>4oZ}S@`05JT!VTscJ!e=1ILLK@%*J86DOJI=-64OnF73j{IDAFcm zIRexygWj!GJD9`cba%f_#%QBJ`mxgLX>N>^G(lD5VGj4#vkto1WpclMU~%XFxsc*! ziwVkW!vK6+nWO}722mV6b?L*q=p~o!f$f1m*QXrc!^Yi~N8L773^OhKOh;?GQj_O# za>A^?%(a$5J6Q=6&GPb}M}i7Qv_lz;T0fYW)XT68Kx!PGxWDBhw*V6Wwx#f`o;RHO zCK~!8Ku$fbC;v5T52O6t;Hl!bUdeuDB-Drz^wsi`7%qZ(nmbt}&zxNAxN}l{t2l1!FDyIQxMLZSqHPR1yaT&xf)f&75 ze+eFlY>89Jk*M5SqwQ5><`!56W%vu96Rf+MVf3@PtrK;v)M>*5mCOD38D%Cp^S*I@ zPUQc-NHcyc3u@I2N8D)>YD<5!9S*h>EI8l#h5xJ|$A>O~;SZx+pU|Tjx{C*_m7e(V z8(O)ncyN)?|0jm1!HKL7yvt4F#Zm)77k>-c>skZN6**DBl|PFam|=SPI3I);V6g6e zZql6oVk@*ntM^VtxeFmVjiIVix2;-#OGJ@JD8=TR19Y>URvXx?f_z5yiM+HZi^$?? z2%A8MO!thlYZq3{S;}@8jWL6=ioxwpx3%O6umYqSvroxM&bL>5t%RP2gh?_>06gxb zV7@OdusqQpqrY`vUNwI7i<399IkG2?{V^+{W@&Cb;Y}Xbq~}Ic#FY=*Y}!zwHhp5f zw1Owt4FgxG80`85q-79$SsC#}Lt(DH&(Lk2iMbOOnYQtKXrPxXvpyFF8e8 zxn%SWttSV7^OK+hwjPp1nN4 zekhsD$ty^WA?uNmk1Z~;XtroIoNQ`uI;dr!@^NRT!ot}_VahG!;K$cP7{=dlRqGQ$ zJlVe%EPU3vi8aY-i5KTf?4_7}A5h0$!=j2byW|SC%yR@_4MS=VWPhHNosIs^J@ee;&_V;wdVG6B9YP&HW3lq@r1`+Rvku7(X!HUR3lXH{i@) zEzhE%@kgCX0oq|=&I2{wvqF$3-oZJZlT4jh1^1)b*I);)ZY7BW)ymQnEVQ`r# z`Q7`E7VF7TbaOLSeC*IO<$3wiH7B*-Vxd?Xc^AI)smCi!+3lEa=+c$`NYj3qboE^l z$cqJN<(TVC&bUZ5II@s|qgAPSEx7QXP4-~DT z`h4J3qFyQC@Hw?f<&DvHVq9g7ksW@YeWw2?DL7fS>4NG!I`uvs{$$Z5%yJOA?V>(> z#u04EM$)pY@;dN4L$yJuLVi{Sk5(EnZc_xdVeRYh+zy?xj6zoYsmmBnGqMLvpEjPWMFFxN-d&)_woxyrh|x{n}0TBTb=` z9|1;2-m-15%$?6}kNRkGGJ|d8Zi-H!H=B*PGtt9aYtW&XfS0F~?YMXLkryou$+DXq zKb1D@t3z^Isb=VLB3qfoL(4O;^b^ZqwIq!!IdU^h+gfb-3P+y7=lw9o7M1wfA8r@% zL=W4x8q;z-jl+ZMPvlU=J2U8s!bl6cSf!er5^-`OdHSt+@_<|W%wi&7rLJT;GUuBA^6RDvLH#2C^u%{f>;(*H00YWgO;lvX|T;jJQ6fQkH zD#>gX9voGOKxN8iU@%YJL)L{fRmTJ*J&Kd?yo*o&z8kxc;HVG7H_#t0@lR?FZ`+JM+kg=J36 z&DD5vD(SHNn3X)C6t3l1C4?~KA@ojmtw_b zt1Mb$qrb1os&xW0)sAD5 z&36sKBPWNx+7A~IPTxE}b1u->fjjcn`GUcb$X4Pc)S(HYiTsGpk6c0U6sD-*FUU>*m8RS_@@O+XI~K z^Zd@jW!H$AucM0imYm26z`S`ZNb?4dr8t>qoP10f01lm4uAS9+wg6AzDpK=_cVjts zqB>P47S0rU2CsXtO~W^l@{zGnPYQQoP8+{lD#Y8Jj7o;Zz&ZSU8LbeiDKmUfHPU|B zcR|Y5Z#hQE+&<;K2o@hF)pQ{Lb<{yBb***C6{DccN0ba zsZ}_=!la?X@hm&vX-a=4(5iE@1g?>Y=gotS8L%0;_x{JWjO?qv6b88rFy7IzSYE05 z?nXWe*^Z#!FZw3_)Lc#gaQIJXzowOGX>IUprVtRaZZukqcK8&{Iy0!oC>{^J8)PR9 zj1V=MNcttsubGTfeX8Jdmg7fa5lFxps`}fHLrR%(8F%qu<*6lqNq2cgzDPnX1! zRhHC~|$`Ux+fvOEXFWTZxAAIq03rfkWkY4KbxcQlsWg|HLaB^e_HMSZI5U6!PlgEue5fY%uB810W^%#>bD$P}?k068~HZUsSfEd;2D zPsEccZT|M48m>%-b?MLYV zFUrq}WXMv49w{0*^mW9ys2n)J)Y;7Mf;M0t+dpkJW836BM-IY>)Raj!8|v#{KpD?< z=s)#YIK^k=fEs zB2^GVN=hlEaON=B<8oSH6QxT2>`jPfqc;SDs&$MwIZP=u)5n+D;SA!Uf)>}X%V^&`$$o^2OM#bdz1Z~Vz9wqbw4i_Q1$cjBMOztsR{dtQbsA_k-mUnV=jfc+ zi!d1rq7S)_?cA_nRzXzXqC2D;p;OLxM?s%XrFP%yk*IHi^Ao-&n#*wwjFQa6aCW~5 z%+_MYY`m>S;{yTAz2eZj#VrSG~{^G*Li-Shb_$9MpM#@E#vOU^Nq^dSSd8A*3fO zcbC>?Fv3)(0w6;!zN~-K^B|fsHmDE@n-he^IT}HH{XO#QyFEb{y_N3HKf+VK|9z~r zBOZH%nQd29w4B8=Bl7ni1-CU7_`JEICJ>fq))i?Uh|kl73-ifvdgiG~oNt-sd5Qdw zqu?h448w~&9G!RSIgl>UMPq4u(`7Shj3T5~JQ(qua~1+ALlA>KUzmO{tXj(Ii^r9d zS>Qp-S|qp5(^HCL8b%GU{{*f?OtVR9X&gxG%-9TBh#zkx1)k}7>ff`hSujIk*{T4o z=xV>|E%08BS-=G3`NzwS|6{`WgssQe70wndBBf0NobkH5x^E@_exQz}tg9V($LA`> zGHH?dY(FQV#FN3;!Y=nzyI8JS`lqXn;s0nl$MCwMtqV71W800B6EwDM+iuLpHX5_B zZQE*W+l?Fd+r9UGKl5ijC;Obe)?8zb@lHy+^Fv!6ovvZ+5|GJE^hP1bK|Xz!W))B{ z{#kJ%cIKvu93IZTGV0?}SI=+?z_u9uWMCOqU|(U#;Uqu`c4*4AA3ya@9m<_R-^VQM z*~5?M2+ko@Yj<594}jeJ`aBvSg&y%AH^!qNuYQ1)sFas~^Cd4ire$PUbX=g= z$LEC#CuE(9!rjun3Ydl_g*L`k ztI|t;u?)0korDRW+0@}d^l2Ve4gK$MJqIh)APJO898D>WsV-&cKQMyI*?X8 zBC>%A4YeNR897GN;pt+LLqdMp+F;_s=?=&$1K*HBXZGm8^ZPqXkDex;1M9`$rVAak zVtlNJgvu}YNpFUiYNS{$YLh=j(1S<1F}qY)_vxBKo340XMr)V>u-`ICSeUQ(J(ifr zLP89P_X8Eb(!lFX@<+waRQwew!Z+73Pf70tL6NoN_G0;sxgPo3fwDNA`g{Dkx@B>a z5!}AXimmSbV#WNSL-0RN|Mg6N6`x^ylfz6Guk3X`yF7|zlq-`2GP>R&gB^K75V}Yc zLPQ z-kJL|ZR{Bvu7%1)%i?4DJuobMd`Y4dC39Ehj8@V)<1pJv$&-A?%>HgcK|(IP>#!eg z3u+A|siZd>__W$5u|o8dj{H!tKiPTQlB*&o6Ck7EcZCaD7%g7tVKZ+XWszRHDhG+5 z>8maz$iPqt2HIHF95HubRgx{~cAjE-Y#9KNBFNubq5X9O3LXnQhUldp6$O2@PtKcE+qcG-{4K;w5!JoLC z9L(@Nxlro`vD!}PQo|9)%1n}0mW+U9sRJZdorvAm+ItEr-ume6Pgx8efM2g)aYrP^ zgoq|ZL_4+=5bSG$KmwIS%COELwPNIt)&tp#dnTkw>p#suQg;RJtZqmFhH$iIFO$#b>& z`I}-D(H3*PalfgiBpNGNf=5qnc?Tco!_ePJy$f3lAw%F&OxacNnQV4g;P!)?s;W|w z49SRMV-B?Jh?&ckyHdh=?@OlqA5-W~ZTz;!0=bZi5R=62>up%|$d8B}>edOBweOj% z2j3PA*o-&?!OI+(AD0eA5qrZ$Bu2x>0%AuS)sUsED8YGhMB@gCpH<_)qE_D^T_=ZARcLZQHz}z!W#c~;CmYOb{!g&-99^D z(?g~q98H#vgrnDSd|5nNz(hxJ&IE-IMi8FT3FGTlZ}Ajo!HS!4USb6|YCe^~SOZ%H zy3_&<+6|DGqRjD!$X`5lz^g!4A`_s>R6)!s%!Fp&Qfs^izCq5sWGdDZV({P<0~N9Q zF9POo=u|_~4=_yNp#nvM^1}0M`iO<-nUj^zu(cxI14~^+g!9s26nl&)A1hnE7#GR$ z*Ba>}5y?nKJ8@#_I6P3C$w#!%{!RwNdbObG=rEDquuqOHD*X=Qf(IZQJ2|rm+_0SX zl>c5L;3rjTl z|8ze|UE}fUuT+!!<)MTs^6h|SkNjs=5EPwVMQPIQc!+6r!3p76<9LASk>FYq%#0q3 zbJ-YMdX{t!JqB!brQO{;b1=|T!Y_AN)M+Go)yq>>7(n@OcXnHCRt6x)I#Xe>D^QQ;Zb81LjaKUn4@ z)ftn^EX(_(6oo|+xJ4QNmCi4p3y|i45?8_DW;HCHa~7H#u^Hs2Zxt{5CQRG(u#4eq zQ7rUwAu+cWFN-)}kSKeYV~mDW5g+3gDZGm3%HO|i%J zHI3j!th0Y~Y={Ll73HM%HaF=r!j{_(YKnhyVm zlsFJuOg9PnXT-TM<9E5b`Jbtkt72^rFG?UQF}fC|s=;=gXB2Jo)V`p;fN=M3Mr?y>Sj|>P{NcO6t zzzEU4J2G;?S@l>>h`-c5XlR|r_bZb+50`mWFeA*tz_Tst82s1QV&QKM9#o%cIVw5IJ!T>@vhyU*{0i~&8iVK+HP}YG zt(hP^=u=*Po<8638;s@2Zl?jT@GxM1FS!cN{v1{)=03EPfH1hjc4A1uEp%zo>y@Y= zEWY5P(>v^P6}5bKHz7P_o{V<@F0C>u(G7|cxsWw@l7HNm4#oKK*{Ud)LY{o2-(}R&prG!rGjT=e zo92P@4o1`?l1aV}cGDYR3@oj`kZA4(8Vipipm1@ z?K|Mt3ipR{G#>f=tGcur?$s&2o`vL)2e+lb^u*(r{elaYS0tfTyzpDtzlQhnLhjp-dIp=*j)OR?Z%`zC2#3yBOQd+f@68)mM>n;D3vx+ z&$P-!_pU_U)^gX!JC)k40WR;y-Uz**H^#r~(^0ZhOP&u(-b4?j$HBJ~&5@b_lyVDoQtS~`HVf>$U^q68gc z08EAd%DgpxgQ*rI8zl!L#^TWIDbC|X2$$MlIIL8lKFo{3iRQA{1^bg~xRKZD+ws#& zu>cu#5=S?_$GP>SL7PN6+9RrIkht%p>v!+PHQk+PE3Jw|g7#G70w?E;{3XsC`$(?YNHEmT>TkiKk? zR8S50#l8+78zpFC!?l-u;(-qMLW*MWBA3_LF8$?MCpBcIJN=F=go=V{!fZXNIYh(t zP_W#A1j>4R&0n4Tdvz|8V!nuKGcE-XGM6V9vbj2S#19)^4F ztoC?vn8I70Qa_?g*Z7pGL0cqpcQrxFyFB^HuK1m zgZTuN>?p=Wc0}|U4e8~cz)rtJc~YaGtGiPCO7sVVYb$D!PrwwQ5bh1lfN{-4A)<~! zwcCs%v5OKzcVETwTS&exrND^Hm^I;?bTI2D*E!p6O@0;!u+AzD1BO-Zf2A|{I|&xi z5RG(*;3sh{BFJrJdU3qU;#)Q1>ZYY&yR-*OG1Sb42jU-f9Jy&NPaiAlaT(*C<_&T{2532NhxVFJ@){hwVybR(kGVC z_Z)`qvdFKDzR;Xd;7Czjcex5t(_1%r`kEXK$R8WXHzYrmPGTj6BM?{^m|j85Wh9{g z`j6(|0=Z5%PwW<(PakWw)FF5iJ3<=tod~`$7n8gt3;Pn75LrrbZ?1VQBL1Ct7P06G z%?L$SCxYPF8!{rQ$u{rT2cOPZ+;|b*BTw9-l5DxGFUErXU4ReyjzEz7MIO3~4HKUO zuQ#@3?~Q3#4my4Pnz&r^_glv6B#XvPR^fNet|3=q+`9!G*I-=_K9Jy5v)2ub3Qd*Z ztkZdQ@^h)~9}q1bAAvjQ#%TS6w5gB->;+n(FYgL13q*|KE;PJ$?ZhL;j2Mh$gF5#( zR?&P}EA$ljoPZ7X#m3-zue2ffu{I?73^9E7_biKLqx|@SfRnb)Y8=%|(WAXkyI6H_ zmj1+Q#UkkjaA*l0%=yr!ahKp2fz0dKPU$>PO4bt)l+_Jb!Sl%kcG$6dP*F~Ed0_RI zg49O}C`!IZ#IqZ&jWf+k=$yt4Z!*oiB}-{&K&{Qrs2nq21DCdcy-LUJIhJX~7;HFr zC1&R6Gv;qzbqAbOj00Y1GlAOcpY!7tnbMDA%whB zO>*<%f|5C0g)h(y2!j1pS7_q{8)~5{M?%EeN^i--z5=>5al-^c3Z;@NEUlnJCA-(n zy6+tQ2F*YN6tU(Z1u6FX6%a8;&6NG@OI=HpHhWc?*K98iF`3$Y)R|==n}Vplaj2UF zVlzHSFY?5rM?(WYtP8HIGPb2VpACPYZVu97KEm*3E9T3%L?yMY8HeowdBdaJ!^b@a?A2--w16dZ^rnJjI$R(K#Gv+UBz1e71 z)BA%A@SP2tD9_~4j4c7)8M`#uvCZ=TC96_S?*o1q72)98*h9g8eYW+ZWg!Q%iWin9B;)iRc|kj!fIH zL6+-Y#VxIvbv^Wt+$8%8Fp9KfvpiQNOz;AZ-(lil+ISZy zF7X$KQh9a^1#TETa_4?CYUgDIPkC6ieOJ}gx=9;pzPz8~5u%MZhbNmR6;A^y=LV2G z9kylycnNqYTB)He6?=P?6z8}eSSVOEU04}}R9|fB#=2Nq$^c|2?GN*uLyem<1PQrqoK-6Z8`Y--MZ8{`U7ggs zdBKZ_*95T>%7gdwMUA}z^cy2C+fu3VC}7nOJl|goV1KnuBabn5=ud`mB+X;4z+)bb z_p1$HqL^od+XKHV-Yoy=Pe|W=TliDqmuflbc622>ayTSw52a-G5ia(&d_X61Rmh6I8famdL3yT&Fe8fQ3`<|deHlhR7!2)p4Hq3r) zQALVP`5oBwQwmDrsMBzeQgbPxBbvY$9%Vj}B(b1G;|ut)AT^wlZ5Q!A<}RLBDG^Y~ z7FhSpB|R?q7~sZDCps$OB+Rc^A-Dsdd8&vzXn;qF#*cvqn@JBR&JyN2UTYRmehtaW zG*?9YTYG;!=Fkj`_L{HPFYgGqMslrc9h7dj<0Ubz$((js@?v9WhrfdFcB2txn|_fF zBY+@I)c_+)KyJFTfB)aE*5|q+uKoiu*}ad7nlOJ`g>cxI7$=E*C{e*j{`;)7b%+_c zfpI+nb?KP=<0QgM+4@DSECVTMo}k6=Rm0AVmm5R`V_GAsav&}EgqUxhTo8#5jPq6i z!Tx~f6&||??=ZalGpGC@3X7Ab#Js(_r{Z4}&}(I=KY{bXOY|l$4j*p88)7F0c&mq_jM1XamZ|9{0p743Ub2 z(ZCkL-JJ2kehVyByUj`R!3hxw0jHidD={_bGgIW%l?4ClmX<8X22dOC&qm~qx@uy~ zaM5<7IlWX6(QxD*E6v9Ree)I*$PtvGS$a^*T% znp8W>76`l`Cruh(PqnS=93k0)sCp=v_|)|;<;pxCkskP8O=s^*Jl$EQM@LLIY+%8jCL zcYYI_h#(BZ`Hf?*2Z-cDXjz@M4iE5X0rAZXBbsG#LRKC>18ck@KO6I-QHgri_Xkl! zZ38_+R0i!&mIh2eJ>2^OA7GWvOo6gWvbCWABrYg>)Jz@lFlzvg$R!(NRaEZ5XMWM! z%J3Qel!vKoP5F^$@1MctBB<;7WPVP>mcmW5KU`oc7bX$D8c?SNFuB9B-|^f~8uOnXy83ht~ z9W#7}jgd>?3J`o~)7bqPX zVh7qHC?-&w!~=Pyu=oynb`fpP!KgF*oL|!?Uy@1&pO&s-l<;)-jPQA#GUSxzbe2PY zT&=JqCJ=i}L`cBo&5e0>o3XZT#cY9)zfGe;2KZrXk>J1u1ZGA894D)eja0|mA zn*5$i?9M6e3mLq|A8eR4vwzOD-$^jOIqOTLn;3vI19#=g<#=ZLSt2r|M;f8|Me{*o z#fWYfly)sijph8dxMF~XK#a5t3ckJu;1f53izF{fX?Q@xe$T6TOf(I+NXv?u1+Z4z zqHKal`lcX%Pk>fb>SAUiE(qKA1?M~3qn?rO#jh}LM#kL{Pwnf1MIjxlA+wA-B$(#> zfzH6cc>RqVp`m=yuLH)Fco_3&PG?Tsa4Uo`)iS)FFq0uXM)aSeYmHBSlhqO!}dtDh7O+rBd&`v*UZ|E z*|ez93Nj^jn~pCm3SmPP5kVCn)XH%1P1)NX6YS@UrpL4_&z(*Z(MN9dUGib3T8aN>YQdk5-AJu9Fd>L$9v`ndT9{SN$0a+!gm4U_;f9yT*SkoA3WoJSiVV~kNI zWl=AuS{Pw6O-}p&03`qjuC*m(-n3?D(Pq#~mHPg6UKb9gCLo@e_WS*R(IKd=e@ai| zxTC`InvXTN(vx7!bA3>&FeNmzQ|%<==lL&E@d)5TevEHSSd-A33qggk5~MX@yCTNF)hWv6 zBSUA5HdChC70FdF`8fpExYI^=7|_KMLFk6%`mcpGB6nnY`E{$Fwnz zEK!s;J4uDmSM?xS-sckyPr>aH`wHk=CG{|$~Mmz8e%4mhhu10tY6)D zG;IYE-=YJk=RhO|ECQZ~kL@9*H66`Ad>{sX#xBViwE^8<*~mDhlf^g^p2)BBbyFpG zv+8lET1qcq&lJ_lt^Y_Z`-(^O0yR+aH~0f3pHLsL*L^daH&_;cF*}N8Xg7JiMEKw2 zfcX2-CRufVF2w^r%@1?QCz)8PsJ`z@#*3>O(ZP{iY3rM=>Dg@+>*3IFI5d>lN*dt( zHZwHpEPwG^8r&oKzE8~Hntq3@*x!JPqNyk&@*a6oB*B?3uzDpHpd8PspjPU9I!~vE z_3~cOsU8huWA!~qoYI|Mk1Y3&Uep-$*R;gTjVb6hhBnRZ);GKE3HXax4$F@ZX%>>R zztqH}U5gbWjK6|#2Nw~rESEm>ucYUYoteOX2|YSQC@&X{xTqrjMs)7RR$&O~=YfF3 zSBKf(GU?=~6>mkaqM{vF*GmCgoGb0O6660D(TVs2P$nm0Ln9zF(m-GL!%&bI^f62u ze+mYxC$~oDI1|ipx^2}87RFxE6llMcCUkqdh3`{)&jC5i^$XRl*v|UoY9tdv#iabP zufCW&qhUU{ZO=h0--7?!R2;zx4Rt4E7*Uk@JbO4H#*D0|ZpEJ2p~Y(Xl?Z+IXZ2Q8N6k_#vf0U&ar@k03QF`ssfa;$6y} zAXw~pCj8P|>r8xU#RyLNO?I8l&)c+=xCJy15sw>e$SCKelml@4ciT=Y%2D=L34slk zV$J4)8YfMy_+AFuW*zKl)tcZ;B!tCBv^M`|=>JA@;_@;IqFA=|YRmF@Rb6I?fLBdS z>UYs8$bv(~UMRLJH4X7G?ePZ}PXSW%P_I{a!rxJM{qr=&^%t8WL2y(o8j_*kZ$yAb z#;1N*+q@yiNpP35SaR1wjE^xSwfN!5=vN0+BY- zR^52LmEWo+>aUl#97{B$h?+$gXp$MWanuIfSZ(*no~s!4B(o&P6sa!%1g z+c=*AIhQ(vz{3p!5dn;FZW1bz9LRyvIn|EZR3;x$X7d#GTeDf61T3}2r4Ds8W|mbQ z^%2^+(GTs_IFh|=PH*j*@>ctkd(D8s^nDOO#|A>{+WrT}WQJCOWijJKq~m^qiym6kNnp-i{CyLLqBffD zSh`iw!W2a@{sC4?EJU^~V^B4A(VF}TPSl^E8Nvqn5V%G9+Qj#+LceWCbld;I=um;9 z*)O!<2D~Sl?U%&~_Q}NXh|N6b81SJ+*Qz1vxn42hm@;f<3508r8W7K_Y?7RLu$cKt zfw(>~FkwC3jbKu4+Wd1L4nz1mkb49cVzj{Bt$iBL55YKdK6f*6Kygd^>08 zG|}~5BNz)an=Eol_bboA5Y-65(#6S3i{u(;EA-TkFdcYsIqk?O9r~lKr;nn z1!uu5&nyge7e-y^hChLO!sJWfVV~<~4e*avTY{q>dP2IBxA|q8i4Ld8NjH)2I3L>~ zHQ>K*5j|$}31jh`nP;}LmqN6?##Q!E&RJX^DWS<>Gge&IFd_Vmk&aIIZ~Huc8Lx+i zITrC4E2W;schG_TZKt=uJpK6hV1uLl;ES=f z1l=sE=K;O>z-K02)0_fh56T|ce{G-><_IOr*cliqU8^fGMa~H(UDF-!mM22*an`*> zX}OWBTD~Xvyx7U*q@g#?iiRSO}%>QRH0i0>BbrgYl*--|eP zKKD#rX0{BdU*6tGz1b^jq&2O@dLN;(gqL!hC%?3-XOM(j6df{YK~LIdMLtcn_%=5-AbaFOG zFDtifn0gB7>i`U-1r@CvyylfswPz9ZU2m9oY~*nC?FCe=?mHDnLN zMUUL%x1^X5Ulx-xz~rm58av3U4SLL1vy1!?m+x7Ppi&m*0Q=CqFWsgH9udUk-}x5l z4lEn%)GLeppi@|dMhKDb`+<=g64h){rkY$?z6u?K!0@1B+Ot@;SO$}s7R+g~b;fwq z$U+<;o~i2XzJ~uElliTIZ%e=MQeKLZxO-Oxk=z5aA=yc zfCeRP{E8-!u25(o2}J9fqp%Fxs_i=C|9y+nX*YWZu5989z7|AP*7yCiCHVChZP3V8 zI~8o>iXX4tDfuWT%s{b^m^*OVh|>2e<-(nHTFd%Im)Vtxs*!OI0U7Th8hj;k__+nE zL90O;wu*to!QxBzM=?$x^u~)&IwqwlpBrmMRVXQ8rtpI}acbpDDMG(li}jW#_P*fF zrh4KCRsKsUct+VpgF#=}0H)u91$zkqyox^m8){R1|JD{%K3hS3Q^_bhO7SiBu@_<(skZ)9jK~+!<&Q_!L7Misj{h;h8%ks-T zQcBWn2}L-8XTQTxWdt?7b@w0-!Me2Ejd2_Y1{6K>^l?}8Gs~ub)b)!ohNFr@MM&94 z90|i;d#sr^H1A4XNiyZ!V~D*UZ`nY&OE2_3-1B$lCqH^_ay=Z&FOV!VRDa0b1GHKE zbricCNC`xBNhFKZAUdy1#&1jrS{m5r#vz2m9^=$!e$eV;YlB@%J&k{ejMALl74b;L zP5{^+ts)4qEGgQ#n&9AldWkxEeXYt#OtgQ}K{(Dl&Qtl2BP0X0;@4xEQ^{W5#lFbt zy=Q3Set3QOZaUA1KL6R4vDvC0i!04QN$+&V_k@5){R#QIxBy^Mpc+G1A5nDAyMn)9 z9GsR<`&kw^_>TZU5Ct)WpQ-lh_<;I12 z3CQw-6}(HbvgQy!k55&R-`C0&-2tAJ9Kk3zSX16J<~>1p3>>q^H@Sd+9?%h49P8w+ zQ{V(j5$T@x?9sd^SdTqWbw;l?{wkK*@1Ocf2I4S3le7lvhD?&|Fq{=LQ?R0;*{(HB zV~>17b~&I%*k_0x9`{Zv4Xph?hKfkBB--KvXbWv}5fOVV+p(q?O4O53Sg{I;g;H`@uA^jWz+zxF$$4g(aQaf3Q(u=2#^cA&FE<&_6k{NWJVi|Ly zdE}@{hA3GN9oeGL8K4}_{NXa0<*2xW4sg;eeuZ1!@ji1gRKt|vwqfjv_4>ozEvCPI zspvzLk7t?Imwc0hIB%LJHVdmVl{j*2pyt`-iTP*KP?lEa0)&IZ8ZjkE{-Hh9n+9hb zGuku8{``&Yd`3b;I?09kbbOrWq+}gSe`&55RMs29kx?I28hy`mi@&;E7$q*5{2fq= z)vqTG0Fwqevk7q-Jz{jy&6N5Rmls632joAEYL_{x*ePkaqr>>FR*(_y_(9RM9tEqf zUipu~sAY8%z3kbZL1*r2jGiLi5up)x_fm792xj}UjRf+3-H-H(`sAC@L62N%IjU!U zD45h_#>|iZXa3Noep&@vL^h|VPB2}~zwLo+e5(;J;XZyP1=W7i6OlKt`=H`ROzK(! z=|_d&TT(xM6@4KRX<=ru6SH*IkBF5`Mh3iw)9;$*IpiYsF%xNk$oLNoirUvnXn@0W z40#tU*T7NyeG833yeaBxP(}S4{$3t~B9s1%w;AYB(Zv;@#@)S3=RhO)a8^%>tZSql zC7+H4aby;l6K=R*Qe>rUcCSrR^bZ3jTVKO9;jp#nEfMr)o$I)6!Jl*9u>8L`Se$Dn zRRW--G0Bjg=St)#A#K^DVOY_!$hf7GG)yTn$j-Hau>f>*>q@1NgYratO4Y$Z=ed%* zi>MgY?`c@i{Erw>C^LPd^VGY)0E62K_J(QaoQS_7Dv{7QDS%;tkVBFB@_pV33*fK6#FV0M%4Dqxi5yg#9v&AijUZ$ET*=Ul5NtoR$wS|JlT77y@Dr zDXf`kf&Ff|u;5%N?Y6g(3DHl9)Z249)+lYr>K8?B*E%lkNro``42#ctThx5}G_l>! zb&!YxU-4S8l{IVG$Vr1ut>D-reK(xpFCflrBs6DSw{8f(BQ5BGG~jU1*bVouV)>Rb z`1$pWK6NcwefFn6(3n`YM(po30%g6YutPuV`(}w0JDX9xhzTOFNys&EiE($*%E&q< z@ob{Mg^05*zv#cTRboi)-Y{CqCCu&v#dXV2x>o7BWUDjYLDCU`#{e(GiiIZ39b5^= z&4gJ-<%h&BcH;V7prHSt@HCGOAKgVB6FsdgSoY2DJd&BGosca3G2!><*Vb#wr$Im) zjTgq{_kh)*Y6#O1&X_pLof?>pB-x1@+Hs-AEPGBfc4HAZuKw!CUNG`1;(zkhUT*yI zCnRF&wuEgNhv{3qiU^Ci#B+E;=}V-RZzZwN^Z|3_9t(iS0H>+EQo5M=HZXfbm((d@ z%8!uegZ>}P3zs@$*f*u{eU=o&I=fYUy<;1+E3lb_7$J{8$>3AW7(6$MS(- zXdy1qBb~uGl8Lx)x4uuJT7c7qwh$-#L=Hrqy=iu;ev>c0B;^YDfE?TDuwE~@g~(lh z3JTP^msDo@H%Jvlm1>GN|^zvHWuabg}K*C*X%pfS^ zqpcDxa}N(7gm#wG78F)DDB;>{L$s@Ab<~f$;zDUyzj5<>ZVG&Fd56yafP213JN8F& z#AUKPYb4UIqVW-9FG}-Ezf{(^El{=wW}x_GuVaI22jkoExJSy-am)d@I8a0{xm&dG z>_T)dZlrnNxvH_DeH~SL>72k) zKC9ab;Co5uv!Ri97nQRy4Kv$d=0@7TY0UvJf@G9DiVrh{r&;3%64OU8$580S;O>Ug zK*KM&#g?zzdHxnZ9!M>3Ues~mlbypY#V#8VN^iwu++Yr7qrpOy|M@e3&u;{*b2Q^<-i zhPO?*=DM5?7$JRJ})Smxn%@tDYw;tQOTa%u@pn8GMhb(E}cG zI}VrOYya?Nm&xFkp)>^cZI3I+61fp)cpa@L!A*PTn~z_cmPT~}TEvWFLrPYgRB~Bt zRZkk9Xf9K+_guj(lUPH;n`T$J*UHQ;YU8iSc{>|-rBC251tW~8G1(Z;S=Hi^Po z9L}h~Q=Q_a9JxqzD7D}w$vq3c%f|xep zQKk~!?r)z?XDRjcs}=6pA0OKcKVM)_paZzeWR2Sqn%To!J#NVURBP6*WShGUt!hwn z7&3uDqwI*8clEfkkLDH`{V9M(UmLm8=gY57k~s9NdW6#GYU@C|)o7_pI%zyP@$m-3 zC+jHK%lLEL^Vi*I-Mwy;d8$Q&@yG*~xgd>GvJ$}MbV)(IY)lhL$$fpC5N<1|k6JY0 zXXX{*`*Kz}gGZ=SUtTpRv5%FC22=hq=ok|bm%R^r0_2|DW#I&5JfGIP5E=mp7T~i)i5F0b;OL5ddU7DxClx4w?UJmkIxD&Q4XV_8l;VEGp zosnz)C>8QWUotsnxPo;Aw79|PRZ_8C$ujiDwddtbbbpj-U6f2WWIi~{^zLkSoR+eW zJ+C-!v-3v5Fl>mbomo-!mjWuC35fb(0C|xmQSgz1VaEznR``K7XL8Jx4+k7-pKiR^ zCq63f3joQNb~9G#3>Z&joZ=`oomBBS#n-sRd@S7};wx=>Xj$u^4^sLgXjh+@IK~Ps zNq%V~zdrt*jmSc0wl*z|s|$FraZ2jHb$~YNh)g4YFk3eQ+o7gO5>HLo-R@@=0{IQe z-f*~Ty+R6o@GMqX+m?AeLVYB23hYtniV?}zCRJVhi-!8gV?-#-*hG$?0ngTN6LictnaZj!>yNXO@9`d=7tLWyAGb>MoDnAs=1?28w+(fS}UY3iAI?W|+UvR@NBnmT?8cD}yiatj3;1 z^qVqTQ|XtQ^;po|Ux#laPl@NM&qoI10C%9A-~^WTw~!>_en@V)C2HL|@MP<7B$`nw z3A_~?fY0f>kFgD4Ege#h1$RsUG#j?9FzP+2whuDc5wjUgYw`IQorH3>5S+ELIF=25 zY3H8*W7T;?D@g-!{#F~x+_chU``GKet(lPaK6a1D^bptNhXz(52;tUbZXG{c8~J2Y zG6R5or>8O!0nL8@ZmEb3;2`vKXyD|<`iU57s3m6ExexS>sXbe^a|ia&S$6L=TOfcf zHHeMq1&@bHkO%42U^PyBaNHmu`2_FwQX5A7i_Bd5@z*&|2G$S_>m}v&|Z6KdWa!M!NHpmDp1>+adVpnI5Y`&qEs%<6SHhDq2qXYh8!4gNu#qVNuJGT?f!+^&U&Q63m? zuy~*0k0Z&qBX&aq(GVgwm1s;sf=DFhVhcFZJ(wxl)?Z4;{I3=YzKvCM-;!p_d{u7T zR&~!Pe*HTh=2DCTKp{Ulk_Rb6@npSz>nIcuy7P7r8J`}Ml(!t1xvcj?C$DQJ+27GO zX42fzYL_MVKF{x^ToamHACQQLgD|&M*}Nt5ITYi*BZC>tLio9_A^dU1u_xwB&+Wdb z=aB%Px4+h=x6io3+u^|DjD!sJ72!}-^<7HPQnQ(+C6{O)uH{i$a|SL@Hk)cv@^^fM zTh{P-oi}M{7mkTRS;92B!A11xh#xl1G|!(N77EC>&1;$`TCg`H%4 z6lS%FC(w|vp5(j%%96SggC{EUTb-OK;;98-*(Jf(2)gJY77~{3Nabr-)W|7htuhpH zOUk*d`1H4Z3O8#l-Sa;iKN184v=4?W&J6{Z#rhnR zbd)gKSpbfmh8^{x7efQ5C3BgUwe%4;*iqvxb&OiK2=0MO-U@$>{R;%KpUFFPkmbWX z^EK^H3BfG(Bi^c0_G}B}WRd$i3*pO8;$>gX)j;x+pAoXd@Xwef%Ymt89h5F0f+BHY zZKrVMr7mM-1DZs6M3E-WsjBN!Mw30y>RX;;z^-!uk{AfmcNCvN{c5Dlhljpsmb~2- z4q}xz6fPohBYC7>9gy)??8F_b*gSp^m4#v&YO5zTtrBSR)N!h>Ns>wpj9y)@+yreF z$?~SMJEmLQQkXskk!EtP0ZMCy$<^%*4(z5wO)lepe?nw8%NAhYZmeP&*_C2PW7d30 zOFSsD2b;F5k3MSbLr3G``gYLb>f%Ew2T(!xK47)c&R9~}Zgj;9$A%B2Mvd{2#AU-S z)Cp%sz93f0%q0U;50I)dEw~20-#SCD<0K}2=^5N3_@i1#b-^Hrl87spIIT0B%mnpC zXKN|yKAGWEmoZ>9VCwYOC8O3}Tl7=vKceC^Im54nBVVx@y$_0fm0@s*FI0H}EJyka z0-Q|i%lpFuibT$|>OF>FL-lY2oC|j4p=*JXV!n_oO5wIQM_=vm>5N!P5evw4>eItgxO2~;@ zka04>V1MHBe95qN$`yH~UY~KSgdEG2Ml@xY((bDU3IG$)He1;oI$4h5{~P9La*bHn~4y!XI76>&vq- z$vC)4xx}oNPWsHLST`GDyZ~_pBg&%(Z`=uABEY?`IOV)nMYyBPlZ%1W(z&o}go7c_ zoIOdmyrq?|WFhHb?V@TTpx#|kXaEqFauHjHS3-$Q4n?7tjbw)iN{DP)b;FOD)nT7O zfYS_jJaA`@M_qz6xb}IJ`g+zd!4c}z-T3iNN-#PCR?nikdoZ`{6C}+@x4oX+;M+L; zpAKRm+dp;se%|Cn5@f@it4=nRsR8z}$G9g5be=$5Jd78aYS~vE{3Ujd(06ZQ1d?@A zbS@UAH`vTO`cvRIu}Xm24!_wXwet$peK+v~5uC7^{Q>wN?>9{>#K4O1wEo#G=YEv@ z&>%QK=b@jra(#!DagFR9abK6ooL|V=NWTa%>}$6h9B00@ zrl0#<<#|IYU_5-??;6eg54sDjp^tGw=Ri5B=HK%ag>U*FR$CDt%q_t&bWH6d-cios z<8Gc{d_b22)Ow9O?;54Ao2bjLDu6Nxh4`?8vRT} zKOq>ZGcgNGk{aj`bU@fVV>bSV)|l@5eMr69L@`Eq$^^1)`rmdEhPqt$FOEyBbQxKy z|1O3IUCt`(QjQ22&gk_e>u<`w|EM%IebGIdbDBS&@h;u(mTIWI=-JNmPJ_WUwsrE? zx}SkO>NzGTj*58`+iBh%z?$x#-BN9CDGnxW<4?b&X5eicgC|2Ox%pAoif9cgg%=~Y zzzjZw?=x4!1t=Fwo^(RNhUG=B-C!#*pG^Luypk5CA9?=!9`g6@u*Sc+rWYJv1MJ)T z!{`4Pyly2z2r)IaYkz4@+Q%)TE}G`r@l*HhYtMZF1L5?u*o<-OzkD{5WRj*>F{&qM z9Lz#UB2;4X>tpke%C@%Kl&aCA7L}9d0ylNw4;i2-E1*gi9MIDmgA;GX!lUN6J^Er{xiXKyI+mxTLu!9*1|P`y#f6Ws^F!K>2D?i*TE8tTSt^M1el z`=UuwOUcZ|@zx5uhS0|zOTOU8+C|QPs}bHC@eB zY<5rY|NM*be=J>NTxH+apKN=wCr!5PCflybws9xhHQBc9nrvHBO_*HMbNcV z++LCYkfkival@<}vHMLNC9=hVx*M;wFfscJNZ zMdp=73e(a#P7rYA}g`=SAnBrMQ_zAUU_#aR@Q@k z&b$R8R6J?XA<{{v$27(`1M^3@sFcck5KwO~wHbMa(*m16mv&lx=YxP~?H9cqGHB15 zMxchG1e~q>VrS8H-hQB~yHV8YgM7Qnq>!FN<9eQ>w531#p;-%~x*n(mU0_~B|JQ;6 zWv}({Yi|}cQmGC0J`-pWT=dk^*l_TQL#|jc)yg8OtdT zKtM+No;QK+%pT}p3J%^)lo0lDxt`uO8WJ!$`$YC(ZiSPG;U;4t5jh-SN3Zn2gB-7g zX#;YMXZ${?SWaH2&5@hr;%V?p+|k349sizTx?horg(PDZGSaD^Rx`x`Do$pF`x5c0 zDGQS3A+}=FI?M~EW++5V6z0n*w*F)Fi&7f`Bz{OuN8!kX?{@@EdxKt+)?Rm6^<;_s zDZj0sis=Qjp$>GWs~V*Y(aED{!yqd@7UjMq0lG}c%9T<0Gl>n;=%{8?9f5<_HUw0? zr6cAleDmBPhkN8vs7I9m<`f&=GWUEM2K3?CE)0g-7w<_cG@VpnK@xNb2xO6@ysnQG zS?usW`qr%aLFdj!4rXTT3>V=f*+0nD2WN7lZ^L=4pKilfk-pX8AoJcSAIhGjel=IP z`mNmZ7u(dDJ-NOlWaxh>Z+*EB*tZL(u)6 zdHnBAI)|7*8K2!-5|Y0)=XX=(&%dCRJ{bvzPR@GMu)kgxXCol}9@@uwqmk;^H_$kGdoCdmiPM&2=NXgmb)^mIKRxpatmb&-W?pK|a;W!fpmZXZ+*8HcuAAO2C0ky)PwO4Y&N z-3p@rnKIbj)rd@of(~k|eWTL;RCVC@sPj1l=wA~Zo?;K*XKy&)p~%a@$sX09sRkdfo5iIl;wPpb+}5o$R;y>#WwBJ#Eq(7^Q5bulsq6xPRTtl z%bwpJ-QE!YFE6LT@=>L%a1h35wqx1Y#m)#eji(Wv_P7&8-}BMrCv!@1_GP_;nBNRH zX6m(9{ssLnD_GN9Gh6S-5zzg^yT0)kNin)aho6F&U#n8;lKmM)rzxe~aEz)a#M>POh0)O;;S@;A9rJpjwLhqdP!Bs03$VWb&d_rNg( zN3-$Fb&f!za~ce|{y9Y>F)3D7Krq+&GItkn4w|K-GBlNK%|bTOkw?{NCRa|-r*EW9 zODR=&(P<_}53FzSM90j6kfD=tz_9fCXH$BqyyA#M;!&9;W^|t?BnA&!Tm1f)GLIHP z#Py85>JuDpz(tmM$az`}-uk~e%IZSNLa{E)FErj7^Vjy$v6`#ji8JL`em=XvN(KCa zoxI$H-cVEn4HNA5&A3gAZH1nGH$;AI^nevsn?QCwZD5svoyXkIE(V)}lW z3Bs}zlpRU;nUrR($QYH4clH^YZ9RCZl8P)nzZ%N5Yfm@)Q$-<_boOH|C`1YesIK|) z)qv_+WLOZpT@%vNg|p&l+R8wBvG33w%=~;V7k|-xP%QVI&6QDlzov9C>{UpQntrtN z%idW>i$KSkm&{5k*Kjh_4?eXeWj?9-@`-;bP(LOseB|oWW&lMc=qE_)=d0@mWTrW< zxs&ySr!XP^adPlLIQa3W&hf@~l|Z!MAK5Yv`pBQtnN-(3S3z)ftb@u;KCji1>T@z6 zit6yvnLW3YioY#BQaq1(&cIal##vI2sYwhD?O)dBR3&ZvlwQDnHG5R$qI+}zZaT~= z8$(*6Re)EDdzL{d=2 zFD}6e<&S)A^ERpGa{QnAEc5txw5G%i0V;`XQGeZ%LqCWC`tM5Ok*Qy)iICbSktsz+ z-5_6-s%W(U<5YBMRrXoYMtTjkQQXJK0ZrIJPN2f(ULZmeP`>lVuo=(QIWb@+E|X=j}R3FAu5J~at2OJ zdY%gbMm_b$)^Tvek`QV~G?~-In;}~@VeQp;u|rhS7?8C6SzFJc1o|}t{)fpl?bnrG zVtVIPD_n@@YFMbq(HI3cM$bFn;3#z>3C)xaN#!#$qV7lZJL*F|M)r7M zM}O3>Kl|DmF4r7!ms6tb90*xQg+M{!E?4rs!Gac_oD3g3z0N!IAqVI~n*C3$=~HMy zTX*2maSZZm8C5estDIbMr%meqGOCr>P`@!?C4k_c(rm&Fl>H;j3}wQpXl^Gs`>4FV zXN~~_9FG{j^9FN9JDY940jVuojG`RKkkKH@_~7YLU=t{u;+!^lBA}NqokoV5k5sWq z?S=4ZT2qjJW(4|mNBYn+U}i(H)u=yPF>JOBtSW00`;~DNSe#z573cx`DHTD}W_bt=OP8C z#RGb{qS!@zfUaPlSaCGG%jEr`pg!Z(!+Ypv_s*TAniG-jI9w3cvPM%BBh6V$9vVfA zrpi2~SU+Nr4*HbdRda`vzM1h*!);~U&orf?myy9a#24+Odu#su(Y-lpY?3mQnz3>A zrJxF0mAd`}vfcj!Y_O6jy*K1Yz78e%Q0q!kGAbtS@cFY|{ zs*{m;T{1|2jhcn~GtikvX=}K}PhtX^)|3!P$&-$iTSRU%>5m&Ge6r_`oxETpj_l;l zGIomizV@I~gmzD*$@@x*&_5IboT;Ug&^5oa1K0zb5G5U@OH2HeEX#y1x_GAIp}D;d z49^%wVRxrGiNOtSfFHlaG$d6{KT!NN7#dE~qlv!8b%WwG!L5ey?{5NjSE6h;1M@U7>?K7I)Js%${22!V5n z?f@mz!iLjs|7D*|g@bs6`zMs`7@L_Q_;}z2PGUQ=7PC zT|GZ$;;Q%5*pqC)NY?iiGl2)4I4GAgaqE`{8%kl8Y1^^et#K=lY5$2J(<9npo2w;yUpj?bHby?G9pouk03?fcJ}k|00a6ICUl2R3W!TW` z^L5$?d$O$P-s0P^hW#*csmfj@|LOcAX9e5U2AuDzW?3+q4yTq@p5EjWmlc0HVu5@o z6SC9+N3H}k7LS+-5NS}oQNq$%YPE&Twy|7(dz8if+IUa9^r{&^-fA<4z*-D`No9n5 zT{NjQJHz9H;w*>*yF(RFu?v!4{YR72pUg*)7#uO6aovtj6-Z^o`Lq2h=&_3@3XAc} zS_NnoajJV%G~hd7Y0ZXbW#y}+QM2&@(@gHyuXO&h0jLfpfJXstMTm|K%|tugQg_|z zVJ;*r*hMHIYQ%hM)G}-PkU$J#T_ub*<)+Hk?w#gnS_5^eSnrC>K9TFstmNcRG-MDg z%5-CGOmzMe|G%C>JrOcy^-DvX{SCELm+iV^wGpf(DO;G#nFktJzLmFB*QiSBA~Wo_ zBhOA3tuOX``K%2paw%a(G%s5X^(>^Jo(L~z=Q?h*?&I6ar2muT!5rq-u{wqy%Gahq z;w;ph{nKo%HPbiZVRt&rgoC@i+HL$p11(x1*?cRvYNS7vl!%XB*?EWm*%J2omkAx3 za$0lkbg+PNvNVJLM9BYs_R4NlVC-Vq+t*2ZNN<`#<(JD(1zlW$KmU>Jbe@UDRt-PB z(#T3&v8t*V#G!(vi-IqhZSr_4lX6xWj@QUhMKamS$+INhC(>j34Mo*ddS1-Q6%o)?BAlk zY>%7qMzkjZgavwtxpvz(AVLGdN7?6hIn)fNxUqvt-*|@I(nf)pG1{q@Xc0T52Y~d zN5(Jex^XYPEw_RlpiUJ+Vdg0Ua+Gu{bYA!Wdid4wDTMY@oCAglCoMsC)E1+RdNJ8Q zRl3zMSVctK(G$~JQkl$(1mQJoa(fiME`01uBULqkO#sDNQ^dU1;e6?dVFUj6YT+L) zNPmWuk^x2E9nfM_w1%tr*Xc|BNrC6}&UYYgcBeWL-UdI%O<7(FgLPY$@x?3_fNo|? zhjIsg_dl|mT@xiqc~;bL&BofPIU?#yk~0&9)GFk=zHcKWQRF<8Of>{hgefKt`41En zkY5}uep_1Kcrl&VNw%5#Bh2;3pv?xhx~>At=6@OwBqDymdeOQ3Uy)C$YG{#2_%G%& zt�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�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
@}phD3nfwGs$~#)`V<2O zx4Y65I!hyx2fDf03_o$JcyV=Y0rAlAEerYMOt!htTkeSbOxgdyGdE+bgO27K7+qW(!q+VI8LUG3!#X)apr6 zVHu~*MyB5bcaYAS9=zp8Ghw6vz*#Tg2C<;#xT4}ZfLA`mpl>38(Vr%^w?Q&8AS*xjqTD7I77XLOkr;D#-@_iq+U&*1(VB7J>nMjY z!*O_k1$&8!cO9%I3&QAtDv}<#7&6hfB@kc0dR$qZM$&!9dZ8k71*O_|wmCkh-q2JF zCT4|omGFK29L9r;QlPMBUT_k?wqGGdW4X7YsY3TDSp26y0fbzJ;jm^~Lx~V$j$dcQ zJ9`H)2TY6VykEAAoFfuvC#@`KvW%zW%4@M6bKtq&gRHs6^;UsjnW z^|$^yh``APDM{J5+kTV1*D)0~>3Gb;G>TMBmWyZ4L|Wio?>Dz@MCB0 zpH=E0Tu}YNDD{lTR%zM##BE+81dob!)cu)`cmeoyb|;tL0G+bh%bNs{CLvo{ZS=TL zzOH$Lj40{VPjeUS;pf>Q;h=lj{H`Yhgf^wk~b0_G1V>y08CCaL8xtZl?nJ&ZWf5?>c-F@Y?1wl*})YSoNpjs z=tEJ!U1x?@z(s$H3)pZ8<&#^^J^F<)Evf9kM~>X)+@Q`;1e5#k$+k(JnvCy>Fr^; zxTsZR1UadA`nvoEV%aP|*p36J6`C;jP@354Rh-V0N+Qaa49HNiQj2q2LsWoh2v2cP z>EmR%_5@K6=t+s?nUs8iH~0Um=SV5HbgTr0n(VQ^kEF3E#l3=$#q@}riW1CT6Y7ZD z3ZtHdZmq_Bee~pI&OypNJ94u6$nEc*`?=cZ64a1HTH@EMkK)pNch(MQs1SnBLG7@| zZ*s`qeOMRo48>kJj5E!rgl#GhLYKbw=EhN;u}Fx4Z%+v^ebl|gB)U*M)lg?Ij#lC7 ztu65ei8+(~Q_Y6@^tdXK?PKnB?$erWD7PO&yd-gzQGWwnEZeV&UGMy#xq?5`STyIr zZM)AYjF8=qDEJU!sRZ+7Yl90FMMezoK1S?i@5bUL7m3D)=e=T?5z=%-`MmBlERcjX zP(q(IQv{rg^u_mg)K&cVf|CiEoJyH0ha{ajdxB_YtvQx_zOV$@z& zv>b}WvA-~7Ph_k~z;&8@@rQP04tPgp*6zmNNu>QzP@ ztaj30d?{ad#7$LBSxGD+R6NtfK=yzPrDGMas#&^34tCjjbE|H^OWc^w^GudnwRWejCq2rLQk+fd=_2yr4fr7R;gNe0M06K%%j6|Zzawqs@NkM1p zuP1hVy~ccm*7b9In3jDjg=2!;IG)%e;|Ud@3n==$rbQV5Wb?qOWHi<}Fi0Bv0AiD) zvt@E3`r*glKs#t$8_8xbpY>|X{An|~^K|eA7Z(Q&505wck)2Stwm`}yu?!Km-ZI87 z2iz(bNvp~iQUTTn0WI?xWpO9h%B|!hokxMao2NH@s`k4S`Rkf-V7vW=A}=lz>0Mz{ zR;cZUF(uK`4w;0C%ctCmj`oR~T87P;Yyn3$qh3&E^v>{2N#j6Cnf-^E(y=Hm-0_qR zBF7fwS_#ve1ztr@$-yFc7}k8~FBV0JFmL(?7tN^x?YDw0>%x}BL+J@Q7imb=iNSV_msB|*>ul8$b1C&txtQjmmP*KTDKt9x z5I^a6oFZ?ex8H381ws0x(qCpFtt++Q@%J9!uO`HV*a2dYiipy7N?SCkSEkr;tUGtq zYCynBCL+IKnDT>!0@Ar|;D^EJgpb-dIL};X>LdmYR-lTdEJ@242L=>KRm#3^EqK{_mNyS`zZyilcx*|=9+RqHqhl`=u4|9vjRAe z9dhJzkBOVPAl(o13|u!PYQ2mnDXbsP{6I+2-~1SXgNC35#F1@C+u8!*d}Z-C94jP| z5Tq8oSl-6nM>X!GGQ?H;Q6?+t8fX{Z#uO5$P6uJCjV9%dPOeoMKee+;ybaXsjnj!P zz&aeg?WjS9v3aB5b-|KRnTb4a)dSa(77FPd@n~ce2(9ky3}?le4;d`xrifd&ch(_Y z_$pf#B6yaxd55JJ4feY6$G9@}u6&7_Vr^yfaN+=9)EUe)Z7n<~XZ}UUYzYno)+HX0 ztDHsnfpLtxebWy-DpA~-b>i%C;RWZFxI_JsVqL^f3nPgYOl>Nuc`CW9by=fo4IxhM zX8WZ@g&@ug`hHQp`SvYtB58sMAjyE-7{2F8YGdWp571{3TL)E6x01vKvX4IiZWGd~ zotu@1|3_kJQ#yI)^jIX?x#(4zVRSaG#(K}qC5exCz|S@}o^=^lb~4^6=_=8Udjr^~ zdRA@(Plq+&olNO8$CL?Yx2)w?&$= zMWK6NAbMoS;$eB+ShUNM@$->Xsf7RjlC$&fS|d(y!&78qK!>xU*^P%in2uT@$Sphw{0j(gEBv`Pw(XQkeBL7 zN`W+521KjGbj#gpCg}^B?u^d!P*a91c*@4+2)?zd+G@#o}%G@ z&fddk&-~VcB(>1y8t6C+o{>)a4+RAVhpd$mQ`DJ~g?{0Aym^5Qbq@EKK$xY2o3Xj6x(?>kn$cL+aHDL2i*mrS#J) zUJP}e^ChB-?>?HZH&aN7^F5k;IS4EjJ~jmO4ixgPOO6l|{lFH7iX$5>FLo^3TQ>(ugymD%?v(KjZcjZPnI z(kz%gi$Ua25*gZsCi-9ZjsxFhiTGsg8GpInSDI1Hx#(`JH8yL67oiUt`#69&uD|_y zdl@v}=VDtGn))n-s1IsnZ6xIrFg_`8@EMa1`>)=vaK{G14$d9uX(ItcL=fqbhE*k} z4$3)rXiNBsT`UspuEtDnt1cveO2RuDN`q!92svDJIph)n#p9*96B{;*;XhHgoR=&F z_{PL`bIYSQslns>}D9eq?uOa(k~_ALMyq}&NdzdsduFEA0}0%;TVw;Tf{H4x?->U%f$KjdJHV83o=@S zJ95zUS+XeBv}z!2LC=CUX@4@@-QZ$*hU4S38-n^dXI4`!g`_1TQp^r~X8054EB3D# z>t=q6CBQWLS1evv#7i>xb60VnY8A8#yKrp7PZvh(Wf0026X%(d4Sp5O;S(5G&MkJ? zg7(OthbvVzHm)1dG{5k3l*839Dqdj-hWDIMDpz%qj9S~n2e8R@sL+?9VrlANgJ448vCY7 zdhr)USmK`_M5Lzbf_0WsIeQNNylE&CW!-Ri`Rs*Y;TbzDs594Ng0KRt5QbnB`3grb zjX#C0$3Qo^q3C|5Z+R2t#aRDIZYA+SXdlvheAMxZ@4qcY4J~M!#uo9v2y;)jVU9k3 z1?;#ZJFLOOn>?K}0?0N@<`)Jwv|vue7W8S|>k)D=934ds2X`rkQD~TaPRrT^*~i9t zh9Y>O>oFC$F4m(H>W$rR58MLwNle0x^%CZe=&0S@faAXtjo4Tfa#*2(%(#F%NCe95 zBWxsm)P7XG?;e?__(@7-b2+(v1=R0aotUQ>2)rMK3BOi|Bh_(!@Q-SFfrR-Z2*V`r z&a7eX2$lum$|x6%atDcTC=TmLc7+)A8iz~DuwSPTrM>uwms*JjTnJ90_Zhx8yDm3)a2^f_y1R8!F5=%> zdr>rZ*q; zDi_n*aSFxzGfL!KY{s!|cZCmUPClzJTVGou0DbWl&XB?`5`yveo`I3x3391cl$Vf!qLZt*g(=qT_#C>~BGtowvWuz6mYF)wWPD{ZFk?0L969N6dmy|tu&ei1Q_G+DWnu@d4A+uSGc07Ll)f?1Jb?@@@~b9}qO(ucaTJFJJ|)E` z<9+5U2cKtHfr%MUIM43uYL3+tY*jP&)<9vpb}F;kHP^jq-9E<0H_IHC#YIowlypE+ z0Gmvuowg@JT)<5VUb#}rqYErfo_zp3?CEmwJza<2(UT1^IO7!{qYxC`JEACt5 z=hNf*fw+WrjUNh;!Azn^)G!QH0wr@P5`O+>&CB>XFZS-dMrwn=j+&>%Tb*-x*-9)@ z?A{>l%laEAfyoC)ki|l}AMc6QVEjk4Ojgr4Hh`*wc28wzjXndVo~CV*@K;FS7-eL= zW!jq8M3*jzlJEBC%Wj6;TtQ1Q^g(-y8JO;>xb36Umq!y?m7nF#_^v=rVW91d1PHI6 z9EOITDyT`H9fE~|{EmCNBjfAzxrPcp=O8i=X1J4B`?)PTytqnL`kfD$-rOf<;TEs_ zpqz~mRoUy|l_Z$V64~^~Gc@;kvEh^n6DqsOZVo%(x;AYg>wW%zo|bq-JH44U{zXnr zY}Jd3=_5peZ(0-jHh>1wOL@AJ@cL^l2UhqVt#QpUL6wzhQNED!X9(b5OtF!Q7u&Q?`{mW77eE57(HD#k`jX+9 zZw$D#h?&Il{>n_TpS9X3(uhGt24{@i{C3w3_%y0H$C2Cqm4xG$YDB`u{Xndw`Y2)Y$*2B*Yrzv{EQR_qIBw?aY@N3 zy8A`!-nTlF3FE~rv5F~v1KQ9wwO}j=|NrTDXoJ*BH@k8zL#H3ff}zHepa%NDc|P22 zi6LL%TTNDHHj=HWDrU6im>~!uU(6}Y{mE3!5oy&II zKk3_)R2)?1c>SM}rDaB&h|9TJx?T5=8y^U}t@~Q%ZlW6Bw+gKPdE)fK0!?a@Hgsy!CI`Ta` z4!$NwlC%LJnvg^p2$oI|F5N%z0Vg!d z_tfs<$2YZb_kH8yFozS}F7wKP313LM;X11Y102f^!1`IglE51V+|qz@HT0ras_op| zVvL8#^qalYNX3L7N?jTxaTskT4A?;#FNKW@&&V35QC7G+>>iA0Fuf?b%%GJBmKo;g z>u}R0Z&i2O8eOHqH`cdR!K_Zwjdo!PIQ$ex&d#uOq4$UYl-!z>DLZF*c~wu!<_lkH zy@T(|E5-N5KTjCh;&J7Kj#wE9#I!|Voi6E4Zz)puq>SvVp7bziy!gyP)=pg#r9yTa ziF(cd9{1Mj<AE0a>nDs&yNXOt1i$f+k1-c0VAZW8_KAK?RPK+_^iQbB z_1K3I%LdA0$j^8=IK0kyk$-7gHFf-HaG5Q9I0PSQuOWS-Ra~}Azbp3kr;QR#ovaGY{EHu^wE z#V9B(+B6|k>iVXTV#AgW1a<?rO8el(@a6D(+`a9w&Z2iy=ev5Y^`L>T zvA`Scz6sQ7T4!9?<}Puk6a^8#jDn3%rF28VwL0DBQuIgFv?h@x(#FJ>W|;~c2~GK^ zs=okIyd5z0qO?4I^N(|(MJ(iA=nT~>jrXhV2q;xF>1DKJd^Q{#WBWPj zC%~#}h`wgx#nC3bdu{roxY|m|mvk`p<%9sCXWWqXesgr|4;EAQ1klp;U!2x+R@r=v zH4>r#qu!NzhOjRYB4feAy(B24U;yAI7R^Mo5WwG!R37b*m>m`OULS^=Yp*m!B#`;N zy-8o+icV|#Bx#s6FO6Jms*~ctu;DWc2jgcT4tgJ~o}<8cCm7OAZ$c+#^iiiGUdz+1 zz>wR4>@9wY($U`L3)$o({##D*G>Z#8$-DB$eFYYKI)XEOT(J5s5Q%^cF(l+LxAW;t zD*GNJL}yYc#gWRq_o&2)jjlR)Nw*3sYZdNo&aW1((&O@2z^FuyjSBRCkE2 z7l2A39o2UtIk?0Y$mhLmi!Js^nj5llOpYxBH|@8yK@w6KN|6na#X}09{l);AGzJUF)K5uKW6`sL>jbGmR<8x@xSo#*PHA4;NV8bx5$wSZM&(~uO3jP;koYX*ICCQ zWzeV5z&R2`cRu0v4xq#s>kO1}0Z*75KD&>N&kgdOvWAZn;-~uLD@1H?=&=VP`L^`` zoq8vxoG}x$cYeF_`C~42nTk%>`PyK<@MU8BKRM<>sFF3Jnk5eF5a)&)#a*tP7Avtc z1ZR8b4eG9<@y}gXO}B(mllu9#B%0;GI`#=u%NA**_{MYvsO^5a1P2+pUJPTB70lGB zUJh^Bksk&>b$OwnU1+4cw*(h~r#>Fw8bBtTf4rcGqE#eB z8M1fz6*A^JU`LCuiCTf%4}$^}#ANQTLoetEbacKoj-VrfPx zs2m6Z%&=&t(I3nEBXR5V3DkNU`XJ??^kfhGu4si^;~L_IwT%|$O70B^20}if;6Z~- z>1&f0fpI^VCb|ue9RQ%W4x}N*{qIRPNcWEqHxp1>G7olw&B(VgBlSBi9X?XX$A`ZL zhx{l*v?6vV(4qRdaGD=y|7ij2jBzZb;6?|40Hou^#)-d=OJ z-Ja1iiLUuQxTS>)8WK<2FCXP+`JU=!`Q zHf0{vOb5p{*X563|D@$jH{-8{65uhzOv#P(Qcd79Pb~@MXCPqT@)a2Sq%bDbs+Wk= z3nXH~!(=lzV~c;k@+{jey=F_-wDegwUwtqCl_p0iMD?{DEe5;m!vKBKI-wPE*uxP^4_t-#L%PvWk zS){pve`xR)K3ZJ>W%wV)LL*^w;_;=%4mY||qDk9%1&eE8cx5#`&g298gU`dl_>htk`(?@s+Jb*>^P!*UW42}*IXZ37z>m`P@Hbc}wIpZYUpDA|c0KZn zxcyHmrDqm*n!+=lkv@Rq@;;JjvJiT{!}Fa8Ec%goP@nkS>$KRh8{FXQ8d{X$L_#Iv zv&nSV0-^Q-p9V^mF$PF%@)VMdDxbX zSI!tJeEyLsE7+TZAVv=$Z)P1*M&uj02OpW+ZN0^Wjc?28;v^%9lP$!ZN%c;=svc?`Q z8V>TBW$ClA?3!S)GVmLR?ykepA|J*~yNdCi-qJ8w`)YBJU482Ln3|3;K5WBk_Pf}2 zP^6j&5OMV7fX!rY;VUprg41?xfqU~^EKLM2o)$y5EtOFmmY>_*ANPlhom$)6?zL7~ z=gs86afNRc8T$lg3nN&StP0FL5-k~eo1I;BSq>$Fto86M_3N@c8GRWQ$gass^H=}7 zE#9B?1hep_TlJpW76wb&YFvSb;_&fXjegp>t0*Z>(pEkM+@-e4?`EJZ>!qDyUaP2r z=YiPRXWQq4)yKyf^AbMzdBPJf-b(b3*hhRyBhyI=|E=TX??QypW}g5S6QB6S&i_R} z5Snl9gHmm7%r#DhRnctOJ9IG!r!{Jyk)DPTATSa?=X$bJ=z#HxXBzfJ z=4v%_^q6@AlOLXG+c1_WC8R>ZPP*E-RwukM$Y`e)T7odY_;jH-9k5T>peV2|Dthlg*)2JCNzSl4IwxR2Vi?eBE$b#!#RB=UK8d8OL zI@Uk1%p|8*>Nz1yI&1DFrFXvD8>=`)C*AZX0rg zT!lP)MH6w#q9N4x9mguyoXD$%aZ}Mre=VH+8XmM|T^9yVCvyBCDX#gHMWWSOCy`r; zz!_Io(8T~n{~vM3MU!oD*KZ<#WIZ|XjtCD9BH;?#2bF!*z=M6!o z+et?q_+@BsNXtI?2Zfd=FKW(vT}L#S6WJp$f4|xzWzC5q*6#^fQ1|+XPNXNJM)G6_ zz>4_oFm*LYbo;YN3k8=XrB>n~jj0Bc{hex2{ku^ia>z#&pif;X%O&hRR!yWy60uK| zn2Qw)v#1`gn8PR@E*Q&N^^SEb5u}T8T-px9=tlXZGfhBEO;WXU)5W(*TbCh#GSvkt z#1WoT%zDa=^NTLqEo_&F%vn-f=r^B2^OfJDq7X|@KD{WI?QiH~e2FYngsx=)fpT;ozce^p3nSKa-6GOS@i z{&ES-fT+c?jCi~yWe8k^Z86c$mE#f@5j-lDZ%Yp(W+G$je@I=_fLGy6C==w~gPx#n z!9VvW86x?=a<~G~*vP)f4V|GQC|2~=;0nBHZ%P+4sxAVwT1ZGeDEJQH8)h_BgS(ZKgu}X>+ zXk`Q{@0-O{!K`TlfH*LmBvg*UCbZMP@FS6Fi*q!4T^C%7SZIUu?iN&Jv2FP~n;RVY zG8ortN3>u#%V*LCEDpSbwftK9cOT1+_Ip~`+zP+zgHrFyv*!ZMo~(MEEmh4{it^1< z8`M$<{s8wXSv+k{KR6vC7d;-ZW)_x0unG3E z`J-h=|3jIUZ~x@I=31tqdd3rtI==9mw!}jWpiR8kFEAZ>28j=-lqe=VYL?sRKTwS! zH15s~dQEe8zB|X%{>Gn-CX(jU^`_zP4n}u(AN{Tf$KuR~(Sm3SBr1(e6xC3bQ=g^E zn(h|`-mh?XD7*hnR@MIbb#KlJQGPDgrh0dH4zkH*^u_)3^8*P<=+L^Afi&748gD7j z$bNgi9=KfQ?T^qVqdA4^rB)Vg;8!J*(DIF^s+4~9u$(Fr~aE`jaIiVGA0GOIrSlG%8FpkZ0(@&Dh!s9L3%GI zM4=ZZIy{pXDu;Ekjx3`lV8~lYXeeGAx(#0aNScVu(v2YurQ`=ssIX^bSWTtkw3)OaT6FPDU zn_n-_7a-7PTv=+W>8R~7&I@_NqnH^W=r@35Q8MOLgUxGSgB{2$Qe7>I1>giCN{CJ@ zu6@HG)qglLaaganZQ_JAS^(KTu0>owX6Fx%+Vd^Eo9eqs{!XBIgf*7|uV_xc53D0u z9044F;e1fxRcXrJW1wH~!uZ*{G<4h^U}VGSUa&wAuMk2Q8Y?E?*Gx60Mq;-koE7Cp zb^(Rgkvj-(+`7}jg81? z^f%TMgWK!+L34Jkb<&IFCzPm^`RsBv;<0mfyyjqmtkL{AkqxsXYrlci5eYQc?U=jf z)NfV{J@dN4CB-g|ER)I+RAT=Nag&>5*_n0cw)Au2kP0mfxJA&s3T7^+oXoXCLbf|M zMx(Le#zTDoqiI#^tf-c(`*zY!Al9_B0P?-?p=eIMw8D6ZPqK{(!8BtI4c%LxXMMf| zszKZjgbLR7rY+?1)+7}&fQppKr|xcZ4V%Y@d>uTA;Vfbb`gG;-*}2PSCKQ)+w_#!a z^x$bVy|HcO=DL>{gwM6q`5kdZv!e)o%UGC2jJ@P}7f3iV0jn7sGRYD7dj?JSOE#Tj zCZl4wnUz1T#EOGk=qAuasMi*`TuIe%7Y~`mh8R^U+4hLRPDH1IF*zCbpN0Mv5=4u1Lu{8_*E0B7##*J|8lvDKX`^9 zG6&mv!~0)*)A$`pXNHe+{)vJh$lwgT733*C} z6WJ*l8pc2xJjlSLHN0~cP=61Q)W9Z0>WuP)p>-Ky6AqYioMaMtRMhzs*<~3XB;A}C)bPW%ui(?X=&s_esK zn53NjdjDI!s6DpThQFcYG>P8|rMhh&)|g zo_<2_mMp@bX!=VX?E)XSN^E~P&E|q0ccHyNHvCr@xx;$Kdt57mqE?H4JLKTpH{UuDm^+zTtD|SWu=cUI)qEK*7W5vsu%h3!lXL zo+Q#&zR1?Ls{8qz%7z)UvB18Rq+dBdL;iM=IdZ!PaACgaR@Er|Qy1eqn2`ve6z;5p zf?7D#cXjVT-}^-iXDc){NA7~eX8FsPjKpyMkEe6+>+ApD|FXGk+qP}3TDEO3yH_@r zZMS9HwY+RBEUxxD?fv=w{(xS$b2~lHIS*Xd{Sw9SIbTowoeC@uOH4*&Lmd)yVxJO> zk9sUwv5uVHUufBwD_J#Ua{(V2_;S**I-#U+F=0PDPqb`eRh&ar;Ptx*K*9JNB%F7p zE7`~edZ6uiBg}8PZnwGu!AwXe6#Un+?k>?2e2Juo=HyixHBxtd7VmC}n2Fi=?2edh z5%zD!C!Z{j1h5vRVrH*HezN{a3!O(Q3*AM?2)H0P_TaFg15<`Fk%gN2yr_K#vJ!e; zYDkXd)TA=2r-Q-kZTDQ*GqMf4I5&o9H!1SHrCBlt&;XNnklIJFyBfoC?q>f#5q-cDf7b zw6i@vo7QYcm{u_FzS-G#|Hx7_Nh$|_uO5gs2k8c-<_ovU3MH6nqVHLv>Xf%1z=ql;0f)e6`ww$P(B$9t0-?=Kzz;-4 zs+o25$4<8U+c}1M7xj|P=j?YPD@S$9=AkK?9+qT*2$yh~EV8Zi^#R~v>*%FCnVQHK z*?N!vDkFvUX{yiIQ-qnCg}^e|W$J~-ED;Yx$yLg%ppsMe-o0k>HwOLWQ9w}4T-@E!Y z$QC^R>>~5Q?C^BC#Y26FFnrgarb~bd4U%OXBm~)G!TL}l-SM6-aqld@=lh(l1oQbJ zzcvR-3KC|k;nEi)Hgy|kLz(My>=zD4{&SQ1OE`6;TI_dkY$Oy`!=S|XeJbskK=vdz z;7>$Y)FR5V#TObfm}Oi;%VK}Xvt-;kd7apaJghbB6BtN*D8Rd<@y#r1K*tY3r^y1(=j1_-F&Vyz?`)`QmxPxHB46+YG_S z5gMq#yy}o3D}wTA%Tcrx*@D^rd;BW)ld$g&ad+;34Fb*)1^zicFH(3k+Vw$?^B0&! zHaO^M3J2Hc1ikTl7iiA99vd=Di0?z{37u)T@>E1?^|w+CFBE3a_LSy|xBye+e7luL z|E}g|a3}#4$A%}q32(m*>pXM|3oSuJrMDkM8E}>@e0Bi&L=Sm1_l)uzjW`B7q_01B z-*PmnXwKDl@PdUj$j8}}=AzWvj&*_j*GCW;{Yyy`9K_lt!BiJi#x6DOm!9rj8^%(y zN!Wxhp3B(D_zgw#a#NCaW0oS_Kl$ObzsSqUK)=;VEYmygG`v*DpRL`c1Y!NskjaM~ z>FW*kYUG$YF)~u9*)zka0fP?Ukw8!zR7_!BqV8(7hg1VKuf{TcbGL$7iSy_K~C=sA6 z?k?s>^~JWdAPm^J!a-Z`51wD2>j^``y8jUZkMK~2IxIS(d-)@O6!Pk@qK080C&XuS zJ}J1RTV0JsURadh%0rOD;{xW872fk5Lx3o95LU57M!jTNW0-1A_a&E-Kitd3-(ffD1YmiVvZhu?qavO|DH^-1Em^X4yDf5Sb)hC(2NlALubj7$kO%j5 z-!GdE{9ba}XvBJH#t_nfFHLsB+gRl$bUfd`Md}#NzC(Xz6!YyxQp=q`xMLfMHqYm9 zksvB8{n;01`j!VTpwgt4IRVV@ zQ^6AgWhJ3X2`LWGZ_KHZput+5Sm+vazEv?b)_P*F9W3f;K}hXv!U^%DFhEFl%$7?+ zQwE*9mKK>M1A^Fkw$j}r#8c)E2}`|))!RV--f^yPhQtJ!i-n&xcOADD?@4#_;R-rtIq3ErK^SY5K-r1q&NmLCxudcu98l#wvIC*Q7$Yh$;-L)F_{ zmQJZ>BM#E3iNy*YUDk(%i4n!fe!T~#1|AT3H%9BcJAg%-uMZKaJrg#m$O+p>;$dmW z%4A-5w|~O#)7%n35KUw@t&;AN%u^hs!pP#1Hla{sm`ip_-?f-Nv0;QireEAB`St`X z4Qgo|`T_DV(7brFIpoGj?(1jG{)Dt8!uLt5sFUGwBMz#~;(Or82A|Wi-oC@olYrpj zH8f^O>fd(WP3-EE*_TQQlIt!^ozF9Kge}bYWrC{XC(j?Xab1LM%i2&FyF3 z7FP#VF8;=pc8<9*cvU~D@*X}1aP9kdHyW(!(BGobIa*dojv2QDE;#z3;gUP8p??!x zyZ9Q>VDZ#v99uBeOOHx=>`9SzJjU6%eIIWh9+F00uLZ9g7;t^-Y$lD@MWcTI-Wj8w zBgU_zdgB;t!l0(qC)jFJn?wqi?oS&}_|FYEm0uQ3FrFQy1Tf*oa#$UEaww$~!U`G* z#ir58!PGezPv*~obYONShw7G^(9S~{*59Wz_i!%Db(Yd8awE<0nbKSE3~BZAL_v}) z-!5iF*S`ip2y@|QKK%K=8C51fiv>QsWiG2a%R&39X%_-&qiMf@z$4=Yqsf zx7jo8`L?IzG&7+e&UO{??P|n{>_W)vZ((LYM)2Cyy#VIy)9^pQ!Vhgp4_x+kZbEiX zW!PsX5m--{&&?>A3ikd6_AxEpPF8&evjiFnL#|Qk)H=muTfu{y+&YMt_AP8gtbWXJ zw+wW2yaBAGFYzL}7E^N?bszhI) z&GuzS%^Y**lnXm#iSE*H{g1yD^-hV<{6=h6`(*3iW}3O#N)SgrEXf}5@%Pts0k363 z!WNd8`{j;&Gr#H@q^dR zkIeZF6;Cv@wsavp{(_4v9rEG$;S|#i!^ol3tw_B=le$gNWv-r>6XJeHWfu+7dvQs! z5$l$ZGuMGi&TtnV?hQ3PCMn6F&0fB^<{iONg%%zr-{~p@^@HS|zVDYjHD-A3)xB2< zua_KdzbNJ9RO<~v!wp>%Y`GIO;C!mr5v)`{p5*z`ne0UTWgzWy%%?LJC|h5}cq`vJ z&8p7HgejWcR1|MzD;$nF7(YI8qC;1!pULTD4b!`%+|Z8Rt%^Qu(7GWt64J#fksSCw z*496{o$%~hUsXcTT>k}7E4QphXPcPw!bU@jiTgtR#MEBvlywt8Mz?PnMMxL*nG(B| zDp~n;nd{AU>`mYtUfB`ZD9SfoiPCqdg9}>eF^~&dyj_N|5b5v1*|j(|T?}5Zpnkw>RKD z!9zmX=l7PJ@Wef>KBlXmw8Wa-&7(CPT8(-l^HL0IX2XwyjbU9C+C;!jw`H2=-3F>Y zfS1X{nylFfd0W9?^C>>BzTMyY_iUvbZgVPPm}+-`_px6B+yMuEvUJELXS{S2O~73> zotGPS-!S*hGJ6)s*JyBqYs{17s8to{@UXlLa{! z3ixSTN2`;UpTFz#%%jFYYmJX9z)$~~NmTa7T&K9`q$A~Tz%_o+r~{oxZ$V|aiqZA7 zMw^mkU9YU$jD7u}YGD@8oo6FJOtDo)aX{cGne~y4M6%Ugd|u9vf(lHo$&>ld5>QgE z)Iz^W>I0r9;+w??;wDJ4e1tB%IN!En6MPme*bS%*^6|tZuF$kH@v>2&M)ib28C?p( z>2GzjkMqJA<|ed_$-gy=JM7^$3+|V7D-s4>ips-M@{%nuzwh5uX1VS9lCJ1!`el2$( zx-BEP%j=hG(vVFPw!VS#6^8>13WSnpfPoeT;MD&Uh$9;E74C{}f^H~~Iv zX_kX5d*}trG7XBK8sjm~uYtciSwyhTTRsx|R>_p=N9(FY!q6mqqRBE_y$l7dP7X5VDx2!~!56?&w^NbaU>Cwa1FnWvAGN71z9Pi9 z;4_MgqbU@rl9~(LOu}{`E6`=58}F^YLz9WZxdQ?IEMm0K5Ejn01*jpXr3>}o-?x3q zuFZyysl&e9eXWSQ3g{bG;GvZejf1)Vi8A>?K8=$b+veydt;rPBNj7T#71!pbM?kUXid4bf{U0+tVlLi45`NuA)1gh7mRL* zbsj=7TIiYIX~>?PXTJaOC$w%!_Tgk-!!{>XYOz33P{Zc>N6OjC(>`QtjE^r_6( zuULz&(i0*-4bMn@5iy;{%ajAwMTF`v6CH;XMv}bNN!6u5%!@SmA%Ipc6T;IkXlZ{a zxfQiPFjnl?&wm7IXfxX)-|8GH_0up>E!E&n|kAM~H9i}jaRrvtvmeSfn>?kbIEZa`bF zStrBpx)t%>4)Hh*1fON`hCEWOY$Pu%-Z8aD=Uu5e-6xD8A}D3$3@Z2SXd=CSSkh7Y zCVe)ftDkeJdTu8SdOg*F15H9oiz{=V#J`jFbPng}Q!}Er-_b!lXK#4TJzksu^a`{S zsFb4yV7=vc<|R>f0AJne{n=nYv2q{fvAzu9PkBprI9^4WF9>X_${cN7dC~@OKsu3R zW{Z*B8apz*)V%3GtAz+={~zc#G#;@!gpSruI1fz&E$cs?T1FBP4Ix1&0g8Ga1dRD3 znQW1WL%e}+44@&3pX9xB&T0xLwmP9Y^>ucPt>^@qL-O$%iL^U*5&cdaFG##^q)RF9 z2F^b;CFGf_pA9MY(a=wC2&L%QdxGw}hdRtjjfn4u!a10IPa}_Q1w{+nAsB(+Mj`|6BT1kxuojxG$t;^C{TZr{1nQuk=omgZ;S zG?|B@oe1vt+{_dZv|79XrGT#Mc`8&TbqLO{0n( zhW%@A#xQaRdNJQWxN^4PLPglHogmt-i~IncA%+TUI$0a$p|nc8$SK@(x{t>GP4V}Z z|6Bn|vPvYhB09v0jY7V4mOMQA2blxLG#+m_AWC~R495~{NS zqn$d<=A^|x)TI?*tWrWCUV$=d9$AB@YUgp4Gqmx7Ms#U$WP3M&yOON-YN@Z#StGXmoo_g z&=Go0IfQk9#Uq(M-uWY(hWYnAs2GrvM#0JfyuP;7IA5_hOm;lk1bAXp7}^af2JDw zJFxUq^cdVYd=rr%@<}-myY@b+Z8sJb%l$^j-AA@8wpGFRfGFV>JxR)mGnPT6+Yo^Y zp`7Un6-6IS4oqJpoU^*hT@w;P6}(m@2Mpf@*6mA#$301iAdW4j*V7HYQ$mXD0ja?Ve2jSFiM3c4U{TH3MRv5y#7=P06q%({s3QBVY0nN zQ1E@YQV=7UYFl)k_jIkyZ>m`i55YfIZOxCogqyd#6fJwbLm8gYiGFer@~v9mndx^_ zX?i~BTTjxv=SUv%PgcpV#oyz<2M1E@KTgq{OUOTeX{M#o`vo4vHZ}p6(!mFh3ko|& zuvxO|RCem=E=1d{`b;f3Ytsd=GfNIw>Px|IHB=y3-c*07Y0Ve8m_+1KRPY7!rpm_W zof)N{(EY2{M~GkVs%ZzfgVy>C83Zh(PHKB$KQHbVQ_sswo$JHABrCu1MdnQ=+Vq1u z-S|8(2A3(Twi#!p;Wn{Oxz=lHi=|7%&{OmX)M9-AVYen+-l)j|c-BlLa*!e68pJ1t z&$>fnwxtlSLAf7e1F_WiDJncr{HNwECil;y3`hSUaGn+MOvIFZ+<73ARJ|Cox5At5 z@b@v%myMUh0OOlBLQoBXJ5b#~CgE)CV=08C%n4QKIWCK>mU}?l`ytV1K>(^`2b&wE zsT@BN|JkGvEvDT|O*&=5iWKv6X)j-Tz(l6SjcpV5Gij5~@CuQsdx-$u0iFhhjhyT> z@Hvh_>QL!0BdNg(kKbPq6jSPYLtrP&qLB%T32!vTmPa-;H4jH z%4n~E&=z^C3?wy8RT~a;CzRAmNFQ)DlHZYhdI0)Y+a)^vkN@YGj;H+-?a`(n_VbQ2 z@yMXWf1bj9Zle!5D^er7%Gj*xQsh90V4_M*J?%+H1CNo^xg2WFe^z^vosfuOiqD%23{DcA>9{M$?$XO%m8!Pp4KxpEZ zTIO68MAs)Clj*xCIq|jWR)}WF$e1p?AC?5=PBBWhJ;NL@=&Zah|Ir{s7@C4xo8~uP zsI>W~VE8mDhG4ZX7HPeI9r=&C*%`9UfUZ=&2HUQZv5egUc$@xCLwpbg=8SpkocxP@ zLydrRkr%P71S;tQ)N;l#PJ6+UX|?Lydpc9^i3drEh=e5Yb|)?fVEf7Sdpb12jS>&R z_68s9Bk~bWPAC|7uuG%%5bemm^;B9}5uZ)dpOR;shz?@kff_&Qy|rXxYKu!H^iQV! zrW9JDWzH4D1haF@ui(o+EdnxXSPgqppc!XVCL+}RC3-(^Qp0^f$&4Ga_qca5y2a4r z{44&tm@eSC%>RIzyBC|lJDGRAu6b5cV0OyQ81}dW z>kXeGxGVtmO{oh$(pZHJcd4KhVXAi*{SH8@4bFy=X_xqDazv$#aX}EValQp*b(OA@ zLU#%zcgV!g$1KDqI-%-~8Q2Qv#pPNcrMrMyw7Uj6!Sy~l)&MaAQ>tuXAFGrCOt(zk z4h8^DJhIn#AY7t{+*_*lUUb@)i=5w%8#c+f!D-^-toP^wKZdaxpYl+Uf6^8+v-huR z>jp#Gx+}n__|)7w;Mn!@9`eHr@8$--lo(_?>C#g(0YwjVO*M zcpy*Z@%dG(UAPqw)GN0Ko-h-rM5mNojm&=vzYClGHFI&=jyz#?R%J~PMS1P`tqP9r>Ld($q z|LNX^{J4DIjczHnzf6a(+VXr>4@IIuOTWbQ z94auI>@+_*-+j&v)@>q_jZlWsQRlJK+iEi8D~Y5bZ4kdti~oEbL-Zow(A`LwyMnw? zPIciL095Q|I*VWar`QO_A}xVU+JHoWTJn$?=>hg+A}}Xd4Y-OU1R+?(v2Q>;u#K^+ zy95xy)7l*l^;Myu3(DF-9p^aeTg#7e54YOIz(=Oyq`UbJ7}gb7r7V#$r+?zl=A>Rf zvbv~jqaE*0)(Sq@deCroU$x;R!Nt^#5NE{AjAUAEz2d68_?k2kx&3X}mWgq3r;=Kg zqz%16OajsleSVY&ygp_z1&vzdN7Di$1ha{|Z{TT$ztHx|huly2ZwW@%j;mF6)XefMwTZY#`LP&8Y?lg64r?wh8xVH8LS5!{2~#l?ql z`C~S{RHD;6_2A#9?G>AyqcCF&P>Yidbxefa=m#>6@Q|Q3C+F_|V2oTLr7H>7O?+xo zFqlMR+qEA0%ua$!<0x7v8`YuaJ+bkSdU7nGfDxLdgl0cu*H*lF`2KZ6@){5Miy`be z2yVlrc_m_aHQ2KQ2nuMSV@7k&ShJ9ez2$f6cV*i%K`4FT=6qgU!0|W=E&Yx*-wI&s z-v(~AGeOf&IMVp)l1dk!1`YIeYX8^8$L7%A!@fywxv5YPhM&VCqN3{R&jdA*6SL*| zC}7J9zA)=OOP+*!OM{L`PY9(U1j~Pzgfh%Z+5SzSzMx;2lV$iwi#0^f=VR`gI&en1 zLI3x|#=D?ELs>!`4Nk%FIm-g7yrt4pxi<}6ZIid%chs*E>Pe+i&3DPs*IWji_qkXg zJ5nrx%A3Sd6ziBm{MOgDF7@mj-JbcX=*;~(EyApntqo1=Bv_$9m7bTC2=xe<$MyXfcbKzl9EQC&=4cpY2 zRb)M|6IGCYbSM$S!lz$gjXXK7D3Zpi+XFNZV^UcDfWP()dDL>Aw)gWK3_lOsJ!BlF zq)#I%FfDT7eJffg1+!#RObUTh<>z zrNTMft^l&_3%O>QAcCOJ;dfH9>+!)y&Rc5z#m^QDG&UYQl?#l)hsh)L$#d7IJx*iG zHTGj6BY<{eQvRF}F3yIT%t1$*f4@uQM0*S*O3Bc50AX%o!%W3r>X&T+gUDq3kBQ7P zhP=q^)-CiMu5}+{Eg>KUz@DzEFtPdHBs?t!pVLY2#W_J~J*Bp-0%698EChvHk608s zNa<>O0sb`vBSsa|p@#^B2&;|}92w{J>3Du;z-9l%d%)=YTo;}whGF=NYUNH=(mk{s z)~aVWFhk)r;c5o;3q-AYm_Y#GLZrI$Ir-D%f8v(^K&*B!)(I8W>TwdoVR2hiJhBZ< zO8SFLa0@sc76ZRS0S9#(_CHcg7K0377DH;c0P*@1!u-M7VY@t?6xlt41fpgUJ1VC^vM?Sn_mXuHR`R1}u0 zUU|$_8ooLS78#}&?sy=g5=r0c8lg!>&>?K5@7`Vfb{)&?^p>9fNWh>rN&H0k(u86j zijB=wmuI1kSfOT*Tl>)8pEe#TEJUl(Na-ij%Uf*T%a*y37H0x;Bwa_WbzaPK$mTCn(I39F zM1WxR|1cD`DibygWQt^T&aod@ucm#Tot$AMm{Y|hJzKktL264P57`&Y&qyoA?gu)K z0ZF*<|63B2c{uTxQkRC4vm%zWVXLxzL#Wr$#?>|I*oc@cTOUDcd=bX{p`yKCo_S*@ za#2RMItiE_#&5)bw#HVCh{bIaAKzv@WaT8KJMMF6pQ-))U)S8UPYKDQsuYej4;WwT^^{jSyql@`z5#32V^}tqBkplqT?vv#uDhr4yLItuIXOt}N*dMry>k zUJqd2T;tbjJ|TD1 zmC!Bj!HdOI*i-14Eq})6Wzl9tgiMA^WFZhS%JI(*2{IWUUfv;`4WKgcQ3~ zY5!5Pe2Bd8L;qi1<)2T)Jz@Yc3vK^sv|AcB8ee;T!_V6-J#$WMsD1S%Zl7fnWJsc~ z@EQL{!^ot}q5t-|s-xVAasWbEXPBuMgk@Yf0L0};=rzjKMFN(~<~CT9E;lwX`(5>G zWM(?BU?CUYR@%+hg4)BvZQ*8A>)jLR zR9>*uZ6LCjId{gcg=wwA5e$#2q<(9-q3;=p2vzpg7NEm+1CpZ*aHqftd}V$A)0=$U zb)oa%;8Vpp@ijt`pNIYhERsulQ9xWd^6YpY$IoJ-z^#ex-Ux@`P<0O(2V{XNF)DF7w3rsqR033EA9HeMK z$7RZDe(D+zh5TWSt97gHV5jh4znnWH8JY!K(4G$@72j-zQnnnBZ}d-Z;uY-y(4h1) zk^9B`k)t2#3 z;ySlhlca(9A*}aU|Ig9*ox)=`K=S4(B9x~D4l=ZRJKU!HVOcDyY8?l!99ICReXA-x zLBJ_s##bb=BZ*Jpzh{@(f|f8^ai5fgy?%afv<#bd6byg)eA*A}iH$ zWjzSGXUT%P`5$Pvfj(;_6oHZxyQQ1Z>4HKRV9b_xPHSe_)Ykoo#X1%*(r(fA+Bz;O zNY7$Rk3?46Jh>T>IYx5hC|cFAJ>UnwCPZCEWcB!~(KAczR~-&1-;xFIaXBIgC2X!p zZSW$`!WFCC$0F~I3t>9G7nwx*dwT}8VNtcK>|8L8XVwK4|J#~!lE~y(n~DtlBn}*} zAqDiM=Sb=YxWZqn_CI9LuYuV49o>$9i&n%B(u%e-kZjugAh99FW;b+*xW_nxWV@na&y)NEm;I{J9f5tM)Bm*<1*ZMRt9s;>5dJan` zDE|S_j*ZxCo^bwoe^;Wjh&k{Yf4!UGC?Hi6pm4rp64_UKn5;S?ZNeShbkJ;_waRir^%WX?W6o8~$mJ}~KGIEq^F}zlwP)rW z7!QCXqemVEP39rmu?6Ig7HJL++`p||XW65M zGJ*D}od~8_Su{P@rCe%PBT2+T@WosYXlZx=z)_qz7bY#EIRN)mbNM|V#0$=|AT_rk z+sIYO?r-cg6g3!rt)a>cy+_g0N{BQ8ozruie7RmQa#fz00Dkdt5qsQPOahi=;fmK+ zK~ybd3TOlK^6k2uLr>EEvOb^0mAC))Tf+KO$hSE)euH_)|GLOSFs1 zwC?3XR%2B$+0QrC3%5vWh`)p_2=cAQhgB z7u=`&!#JvqUimb!tR4&CVLD7oV!`bpNAxBGQdlI;9{#tByI&9b?hV2Mf*om)FAG_m zweks-c+HXPflx65r>RNqQsq8L*t^JOU=0PK%!+&=HY~CZH;_&~wX8E1FLU?d^rfpQ zh8BhWlO^*buyL63DiiRKnx^%TF{>(xlo~5f0#*7`^g0}gAtL)KH;F!g$dH7;28$~} zkFPDNtyN(`#VCy`$hb-|aGhFzaRF2tW`*RO6slIRSeZvOSiQHcfYutwRCBuc7;~uc znw#JS0xuC%Z2%}PxL2D5=p#Bmn{aUjNk8G=;$xG3i+3+U(@v2<;h?bbQvot~U{R-r z)`)fK`_NLiVcWA3bb5gTM~etV^zi;Jm+k$-e`YsuxNQhZOqPl}pQo5hJgs+x?NxTb=P&kq~#3S0uld-8p8=B1Y z+)Mvp`51;Os!@rP>6FO7CS(PopF^XhFDgJBp8_aSY_G%NoI`$H> zc3z`yd_K65g_p@r&e3wK2z(RrHlIld$!kV`1~bqsR8}}X3^X_5M~z16!3S9U*?or& zm}ke`bVo%-^5!4Q=7EO}H!(`yd8s+(!AL40&-)GOLE6FD1d{!FnT-k=uNw8mj`1g* zlf133kDe(>pQcu7NWY{&pimMYLp@#*iio3j!NVq&Q@j7Ls_W! zCU{AE#VT)SZ%no2>9qzUf$^@3|xP>;jUzVW?d#jamH2=7mhXKOaqn#L$rAxAfX?7>RaAcNSn+u>@ zTINrsTr`e*QCJ9&*wzxs6#hZ`(h1m}asAv3)iWK2sZ!?23st|fvYSv3tLC`HUwKCu zu1lTaoO=txSzW_kevcklxplMiU)Ll_6$Bh%PBB}v_C4aYInwjs>9`YC{URo7MTI?K zO}uhJG4Is6x0vu~(?_NN6E27;1AEUkw{~>DDLB$}z-w8Rm~e5jA+iwIBzG&%bX~XF zJX=C2nN`*W6~%;jczSi~HZS*ug3c`{n4a#}qK(2A4Ia=bFBOy9zvh!TY$3%7vV1f0 zM~1PU*|vUA!qS;b(9P_V27`WTr0E7&kO-U;AYjq>Mj)%k`ZKsWgQdvyIPHThJy=rt z1~{da=>8;-*{~wdp89{gjIu3}thRWcIWcVwLY@5qjys^i61WZS9<@<*hkv}(J)?_?MxefVn5q2hDF;0Tpl%U!?Suc{y=g0ji&`>#v7wDH1 zCjD2oNcIQ*M*}8{$M33XTrW&CY$~YnMWo9b>s3>+ymX3*6+h=_&PLdC$?+>lrc2;x zA-^LVGj$Y|x-)8mHS*m_(z+pcB|w%;t)1HI4ysT8ET3`#+*bg$Sb*g9IM@13Cz8i$ zP$x9@mx;@^%tLK&4*lY|ySsmn`C}YXu+JJpl=OMm$}S&I>P1OY6c*yHm@c8O7_t*0 zxg#N{lZ`l&onK`}J1bcvHS^Z0eR~-{U12})eIX!>{@A{}bRfBsbZ$D>XM4{i;ua5~ zdoqD0Xr_s2`FFO~Ecnb=TYE=aky9zYeDYK`q1Co6 zNrCJD`X4?MEKGK6fUhJ*+-l138T}o3I+_AXoFfU+k3!fHT5dG#fS$?xD767#a6Q)X zosj$x`3Dwdi_@zQ-FI^|sS|?^UC1_N7x=ySAhci(D3Z{K2BQ zgU%;xjmx@~^Dv{sU}Z;a7qwwJf&VKpMDicpb@v6mQix5e8lZM~}Ny25^v*%t!$zPsb@W~EdNvq-Ah^uFR4x@ow2&_6Z`-o3krBPi{&TOrJG$@ zwFi$^ zv{F3II?v@#QdcZZ6-^dbB=R_PeVuvNs~GG`oJ*VCNBoO|#KFguiS)^uFS8<+C%wZp zN40z87)e$ibSsKi3h}+rl~~cydc7KHEc;cS$Zt@Y8p$9Ln1l{$9DcbJZ%n-!)i5&d zLv{e%%afi8k}@MY)yAj5f+R##B@D~g?LqRA3*REffSQ85Z_db2vtuOUgL<%)g_DgA z4s7n(EHAwGiJzTe&VvJ<*ex|NZmRvu`f;ZkQ6>&N#VHKt#5*MuvGC5PB$IaMonN?p z9uYk$`j+?;(gvSKjwol`9hyj+OZBC0qSIFljVmW?s)Q;oCnhYEmX9n(fKf(pz3*%v z>Z6OB9(RqfIGf(*j(9OU(UW`Fj_OW8vRp$&itv9E7)utUC{AYgzmdi{>P;Fx3yRNHGkhH$QtM&36v(vP(c-RSl!I`qF)i_0nV-9h4vSbzpV zFO2Z!e^jW?PF);hDIIXl9yCr-V$b?PB2p*nuL-LJU}c15I0EJ(G9T9Fm-1t&L#hpOX4a zBjz8=08af5)LoXqetq{5K~!G8ayN=#b`71f5r<`>xN0Cfikt14T6FOBHwk1Ws%n-{ z|5kX@&n0tO5BRf)Xo*c9L;-58HY>A6jW$^luaf&RwE*;2S<8# zAf;BZFCRBkSd4|!1tuYLVo;x+hj06yCl8XoOS&fT^&Pf4^3>mC1C)rq7)&lF`I3UG z-Tj@?5t9u~<1|@-BOQ(>fkt0-@Z>5g1v}9sOK@PxWJ9`Cw04TL(u!}JsSzXEB)-gd`o1ma<)h@D{L! zT_o;WVbbHxycv9t<10uyU(7;SFO58r|mwCLu}Ru11pIIHj8$PeE@2*^kUynLd-UUFLREEptGPf5)~ zJ;8R<=TXp%d`8_)HGcit5brOTa@Y&Jc{hJ)6(w$7w2@4?@;&P$O%Cf+fckF;QHlBR z3}5wt?h=#T@%}$h`XgKhDd*Tv0KOjG*uaM${b*ehOFa4&_IymhOzrrm->Cafb?Ps7 z#z%#w9Anoa-~9JDQUF=dr3?v!E_Xw%fON@+E?o+ft4o%L)F{wr&T5M)3AcZ|f0v+eEjbQ1uO&_aDu(SG<7iK|FA1s_yo$?^`fY{`ORJ?1w#)N7R(G^hMm zC)Z=-ylEVjwB@)&Cz_mS11gpo=x!z3wZXI?+K6vH5O&q6XXS$my^3;Ua9Q-~gab;f zN8sPsyaAH(cu^TLCY~nzPXG+kITl^mv)Qf9O9;7I0$TpCH))}Qqa~CWi2J09C2sp? zvMKo3j!BIS7zH#(P6brI_&b;I(Ww$*W?iX4`2rwiJH-^U|6en0>k?v(-I&iS*0*lv z=Th*mc!Es}MITdEK$GL5yqK?!xN}MN6OP`yxL|s787pK$92JHoz@19-p0^FAUX*Km z4vOj7%HgR-Usbi7@tzv5kofv9CzE|uDBM6|0;q3t#x;08&Ey4QcCa4Tefu6*YTXj_ zI5r0R)-Snk;~M9pdp$2ZlnL(4gIgNPfTcqg?p*Bclt z$1rkv{TX@bypD&8dYC&+v$Ny=E*rF_Yt5S?woj_^(PB7&qs$(=XkYmMK(~8b&+5-d z6tG%U!fGPKl9p4>9x@IA^lVx2VJK6v=L}qA!fWTY+jfa!0T~aUC^2ssM}uAa{P1O? z%$sTmWGF>Ju~NlhC~LsXVO6bGNz#{6&HP1DH&d$O2y-2yQU}7x6ZxX0TBm$(BI|Vy#BMM z%OmNlh9}cXuc(nI=xB#rGKuK6j>4Pr9g!|Hj6lQI0MIIDtiOm;ut0aQo$3_4rE9d{ z-}=#`XIj&x*xB*NO1}24o0^SmY{>=bznu^~s%6&ebOBdI$weqqxmMl$XQ22UJ;*dY zP9XpJQTl)pgW&Po6)iayjcUg2Rfc@l8Ypy7`hWy(mER^?GZn6NWjvn4;U<{E!WD8c z#!ew&1@6-$*V%s~m_%f7Mf1hJ@}YKkDEs5!h2^jyl?z80X$6#Ap2gCl${}HMnY$3- z=wh)RH?dI>$^PJ`(eh7-7*`@Sj*6`=i{h zh9Np(kH7#{WnvI?pGXVNr|SGmvWZInQM)w}(VXOk$FP_l#ud`>mos_lkckR>_LaSv~j<~CVTRgzFB#9x(#}fXpNj0h=^>Y9hv?yHPjnRSoRvQ zCfv0Jz~kbRcB$Vd0WJ?9PfU@Xk!wPeMwzbRG^Te@$(O73_{c`FUaqhv;3hOnKYku8 z1Z5fEqO5j%J-?ctv*4j}{|N{UlHtJryN02~R;+3bx8HIRpDUO+mY@<--u$i({~4JV zDq+e-F)Vp_HSn{EJf zV>-_2<-EVJz|HcI+-;O1a+B|!1`R}zHx9P0oU^E6f35EzYiM-g@WM8#IaXDB+VBVR zi@B}jbK0(`cgV(>V#?xXlKT`)k{N2+l+0@zny*Y}wGNBEpkbnZ<6zeSalfza!4(Up z$#&jN2(Q#RQMnSPmcik{-RW{_tmpNk{YAHMKj>Z9B)(pa{e*6CU>O-Hs_#i&oUMUiP;l5=-c`&!=AJ#u0?n|V@yEBe^;&+Kvx`{YlGpz|RlpVncDv5RUn zCygDZ)Dui+F?p(Xl<@AV(psm6y12UH>^f{fzlFDDp5>Hs=BwvYft(m1BUFdyd+2&I zF_ev0O7vlM+z4<{BF>vGmJZF&dM3)XN)Z;1PFt6q4Ijpp!TY1^w*pL?q1q{%b5|RF zaaaxX)2_047P7T)iCE_vrT|1@IT^y_NiF1=1D~_%pX}`_qJHpoPm)qxJwTl7~ zo>$q&_OcJ6*`kR$%%a{pqr-F+Jo>4yQNj5b&v`_b0E8s!yGU~BseZ7>p;&2ofquT;?EP<$3HN;&g?{lUH1-}K|h*U+gZ>6qro zP6Sj!$b871|3}kV2SvHIVO+YqySt>j8>E(ylJ1ZO>6V72q>=9K5Tr}GQ@T4un(yVD z@BGCK%h%mrD)Q%MT+%9nxI9#uFR8r1}35~HVSUv z&lW$D79`dbd#c|mJR$uAMuFvWui;GHegHW4YNwU$)@nZ^5ldq6t6?NbT5M}LY%O=V zm-N2ewhV_c=yg0o#*NwPv)!>cf^RmOLcA;{#7;9g1#jl^QDbel7G(jJOF$8k8X+8T zU!!QL?`Ks0*Ep9FhH>bz-AC5Y!~{vH6^0>b4`O%ipWXozx@Im$?*om?cPurGLVPwm9jkubt_Pn=nQG*$}qih2(0B_X-I8>xx{ ze&ICYIl-a_+W4S&;AP&^t$o9rX+g_wws)mcX;V3sws(wzc^^@|1K^tuD2Yw^+}J}h zG2;7wuZ)b>UXcaoImzk7Zt)QZ-^aOrQR0Q0A_Kk{o*X<)76tbUL?+gAc5;eh+L#DEvuDSI)+||f-QZF)Vmn>7jJ=XFy|U8}sC4A- zt+uWce+Zzy5N!Jao9y!@_Q`}KC*Mc2Pz2!gtc+GjyO#)yu?+A-FRPM8>cwcs;Z}Z| zTh-D*n-{FSo;*%GRq>?X03j8E$B6NIlU)Vz5cxwWE0|PUxROT36Xw%;5UR7R)=JxnuRm)gfuIXpLi}D@@iGmZ|tzo zGBm}wd_G`rvaNj|Ck}B}Lnn3MRWh9V8c^Oh-VM|*j}$7td>{g%vOj!(_J9fTq1P|U z23Ncs{`ZUEEMgK!*raw#>x)Zlqs#^Ky5XO$A{)Y>bZNbeN}s`;y40W< z5MjLm{N12g)_wZFCkHhK@}^+V4;7V6e;2HZ(?Qjay+6P~Cw-`Q(GY4aLh_*0%em+w z{6Qwqbboyo*g-(3th966?3HeaEV$=ZCh}>0Geu`G7R}CY$)Kz!ZsH%Z1R^nbe>3py zplfpxnwqx(%9h!&?eJ;jd)BVVTP!1Fj~^F*PkJ2$WR9l`Hs!lGuyPa4z(DSg)1EYH z82;YJ(}SStTaRheT>)6z9IqfnA!03k-hRC*#2@yZ6pcfQYSefI$Yvx z_JOy56EjSsdyygCWLfvrTbba~`yUq5(ZN0~d^v2MFB+FkLt_kIDX2r(MoI=>xbzU> zx;u0nJ2r_wc<#VM$Z-?NzPR*tSDlp(ZFdzSxVu}nI<=>SMA{ZhvO}EuR9GSB zCsB$D?=PwRju^%#aFLl{)VlKFcOhGprP_b}k;U%aEZw=BGS)Orn(u#(Va3B=aB>4k zrW+!&X>A%D{&7HyR+z+D4IZXOgWivtGam#N(B_M0*iSTxJ3rk{F7(y+SAQ7^Z|bpe zxXSlC%y&vQX>u$pIh-2GBjt8D9~~I+LQW_W`~CBF?aiZVI~2DM%$I&b2^0+C)h&hL zt3w?b;#u6(5s*04@7S!ugli1g2qtZZ`b?BjOeQH70C&|{Q`e{CFuNTkBVW&}&x-J0hO|PCrUWxp!Z`t~8(|$3RQhRmm^#?GNM4Elt_OhLxgw$q$WLAhrLwgkU=vauWUv%sK?*(Kix+f} z3Y^Dgxg#qdd5(Yy#^XHqoXJ?OAs|E&X1hCJ_?exp{>ZhPR**O~;@f^nH6%u(YkmZj z9pC#YAv4}m+~sd}BlZ+@GrGGYDAphodQqd=JV4>jF}VtfrH=FASR%wWUB+=6g) zW$H&JkoeaQZ$h2=o1cL*UuYcNZ~h}l+?5mN98prUOUBEf@pD?vsh!C;8H&U*H{vU` zudw^dm1h-?)0wc!?i=kFUe}Hl&C{k&JKQJLQY|iFQtmMVT$L({#qW%UK%U;90WPB8 z3U#rskIW9zFu?w>e%8vR*&?>r5HL|K5f#jazeWbPV&*=FjSljNzQ-HqxzDjI$TRrzD=t+H{ba@DL7mt^KnOUgSsOVH_EaSC_@GN?Ey>Mr*TYUD-Q&2P2B*0<2JkOvGmWrFpGHjCOX_mMVzG4VzlBY8yL1J_Cp*fL#SL|E8uC)#sqbWcXz0J(qI<`Vj0` z<{%ujtT>j%vjUEh{6RjMKR&*D++x!?P_?>IdJ~J$3yAbhT85R<4Fdr#WiV$!l9!4a zN)Z4u;WGea{eD{09VnnNn^Ai$z(sOmzwS2q^(@bdI%l5p1u8`}A@5;UHlHt#+Fq0{ z?rWJeT1s{RJ+{fLq*@b} zGMiR~v=|aUq!~0f?e=g^E2x@S;Rg(Uz5UT(+4T6lu5}!_4H>@x%M3sPY&<&oS}+f4 zMe`U^CqpIWSm~Th^KC(B8YH#T9?Yd9NA&vzj=9cNscwzyGk8#U+!XW7J&@~k6go=# zUB@G>&0ms7jQu4p<_e)QN9o?`98WPeWz&+iq-(d!*W>Xcrf6wNxF>b16sC4_2JVzA5(NWBPVTHZBZ)0$?x1|L}DTU_vw_r zI=n5v_txKHX3j>Jm4v*|>|?7jY(}bOn~}rY8UzX_ng9_c#CfI zm9Xm9Fh8%OIXDY`#u0hxvZJ@tlCseg^ZiTHY&*%%GdEf^L<&TtPr_{R0ekP^!VgbV`wLki1b#@GtzdrsUX^`CL=po@DhOxG^o0F{b_ImR@Z6`-ZKY3WX@mEq21AkoLdQaBQxL%9p zJP@f++LsU0iA+-K0yr)cNAYniuS6fmshqPE*_%tve;2TYWZtIZVcM{jxm>=Pj>pW) zD{xtiEbU~_G9||c+ux1pqY$FC^;rqvqNN4*wLc{~PARKoxTxvyr77W4wUek5=oEoo z+nj(*$WE#{uCPjzyX}!hSz4jdRwPF4KmTZy9K{Mn$ae?+@LQ>_{KVwaC-$zLm#tG` z7i{I{%Hq+JvRQlJ{aofD3r@3P%M~0ouz)cSK+qX2K4EYm640&bTxJ@65OCx#{%ah6 zk6NFin)#0x3n6vNa$cw{Y1Cl+!DJZtegA}4uY{QQFo?W4@Ae@(_MYf=xS_b47xfmA zzT5p)QvLvc5@tHvC7R1y#|-18maNK5HpwdqV`^Yr$MAzkgFXOwR%rPN<=md081U@j zE^N*4a2$oCk4U)YOgakWO0yC3jl0V|8{`ZPAn2z-Sft`##&Tis{G?@r-QI}qcCcw*{fz%4x}$7ncfG`HQGr0 zy+<=Mu12iZPxsXLqsf%%=4GuKGhEFYp5DGlm{Gr0Q-1tK`Ituq;(==mleU+AipdyY z%oX5|3~>n)M7aI_LIf?X`ChxGNef+}q#`vq8h68euZ{F79bJZua^!wzA{ei6zbAOE z%+1p)vz0nfkgMa*Av&+!inHi-idL}NnKW{#yF70v`h{t&cIM5yp8Gc#{i;DM$F3^Y%qI-k3N%0?}BD%9V|y`_u3*{;*xpoAeDkoxv^CAw$^{scg zF&m?#zli3Ij01^Wt&BT%eFhOt$RA4%eNJxPq=T3_e`m{2tP)&| z6~CpLN!k}3VrQxC!PvAgVoPm8foVl_O7S-)W4;bPsT}mSg#>aa9COStMFRD%N7>Ti z+lv1-dq6C|5GMLUc_m8B1iC*{Funthj*6aKyb!=yrU93&TtFDL2bmm=-((_lTVFAs zrw<$c-u&_}pw>wJMJa^R4!KE}?qCc5_ng^0~A>~6MmPGrf27%e$DBz4oDsI~VBpc=N+C>e^%}m2wc#uF+Es=2} zUa{Kf;1eUHz4`Jgo5mT3;!i3b z_b&9p}gx&c1WEu0}sTE1(#H4v$6>pt0ZxWfG5qz}DPB*d( zMCxEVe~9BK+JhUrNw+FW>+ExR)s3nXp5!hx!}+#*&xM^Pea>uaSk9#B%I3BzWx;2c z@6go4ZLwGCTF_lN&Yoer%ZJI1i7tuQQv}d}$L21#Y*=ZPM5s8@yhidZA;=1t5ZASU zB5pazPouaqJb-?Ki|I=?rDlv#K3it=1+{(y_?ez{u)97D#z)#_4@UI`}XQr&xjKXS=Zwtu@Zc{g_o*UDd;9Xk({vf*>jJ@w?RW3(OT|wb0LU;CK zR{cHR!(V+c-@oSds;dxx{NbvFuH%%>&VefXu@22xk1FG15tTaqI>!x$xorzNrc4H< zuvdV28Qa?x6`r>jt_)zER-q%a7a8Q-?mq=UG_Hx?P?HKcn0fQ8aL(#Kr6Uj$vkR0* z$Meu0jb?I2`~5PtS#pq$)-@Q8{a_YmuNbbF8PYduHdq7IBi}ZxvHuVIzU)dI^!`ez zPpM{4I*0RHQ;3C8|A?@Z>p`vZ_to9LFUS zrnUH1b48AI8MN9_yFsgP%31yCntp=wq`@BD3x02P6zPFH_X;#MrB<4-$$rB|t$zmZQN2M`mnio5 zZqn5G_5v~k0L#tmJXEB?luGMxW)FK#R^Q|5r+_{AR5GgR4zx7odPz~(Q|hM}$w-Y` zLWFA6oOix5mi35(y;KBw*eBVsR$v0ty!w%~EDyECRqxy3(d_p}xqP z`ytp)5xbgmKTu|p>~fP#58VN3rongCorEl$s69!6B-<&|%3^U3tULR+PhN+aK_r)|o^v&6;FjVVkF|DUreE=`9tuq0 z#EXjgC7at^@A7CH!8iY{a(-GM8bfm%f;*#~TYO9>61on{UVwG|hiudb6O>Ez?8thy zu5yX};he1^%4E4p=^vQOZT_DY0d!IV6&6$c411aVY-||cqQ2w`_+JMjIcrAzjvmrJ zF7N=$Oj}9r_Zb$*+T`LDTxRw6|Ka-b#HY%(wRn=TGXyt}?=8cYg&9jLh>_{_-fyCp zXQ!4YnJzy$d5@m>3~m;eAH=weo`G^03N#9zf2cdUgi@%}@wY*QG^&>9z;`v@0BCv_ zY+pStcq*d_b9ZF5>TI&LNw$IunZMKbIayy_s0KtQ4)#2f{PAtg`4G*yKRhpXpIwCp zyw~aq&6gRCb^(YOe_I`89{=nOJEQaDSch>XwI8SUI$FSeoAQURlk9H15c!Lp=_@}3 zxA3*$%1SPv@PJEji>%~Ubs)a!L`G*RM#443zNMwW>9!YhN#9E2G&M?t8Tf1=-B;Pa znY`{lgmYP?c_{@>^a1&h!#T7Xi7QqDG{IXNCrQN{gtKYX*T*zyUz-C@!>SDdLo0;k zt>{_CuMtP=ktDH5v@(KO{fMz-iD}xR^_K6azy(iu%oKRv~WlHifeP)Xhnd~>@B_Mq5 ztK?WXVeHVqIa4;?6k7|9n1YB{&?T|VnJ6xJmivs^vpAQC;Ffg(& zbSwd?7)NUvhbBBUm*KVVXA=I~rk%8m!@v{#6YBc|UaSf%D8>GOb`iC*Do9Gs;iP?I z%=>h*-({XGB0G;~Nyv3D%FKvc)V5}5RIxbp;bw?+YK7qaM=sZ;J(h3D$PAeoQ-FIT|$PLTXuyZGJZ^$P#*jE2!x1Y8E~LRaMk0EFhJr$1(!sGhAX4s!g9 z+H!6d7taBzA`u1E38UW+Cj#1H29=Iq_Kcc3o?rvQg5#djmSZX+9?m1PZq}2HEinWytNH z%gZ*ZTf_C~_e{)G7L{Zg@P$Wge2>EAuHUcE>U_$ZGcIn(dWmh-Mw^fAq&k^_JsJtn zFcCZXg4laa%EU3U%=$;wq zu#m*at70Q{>QYOPXiOO&+`_ctaMFCz1N)=iHwbqeDFkV3F_V`&^JPow2_wn8VXKdN!N^grl_y2HiI6P@*D|px^hix-A)l%TJ1Nh z4dyx6la=h*DDh@rYI7z}=0i`)fU{2mJnvj7p7P4w+J)%rZ(v8~b%pLow=zqFjOF+| z!duoZo9-XNzo*1svs>;7jkNa6-nEmrvEJ zSpKK^sZ#^@TI^{f2U+9ALme6m-QEV52NktZ)_M?TO}8nc7OH9(LvJUUn8sAU+2?2=lR+y4I|B;KLm3 z_i~8OKnbC@51##+qC7y!7{!-L`Q`Wn^UZkaxjO8Tg1tsO`e{k96J{x+I?R%W*i3yH-mVfq{(x7{KpZ2up4KeJY|&P?`Hz6NdkJIP*NGXo%5 zk>KFK{pc1k6X@5+nvDP^wNAo1@WgxvKms&#blNAZBmrtOndY_ZzcJ273ZFG7c?lN< zF>>DQ2S~ozHwyI}Z#O+qsG8;{Y*YB$Db-Y_9%~kS-2`$gB2U92+yuxVr4k{A%<-C| z_e$?H>xC7r>zc_;hbLWEk6)UAJd+Bt$PBq8-N;?S8Dbt4>kYu+><-Lb zNu-qy(vJ;gW^!6HY)O8^#0TJD*WLTu@TDu;AJ`tyC-`krJ{)$7t6|p4XUmeI>w?Bp z0G%ELp@AJ*T~i%#430bnjfrx5Rl|S~oHG)MQnSnw#v6sv2~0C|h8X3F#q2yg^{M!* zN{cY1j6BQW!9WPmLrc?u+%Kv1pHOa*^1pr@qs3ua8;9A1{2i2;CSKyQly1K(xXcU0 zxtq!JOHafsp+@a634Z*~eNc>oq%F{j+=;*=)=A0*OqXHp-CN?~GqqB=$XrCiPPbxP z3v?>(v(sqm4Iiu~)mf-z^)pCgY!Yh`lj~cxn(}KUU<6`F^UU9{b4Hr0tN*TyL&mMd z5rVc^cxd6l8SI%AMzExNfU8veQgVOIl1*WsHd;ms$79G~8~(MG6=ZE8oW3 zbIk46|B0rG)eY&%mF5gW_rswkN)yS+uNZ45tj8(G23H>gedHS#c*nO8uZ8&R{15FY zK~rc9ot{V>#o-U&nq~mI!8L~|9OQyGpL$%AC{C^UCZ+o)uCd}>`naM?U4}_L%r1ND zuc&wg!Nm;&cC<9G^j#BWs=fDBNUW$*PkhR_2M(LBkXg*A{9aOZvyk6NVihRFu0HwN zN}~b8w1!2>L7R}16uo;F1xP3Sz7{|S@v6=(pn6kOXc}F~8Ko}N*iLy(+;C~|7mVOm zu;;!<|6RbO&UDH|DAw8_GNk(i-KD|lU}dj_p5}sp%&Rpe22tOm8%d2O z<;?(1#@;hQs`Y8gxFt{2`7nn4-uEHm$FDEhdQkv9=r#5)nj=@{Cr%bCP)>%?EQ;qTrp|*x&%R+@# zG)a2*$RcW1yIwo{;}74%h_mbXQOTTN_y&Bk`yM|zZ;$Km|EE9UlaM*OlGeP!$2E{F%pmIl?%5g}aFq$Z`_@y(siBw3tzCn2#0wAPkYy$1RT@c+s| zG3&;%{WdQ+VGdYwbyRiTM&jYM;dFx)CU3!qivhyn99xNwEnhyPH-L_sk>&zB8fX?uzxCk~(% zP+qtIrG(zdRn-5#4Q3@0s8hDjGK)bnl`MSAOwe}Zw?VVGfP}D>S5SHJ+841Zt$S-z z%2bG`?=O!Noja{r6Fl3KZ8BhMD9!_i$I?g4$N@s8d5PO3mn5};p|^CKnEZ+y$Yu4; zlT2)5C%x-P8w714!U%qt29O)U@4W&CZkh zD#iv!EBFrr3vf1r3s#!Xcx`gUT_#FCZXF-Bzw5psQ(8?A`vCWet)5HBe?*TmT-K<> zV&=BK$$_t}O9-c>)A+=rKlvFSJ0yQDs6^=#{NLJSi-0$jGtmXL(JKjgpDD?!!05pz zrwrqER8Axhi1c$(7JR4lyQvCBD-m{JM28V-s&w?r;A*vX(hEbUp;@^Q04_)9@%mS+ z4wBbSp_1TPgWV}MxO7?bwBJ_l?tO`1nARnyn66bbCzMGh+j%Oya~|xeZNt>oV1W7ofsEqw=#|sK2~+{7YXj_OJ3WJ zKGQeC(4|F!_n2ZqzeK)~GW}tflj`YdqhJ`p>rv9n6;Cl`$pgJL%SG$P-X9^`OPp?u zc%arurRw%syL7jiwH@`*2rq}4a5Pv!en;WGJsUQXZHl)vcZb^(h50g6K_z5`l5v){ z4ax5aX6dGo-*j54ckw1^hXydX*pN&#@;f%Z@1^0I^Ne(!q>H{W^clbPaKm@g;ncT(kF2b%*iqhbSl;J`$+qFvk4)45O`x%PcWl}2&V*)+5c#XUD5io4w z#&$1U03{W`8z~P__Pn9f`BE@2nISetb}CngXY)O9E+{w~jYTbCp<&_&8UHoL4Yk<| z%P`MXkLD9VEfpGdITTNH2OKsfa}`7)M9fvN`8KH79AV=}K0r+s+&|ffvc&r@#A_h; z+hqJl4RME{ev$z7J|Kcbe9uR69eSO}_($l`+VH(MQr+S!OCbBrJ(@>Vbd>pDQ>5${XNmAo$It#OZSKgtWoWC-1o*w*w z@|4OXFPdDw1@y~3&kSA>h4Ma*SXT6=M!hb#(r4+m`QlR_$D~gbc;WCKQ`4h3%-ils z2~Pm1C`Jk?#WmRBKG0FmZPwI3HhE6B;&STo1ZJDqY&2-mrH`TW{|Pryu#!S_hg#8% z^dlmm%6N;+eoC5!A&gtyOKsO96^00Rs>6g^NtvYfJ~_5vRnoX9%>go{ zFXxkphYs2ys$ZCtlFQ6kE$COw3h{dMEKLI6+0b}I2tHetH-@(W0UzQPtNgvGh^4}$ zK-AFNjulWDn-IkK1{q|t&-cuds#4|eQEmhr+~hLcb6s8tQYOU$CQ;t^<3H#hZ;6BD z=a4{!So;?pFiXs30i?sR#AmXGC^GyAP!i&p%ZBiGwIAa)UToQO)n-8RP19KmAq~9k5{? zk>Z=YfB!z%oq~MST+!HyH|4+2V#x1gdXmQEkc}Nog#Wm_(#0p_^KaG$JIh4(pUzCoJgBMlj_joS~Z|9ECk`2=% zM))i~ec~MHNsuJo(fE?t+r!M8Q{?Rr^*XDu7|62|v`f2a1oueoIA_9T1(#tsiML>R zbI*qCnq}YPC<0@(p4$;}qw?jDNvc8ER>=kFj;@k~rQu=T0h#G9M)*{!ZUFJEKK25k zSC}n5Nw@~U5l6VAQxuKCq;vqTeOQfVNkWye0kK7KzL~IhinYF@;{@iR2;qtm?i#S2 zt|AsykyVICVUsEmtFn(;P2xJ*rE%c7y-dB)9XZt5OJGGlVop^ z33CU0jUT#(ZHnFS4wI3Li@OVEc9T_q1u*Its=8z=vhT+TvaUg|#1C5^udw4=YD2pc zOc84U%j?y~)mTvyGg;*1J5yhVtC7222rH8w!t&2|grx`huaf!lf94@&_yFjO~cvIaG1#v7*G!V#N zvC#Q5t)USXe_w-6>ir8q%3ov9!%$POd{xu~W`OgAN;_%)c8MdwQ?>81QuCqrfy{!> zA}T~b+W`D?n zA@Nn~(w2T9Q5e_wK~J3l2*vXNLRq+6Va#!#>t29jd~67=#nQY?3xtUXfrDP>Nihrj zWpuK@{Hc8jv1YTV+Zvg2riTUyF812TY(a!|Ym;4qGiQ3mNUfq*9VYs*4nUL!?J&Fl zO>QMe<*0XH1)=+6+4X-X7jPeQ!ut_g58>7o>;EcTzN9>QeTKjj`JC^(#z99dsr^*6 zn;9K~j_7SZt90^FT#JrqL>SGZ`>EFqpHtO_*SPA5LrlvB~M`_%Lhe8W_~+KsIGC}`gYsjsYRItViYhw z8Kql30j z(^N+me{6KZCG`=zk)WPzZ5)%1hE;)Nlvu4^`F@Hs!bvQ!C!&bT(k7>=-#UIoOqFb? z6ptGrTcr%;uqwfAq(!&>dHDwnutB32Z!*oC090F?XRrgcO4m*6rj2-bU5f%u6A7GQ zZ>f0|vik{~AcW|*Q6O4})k>?}+!}O-x@}2?(>H?StaPkMEek=*?-u5U5UGTg$(1e8 zy35LR6VIwk>Vkb5ZJ~gIOrqF&Sk`j8l1r}QNj>GL@!KP;^2+9Ckka5G*_(gVv#K%n zibnI?qQVogG#qsJ$&n?mJ!eKB#L~2Cq(riO?WdDPefYbtNR|cyXA~fE%)U4ro1nr40mvz=(YVwv7wP05tpF`KYd%UJUo{v;c+Q@lp9?PZ$y!_k2YEzE=%I_H76ssgPe0{2 zR?qS&)*(nKjGuJKO5Gdq!2iS(ks^CaM;{GaFKWYF?+U7W_xO%@Fxb+Rj1kf64$lh- zGs4udtw~=S0y3d4PGSOYO9RGw*E$2r=HNfRL4>>6=x1TNuqp6l|yM z+tbWvJFP*UZfPDy`h%=Pib}tH(!gx`u`p3$%pdwsjs=x4x;~u`j$-YS7AbWEsT>^t zzIKc!y5I~Ir}e)T5CVZ(XiyMhvoFC<+N6syvVF%ttX<#0g3R)gXlZDX1O*5u>PAgt z(yL=-t;8hYd8og1z`Nbu%}uGSN%ov5Z`DTngO7d>vX5}s88ommD!-=K7yo2=CMPa;Z?Gw&R90fwNUkRgV_C&f!Xg3SjgSgf^3)!q)0dTSxH7g^(D(ne% zD$SnINg`Oc=FN&hq$UuQb#;*DgNWnG1{YFuD=pz$_Lz3#(LIsZPF;wH1~aZTJtt4N z$6FITyhZn7Vj#d`=CyD_|1#|GI@NL?wyCvD#eN!?v`Ia;4fJ2kA8D$u-}H7@zApgI zRl`^fd52=wQOX+lIOp{?l*YK_F;&_RWrpYpt zG*bjxcKbW5w&Q}$RY%$)VGz&9$lh%_2#h#4_}XJP9cQaJBe?Isoq<1DG+HiI)%=(y zP3w7B>QuKOcw^L*OZ}GkcftnvxFtaRW$su%5auaU5B=zgK8Qs@6uq=vX$XA}Hwygp zMo=ael={9`m>6if?z}GvxOGF&1nlN2?5;mm_S=6JbY?5SJA9kCqQsW~*#PGOK7uZQ zMvDwWSM<>p4#mcRQtEpe6%aEY`kQ6+BaKq_xH0PpIzt-W=5%$aD-=S44XfId*m?9; z0U}nNS+sVO&Ao87tE>e@lv6adP7oes9zEoFeo*5-yKFj&U)AEwM#ojrv_CB*I<+u2 zH`?E^Sn#}>Io9&!1+KkraC=ptHZ9~omgoV7-^E3!vf8}e=_?<_FB$Dsy0FP_ei{A>HpCkI zXeTd}N(VtD1>X2zLp@L*QE&3TmI|P>9Ph=Gn6G@U+D|?hTFs}qiJaH5g082(ue_7XQ+-nb5X}bf_ zR))sHg;CY>qiM`7RxuZO$aHxdFVwN(QC;y)Cm&4KJPWGbUgP8X9Z!7Jwh9}z^j|}N z#D2zBcD%jxnG`e3!hCE8@nIiM6n^kZ-eVL4k zblwLiYU{@f&`xxk=}yU6r5qPr^Wwu##qLvcMT4c-4|Z_SlVcudAH+VvKhzpv!z3_m z-cn^p3RwhM*b^TE(yAhu#gD}2!3rAABu!uq^F_}w=nBL+#OXX9;`Ug?1j?vZ#yoVu zf*%z7iN!n4iAIP+4FUIHR+91Sn=IFOdTdei^@(@URp~Nak3oyPFbCZxSlb?(ftqN zSD3)c^=tW{V@bb6V8>h0Qfh!>E3ure9bE$x6p?`7hezDQBB)I=5pR*`Bn%=piFeGG zndL8O{lbB6IH6l}i(7Cn&o1F_0mN0`(dL05PuWgl9m5S zdNRO25-{?)eSnuNq;2j(^Zd0`G2A*)073DTQf@ZfaWgD8UOO2L1!x5bDlw0|aC!y+ zOGA%O4@96=@pvKp=~P>T3xKiTKMz;d{fp;JUWswbc=lPYI&CVN3HHp@3ol2ftZ+5U z=X1J>c=^@Qml(sAy9^VU`%*PmjCm>iXZH zf5#EMwOha^PQ6C}_d1PVP3@XrCZ+7Kr(k^vn<4Lqo?pE!@dBT7}I z6nd^G?sM+8b^DYIYezwsqM4q%Cjn@cOt5jiXJE2&QpZ*b zgXEwTd>gH)!w>Fhq~^|LRT`tkhBxcuDqxig1j?+djn+wvqwFRXb7m8Qs2|#98?0j3 z-{`JaxP^d_l{CVg#jK7?K`I*J1CxP_ZpD2pduiB(^9>I`R(Gt4mSI~chNwpF{;goo zK6*4@af;2H7PzGWBHM2FHK>`SRgU05sm5J^cD2x&OGyj~7VY|(N1+bQZ{;FGM)q6N zRkUH3$yu>4>$Kx}VSSLhptGOm$Kv-NvEb6n&jElZECY3dnls^Y=OJK?Ytp7Vr~GdU z0v7MlOeX1nF>p`(3Hj$fwc|^A0KyUnAJ6RP0?$YmhPZ_{PaxX~vxC5BEtC|thOgd*< z0cW3_LvnC*`@2Mf+#HMu!iuQwlY_Y?iuJC$6;-2y)TsNUfX|52^p7lZdNBuR4Ik$j z0Kr3exg3FWUN-|R(+5B39TvV7s?eM75KHC!K-e}F@m0h1b*m?m*SI{&`KJK;TX@Fo zl{;aQ@Qd)SsYIixOy`xKpT4Wn#|1V8KM8iaF_!cM**%Txza`idTaZf+JRu5?F{+c^ zax3Kj{%2DRP5hHnU6@!TOC@+d8%_YRBt@kQm%RRWvdi;?O$eDRf;tE2WI(Lprm3aj z40@s5k=(6>V_q*{SSSO+e68|c3$Y*}T_zo_*i^_uOhP8JU?ATN6Hq&lMhDet*!g46 zU1u2OpL(dW%vZ(-GUShit1lab-ZRi>Su|xoJZg9=CFzv3hCqw6SZ%>P;TB|VOtvp0 z$;~Filzz}nUAOKGby?F%gGD&7sV>%`G3b9IJ28W06s3l1fXE$UG!0wcY4Uo3S|RduboWA22%1EfH2JbwEHvkj7_?D8knRF6UPn zU;({-aU#8h_X704f{_h*S)f;Lom&t2BEFn3)qBTQq#BB&AnNbwF=o6Lc3mmlDm}S+ zPVjfTb9Ox;(eL76{t$SwHs+UZ&BK*4VSpI$!wei!sMmlIi%isX{@y>8oPd{;;n0J3 zQs9k|VNARMCmI(O4&*g!7cOE$YL>(bBLg|EF&{$oA3+%EZXNy~lF>9OxsICB{`&y( zcc?$o8>OJ_iY)mq?wuQIgfXxeyX~RP(>FDT>?3=FDDb@7<1jl6b;q(hqR&%SHs*q$ zn3!&t8yC6}j?YJG)kG=!30|VrFuB1F^%NOmuu_t02V}o!IE}1MKiR6V<;-oMNSd-N z6oMpCa?+#dLnj8In0u(dQ#WDJ5v>_S5qt84!1_Jm> z*kJnQMk+q2Vr17RlcQI{n1|7Z&&8%|=aEbhAO`y_IUEzl*m`K(3~GIxK9r)~TQ;t4 zcu%2-Bqy=-t70MfzC?;)Q9dDk=A;nul3ik_D)+x*gVVNH#eLrCOy0Ej7N;K1kn}eU zysy4DPqBdzG+)l7#Vfs<^tFf)90soEp=%IH#DPQ=9*_)$kql|Q?p>2YICi~2nw06uoX6}>B`wK^ZJ5+sP(0;GJRE*^EJHQSC|`A??n8BL0GCx zAN1q20|F~b==-<$Tv@03=TeWtb?)2#vq7buVVqE@C}UC?+jo%jPHy55rL-0VJtV(w z339LeZD7{!+Wq$19&nsH#DLvgDcQ5Jk6>(){g528rVloTdU#IrD??0~#V^U8uyIlfO?TOoT;qE{NQA*mTO7Gg`cQU$I~cn2-JE6% z=?^no2iRBYnB(qvgR<0SwOIN6+-^aqjhLh{sStWOG+dpoEx>56dhh-=20!V|e?eGD zw^if&y}AU*@h(X9ZB-sTA7CKdyEH>(CVlvZUQ5@ud$%Eb&L08MgM?n7)c7q#t8^NklArK)z}$5Z|W!&91BN? zLL1=04C|%KIfW|8*+|L`6Cq((X~EVa)drV*k-$wQR2pDzvUd&BHZu#_Qd`IBwl5SS zv{o_-Rbbf*b(}Hd_FB@6NrUzP4mlxCH`PW4-ZCKcD*uM6t(_95qYEk6s`vK&W40zU z1G4e%_n`WEF5;fH4p&eP4#u7}qPQt4T=9$7>wt`&PTW8v+pv4~h*Mu^Kt1mbg^A_I zpl3T^)|=)pUhjeQ{9GT+Ai(274Xgxcf zV$dC1(oHXH9`L~YsBqf^B8}nZ&q>dc_PhY*-t6yH2@|+Se!XQ;-o=;oOzi1{F`C9x zuN?t73uNXf#8Z7o^uBRj_?2ML3J;P*iR!wVhQ5@I)8{J);V;C;8{2400fLyhT) zJJfFe5K;CG=M&k6PZg0EK#r$R)!^N#gNCc|v`(on{7)%cxR|SV4 z7NhS|Qy(hkT08swGKon%&&L0-@SDZeoUbRrT?HmIfPD|`wlK;dNQ}`WC^>C?8i$N+ zE0bi4UBhiewG-PifwO*3!oDIsO0VzkEu}V%`CZTaln1R9ceQPRf~pI~wi<|Waz(>M z-akD6m)3?gPYPVDLo55}nEP?uHE{N@ta7;3-hf8mQTS^LCO-s0VbNc{mdNdHbF}pa2*+>=(bx=Ef zF%S|jEQQhx_L@jxvF*xtmtUX|4_jlBx>%~7a{|JN^rh{;z88a2HVNjcV@WB;-70~!iK-reAEMTFMZCM&aOCT z`ZdL02$ft1_wz3hRN+0h6<*^if9MGKJeT}gYV7_;(^-a9wRKTgy1S&iL8QCmP@+hO zbaRmI?ml#fbc1wAcXxMprxNP7x%Ynm#b-Zf@3q!kbB^(j8m_;MEspYoVaBp@K*53r zmcq3`#yVl^^r{OXxoIn$pA%uR5M zIsDSxqm9Dm?IcCKz~p_pabw{mYH6b{zp7!D@7NG_-mEN<{`&fAwPi(l{12O5~>3(P$05Alp25Hy$hP= zYh9x1atWkWYg!%w9Af)=itTk^LDxO`Z`fF|?Qp+}fw%2MJov24Y)=4Mo|0$jRT|)L zsPo2@Ye@Hy6w|2+&5}p;8mYIzc>94#MNc5>{ffU!(8vQec6$1Kd41G)!wpfETeJz3 z&o$GFz$_6z&2TGlDYD-Q9x>JdEs=bg5p3LQ?5V-0bqGpjsj&10JXT>RcJ&Pq8&oDtV9#^2d_)Gv(RYfNjy z%@?8%8{AO4-g?bZ6807S^W1Yr(jrCF!eW|^q?C+Xgi%8nd(X`TtXx@3u{>kNrz&=M zl~f6i3Bz?rh!5z>qTVPoE-~t!L#tQdin~FB=*Tx;c<9ya-~TowpR_}762BXKRX7PB zXW?Guo^H!5h0IZxFqF54{Y6B$peJ>lZp$6hs+(Pj@N3i?Cty-S(aA<%s#o2=xi}YY zt!JYk2Jef8n7A)Ji#bfP6LM0(jT65{FZqe?l*(4;m3+QqDDT!HLmHi)MkCAIXBXQN zJYIcqT1^eG*`A1_lOwbEMgO}@58Yu)yNIsWa#03a8`hiu{GxY+)Vju*DLvYHu+KrNJK4<;eb27+4(+T-B!f8|F?P|beC#vRXX zNcb9jl?t^#fxxl7Y*i0-Kc$wVCk|?bCA=tkp_V+2`p78g%HzO3WNaYt*B>11K%$*;2s$>Epvd< z@n2M+b%p<;*)2dRad4+m5IB50OKJC}(BzS_Zum->7UF^ZPGX}*vQc?_|B8ZE{g3yC zKni4Sq4r}NIWq> zobp8L%~G(Zlmu4enDwWDuviM>v{^eR8WRuS)28xj<(0N=+A z5*5G*cEqobD8RZ{=4985ec?-O)%}gaW{{CJN;1Lm?TWEqJ;LT2V1R*UTpau$o)jv1 zY*w;$KPwIqiVbBbiwwvl%l{ygQ4rzg78xL+MzqaDo{3}Y&#jrwZ8b_S4Nf%=TGauYvSS$UBD}K8|;i@03;z zMeep+$SrcqA^8;JD##WQOeA3xhFo_Q1cS=4OJL3??LWTsI(pHd7K#T}wU&)ez%JQx zQn2m2`)>dXFu~E{0Zs5Pgl)(UWn&V)f)0&Abbb!KLRr+#ckB-64S41kvL(%xE){fX z6mZd!4R#4}77$H{aGfpvxfN@fllX6|_#X{GPqw8iPC@qfezVVn>#`Apj#UhAX4XDY0ze%>6cw z0&7_AgGU&k#9}R4^!S(G%2%f}UR?7bRsr6e=B)1TZLk6uJ2lXpX|SwPJ? z-^Q+^^Vf&BIoB!O{L$xCVkV;q#VCR>o>CXZx|5=CsjNirLBYcNKpH|J@dbS5@2h75 z367fc{#Gd&M<{hid&v}R4s2cSnk`}hHG3m`@@M(xztJVpOK?aN$ar#84h}eA42Hj= zszn+8&C=v@LIt5B!rf3+;abhbRO4y>>PYluow$$3tch+Z-pn&SK)|*u#@}zJ?CPgj zgr8;l`wQxpQc=Z4-HVR@Uj`L_#-q`q!2z(S;0rYwxF0K!VNApnP&?o5BL$MSR|I|c z6f$NFiat%76UX(??VlBPVr5E@t#eQ%)gMG=1ng88OEdWAvwHp$-aF%JEWU#l?60re zudE4`B%SvinC5W{FwiQg6yTO<;=#ma=tmUri)Jon{VprWcv6Y&hK|S0taTy8rY8I1 z64Hcjd2J^Bb#uXm83((g_r{;08nM-#a;si9WUoRSk{UZ1790oMmyR_WI}Zo6)Bw)m zenb9jgm#o4)^CY|goWNT$YXc9H*K9Q1dOz|z?c3|~hC@*aYdP68{s+@(9hWw*MyvQ2p$i6|UFp8rTqt@^tkeIlfKCbcn zH&*i-Y%JYPCa?H{Rku>(+lg`SRur-i#?v>llAO>~(&X5%L<+ZioL=4&X-iv#4l|7@7yANb5Zkt zV4>ENw-77V5yENGZI4~tC=}nfglz9VREnxfMxNK;^^+T#iUk~fS;~g2DmD;vQV8dg zXRJj3<8XxPu{`^fbc}8)t(n-l*n5oC(`ACS0wyeir>0!co-S9qb?NXwUd;S~iLfZz z=_G(36qFyyx1|$nL*_Baqv0C_gy`Vz?n>EiXbsH4Clafgoc)(y(5s8UVQ#_=Xwo>O zyh54SII712kSzCJwiZ!4(UuJ$8@IgGIqpyv)`dat0ww2i(aYyeZ_0o3G|bhvdm%By zVK>9bTQ<9@LDRg4nmPPfbg&bI9i>TQb3kJf>?bcW*81>~{qyAzekA<)+7Mq~+fa-~ zKwJ^bPmlM+zi2f3`tenVv)Vs#iJbKY(q(E#zD+kVpPK%QCHXxOWT2(OKu*@bEd=dI z=A!O`F8hipr)XUO+%<2tyznrTYk`g_vOjm+UNg#6_HQ}kPma@l3fWLX&!rzF4)p8u zA@Lc%W*(*1FpA2wqM}&ZcZY^_ny9NPKr{>au(-gCGQTs9JTmy8nKVv8a19tDQ+1X~ z(0p-hB@`(96Q4M@alakPPb_{RPcC$sW)jm8LL}%5b!+=^O5BVH0AGjmwbsvH=)@lE z&4VSs8rL*)kj4o%81;|%_yVIy4TYJ5SKCJ?b=et~s7KZNqrXl?X@IAgkdP|=(22l6 zk{FL>rMw#;Jqo|6H3O=CS`Lp;E1AqOI#iak3n{}OMYx7iOs z>d6sWTDaBwWOVyiW{YhOCvLy{I?$(=5r30&;kBoof`1mY6$r#nh`(7Vv>XB|%bu@V zrkAE1&68tleO3SvwHIHrVsK$SjCmf5pFKZkwAo3$15h5fgwVa7N)M9R0F{{(N}?Ja zAeJrWcRe2}#I(MtbJssAtN^_g6`sV`k<`iK;K%{F2=P^W9LI)rv1qFaLyJrNLTo7b z%rG{fLl`q8Y;%rUrH0E5j4TEuI|}q{2QK}5IDyGc4El$L(wiT^+!P(h;!5ym25iNy z1?IdRIwu*HVzR5oKo`3iQm`?(77a8 zE#KFGex>lLv5t+iFIQ$g`4%;OlKND|P-Iat1;rFKv38OLbcrmOoQ4S@54O?}%un16 zA7+~{JR3-ZFB%H$!rpEK`*F7KBF@Mi{qs4v*m%%R!Y_wiXqIISPeCFI=$h04n$cIL zC9)D_Zc!4{u=5u$3Sl_HSWcVmaG3?6y>F(2RTnyOjcoUtO(W~nRYI~fE6^h%m~UK2 zaOflku$c9e0qV7@7`>>dJe4f$sXlzGC2zM;ajoQlqe9qwb`V0AHfd9kULCb{hetMz zbJuVqmDOCWW!hxhK9A_=GQ;sQn#PWGExitSUxG>ny5z^@vX1Fk@RC&(Q_SCgG^SH5 zJY()*k`Xhu0ca&Z8E3qJ(T&Lg+&q=nRUgcXn$u8id4C6vm{IzU(FoU#lU;EDdMKou zLE2P|xC!jOUC%)&R|11#GrPSB)q8ftQ6dWY0&6Zay7KM>_?=(fRx!&OOo|Qg<2Q5`Vi(Ez^pwqhpW)Wux-;QrjgUm} z+20^EnlSX1R7(9dcBym4t~^?9$wQFYyoj_kmBMDHBD^ae#iBQpniB5UF-%)|tQB2(rp%Fi;Vf>b)i zw)fgH+Wc{S-ZmI($FeK0xTrum^ob;c)oUfF38J;IU(%kV>e;!BGAd1`GcKI1AzHb#mTRxqcn7=Rl4 zJ^g1~nEE3p)!|iEP}HZ++QOtdV&z$D9#pRGeyR z$?vf#G-E#%Ozg6Dg$dSaH`;uc(Uyyqf_n=(E>swq0h%;{YLj{_G&>jobm4cps73-D zlo{Lo*)i*=Vymp~2p|z>HVaeFBBD))WIZ6(XWieA&r*0c3=7{XkO^J#+2GhY+#n&r zw+`OlgpN00lZRu|Ohp%<Yq{ln(cK31 zlFpKLDQi_f_N2Avu%55W(NFyBy6`dC2;U3{dbsfyU0<=L6~rEVvFNZOPS__sQk^*COK8?pX?)*#s!xZs$mX5 z1B(2u#o`+We6n(UztcoN7nBO|6l9;PruYqK$2_}G0@9}P^wqp0PD{8QTT4Zg3%Dlf zQZ`Z5P@l#Haa>SvY@rBDXA zY8dn3Qm&bg6DOnq5Ege2@xW2`nH;R9DFo>4H@fCa|A=g;buwnO5W2+uYPQWUfGgW? zkXC~DsyN!^?SXq2>Kieg<2Xc7wF2Cfi+fub@>^0}QyVB3f%%t&9pYcR_9KOCo=da$?zFrdr(Px~e(0g=Lp@(n8K}!kr4E66GL4D!M;5MXC+XZrZiTe* zTp=BM#}p%a4-=+m%3JZpb*dF?;EfI1JL$|Q;dv&X;NPO_m~HN{%08!;+2A~9mbGz^ zq&O%fAlAagJ!urqnk=)QaQEM*;I;7; zRhO@{Reb4d71YTrx3ixg;W(50*4FN}BI)J=B8is}9N`$H#Hw8(mb+|qJV;h)oE*ba z-|5)q(snQDaEQba^xpj?3t;KkgglXc;2zHu`6t$)W`v{a8;&m$Z@0P$wVR&sHqnm~ z!l`9kq%erN8K?6J5}$zA(l&10t<$Gi)pXtIPPlM|pS${fwtDW6F$tVT$T*TKg#GKL zk)Sf3v8y|JFnI6&K`%+4-0Xr^L%79AxSW{H zp_Mw~w?d(XUzv>U?RLk*Nc%vP3#TjtG$Q`Axb9M%(@tiMhk#-QSDPptrF9v}XAQVK zu7o(s#O93dz`C^uHmw}QCJh9fIQUuSv|I0jg4&_6c{2ND=E7e!B+J~e!Qu}5Za6IO z;^GT_uECjiTZ{cwGPm6`N{#R^DK^0>9=O=@Zcec zsHA+}bSXwt0%}?wBOhEt&^Z**ZCu^kOXx8;v_j5096YyU82&3*b4F(lRa$+*Pe(Kg5dlIIO4{vL1W&#XSWl(_%C0`o_WA zU^=;s0yasaMEE@fAH=CYU1Xcfx9-T8JE^jPpD{XR3l(baY4S2`y?OB8z)m&d>+r|) ze9%Nb36T~C(77@F;ABXDvw8R{Nrido=f{G^wRL@I^ zlkz~eU#U1#k=^hapiE(1;B?%x^>zsxid!aFOisFD(0`FijbD*m8Pf$Q;b!P9Dy4FK zzCh5U$_^q`Is=M^qw-#*3d1YeSZzbob|dA-ZG;7=6+ zp5Q@k8XBYG^%Jq0O5pc>&+Xq~Kr6@r6FiLm4Bk&^e|7xGiG_XlLz|r5#NfxugT1ZD z{NW7E^Zxl@f$^KH*xa`}N>=Y|Sj8ifuoeA7*x3q5NKDrb;NLa7T%W++>CDw!W@mSQ9pvBs?la_r-oF^?a^gz!ZNs068(PZ z6`h1>M{8vUE%TjV3Xz|MHy^6qo9TCb>}2+gyJAnf@uYwVKP{$b z421m9&*==6dslCWceGgG9z3(-j{64`5&8dQ94R{Rx~VRg4H!1@*`BudFUe)p4k8~W(8>` z4?v#y*ILzk%;AX?*@9@L9LOpcqg$angnj6q3nH2%wkbxJLk2ujypjj}4pL7u$6K+sFf~IDG3VGPTG!GsJXv)JwfOBKTvMYNEu z{;H?~f@B7u33KDOT`AXqz@GF*fFX0+3B?UlCBG1QZp2XRq>I(Vvo~V+Sk@f|-EGs{ z*yncC#>x{VT>za8U4Nakc!}97^i7V-Oe?|maQRc^FVKL|7sgm7Z;SKZYD8Ji%kobY zHg2VBNer=~FjleZ!O;F@E#3)Ua*jAGN;o=JZC;nqT#*f1$WFJ`E4hoO-6`=Op$5R; zwfa8-@n{F3D?vW)r*+~1%ik`34kSUBt}WvacO2xAuRGVjyW=g|pOX5ZwIg5A)rlZ- z&n9-APqjV0%3M0h8eeN<#`wMU4NAHQn&td&Oan2T^gS+CV_ko%U@1Q_ zq?-=|mdH#IOT>hyCP#(ZmJ85$qMWOgd2zMv)lf)7TOo1(pfmB8f6*|OXj~WxQAHlN zA0UW9FO>+5qTq1M9f1XJ^cYPbd<=o?~=g#R41E|g>{Rmb&I#Nw|+fiism%o39Ss2gk!3@P`gub|GS z25b^`&wY)Ft1=v&KYv6*WTQwNL3yC;QU%*k3#mlfOURKus96T;q)k@*F8BA%Z=#@{ z3)#n%64#Qwd{)r zBZ!SxttiZhg5AkyzWrex`g*AGR0d7y*^u2u5{0cc&)cR}&wCCUz8t=2dcvgq~qRXw=i%A^MiMNf)MT>f5Q zO1lssRHv=rhT#fWes*0=5Xs5@I(N7TKM&l29(CbLm&5*4Cx|*7AN`(slysz^1#yJ> zVSS)6ayAi8m-Nly(LcuU;aTAhCTc>^(m9TyTbFit``I2)nGf1k@|}UGMF8!y+|Y|> zJ>rMC=>FzJxMkGO8g2v>nwG?~xuO;#rAwesk2r4F==_h3)?o=R@d%Uflr5+r-K@ia z6|~!!ht(Z2_w!1$ z;K%BSGZ*rsiWr+BKJ%+}k5zTMq#^9|6@6KodnyBBEV5yoO1Gynhi=rR92`ah z15lINhV+Pp&R@ZSL^xDD^psU{2cg~*h3w~mo3qNX<>Hcib;OD5Yn#!9zQiskcj_ln zQdVbRdPg}1SeH4ec_@NrUtS_*4=+d8G0;VT^l*bpE2ZyGAOGi(Y41d_d+M z)LMO~B^XXh#&$pt5phN&_w>qu?S*bBe)=NQcfEBh{n3Em-PMSTI5I8g<3VcVoN(*} zi<%Z&mSSq7K&AtSM1ZqY(?sRwv_?lhXoG;5s0TN+?h+8+Q9184;&vyQQPJTniwhUr z{!T$3DMsl3NX4mO8mYJu~r#BawazJO_KjNtjG3uvxTtVi*U0a-5uA~J=Efdsp2f;ICL zqr()Tw=Z*s{(jU$J&rY6i7#%R2#e`w7tw`AijqmoD9T`#YSKVGn@0$6v4IFHfo$N zF3P()nb8Z-5Er!_O3{?5ECc;AY>?Le4HyX*Y}zhQ&G6#ET&ejP&_&t%RIFE zI7phY-dd)_ZrJaC7iq=ru0=W<3b8aQ(|&IfA$p7%YFi=#n+geF;l^G!k_RT_y^6}q zmAUr*A#VV6k};tcarV_4!??sXRl&dS#H5N22HhaS_f?f87sR^6e-p869BpL9EUM^l zXDqh^$c|-+Qm|%}VCE_=(zZH2lV^n^KQmEAC zUqs$*EzcF0#~9I=yqlsrwj_>?PI`QsNHm>euF0=g&9dZE@ysySY^2HjAjcoq(ySJpQO7p1n;B#=P8v;mh0^u3hpa^YLVkVZA z#ws6M!^9kvn4{B4AX^!eita^fzhc6w^V!G+;va>>5Nc2#lJXtP2Iip^h5dFv9Yh?= z+BfW&BHo5g(Uo&M(-T5+V>5>G`O4Dnu0o`)lfD=RR;mtJn7ps&G{JbH;^Wjr2`s$? zw7CC-i?~seYLAaIu9>hvUs@rw8nZ9ZG^m*oQ!8`|n@IGw5pf39vCV`Xs4lzRG_>I& z1r}nGOe=cuM693TZkqWzG9A|4hVBU}_GT4*`j{eP4tnu%sB019GXkcx zP=pnCP}6^>`73t-iD>l&{)ec`=6^;y%Xe&~y*;XU8suXddqOO!_G{?skJa9S@+xhi zZ?I%mANt9+fETeS^ut0@;5nDt!J|1_Sec1ISyoVP#YA*e-*Mdc@yY&n4|h){-EUTV zH};iD=ko_LG#cr*Y}bCUH63{qk2wY+MsX2<4GWHDONpkf3vZy>&WK^_>EG14rSF_j zAd8BuwQ4Og>2Y`TpBR0I%IT$9Da`_honaQ1e_*tc4Mf1Q?^vLaP8C@xOdR>+#gpSRNc`=?nNoJU$y`zo9%4)syqw@0Qb_ z2O)`CkS)2TJ8NaN6o?vI)?}hsQt&T)gPLm==+)y=Vv$OCY9*s=PAyFXXdhHF!}rDA zSg*SUP-CuAwq+mMpjbx^Tjx!#OhY5!05o3u`~}L&A%LMb8$ksH%-1tYa4hx2ku70VXZ>98XjoQ+_e1gF>fxzbv@w9pZ1enb3CROR4DA?e}tWZzmqM`(=~RnNJQE8zyT}7szrXDq!QDCa~a}8AfSyxb-I`nGB6jSd7BFplEIpjkS_R% z;KL2D&p+3=`KTEg)iun6S;VbGZ>uXaFExQ!Vs(dI{k?z7ZRQ!|t|CvTMAUR6Qe_9c zivZ?dX{WL3azeKCY-3ozLGxcXdWu~m>1AKH_qH10DYvoLp1$oA*4{3Q#cz6E?snquQ{``+o_SUguJPkYOCqi zw7k&au3IPh1jEWSTU?8L%?me7)suE-O5cK>6UZ>HP9THbnn$>O??B`0;wy|P5ksTG zd&0_BWvoKqUY@t4nR$9EdZ3@2A`ct}lS}BHeFQE(@2qTxur^|o_;bD&%a==arQ9Nq zl%A+;`Ttp(XJ~QBp86zTA|7!tEX*QQg8M_-SNC-ctk}8wPd3~WA6u|H`frhlkBH}K(ckC)Fe|K zM?j7|)J9o^`cYz>_GKWf$4npYpS%Q&MM3cQ(!9>fB@WMEv|(B`8rZyX$-Vun*q^`+ zjx;{`_D-gLx14~{M49G6GAy<Aa#W?hTHu)~q8}LY_xz zB7LQsal7Kk3;s2ofAT>n3=Q(DLh}+^hYORc&x}v3yLyTHI|Ej({s#QR$Np%Qgoun3 zAwv5l7BXiDy9daTp7m;Y7BlZ$QLa<7ArWSbqc%(0C`vf*8x=8^Gcy z3Te$G?)}aMGH5|NYFueKaf?uNtbZ$w`}n%_ir*Nrc`;lq&FitejTos7Tn+&sAE!&; zR_BL)+bsZ? zZ|j?W9~u`pGrThya9I@NojC!{V92@LL7c1C(5(^L{TJ3&pyGq=Y_kvCJ=p z76>1_6`Vdu1j^MA{1tnk$Mews(c>n9CBND@TiQ=$9t#T;RxbYiNylM{6zsA1c^rj6 zbClW4CFuWBHFNSKp{W~rjQ2gskcSCN^z(vQ6yPJZj^)Y7cIi0u{KCWl@abEP_jiyg~^pZk+r6-8Lm2^j9ZXog%ZRGTO`{+b2HrH7xN~^T=9i z*qWQT$KhJVOF_RQyCKwHs@2Ml=IS9SXFC0JzX1$a0xAR3GK`X9>P{4^Jf0? z7ACeTo}c{Ar}DU?;7vFG5b4V!B)!~a#bYKoGClToradDT zpp(ek%l6BH2hGLwAoNiA(zKXk$bSks(b7Hrp>yjPIhOsaraw#mid{}kDEV!leFJIq zPYWF*_{--0u1XWWDmRlg&dkU@l@w<153EipL{>Gl#gTo9%K1U6NZ?7i@GGEjd0o_^ z^30?jZzrgzeRB3PTT`gSx+3)Yzo2Be?@&y5686er|AJ0VbNUpl;|8qhGVJl@^xM(P zFgkJus&yhTtss>$jx74wO2X@1TF%z%HNWQdI`)#ch}7r!dtVw>yl3^(R6c0>a zG|YBBgk1~0y|Zzt1q!!u#$Y$?6pj+_tzjQ@OEMO*PbB=|w!fWq%By5&|K((+f@8%zr>^UlF#SUXw$Yh~9W49eIzn+YJ!MUD zYCY<-$BTVSjNe{J7hPc+^rAfq4WjkJxhDSO*ZQXOW(85IAiUJTT9P&Z#~lkDjmaa4 zj2=$M7{uAzU^OHNFnwerbA8zh zA1n`sz2eGBI7NhY)wH`Du<{hh8YV3oFJ+;kv52=f!CKM-eWpg+Kst?r$?B)A7#Nax zyN=XEVn?uLa-b7sW-zEHWkn%ZsxD$d23>Dl^ff*G)~P5Vlr(K(*m)otaU13swW6+D zJ*?3w9Yaj^Ht3vlSv`-jgoJ;I*|x3Y%&(q7OgMV10{#cN!$@zI-Cs1#V1jixKGX2n zdp$RdM=WstdA`dum-o@EO}BPpugGu$JtX1=u?DfdR0xW>xz^_N<+0saK>w?r#~*K4 zOS00eCF_sW!*T%nVhXAGyg*M!?Fri@05ejXj! zVPf*?3x_=%&!(XXeLmDnv$K$c{(#hw%%fMz9*OdZMH7)ZUkGww?!~yJzQQ!dWPnKXk|Cvab(~KJO`kUIHqr&O12fj(akz z2~g<)buB1&AFiq1IGy2q{H%V9oylsmXJR2hEbQunA$j@H^Z+S*r`*GetLH#qhByrl zluN^&PED7Tw(*t`+{V6+^wYL$gm_k|3mybb82P8415KOf_P3Lm+PuUtv2y82>BamN_0nwa2-m<6}Wtc^I zpIeb2K@^jS;JDY{31}pj3YWS`1sBx!IXr=t1Nsr?es`Y4e4T(FXr-k^ykNSr)Mh)Wh zwAG%oFa6r3A4FstX=y42!=745%Dhl+ammcEJYiHl_2`Hg7vY{J|G2N2pWlkDr#m0x zeZ@?NG$LdgSv`Lx^5)Z%P{N`I)V{18E~GKz+$dw08h@L21#>w?aQodTma7EB`h;Shv9#()ag zJnB}6-g!(F)S{U^r3Fg4CK~7>TlXv8d3Y^4D>kOw<(zU~Tx4TUQY1(oZ0Pxq-f1KT z3A`qJ~HP) zvq>0!tf*2IvzLY7lOor=AB-DIsd8@b16~-VOpnO7Sd?!iywFtpP(6g{b}Ffy*9dE- zU0TTo8DX70VLR2|4J^j~U{d(NzyC4;B{Mtx5a;;ono6_&%j%1W<tt8ikSL58~2fFA= z%gb*|`ZZcgWNm6`j-BU}=3JSvK^Iwr{u+jU0|K!YOamLE(jyUx5k+lnzI@Sw(10k7 za(Kfs+!s!aSdSX77 zzo`!Lb1OxJ$o2FHw*()D7Gfn{LSx|rOK2Uwy~kDE4^agEW9XKP>@IggaCHInhHDRN z$SNGXb=o%*P*eho{F0_}H^q(^#^LfoA%fh5`%QtkeojCL$P24lPx9CWS1@f!h;$D& zvCZD}5ESeDP%m(x8((u0cTh6(NMmxR`Pp$kdfc?N`A(MRpStf@U@ES@WxUJelO6p7 z+WX(XF)4^P#MeGtc9u=?)cuTJD$hoO2uVuO-E7`$9b0XAXytz&$^398Tye^D8n; zS#uj<`(smGMhy#>#Uz~lL5e}6Hi7%&Bs`u63zLBgse82iBeBa@u-uQ_bwoaEnQQ0r zLO$G4IEkAt>9f+DQw~7PeNAUGH^PPv~ zsCDui8+b-cFT`rCE&>UMr;RHwsuQ!!h!GDnZVr!S)D4Zz8w0m%YKx4r7z#%e%q@Kl z%z5fc<(6pVvR!IlGhS$)b2vT4b6OkKHDDzlF#mu}<2^Ie`i=m#R&!y|(?^t5> z&zel|h0@u&*|f~$vaY6$o&y?1v@vyBWZ;%1X>ZO?K(Vs6C75+z(l3V`R1aukU5T0z z4`sS6JF4ZF^MGxlle!kB5r;z(typ4fqL7zq7Fw3%{)dPvqslQ}#rKtHSz_5%RXPOy zARs7cmu|uy=eT>d30q|(4XA*hyFQnnl6}3GwO2j4iufQrB0L-Ir|$_T$J~lCL2gUG z_OpsG-0I6y3^MLKi`-F5=+0F0vigrAxGBL9-E)H7gvWl-36?jbL%)=bDtn)iV+q6TNYXZZ*b8>=zT_96_@ z#Sf(uiXNl-AZ#jdfVre_lkSd${^gy=Zs22Oow%fOf!qn4rYSsPG@*jl_e$zsWyYn( z{#6#E8I+_ER8Z{FgHp+;L)#ZJp>ndFg^0|Lq5+kB($l>K~fO7;+ zI3LiS^+HxGQg~rqd)=iQroG|xw?{^=(kD!VUOd|xKlh}!VzbEZ8QPRqjgA5c4qTCI zN^Sd(`oV89+HoSM6JsYWQM`s7>!~NF3y^6Nb(ehGu>crlxXy_k7nKq|^~KH6@Y94M z*PpjOusY|))xQU{%wX&7DssqFetSY|pXtW2mBQzT>r@!sx?qFc1?rxxa0)MCD9+Eg zL>-6~(mP1gAToD;m5 z#bRT!&VW!~XocWXL*YDh4o=fkL_8!LHU|ocY@w8%2y8l?0%=TwZsQi!yv}7kxtKN? z9(b6FeW|zVb((^=m!jQb`omgei2YhLm+8f9WyJE;41MLRu}rZVL8$Ou@9^PRwDMNYa4_Y znN|L=UAi=}Zlv85V*}dA$GY@SKYyEf6H3>HAkbQFyP5j)7o;R5h07p(JTvITll(3j zpLY>*;bO&_Cu}9Lfsm3Sw0}%#wtC=B+JT7R7#{PKTs&bSWkF@hgzyp8lB7{Pg$5)T zPx65eX*D?^|7yBRaJMA5_qkGIe4(Xj{X6 z|5TWj|GOVpB!>f7$_qVQXTU8<)6ASiKU4%ZOemXz@>#{sr7=Vs=GmLg`vwt;8*M_V z#M_uyev2eA4_6ad389TkD zrVstv{$^NGVS|eV&uy6s34gLEHTy`27>{CnRVoHlBUaN4&jvv@N2N^;Tys8_0w0Ya z^{`SU-3>{z7k*Oz|7iNku&CazYw400Qc7az?(UkQyOHkhmPR@TkrI^d?vO?r1f;tg zq@>aJ`2Ric_nC8@>pu6cwbtG{i4q32w;2{u_OotZCE4{I?eW5Gzcgq!v(`@y-{O})Y3_%av9eC&UWN!49U3AgIQ(T68&s zw>;x+9N6<|r_w3qxdt`&EzG3qC{+AR`w}=BUfm!!C;|k-JJwH=+RT2pWX1+3!|tB3 z6I6PRPkpH8UxEt6Gjybfctn2+O(XoZ*nMY$Jc$mV)PMmr^$ zzM1n^(xCC&2jx_xQ>wQvrIb2$dO?Nf1IDO9m+HHy4HauMsNQgX(VcDTa=j-w(*sCL%ki`e%X$^y_K}4v%^R2fHFzE|84eqGr zwBj?Zt|bOx_>@d1i-<=!ilR2FaK_Lu&VdK!3(d zo*42yzi1Yj!cg^#Z;w-f;P-C<-%vB0UYu>)@;p&h=_iph-uiw2wKx%6`JN?aFlbl0 z{V;_(eMUa|L@8?535tG{;|i2ZeO4=fPR6%>>k?O_%oCe1|A6-J1r$cV>Cv>dfVnan z!zi`}Uy+ZDV7T~kIFC_2o$s#V;bytBzD(0}Qj8?4oJv+{+N`Dg)>gZIPc4Ze~?|D%qcI! z;J@z{U0a#I;$cm33aOp;Zi{X%GiM9(hlFbSjKU`Iuop5lXuK5Jfh$?V++Op|ODLCI zW7MeU31ms!Ry@C8jWypA!iV(jj$(?Lfjr5V5 zr8IJSam3=d)z97XUKZ%&VMv)y!A<-x-*1Aa@Q8ILrdV!vK%kyJ!~o>6e4~3Ik7eJj zvigR>gEJOshPmmlsK|7*Q(mgB(Jba`1twb1GSw7T|F)izLC!6rAL+Sr1=Du`*IA3p zPk&&6lX*q1j=SkY45~VVWo*8+xXJ3BEGB9AI56DvMYArLheWu$MAl-hi|GO0M95r1 z*~+JU9_8m-GsS&>0rE1`2k{R0B=8w$#%)NVmq%Y+ZzGBpeh$wTRU|U^;0Fiu+-)JLCm@4#*P6y~Lba!NnCx}!bApXN=Y+llzZx3;T zQl(8B$nBDP87Y&?pgGu|03dhG;Kp+RnG^p{h%nq|Cly1?rl)ico>D=_hOZy%9}y8l z9V+_l_LU@t!(?Z7N_!{Em`03$D%Ozn`6FuOUXH$?)-USRO1f?aH?osMt}L|HjY|AW z8pP2brdxK6{IJ+S|IEV<%Tv5ZMnBxV8n@!lX{J`q; z@n~6a7l59}#+$*DDSuG8q%T*xs+u|zZ-ywF`?}<5L!6Yv zd@_N7AiOFeALx7Kfb1&UP?x(LN0HFEGG@7ZB!Q0C&X(9V34L!ixjRe ziQujY^1N@ea4tM^>CCavx$P(p$os89&c^RlR~~Nv-u87*`A6Z+3rKtexi2$=-+jjP z9%MyXMO&^z{REc$VXsddP4dvUR35Q1jmZm&Q{CKCN=L7o(;DWNAa3u zG5QE-qhFh6|=>@X`|Hg(6_t$vz(pYV4(A=^R-RY#y<#_-n5Q_g~zk{ZsI#F zv3^D@|DKjQ=sbW+{w^tsC#$$A~tZSb#RnsUjg;d>0OC6-&PE!V@b(PXkQm1Pi;>3nS`9=xTenmCW4`0q2|_6 zOTud_X%c%}sKZ%{iF#x!tvQ&d=^2ZQ_|0+|NgMyO_wX*q1=UokD8Xy>?|^pC>6=BuWY?u$eO(y32gvzPiPIq*)31tLSbleF z7E5((mz+KOZ zxK9G7R923G30~mc1%o+8M&X?x6iZ`Mdeh!WyvNE=+0+lkA`F#QT}0_@;)tjYP3rf2 zhm1ct9r9?FICayjrsA?5djDpQU1N1*jD?*vkNR?#JlL`^D%QO)jM@PAHhAB?_3{5+ zlog4!dE4C0EffQ~T%4u#I->27uH~a@Cf0b9U>kh=NvnEtP#^$=1@DstS_dJb1%#UE zzkRm_bw||M?6J3X|FD57c*aXv&v1*L9kqqkidXxNYQg4naRBXL_~Zo6T#h+AJl_ow zPq&sRX4WKfnf}OCm?}e@fs_h< z_&%dKcu1$G*v>yV(C;SIl#_ol$mBOKYFsgh@Q-aZDZ=!pB1=2N%hU%%k6j0A=SNwA zo3L=HuWamJlp+ZD)Q$h5&LB5JlB~XB8;(IdV%BZnb`nkQwS%t21LSXqa$LI+>ZLpI zINnXOv>KFdv$KOZ$V=OM~FgFjxX*`D$}`GIY@ z*Ym4sjO4dy6cgWfflY^w^KSo;)+(d>s7}1|D;Jrv{x!7BYT^_=<^>LpHub5E7?W$D zmUAkx6MV#9(Yydp$l)6l`ymfH#2Nky^;v3pjY_K&S01&$#9i;$@N-0ib*(S2V2z>E zRLvvz^V3pLTe-dPqAiS=_0@4 z5FjRR#aWIjbT@V-xs-!QfG+3l->-yG3(>2#Mu2;)(+)b@zehm$!VV zH*Ory)T`s9Im$+J##zH~vP@M9HkNXc+QR6=wVeRQT}X{iI>DzoH!O%y(rNEK%KqbD z{hX7$L!ue^ChDuNbd5gxtOCk`q!^;@*i;yMTN`lcq$cI7M~o5U7N%G>qXX>$pShx? zJejio46>A?Ru!3Vsci!uovKo2`!i!vxD|BeP{VZ8AoSXuD<{qAC~mgp5JGnWTrH8eX+&B+jkb|6=v0O1t<@JT5qHu{ zC4EP=5e$_>g2?4V`NH==@mz_#igy2X-LN;Wkad=r)GcCB9c`)?IqU$sVigeS!VtD+3}bKSSvc!)ii3(stW_3CdC*-L!H_fu{~ zqX_qZe9Gzd8KR@^69GC2?BOJ?Gy$L6)8f-IC1v&ODYve5xHb3hwFm>CUNm;v8F{a% zOc2Dz<&<1JqWTAQM&+!^X^ap`^)@qM*vUp6`^&>l8_1P}nJ(}A|Cjuy_lHdfr`%mI zytg>Iy2a`g@Q$5`j);jK(AP>bJ{T$_z91~t3da{kLLf_t#~{FTzhxUqLf@37qx3|UK=L1VBoA!Mc976k$ncSWC1eyvS*Pkmd7K6iT+sw z9@B7t8Jo#%+J<%9Lw+0P)YSySY5Fn2j_4A!=7M;fv{^Y34N@2sAs`W$9gO_m(z+lo zFWQ1tXaC|~$(TDnH?25p@=iuy;!Lc)goxfHV*~L!b`ue^#{hMEFMF8m;jG=*PK(H` zp$)N2_bGUo%x3;x?^h(m9IO$Ngu9wdw$H&;Gd+Hw@q2*#A3l)|Sy}E&Fdzy&rU*4C zHOEd`_D%~W{Fy)0srd`1O<~~M`=@bTr%g)(Vo|P@L7qFq5`vbp&VD;8iU)aV$k^?- zZ%s;&FffQBlr+Istk$0_hB(n0OTgs!{}MqWO4Krgvu<~log|6rk7AA*zX7Nex>;TR zQA)L;H)_vF`>G}!D+S6qr3|CDm}las@F%;mgt~uOHE*7WtwRgd?VWM`gHGVmGS)-x zb9Ua+<@5i8No}V(%_MXOMhIyg$*qiu%bTLthVR{FmoLf?RB**F-2+Fysh=m)^lnu( z^b#Y#Aggzq(a^M3n5B1^18y_sFk$Agmfo&4J7e8;V*OqJ-oVWunYw4QH!%qFmBK|6 z?gKBk)~nb?4gm7kwxk?&n$!%jSYK0=KaUG3^@KLR7aDmbkBY@}&%BJD2;09i6c9`k z4L^$$CW%K&d^Isx>6K=)yI{^K{7<4`fyGdFsM6yti>$}o^p|R9(4t_fyxndIvC*aY zH`Du@FI>!x1&V<-zp3BYmMsmgFA?CeH*k)fe@dgaoLrK+Y<0}Dc=|nUpL#V_pR*9y z=?Pw4u-*?9?4Y)B1r#q=ruV<$%oUfrlk!02HiE)-8Y09zL47rO&H2v>udU(-^=sMT zbyl5|mIW|>1IO`OE&X+8(yNMxkHdS0zhWSX;JQBgbLXNW05JY(@E$5Q_kV%!WR6hs zEru*s(1eEC#Hm#Roytb3A&cxv>2=_^Q(R}jzR*Xq+c9T%tCzHcu&Xo4dLD830ZcQ6 zm3r2e2PKFDC#~6Z=^2NLp8{@*g&s7Y20}eQK;fDW2jLTMBm8<X zYp6Aq^7XB?UfFNPBVbnuw|$!V=N6H>F{qgmFOfPK9|i_)-<23GIb))X-)l-+!#((T zQn(W6UmbEYl);Ccvxukj2+TH?Ir$4(N0tWm4m>Vy*Ris4nJLW;cT&>jrSc{La;x|* zGYqu=c}2q3l*|D1;N2ypx9TPf$3@^F7(+rY^?jiI&7A|=zQB}dBwpgLuDTlN@r?GO{#n*^3(B7l%&u-+*YPXzFl&xwbY za#m)1Q+#k+<+$n*kq-0utG~oO#Yo+W5u#>QgH+=}3^UIH=ZqnyoqYr|ljSZsSa0Ty zNDsn*9Lv*t;GH596Gd6VxRT5%D7|j-${g4x%aX0+{h!VZ^L@7lYs0D}zck6L3ft5* zmIqW~g$K4h-n*q)96m)4O=>6Fa@EbO>lDIJ8rA&Z^y)KHBPVV=t=?dfO-9nV9NpV| zpW#R0lQ_QwtPvNR_neyBSgm8>HkoZXx6wMY2G1!4uL~neo1o%eHs{EE($nsLL5^p(pQ*z}00276TqVEuWftTy((K|saG4Ub^L8WY4u7b(a^ow0IBmH3kju`o*jnfA>1}njBwxmJyr!?Yv(o687fvYgW zC6Wn6+NG1s^*n9xE@O`~yICBr-A&g3=F4khyMjQ3>-jdMQk#Xzhk6Q0siD{CMGkj6 zP!CJc1V@RTCfphKg+nJbtM7l+?cQ|lTZ10^cl$}Eta^)%(iZfaR1!CZN(Rg~vmi-h z>oz}M5Jz51htsx-Hb@mE5}6jNbPXyz+n6&d^V-c$l7SFPPUtw2>L8tQUpdsR=Zv2! zjiCR7f3A7A9eDnZ-krC-LTZW1_qfC{J;6LP&L9sQ^@M-k7+k_)?+eX1-iN>P10sjQSHDtc199yZ)&f#}}4#`{FlO;@+Sb zzO&6ay1!%b42>{7T725Qi?@A)IbuE3Ee_A@f28d@YR^%n6>4*|%7a&*FDqGNr(c$m zWC_e#g2&WyH#IqxgX)ck*^K0M;{8{RVv>J{uRt1nAVNFi$aL^Sogzdil*o?9%9^z9 z*83RpEZdqHtl2zBOaZ{TDje4VWcINkf_VsXMngaLhQ08&g_5IZWVn6-$Q|pdTSXK4 zNAe9&&S zgnPn#7;NNCA$@@;g(^wfPJke4LtWsK8hcjPmirtyB z@DQ9Kk37OE?aHL$A+O_D3tfdqm9xwE{3l!Ddg`EUQGJ7LklT};uW6^BasEm^GpCO_ z3#)I8`dtK2+A!=wmjj+zu|IUH!_H1B*^7lw33k*yW6!(_h0*u$C||zoB-U$2J|u>| zNPEDeVojyXj>d#}|$&n{KF0JLPUv zfyqbD^GD-xYHqpW@Ri=q%W?$sCnv)`__3V@FZeSO4|1(`Y{E_gq1OPnWDlrPf1~H@ zHq(l$#v0dKGW>P?#t76OISDN7P}NM8j2vO|mp!~m9U>BU1^*);XJa$tE>P*jl#&|i zyPasNH5N=Ej~q#~>pWFpMA_;U>JImN>oxhpq`^a98sSp_)Ea7dY{ zB9a4rA}CTuUDyA2;Si~Qgl5|Z=YUA@T$iZKk+9*?;t{#U9KMRUKyS9$HX0V%?pW=w zr^|KDXjvck%p7%iwmcGT7D-|PacWSzS-sM-r*14 zT(Etok^a9BGHf`>mc(bcrQzo&atMfMPeAQt_N;xGD`fQpl&V3BhxijW!So~r=`4Jo zo8{?yTByOxeE~w_h|eZ#_fn!Wxr+y|HMJAx zwX5%C>QM%{Io?Yi(bhHr^(kR<#g2O9c@MKSq_N6fPMJ}Hy#eVMc3z4bkRCmWYhOLQ zU*0@tE20x4uKzEBxOr3UV7zCXGp4Z>GGC9q;rBZXOg7Ny0Bd;${Xk_MNs&!Hla;{u zs)=%4c$?Dx$=c0y`_nzhvdT6t=o_MC0Qpg(!YQJAqj_4FKcGYm&m0GsFUwIIQ|N0p(eoRM>!IrB4*L(|E zJ*BqMnOD%*R7V?~%DD?cdA|s?R$oPDt1E4~hKBL4Xh?a1JG>m!yU=;O3J@26?JV3| z$Z;J5SWLcD-vfisU%x`bm*q75VQE;v=Nk$oq5mOWX<5@QSk-&n=1j{obz#K$H*HA8 zL9%_Lj_{y(@e$qX9llPI5`@+`Khn`S<-i4J8kBtW3qMl3SmpU2_C|w`$Mab~YYQM6 zU3Cg|nSZJa=JW?P(gZzfh8$LeYnP5|(Mln|E$JYSy3o}HTT5uZnIHvGY;NYwlDf_js?)FVf= zIlDyYd(mq$4&?g0S;u8Fq`MXsc|zZnrF(ItYoMWKv^+U{WwJ6+#OR8YT=X(kxUBR}b!F zM(;#RxAkbuM(9!`;Y^*%9DXNut$7_V}_UK6qbZ@vE|Ds>g!QqSvpC z9K)N-Z0HGK$;7dtC2#p0tH2G@5lc`6?dbBg`HUqFhZvUU|BPV1;-!{Ar8skJ2`y$R z1UH10%!VF76~HPl$_o-QF>N!1?D;3m_@pXStiAE9`@25vjEvq2agiqY zp(4Hw^%!*ihpIWN2=CKrp~>M39_J+Es7Y!oUS^gKj>|c+`uUh3$`l%DkNjo4mc&YJ zR`3T+o<=^mOvt0yW(}BiTX>Kt@$U2GB2PbERo9cZCCC*@u3zX2q-ZF&Cd9Mro_%K` z^cXm{Rp8y?+tw0UBGbm|o1~7}wwt*Qv|hH~;<~5rw)xhq^MNPI7gTLrB2Z343<%2^ zI>`hBoT=o$3~G5KSe*@02qp}cU4<7_Qh2MPj_1wuJOnL4}e62!=^GA=7IYYb^4@(1B~ zVK>`;ld7f5M)qV7u=x${F;~%vPED93^t)t%arlVu8q50@1w&K+r z2{)q|qExpX^6rF$Snqs%&b!W3a`Ci8nEXXtgY-Uu<~RscyDVm84XRqKz$lx>%_3#A zfDYT+&}q1*NxF-tkmSfGFjjR4X5PGmVj`9+*n3j*b|G8|w&2woZOPn%0yV;sS&_EE zi=V%}UXR*zdzp^%~JRq$#gl#MP!d6f!}W9@vXpC z4hLj&IaSm8?||fK?rPt&=~O8VNY}4ypPw1ch0WT3Lrm}pX5{_P0mSmp-MqUe*YSfW z#_~ocUbWdGKmn*}IL(N(ZeK{@%&Oivw)~{5#Iw2Dh)(o2On=6FZqb7OYcC!q z8>Xd1E%7|{kXuf+7jMs@LH@#5=*GsP+G9^@-jkRYgra&N{u1QkC(otO!0J||JDbD; zp-)4=FjKfH{hqNGJ-xnmDZ&u_Ps(ub)Tv9kmPr>^-JeJo}*d?l?0AUH2kM2{0FP8wVPG#~k>bjn@D{++p|}!JzG1Sw$Rf{{9ZVfs zb=%SCh`zvFCL*Lt(ryFoutrPhw0Jb;1V>ut$-#_bo$};+ zvT8Y9wY=pRBWz# zi-hgS!-et&SsgALDnsx ze-|R;@+xs$|52d@0-plI8Df8hWD5g4&3!BKbk1? zhq|Vk{l>h_5)6?zH6xV8edTdZlWaV+a53leVQ(22Kqjafzseizy~XP$aeQhFzbxR|FB-nD7ZVNStf&s{5L zzLR}ywn4GWOBNtVZhbbQ(#o`C6``m+pJ83o(vB$$QHFnslqU z&43WR3WO+309kW8Fz@wc#I*v5OG6`eje`puN+9&F0)D>A)^pt0HUs{zN z3`BWWV?7k!NdvmR8kOx7Z&#YX3xT`9VY&x0f1@@xT^DQe&;wsLenQQ}ie7IIebddt z7eR9jb|EGjb6gaw5e9=N&Nxhs&>6B&Ja|Y!NL5Q&(d$eW+X#>TiPIT(7bvTHBgrSx zKo={+^Ts*k58|1pGs;k=`wiFG)(Rr&)lyV)_V#j+A+7;6zK3{C+dctf6Q#Bzd_#Qy^7DmiI1%H$m2-PWewvo(AM z=43)RZ1d^_;$O>X-ciLYuxIk8ihBMCIB}#tf7za@Hjf`CMaPpeW^ZtBB)Y~U(C#LU z0{yEyKb?QE9#;lP2*gTTcfs*q5AA6`HAh+v#XmTU_)Cd1{FjV9vBmCnb{ccU0s%dd z1G3RB#4i4K`*3ztxL^!iPWR{jca;zakRXUT#ZTA-w2CTNWtE48a{WKL@^}u=myu)d z3kJIwkU8X_RH1E`=KP|kfJY34>+~4;jbkc9-PW&i`3+;H3zznZ72Opvz{v7kT~Cu*Pt;kb`1oaN*`z% zHeknT#(a7Ha!E4tq0jc^_nAHqHK$sW4YMCA^r9% zVAD~g<-MIfS=@T?sL@tNv0=xjmTH@{Y z9~O(zLkGC;#DZtqQ6F)A246^Bf9f2+&i)b<-3m*s#2(B)Mr!$R9EXELN*s%PV+-D_ z?ZJ_ERWO?V2H`*WaWujDQ&O;6RxnWb24vZ6JJ9u9ukakb1&u&NAA$v%-OfyKa$sw; z=QJgD>ebCs0Fa%kXcFcq=W)? z|344MY9E+!Hlyx{GVqYFL}tLOQZK5E$NqV;Z5*MN=r^x4soSt2+4- zFydMz5ng0h6{m#!-S8rMR*=SWi0@k!2HmNTSXSImF89nA*PNH+%p`m9^!{y>*pn9^ z&+^vlT}nDR@Vm&Rr7>Kcd3vUj@c5C7+hg{u8Cnqe0n5j}&Le+_rP7wHuiL7}sX1|V zbtev2RA^c0Ex8llBJ2TGi80=JvYw9ZOX%OF3Wx0;fT>CZP_Qkh+*v(Yi(o{qDh zn&n?ge8Go2#9YVZ>EZo;Bq92ch43x3Zq4jd(r>(Bt@6{)WRk@iXLlm#n+;2e*$_(a9xRE{ZQ+x6#-yyLsr(0aP4k*@H~U3^dtj_iXYy>za~`iMWeV%Q!D)9BU<5od__d8A#N>1|Murw6RAWVDI_|Hm zqPu?{i+V`9~vfKqE;>XvV}2PC_gxRkz$&Agveu zqWia;kSW?9Q$6}D-19?=QuX~^Ea(EnE@r=boa)I_Gd+*cW zwmxMLF%l0`NbaMX_0^uj6=gxqHqW6(o#`14cx>;ueK0GN%cUv;4CTEY1UrJeE@j^2r=ui1MXw81H9ss8QzTr zn%9rM!dFzVdkmRKv!5!B{9!8n+QQpB=5YhBS>#p;+9X4<14zE!0tFvix?fOW)E$l~ zUrmi;zoCPO7tb$SX+&Y;$9&Mc;yk-jZ@jXf@UaGh=E%#=+)M&{MN5f|P#Ocv3X|$I z2X+_49P1Nkif#i)y7rBm?(T=lE33jDeqZr0C)05^pL}ZzVjM$f-YW<&Zy@n8Dt2R1 z-{q$Guoh--lq%Ty8+$yks$~G~F9f#cJ*H>4^ygg2ETe!pldbN%u*6+CK_;7IgUI{` zpziaLm`fKxc&b#EL)$gc&ExTA)TDUPjgnAS$VQzVgzP1nslw%NXwC;Ev%}{H@JOki ztqmh=&ob-BbR;~F?gmE;5I&_{sahXtat&ejqxyLx~1ll zb~Q;tebA0AlJF4SHC&_-oITKhMoGaZCT=3~`N)5%u!1ik?Py%bN?L1I{L0azjKAST zh*E%y9`;d~DNzfy4hRSxYNng`e-PgZ=cWaI2_+=iTf+UWdKHsxVAgGzl6C?xq+*VS z>4Z|i`{t7P;g8{neEBJBAZPViN9Vegdy8^+-*xmE`IdCAp4AE%JSD!IP%k_l%xkkS zqMe|W!*lb>TSReE{2%C|Up>_}aIn9Ua3#3;J)`B&F^&bp{0Y~*T00+g3+#Cn=1J!Z z!T~9rl(@&3bfCFu?3|icd+*4AqVW%Y&)Eub(Z^(jV_J6vdP zqldj<^_nE<7v+`W8N=nHv=%zTAQ0O-6oXr+`IR9(_ncs1?hROC1rL4TUD~O;P(59Y z9v(&u3txqbhK~6>;@-N7!aM5q9tu}oN?bX6IhH*Z9_O=^MP0Xf5`_rS)C)kziok4uoSqRlXb#tR~~mSL8-H>l)P>dAlb@?zigoSJdmp+8BY#}AtxiK zSDr*nIY_ngQ`Z@seMjOxRANb;(+p|7ChyN{o)L7RS^A*2_qfBllV>nEuC0Zd3{!)K z7BsGdk`U$1Lz5YQ<`K->Y&Pn~B|6>^0}q~N%n+pNV2$LMNo($=b_iM#%7qO&Pe_Ll zoKf(eotM=JGo6deF5Jludwy4bYd}-BrNuZ9IJikegHvxA_`%}6dRAg8bbC1yOGtY+ z{NIcgtOo>p!SWoS-yALa)O96sEFV7{S=L<-HAVXgXOrcZq(BiNn6lB;UCYn#%bg?I z4#%*(qRlDkn?Ry_P$BDT{OtU1LGN7&T-xNhU!3*1J2kykbrm)aHd9t{- z`hXm97o;Ncqoz}U-IC_UdfJc=9;*@kG{(WvnCp_0X&{+ATpqB!mio(_c}Vg;6Wxui zVT#TXG@OQ-b$o`9Lx6}^UJnQVxU4fn=ikff*A$`LaH9u1$FtB2u|J6X4X4otBk~jp z4}UZvBIp=Cws6^!mAJleXgLxlPzC<#F~u_O*~eurIgapB;FjCDIBh?mFXJ)fR?C2q z5`lE2+#dITQ&q-)D%{Ux;y!{{+y`*kf@h6waw9L+_&8PM{m^SO7rulU33pnqCto|^ zZUOvHLr#*hB{25n4|U^gUrN&`^H5gTUgHD^gm*xJa1T^UEyuNU}wqGaG=<8=4W&z&I^T1 zLi)g(*@<6>7}nGjIJtMG^ZF07O|o6;-ni2rwt90cyyt0YjxnCiUo}qdu9Vx!CkgO< zuHx4%S6E*N684mg&9{C`>4lZqfkIoPh0v(2JYAw_c2P^Q6BNHsWF#R%_dOF=PsSy+ zo;VT0j?L*g#!@`CvD;4i&(a+TA3l^np2qV&@m^o$XuN~ZdXb>?7#Y^2vqafQllF8z zGv>18C?x;H^u($ewsuUH`HMm}U&p6GSC8p>7yK8-yn^Y3SEN3ekZjVCNuU1=sW#{L z8Gc96wZ&DW3`gB$_{odEKD|XjqV#hS%bLuW$vCOe_GRy-MoodFSYxezMWijp_X~#F zZQhcJRVyJw8n2pHU??NmXQtEe&)h>BHq-;_kaqX={{{rHteg>-G!##R_zDQxk@EZ% zm3wr0xc`i%2zJo^MYaz}Df+DNAfv(TxOzXn7g6BQpcf9+mcPEzy| zZM0py&|X(t*QJS=%s8Yn+YwN}(LJ@IFCVj>d09$v$?oNCH@bVmbK_CH--Kv-xCupz zZ>vC|@?dF^rz6UntfCL5B}E^tl_U<+2hF8Bgg&eGVy}E{@atAMJ@62MR)S+RwhRY9 zKPH;-oSpSUEi1ED+SqnkA!3DUlwVs6+!QOHEX>3PPUo{pGyCKTCmCtd%5j^VDZJ zR4V$^lcA+Z*^>w^v1He;_dP=)CsYK(Oan=Pz~su*^Co`Hi0KS8q89g+g)6p_5-3VC zyquTHvPza5ftf!gvW4Twb{ZEsH-rf#c>G#nmd5E6e$5X`@1Me1*&soM(4-Zt1d7CC zz$q_d%%$72JNKUeUc>cPa!mAV^PNffbT0999Z@?7Cw-YTg<5xV*bfk(NSB`e>OxJg z#^L?>ZKp+L)O*+*W4P^!#*!1#lI?uC=m<$GRQrxLfVP%h(ML1#3NzP-JF+Q`H*v7zu90ZlzKN_-5?rM;;%BUP8| z4ZVU@WukDMl{gcBf=zN;j^KM(uC>=S6SXji5IaOM~FM~-n7gPt!joK_^GzJo)5-_;7rsnieI2yq`|?A zrcOW3JMh3;8&T{O``cB6(KMp#Q4v_P9v=U3Ms1Go1;xY~nEn+$c#q1To5H@nma5TD z9w8_ao{O6)$m*NN9wUvEPM(6sIS;d9IHSXopcQ`uRw*mh3$fQROH$l}{ zCtzXdaFo6I=SL7C3l7-!DpU0LQEBk6+oh985~}{wbHVIHG+>%=@`q#@mSO4q0)N$$ z#x{Q%2_|~a-6I)~su4g^;C)D3-4#@njTa0^W6;EiA0^u8NfYc$7!;ruKHVRpHr30q zass?4i8H2iRZ>HZ5qTg#Riv)p&W2V>MMyYFHFg8T;E)W^97NmwX{4BlJZ4w-7xHv0 zs4aOgSa}PpjqDrVxGzK*#_KpR;fQPWtJ}RMQLzPgM!oV#Ler{q*S*SjYaU=o)a+xA z?cm^9ooO`)QXSTaKXiSLk7pniJi=;NOH_i=Zo|KPbidGIELWpSCi#g_tuZ?2BO%rc zZ2t(AE47NDSxPcBY))G9qCwN6q$ZO6eoclX`15-R|#Fnp<`x#3{>wvbRmm^o9>d}Xbr<8S>Z@2G+O5k3S z5vl9a|JcxgEHp>rXC12Tq%jKnafafI^zp2$XS1yRR>Q<>YIEWB2@JJN%QeN{YkLpq z8N9WhgAJA&z1;yYM6P#dHWN++rGRM&(Dn#a>{InPGn0OBohO1rIY*@#`XeiGNGLs= z(-H#oGoj3oJ)GlEMGUNMebY7}IfX`OZLyZKnwKyYql0Fmh7Ew&MB+kk)FJg1Pu?(? z_Dt7WT1r~>i}8D%>Vz@`+)sb37BnyJH<@EmXMG1^WoB0elxNCmqVzIM|CC-0e6oXa zHi@RQ=!nixe+u_=y|CLU%mR9Ke}9Pe0$}?Ga*d3y?iDugl zh-lBskK`;0p7jqeBnD6QE7xaJ6A7HmHKHH;6|d*=$@T!{qs&aZ#x8{) zpJm$$g;)3)G=^uMfK_kk`S&WS?S7cdoa+rdDIT(i$WX6KU&!tUXSKCyFZxQSht_n< z{6{JY2FYc&=7-p1)%S*_&z2z9Kr{}_)po_Gkrowuj2IGX4G@${BqRdrq4uyn@;+;nb`M!LJZyE~*)y1S81 zNeSuhZUHIj?p7M4zU6g4@Ar>i>sY{CW1eH2F-*mGmh7An4lmlN>b`naOohup^$2Y- z^`4(5EFEtXImJcAZ`e_rPaTu@lH`vuKE0_05!;OBZ4gcRq?ih1ONjo8Oq{{Yf??Hc7J+PhhY{Dnxn3_;(d&cTR~ zSek&uVPFxq?vX{dTMB<2t`efr`+oIND>~YKr3k_NF6cLT(nk)$amCj%6H> zVF6}Y`%-n-iO4SST5_p!dGq`lr6SJpyT zKbkXK_|xR-Z{u^MvD;LRmbgPTZS4eC|K`lMNy-m=769rKvG^n*0V*4#2O! zzVTWEVzkBCdg9;l%SXpf;Ce5VDQ}2PDw+mV9yqi_HJyt8G}>x8&ttUl75x2sE==STTVIFR0cV^ie}fj&QRk zapmRdWL6!~AI>8-cq!$>D^RF)&B8~flH70t&60s22}yjsqRAbaLuEqKdP=RZ|7?Wj zQpVKg9Sf#)swm5!#mlrU?SB2KtiHoEPFN16t5MDivS!GogxZtnjocY!bT1{Sk|`Wr za5nhu`IsZyps;^xk+G1_C~XBUS|000LMWmsxw9ssFfcfZ)~F##cWj zfsb*raM^upeDBtP+^*~ew~hbAGe3&zI4q03kdPiAOYqy-d%twCYehf)nqki;4@yqa%FMJgIppgxO^x%<$$~| zNLWtVPx7^Z-~#uREbb`@_E_BBE>bWDOLTZLk0R$BNVEBG{`OW+a{l?dVH=#u0N66| zfPt034J?&km7{ycPfGbH0xx$?wG3hYuJ-=54rlyZHc*X*pFlw@&o;^D$18YXB1m^v+=f#g~KvC97mpXAQeg8Fao zjydFh2w1;+#?1G6BIC(`0E-e=%>QiOa8_Ykv8pDn19PDlt>3gZ8fFtc;zc zJc)|?tOp2W2*b;yVKDg3r`&ftF8KeDFr7n8Ymm`1nof zb6>{bN)xBfdkQkQLpvcv--B)oVYUpvAc^8A!C(fq6~2R_+P-*HY1}F`c8fGg4uCOZ zv=knJG2zhs3}n|f=nr>VFL(R9$>)Fwt^oOoaL-bJ+nL0*!)CGeorqDWyq43a5^lJ5 zeqw#r!Zfk-p-EfaCQsK&+@++~qgj9Om7)juZ|W}BUz8=Zt42k=D@C{7&&EpVIZ4y~ z!JH-18_$T~Tk!HZoNO;^a&K3spTD;(OmL3k>w9v>9H~;*QVb*v9zsgtO;vj-u|m@T z16_f5{?YtKgzW5dvv``H#uTtslEhFUBI2X}BEW2#M{A9L)wJO0Kd>hHCqJJaMr@Ja zhY+hi(!+};jyB5(%qaGHPA&`0z~gQRGY%>G3CtiyHNTsV)MaXQ-V=d`+eh;v zXf%yS>QyQqZT1^j(*}ze3We^8A!nLU*}s*T6*I`?L>LMGj9>OngcoJX77{|~#6gB; z0~y9XABX2>r3iueqvW8h?gAcyW`1$T+y5*CKsH>%(I}@vV@!B|DCJ4NJr>OA(bv1hC1al95X;IUnk+ddr(cvT{e03Tag)IgOqknmUzdDC?Lr^RL!XAIdw7R}s zsHmkegklAU*un|gL!U}=nfEJn&Uq!5%!NOQ*>KXRrEAUx%o7S-mnP3Bm@)-!OxH``))H{l}!IL4IaIopM}W> z{Ab%yqeE|#>Tb(m!8;(ZQ}mIBrnsCErJ2I>L#}ONoG_K+`s4``EQBU_&NAaP5g~Kt z_Pl>a#G?IKK-yss^aTu~Wd2YF!Bh>8lH3_+USyxx57gJTJ)lLmhh7(P!$NMN;p*Ca zdocP$W?-4xbkAZ#HY5}p{3iQNtt=KJF=miTBI?PAb9sqFRO%EI*L^c$^yy5VZSQp+ct2=Y;ZlQsq>LIkn?SRILh+EaaJ>#8mmUP_kR`djoxNf# z%r5cCA09bAs`6oY(p$DSEwK^jEG9}$=xk~7x%*Zo?inTLy+K<>Q{CKy3HCnRL77}>(*7xCQ zD>IVPZ&G%;3r_C^j`I`Blf;cvyQyjuFc6`AP%t7GALgLGjeRDllpa6-KT$7z|2O5L zQ^u=&Yco5-hWc34GbkP3FxrOFcPMTaQfhvyY|Ms?s=~>zQNy0S%P3XLImI-RBmzJz zu!Tlb8;n#)?pSP?fitn zDqSU^V9wz56C66~FMS>4gCJFYE$Vw3YPZ^$zQ$esGODC=HqfHcVTwDK7JoqDLb0s) zN$T4Nw695X#$$JeJR?*8N!(F%KUqEXu0OGo;GkBVyRN9m1bIvsvdXe~m=7-dP_X)4 zQy6zrU=fOHbzAgiPDXkl>}<2u!>%bYo^CKk@~!}@CmS!ppoQ!m%aTx+2P+^IE|BQz zH|(>Piizg59dUS;R%l4h`p<}X8z0NQs>ccl^v{YStdV03TF2?}J+`o`M6O6{ZhNC9 z*J#i$vsMqgt6oWZsUj8;75j#ck`%Wn{A*8xUW#?i>g@sXnpe##ExVY=_DiPFd}oCdaAE22T$$6w(X6WL_n!+)w}J2trhdHRrp zy@aKuiq7&Zcm;zSw_H+c8Ka&WZ;SfM>S1(jD3II%XQ`oBR>}Xb`bsOXw_Dd%2Bh@h zcT0wZkN>=LolcEqGkNl;c0ACf8kYQyYnerAHCb}VM)_~Wj}NHw0*i+6T<~^P&W&I; z61D-2Cykt-Ieq)nEFE`1AfnVDFx85@9b}SVz`(S_*N$Hx-UT)@Zb2htk2Yh3zC#`} zWlHk_F|Sl3^~Bmz0CW1vFj4!T`&$+1;OwfJlD7V&W5ks6x+cuvBaDAKYFysTs5WRT zpMSNeu@}E9a-zx=O|ph(&Tv96S)3dG&RVa|`kl~wD?W(|myo{{`O7H8%@zhd7Q&d( zmPp43_aJk{vN7)A3ZT@_fE2~00-x2JibQ6&rh0qMB;qvJfHXLT^4w4YDq5Kbkag|4 zSx860Fhzb4C#?1-#;gfTfA?Pw%r~dPFnmjvjOn>RR~qW+gS{t}mn+wVR{v38z{#8k zI^r_Bt=z&oI~wr$G0oF`Z=6zQ=o~s}JxTJ+FRG#TWp0kSC<7$W;#0bc*%e33 z%(|VV$?PV6JdiZyZ;I;8s%%T!!bbldna}^6hMP>_S?y5( zMCN=4ge=XrbQTABZ{)t-ugS}J^!E!IUc!MeSue9AC$tTs>GGbhpEwRQrs*~Q_H@H> zb4ff|YGj3x8q7E{GW@Vrm17xlSW4<%lX^4|w(U-DIBY>;0VOdP<>14i0WXk=8NQ6=V;i{(f>Jo6+u(+NQhk(Ym z6I!sD`?{LS+?`kDLv)?6r(0((1v2(&Fq@pT(cugGtcmplt|*K{!CA!KXI=mpUb5ZD z=IKVLBlb)c%@8_&HNobT^?i(SG1oX9urHCHG9)w*j|mMPF`gre zd5)|C(_9+6`225!z<|+c(!V9o@1-1fd(w_33(OJI5{r@!qAFZTO-@>tw zEQ8wGY=zy(bUOiUVFw!HmyUmiT_$1u%0|0Y#qBP@Ogc9xa?(NqEq}o5aXx;t7gdBs zmrhxj01VAX!?RCI`qx>BBT);&RT_8^brPM@<@7FME=NC$n^NzbX?~ylM@Dy59PUbe zQ2q~B-A$2zj~$+~;26mn$)@92ST{|Wj9CKQ3JM22acZ(*3foq#$Xw0|t9gk#WS&;7 z9rYfnuOZT-FJxxc#~j0u-=Maasz>>iumj0n+RD+7e$>D6})l^*-kF8o6ixe+&y|4JPJUE%7?)Ic^=KOm#wAsYO zixiyDDP>+*=+137}1922{bNl^|Eyc!c<6fZc0lgQ{ivtV$tLhVGSp|@?)$GP8{+1< za3yVxJWUg2IqL$n6h@Ang+-lsJx$I#A~;}&dD4aRsgJ?b{G3kOh*8+GH*s} zbYHc`^?)c~=-(Kxs)RTz$cc?*H1}Eso9LmQ~3V%3}xsjL{Y(<{p@Uo!q%jo18dktm_qQz0=BsUzXL$MFVN> z?cUeH5ZceuxQ1N>UO)r5#vEmORxi0T-R;!$ZBP<#jRqm7m6mVPMOozPu z5q$2d)b`?{|La3pMJ4JWKFdai>OWbZrr8e-r^qw$Qtx=;)ksE8nqQ?mw=w*pSf?916{f!ZpeT1 z7_*Ekk#rXbk$Rf3i}*X+cDT?}E?O$q6h9@+t}9l#kFS`bFjFblam`%21^qqV;tkpr z5#2*h-5dI6HM#@6GvKMUJF1|ul+!1^CQf2I0w#|2=k%c(^PfWP`k+g3xS_oeYYUy- zQa%7`8`JY%lzBCI68j7B)YF=lsSgu*HvNBnZsQg=^jc>{N+&_DWT>Y0TK!{V~`HL z!X&FcADPKrfcRf#D2Hz)-XF_)2yYd+!4(ENjGk5D zLM258rI`FZV1&1#u%vFq_Qb?$D8CeaLUX3#|AJ^wgtV4tC_zomPjJ#RZ&C@zipE<) zV(w&2l3ilgJi z>MtTIZW)3-&sJkSvCK014Zd|sM(9~!TFfqk2_KP9>5`a*Y=ViaFVeCK`FgR8t7%$M z1YZ5P2O{P!Sx2l<00=V%MFi@c!0gm3-GDaA`aj3o_CHHJpywi8lNP3 zulRU9pfnKE7W-2BO?u9_W6h-*tRgCI($Zw#iP*VkOcRkY=6ZIIIdF$J z!so)qa(h@EXZQ4HU4)l7s*jQcOKsl;$yl9mRbSGm_0L`s{_@mTw+brV<;vV_#r9Wz%C5~D~GCyX0xd6C@#fqX0=b`hnT+`o(b-P(Zp9x|<=X>adc925n zY!I;0ZhHJrQ5mkx6mL79L7{YQjd49kf%J?BG$eNv*fHF2S$UPP6hlw~u_ zX@6R`VZ22FpLe<&ka1Aer-mwebd&LSv$bxnM4 zY0@!!XZ|OEUY;FMFnAC-yY6bignlzAGfx`L8x&|dQ@GeT)4w#X8hXGJ1|yZQ=*Eh40-poQ@~ zNelS-Jc-$t!^PYgLiubt7H|V5m?7!zOAZ`+4ksVX9yeyyohI|c_qkd$k@q1>sICP6 zQ73aCfuZx~lyJ&iN{Ih8ygH(Hrr5L1skHhPDU(sYL7&M1lGIsGnz@`{iX`n`?82H% zN`t@qu%pEGw3i6S>7Tl}* zD$wW~m$czRiRdbr_%ot@2uW@Xw#$-y3=P#6Wg2;vWvd~Q{klz)%ssa=o7GL>Nw3b)RX0)}nxP}2h=bxsGG1xaWHbbZea9CmdbVXo!$m&A zh+@CWLZF#}cC{>m6Wu6o77?HASk>SY%;H zm=o!PXXwuQCeX!riZ7axZ-35#$}){UG~pvOPF)0-8Xz`&ApjhSEP)cmRnVG>TywGf zF^0EnjG$f8CGn9S>eSK30_EnjFKi~E{ILByRn5Di#GDAKWCQnGfUM*F?oo;u?_3R> zv^O;3Vac5%FJ|!0{&GFMfq5(g=vH4<=9SVsM=i(HW6x!2Clah^EFZxu|6agOi)d>9 z!%Lj*p!MkaQkpvOSj?v+gb%IbRDS{4QbOEBddug2d$c@g_Vizvb~CW0I>EKpD??>k z_LWq|eUfVM2sldqm+wSa`JOoXd$z7V(!ECbsyq4-@(nY$kC=Q%Tz1lO{9`Yusku;; z2tQ0Dv5{+9K~apL8*#f*f*E%u6vKaVl=4-QwqoCWx_j%gM{mUjB|m6F7x^4?glgsGc4dgdvIGMooH@0h;jGM!x#;zY0Y&I#;~$+``1lgI~=4G&l5DYY?R&qfKaP1+XMIZ~f{h zLY^2cSF~U$!S>RBlgtoSU+I3|UKuKNd{(m7t z!624*da8B6J8yr%*lVNZcJB+LP4MQXm+6=-_mGA{Vx${=a z8A?y&YV^d~0a{kZMbU&s1ME@iE}BG#Wlx>=swmnIf@ zMZs_jqup3D+l2gZ+_YOfw-TQR>Eg(sOmD`iHLDARkxCIi2tIbryw|kjVBWr^Fn*P& zT`lo^sdB_V^qL_uj7}U96p)Wvdjc|?Dx^KbX@)AfhL(c@q`80`WFfu~YN(zK(HU2h z>;TwLQqr}|q7ie^3Ml(#i$q7XHEi+oqC2&3B|`SL)BV~GQ+}sPW;jrECaLL#UnS2y z4KkVTfQ8=b6ja}sMV+Ht=^KdNTYS-_SI*>m)OD)}{x}-`-5eF~k|^|BEO7F!ed6<`Qjka-?T2k@ zBj~|ir?q$7-{ocEK_zgn5Mj4Z1sdMj?2DsjURM z6sg6m$p2xK533SM{ox8{B7RI`oU>vS`4R7YqBH7r5)ACox5>x+d#O)a=*5ChbQ0N5 zxIk=8m<-|{r%MHK*<Z{reGzi?ho_xZV zgDj4P(NzYB>sLezeMK4qWm)Fv6QYYE4fjbmLupl`6lBFrSV;9fheK%SKrKBt+_&?r zUyi7G(4icwgB7TTPY~sp5oNP8>mCp@rTpMYPMg5Ky|PmP`{CcrH^F8?N%OAu&Ik8y z+RV{i|GgIM4`=f)iNVdYBym|P=xe9EE^Bc%2_Acc0kwer{*_?9U|p+tD7s77V${I! zCUGeLJ#A)tjJGC(9&rWDvpQKZw&c>{T8k}@bQwbXm&VZ|mM18S3jLf_c~Q%l1ZDvn zxs8_8SL?OitM?4X0c(hlw|e)3zX@3|{vkk*EYgfWv(JOEu@n!D6Nx>yz(37y+8@yi z*9WuP42e!P?vuvh(d^s$^cl_yQd3@OXO)j84f3(%fYe6r7 zfT8G|eXaB|>FaRsT)QkweTU|25va~su95RG2{;Ws%y9-G36jqvZwxLPy8!&ThP@u) z{Bia-ReUEIIIP_YaGn0^JHgxnJKh-w#F!AX-C3 zt6nR4Wy6-tNwoE?5D%I3-?5)o$0?TY6GR+2IK2ObY6M_4OW~yK~kK-^MxkgKexS z5&K-%eT#JVV!wI7@swobkYQ7&dV1EFdSlIMPbGFehR-mQabrD(9$*!BDU7$cCDR)# zG+3+T(g49ao-r${*nGvz9|9?txt;{UEh&?a5Z-Pwg6c&ERS*z}t*mAlD9QBI*vHo-}R*aMfU5WTA`lLiZ zh$Ps$Q?#R}`hpzsE%|I>V=B3`^IK~rpq|266 z;xZ5nRGK8 zcQ+Ab_ET_eR9qV$-k}w;|82R-{H>j4TUt4i0N$Fsd=U|kfd@|%LvY`n0nbK8^>=!= zqU0ym`Z=2)H6dvpa!+mSSCAfiEB7C^=@?J8CBnQhF6ygt6_D>6VKB!E-*`3wkk$me zuH4j$=DR48hT>TMT(0AYcOAspZLYC#cQ@k1Y{?neKTxSQj{{RM~63`uRnECvR^ zBE7#R`Lx2>ev=A&JfV|sgVlm?!eSyKnM`p1UrC3eP?Our4U2k!Xv-s>N!%QeK-)z| zenAD038wcT*wdBvR4%Z{*hNH9(C2Ysv7U@TD!*m==pzT+Y*6>-wefJb3K;wuO+O4@ z7a&t#u7y0YpiQ?23x*JYe|4utj9N5xLeNd~&D!Y0$1h@mmY#0*KIs+@{ z0YsT%pyJz+K&S=mC29)~`xb%vvlHa>7e#|jagF9ZRW&fkx?Dte3+?bnAQSjTe1x#) zklKHu|Bf}@VY>tS2%8xJ#n(J=S&jr-qnDi3?-d-vJqFzx(8U2MCLVw6RbAt?+ZW}X zL9mFX;(Nh1(A8nUxWQs)ddUD|e4M7fjCCVQ+_)o_EFpbx-Qraw9xfqe8CJ>2@vRt& zMxNf9*eVzq%uRj?%AFRI6+(7Va}+C{O_)KDBsya|NyRuGjKG-|sN(sgk^7j4e(X(s zvz63P-KQ3aFqLITtF;aO32e?Grg)e1W`_Y)xZ>0}iu$Z(yD_Tw8h?K07KQc<1-lE~u<>+y8)e1(&TUX71Js9~{@Ax89zw)66_+kZ1!+LFm;0 zEIY=M&0(?WVtO+s=t_KG=3>{VSwcY8Y0&k-enOAjs>UNJk+?BH{%I!5jEWCl!v^Q+ zloPzu3AzZF`m+A0*!ng1->{>51^zvZ(Q*n&{gO(A$Pxh=R;}1dEu57)mY#fBbZU^n zN9dhr*$mFY!$r)BqOF4nK7PTCA4FTw&7d9aw)nnzaVWXD2Z|ja5N03?b>hEi9Hnu+ z`lLru=kYRS(Xy$`(bCZ)N5*L&*6NJ!jA7Jy5c3cKl|MX%+;y` zJMcAI4Z`1gVfM*`S>?tpaHzf)Z#W+1TWQm+Ug3>z&(H-CHX75=C1J~vy3d=L5XikU zc4TWReM4<1p?o*v67N`g?XNTS+5&KOT(0)6F1&753U2yUx)3O{_e<>qi&A6HF=eOT zm7G59T3Sq*s}G+*PheWfH1TmUi$x|d*AoZJvS48axd(RsdYfxy*Mv47ebzyVEu6?} z16`eV(_r=e*E_?;wlc%pHtKi)>%*E|%*ioHq0g-KY1VD}sf?TcRE1wOy3U#@>O_u4 z9RrO%p^|*b;&W``@>DL-i6OB=CF&>{{9t^DCi({l0CB&L(_V=HYk7Yz?8rzb?p==h zE#MyQqX>K(`t3zRc*1Nc%&;n#+Y(l)8@gtfJm&Y&YXWuB2Xx~VBLYha#c@0ZFM~RI zUQoPkUUGVh^}&`47?v|8`j?T`zz6S3D=L^+kOkQjA=aBemb zhGWpW#XL_}w+^U6>eK?9S3#7>10I9=f?zQ0TaYx09$&>bV9Cj%iGh0V@6c5OVC#1c zp9iYY&h>GE@k|rit;Z!Uj7aJ{-N59(5iss*IGj`cN5i1~7Gsh|efiE?cj2JH#73m> zq+4MxP5cgVMp6^^B@Wsa`R&@y=+8O-AQqYYN0hVZr$<|r{o#jF@|dr>Ria2QAZygb z#MGyah<9Sa;$mjrr{%u|T&lQCd0bRlu~HlZ+cjJ}A$Dz< zC^|0}R5gwuU%}$8rz*$W^J|RG<$#+~81Jh1x_dp{mtl5EXrl@?v1(!0)p?Lb`!4Wp z_kbT=`G!pKEUvZ;i+?6$BHW0gck!B$RZoqxa2tD83~3^`%~C?QLHC(2!(TMI*Ncdg zAuaBR^0T_6*%qewp4N8q#^NPmCi~%Sz-JDbB6|Gz6$+R2^o1t2dVtQNwptLNmc zc`!r;Cl9ENG;mp1zK72gWP?N7A9Hnw;SbkuRFD@7{9rTLzPZ^Gnp~-9eg@gA(9^|r z-fAovV4kWvj%ninm~9j~2$yfcZzJjJ>|HCg1(B6dC$wG`8?L&5T3&-2`_A~*9xgfd zO_wtgSqbU$Tk(J1>r?-+`Rzxb2C^Pb1fae?WBx8jeVmgyPs9Ienl z94GNuhM#}x86nU;mjAdJNg(^4i%L~uUt=sde8N0F%vhScB70IxjxHxL^r@!xYt@h% z1I2!Q;*34t?g+zlv~X$-Z>+AV%iwtm@(T;5T9fcS&n3cG;5_OH;O(L#EBi550WE2% zjGmsH^88*Cnv&VX_$PFd#-$ebpb?dgM&ExY0ju7Wj;z|_?T58N%jMjHIx~>y{RvuA zUYxI(?R6}H(Erd^P^xPmS-uCKH#Z&+@r`v@PW(t(Mve(maBpt4EcD!bMHZxMg1qwK zJ34hYbdP^B_mg7n*Bfc^&L)+3@^c2Yd?)* zyx;nT&fV`gZ_=5L;yX6qaUqX z%N+%B0qM(rqO(bZJx*h&i92Ds#0}Jr^uQ3=SwybjT9+44hXcUa*jv=(galK%-`DMb zq>c=JUT#n0V8y)p1@=8+NA{ljqu1AMjeqh!olGbx+xlzQencI;#E zp3(Cb7sE2j%T0>%7&+&)B9HUt{r&Y~VSJxyOrm~0tlRF#yaZ^L`@#Vlyd@U<64JJg z)64Sk^J`!aj3~gFt(p;7D(SqCQA!8thD^DcQ@+ZQhuQz`kZ}6G>3I-S!msh^3YZfA zWt1ge0s2wBm{RRQM*RlZp?g9lzhnC}s_&cHn>agiLt{S>xkq?TLmzRW4jFle)42(Y z6#eRYMZF6IgC~wkd&-h(2Q&#N|HP)PC{yP*YG8r~@08wGckTGU>du$rJkP1Iks{9| zjU50fqH1&%d{J)3uLFv+vm@1pim3OqD(}8MBXkM<9m$gJ?Y^zb?+AG@9Pkshj4Z!b zzIPs#4TSw59BgmR;Y$4r7(S0^&~5^13EMxE#{JWky0c7E)X=b1p%N>>fO1C3iayhd zNC3_{+jIo2Vm5ADHc&g!@iYysdx#A2d+>(Yh>3XM9`x`hpBF66S4eF<{5LlobX?#9 zy*NSmJqsicJzLdQ+@TXz=1WI>MCn)3A=o2g^xX`PQ%Cz^hNePk1?YSQh>upCry6YW zrD5l2fiy9e$VvhZG+$dFwRkEcq0@e_Nx=S=z!}VAC0C+tfBKK)D>P>VNV%rNJxf&> ztn=NWM#FL_6FUYqoTX&~uW-952)kj7lE1Cqb~B{NQ8Kp)_@spnVn5xcGLzxOueT-K zK&15@R}v!5Rlr*Cl&mJsWRG_866=Uajyi@Zt))P&Q568)tPhA_T*uZpBqdRpxLK-n zo+X3<{S+k(*;i=smU_Q!0`F-xNmzsa=gy%G9HSOx4Y_W78=t2mzudFISKZ8nQF)2R zmk%+sr$BKtB9}?%%XJDstC(gc9K@7CMZA2Wl83X@Dks5*DR@6yn4&NE-g6Ljn^|Fe zC-q6120N+X%8>;z!hNv&U{QJ;rt-Vv_mQ{1#zD(l0MaC@^OOCA1)Sw(J?#{{&n5jl z)x}b7+|hOjB`$qQIthWQ?{CxVY2v$*1D(<(s7f5}#18lg!k2j7^Ct0N$p0EPnELP@ zd*Ha%GhQhd7pheEReFf_IkMktV$DGA3O}<{R(|D9d9T%lB#9e?PbU5%_N)!MbdmW% zhplcjC&KZPvN-ps6_u&OFNr&WfZ&3bT`_jTYiV=AgWAf-e5xoSuSEHVDk0OUp#+yn z1rI~a#O+Ia3?4>fPMUkMK!>dbKSfLDV01Z$FSaLS?*`YQDaT^iRZAZjkM4fli#)sK z{1J;RWCuf>c6Ne>52d0V2IWPtfIaR1R2#R!GgP(^vr3n zD{*3hrQJRI3N%A5bcjbU->V`Cazsu1tMEh{8O*RM{zg21E?3xEbww$je8-1_Sz||=o)pV`4$o;(c0e! zj=Cnl`!SaT4K-3Tb|CC$Xy3xjFB0$>V;$~G;~wJG(~+23Nl@fKkmgSlEOa2)fdimu zUeQyobTChT$Esfiu~?o@C!M37EpzIlwyQ>{j3La|QjCXkay;HNHhX-*3U{n~n*7nO zpY9KvIU`qh(wek7JMKdXo~V5f68E_JkGoeBNz9PCM9T}6?*V(kK27-5%&38D)g#!y z3Bg9vY%0=KxA-F0qFF0CUp-K)5rv1L85KQK!jXcg9DE;vy{^?|VMlshX*rrJ5ReSi zau8@417LF3e{~`U5AsI?2gCd^jIt!m!@q=C;G2D3vuCbBk`wq%feKwcaCKMEdE@6bfPDG<&_do-}Fr((d^#e0U*`Ht zv{yf|;ZN0;oS_ex8TVCw^DiqDkJlIIg9I{0>K4+EPv6rTRY{`U*j+r#Q5-{`ynoz% zwBT1Yaa0K5b-sv}&lnLT%Q^m7Bf4<{XTU!7mtuIJAMMDKn;ZcfW3n5|>JLhfCpyi- zuEaGsNQUj8qB(J#oj#WP^WFd6!eH#+EUhng2U(KG5WUboGAM2mux zm!*scB%qc;>p(U{zCzn6mpjxucOv333I@BBx_+@B=VMSS50Og(>itacGQ?rO!o_eb zo}s}8<$*|GtUi(W7BlmSZ`%W4Neg};z<7rn-AZyYS`GJ7GOc+c*6P{8D&UP6XpvFU z?G^r(U`GAY+@$QTPM4hx$5V&%{?yVOo<;99iQ_PJXH@+V^Q<9tj1I5_`dK{X9883| zPUgbW_ayR;6Oy;mgD<{9?sIsJ;R`=9doR-8B);FREQWrhficQ6qxS~2 zpm6jIh<=g6{WN(T#|AsGhdg8yGE`Zo1FZ#kM^HptfMrUd1WGaSTW57L|MDAcX5S; z8{!h(_6FY*1dw~LQ3TLCKH7Vp)!rCdwKHSg{I11OqElINrQc7|IW#p^H*}|KZAc`! zJKV)M{!aoF*t{$(O%u7d2`pv%^l4jsD`cmjcjN4go4eNM%4d}cUE=0!O)y!4hB0Uc zEWz!Si^v#NT!x|xn|bex_5 z-ZttgFj@s=qnjp0>Qwd2_y0yKtBy|OEQMc1teA-L(MF;yO*3gRCcdRbi6}ue8^UKz zeE$3Mxv_k2hN{UkX1)APpX{;NA97GMkN(BshwonM<0yMBIG}TnSwkl>;bNnKd5Y~b z*4Zi_n3+(HK=>7ra}NsvTK*Ov>KyM}YVUfF7GqiX)Azyl6+TOrvWCIXb37UX=QKQ} z_Va0xjfiOa#iYzEJQh*xbsbYtkJyD=mmK-CD91lITW2=|)^xeFBg*q3t40b^1}xJq zb(j%i3Lx}VOQn9VF2u+>ChL~H;`6GHW>Xl}_fDNdXj~bdLU-+$78bn7Y}i}yk{;Yo z{ptuQfKwFJSDNI&ia@IKUa})9bW^*C_+Fk8>r26pZ!5|IzUI22F{$MFayrptX z&^gr^r`-Ij+KS(REz%+eT^MvWdb;%fZe{#4z*v{N(!{Ywhaq8-CEHp3Luqc{L!R%)#@@keDnwnjve9g-?l`>(D#Ty0wbo@iOr!9$OFSR5y0sNt^?ylkn(&+dRs8kCpzoclJOh%$9I1~X3JI2Pd8?yK1XT8&_6V$^}iD`?A zhFU6EcZ;&FI2C7s@|~rHh8e&jBhY8+rJuk(-)qtuw9*uS=DIBvw&qb?XbtdR#HJv= z`q?|!N;rGr5VdbWTZhmW2lHs?;1lEUV*yHav z+o93@o`5@+B_Npe(MFjueHGDTW!w|z)4RGk*qv&{;?Y>C3WUXP>qvJE07k>oRk{P& zWep#Zvy@NWVU?n`GH*iZ?rn9R)AoJ}SV*{~U`yUFLq-#k|D%4eW<9c%g+u=0n%`t3!i4}_f(4lAGJ}^c z-VFij+_zs-*;gVrou5&1-v(+&?~LO09rc#PgZfU8OlbLwnWMf&^B&>Hr5QYmI)jjVmhOX}r3$*EsgnOh=si+uz=K5V zmF*19URjQUia5XbslMzzNI!@ZW3S0$s)GJlrR~;SQ6_nJPjd9QN|T?URh3f+P1fc& zFtI{0(WT*RpQ0$Dar>ISuv1BQOWZX-8qfrALs$`EvVw6}6u#myic=JH&)|+o0!G)- zDJLXROKawpwwC)PDtkXC;u)|$!e-0H%5~lc%uT-e=LA=4lx=ZeA zYN4)n|A{>C7L$gz zH`6tko~@Vrp}r-MKsOq+7shJ*oEJG`qauAH7x)yva9UclAh zT*3K>h2Jf57Z}id70LbL4d>5h_cU*2C$IRTVkaV_nQDAdART&CfWY*}3u~6hGIN9_ zgUFBPr_E-}Ioo>qm=z5_=b?YaNOgb$`~FR5dR!SjwW^n46_1{-xI?s@(YEF-o-4y# zKKNAM32p2)5H_@j4{Ihcmxt)eKmaGoQooVzQ@du31+mn?@kqn}N7Gk^MfH7c3lc+j zcS=fk58d6RG}0-cba$76(%mt1cZhU%cY`$V;rD;uZ}Vwi=Q^{`-fP{pT#TNC=g({G z?kL@!XV-qcbcdne;7w4ZMP=T)$`~HRF}PUS1R=+>KPKO!%lp?*S?Lw$_3{Ay5g5X_ zyYii#{l|cxPi1b7cqgi4;3kgFg=vmxHQDMfnPf72iP8K`hw9KYjKmb;Y6h_0OVH8$ z$@-arws0Pzcl?Ph%h-Cra8Q_}_)2kK(+woWg40c8qlwaN51b z_l5p~u8SqkN&VFk2CC+49OmqAz|V;2!ho$gWTgeOVpWkmj+@ee8F0Wsa5ykZz?{aX zhtgpjU?##FR`tYLu>Lum=H=)GgU&)>BSF%^1ZJLmWblg!@XfL6r^O!16kk0O_o&MIHt{Bko7Ss;rRdxX*a}hkea3YAp4K&?}vlLKK%rI&X53v+CxaEey-&?b|6W~_`$i2@=(#UeZL2tVlfe( zKW81{!41I%A+7LyLl(8n7A1OQQ(iP6$?p&_1=#|H^%B8Jq;9A}ZHE?OUbTsp^q;20 zWUd0yV~(SkP90OkZ5vg_;H6~sDzbV5_q~r6qQk1!K2NNFyV|J@{+Q;Tb>S~IvIMan*}as1=PKs z*^f=ye)T6C}HQfkmjy+=-rjF0#O^#oJ zeDjBsMz!C5>gQD}! z32vmb+*9TWV^=F=^vKso*wU7~tv+`?)mkq^^xS^O)U7fWd$;QACP$kWfDvT9*q=0d zz%UC@kc@iN+kmi>Mia!wXYmXO&PT_+y3Cz#qM8T-{rJ1;c9RkOngiabW+gbiSTmDN zabF>>NL6!_-9%$S|9a`E_^qlV(2`0v`xZ0HXF-$d!Cr!JIhjaP=Dt`v-vFSY%T){4 zI{9g(1pf)EzXu||tMz{%-h$7BBVzCu-{6Zp!$$>XB{yz~(`foM-F0LpD+y0gH^Zx8 zJg6xaFToOZ^trs-T*Z9oHq#Ahg)D<5qx_OeS7}RUlV61~Mvi!p_fy1f-fkPp1^@~T zQyhvue}gAvA=~&VMJXZlUAC}=(+`fR2tO3gdOOADPJRp$Tzgzg30J&dJpq)3nPnU! zs)RW!c8wF-DY>H32DTiEq!w30)yHM#?3AO4)Ol8|PB0*cq#=KTm>n%v*t^5Y6%DQ~lkk~RC zu4GPkyFtv%-{*k$2^{|UeQ?35x?OCpoc@Ni-$|9r^zG8KDukURGoP1rms#e1_-z{- zJF!>$C~on*xjR1jDo8CTXD(RTrnJ!(;{Nu-4Ui6^C!GJv04^qYMnb*%1~uli+W2u? zp-jFM$s~3I8wtHeVP(bO7F9nyMyVCXs+>A^_KhvCp^GCj`M*sZz8Mo#3~om!7TP8L z7=Tf9$hygYtn7qc+~ITR0;lky;Z^JC{D3bqo$*(h4qi=eNJ+9Hnb@MgB_sEXX`sPS z%tz=vHutC$tyH!JRf}>+a}<|aq1dXkGIWYD2&@0Zvp=E$f@@Q;>8%|S%M}K--0H(cZ1Z}%GpV75FhfBKKM8iGY;3~B zb(W85@>^rui5&hEzf^Ep&XN3?Uh0}~5y48#^hd43^kZ$2!#wPic(L|e6wDp;I5hKLe>poJ|x(al51bNwV);9UTWZr!GVFj}?< ztF0DN06d;2p!}%T2@vvF1xb&aZW6uwaCR42B4~?6#Opa@Y_Ow>wwzn+dY;7)3s)`_ z`ikG}n>WtB*60J1#yB<(`OPh;^yYV%?#P z@j&29CVnDe?9=O@Sxho4frK9M?Jv4G)dmElN$`f@Ho(P~1IGpezeC!11K(H}`~jco z@$W4jS}>u(=tj4?A8x{2fWFMlQZfkP{gzE8cQ}QFOy_s)7)_CYQ4GmaoA-hOw&q~C zqaPN;0Sne~q~PHBv26tsQVH-KoHA4Zf|xQYZy*U4_!R~$;|_iP2e9hkms<_Ng(4|? z`x>BAXGUKp{ByA4vuT}Pd(bQ5LDjo>!7#J=1I~k-HIXnPu&2R@X+KezZvh!VB&qps zz!Sf*OBZw8(!BPy;+PKO5ryzTxT&(KmN)&5Os6}!JqmFuFixXmsnJ=>?5woR1-mdX zDvm(tVTVj;(sV}@u2lKclf(8>CjddWNNoph{>SQOrpw})y##l9e*7t{?=?IwPN+Bk zf=*5?NZBt_)bjDKHT(~|(U|rJSc`#lZ!b-_qt>0TdnfWkt4UH|Tx}^(!#aAGhrh?HGK!du~ixZ&ksCl8kdmmt# z@+_b|wKW_lY9xT5`l1yXXCtPXjunI6;4;6FI?!J5tqe#P%0ZOJ0mq%+0Z0B?$TamT z!W;dnUM7wUU$gM*`wPG=Wg$(+h~|eOgvD#uOPvYk>O$~UziUW`e=_hye{5&MRwXo( zIe|Y#!QwCg0zE@49&(Q>1V*aI$?wp#R}o!)+pfjyH8NtNmJWdQ?7aHkEHxSB6Jg?n zzu)=7*dRd>5XSny*_Miil%Bde4eZuxtK^>g&J4fM6@{6F4jlze$ft(gP>D|WUoQ@S zv}KakdG1rUWvgIuN$dh3QbQF#mt`7tTf<0zivIXQ?s8AIbHvQyvuJgo+zq4SM)WV9 z{1JC%;)9621kY)09}za4_1`~9@T!T@kQsqtXW$@0it;bS_RqqB$w zZ5+M=;v>;!%8W0%hQ$m@)ms98<#|c_^wD zEn8;>un7-{;IKo+kMDsi`?ANyj^fOgnEe%lY4#ARUfm71O|f2wUC!nqk&NRxhaIXG zf5vd926D_h?0vp^H9HqBU8~H%mVJvs4eC$wTC9%5ZK*gddD{DvuPq(66Y<2)Bn#F1 z)(02919Aksvov3*0bgG~|E{eD;BC#EA7JbzRQ5Rw>d+%YZSsI!G{XN<4NFPf-l{0* zEXr2A#Zs&&#-xAPA-myRH)F@-w&+AZL^c3~>Q;XCY4%dAQ!12f+iInZl>CE$*Zz|( zzE5dFX+BNI3skkWi=Mi2$b%_RKQ$F~d2vrku2I5t%Je<*0yj{7xyMMlND|Iubx8E@ z!mP3P4PG_r!kBE_>R9_=nY0}PJ&?X+9JtzEl=%^|CUIVP$Wowo{0@h9hk}>Y9n`gR z8oWwWO~#9iN@D~w+OdA7|Ib8%#8iJmnwASDstg|wTPvI9b`IFil4NPze9d@N>`R|7 zN{%Q0??!nU#&P3Pe3qmkbdSTqY4ZZ1s~tm@#JE?PP0hYnK#t6tOnirqmbe#ll2!px z0lN2fTI10P)!_XW}s~3f$si%QpKxKFQzF5^L+l+|T*;eIrD2}mi_N)06E?f7CIkNf8ZN=3m$;VOUnHa#9_OxCBE>;B<3 zYYv`eEBY>FE@J##`{Nmv3{uW<>eVk@WX27Q#tWMDQRL-$CxGfD(v#$*N1DFdBoaih zQpLZteAP>|TlA{xC|`yXgbCZgqLDk=R`*jOi@X@ekb6qH<%iU3G|`&|sy`Au@Ogz{ zu$ww66D%R~m$^!3jgr+GHp{dFH)ORx$tFS4mmty=Zx zzt2=-FW($e{^=t?`z&GMWCX+1SYIKV6!lg&8+^Do$|X#R4|%@Tvab#TB8QjX1s;|4 z_tCs@rWR-WOzhTvPRu|Rs*ZA+mSaW8j>-LJF)Hf|6EYJzY}Dk?<@O#jE>j9zFq+%E z=1LC)SAVF;bl)%V@EgKK!!oz3Lf2WT-vwf4x}Q?aaX_q=bW{Qi|~M>Wpo%Hj%$CX22( z;g!>bEf9nbn&BG&W~*Kqf|EO~pcyJAi%Iq!$*wr)R0 zrXxfKoLsxk;;EA24wyK%xcE%Cz(qloO?tmjnmsY2w-T-*0uF}=*#6{9GO-lX)%sJ} zlExa6_yzv}A9T%sjnIVyQclxC75^)TR5E|7jrx322B<4>8>t!7cmV_QPg{9^gKD3- zJ|OKUY2+2wnRR2TS_Vr}2xJ}7GJgf`Q-0lF-Y>*}0bVUwx~g6!AA3_u^saPEW~Niv zIrvRiL5;}sP2OjRNQ5S)lCV@gPFxhJM18*%O%Rr+@-W-7@RSl`ifWIl#DI)QqU)#K zz$5`s35_|iGcTdARk%tgxhFy0bCH;TlT`A}r|TvFN()OBsl;C-+@=(VF`ov6MFNi#`Qj$!g2_we)@_&}|a_$lZu&7IEHQY3Y{>GNso#0HG73R0@)I5Sw zzhGVZCcZ^K;+eUoXC7M=@$Yy1KR|&R@UeVKu*m;t%+0OYQ02`GB?mDfcRcB zoykNjtOv}pGr9VE^i?!zOGuQVW)bOU@&cH&$z{G-b?x&qa))_OU|uk)W< z3I#UhzDihpu$4y{SI~@QTbqcK*;+$@)PKc9_hMpO`rVB){u%IU6Cr&0)V}|2D_dyM zHl0t5>W`!U3#L>>$&y(b^QPp74^*>MpYEJ76mNk%Bry)76_(oM>#(Fp(~8&=wGxD{ zl1i1?pH%tQJ^t(iy)Kjwj{8J#4&FFSH14-)iq6n?J%Y+eXNrKuswY5lG+NzZVr_u( z+oJ(7tez){Ydpo;tUm689kMlq%9m)lF!@quIslqazKysU!?79Z21(E6ccXlNgU7IP zt^o$kH^|B%JC$v{^3!<*I|4lF-M;_(;KFwtK@3+aLiRom0zF?62an1f0!yL4;q0kJ z#qED#NQtvIjRhnWvWEf|BLvDLZ9uhMHL0O}903TeXR=7B(05%LB-sfWrtyNjyg=hA zcu7gF5>Rctob2$6LP@YnbC_r#Wv&VJZzC+Zy*-zmJ@kXJ3hPNdcf2zaj-VNBZZHUn3*;sf(HyB$Hy53dvM3*>*IfT*R)U`poi|F^CS zzWnk>4iiL2wSoTld2zp5VvoTpzruGDP4?ED(kCpQ3aqaCRocGR;RE|C=}cXN25ivz z_B)Sqde*VMOt3%DO3(SExuHq$(ExqS+r&`u{xg+?L}2oSo0U68;Bdzps5Ng%y$yCXSh21O(1#H;KvqP+E` zY>}X1Q6q{83KR45+Ea$s7!}*z=N3Ge#_I|i;1?;;Xy^Yu@3V>4w-dYC_D1aYF18YX z0rRZH7x;&)X;Y@1&mTw9YQMU74(-r9q)#z--g>2^N>$lg@wyK((YQ zE7jNa(RddqCmYNwxj39=2InY^Ei*5tTsFt3Wj*d+Fl;5S%i3Phpxmd=w5<0$fcK5Y z#v6@!y_q7MyQFM`bMJPHLB)@nF&J1x8)+Sj{s=@boWzIS?#BsKIOBZw z`z?e*RKSNBVw?IiwBw~2T!D-4e4L=fVPVUa{Wzl~nG~+X0$pIdG{^MEHLQfX7v4ey_9NK~s7B&ZqYL%qDMfpi z%B6Z>a9nKSuwisGl!jQ>eEq+>O`R!6PDH{uB!#Rt3sz6k5$H3_;ZFa|(SJiE-FdZo zQZwRpnHVU-jX8u%&)=savE$|9Pqz_fnhf2)p0xu~DC#A0XW28J**KustHiDM)AA#F z-{J*amUUUYB+bCX z!WbuAWn;|~go&fs84Rylnh2dAgx8(xBX9n)CYNz;?Gq6qA-es!IsDD+lptJ2Ra5>L z&??nXO}XG<&=UbXO`Z4B5QIwJTw^FO3o4Mk)W90p!E5Eg{@p|(H*9PZLb+vfB<|i$ zVYOt@%|_1Z4_^!E$uiX))(y-(e3%c4dHv7;rV zxQPNoYrqZft4Xj4ykFzMr+~tD6!|gDN3?kpWL>mj4>ZM{06a>b7ugm6c}U~PAJaph zf2`f3{6;i0g`21C#*O^QKY5GTjQU7*PxYIO=!lO#u(Bo@J}S}O_cq{YFBe@_U!m0` zd%Njfda8-PU~Q>Sz;`3+caEJ7N|JqwWgPGWt~k!ppbRBNAGu{(`O*b_^(&&q2VkgZx>E{oOu&C*gzbJFS`$^aG3uodcP4TnZuR7jR6k$wmYg zc6jB@&~a7r4V_vZhFnJ_6+86flzQKwVDMypb>ls^xb~!g3T^57_7L+ ztNR9d7u$OZ9q%LBFqhjvI!qOH9kx#VLw9bJ8Z2N}Y+NJ`-ZV+XitDuvY2Be%N)i?d zl*lzM0mk@e+;7{!td5Nr4*ZOe8fO|@mHW^4g~pT$QWVQkVxi4!xb~j1X)=e`wwU8J zA?P(lylvZT>S$fD-gKMlAALa$BKsk16d*l%O{qO)Gf6qYrw2;B_0Dtjyn83Br zqR?s!X*(pNw6?pPg%8Z&(y^%ZF>jD_arWCBMhu|d{+1a#FVF>8?XS6qO2v?4LkjB8 zgmS=H6BX*~fExoxT_SJkAHAqY8E2EMFNWjpblj2?x9oD3SW#qrx;GeguTFx*WOw26HwIdz3Kly&CJ^y+{E(DuW{5T6XawwJP?Plg7 zrU(FY;kLJ_`xW7j^|f}{JjIH#q1M2q6F#DUs&ZV48)L|AkosW9>qt=WLTQCCGZ~ea z_--dS=bjPIQUml#&-^aX=oPq+kkmZTBWRH5dA%otb>rU2>RDQv;l9yIn5nALV)Q>d z#vA|9nA+-JHLZoNPZZnfbB6v@{#$jD`v*g-urM07Eh7e6Z2}ixV~U;#+!+<}58_jC z3`s_zUxu23ekdb`4ez!EMZDvK|1XJy`V%D4d(;`=HYKV>Sp=FcKsUqF@!3;Fc`rA8 zTW9{eN202fFC>_$ku||(FXVq{ZX)Un+Gg9$OyNpy}y9Oga zd9pvrhE5^^yfV}eJXXBO`yxCj49_|h_Bo1In{gI|r-=7eubgc{v2Xt({R-@T1z+$D^~xw|?-4XWnwht*PFgQzQFZDfTC z>LN7$M*0!pgcXx2X^P=+=PfEx_aKTqL^ZO3DGq>}6Gbf@PHe$q3*`*JZYo1O@)&F31(Dica#IdY> zGQ&>Sdw{9x>ik6kkiN&)Ds8uXafZkQFjZ%|!#7x^hG^>OdZ0CYvYa4r9Kp@@*9{S& zOD3CI#k|UOQxSO2Y(&gFEc~Dm8CO|vptcq3MI$O&%~d=EcrSa&P^fy7+bQ$R_tDS) zEWOLCfRVu|My1o@w%pdlfrE)o81wA^LRkU8@3;BlA;553pt$tojD*4}Wdo*DiFJa1 zDm+WVQS?s})`qb_|LAa*2+rAJAvg(u*e{3yOazMOryqSO4rM^jReI%M+8B1m;S&Qg z=u2~5N;PKw8@iL`dy)=ck>Ks?v^5ANt771C=c&765{GR$)9?`eXhXQ$$tD1V2j4S) z7Ohh^Pzip=7qY`M%z^0`!*hBBa&uoA_SHBIM!+}v5c~!B=vKH(I7YJ6Rze&AgO0?{ zCcZ4&6oMHKjnS3_#>dci)nk_w%udQs;353E7(GqV*l>U6{d7&=0|Wg?0&~Jn>A0pW zeV((HKZn4w1&sW8ACWkCc)%e|Vtxs#p%}TBT!X}G^l-89$K>gAta7^Xs>nk1L9?ou zyT-97iJMI?7eg$

!lgDH@>@Pln&{BJqurOoVQ$@xm} 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