diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b9a2c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# ignore cached bytecode-compiled python scene files +*__pycache__/ + +# a run's own output +verification/results/ + +# a validation run's own output +validation/**/results/ diff --git a/README.md b/README.md index 25d0262..f5a3bb7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,56 @@ # Verification-Validation Initially funded by TIRREX, this repository proposes a framework for verification and validation. It relies on both manufactured solutions and comparison with alternative simulation technologies. This work therefore proves the reliability and compliance of the SOFA models & algorithms. + +## Verification and validation + +**Verification** uses the method of manufactured solutions: an exact displacement is chosen, the +loads that produce it are derived, and SOFA solves the problem on a sequence of refined meshes. +The error must shrink at the rate the discretisation predicts. Covered force fields: +- `LinearSmallStrainFEMForceField` [`verification/docs/LinearSmallStrainFEMForceField.ipynb`](verification/docs/LinearSmallStrainFEMForceField.ipynb) + +To get started, read [`verification/docs/IntroductionMMS.ipynb`](verification/docs/IntroductionMMS.ipynb): it presents the method and builds one verification study step by step, from the manufactured solution to the input file the suite runs. + +**Validation** compares SOFA against reference results computed with FEniCS, and against an +analytic solution where one exists. Covered force fields: +- `LinearSmallStrainFEMForceField` + +## Layout + +``` +common/ code shared by both suites: geometry, SOFA and FEniCS helpers +verification/ the verification suite + cases//**.json one test case per file +validation/ the validation suite + cases//D// sofa_scene.py, fenics_scene.py, case.json, + reference_solution.json, analytic_solution.py (optional) +``` + +## Requirements + +- SOFA with SofaPython3 +- numpy, sympy, matplotlib +- FEniCSx (dolfinx, petsc4py, mpi4py), only to regenerate validation references with `--fenics` + +## Running + +```bash +python verification/run.py # one test case +python verification/run.py --all # every test case, then one summary line per case +python verification/run.py --clean # delete previous results +``` + +```bash +python validation/run.py # one case +python validation/run.py --all # every case +python validation/run.py --all --fenics # regenerate the FEniCS references first +``` + +Results are written to `verification/results/` and `validation/results/`. + +To inspect one mesh of a case in the SOFA GUI, the runner also acts as a SOFA scene file: + +```bash +runSofa -l SofaPython3 verification/run.py --argv --argv 0 +``` + +The first argument is the path to the .json case file and the second is the mesh refinement level to be built. diff --git a/common/__init__.py b/common/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/common/fenics/__init__.py b/common/fenics/__init__.py new file mode 100644 index 0000000..a87d8d5 --- /dev/null +++ b/common/fenics/__init__.py @@ -0,0 +1 @@ +from .prefabs import GridMesh, BarMesh, BeamMesh diff --git a/common/fenics/prefabs/__init__.py b/common/fenics/prefabs/__init__.py new file mode 100644 index 0000000..24402d3 --- /dev/null +++ b/common/fenics/prefabs/__init__.py @@ -0,0 +1 @@ +from .grid import GridMesh, BarMesh, BeamMesh diff --git a/common/fenics/prefabs/grid.py b/common/fenics/prefabs/grid.py new file mode 100644 index 0000000..02d14d7 --- /dev/null +++ b/common/fenics/prefabs/grid.py @@ -0,0 +1,133 @@ +"""FEniCS (dolfinx) meshes built from tool-agnostic Geometry.""" + +import basix.ufl +import numpy as np +import ufl +from dolfinx import mesh as dmesh +from mpi4py import MPI + + +class GridMesh: + """A dolfinx mesh built from a Grid geometry, matching its extents and cell resolution. + + dolfinx renumbers a mesh's nodes on construction, so a direct comparison with a SOFA solution + is not readily available. `inverse` undoes this remap allowing the comparison to happen. + The inversion only holds for a degree-1 Lagrange space, where each DOF is one mesh node. + """ + + def __init__(self, geometry, resolution): + self.geometry = geometry + self.resolution = resolution + self.inverse = None + + def build(self, comm=MPI.COMM_WORLD): + raise NotImplementedError + + +class BarMesh(GridMesh): + """A 1D interval mesh matching a Bar1D geometry.""" + + def build(self, comm=MPI.COMM_WORLD): + cells = self.resolution[0] - 1 + mesh = dmesh.create_interval(comm, cells, [0.0, self.geometry.length]) + self.inverse = np.argsort(mesh.geometry.input_global_indices) + return mesh + + +class BeamMesh(GridMesh): + """A dolfinx mesh matching a Beam2D or Beam3D geometry, as SOFA would mesh it: quadrilaterals + or triangles in 2D, hexahedra or tetrahedra in 3D. + + The nodes are ordered i + nx*(j + ny*k) like SOFA's RegularGridTopology (2D: i + nx*j). In 2D, + each quad splits in two triangles along a diagonal; with `swapping`, this diagonal alternates + per quad in a checkerboard pattern, else every quad splits the same way. In 3D, each + hexahedron splits into 6 tets, following SOFA's Hexa2TetraTopologicalMapping: with `swapping`, + a cell's corners are mirrored along X/Y/Z depending on its grid position before the tet + pattern is applied; without it, every hexahedron splits the same way. + """ + + # SOFA's Hexahedron corner convention (n0..n7) and edge/tet patterns, from + # sofa::geometry::Hexahedron and Hexa2TetraTopologicalMapping.cpp. + SOFA_CORNERS = ((0, 0, 0), (1, 0, 0), (1, 1, 0), (0, 1, 0), (0, 0, 1), (1, 0, 1), (1, 1, 1), (0, 1, 1)) + X_EDGES = ((0, 1), (4, 5), (3, 2), (7, 6)) + Y_EDGES = ((4, 7), (5, 6), (1, 2), (0, 3)) + Z_EDGES = ((4, 0), (5, 1), (6, 2), (7, 3)) + NON_SWAPPED = ((0, 5, 1, 6), (0, 1, 3, 6), (1, 3, 6, 2), (6, 3, 0, 7), (6, 7, 0, 5), (7, 5, 4, 0)) + SWAPPED = ((0, 5, 6, 1), (0, 1, 6, 3), (1, 3, 2, 6), (6, 3, 7, 0), (6, 7, 5, 0), (7, 5, 0, 4)) + # Hex cells need corners in basix's (0,0,0)..(1,1,1) lexicographic order, not SOFA's. + BASIX_ORDER = (0, 1, 3, 2, 4, 5, 7, 6) + + def __init__(self, geometry, resolution, element='quad', swapping=True): + super().__init__(geometry, resolution) + self.element = element + self.swapping = swapping + + def build(self, comm=MPI.COMM_WORLD): + if self.geometry.dim == 2: + nx, ny = self.resolution[0], self.resolution[1] + dx, dy = self.geometry.length / (nx - 1), self.geometry.width / (ny - 1) + + def node(i, j): + return i + nx * j + + points = np.array([[i * dx, j * dy] for j in range(ny) for i in range(nx)]) + + cells = [] + for j in range(ny - 1): + for i in range(nx - 1): + p0, p1, p2, p3 = node(i, j), node(i + 1, j), node(i + 1, j + 1), node(i, j + 1) + if self.element == 'quad': + cells.append([p0, p1, p3, p2]) + else: + if self.swapping and (i ^ j) & 1: + cells += [[p0, p1, p3], [p2, p3, p1]] + else: + cells += [[p1, p2, p0], [p3, p0, p2]] + + cell_type = "quadrilateral" if self.element == 'quad' else "triangle" + cell_element = basix.ufl.element("Lagrange", cell_type, 1, shape=(2,)) + mesh = dmesh.create_mesh(comm, np.array(cells), points, ufl.Mesh(cell_element)) + self.inverse = np.argsort(mesh.geometry.input_global_indices) + return mesh + + nx, ny, nz = self.resolution[0], self.resolution[1], self.resolution[2] + dx, dy, dz = (self.geometry.length / (nx - 1), self.geometry.width / (ny - 1), + self.geometry.height / (nz - 1)) + + def node(i, j, k): + return i + nx * (j + ny * k) + + points = np.array([[i * dx, j * dy, k * dz] + for k in range(nz) for j in range(ny) for i in range(nx)]) + + cells = [] + for k in range(nz - 1): + for j in range(ny - 1): + for i in range(nx - 1): + corners = [node(i + di, j + dj, k + dk) for di, dj, dk in self.SOFA_CORNERS] + if self.element == 'hexa': + cells.append([corners[c] for c in self.BASIX_ORDER]) + continue + + swapped = False + if self.swapping: + if i % 2 == 0: + for v0, v1 in self.X_EDGES: + corners[v0], corners[v1] = corners[v1], corners[v0] + swapped = not swapped + if j % 2 == 1: + for v0, v1 in self.Y_EDGES: + corners[v0], corners[v1] = corners[v1], corners[v0] + swapped = not swapped + if k % 2 == 1: + for v0, v1 in self.Z_EDGES: + corners[v0], corners[v1] = corners[v1], corners[v0] + swapped = not swapped + pattern = self.SWAPPED if swapped else self.NON_SWAPPED + cells += [[corners[c] for c in tet] for tet in pattern] + + cell_type = "hexahedron" if self.element == 'hexa' else "tetrahedron" + cell_element = basix.ufl.element("Lagrange", cell_type, 1, shape=(3,)) + mesh = dmesh.create_mesh(comm, np.array(cells), points, ufl.Mesh(cell_element)) + self.inverse = np.argsort(mesh.geometry.input_global_indices) + return mesh diff --git a/common/geometry/__init__.py b/common/geometry/__init__.py new file mode 100644 index 0000000..f82eb80 --- /dev/null +++ b/common/geometry/__init__.py @@ -0,0 +1,3 @@ +from .geometry import Geometry +from .grid import Grid, Bar1D, Beam2D, Beam3D +from .tire import Tire, Tire2D, Tire3D diff --git a/common/geometry/geometry.py b/common/geometry/geometry.py new file mode 100644 index 0000000..46e44ef --- /dev/null +++ b/common/geometry/geometry.py @@ -0,0 +1,116 @@ +"""Tool-agnostic geometry descriptions for the VnV suite.""" + +from abc import ABC, abstractmethod + + +def _region_indices_from_mesh(mesh_path): + """Node indices tagged by each physical group of a Gmsh .msh file, keyed by group name.""" + import meshio + + mesh = meshio.read(mesh_path) + tag_names = {tag: name for name, (tag, _dim) in mesh.field_data.items()} + groups = {} + for block, tags in zip(mesh.cells, mesh.cell_data.get("gmsh:physical", [])): + for element, tag in zip(block.data, tags): + name = tag_names.get(tag) + if name is not None: + groups.setdefault(name, set()).update(element.tolist()) + return {name: sorted(indices) for name, indices in groups.items()} + + +class Geometry(ABC): + """A shape parameterization plus its named boundary regions.""" + + dim: int # topological dimension of the shape (and of the elements meshing it) + PARAMETER_ORDER: tuple # the family's parameters, ordered by the dimension that introduces each + + def __init__(self, *, dim=None, spatialDimensions=None, meshPath=None, **parameters): + """Build this shape, taking each name in its `PARAMETER_NAMES` as a keyword. + + e.g. ``Beam3D(length=2.0, width=1.0, height=1.0)``. Pass `dim` only for a family base, + which names no dimension of its own: ``Grid(dim=3, length=2.0, width=1.0, height=1.0)`` + builds that same box. + """ + stated = getattr(type(self), "dim", None) + if stated is None and dim is None: + raise TypeError(f"{type(self).__name__} states no dim: pass dim= to build one, or " + f"name the geometry that states it") + if stated is not None and dim is not None and dim != stated: + raise TypeError(f"{type(self).__name__} is {stated}D and cannot be built with dim={dim}") + self.dim = stated if dim is None else dim + + if set(parameters) != set(self.PARAMETER_NAMES): + raise TypeError(f"{type(self).__name__} takes {list(self.PARAMETER_NAMES)}, " + f"got {sorted(parameters)}") + + for name in self.PARAMETER_NAMES: + setattr(self, name, parameters[name]) + self._set_spatial_dimensions(spatialDimensions) + + if meshPath is not None: + self._regions = {name: (lambda nodes, indices=indices: indices) + for name, indices in _region_indices_from_mesh(meshPath).items()} + else: + self._regions = {name: (lambda nodes, predicate=predicate: + [i for i, p in enumerate(nodes) if predicate(p)]) + for name, predicate in self._analytic_predicates.items()} + + @property + def PARAMETER_NAMES(self) -> tuple: + """The parameters this shape takes: the first `dim` of its family's. + + Each dimension adds one, so a member takes as many as it has dimensions: of Grid's + ("length", "width", "height"), Bar1D takes ("length",) and Beam2D ("length", "width"). + A family that does not grow this way sets `PARAMETER_NAMES` itself instead. + """ + return self.PARAMETER_ORDER[:self.dim] + + @property + def parameters(self) -> list: + """This shape's defining parameters, read off the attributes named in `PARAMETER_NAMES`. + + e.g. Beam2D(length=2.0, width=0.5).parameters == [2.0, 0.5] + """ + return [getattr(self, name) for name in self.PARAMETER_NAMES] + + @property + def named_parameters(self) -> dict: + """Parameters keyed by name: how a manufactured solution asks for one of them. + + e.g. Beam2D(length=2.0, width=0.5).named_parameters == {"length": 2.0, "width": 0.5} + """ + return dict(zip(self.PARAMETER_NAMES, self.parameters)) + + def _set_spatial_dimensions(self, spatial_dimensions): + """Set how many dimensions of space this shape is embedded in; defaults to its own.""" + if spatial_dimensions is None: + spatial_dimensions = self.dim + + if spatial_dimensions < self.dim: + raise ValueError( + f"{type(self).__name__} is {self.dim}D and cannot be embedded in a " + f"{spatial_dimensions}D space: the embedding space must be at least as " + f"large as the shape." + ) + if spatial_dimensions > 3: + raise ValueError( + f"{type(self).__name__}: spatial_dimensions cannot exceed 3, " + f"got {spatial_dimensions}." + ) + + self.spatial_dimensions = spatial_dimensions + + @property + def region_names(self): + """This geometry's named boundary regions.""" + return self._regions.keys() + + def region_indices(self, region, nodes) -> list: + """Indices into `nodes` belonging to `region`.""" + return self._regions[region](nodes) + + @property + @abstractmethod + def _analytic_predicates(self) -> dict: + """Named boundary regions as ``{name: predicate(point) -> bool}``, from this geometry's + own shape parameters.""" diff --git a/common/geometry/grid.py b/common/geometry/grid.py new file mode 100644 index 0000000..d441498 --- /dev/null +++ b/common/geometry/grid.py @@ -0,0 +1,36 @@ +"""Rectilinear structured grid geometry in 1 to 3 dimensions: bars and beams.""" + +import numpy as np + +from .geometry import Geometry + + +class Grid(Geometry): + """A rectilinear structured grid, axis i spanning 0..parameters[i]. Always starts at the origin.""" + + PARAMETER_ORDER = ("length", "width", "height") + AXIS_NAMES = (("left", "right"), ("bottom", "top"), ("front", "back")) + + @property + def _analytic_predicates(self) -> dict: + predicates = {} + for axis, (low, high) in enumerate(self.AXIS_NAMES[:self.dim]): + extent = self.parameters[axis] + predicates[low] = lambda p, axis=axis: np.isclose(p[axis], 0.0) + predicates[high] = lambda p, axis=axis, extent=extent: np.isclose(p[axis], extent) + return predicates + + +class Bar1D(Grid): + """A 1D bar occupying ``[0, length]`` along x.""" + dim = 1 + + +class Beam2D(Grid): + """A 2D rectangle occupying ``[0, length] x [0, width]`` in the xy-plane.""" + dim = 2 + + +class Beam3D(Grid): + """A 3D box occupying ``[0, length] x [0, width] x [0, height]``.""" + dim = 3 diff --git a/common/geometry/tire.py b/common/geometry/tire.py new file mode 100644 index 0000000..2eef1df --- /dev/null +++ b/common/geometry/tire.py @@ -0,0 +1,32 @@ +"""Tire geometry (Chamberland et al., 2010, Fig. 1).""" + +import numpy as np + +from .geometry import Geometry + + +class Tire(Geometry): + """An annulus in the xy-plane, centered on the origin, extruded along z when it is 3D.""" + + PARAMETER_ORDER = ("inner_radius", "outer_radius", "extrusion_length") + + @property + def _analytic_predicates(self) -> dict: + predicates = { + "inner": lambda p: np.isclose(np.hypot(p[0], p[1]), self.inner_radius), + "outer": lambda p: np.isclose(np.hypot(p[0], p[1]), self.outer_radius), + } + if self.dim == 3: + predicates["front"] = lambda p: np.isclose(p[2], 0.0) + predicates["back"] = lambda p: np.isclose(p[2], self.extrusion_length) + return predicates + + +class Tire2D(Tire): + """An annulus occupying ``inner_radius <= r <= outer_radius`` of the xy-plane.""" + dim = 2 + + +class Tire3D(Tire): + """A Tire2D extruded along z from 0 to extrusion_length.""" + dim = 3 diff --git a/common/sofa/__init__.py b/common/sofa/__init__.py new file mode 100644 index 0000000..3175991 --- /dev/null +++ b/common/sofa/__init__.py @@ -0,0 +1 @@ +from .scene import SofaScene diff --git a/common/sofa/controllers.py b/common/sofa/controllers.py new file mode 100644 index 0000000..3921eaa --- /dev/null +++ b/common/sofa/controllers.py @@ -0,0 +1,47 @@ +"""Post-init SOFA controllers shared by both suites.""" + +import Sofa.Core + + +class RegionClamp(Sofa.Core.Controller): + """Builds one PartialFixedProjectiveConstraint per boundary region, then applies Dirichlet + boundary conditions once the simulation has initialized. + + For each region, the nodes belonging to it are found and handed to its constraint as the indices + it fixes. If a prescribed displacement is given, those nodes are also moved from rest to rest + + u in the constraint's fixed directions before the constraint clamps them there. rest_position + itself is never changed. + """ + + def __init__(self, geometry, dofs, node, prescribe_displacement_on, vec_type, + displacement=None, *args, **kwargs): + super().__init__(*args, **kwargs) + self.geometry = geometry + self.dofs = dofs + self.displacement = displacement + + # Fix dofs partially as determined by MMS `prescribe_displacement_on` + self.region_constraints = [] + for region, fixed_directions in prescribe_displacement_on.items(): + # Pad the array with zeroes for embedded dimensions: e.g. [1, 0] -> [1, 0, 0] + padded = tuple(fixed_directions) + (0,) * (geometry.spatial_dimensions - len(fixed_directions)) + constraint = node.addObject('PartialFixedProjectiveConstraint', name='clamp' + region, + template=vec_type, fixedDirections=list(padded)) + self.region_constraints.append((region, padded, constraint)) + + def onSimulationInitDoneEvent(self, event): + rest_positions = self.dofs.rest_position.array() + + # Apply non-zero Dirichlet BC: Move each fixed direction to rest + u; rest_position is untouched. + with self.dofs.position.writeableArray() as pos: + for region, fixed_directions, constraint in self.region_constraints: + indices = self.geometry.region_indices(region, rest_positions) + + if self.displacement is not None and indices: + displacement = self.displacement(rest_positions[indices]) + + for axis, fixed in enumerate(fixed_directions): + if fixed: + pos[indices, axis] = rest_positions[indices, axis] + displacement[:, axis] + + constraint.indices.value = indices diff --git a/common/sofa/conventions.py b/common/sofa/conventions.py new file mode 100644 index 0000000..d14acd8 --- /dev/null +++ b/common/sofa/conventions.py @@ -0,0 +1,38 @@ +"""Central map from tool-agnostic vocabulary to SOFA components.""" + +from dataclasses import dataclass + +# Spatial dimension (DOF/embedding space) -> MechanicalObject / force-field vector template. +VEC_DIM = {1: "Vec1d", 2: "Vec2d", 3: "Vec3d"} + +@dataclass(frozen=True) +class ElementKind: + """Everything the scene-building layer needs to know about one type of finite element.""" + + dim: int # topological dimension of this element + container: str # topology container class + data_name: str # Data field this kind's own container addresses its elements by + cpp: str # SOFA geometry name, for compound templates ("Vec3d,Hexahedron") + facet_kind: str | None # the kind of this element's own facets, None if it has none + grid_mapping: str | None # topological mapping generating it from the grid, None if grid-native + boundary_mappings: tuple # (element kind, mapping) steps from this element to its boundary + +ELEMENTS = { + "edge": ElementKind(dim=1, container="EdgeSetTopologyContainer", data_name="edges", + cpp="Edge", facet_kind=None, grid_mapping=None, + boundary_mappings=()), + "tri": ElementKind(dim=2, container="TriangleSetTopologyContainer", data_name="triangles", + cpp="Triangle", facet_kind="edge", grid_mapping="Quad2TriangleTopologicalMapping", + boundary_mappings=(("edge", "Triangle2EdgeTopologicalMapping"),)), + "quad": ElementKind(dim=2, container="QuadSetTopologyContainer", data_name="quads", + cpp="Quad", facet_kind="edge", grid_mapping=None, + # To arrive at a Quad2Edge map -> triangulate quads and then Tri2Edge + boundary_mappings=(("tri", "Quad2TriangleTopologicalMapping"), + ("edge", "Triangle2EdgeTopologicalMapping"))), + "tet": ElementKind(dim=3, container="TetrahedronSetTopologyContainer", data_name="tetrahedra", + cpp="Tetrahedron", facet_kind="tri", grid_mapping="Hexa2TetraTopologicalMapping", + boundary_mappings=(("tri", "Tetra2TriangleTopologicalMapping"),)), + "hexa": ElementKind(dim=3, container="HexahedronSetTopologyContainer", data_name="hexahedra", + cpp="Hexahedron", facet_kind="quad", grid_mapping=None, + boundary_mappings=(("quad", "Hexa2QuadTopologicalMapping"),)), +} diff --git a/common/sofa/prefabs/__init__.py b/common/sofa/prefabs/__init__.py new file mode 100644 index 0000000..8ea7478 --- /dev/null +++ b/common/sofa/prefabs/__init__.py @@ -0,0 +1,8 @@ +from .base import ScenePrefab +from .grid import ElasticGrid, ElasticBar, ElasticBeam +from .tire import ElasticTire +from ...geometry import Grid, Bar1D, Beam2D, Beam3D, Tire, Tire2D, Tire3D + +PREFAB_BY_GEOMETRY = {Grid: ElasticGrid, Bar1D: ElasticBar, + Beam2D: ElasticBeam, Beam3D: ElasticBeam, + Tire: ElasticTire, Tire2D: ElasticTire, Tire3D: ElasticTire} diff --git a/common/sofa/prefabs/base.py b/common/sofa/prefabs/base.py new file mode 100644 index 0000000..5279669 --- /dev/null +++ b/common/sofa/prefabs/base.py @@ -0,0 +1,64 @@ +"""Prefabs a study configures: they take the case blocks they need and build themselves.""" + +import Sofa +import Sofa.Core + + +def params(config, *exclude): + """Converts a set of parameters in a configuration dictionary to SOFA Data/parameterization. + Every key is passed on except 'type' and excluded ones marked by the user through *exclude.""" + skip = ('type',) + exclude + return {k: v for k, v in config.items() if k not in skip} + + +class ScenePrefab(Sofa.Prefab): + """Base SOFA prefab: holds `configs` and offers adders a subclass calls to build itself from it.""" + + def __init__(self, *args, configs=None, geometry=None, **kwargs): + # object.__setattr__: the C++ object Sofa's own __setattr__ needs doesn't exist yet, and + # Sofa.Prefab.__init__ below calls init(), which reads configs/geometry + object.__setattr__(self, 'configs', configs or {}) + object.__setattr__(self, 'geometry', geometry) + Sofa.Prefab.__init__(self, *args, **kwargs) + + def mechanical_node(self): + raise NotImplementedError + + @staticmethod + def add_force_field(node, config, material, template): + """The *FEMForceField component under test, its Data merged from `config` and `material`""" + node.addObject(config['type'], name='fem', template=template, topology='@topology', + **params(material), **params(config)) + + @staticmethod + def add_solvers(node, config): + """Newton (if present) + linear solver (+ preconditioner) + integration scheme.""" + + # Newton Solver + newton_config = config.get('newton') + if newton_config is not None: + node.addObject(newton_config['type'], name='newton', **params(newton_config)) + + # Linear Solver & Preconditioner (optional) + linear_config = config['linearSolver'] + precond_config = linear_config.get('preconditioner') + if precond_config is None: + node.addObject(linear_config['type'], name='linearSolver', **params(linear_config)) + else: + precond_system_config = precond_config['system'] + node.addObject(precond_system_config['type'], name='precondSystem', **params(precond_system_config)) + node.addObject(precond_config['type'], name='precond', linearSystem='@precondSystem', + **params(precond_config, 'system')) + + linear_system_config = linear_config['system'] + node.addObject(linear_system_config['type'], name='solverSystem', + preconditionerSystem='@precondSystem', **params(linear_system_config)) + node.addObject(linear_config['type'], name='linearSolver', linearSystem='@solverSystem', + preconditioner='@precond', **params(linear_config, 'system', 'preconditioner')) + + # ODE Integration Scheme + integration_scheme = params(config['integration']) + integration_scheme['linearSolver'] = '@linearSolver' + if newton_config is not None: + integration_scheme['newtonSolver'] = '@newton' + node.addObject(config['integration']['type'], name='ode', **integration_scheme) diff --git a/common/sofa/prefabs/grid.py b/common/sofa/prefabs/grid.py new file mode 100644 index 0000000..8af2906 --- /dev/null +++ b/common/sofa/prefabs/grid.py @@ -0,0 +1,89 @@ +"""SOFA prefabs: an elastic rectilinear structured grid in 1 to 3 dimensions, as a bar or a beam.""" + +from .base import ScenePrefab, params +from ..conventions import VEC_DIM, ELEMENTS +from ...geometry import Grid + +# Element kinds this prefab meshes, by the topological dimension of the geometry. +ELEMENT_KINDS = {1: ('edge',), 2: ('quad', 'tri'), 3: ('hexa', 'tet')} + + +def validate_parameters(name, config): + """Required ElasticGrid parameters, and an element kind its geometry can be meshed with.""" + required = ['geometry', 'grid_resolution', 'element'] + missing = [p for p in required if p not in config] + if missing: + raise ValueError(f"{name}: missing required parameters {missing}") + geometry = config['geometry'] + if not isinstance(geometry, Grid): + raise ValueError(f"{name}: geometry must be a Grid, " + f"got {type(geometry).__name__}") + kinds = ELEMENT_KINDS[geometry.dim] + if config['element'] not in kinds: + raise ValueError(f"{name}: element on a {geometry.dim}D {type(geometry).__name__} must be " + f"one of {list(kinds)}, got {config['element']!r}") + + +class ElasticGrid(ScenePrefab): + """Prefab for an elastic rectilinear structured grid model in SOFA.""" + + # The mechanical node's name in the scene graph; a named grid calls it what it is. + BODY = 'Body' + + prefabParameters = [ + {'name': 'grid_resolution', 'type': 'Vec3d', 'help': 'grid points per axis [nx, ny, nz]'}, + {'name': 'element', 'type': 'string', 'help': 'element kind (edge/tri/quad/tet/hexa)'}, + ] + + def __init__(self, *args, **kwargs): + validate_parameters(type(self).__name__, kwargs) + super().__init__(*args, **kwargs) + + def init(self): + dim = self.geometry.dim + extents = list(self.geometry.parameters) + [0.0] * (3 - dim) + VecType = VEC_DIM[self.geometry.spatial_dimensions] + element_kind = ELEMENTS[self.element.value] + grid_resolution = list(self.grid_resolution.value)[:dim] + [1] * (3 - dim) + + # Grid Topology Node + with self.addChild('Grid') as grid_node: + grid_node.addObject('RegularGridTopology', name='grid', + nx=int(grid_resolution[0]), ny=int(grid_resolution[1]), + nz=int(grid_resolution[2]), min=[0.0, 0.0, 0.0], max=extents) + + # Node containing the body's components + with self.addChild(self.BODY) as body: + self.body = body + + # Topology + if element_kind.grid_mapping is None: + body.addObject(element_kind.container, name='topology', position='@../Grid/grid.position', + **{element_kind.data_name: f'@../Grid/grid.{element_kind.data_name}'}) + else: + body.addObject(element_kind.container, name='topology', position='@../Grid/grid.position') + body.addObject(element_kind.grid_mapping, input='@../Grid/grid', output='@topology', + **params(self.configs.get('gridMapping', {}))) + body.addObject(element_kind.container.replace('Container', 'Modifier')) + # DOFs + body.addObject('MechanicalObject', name='dofs', template=VecType) + # The force field under test. + self.add_force_field(body, self.configs['forceField'], self.configs['material'], + template=f"{VecType},{element_kind.cpp}") + # ODE & Linear Solvers + self.add_solvers(body, self.configs['solvers']) + + def mechanical_node(self): + return self.body + + +class ElasticBar(ElasticGrid): + """Prefab for an elastic bar model in SOFA.""" + + BODY = 'Bar' + + +class ElasticBeam(ElasticGrid): + """Prefab for an elastic beam model in SOFA.""" + + BODY = 'Beam' diff --git a/common/sofa/prefabs/tire.py b/common/sofa/prefabs/tire.py new file mode 100644 index 0000000..0afb488 --- /dev/null +++ b/common/sofa/prefabs/tire.py @@ -0,0 +1,186 @@ +"""SOFA prefab: an elastic tire -- an annulus, extruded along z when it is 3D.""" + +import itertools + +import numpy as np + +from .base import ScenePrefab +from ..conventions import VEC_DIM, ELEMENTS +from ...geometry import Tire + +# Element kinds this prefab meshes, by the topological dimension of the geometry. +ELEMENT_KINDS = {2: ('quad', 'tri'), 3: ('hexa', 'tet')} + +# The two triangles one quadrilateral splits into, on one diagonal and on the other. +_TRIANGLE_PATTERNS = (((1, 2, 0), (3, 0, 2)), + ((0, 1, 3), (2, 3, 1))) + +# Swapping the two nodes of every hexahedron edge along one axis, as the permutation it applies to +# the eight corner slots. sofa::geometry::Hexahedron::{x,y,z}Edges. +_EDGE_SWAPS = ((1, 0, 3, 2, 5, 4, 7, 6), + (3, 2, 1, 0, 7, 6, 5, 4), + (4, 5, 6, 7, 0, 1, 2, 3)) + +# The six tetrahedra one hexahedron splits into, before and after an odd number of those swaps. +_TETRA_PATTERNS = { + False: ((0, 5, 1, 6), (0, 1, 3, 6), (1, 3, 6, 2), (6, 3, 0, 7), (6, 7, 0, 5), (7, 5, 4, 0)), + True: ((0, 5, 6, 1), (0, 1, 6, 3), (1, 3, 2, 6), (6, 3, 7, 0), (6, 7, 5, 0), (7, 5, 0, 4)), +} + + +def validate_parameters(config): + """Required ElasticTire parameters, and an element kind its geometry can be meshed with.""" + required = ['geometry', 'grid_resolution', 'element'] + missing = [p for p in required if p not in config] + if missing: + raise ValueError(f"ElasticTire: missing required parameters {missing}") + geometry = config['geometry'] + if not isinstance(geometry, Tire): + raise ValueError(f"ElasticTire: geometry must be a Tire2D or a Tire3D, " + f"got {type(geometry).__name__}") + kinds = ELEMENT_KINDS[geometry.dim] + if config['element'] not in kinds: + raise ValueError(f"ElasticTire: element on a {type(geometry).__name__} must be one of " + f"{list(kinds)}, got {config['element']!r}") + + +def annulus(geometry, cells): + """The annulus in the xy-plane: its nodes, and the quadrilaterals over them. + + `cells` counts cells radially and circumferentially. The ring closes on itself, so the + circumferential direction holds exactly that many nodes, not one more. + """ + radial, circumferential = cells + + radii = np.linspace(geometry.inner_radius, geometry.outer_radius, radial + 1) + angles = np.linspace(0.0, 2.0 * np.pi, circumferential, endpoint=False) + + r, theta = np.meshgrid(radii, angles, indexing='ij') + nodes = np.stack([r * np.cos(theta), r * np.sin(theta), np.zeros_like(r)], + axis=-1).reshape(-1, 3) + + node = np.arange(nodes.shape[0]).reshape(r.shape) + i, j = np.mgrid[0:radial, 0:circumferential] + ring = (j + 1) % circumferential # the last cell of the ring closes back onto j = 0 + + # (radial, circumferential) turns counter-clockwise, the winding GridTopology gives a cell. + corners = (node[i, j], node[i + 1, j], node[i + 1, ring], node[i, ring]) + return nodes, np.stack(corners, axis=-1).reshape(-1, 4) + + +def extrude(nodes, quads, length, axial): + """The annulus swept along z into `axial` layers: the swept nodes, and the hexahedra over them. + + Each layer repeats the annulus, so a hexahedron is its quadrilateral followed by the same one + a layer up -- again the winding GridTopology gives a cell. + """ + layer = nodes.shape[0] + swept = np.tile(nodes, (axial + 1, 1)) + swept[:, 2] = np.repeat(np.linspace(0.0, length, axial + 1), layer) + + base = np.arange(axial)[:, None, None] * layer + hexahedra = np.concatenate([quads[None] + base, quads[None] + base + layer], axis=-1) + return swept, hexahedra.reshape(-1, 8) + + +def triangulate(quads, cells): + """Two triangles per quadrilateral, split the way Quad2TriangleTopologicalMapping splits one. + + Neighbours share a whole edge, so any choice of diagonal conforms; alternating it cell by cell + only keeps the mesh from leaning the same way everywhere. + """ + i, j = np.mgrid[0:cells[0], 0:cells[1]] + diagonal = ((i ^ j) & 1).reshape(-1) + + triangles = np.empty((quads.shape[0], 2, 3), dtype=np.int64) + for choice, pattern in enumerate(_TRIANGLE_PATTERNS): + selected = diagonal == choice + triangles[selected] = quads[selected][:, pattern] + + return triangles.reshape(-1, 3) + + +def tetrahedralize(hexahedra, cells): + """Six tetrahedra per hexahedron, split the way Hexa2TetraTopologicalMapping splits one. + + The node labelling alternates with the parity of the cell's index, so neighbours agree on the + diagonal of every face they share. Across the seam that pairs the last circumferential cell + with the first, which only agree when there is an even number of them. + """ + radial, circumferential, axial = cells + if circumferential % 2: + raise ValueError(f"ElasticTire: an odd number of circumferential cells " + f"({circumferential}) leaves the tetrahedra of the closing cell " + f"disagreeing with the first on their shared diagonal") + + # Layer by layer, as `extrude` stacks them. + k, i, j = np.mgrid[0:axial, 0:radial, 0:circumferential] + parities = np.stack([i % 2 == 0, j % 2 == 1, k % 2 == 1], axis=-1).reshape(-1, 3) + + tetrahedra = np.empty((hexahedra.shape[0], 6, 4), dtype=np.int64) + for signature in itertools.product((False, True), repeat=3): + slots, swapped = list(range(8)), False + for axis, swap in enumerate(signature): + if swap: + slots = [slots[p] for p in _EDGE_SWAPS[axis]] + swapped = not swapped + pattern = [[slots[corner] for corner in tetra] for tetra in _TETRA_PATTERNS[swapped]] + + selected = np.all(parities == signature, axis=-1) + tetrahedra[selected] = hexahedra[selected][:, pattern] + + return tetrahedra.reshape(-1, 4) + + +def mesh(geometry, cells, element): + """The nodes of `geometry` and its elements of the given kind.""" + nodes, elements = annulus(geometry, cells[:2]) + if geometry.dim == 3: + nodes, elements = extrude(nodes, elements, geometry.extrusion_length, cells[2]) + + if element == 'tri': + elements = triangulate(elements, cells) + elif element == 'tet': + elements = tetrahedralize(elements, cells) + return nodes, elements + + +class ElasticTire(ScenePrefab): + """Prefab for an elastic tire model in SOFA.""" + + prefabParameters = [ + {'name': 'grid_resolution', 'type': 'Vec3d', + 'help': 'nodes per axis [radial, circumferential] and [, axial] when extruded'}, + {'name': 'element', 'type': 'string', 'help': 'element kind (quad/tri/hexa/tet)'}, + ] + + def __init__(self, *args, **kwargs): + validate_parameters(kwargs) + super().__init__(*args, **kwargs) + + def init(self): + VecType = VEC_DIM[self.geometry.spatial_dimensions] + element_kind = ELEMENTS[self.element.value] + # A study states nodes per axis, the mesh is laid out in cells. + cells = [int(count) - 1 for count in + list(self.grid_resolution.value)[:self.geometry.dim]] + + nodes, elements = mesh(self.geometry, cells, self.element.value) + + # Node containing Tire components + with self.addChild('Tire') as tire: + self.tire = tire + + # Topology: meshed directly, so no grid and no topological mapping to reach it. + tire.addObject(element_kind.container, name='topology', position=nodes.tolist(), + **{element_kind.data_name: elements.tolist()}) + # DOFs + tire.addObject('MechanicalObject', name='dofs', template=VecType) + # The force field under test. + self.add_force_field(tire, self.configs['forceField'], self.configs['material'], + template=f"{VecType},{element_kind.cpp}") + # ODE & Linear Solvers + self.add_solvers(tire, self.configs['solvers']) + + def mechanical_node(self): + return self.tire diff --git a/common/sofa/scene.py b/common/sofa/scene.py new file mode 100644 index 0000000..87de443 --- /dev/null +++ b/common/sofa/scene.py @@ -0,0 +1,29 @@ +"""Generic SOFA scene abstraction. Scenes in VnV build off of it.""" + +from abc import ABC, abstractmethod + + +class SofaScene(ABC): + """Abstract SOFA scene: loads its plugins, then builds the scene graph. + + A subclass appends the plugins it needs to `plugins`, and defines `body` to build the + scene graph. + """ + + plugins = [] # plugins every scene needs; a subclass appends its own on top + + def __init__(self): + # The list of plugins is kept as a copy per-instance. + self.plugins = list(self.plugins) + + def add_plugins(self, root): + """Add every plugin in `plugins` as one RequiredPlugin. Subclass appends to `self.plugins`.""" + root.addObject('RequiredPlugin', pluginName=self.plugins) + + @abstractmethod + def body(self, root): + """Build the scene graph.""" + + def build(self, root): + self.add_plugins(root) + return self.body(root) diff --git a/validation/__init__.py b/validation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/analytic_solution.py b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/analytic_solution.py new file mode 100644 index 0000000..250234a --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/analytic_solution.py @@ -0,0 +1,12 @@ +"""Analytic solution for DistributedAxialLoad: a bar under a uniform distributed axial load. + +u(x) = q/E * (length*x - x^2/2), for a bar clamped at x=0, free at x=length, under a uniform +axial body force q per unit length. +""" + + +def displacement(x, case): + length = case['geometry']['length'] + young_modulus = case['material']['youngModulus'] + load = case['load']['magnitude'] + return load / young_modulus * (length * x - x ** 2 / 2) diff --git a/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/case.json b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/case.json new file mode 100644 index 0000000..bb1cd0d --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/case.json @@ -0,0 +1,18 @@ +{ + "geometry": { "type": "Bar1D", "length": 1.0 }, + "element": "edge", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [10, 1, 1] }, + "load": { "type": "distributedAxial", "magnitude": 400000.0 }, + "tolerance": { "rms": 1e-10 }, + "toleranceAnalytic": { "rms": 1e-10 } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/fenics_scene.py new file mode 100644 index 0000000..9aa78e9 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/fenics_scene.py @@ -0,0 +1,73 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem +from dolfinx.fem.petsc import LinearProblem + +from common.fenics import BarMesh +from common.geometry import Bar1D + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + geometry = Bar1D(length=case['geometry']['length']) + grid = BarMesh(geometry, case['mesh']['resolution']) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1)) + + # 1D axial stiffness: lambda + 2*mu collapses to E exactly (poissonRatio is inert in 1D). + stiffness = fem.Constant(domain, default_scalar_type(case['material']['youngModulus'])) + load = fem.Constant(domain, default_scalar_type(case['load']['magnitude'])) + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + a = stiffness * ufl.inner(ufl.grad(u), ufl.grad(v)) * ufl.dx + L = load * v * ufl.dx + + clamped = fem.locate_dofs_geometrical(V, lambda x: np.isclose(x[0], 0.0)) + bc = fem.dirichletbc(default_scalar_type(0.0), clamped, V) + + return grid, V, a, L, bc + + +def solve(case): + grid, V, a, L, bc = build(case) + + problem = LinearProblem(a, L, bcs=[bc], petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + x = V.tabulate_dof_coordinates()[:, 0] + return x[grid.inverse], solution.x.array[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/reference_solution.json new file mode 100644 index 0000000..41cc1b8 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/reference_solution.json @@ -0,0 +1 @@ +{"edge": {"fenics": {"x": [0.0, 0.1111111111111111, 0.2222222222222222, 0.3333333333333333, 0.4444444444444444, 0.5555555555555556, 0.6666666666666666, 0.7777777777777777, 0.8888888888888888, 1.0], "u": [0.0, 0.0419753086419752, 0.07901234567901212, 0.11111111111111079, 0.13827160493827118, 0.16049382716049332, 0.1777777777777772, 0.19012345679012285, 0.19753086419753024, 0.1999999999999994]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/sofa_scene.py new file mode 100644 index 0000000..aeaa721 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad/sofa_scene.py @@ -0,0 +1,94 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.geometry import Bar1D +from common.sofa.conventions import ELEMENTS, VEC_DIM +from common.sofa.controllers import RegionClamp +from common.sofa.prefabs import ElasticBar + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Bar1D(length=case['geometry']['length']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers']} + bar = root.addChild(ElasticBar(name='ElasticBar', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + # Initialize grid points here to work with BCs + bar.Grid.grid.init() + + with bar.mechanical_node() as mechanical: + # Apply Dirichlet BCs on x = 0 + mechanical.addObject(RegionClamp(geometry=geometry, dofs=mechanical.dofs, node=mechanical, + prescribe_displacement_on={'left': [1]}, + vec_type=VEC_DIM[geometry.spatial_dimensions], name='clampCtrl')) + + mechanical.addObject('NodalSourceDensity', name='loadDensity', template='Vec1d', + property=[[case['load']['magnitude']]]) + mechanical.addObject('VectorSourceTerm', name='bodyForce', template='Vec1d,Edge', + sourceDensity='@loadDensity') + mechanical.addObject('FEMSourceTermIntegrator', name='distributedLoad', template='Vec1d,Edge', + topology='@topology', quadratureDegree=1, constantSources='@bodyForce') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x = mechanical.dofs.rest_position.array()[:, 0].copy() + u = mechanical.dofs.position.array()[:, 0] - x + cells = getattr(mechanical.topology, ELEMENTS[case['element']].data_name).array().copy() + return x, u, cells + + +def main(case): + x, u, cells = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/analytic_solution.py b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/analytic_solution.py new file mode 100644 index 0000000..a184ecc --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/analytic_solution.py @@ -0,0 +1,16 @@ +"""Analytic solution for AxialCompression: a beam under a uniform compressive edge traction. + +u_x(x) = stress*x/E, u_y(x, y) = -nu*stress*y/E, for a beam clamped at x=0, under a uniform +compressive traction on x=length, plane stress. +""" + +import numpy as np + + +def displacement(x, case): + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + stress = -case['load']['magnitude'] + ux = stress * x[:, 0] / young_modulus + uy = -poisson_ratio * stress * x[:, 1] / young_modulus + return np.column_stack([ux, uy]) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/case.json b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/case.json new file mode 100644 index 0000000..b9e6206 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/case.json @@ -0,0 +1,39 @@ +{ + "quad": { + "geometry": { "type": "Beam2D", "length": 1.0, "width": 0.2 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [21, 9, 1] }, + "load": { "type": "axialTraction", "magnitude": 200.0 }, + "tolerance": { "rms": 1e-10 }, + "toleranceAnalytic": { "rms": 1e-10 } + }, + "tri": { + "geometry": { "type": "Beam2D", "length": 1.0, "width": 0.2 }, + "element": "tri", + "swapping": true, + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [21, 9, 1] }, + "load": { "type": "axialTraction", "magnitude": 200.0 }, + "tolerance": { "rms": 1e-10 }, + "toleranceAnalytic": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/fenics_scene.py new file mode 100644 index 0000000..927fb4f --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/fenics_scene.py @@ -0,0 +1,98 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem + +from common.fenics import BeamMesh +from common.geometry import Beam2D + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + geometry = Beam2D(length=case['geometry']['length'], width=case['geometry']['width']) + grid = BeamMesh(geometry, case['mesh']['resolution'], element=case['element'], + swapping=case.get('swapping', True)) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1, (2,))) + + # Plane stress: SOFA's reduction of isotropic elasticity to dim=2 (LameParameters.h). + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(2) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + right_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[0], geometry.length)) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, right_facets, + np.full_like(right_facets, 1, dtype=np.int32)) + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags) + + traction = fem.Constant(domain, default_scalar_type((-case['load']['magnitude'], 0.0))) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + # Fix the axial displacement along x = 0, leaving it free to contract laterally. + # Pin the lateral displacement at the corner to remove the remaining rigid-body mode. + Vx, _ = V.sub(0).collapse() + clamped_x = fem.locate_dofs_geometrical((V.sub(0), Vx), lambda x: np.isclose(x[0], 0.0)) + bc_x = fem.dirichletbc(default_scalar_type(0.0), clamped_x[0], V.sub(0)) + + Vy, _ = V.sub(1).collapse() + corner = fem.locate_dofs_geometrical((V.sub(1), Vy), + lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], 0.0)) + bc_corner = fem.dirichletbc(default_scalar_type(0.0), corner[0], V.sub(1)) + + return grid, V, a, L, [bc_x, bc_corner] + + +def solve(case): + grid, V, a, L, bcs = build(case) + + problem = LinearProblem(a, L, bcs=bcs, petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + coords = V.tabulate_dof_coordinates()[:, :2] + values = solution.x.array.reshape(-1, 2) + return coords[grid.inverse], values[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/reference_solution.json new file mode 100644 index 0000000..0beb40b --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/reference_solution.json @@ -0,0 +1 @@ +{"quad": {"fenics": {"x": [[2.7755575615628915e-18, 6.938893903907229e-19], [0.05, 6.938893903907229e-19], [0.1, 6.938893903907229e-19], [0.15, 6.938893903907229e-19], [0.2, 6.938893903907229e-19], [0.25, 6.938893903907229e-19], [0.3, 6.938893903907229e-19], [0.35, 6.938893903907229e-19], [0.39999999999999997, 6.938893903907229e-19], [0.44999999999999996, 6.938893903907229e-19], [0.5, 6.938893903907229e-19], [0.5499999999999999, 6.938893903907229e-19], [0.6, 6.938893903907229e-19], [0.6499999999999999, 6.938893903907229e-19], [0.7, 6.938893903907229e-19], [0.7499999999999999, 6.938893903907229e-19], [0.7999999999999999, 6.938893903907229e-19], [0.85, 6.938893903907229e-19], [0.8999999999999999, 6.938893903907229e-19], [0.95, 6.938893903907229e-19], [1.0000000000000002, -6.938893903907229e-19], [2.7755575615628915e-18, 0.025], [0.05, 0.025], [0.1, 0.025], [0.15, 0.025], [0.2, 0.025], [0.25, 0.025], [0.3, 0.025], [0.35, 0.025], [0.39999999999999997, 0.025], [0.44999999999999996, 0.025], [0.5, 0.025], [0.5499999999999999, 0.025], [0.6, 0.025], [0.6499999999999999, 0.025], [0.7, 0.025], [0.7499999999999999, 0.025], [0.7999999999999999, 0.025], [0.85, 0.025], [0.8999999999999999, 0.025], [0.95, 0.025], [1.0000000000000002, 0.025], [2.7755575615628915e-18, 0.05], [0.05, 0.05], [0.1, 0.05], [0.15, 0.05], [0.2, 0.05], [0.25, 0.05], [0.3, 0.05], [0.35, 0.05], [0.39999999999999997, 0.05], [0.44999999999999996, 0.05], [0.5, 0.05], [0.5499999999999999, 0.05], [0.6, 0.05], [0.6499999999999999, 0.05], [0.7, 0.05], [0.7499999999999999, 0.05], [0.7999999999999999, 0.05], [0.85, 0.05], [0.8999999999999999, 0.05], [0.95, 0.05], [1.0000000000000002, 0.05], [2.7755575615628915e-18, 0.075], [0.05, 0.075], [0.1, 0.075], [0.15, 0.075], [0.2, 0.075], [0.25, 0.075], [0.3, 0.075], [0.35, 0.075], [0.39999999999999997, 0.075], [0.44999999999999996, 0.075], [0.5, 0.075], [0.5499999999999999, 0.075], [0.6, 0.075], [0.6499999999999999, 0.075], [0.7, 0.075], [0.7499999999999999, 0.075], [0.7999999999999999, 0.075], [0.85, 0.075], [0.8999999999999999, 0.075], [0.95, 0.075], [1.0000000000000002, 0.07500000000000002], [2.7755575615628915e-18, 0.1], [0.05, 0.1], [0.1, 0.1], [0.15, 0.1], [0.2, 0.1], [0.25, 0.1], [0.3, 0.1], [0.35, 0.1], [0.39999999999999997, 0.1], [0.44999999999999996, 0.1], [0.5, 0.1], [0.5499999999999999, 0.1], [0.6, 0.1], [0.6499999999999999, 0.1], [0.7, 0.1], [0.7499999999999999, 0.1], [0.7999999999999999, 0.1], [0.85, 0.1], [0.8999999999999999, 0.1], [0.95, 0.1], [1.0000000000000002, 0.1], [2.7755575615628915e-18, 0.125], [0.05, 0.125], [0.1, 0.125], [0.15, 0.125], [0.2, 0.125], [0.25, 0.125], [0.3, 0.125], [0.35, 0.125], [0.39999999999999997, 0.125], [0.44999999999999996, 0.125], [0.5, 0.125], [0.5499999999999999, 0.125], [0.6, 0.125], [0.6499999999999999, 0.125], [0.7, 0.125], [0.7499999999999999, 0.125], [0.7999999999999999, 0.125], [0.85, 0.125], [0.8999999999999999, 0.125], [0.95, 0.125], [1.0000000000000002, 0.12500000000000003], [2.7755575615628915e-18, 0.15], [0.05, 0.15], [0.1, 0.15], [0.15, 0.15], [0.2, 0.15], [0.25, 0.15], [0.3, 0.15], [0.35, 0.15], [0.39999999999999997, 0.15], [0.44999999999999996, 0.15], [0.5, 0.15], [0.5499999999999999, 0.15], [0.6, 0.15], [0.6499999999999999, 0.15], [0.7, 0.15], [0.7499999999999999, 0.15], [0.7999999999999999, 0.15], [0.85, 0.15], [0.8999999999999999, 0.15], [0.95, 0.15], [1.0000000000000002, 0.15000000000000005], [2.7755575615628915e-18, 0.175], [0.05, 0.175], [0.1, 0.175], [0.15, 0.175], [0.2, 0.175], [0.25, 0.175], [0.3, 0.175], [0.35, 0.175], [0.39999999999999997, 0.175], [0.44999999999999996, 0.175], [0.5, 0.175], [0.5499999999999999, 0.175], [0.6, 0.175], [0.6499999999999999, 0.175], [0.7, 0.175], [0.7499999999999999, 0.175], [0.7999999999999999, 0.175], [0.85, 0.175], [0.8999999999999999, 0.175], [0.95, 0.175], [1.0000000000000002, 0.17500000000000004], [-2.7755575615628915e-18, 0.20000000000000004], [0.05, 0.20000000000000004], [0.1, 0.20000000000000004], [0.15000000000000005, 0.20000000000000004], [0.2, 0.20000000000000004], [0.25000000000000006, 0.20000000000000004], [0.3000000000000001, 0.20000000000000004], [0.3500000000000001, 0.20000000000000004], [0.4000000000000001, 0.20000000000000004], [0.45000000000000007, 0.20000000000000004], [0.5000000000000001, 0.20000000000000004], [0.5500000000000002, 0.20000000000000004], [0.6000000000000002, 0.20000000000000004], [0.6500000000000001, 0.20000000000000004], [0.7000000000000002, 0.20000000000000004], [0.7500000000000001, 0.20000000000000004], [0.8000000000000002, 0.20000000000000004], [0.8500000000000002, 0.20000000000000004], [0.9000000000000001, 0.20000000000000004], [0.9500000000000002, 0.20000000000000004], [0.9999999999999999, 0.19999999999999998]], "u": [[0.0, 0.0], [-0.009999999999999126, 5.141394398771086e-16], [-0.019999999999998356, 1.074276441918354e-15], [-0.029999999999997626, 1.9055640515967493e-15], [-0.03999999999999692, 3.0107042609748962e-15], [-0.04999999999999622, 4.357737334790327e-15], [-0.05999999999999558, 5.940234718783007e-15], [-0.06999999999999498, 7.690883198480104e-15], [-0.07999999999999437, 9.637453506329405e-15], [-0.08999999999999389, 1.1768008789658783e-14], [-0.09999999999999337, 1.4032832135595546e-14], [-0.10999999999999273, 1.643621602015521e-14], [-0.11999999999999217, 1.89853343774052e-14], [-0.12999999999999165, 2.168482513200501e-14], [-0.13999999999999116, 2.4567873008569252e-14], [-0.1499999999999908, 2.7511093502507448e-14], [-0.15999999999999048, 3.051941132456896e-14], [-0.1699999999999903, 3.35859071754964e-14], [-0.17999999999999008, 3.671025563488935e-14], [-0.18999999999998998, 3.989602899138165e-14], [-0.19999999999999, 4.314325862908076e-14], [0.0, 0.0015000000000000306], [-0.009999999999999362, 0.00150000000000038], [-0.019999999999998696, 0.0015000000000009752], [-0.0299999999999981, 0.0015000000000018067], [-0.039999999999997524, 0.0015000000000029141], [-0.04999999999999694, 0.0015000000000042677], [-0.059999999999996424, 0.0015000000000058528], [-0.0699999999999959, 0.0015000000000076096], [-0.07999999999999542, 0.001500000000009565], [-0.08999999999999497, 0.0015000000000116958], [-0.09999999999999447, 0.001500000000013955], [-0.10999999999999398, 0.001500000000016352], [-0.11999999999999345, 0.0015000000000189096], [-0.12999999999999304, 0.0015000000000216262], [-0.13999999999999266, 0.0015000000000244974], [-0.14999999999999225, 0.0015000000000274648], [-0.15999999999999198, 0.0015000000000304796], [-0.16999999999999185, 0.0015000000000335565], [-0.1799999999999916, 0.0015000000000366875], [-0.18999999999999154, 0.0015000000000398893], [-0.19999999999999155, 0.0015000000000431537], [0.0, 0.003000000000000037], [-0.009999999999999528, 0.0030000000000002993], [-0.019999999999999026, 0.003000000000000888], [-0.029999999999998552, 0.003000000000001729], [-0.03999999999999813, 0.0030000000000028363], [-0.04999999999999762, 0.003000000000004193], [-0.05999999999999722, 0.003000000000005779], [-0.06999999999999681, 0.0030000000000075387], [-0.0799999999999964, 0.0030000000000095016], [-0.08999999999999601, 0.003000000000011623], [-0.09999999999999562, 0.0030000000000138857], [-0.10999999999999517, 0.003000000000016291], [-0.1199999999999948, 0.0030000000000188517], [-0.1299999999999944, 0.0030000000000215757], [-0.1399999999999941, 0.0030000000000244362], [-0.1499999999999938, 0.0030000000000274074], [-0.15999999999999356, 0.0030000000000304475], [-0.16999999999999335, 0.0030000000000335305], [-0.17999999999999317, 0.003000000000036655], [-0.18999999999999312, 0.003000000000039887], [-0.19999999999999313, 0.0030000000000431513], [0.0, 0.004500000000000034], [-0.009999999999999678, 0.004500000000000255], [-0.01999999999999933, 0.004500000000000825], [-0.029999999999999007, 0.004500000000001673], [-0.03999999999999868, 0.004500000000002774], [-0.04999999999999834, 0.0045000000000041335], [-0.05999999999999801, 0.004500000000005728], [-0.06999999999999768, 0.004500000000007483], [-0.07999999999999739, 0.0045000000000094496], [-0.08999999999999708, 0.004500000000011566], [-0.09999999999999672, 0.004500000000013832], [-0.10999999999999639, 0.004500000000016251], [-0.11999999999999604, 0.004500000000018812], [-0.1299999999999958, 0.004500000000021529], [-0.1399999999999955, 0.0045000000000244], [-0.1499999999999954, 0.004500000000027372], [-0.15999999999999504, 0.0045000000000303885], [-0.1699999999999948, 0.0045000000000335015], [-0.17999999999999475, 0.004500000000036638], [-0.1899999999999947, 0.0045000000000398836], [-0.19999999999999468, 0.004500000000043146], [0.0, 0.0060000000000000366], [-0.009999999999999827, 0.00600000000000023], [-0.019999999999999636, 0.006000000000000789], [-0.029999999999999437, 0.006000000000001629], [-0.039999999999999244, 0.006000000000002736], [-0.04999999999999901, 0.0060000000000040915], [-0.05999999999999878, 0.006000000000005681], [-0.06999999999999855, 0.006000000000007444], [-0.07999999999999838, 0.006000000000009418], [-0.08999999999999815, 0.0060000000000115265], [-0.09999999999999794, 0.006000000000013804], [-0.10999999999999763, 0.006000000000016218], [-0.11999999999999737, 0.0060000000000187785], [-0.12999999999999715, 0.006000000000021503], [-0.139999999999997, 0.0060000000000243634], [-0.14999999999999666, 0.00600000000002734], [-0.15999999999999656, 0.006000000000030344], [-0.1699999999999964, 0.006000000000033475], [-0.1799999999999963, 0.006000000000036631], [-0.18999999999999626, 0.006000000000039873], [-0.1999999999999963, 0.006000000000043162], [0.0, 0.0075000000000000466], [-0.009999999999999978, 0.007500000000000225], [-0.019999999999999934, 0.00750000000000077], [-0.02999999999999988, 0.007500000000001612], [-0.03999999999999981, 0.00750000000000271], [-0.049999999999999704, 0.0075000000000040555], [-0.05999999999999953, 0.007500000000005649], [-0.06999999999999945, 0.007500000000007429], [-0.07999999999999936, 0.007500000000009397], [-0.08999999999999925, 0.00750000000001151], [-0.09999999999999909, 0.007500000000013792], [-0.10999999999999886, 0.007500000000016182], [-0.11999999999999865, 0.007500000000018763], [-0.12999999999999853, 0.007500000000021481], [-0.1399999999999984, 0.007500000000024311], [-0.14999999999999813, 0.007500000000027312], [-0.15999999999999814, 0.007500000000030341], [-0.169999999999998, 0.007500000000033447], [-0.17999999999999797, 0.00750000000003663], [-0.18999999999999795, 0.007500000000039874], [-0.1999999999999979, 0.007500000000043183], [0.0, 0.009000000000000072], [-0.010000000000000122, 0.00900000000000024], [-0.02000000000000023, 0.009000000000000778], [-0.030000000000000304, 0.009000000000001604], [-0.04000000000000037, 0.009000000000002712], [-0.050000000000000384, 0.009000000000004043], [-0.06000000000000037, 0.009000000000005634], [-0.07000000000000034, 0.009000000000007427], [-0.08000000000000031, 0.009000000000009393], [-0.09000000000000027, 0.009000000000011499], [-0.10000000000000012, 0.009000000000013782], [-0.11000000000000006, 0.009000000000016179], [-0.11999999999999998, 0.009000000000018759], [-0.1299999999999999, 0.009000000000021468], [-0.1399999999999998, 0.009000000000024282], [-0.14999999999999966, 0.009000000000027288], [-0.15999999999999953, 0.009000000000030345], [-0.16999999999999948, 0.009000000000033452], [-0.17999999999999947, 0.009000000000036637], [-0.18999999999999953, 0.00900000000003989], [-0.1999999999999995, 0.009000000000043184], [0.0, 0.010500000000000106], [-0.010000000000000276, 0.010500000000000276], [-0.020000000000000535, 0.0105000000000008], [-0.030000000000000776, 0.01050000000000163], [-0.040000000000000945, 0.010500000000002724], [-0.05000000000000109, 0.010500000000004051], [-0.060000000000001205, 0.010500000000005635], [-0.07000000000000127, 0.010500000000007429], [-0.08000000000000132, 0.010500000000009392], [-0.09000000000000134, 0.010500000000011502], [-0.10000000000000132, 0.010500000000013764], [-0.11000000000000126, 0.010500000000016194], [-0.12000000000000127, 0.010500000000018758], [-0.13000000000000123, 0.01050000000002146], [-0.1400000000000012, 0.010500000000024264], [-0.15000000000000113, 0.010500000000027264], [-0.16000000000000103, 0.010500000000030329], [-0.17000000000000093, 0.010500000000033469], [-0.18000000000000108, 0.010500000000036633], [-0.19000000000000108, 0.010500000000039913], [-0.2000000000000011, 0.010500000000043188], [0.0, 0.012000000000000163], [-0.010000000000000446, 0.012000000000000332], [-0.020000000000000868, 0.01200000000000085], [-0.030000000000001248, 0.012000000000001678], [-0.040000000000001555, 0.012000000000002755], [-0.05000000000000181, 0.012000000000004079], [-0.06000000000000206, 0.01200000000000566], [-0.07000000000000221, 0.012000000000007442], [-0.08000000000000233, 0.012000000000009406], [-0.09000000000000244, 0.012000000000011507], [-0.10000000000000252, 0.012000000000013776], [-0.11000000000000253, 0.01200000000001619], [-0.12000000000000255, 0.012000000000018773], [-0.13000000000000259, 0.01200000000002147], [-0.14000000000000262, 0.012000000000024262], [-0.15000000000000263, 0.01200000000002726], [-0.16000000000000258, 0.012000000000030311], [-0.17000000000000254, 0.012000000000033484], [-0.18000000000000269, 0.012000000000036657], [-0.19000000000000275, 0.012000000000039915], [-0.20000000000000273, 0.012000000000043214]]}}, "tri": {"fenics": {"x": [[-1.0771140357880435e-18, 2.2370005436688698e-18], [0.05, 0.0], [0.1, -5.385570178940217e-19], [0.15000000000000002, 0.0], [0.20000000000000004, -5.385570178940217e-19], [0.25, 0.0], [0.30000000000000004, -5.385570178940217e-19], [0.35000000000000003, 0.0], [0.4000000000000001, -5.385570178940217e-19], [0.45, 0.0], [0.5, -5.385570178940217e-19], [0.55, 0.0], [0.6000000000000002, -5.385570178940217e-19], [0.65, 0.0], [0.7000000000000002, -5.385570178940217e-19], [0.75, 0.0], [0.8000000000000002, -5.385570178940217e-19], [0.8500000000000001, 0.0], [0.9000000000000001, -5.385570178940217e-19], [0.9500000000000001, 0.0], [1.0, -5.385570178940217e-19], [1.0771140357880435e-18, 0.025], [0.05, 0.025], [0.1, 0.025], [0.15000000000000002, 0.025], [0.2, 0.025], [0.24999999999999997, 0.025], [0.30000000000000004, 0.025], [0.35, 0.025], [0.4, 0.025], [0.44999999999999996, 0.025], [0.5, 0.025], [0.55, 0.025], [0.6000000000000001, 0.025], [0.6499999999999999, 0.025], [0.7000000000000001, 0.025], [0.7499999999999999, 0.025], [0.8, 0.025], [0.85, 0.025], [0.9, 0.025], [0.95, 0.025], [1.0, 0.025], [-2.7755575615628915e-18, 0.05], [0.05, 0.05], [0.1, 0.049999999999999996], [0.15000000000000002, 0.05], [0.19999999999999998, 0.049999999999999996], [0.25, 0.05], [0.30000000000000004, 0.049999999999999996], [0.35000000000000003, 0.05], [0.39999999999999997, 0.049999999999999996], [0.45, 0.05], [0.49999999999999994, 0.049999999999999996], [0.55, 0.05], [0.6, 0.049999999999999996], [0.65, 0.05], [0.7, 0.049999999999999996], [0.75, 0.05], [0.7999999999999999, 0.049999999999999996], [0.8500000000000001, 0.05], [0.8999999999999999, 0.049999999999999996], [0.9500000000000001, 0.05], [0.9999999999999999, 0.049999999999999996], [1.0771140357880435e-18, 0.07500000000000001], [0.05, 0.07500000000000001], [0.1, 0.07500000000000001], [0.15000000000000002, 0.07500000000000001], [0.2, 0.07500000000000001], [0.24999999999999997, 0.07500000000000001], [0.30000000000000004, 0.07500000000000001], [0.35, 0.07500000000000001], [0.4, 0.07500000000000001], [0.44999999999999996, 0.07500000000000001], [0.5, 0.07500000000000001], [0.55, 0.07500000000000001], [0.6000000000000001, 0.07500000000000001], [0.6499999999999999, 0.07500000000000001], [0.7000000000000001, 0.07500000000000001], [0.7499999999999999, 0.07500000000000001], [0.8, 0.07500000000000001], [0.85, 0.07500000000000001], [0.9, 0.07500000000000001], [0.95, 0.07500000000000001], [1.0, 0.07500000000000001], [-2.7755575615628915e-18, 0.09999999999999999], [0.05, 0.1], [0.1, 0.09999999999999999], [0.15000000000000002, 0.1], [0.19999999999999998, 0.09999999999999999], [0.25, 0.1], [0.30000000000000004, 0.09999999999999999], [0.35000000000000003, 0.1], [0.39999999999999997, 0.09999999999999999], [0.45, 0.1], [0.49999999999999994, 0.09999999999999999], [0.55, 0.1], [0.6, 0.09999999999999999], [0.65, 0.1], [0.7, 0.09999999999999999], [0.75, 0.1], [0.7999999999999999, 0.09999999999999999], [0.8500000000000001, 0.1], [0.8999999999999999, 0.09999999999999999], [0.9500000000000001, 0.1], [0.9999999999999999, 0.09999999999999999], [1.0771140357880435e-18, 0.125], [0.05, 0.12499999999999999], [0.1, 0.125], [0.15000000000000002, 0.12499999999999999], [0.2, 0.125], [0.24999999999999997, 0.12499999999999999], [0.30000000000000004, 0.125], [0.35, 0.12499999999999999], [0.4, 0.125], [0.44999999999999996, 0.12499999999999999], [0.5, 0.125], [0.55, 0.12499999999999999], [0.6000000000000001, 0.125], [0.6499999999999999, 0.12499999999999999], [0.7000000000000001, 0.125], [0.7499999999999999, 0.12499999999999999], [0.8, 0.125], [0.85, 0.12499999999999999], [0.9, 0.125], [0.95, 0.12499999999999999], [1.0, 0.125], [-2.7755575615628915e-18, 0.15000000000000002], [0.05, 0.15000000000000002], [0.1, 0.15], [0.15000000000000002, 0.15000000000000002], [0.19999999999999998, 0.15], [0.25, 0.15000000000000002], [0.30000000000000004, 0.15], [0.35000000000000003, 0.15000000000000002], [0.39999999999999997, 0.15], [0.45, 0.15000000000000002], [0.49999999999999994, 0.15], [0.55, 0.15000000000000002], [0.6, 0.15], [0.65, 0.15000000000000002], [0.7, 0.15], [0.75, 0.15000000000000002], [0.7999999999999999, 0.15], [0.8500000000000001, 0.15000000000000002], [0.8999999999999999, 0.15], [0.9500000000000001, 0.15000000000000002], [0.9999999999999999, 0.15], [1.0771140357880435e-18, 0.17500000000000002], [0.05, 0.175], [0.1, 0.17500000000000002], [0.15000000000000002, 0.175], [0.2, 0.17500000000000002], [0.24999999999999997, 0.175], [0.30000000000000004, 0.17500000000000002], [0.35, 0.175], [0.4, 0.17500000000000002], [0.44999999999999996, 0.175], [0.5, 0.17500000000000002], [0.55, 0.175], [0.6000000000000001, 0.17500000000000002], [0.6499999999999999, 0.175], [0.7000000000000001, 0.17500000000000002], [0.7499999999999999, 0.175], [0.8, 0.17500000000000002], [0.85, 0.175], [0.9, 0.17500000000000002], [0.95, 0.175], [1.0, 0.17500000000000002], [-2.7755575615628915e-18, 0.19999999999999998], [0.05, 0.2], [0.1, 0.19999999999999998], [0.15000000000000002, 0.2], [0.19999999999999998, 0.19999999999999998], [0.25, 0.2], [0.30000000000000004, 0.19999999999999998], [0.35000000000000003, 0.2], [0.39999999999999997, 0.19999999999999998], [0.45, 0.2], [0.49999999999999994, 0.19999999999999998], [0.55, 0.2], [0.6, 0.19999999999999998], [0.65, 0.2], [0.7, 0.19999999999999998], [0.75, 0.2], [0.7999999999999999, 0.19999999999999998], [0.8500000000000001, 0.2], [0.8999999999999999, 0.19999999999999998], [0.9500000000000001, 0.2], [0.9999999999999999, 0.19999999999999998]], "u": [[0.0, 0.0], [-0.009999999999998725, 7.673878992528958e-16], [-0.019999999999997596, 1.6885762264812899e-15], [-0.029999999999996526, 3.0349920993594067e-15], [-0.0399999999999955, 4.728310718694528e-15], [-0.04999999999999455, 6.8585068484359295e-15], [-0.059999999999993704, 9.27064842250053e-15], [-0.06999999999999296, 1.2005836427191356e-14], [-0.07999999999999224, 1.4946228805401996e-14], [-0.08999999999999163, 1.8115033866309405e-14], [-0.09999999999999111, 2.1398656841586656e-14], [-0.10999999999999059, 2.4766775603548626e-14], [-0.11999999999999006, 2.826329166779541e-14], [-0.12999999999998962, 3.1931704789901146e-14], [-0.13999999999998927, 3.5703779050373114e-14], [-0.149999999999989, 3.959681522643935e-14], [-0.15999999999998876, 4.3634986002895395e-14], [-0.1699999999999887, 4.774984392560297e-14], [-0.17999999999998859, 5.1910361413810204e-14], [-0.18999999999998857, 5.6115340669556704e-14], [-0.19999999999998852, 6.033687164201464e-14], [0.0, 0.00150000000000006], [-0.009999999999999091, 0.0015000000000005803], [-0.019999999999998144, 0.0015000000000015639], [-0.02999999999999726, 0.0015000000000028634], [-0.039999999999996434, 0.001500000000004623], [-0.049999999999995666, 0.0015000000000067097], [-0.05999999999999498, 0.0015000000000091834], [-0.06999999999999436, 0.001500000000011887], [-0.07999999999999376, 0.0015000000000148677], [-0.08999999999999321, 0.0015000000000180247], [-0.0999999999999927, 0.001500000000021331], [-0.1099999999999923, 0.001500000000024681], [-0.11999999999999189, 0.0015000000000282118], [-0.1299999999999915, 0.0015000000000318725], [-0.13999999999999124, 0.0015000000000356748], [-0.149999999999991, 0.0015000000000395571], [-0.1599999999999908, 0.0015000000000436231], [-0.1699999999999908, 0.00150000000004773], [-0.17999999999999072, 0.0015000000000519056], [-0.18999999999999068, 0.0015000000000561107], [-0.19999999999999066, 0.0015000000000603313], [0.0, 0.0030000000000000296], [-0.00999999999999934, 0.003000000000000525], [-0.019999999999998658, 0.003000000000001413], [-0.02999999999999798, 0.003000000000002779], [-0.03999999999999734, 0.0030000000000044904], [-0.04999999999999675, 0.0030000000000066393], [-0.05999999999999623, 0.0030000000000090753], [-0.0699999999999957, 0.0030000000000118196], [-0.07999999999999523, 0.0030000000000147734], [-0.08999999999999478, 0.0030000000000179605], [-0.09999999999999434, 0.00300000000002126], [-0.109999999999994, 0.0030000000000246466], [-0.11999999999999372, 0.0030000000000281486], [-0.12999999999999345, 0.0030000000000318418], [-0.1399999999999932, 0.0030000000000356382], [-0.14999999999999306, 0.0030000000000395635], [-0.15999999999999304, 0.003000000000043605], [-0.16999999999999293, 0.003000000000047709], [-0.17999999999999286, 0.0030000000000518987], [-0.18999999999999287, 0.003000000000056101], [-0.1999999999999928, 0.0030000000000603147], [0.0, 0.004500000000000078], [-0.0099999999999996, 0.004500000000000434], [-0.01999999999999914, 0.004500000000001369], [-0.029999999999998698, 0.004500000000002665], [-0.039999999999998245, 0.004500000000004437], [-0.04999999999999783, 0.004500000000006544], [-0.059999999999997444, 0.004500000000009019], [-0.06999999999999702, 0.004500000000011734], [-0.07999999999999667, 0.004500000000014724], [-0.08999999999999632, 0.00450000000001788], [-0.09999999999999593, 0.004500000000021217], [-0.10999999999999566, 0.0045000000000246015], [-0.1199999999999955, 0.004500000000028142], [-0.1299999999999953, 0.0045000000000318], [-0.13999999999999513, 0.004500000000035631], [-0.14999999999999508, 0.004500000000039558], [-0.15999999999999504, 0.004500000000043601], [-0.16999999999999504, 0.004500000000047683], [-0.17999999999999497, 0.004500000000051885], [-0.18999999999999495, 0.004500000000056096], [-0.19999999999999485, 0.004500000000060291], [0.0, 0.006000000000000064], [-0.009999999999999818, 0.0060000000000004486], [-0.019999999999999605, 0.0060000000000012925], [-0.029999999999999385, 0.006000000000002646], [-0.03999999999999915, 0.006000000000004352], [-0.04999999999999889, 0.006000000000006516], [-0.05999999999999866, 0.006000000000008942], [-0.0699999999999984, 0.0060000000000117034], [-0.07999999999999816, 0.006000000000014659], [-0.08999999999999789, 0.006000000000017847], [-0.09999999999999765, 0.006000000000021162], [-0.10999999999999746, 0.006000000000024581], [-0.11999999999999728, 0.006000000000028121], [-0.1299999999999972, 0.006000000000031807], [-0.1399999999999971, 0.006000000000035617], [-0.14999999999999705, 0.0060000000000395475], [-0.15999999999999692, 0.006000000000043591], [-0.1699999999999971, 0.0060000000000477], [-0.17999999999999702, 0.006000000000051873], [-0.189999999999997, 0.006000000000056077], [-0.19999999999999696, 0.006000000000060271], [0.0, 0.00750000000000013], [-0.010000000000000056, 0.00750000000000042], [-0.02000000000000008, 0.007500000000001318], [-0.030000000000000075, 0.007500000000002593], [-0.040000000000000036, 0.007500000000004356], [-0.04999999999999999, 0.007500000000006457], [-0.05999999999999988, 0.007500000000008927], [-0.06999999999999974, 0.007500000000011657], [-0.07999999999999964, 0.0075000000000146425], [-0.08999999999999947, 0.007500000000017802], [-0.09999999999999935, 0.007500000000021156], [-0.10999999999999924, 0.00750000000002455], [-0.11999999999999919, 0.0075000000000281265], [-0.12999999999999912, 0.0075000000000318015], [-0.1399999999999991, 0.007500000000035627], [-0.14999999999999908, 0.007500000000039526], [-0.15999999999999912, 0.007500000000043589], [-0.16999999999999918, 0.0075000000000477116], [-0.17999999999999916, 0.007500000000051855], [-0.1899999999999991, 0.0075000000000560625], [-0.19999999999999907, 0.0075000000000602805], [0.0, 0.009000000000000143], [-0.010000000000000286, 0.009000000000000492], [-0.02000000000000054, 0.009000000000001313], [-0.03000000000000077, 0.009000000000002643], [-0.04000000000000095, 0.009000000000004331], [-0.050000000000001085, 0.009000000000006461], [-0.060000000000001136, 0.009000000000008892], [-0.07000000000000113, 0.00900000000001166], [-0.0800000000000011, 0.009000000000014613], [-0.09000000000000104, 0.009000000000017798], [-0.10000000000000094, 0.009000000000021158], [-0.11000000000000099, 0.009000000000024579], [-0.12000000000000102, 0.009000000000028124], [-0.130000000000001, 0.009000000000031816], [-0.14000000000000104, 0.009000000000035636], [-0.15000000000000108, 0.009000000000039554], [-0.1600000000000012, 0.009000000000043586], [-0.17000000000000123, 0.009000000000047713], [-0.18000000000000127, 0.009000000000051842], [-0.19000000000000125, 0.009000000000056064], [-0.20000000000000126, 0.009000000000060277], [0.0, 0.010500000000000254], [-0.010000000000000535, 0.010500000000000521], [-0.020000000000001024, 0.010500000000001404], [-0.030000000000001477, 0.01050000000000266], [-0.04000000000000185, 0.010500000000004396], [-0.050000000000002175, 0.010500000000006454], [-0.06000000000000238, 0.010500000000008922], [-0.0700000000000025, 0.010500000000011651], [-0.08000000000000258, 0.010500000000014628], [-0.09000000000000265, 0.010500000000017776], [-0.10000000000000268, 0.01050000000002118], [-0.11000000000000275, 0.010500000000024589], [-0.12000000000000287, 0.010500000000028148], [-0.1300000000000029, 0.01050000000003182], [-0.14000000000000298, 0.010500000000035651], [-0.15000000000000296, 0.010500000000039571], [-0.16000000000000308, 0.010500000000043603], [-0.17000000000000323, 0.010500000000047712], [-0.18000000000000327, 0.010500000000051845], [-0.1900000000000033, 0.01050000000005606], [-0.20000000000000337, 0.01050000000006029], [0.0, 0.012000000000000318], [-0.0100000000000008, 0.012000000000000656], [-0.02000000000000154, 0.012000000000001457], [-0.0300000000000022, 0.012000000000002769], [-0.04000000000000277, 0.012000000000004432], [-0.050000000000003264, 0.012000000000006526], [-0.060000000000003655, 0.012000000000008932], [-0.0700000000000039, 0.012000000000011692], [-0.0800000000000041, 0.012000000000014626], [-0.09000000000000428, 0.01200000000001781], [-0.10000000000000443, 0.012000000000021183], [-0.1100000000000045, 0.012000000000024609], [-0.12000000000000464, 0.012000000000028158], [-0.13000000000000475, 0.01200000000003185], [-0.1400000000000049, 0.012000000000035656], [-0.150000000000005, 0.01200000000003959], [-0.16000000000000508, 0.012000000000043606], [-0.17000000000000529, 0.012000000000047733], [-0.18000000000000535, 0.012000000000051839], [-0.19000000000000547, 0.012000000000056068], [-0.2000000000000055, 0.012000000000060317]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/sofa_scene.py new file mode 100644 index 0000000..d329795 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/sofa_scene.py @@ -0,0 +1,106 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.geometry import Beam2D +from common.sofa.conventions import ELEMENTS, VEC_DIM +from common.sofa.controllers import RegionClamp +from common.sofa.prefabs import ElasticBeam + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Beam2D(length=case['geometry']['length'], width=case['geometry']['width']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers']} + beam = root.addChild(ElasticBeam(name='ElasticBeam', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + beam.Grid.grid.init() + rest_positions = beam.Grid.grid.position.array()[:, :2] + left_nodes = set(geometry.region_indices('left', rest_positions)) + bottom_nodes = set(geometry.region_indices('bottom', rest_positions)) + corner = sorted(left_nodes & bottom_nodes) + right_nodes = geometry.region_indices('right', rest_positions) + right_edges = [[right_nodes[k], right_nodes[k + 1]] for k in range(len(right_nodes) - 1)] + + with beam.mechanical_node() as mechanical: + # Fix the axial displacement along x = 0, leaving it free to contract laterally. + # Pin the lateral displacement at the corner to remove the remaining rigid-body mode. + mechanical.addObject(RegionClamp(geometry=geometry, dofs=mechanical.dofs, node=mechanical, + prescribe_displacement_on={'left': [1, 0]}, + vec_type=VEC_DIM[geometry.spatial_dimensions], name='clampCtrl')) + mechanical.addObject('PartialFixedProjectiveConstraint', name='pinCorner', + template=VEC_DIM[geometry.spatial_dimensions], + indices=corner, fixedDirections=[0, 1]) + + with mechanical.addChild('LoadedEdge') as loaded_edge: + loaded_edge.addObject('EdgeSetTopologyContainer', name='edges', edges=right_edges) + loaded_edge.addObject('NodalSourceDensity', name='loadDensity', template='Vec2d', + property=[[-case['load']['magnitude'], 0.0]]) + loaded_edge.addObject('VectorSourceTerm', name='traction', template='Vec2d,Edge', + sourceDensity='@loadDensity') + loaded_edge.addObject('FEMSourceTermIntegrator', name='load', template='Vec2d,Edge', + topology='@edges', quadratureDegree=1, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :2].copy() + u = mechanical.dofs.position.array()[:, :2] - x0 + cells = getattr(mechanical.topology, ELEMENTS[case['element']].data_name).array().copy() + return x0, u, cells + + +def main(case): + x, u, cells = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/case.json b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/case.json new file mode 100644 index 0000000..95d217c --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/case.json @@ -0,0 +1,37 @@ +{ + "quad": { + "geometry": { "type": "Beam2D", "length": 1.0, "width": 0.2 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [21, 9, 1] }, + "load": { "type": "distributedTransverseTraction", "magnitude": 1.0 }, + "tolerance": { "rms": 1e-10 } + }, + "tri": { + "geometry": { "type": "Beam2D", "length": 1.0, "width": 0.2 }, + "element": "tri", + "swapping": true, + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [21, 9, 1] }, + "load": { "type": "distributedTransverseTraction", "magnitude": 1.0 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/fenics_scene.py new file mode 100644 index 0000000..94014d4 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/fenics_scene.py @@ -0,0 +1,90 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem + +from common.fenics import BeamMesh +from common.geometry import Beam2D + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + geometry = Beam2D(length=case['geometry']['length'], width=case['geometry']['width']) + grid = BeamMesh(geometry, case['mesh']['resolution'], element=case['element'], + swapping=case.get('swapping', True)) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1, (2,))) + + # Plane stress: SOFA's reduction of isotropic elasticity to dim=2 (LameParameters.h). + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(2) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + top_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[1], geometry.width)) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, top_facets, + np.full_like(top_facets, 1, dtype=np.int32)) + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags) + + traction = fem.Constant(domain, default_scalar_type((0.0, -case['load']['magnitude']))) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + clamped = fem.locate_dofs_geometrical(V, lambda x: np.isclose(x[0], 0.0)) + bc = fem.dirichletbc(np.zeros(2, dtype=default_scalar_type), clamped, V) + + return grid, V, a, L, bc + + +def solve(case): + grid, V, a, L, bc = build(case) + + problem = LinearProblem(a, L, bcs=[bc], petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + coords = V.tabulate_dof_coordinates()[:, :2] + values = solution.x.array.reshape(-1, 2) + return coords[grid.inverse], values[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/reference_solution.json new file mode 100644 index 0000000..b536a66 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/reference_solution.json @@ -0,0 +1 @@ +{"quad": {"fenics": {"x": [[2.7755575615628915e-18, 6.938893903907229e-19], [0.05, 6.938893903907229e-19], [0.1, 6.938893903907229e-19], [0.15, 6.938893903907229e-19], [0.2, 6.938893903907229e-19], [0.25, 6.938893903907229e-19], [0.3, 6.938893903907229e-19], [0.35, 6.938893903907229e-19], [0.39999999999999997, 6.938893903907229e-19], [0.44999999999999996, 6.938893903907229e-19], [0.5, 6.938893903907229e-19], [0.5499999999999999, 6.938893903907229e-19], [0.6, 6.938893903907229e-19], [0.6499999999999999, 6.938893903907229e-19], [0.7, 6.938893903907229e-19], [0.7499999999999999, 6.938893903907229e-19], [0.7999999999999999, 6.938893903907229e-19], [0.85, 6.938893903907229e-19], [0.8999999999999999, 6.938893903907229e-19], [0.95, 6.938893903907229e-19], [1.0000000000000002, -6.938893903907229e-19], [2.7755575615628915e-18, 0.025], [0.05, 0.025], [0.1, 0.025], [0.15, 0.025], [0.2, 0.025], [0.25, 0.025], [0.3, 0.025], [0.35, 0.025], [0.39999999999999997, 0.025], [0.44999999999999996, 0.025], [0.5, 0.025], [0.5499999999999999, 0.025], [0.6, 0.025], [0.6499999999999999, 0.025], [0.7, 0.025], [0.7499999999999999, 0.025], [0.7999999999999999, 0.025], [0.85, 0.025], [0.8999999999999999, 0.025], [0.95, 0.025], [1.0000000000000002, 0.025], [2.7755575615628915e-18, 0.05], [0.05, 0.05], [0.1, 0.05], [0.15, 0.05], [0.2, 0.05], [0.25, 0.05], [0.3, 0.05], [0.35, 0.05], [0.39999999999999997, 0.05], [0.44999999999999996, 0.05], [0.5, 0.05], [0.5499999999999999, 0.05], [0.6, 0.05], [0.6499999999999999, 0.05], [0.7, 0.05], [0.7499999999999999, 0.05], [0.7999999999999999, 0.05], [0.85, 0.05], [0.8999999999999999, 0.05], [0.95, 0.05], [1.0000000000000002, 0.05], [2.7755575615628915e-18, 0.075], [0.05, 0.075], [0.1, 0.075], [0.15, 0.075], [0.2, 0.075], [0.25, 0.075], [0.3, 0.075], [0.35, 0.075], [0.39999999999999997, 0.075], [0.44999999999999996, 0.075], [0.5, 0.075], [0.5499999999999999, 0.075], [0.6, 0.075], [0.6499999999999999, 0.075], [0.7, 0.075], [0.7499999999999999, 0.075], [0.7999999999999999, 0.075], [0.85, 0.075], [0.8999999999999999, 0.075], [0.95, 0.075], [1.0000000000000002, 0.07500000000000002], [2.7755575615628915e-18, 0.1], [0.05, 0.1], [0.1, 0.1], [0.15, 0.1], [0.2, 0.1], [0.25, 0.1], [0.3, 0.1], [0.35, 0.1], [0.39999999999999997, 0.1], [0.44999999999999996, 0.1], [0.5, 0.1], [0.5499999999999999, 0.1], [0.6, 0.1], [0.6499999999999999, 0.1], [0.7, 0.1], [0.7499999999999999, 0.1], [0.7999999999999999, 0.1], [0.85, 0.1], [0.8999999999999999, 0.1], [0.95, 0.1], [1.0000000000000002, 0.1], [2.7755575615628915e-18, 0.125], [0.05, 0.125], [0.1, 0.125], [0.15, 0.125], [0.2, 0.125], [0.25, 0.125], [0.3, 0.125], [0.35, 0.125], [0.39999999999999997, 0.125], [0.44999999999999996, 0.125], [0.5, 0.125], [0.5499999999999999, 0.125], [0.6, 0.125], [0.6499999999999999, 0.125], [0.7, 0.125], [0.7499999999999999, 0.125], [0.7999999999999999, 0.125], [0.85, 0.125], [0.8999999999999999, 0.125], [0.95, 0.125], [1.0000000000000002, 0.12500000000000003], [2.7755575615628915e-18, 0.15], [0.05, 0.15], [0.1, 0.15], [0.15, 0.15], [0.2, 0.15], [0.25, 0.15], [0.3, 0.15], [0.35, 0.15], [0.39999999999999997, 0.15], [0.44999999999999996, 0.15], [0.5, 0.15], [0.5499999999999999, 0.15], [0.6, 0.15], [0.6499999999999999, 0.15], [0.7, 0.15], [0.7499999999999999, 0.15], [0.7999999999999999, 0.15], [0.85, 0.15], [0.8999999999999999, 0.15], [0.95, 0.15], [1.0000000000000002, 0.15000000000000005], [2.7755575615628915e-18, 0.175], [0.05, 0.175], [0.1, 0.175], [0.15, 0.175], [0.2, 0.175], [0.25, 0.175], [0.3, 0.175], [0.35, 0.175], [0.39999999999999997, 0.175], [0.44999999999999996, 0.175], [0.5, 0.175], [0.5499999999999999, 0.175], [0.6, 0.175], [0.6499999999999999, 0.175], [0.7, 0.175], [0.7499999999999999, 0.175], [0.7999999999999999, 0.175], [0.85, 0.175], [0.8999999999999999, 0.175], [0.95, 0.175], [1.0000000000000002, 0.17500000000000004], [-2.7755575615628915e-18, 0.20000000000000004], [0.05, 0.20000000000000004], [0.1, 0.20000000000000004], [0.15000000000000005, 0.20000000000000004], [0.2, 0.20000000000000004], [0.25000000000000006, 0.20000000000000004], [0.3000000000000001, 0.20000000000000004], [0.3500000000000001, 0.20000000000000004], [0.4000000000000001, 0.20000000000000004], [0.45000000000000007, 0.20000000000000004], [0.5000000000000001, 0.20000000000000004], [0.5500000000000002, 0.20000000000000004], [0.6000000000000002, 0.20000000000000004], [0.6500000000000001, 0.20000000000000004], [0.7000000000000002, 0.20000000000000004], [0.7500000000000001, 0.20000000000000004], [0.8000000000000002, 0.20000000000000004], [0.8500000000000002, 0.20000000000000004], [0.9000000000000001, 0.20000000000000004], [0.9500000000000002, 0.20000000000000004], [0.9999999999999999, 0.19999999999999998]], "u": [[0.0, 0.0], [-0.0036057371813227037, -0.002195403388800448], [-0.006656036335960886, -0.005268755073796433], [-0.009441620320989556, -0.009806411439493757], [-0.011925071081088865, -0.015632583843892683], [-0.014115151156697115, -0.022605589676692996], [-0.016030533386950138, -0.030579307421682286], [-0.0176898224317069, -0.03942149587300768], [-0.01911146796297658, -0.04900869608757359], [-0.02031374207624348, -0.05922672643198496], [-0.021314918218930026, -0.06997046978764519], [-0.02213327319551171, -0.08114394735050261], [-0.02278708787636537, -0.09266031732385092], [-0.023294644278418604, -0.10444187957342274], [-0.023674224939270155, -0.11642007547229974], [-0.023944112031769108, -0.12853548886507618], [-0.024122581141749908, -0.1407378446001078], [-0.024227887715890243, -0.15298598059742727], [-0.024278360481000322, -0.16524771623392087], [-0.024293472684911582, -0.17750013509036966], [-0.024294816587517372, -0.18973546877804398], [0.0, 0.0], [-0.0024189706317287907, -0.0016920320254161165], [-0.0048248280293476655, -0.00489397965815072], [-0.006920823791096782, -0.009457670792493138], [-0.00879071735611807, -0.015326821577478552], [-0.010440251048070094, -0.0223364301054345], [-0.011884085673705757, -0.030345103035002124], [-0.013135902868230293, -0.039219646827367886], [-0.014209470608311691, -0.04883684705145112], [-0.015118501608708354, -0.05908246950500047], [-0.015876706887233354, -0.06985140827561753], [-0.01649779613042326, -0.08104768141932944], [-0.016995480260088767, -0.09258444759162139], [-0.017383470757595172, -0.10438400645919997], [-0.01767547927676985, -0.1163777994097581], [-0.017885217426440468, -0.12850641015103378], [-0.01802639676343561, -0.14071956415617934], [-0.018112731890421147, -0.15297610176309262], [-0.018157971487600465, -0.16524385017967758], [-0.01817569362544442, -0.17749989797321644], [-0.01817929631656178, -0.18973530088266877], [0.0, 0.0], [-0.0015353235349831304, -0.0014094772459660094], [-0.0031138905667190708, -0.004601472688587557], [-0.004534887139620393, -0.00921281574888433], [-0.0057823363007050285, -0.015108959502563947], [-0.006883763614342477, -0.022145739370724494], [-0.007848040430828533, -0.03017907202006665], [-0.008684478410403427, -0.03907676198756588], [-0.009402080123368206, -0.04871537962447449], [-0.010009985827566225, -0.05898071470357331], [-0.010517337288401225, -0.06976765015224289], [-0.0109332770298805, -0.080980206192063], [-0.011266946491038434, -0.09253154108155834], [-0.011527486836566079, -0.10434395471679031], [-0.01172403908269458, -0.11634888843675978], [-0.011865745067296481, -0.12848692508554357], [-0.01196175246982166, -0.14070778754522792], [-0.012021215421478652, -0.1529703261043713], [-0.012053136417536612, -0.16524250321804324], [-0.012065640326916443, -0.17750183154607502], [-0.01206727900627139, -0.18973598264389754], [0.0, 0.0], [-0.0007493071633410548, -0.0012683181189606547], [-0.0015251527607340466, -0.004430281829004906], [-0.002235492190193951, -0.009066515944459416], [-0.0028583678750475207, -0.014983054443800653], [-0.003405949497962306, -0.02203539298612353], [-0.0038856170292974825, -0.030083590419177287], [-0.004301389123304947, -0.038995109206128045], [-0.00465776533721604, -0.04864658412214342], [-0.0049592874128297415, -0.058923745959570895], [-0.0052105289544078824, -0.06972148084805617], [-0.00541606318169784, -0.08094380683681107], [-0.005580461906789182, -0.09250388308421179], [-0.005708296023823023, -0.10432400960126978], [-0.005804136083931451, -0.11633562777121687], [-0.005872553415993352, -0.12847931919429914], [-0.00591812532111292, -0.14070480304466962], [-0.0059454292106322325, -0.15297094858343577], [-0.005958862421962604, -0.16524592756965498], [-0.005962198311724367, -0.17750749502559465], [-0.005959739559579705, -0.1897400948412244], [0.0, 0.0], [-1.737333949533234e-07, -0.0012300841774180525], [6.7995798863666435e-06, -0.004381834580232589], [1.592814277017836e-05, -0.009025705343262554], [2.4543832842278807e-05, -0.014949450937212125], [3.244267833396909e-05, -0.02200694099174788], [4.0025509873088293e-05, -0.030059950825416352], [4.7522154885655804e-05, -0.0389760772710961], [5.500854818478542e-05, -0.04863182879753776], [6.250111022429062e-05, -0.05891293594898187], [6.999855949354342e-05, -0.06971427135819473], [7.749807065183811e-05, -0.08093985459816967], [8.499812665042253e-05, -0.09250284473778161], [9.249822566906756e-05, -0.10432554224270661], [9.999827617041263e-05, -0.11633938853355681], [0.00010749829246413668, -0.1284849647419557], [0.00011499829521346309, -0.14071198792761727], [0.0001224982946326782, -0.15297933941247566], [0.00012999829392627976, -0.165255284308165], [0.00013749829359878485, -0.1775176378005713], [0.0001449982934985508, -0.18974956818529815], [0.0, 0.0], [0.0007495530026773068, -0.0012842466980340392], [0.0015397898476343813, -0.004454645525014159], [0.002268063457307136, -0.009092602434174788], [0.0029076943483764663, -0.015008731401473848], [0.003470870047248086, -0.02206063796716963], [0.003965661541770393, -0.03010864590536303], [0.004396423554234699, -0.03902010813985109], [0.004767777803885633, -0.048671576119690196], [0.005084288183196317, -0.058948741383604585], [0.005350525861804381, -0.069746479247647], [0.005571059391034663, -0.08096880651350678], [0.005750458229277086, -0.09252888311056806], [0.005893292506424611, -0.1043490096602759], [0.006004132645324601, -0.11636062780230094], [0.006087550002009445, -0.12850431920458014], [0.006148121910958965, -0.1407298030465132], [0.00619042579940818, -0.1529959485831343], [0.006218859009603022, -0.1652709275692324], [0.006237194898854139, -0.17753249502538163], [0.006249736146552319, -0.18976509484108461], [0.0, 0.0], [0.0015377519882755412, -0.0014427582614540814], [0.003131877410037182, -0.0046507764567164855], [0.004569390688917143, -0.00926472037544676], [0.005832194494161285, -0.015160088818627016], [0.006948761621158179, -0.022196162284794454], [0.007928055102957769, -0.030229164652875996], [0.00877948567819247, -0.03912676012524397], [0.00951208045993656, -0.048765365836714064], [0.010134983193037284, -0.05903070690916317], [0.010657333822737636, -0.06981764742816413], [0.011088273481838103, -0.08103020564669404], [0.011436943005649704, -0.09258154112840287], [0.011712483399319032, -0.10439395481792779], [0.011924035665184105, -0.11639888848976661], [0.012080741654890485, -0.12853692510301654], [0.012191749057746391, -0.1407577875483347], [0.012266212008910893, -0.1530203261038442], [0.012313133004638219, -0.16529250321731973], [0.012340636913889126, -0.1775518315457063], [0.01235727559319492, -0.18978598264366428], [0.0, 0.0], [0.002427070384762057, -0.0017460991290046517], [0.004849100770892137, -0.0049687975231677865], [0.006957353321603035, -0.00953467412968472], [0.008841085487464886, -0.01540313701623697], [0.010505253098235887, -0.02241191566871472], [0.011964036651676103, -0.03042021407619744], [0.013230871747617702, -0.039294645611881486], [0.01431945710800501, -0.04891183156932232], [0.015243496009363398, -0.059157460539783276], [0.016016703552732443, -0.0699264051124248], [0.016652793057884075, -0.08112268076977201], [0.017165477036361506, -0.09265944763755186], [0.017568467409694227, -0.10445900657361976], [0.017875475876421965, -0.1164527994707347], [0.018100214012053445, -0.12858141017138064], [0.01825639334788387, -0.140794564159901], [0.018357728476076078, -0.15305110176253905], [0.018417968074114575, -0.16531885017885653], [0.01845069021228732, -0.17757489797278192], [0.01846929290346541, -0.18981030088240253], [0.0, 0.0], [0.0036334083984211635, -0.002276856458189507], [0.006685357455639717, -0.005367038306650709], [0.009479308343712156, -0.009908193838504385], [0.011975421025310717, -0.015733785118342267], [0.014179982867076711, -0.022706080191264463], [0.016110386666275563, -0.030679427481503298], [0.01778475689992693, -0.03952150132983372], [0.019221447517213344, -0.04910868283452443], [0.020438737019823586, -0.05932671798594439], [0.021454916143763703, -0.0700704666024718], [0.022288270788016772, -0.08124394662406842], [0.022957084873217192, -0.09276031732624895], [0.023479640970242643, -0.1045418796729809], [0.023874221532495517, -0.11652007553035341], [0.02415910860825314, -0.12863548888572843], [0.024352577721708703, -0.14083784460439902], [0.024472884300140434, -0.15308598059716688], [0.024538357067283967, -0.1653477162331929], [0.02456846927177857, -0.1776001350899426], [0.024584813174458778, -0.18983546877777607]]}}, "tri": {"fenics": {"x": [[-1.0771140357880435e-18, 2.2370005436688698e-18], [0.05, 0.0], [0.1, -5.385570178940217e-19], [0.15000000000000002, 0.0], [0.20000000000000004, -5.385570178940217e-19], [0.25, 0.0], [0.30000000000000004, -5.385570178940217e-19], [0.35000000000000003, 0.0], [0.4000000000000001, -5.385570178940217e-19], [0.45, 0.0], [0.5, -5.385570178940217e-19], [0.55, 0.0], [0.6000000000000002, -5.385570178940217e-19], [0.65, 0.0], [0.7000000000000002, -5.385570178940217e-19], [0.75, 0.0], [0.8000000000000002, -5.385570178940217e-19], [0.8500000000000001, 0.0], [0.9000000000000001, -5.385570178940217e-19], [0.9500000000000001, 0.0], [1.0, -5.385570178940217e-19], [1.0771140357880435e-18, 0.025], [0.05, 0.025], [0.1, 0.025], [0.15000000000000002, 0.025], [0.2, 0.025], [0.24999999999999997, 0.025], [0.30000000000000004, 0.025], [0.35, 0.025], [0.4, 0.025], [0.44999999999999996, 0.025], [0.5, 0.025], [0.55, 0.025], [0.6000000000000001, 0.025], [0.6499999999999999, 0.025], [0.7000000000000001, 0.025], [0.7499999999999999, 0.025], [0.8, 0.025], [0.85, 0.025], [0.9, 0.025], [0.95, 0.025], [1.0, 0.025], [-2.7755575615628915e-18, 0.05], [0.05, 0.05], [0.1, 0.049999999999999996], [0.15000000000000002, 0.05], [0.19999999999999998, 0.049999999999999996], [0.25, 0.05], [0.30000000000000004, 0.049999999999999996], [0.35000000000000003, 0.05], [0.39999999999999997, 0.049999999999999996], [0.45, 0.05], [0.49999999999999994, 0.049999999999999996], [0.55, 0.05], [0.6, 0.049999999999999996], [0.65, 0.05], [0.7, 0.049999999999999996], [0.75, 0.05], [0.7999999999999999, 0.049999999999999996], [0.8500000000000001, 0.05], [0.8999999999999999, 0.049999999999999996], [0.9500000000000001, 0.05], [0.9999999999999999, 0.049999999999999996], [1.0771140357880435e-18, 0.07500000000000001], [0.05, 0.07500000000000001], [0.1, 0.07500000000000001], [0.15000000000000002, 0.07500000000000001], [0.2, 0.07500000000000001], [0.24999999999999997, 0.07500000000000001], [0.30000000000000004, 0.07500000000000001], [0.35, 0.07500000000000001], [0.4, 0.07500000000000001], [0.44999999999999996, 0.07500000000000001], [0.5, 0.07500000000000001], [0.55, 0.07500000000000001], [0.6000000000000001, 0.07500000000000001], [0.6499999999999999, 0.07500000000000001], [0.7000000000000001, 0.07500000000000001], [0.7499999999999999, 0.07500000000000001], [0.8, 0.07500000000000001], [0.85, 0.07500000000000001], [0.9, 0.07500000000000001], [0.95, 0.07500000000000001], [1.0, 0.07500000000000001], [-2.7755575615628915e-18, 0.09999999999999999], [0.05, 0.1], [0.1, 0.09999999999999999], [0.15000000000000002, 0.1], [0.19999999999999998, 0.09999999999999999], [0.25, 0.1], [0.30000000000000004, 0.09999999999999999], [0.35000000000000003, 0.1], [0.39999999999999997, 0.09999999999999999], [0.45, 0.1], [0.49999999999999994, 0.09999999999999999], [0.55, 0.1], [0.6, 0.09999999999999999], [0.65, 0.1], [0.7, 0.09999999999999999], [0.75, 0.1], [0.7999999999999999, 0.09999999999999999], [0.8500000000000001, 0.1], [0.8999999999999999, 0.09999999999999999], [0.9500000000000001, 0.1], [0.9999999999999999, 0.09999999999999999], [1.0771140357880435e-18, 0.125], [0.05, 0.12499999999999999], [0.1, 0.125], [0.15000000000000002, 0.12499999999999999], [0.2, 0.125], [0.24999999999999997, 0.12499999999999999], [0.30000000000000004, 0.125], [0.35, 0.12499999999999999], [0.4, 0.125], [0.44999999999999996, 0.12499999999999999], [0.5, 0.125], [0.55, 0.12499999999999999], [0.6000000000000001, 0.125], [0.6499999999999999, 0.12499999999999999], [0.7000000000000001, 0.125], [0.7499999999999999, 0.12499999999999999], [0.8, 0.125], [0.85, 0.12499999999999999], [0.9, 0.125], [0.95, 0.12499999999999999], [1.0, 0.125], [-2.7755575615628915e-18, 0.15000000000000002], [0.05, 0.15000000000000002], [0.1, 0.15], [0.15000000000000002, 0.15000000000000002], [0.19999999999999998, 0.15], [0.25, 0.15000000000000002], [0.30000000000000004, 0.15], [0.35000000000000003, 0.15000000000000002], [0.39999999999999997, 0.15], [0.45, 0.15000000000000002], [0.49999999999999994, 0.15], [0.55, 0.15000000000000002], [0.6, 0.15], [0.65, 0.15000000000000002], [0.7, 0.15], [0.75, 0.15000000000000002], [0.7999999999999999, 0.15], [0.8500000000000001, 0.15000000000000002], [0.8999999999999999, 0.15], [0.9500000000000001, 0.15000000000000002], [0.9999999999999999, 0.15], [1.0771140357880435e-18, 0.17500000000000002], [0.05, 0.175], [0.1, 0.17500000000000002], [0.15000000000000002, 0.175], [0.2, 0.17500000000000002], [0.24999999999999997, 0.175], [0.30000000000000004, 0.17500000000000002], [0.35, 0.175], [0.4, 0.17500000000000002], [0.44999999999999996, 0.175], [0.5, 0.17500000000000002], [0.55, 0.175], [0.6000000000000001, 0.17500000000000002], [0.6499999999999999, 0.175], [0.7000000000000001, 0.17500000000000002], [0.7499999999999999, 0.175], [0.8, 0.17500000000000002], [0.85, 0.175], [0.9, 0.17500000000000002], [0.95, 0.175], [1.0, 0.17500000000000002], [-2.7755575615628915e-18, 0.19999999999999998], [0.05, 0.2], [0.1, 0.19999999999999998], [0.15000000000000002, 0.2], [0.19999999999999998, 0.19999999999999998], [0.25, 0.2], [0.30000000000000004, 0.19999999999999998], [0.35000000000000003, 0.2], [0.39999999999999997, 0.19999999999999998], [0.45, 0.2], [0.49999999999999994, 0.19999999999999998], [0.55, 0.2], [0.6, 0.19999999999999998], [0.65, 0.2], [0.7, 0.19999999999999998], [0.75, 0.2], [0.7999999999999999, 0.19999999999999998], [0.8500000000000001, 0.2], [0.8999999999999999, 0.19999999999999998], [0.9500000000000001, 0.2], [0.9999999999999999, 0.19999999999999998]], "u": [[0.0, 0.0], [-0.003337344593241515, -0.00204144674394039], [-0.006249023471473321, -0.004952246052490951], [-0.00885227240236816, -0.009335641698770679], [-0.011201396584483672, -0.014753055624945341], [-0.013253608712536613, -0.02140715509407632], [-0.01507060828104854, -0.028861669713813185], [-0.0166247481400039, -0.03725716822456149], [-0.017974790191299213, -0.046247222052781006], [-0.019099583123242805, -0.05592062141069046], [-0.02005171213144372, -0.0660126880504221], [-0.020816142395053885, -0.07657021925286212], [-0.02143930052051442, -0.08739984038966142], [-0.021912297214819066, -0.09851665012981015], [-0.02227541389842777, -0.10978828206005266], [-0.02252590587923456, -0.12120843698106136], [-0.022697908326474316, -0.1326954502425935], [-0.022794861498485617, -0.1442318958662331], [-0.022844953854685872, -0.15577636597685532], [-0.02285895451436713, -0.1673119414512988], [-0.022860680376658928, -0.1788293013754948], [0.0, 0.0], [-0.002251306549765101, -0.0015347358088781968], [-0.00449382183988848, -0.004681128772533759], [-0.006492828848104321, -0.008918975415549498], [-0.008247095963507556, -0.014544952550068819], [-0.009810459675870025, -0.021081946053994945], [-0.01116419822249204, -0.028702597594781932], [-0.012351252129426246, -0.03701334278615332], [-0.01335699390913798, -0.046130221342403695], [-0.01421988231088348, -0.0557465355715999], [-0.014929367005445105, -0.06593128488274477], [-0.015519808645297492, -0.07645424618905358], [-0.015984736735067753, -0.08734756352040027], [-0.016354429658184084, -0.09844716815565004], [-0.01662650072534554, -0.10975865856269353], [-0.016827145809873288, -0.12117382484655993], [-0.01695806033092224, -0.1326820099948231], [-0.01704136857056697, -0.14422051638031175], [-0.017082726633881364, -0.15577281866414572], [-0.01710010452091779, -0.16731155889247412], [-0.017103118896022545, -0.1788288194637426], [0.0, 0.0], [-0.0014676400431456015, -0.0014291810488880738], [-0.0029125546953804537, -0.004314509295632551], [-0.004242356046843436, -0.0087766608093138], [-0.005429154916131992, -0.0142571355428692], [-0.0064625391702810096, -0.02097416360936247], [-0.007376848620855406, -0.028483142281324536], [-0.008160452992772958, -0.03693294732958245], [-0.008841235754095489, -0.04596952001064365], [-0.009410151002095645, -0.05568945373532113], [-0.009892052632810273, -0.06582028816549058], [-0.010280722142202273, -0.07641660145295268], [-0.010598198068659609, -0.08727723651204758], [-0.01084108813552557, -0.09842507329344194], [-0.01102860611128739, -0.10971996342611239], [-0.011160185950430742, -0.12116339216547639], [-0.011252216822087496, -0.1326659166387956], [-0.011306870998703542, -0.1442179453172658], [-0.011337628110418264, -0.15577045803129289], [-0.011348688961795693, -0.16731361074940723], [-0.011349939581530046, -0.17882947851281478], [0.0, 0.0], [-0.0007002059586052083, -0.0011962134090855148], [-0.0014298588809748345, -0.004272669094825435], [-0.002094027875707137, -0.008545242921339121], [-0.0026795337706214638, -0.014220567942781634], [-0.003199672095816725, -0.020797085486751472], [-0.0036490934567947643, -0.028457186746365097], [-0.004043097863687546, -0.03680120970514131], [-0.004376590010090006, -0.04595201239987719], [-0.0046625722770831666, -0.05559641808731182], [-0.0048973291274812475, -0.06580993874036017], [-0.0050924881983461, -0.07635582856183391], [-0.00524573181805357, -0.08727274865751065], [-0.005367298106512876, -0.09839011126299718], [-0.005456264862708851, -0.10972003373346308], [-0.005521475353478635, -0.12114778860767175], [-0.0055633897784279854, -0.13266925816004702], [-0.005589442758912472, -0.14421533190110866], [-0.0056011775177003936, -0.1557760498228018], [-0.005604280710990054, -0.1673180500398772], [-0.005601745226179896, -0.1788344777327331], [0.0, 0.0], [8.177569770847779e-07, -0.0012729998967281903], [6.062699404123271e-06, -0.004126168556700616], [1.4989706611454117e-05, -0.00860284854224706], [2.3396253661157293e-05, -0.014105145996972934], [3.1363549024849696e-05, -0.02084424232722222], [3.907816863354757e-05, -0.028371388062728927], [4.6610420676901994e-05, -0.03683928607773919], [5.412010576597333e-05, -0.045891314527249566], [6.161387542026982e-05, -0.05562677852097707], [6.911024960975833e-05, -0.06577050701299254], [7.660854502637884e-05, -0.07637977625168474], [8.410776737519285e-05, -0.08725072208336533], [9.160765676634376e-05, -0.09840892902813364], [9.910762485097287e-05, -0.1097115437054862], [0.00010660764846045911, -0.12116275926207623], [0.00011410766204233373, -0.13267044681478835], [0.00012160766824994765, -0.1442277539549703], [0.00012910767109015377, -0.1557832794134648], [0.00013660767152155406, -0.16732916504037304], [0.00014410767171233583, -0.1788433935295838], [0.0, 0.0], [0.0006986791972379824, -0.0012115216175869951], [0.0014440720750077158, -0.004295783064571102], [0.002124379046185494, -0.008570712634601801], [0.002726588792767507, -0.01424612893775774], [0.003262579676548567, -0.020822444844732935], [0.003727232401770757, -0.028482315453423914], [0.004136334824294409, -0.03682625103731833], [0.004484821343010822, -0.04597701842995737], [0.004785798167541426, -0.055621415811042144], [0.005035548697363629, -0.0658349366070449], [0.005245704626304434, -0.07638082723964906], [0.005413947422278559, -0.0872977481917508], [0.005550513363835935, -0.09841511111666892], [0.00565448014493573, -0.10974503371343852], [0.005734690657562132, -0.12117278861682002], [0.005791605105794062, -0.1326942581680506], [0.005832658097817659, -0.1442403319059796], [0.00585939285959062, -0.15580104982451715], [0.00587749605420504, -0.1673430500404175], [0.005889960569352787, -0.17885947773268793], [0.0, 0.0], [0.001472302016214316, -0.0014610862646027153], [0.002928571383891277, -0.004361214111675016], [0.004274737508556273, -0.00882735016979217], [0.0054770805195888264, -0.014308283163208363], [0.006525651813318459, -0.02102471056139164], [0.007455065422549786, -0.028533387158788604], [0.008253670913123153, -0.03698301270505064], [0.008949458076102678, -0.046019529708676135], [0.009533369148657192, -0.0557394506795302], [0.010030269002889912, -0.06587028384039459], [0.010433937849620059, -0.07646659944283773], [0.01076641340176533, -0.08732723562751492], [0.011024303467091124, -0.09847507306137565], [0.011226821428215784, -0.10976996339456233], [0.011373401282819169, -0.12121339217793094], [0.011480432161123181, -0.1327159166549768], [0.011550086340123729, -0.14426794532467846], [0.011595843453204323, -0.15582045803455025], [0.011621904304599282, -0.16736361075025344], [0.011638154924434688, -0.17887947851271294], [0.0, 0.0], [0.0022573767270030443, -0.0015847347731523464], [0.0045155184870225755, -0.004751891346257094], [0.00652782676637879, -0.00899519297314387], [0.008295962071911286, -0.014621100620825656], [0.009873836581872856, -0.021157654473119146], [0.011242421712344096, -0.02877786508304889], [0.012444448664518921, -0.03708842137026365], [0.013465194860793239, -0.04620523472650089], [0.014343091000002809, -0.05582153073139235], [0.015067579980063067, -0.06600628057981583], [0.015673023426210592, -0.0765292435950809], [0.016152952060008084, -0.08742256255178621], [0.016537645073347127, -0.09852216787739138], [0.016824716121437235, -0.10983365851788578], [0.01704036117686147, -0.12124882486584512], [0.017186275682138718, -0.13275701001098883], [0.017284583915229752, -0.14429551638986243], [0.017340941976578178, -0.15584781866771358], [0.017373319863250324, -0.1673865588934982], [0.01739133423828995, -0.1789038194635692], [0.0, 0.0], [0.003360958310653459, -0.002114213426015091], [0.006278060933484811, -0.0050484058886332405], [0.008889750317641344, -0.009435986044714913], [0.011250744192498698, -0.014854236535539423], [0.013317005335154342, -0.021507781511583897], [0.01514874812949298, -0.02896193776054674], [0.01671789163897732, -0.03735725436727836], [0.018082967400530035, -0.04634723501256839], [0.019222783279207623, -0.05602061965949356], [0.020189923481459617, -0.06611268366713847], [0.02096935713800685, -0.07667021694812687], [0.02160751616143543, -0.08749983941877876], [0.0220955128263073, -0.09861664982221076], [0.022473629380848587, -0.10988828201680599], [0.02273912127685801, -0.12130843698905444], [0.022926123683287288, -0.13279545025904949], [0.023038076843135046, -0.14433189587476272], [0.023103169196149378, -0.15587636598043275], [0.023132169855809424, -0.16741194145238408], [0.02314889571824856, -0.17892930137527044]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/sofa_scene.py new file mode 100644 index 0000000..570815c --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction/sofa_scene.py @@ -0,0 +1,98 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.geometry import Beam2D +from common.sofa.conventions import ELEMENTS, VEC_DIM +from common.sofa.controllers import RegionClamp +from common.sofa.prefabs import ElasticBeam + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Beam2D(length=case['geometry']['length'], width=case['geometry']['width']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers']} + beam = root.addChild(ElasticBeam(name='ElasticBeam', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + beam.Grid.grid.init() + rest_positions = beam.Grid.grid.position.array()[:, :2] + top_nodes = geometry.region_indices('top', rest_positions) + top_edges = [[top_nodes[k], top_nodes[k + 1]] for k in range(len(top_nodes) - 1)] + + with beam.mechanical_node() as mechanical: + mechanical.addObject(RegionClamp(geometry=geometry, dofs=mechanical.dofs, node=mechanical, + prescribe_displacement_on={'left': [1, 1]}, + vec_type=VEC_DIM[geometry.spatial_dimensions], name='clampCtrl')) + + with mechanical.addChild('LoadedEdge') as loaded_edge: + loaded_edge.addObject('EdgeSetTopologyContainer', name='edges', edges=top_edges) + loaded_edge.addObject('NodalSourceDensity', name='loadDensity', template='Vec2d', + property=[[0.0, -case['load']['magnitude']]]) + loaded_edge.addObject('VectorSourceTerm', name='traction', template='Vec2d,Edge', + sourceDensity='@loadDensity') + loaded_edge.addObject('FEMSourceTermIntegrator', name='load', template='Vec2d,Edge', + topology='@edges', quadratureDegree=1, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :2].copy() + u = mechanical.dofs.position.array()[:, :2] - x0 + cells = getattr(mechanical.topology, ELEMENTS[case['element']].data_name).array().copy() + return x0, u, cells + + +def main(case): + x, u, cells = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/case.json b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/case.json new file mode 100644 index 0000000..2dc0784 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/case.json @@ -0,0 +1,37 @@ +{ + "quad": { + "geometry": { "type": "Beam2D", "length": 1.0, "width": 0.2 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [21, 9, 1] }, + "load": { "type": "concentratedTransverseForce", "magnitude": 5.0 }, + "tolerance": { "rms": 1e-10 } + }, + "tri": { + "geometry": { "type": "Beam2D", "length": 1.0, "width": 0.2 }, + "element": "tri", + "swapping": true, + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [21, 9, 1] }, + "load": { "type": "concentratedTransverseForce", "magnitude": 5.0 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/fenics_scene.py new file mode 100644 index 0000000..588f588 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/fenics_scene.py @@ -0,0 +1,111 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import apply_lifting, assemble_matrix, assemble_vector, set_bc + +from petsc4py import PETSc + +from common.fenics import BeamMesh +from common.geometry import Beam2D + + +def build(case): + geometry = Beam2D(length=case['geometry']['length'], width=case['geometry']['width']) + grid = BeamMesh(geometry, case['mesh']['resolution'], element=case['element'], + swapping=case.get('swapping', True)) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1, (2,))) + + # Plane stress: SOFA's reduction of isotropic elasticity to dim=2 (LameParameters.h). + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(2) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.inner(fem.Constant(domain, default_scalar_type((0.0, 0.0))), v) * ufl.dx + + length = geometry.length + Vx, _ = V.sub(0).collapse() + Vy, _ = V.sub(1).collapse() + rollers, _ = fem.locate_dofs_geometrical( + (V.sub(1), Vy), lambda x: (np.isclose(x[0], 0.0) | np.isclose(x[0], length)) & np.isclose(x[1], 0.0)) + bc_rollers = fem.dirichletbc(default_scalar_type(0.0), rollers, V.sub(1)) + + # Removes the rigid translation along x while keeping the solution symmetric about the midspan + anchor, _ = fem.locate_dofs_geometrical( + (V.sub(0), Vx), lambda x: np.isclose(x[0], length / 2) & np.isclose(x[1], 0.0)) + bc_anchor = fem.dirichletbc(default_scalar_type(0.0), anchor, V.sub(0)) + + # The point load is applied on the midspan. This restricts the use of an odd number of nodes. + midspan_dofs, _ = fem.locate_dofs_geometrical( + (V.sub(1), Vy), lambda x: np.isclose(x[0], length / 2) & np.isclose(x[1], geometry.width)) + load_dof = midspan_dofs[0] + + return grid, V, a, L, [bc_rollers, bc_anchor], load_dof + + +def solve(case): + grid, V, a, L, bcs, load_dof = build(case) + bilinear_form, linear_form = fem.form(a), fem.form(L) + + A = assemble_matrix(bilinear_form, bcs=bcs) + A.assemble() + b = assemble_vector(linear_form) + b.array[load_dof] -= case['load']['magnitude'] + + # Hijack the assemble/lift/scatter/set_bc sequence of LinearProblem to apply the singular point load + apply_lifting(b, [bilinear_form], bcs=[bcs]) + b.ghostUpdate(addv=PETSc.InsertMode.ADD_VALUES, mode=PETSc.ScatterMode.REVERSE) + set_bc(b, bcs) + + ksp = PETSc.KSP().create(V.mesh.comm) + ksp.setOperators(A) + ksp.setType('preonly') + ksp.getPC().setType('lu') + + solution = fem.Function(V) + ksp.solve(b, solution.x.petsc_vec) + + coords = V.tabulate_dof_coordinates()[:, :2] + values = solution.x.array.reshape(-1, 2) + return coords[grid.inverse], values[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/reference_solution.json new file mode 100644 index 0000000..659d0f1 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/reference_solution.json @@ -0,0 +1 @@ +{"quad": {"fenics": {"x": [[2.7755575615628915e-18, 6.938893903907229e-19], [0.05, 6.938893903907229e-19], [0.1, 6.938893903907229e-19], [0.15, 6.938893903907229e-19], [0.2, 6.938893903907229e-19], [0.25, 6.938893903907229e-19], [0.3, 6.938893903907229e-19], [0.35, 6.938893903907229e-19], [0.39999999999999997, 6.938893903907229e-19], [0.44999999999999996, 6.938893903907229e-19], [0.5, 6.938893903907229e-19], [0.5499999999999999, 6.938893903907229e-19], [0.6, 6.938893903907229e-19], [0.6499999999999999, 6.938893903907229e-19], [0.7, 6.938893903907229e-19], [0.7499999999999999, 6.938893903907229e-19], [0.7999999999999999, 6.938893903907229e-19], [0.85, 6.938893903907229e-19], [0.8999999999999999, 6.938893903907229e-19], [0.95, 6.938893903907229e-19], [1.0000000000000002, -6.938893903907229e-19], [2.7755575615628915e-18, 0.025], [0.05, 0.025], [0.1, 0.025], [0.15, 0.025], [0.2, 0.025], [0.25, 0.025], [0.3, 0.025], [0.35, 0.025], [0.39999999999999997, 0.025], [0.44999999999999996, 0.025], [0.5, 0.025], [0.5499999999999999, 0.025], [0.6, 0.025], [0.6499999999999999, 0.025], [0.7, 0.025], [0.7499999999999999, 0.025], [0.7999999999999999, 0.025], [0.85, 0.025], [0.8999999999999999, 0.025], [0.95, 0.025], [1.0000000000000002, 0.025], [2.7755575615628915e-18, 0.05], [0.05, 0.05], [0.1, 0.05], [0.15, 0.05], [0.2, 0.05], [0.25, 0.05], [0.3, 0.05], [0.35, 0.05], [0.39999999999999997, 0.05], [0.44999999999999996, 0.05], [0.5, 0.05], [0.5499999999999999, 0.05], [0.6, 0.05], [0.6499999999999999, 0.05], [0.7, 0.05], [0.7499999999999999, 0.05], [0.7999999999999999, 0.05], [0.85, 0.05], [0.8999999999999999, 0.05], [0.95, 0.05], [1.0000000000000002, 0.05], [2.7755575615628915e-18, 0.075], [0.05, 0.075], [0.1, 0.075], [0.15, 0.075], [0.2, 0.075], [0.25, 0.075], [0.3, 0.075], [0.35, 0.075], [0.39999999999999997, 0.075], [0.44999999999999996, 0.075], [0.5, 0.075], [0.5499999999999999, 0.075], [0.6, 0.075], [0.6499999999999999, 0.075], [0.7, 0.075], [0.7499999999999999, 0.075], [0.7999999999999999, 0.075], [0.85, 0.075], [0.8999999999999999, 0.075], [0.95, 0.075], [1.0000000000000002, 0.07500000000000002], [2.7755575615628915e-18, 0.1], [0.05, 0.1], [0.1, 0.1], [0.15, 0.1], [0.2, 0.1], [0.25, 0.1], [0.3, 0.1], [0.35, 0.1], [0.39999999999999997, 0.1], [0.44999999999999996, 0.1], [0.5, 0.1], [0.5499999999999999, 0.1], [0.6, 0.1], [0.6499999999999999, 0.1], [0.7, 0.1], [0.7499999999999999, 0.1], [0.7999999999999999, 0.1], [0.85, 0.1], [0.8999999999999999, 0.1], [0.95, 0.1], [1.0000000000000002, 0.1], [2.7755575615628915e-18, 0.125], [0.05, 0.125], [0.1, 0.125], [0.15, 0.125], [0.2, 0.125], [0.25, 0.125], [0.3, 0.125], [0.35, 0.125], [0.39999999999999997, 0.125], [0.44999999999999996, 0.125], [0.5, 0.125], [0.5499999999999999, 0.125], [0.6, 0.125], [0.6499999999999999, 0.125], [0.7, 0.125], [0.7499999999999999, 0.125], [0.7999999999999999, 0.125], [0.85, 0.125], [0.8999999999999999, 0.125], [0.95, 0.125], [1.0000000000000002, 0.12500000000000003], [2.7755575615628915e-18, 0.15], [0.05, 0.15], [0.1, 0.15], [0.15, 0.15], [0.2, 0.15], [0.25, 0.15], [0.3, 0.15], [0.35, 0.15], [0.39999999999999997, 0.15], [0.44999999999999996, 0.15], [0.5, 0.15], [0.5499999999999999, 0.15], [0.6, 0.15], [0.6499999999999999, 0.15], [0.7, 0.15], [0.7499999999999999, 0.15], [0.7999999999999999, 0.15], [0.85, 0.15], [0.8999999999999999, 0.15], [0.95, 0.15], [1.0000000000000002, 0.15000000000000005], [2.7755575615628915e-18, 0.175], [0.05, 0.175], [0.1, 0.175], [0.15, 0.175], [0.2, 0.175], [0.25, 0.175], [0.3, 0.175], [0.35, 0.175], [0.39999999999999997, 0.175], [0.44999999999999996, 0.175], [0.5, 0.175], [0.5499999999999999, 0.175], [0.6, 0.175], [0.6499999999999999, 0.175], [0.7, 0.175], [0.7499999999999999, 0.175], [0.7999999999999999, 0.175], [0.85, 0.175], [0.8999999999999999, 0.175], [0.95, 0.175], [1.0000000000000002, 0.17500000000000004], [-2.7755575615628915e-18, 0.20000000000000004], [0.05, 0.20000000000000004], [0.1, 0.20000000000000004], [0.15000000000000005, 0.20000000000000004], [0.2, 0.20000000000000004], [0.25000000000000006, 0.20000000000000004], [0.3000000000000001, 0.20000000000000004], [0.3500000000000001, 0.20000000000000004], [0.4000000000000001, 0.20000000000000004], [0.45000000000000007, 0.20000000000000004], [0.5000000000000001, 0.20000000000000004], [0.5500000000000002, 0.20000000000000004], [0.6000000000000002, 0.20000000000000004], [0.6500000000000001, 0.20000000000000004], [0.7000000000000002, 0.20000000000000004], [0.7500000000000001, 0.20000000000000004], [0.8000000000000002, 0.20000000000000004], [0.8500000000000002, 0.20000000000000004], [0.9000000000000001, 0.20000000000000004], [0.9500000000000002, 0.20000000000000004], [0.9999999999999999, 0.19999999999999998]], "u": [[-0.050115934355325055, 0.0], [-0.04746469324589588, -0.032614816491898777], [-0.044733054550639514, -0.05656501933949531], [-0.042107527720585625, -0.07941980584486594], [-0.03883170356164899, -0.10080211807499177], [-0.0347131235533926, -0.1204183681007655], [-0.02967519686526932, -0.13778596925517794], [-0.023662878458716792, -0.15240929691325028], [-0.016631383216077367, -0.16371155724119585], [-0.008634439247990884, -0.17099119322096465], [0.0, -0.17353126738516253], [0.008634439247989971, -0.17099119322096296], [0.016631383216075976, -0.16371155724119288], [0.02366287845871468, -0.15240929691324565], [0.02967519686526635, -0.13778596925517286], [0.0347131235533891, -0.12041836810076043], [0.03883170356164467, -0.10080211807498603], [0.04210752772058045, -0.07941980584486112], [0.04473305455063386, -0.056565019339491554], [0.047464693245889734, -0.03261481649189633], [0.05011593435531853, 0.0], [-0.03504818587311904, -0.0036322458857421087], [-0.0340601811439335, -0.032255955923099745], [-0.033151065237441005, -0.056951248005020355], [-0.031219079571185606, -0.07977348522168014], [-0.028771564122697088, -0.10128706827134071], [-0.02567280607742469, -0.12101657378100528], [-0.021891257242941702, -0.13850829648832946], [-0.017399349337941496, -0.1532606508609941], [-0.012185491364515568, -0.16469752350498768], [-0.0063079369828874365, -0.17209672661582248], [-6.997820279022634e-16, -0.17468987115434004], [0.006307936982885855, -0.17209672661582065], [0.012185491364513506, -0.1646975235049846], [0.0173993493379389, -0.15326065086098942], [0.02189125724293862, -0.1385082964883243], [0.025672806077421027, -0.12101657378100009], [0.02877156412269289, -0.10128706827133482], [0.031219079571180933, -0.07977348522167525], [0.033151065237435925, -0.05695124800501648], [0.03406018114392822, -0.032255955923097275], [0.03504818587311356, -0.003632245885741528], [-0.022518688352649956, -0.0062660692731037505], [-0.021920560061767787, -0.03223704653673992], [-0.02167106974299592, -0.05700363831485381], [-0.020672317019581287, -0.08002370610962685], [-0.019079266624369658, -0.10161791895744121], [-0.01702701744739849, -0.12144088884218558], [-0.014517243318706451, -0.13901705144888526], [-0.011555402419413363, -0.1538587691389359], [-0.008130055617430878, -0.16540432566890195], [-0.004237812610549436, -0.17293001531591456], [-1.1089278006887236e-15, -0.17559441557843344], [0.0042378126105471455, -0.17293001531591276], [0.008130055617428262, -0.16540432566889862], [0.011555402419410384, -0.1538587691389313], [0.014517243318703148, -0.13901705144887994], [0.01702701744739476, -0.12144088884218034], [0.01907926662436561, -0.1016179189574354], [0.02067231701957696, -0.08002370610962188], [0.021671069742991374, -0.05700363831484996], [0.021920560061763145, -0.032237046536737375], [0.022518688352645186, -0.006266069273102715], [-0.011021259467460636, -0.008083202237302006], [-0.010620649102433887, -0.03245256379988282], [-0.010648164030895505, -0.05694642770162888], [-0.010357740415113684, -0.08011240112076637], [-0.009645955017082009, -0.10180088130382972], [-0.008640375299290171, -0.12168556437398009], [-0.007405047021401771, -0.13931046538353234], [-0.005967211959210198, -0.15420353381810903], [-0.004305353057415179, -0.1658474822527892], [-0.0023206053852934502, -0.17354726142061352], [-1.4233792670473583e-15, -0.17633683310395723], [0.0023206053852905593, -0.17354726142061172], [0.004305353057412082, -0.16584748225278578], [0.005967211959206881, -0.15420353381810448], [0.007405047021398279, -0.13931046538352695], [0.0086403752992864, -0.12168556437397478], [0.009645955017078064, -0.10180088130382399], [0.010357740415109683, -0.08011240112076137], [0.010648164030891399, -0.05694642770162499], [0.010620649102429746, -0.0324525637998802], [0.011021259467456402, -0.008083202237300623], [1.0769506833214881e-05, -0.009265866292153518], [0.0002400719835211268, -0.03273030613022544], [2.38109654301372e-05, -0.0568706000471843], [-0.00023223557141299888, -0.08007412096809777], [-0.0003479955774358338, -0.10183382091261245], [-0.0003824989587304562, -0.12175422059865355], [-0.0004103653083081286, -0.13939092994198382], [-0.00047981965948468185, -0.1542957084232995], [-0.0005713427698901856, -0.16602516477934245], [-0.0004801945415055494, -0.1739744487235212], [-1.709702288958705e-15, -0.17699526384362216], [0.00048019454150210035, -0.17397444872351933], [0.0005713427698866405, -0.16602516477933887], [0.00047981965948107796, -0.1542957084232949], [0.00041036530830444745, -0.1393909299419784], [0.00038249895872665264, -0.12175422059864811], [0.00034799557743202193, -0.10183382091260684], [0.00023223557140924765, -0.0800741209680928], [-2.3810965433850405e-05, -0.05687060004718038], [-0.00024007198352484933, -0.03273030613022273], [-1.0769506837015663e-05, -0.009265866292151878], [0.010883833127514092, -0.009957988817865089], [0.010947467274288062, -0.03296687831386082], [0.010543402802490864, -0.05678398850667533], [0.009819762410258642, -0.07994379724336605], [0.008934494176460767, -0.10172779987994407], [0.007878177265414508, -0.12165139748704418], [0.006602147393689337, -0.13926588083081531], [0.005056340785108904, -0.1541377909407878], [0.003217086378631317, -0.16591395021592462], [0.001356533862989038, -0.17419953988980902], [-1.997478862627352e-15, -0.17766054535614442], [-0.0013565338629930469, -0.1741995398898071], [-0.0032170863786353094, -0.16591395021592104], [-0.0050563407851128206, -0.1541377909407831], [-0.0066021473936931935, -0.13926588083080982], [-0.00787817726541831, -0.12165139748703871], [-0.008934494176464454, -0.10172779987993853], [-0.009819762410262136, -0.07994379724336113], [-0.010543402802494228, -0.05678398850667142], [-0.010947467274291406, -0.032966878313858], [-0.01088383312751748, -0.009957988817863292], [0.021798029322136373, -0.010285146917786482], [0.021713757664153798, -0.03311496451249228], [0.02111141147619895, -0.05666975207319757], [0.019954958534539168, -0.07973973774493831], [0.018336166254441302, -0.10149552896414021], [0.01627332022106442, -0.12138145788887096], [0.013754605968153373, -0.13894377139918618], [0.010777077167584661, -0.1537438929577617], [0.007239278715973049, -0.16547579512684274], [0.0032959288845022736, -0.17414219272286877], [-2.298806891779016e-15, -0.17847396772463187], [-0.003295928884506894, -0.17414219272286677], [-0.007239278715977548, -0.16547579512683921], [-0.010777077167588916, -0.15374389295775695], [-0.0137546059681574, -0.1389437713991806], [-0.0162733202210682, -0.12138145788886551], [-0.018336166254444817, -0.1014955289641347], [-0.019954958534542405, -0.07973973774493354], [-0.021111411476201988, -0.05666975207319366], [-0.021713757664156765, -0.03311496451248939], [-0.021798029322139343, -0.0102851469177846], [0.03288024123155897, -0.010377725355547736], [0.032697774357706016, -0.033162930595012165], [0.031919894540084294, -0.05651436287275999], [0.030351301341798434, -0.07946824052472515], [0.028004789108558872, -0.10114223190102833], [0.024932296560550994, -0.12094848304264755], [0.02117338085618428, -0.13842104714928247], [0.016749036961715945, -0.15314871636925068], [0.011727673063765367, -0.16471056799764522], [0.005594605069179527, -0.173574685799315], [-2.6603483768927947e-15, -0.17968630298107985], [-0.005594605069184781, -0.17357468579931293], [-0.011727673063770412, -0.16471056799764183], [-0.01674903696172056, -0.15314871636924596], [-0.021173380856188445, -0.13842104714927686], [-0.024932296560554748, -0.12094848304264202], [-0.028004789108562175, -0.10114223190102294], [-0.03035130134180137, -0.07946824052472036], [-0.03191989454008697, -0.05651436287275611], [-0.03269777435770856, -0.03316293059500921], [-0.0328802412315615, -0.01037772535554582], [0.04414645536566566, -0.010380844531669969], [0.04400908363691054, -0.033133559183754636], [0.043182175898872466, -0.05632262758079595], [0.04120039305528539, -0.07912320070244536], [0.03809166615692109, -0.10066394694694429], [0.03398643215520963, -0.12034687612741919], [0.028967906378459203, -0.13770687962242056], [0.023094894990406137, -0.152302065615809], [0.0164707313536347, -0.1638680872509432], [0.009377971107925815, -0.1720373792395687], [-3.1091484843217874e-15, -0.18157746727850427], [-0.009377971107931784, -0.17203737923956658], [-0.016470731353640296, -0.16386808725093993], [-0.023094894990411233, -0.15230206561580445], [-0.028967906378463533, -0.13770687962241496], [-0.03398643215521327, -0.12034687612741372], [-0.03809166615692418, -0.10066394694693888], [-0.04120039305528793, -0.07912320070244067], [-0.0431821758988747, -0.05632262758079206], [-0.04400908363691261, -0.03313355918375164], [-0.044146455365667664, -0.010380844531668059]]}}, "tri": {"fenics": {"x": [[-1.0771140357880435e-18, 2.2370005436688698e-18], [0.05, 0.0], [0.1, -5.385570178940217e-19], [0.15000000000000002, 0.0], [0.20000000000000004, -5.385570178940217e-19], [0.25, 0.0], [0.30000000000000004, -5.385570178940217e-19], [0.35000000000000003, 0.0], [0.4000000000000001, -5.385570178940217e-19], [0.45, 0.0], [0.5, -5.385570178940217e-19], [0.55, 0.0], [0.6000000000000002, -5.385570178940217e-19], [0.65, 0.0], [0.7000000000000002, -5.385570178940217e-19], [0.75, 0.0], [0.8000000000000002, -5.385570178940217e-19], [0.8500000000000001, 0.0], [0.9000000000000001, -5.385570178940217e-19], [0.9500000000000001, 0.0], [1.0, -5.385570178940217e-19], [1.0771140357880435e-18, 0.025], [0.05, 0.025], [0.1, 0.025], [0.15000000000000002, 0.025], [0.2, 0.025], [0.24999999999999997, 0.025], [0.30000000000000004, 0.025], [0.35, 0.025], [0.4, 0.025], [0.44999999999999996, 0.025], [0.5, 0.025], [0.55, 0.025], [0.6000000000000001, 0.025], [0.6499999999999999, 0.025], [0.7000000000000001, 0.025], [0.7499999999999999, 0.025], [0.8, 0.025], [0.85, 0.025], [0.9, 0.025], [0.95, 0.025], [1.0, 0.025], [-2.7755575615628915e-18, 0.05], [0.05, 0.05], [0.1, 0.049999999999999996], [0.15000000000000002, 0.05], [0.19999999999999998, 0.049999999999999996], [0.25, 0.05], [0.30000000000000004, 0.049999999999999996], [0.35000000000000003, 0.05], [0.39999999999999997, 0.049999999999999996], [0.45, 0.05], [0.49999999999999994, 0.049999999999999996], [0.55, 0.05], [0.6, 0.049999999999999996], [0.65, 0.05], [0.7, 0.049999999999999996], [0.75, 0.05], [0.7999999999999999, 0.049999999999999996], [0.8500000000000001, 0.05], [0.8999999999999999, 0.049999999999999996], [0.9500000000000001, 0.05], [0.9999999999999999, 0.049999999999999996], [1.0771140357880435e-18, 0.07500000000000001], [0.05, 0.07500000000000001], [0.1, 0.07500000000000001], [0.15000000000000002, 0.07500000000000001], [0.2, 0.07500000000000001], [0.24999999999999997, 0.07500000000000001], [0.30000000000000004, 0.07500000000000001], [0.35, 0.07500000000000001], [0.4, 0.07500000000000001], [0.44999999999999996, 0.07500000000000001], [0.5, 0.07500000000000001], [0.55, 0.07500000000000001], [0.6000000000000001, 0.07500000000000001], [0.6499999999999999, 0.07500000000000001], [0.7000000000000001, 0.07500000000000001], [0.7499999999999999, 0.07500000000000001], [0.8, 0.07500000000000001], [0.85, 0.07500000000000001], [0.9, 0.07500000000000001], [0.95, 0.07500000000000001], [1.0, 0.07500000000000001], [-2.7755575615628915e-18, 0.09999999999999999], [0.05, 0.1], [0.1, 0.09999999999999999], [0.15000000000000002, 0.1], [0.19999999999999998, 0.09999999999999999], [0.25, 0.1], [0.30000000000000004, 0.09999999999999999], [0.35000000000000003, 0.1], [0.39999999999999997, 0.09999999999999999], [0.45, 0.1], [0.49999999999999994, 0.09999999999999999], [0.55, 0.1], [0.6, 0.09999999999999999], [0.65, 0.1], [0.7, 0.09999999999999999], [0.75, 0.1], [0.7999999999999999, 0.09999999999999999], [0.8500000000000001, 0.1], [0.8999999999999999, 0.09999999999999999], [0.9500000000000001, 0.1], [0.9999999999999999, 0.09999999999999999], [1.0771140357880435e-18, 0.125], [0.05, 0.12499999999999999], [0.1, 0.125], [0.15000000000000002, 0.12499999999999999], [0.2, 0.125], [0.24999999999999997, 0.12499999999999999], [0.30000000000000004, 0.125], [0.35, 0.12499999999999999], [0.4, 0.125], [0.44999999999999996, 0.12499999999999999], [0.5, 0.125], [0.55, 0.12499999999999999], [0.6000000000000001, 0.125], [0.6499999999999999, 0.12499999999999999], [0.7000000000000001, 0.125], [0.7499999999999999, 0.12499999999999999], [0.8, 0.125], [0.85, 0.12499999999999999], [0.9, 0.125], [0.95, 0.12499999999999999], [1.0, 0.125], [-2.7755575615628915e-18, 0.15000000000000002], [0.05, 0.15000000000000002], [0.1, 0.15], [0.15000000000000002, 0.15000000000000002], [0.19999999999999998, 0.15], [0.25, 0.15000000000000002], [0.30000000000000004, 0.15], [0.35000000000000003, 0.15000000000000002], [0.39999999999999997, 0.15], [0.45, 0.15000000000000002], [0.49999999999999994, 0.15], [0.55, 0.15000000000000002], [0.6, 0.15], [0.65, 0.15000000000000002], [0.7, 0.15], [0.75, 0.15000000000000002], [0.7999999999999999, 0.15], [0.8500000000000001, 0.15000000000000002], [0.8999999999999999, 0.15], [0.9500000000000001, 0.15000000000000002], [0.9999999999999999, 0.15], [1.0771140357880435e-18, 0.17500000000000002], [0.05, 0.175], [0.1, 0.17500000000000002], [0.15000000000000002, 0.175], [0.2, 0.17500000000000002], [0.24999999999999997, 0.175], [0.30000000000000004, 0.17500000000000002], [0.35, 0.175], [0.4, 0.17500000000000002], [0.44999999999999996, 0.175], [0.5, 0.17500000000000002], [0.55, 0.175], [0.6000000000000001, 0.17500000000000002], [0.6499999999999999, 0.175], [0.7000000000000001, 0.17500000000000002], [0.7499999999999999, 0.175], [0.8, 0.17500000000000002], [0.85, 0.175], [0.9, 0.17500000000000002], [0.95, 0.175], [1.0, 0.17500000000000002], [-2.7755575615628915e-18, 0.19999999999999998], [0.05, 0.2], [0.1, 0.19999999999999998], [0.15000000000000002, 0.2], [0.19999999999999998, 0.19999999999999998], [0.25, 0.2], [0.30000000000000004, 0.19999999999999998], [0.35000000000000003, 0.2], [0.39999999999999997, 0.19999999999999998], [0.45, 0.2], [0.49999999999999994, 0.19999999999999998], [0.55, 0.2], [0.6, 0.19999999999999998], [0.65, 0.2], [0.7, 0.19999999999999998], [0.75, 0.2], [0.7999999999999999, 0.19999999999999998], [0.8500000000000001, 0.2], [0.8999999999999999, 0.19999999999999998], [0.9500000000000001, 0.2], [0.9999999999999999, 0.19999999999999998]], "u": [[-0.045831947819098086, 0.0], [-0.04460334397078417, -0.027871895046707958], [-0.04235166399687089, -0.051583920409492355], [-0.0397822532214304, -0.07315519102312841], [-0.03667139502040636, -0.0935846943586541], [-0.032721300745235715, -0.11202060271213451], [-0.02799186198790549, -0.12864959021796699], [-0.022277566629548468, -0.14228488646540427], [-0.015708762176344582, -0.15327283848188702], [-0.00816081680977357, -0.15995920921635964], [0.0, -0.16282500282945367], [0.008160816809773168, -0.1599592092163571], [0.015708762176343684, -0.15327283848188206], [0.0222775666295467, -0.1422848864653967], [0.027991861987902506, -0.12864959021795758], [0.03272130074523131, -0.11202060271212447], [0.03667139502040056, -0.09358469435864428], [0.03978225322142344, -0.07315519102311972], [0.04235166399686287, -0.05158392040948524], [0.044603343970775144, -0.027871895046703427], [0.04583194781908848, 0.0], [-0.03348246320537322, -0.0022405206944388287], [-0.03207274819898227, -0.028314910632046653], [-0.03112901386823708, -0.051677796576644106], [-0.029475433814705517, -0.07363116351478062], [-0.027136819676517567, -0.09390590900182823], [-0.02423341409546449, -0.1127506204766567], [-0.020634973106781942, -0.1291352901036492], [-0.01642693638315662, -0.14332194026137562], [-0.011496756921519254, -0.15392154972906782], [-0.005991658381168535, -0.16130451662864584], [-7.31781288314051e-16, -0.16359490580276856], [0.005991658381166924, -0.16130451662864315], [0.011496756921517205, -0.15392154972906266], [0.016426936383153883, -0.14332194026136783], [0.020634973106778393, -0.12913529010363967], [0.02423341409545998, -0.11275062047664638], [0.02713681967651208, -0.0939059090018183], [0.02947543381469919, -0.0736311635147717], [0.03112901386823009, -0.05167779657663695], [0.03207274819897486, -0.028314910632041917], [0.03348246320536521, -0.002240520694437888], [-0.02134550705035252, -0.004203150284326764], [-0.021016339283163873, -0.028581104676549444], [-0.02041339639873639, -0.0518950056568612], [-0.019445991032891196, -0.07372222773585181], [-0.018005666791818146, -0.09435225162107153], [-0.01605804560247862, -0.11298294330427817], [-0.013713509750617529, -0.12981331669289206], [-0.010899373121991051, -0.14365479790820465], [-0.007695408151489179, -0.15485171720095864], [-0.004002089505669083, -0.16179325456287005], [-1.3453202237111047e-15, -0.1647656268815549], [0.004002089505666312, -0.16179325456286736], [0.007695408151486144, -0.15485171720095334], [0.010899373121987554, -0.1436547979081968], [0.013713509750613523, -0.1298133166928825], [0.016058045602474015, -0.11298294330426781], [0.0180056667918129, -0.09435225162106148], [0.01944599103288543, -0.07372222773584285], [0.020413396398730254, -0.051895005656853926], [0.021016339283157496, -0.02858110467654462], [0.021345507050346012, -0.004203150284324998], [-0.010786924457843567, -0.005618417900797803], [-0.010155484022516051, -0.028940403394594447], [-0.010115320816671785, -0.05188542024691165], [-0.00975434744766819, -0.07391804679887796], [-0.009081198409987891, -0.09437978358166799], [-0.00816618758272246, -0.11337279398267654], [-0.006999824362635275, -0.12989315716631789], [-0.005650258676450757, -0.1442190547232576], [-0.004045039738042353, -0.155013790874192], [-0.002233071244346529, -0.16262929443837656], [-1.8880650498303417e-15, -0.1652349722966437], [0.002233071244342717, -0.16262929443837387], [0.004045039738038367, -0.15501379087418662], [0.005650258676446525, -0.1442190547232496], [0.006999824362630823, -0.12989315716630837], [0.008166187582717761, -0.11337279398266603], [0.009081198409982854, -0.0943797835816579], [0.009754347447662896, -0.07391804679886892], [0.010115320816666372, -0.05188542024690439], [0.010155484022510626, -0.028940403394589486], [0.010786924457837877, -0.005618417900795442], [-7.086376750570019e-05, -0.006675400630352627], [8.046716677826926e-06, -0.029185195005539146], [-4.6395351149554874e-05, -0.05195566898824281], [-0.00022861919982769617, -0.07381406002713496], [-0.0003294884492898756, -0.09453582910067033], [-0.0003758116391011343, -0.11326730549107011], [-0.00041699787900826456, -0.13016501338208003], [-0.0004673881392114186, -0.14409397700033091], [-0.0005423495783722574, -0.15545404739876598], [-0.0003969618996169697, -0.1627413220450192], [-2.395229328938132e-15, -0.16616031133692935], [0.00039696189961214604, -0.16274132204501646], [0.0005423495783673683, -0.15545404739876048], [0.00046738813920652343, -0.14409397700032306], [0.000416997879003398, -0.13016501338207054], [0.00037581163909627106, -0.11326730549105968], [0.0003294884492849847, -0.09453582910066013], [0.00022861919982285198, -0.07381406002712602], [4.639535114480161e-05, -0.0519556689882355], [-8.046716682580243e-06, -0.029185195005534074], [7.086376750090403e-05, -0.006675400630349816], [0.010128560145421855, -0.00729309847666712], [0.01026682927873664, -0.029407177150826094], [0.009846702550311224, -0.05187351781170018], [0.009238998620001397, -0.0738095276773607], [0.00841018716401511, -0.09431088242201377], [0.007410895054588677, -0.11332227174316031], [0.006184077346085865, -0.12985264372959165], [0.004733033240140547, -0.14419367743413822], [0.0030759053942800902, -0.15513092357303998], [0.001259451573070242, -0.16319182462016682], [-2.910750581194118e-15, -0.16654890358763874], [-0.001259451573076055, -0.163191824620164], [-0.003075905394285829, -0.15513092357303454], [-0.004733033240146135, -0.14419367743413034], [-0.006184077346091198, -0.1298526437295823], [-0.007410895054593676, -0.1133222717431498], [-0.008410187164019811, -0.0943108824220036], [-0.009238998620005823, -0.07380952767735183], [-0.009846702550315441, -0.05187351781169291], [-0.010266829278740692, -0.02940717715082091], [-0.010128560145425975, -0.00729309847666404], [0.02054775232852388, -0.007649090371808971], [0.020417657243842542, -0.029484840428435577], [0.01987378416740375, -0.05183777057973872], [0.018770939720125147, -0.07355368098622239], [0.017271634672634498, -0.09421630771791403], [0.015307353580003706, -0.1129055202311553], [0.012945314283638947, -0.12973184117676817], [0.010098580924505874, -0.14361425961318858], [0.006807964635039135, -0.15505947994284422], [0.003334796657675058, -0.16285948556760466], [-3.4359183851412597e-15, -0.1675249846576559], [-0.003334796657681891, -0.16285948556760188], [-0.006807964635045789, -0.15505947994283883], [-0.010098580924512157, -0.14361425961318078], [-0.012945314283644777, -0.12973184117675893], [-0.015307353580008858, -0.1129055202311451], [-0.017271634672638998, -0.09421630771790397], [-0.01877093972012916, -0.07355368098621361], [-0.01987378416740738, -0.05183777057973146], [-0.020417657243845956, -0.029484840428430362], [-0.02054775232852724, -0.00764909037180573], [0.031030219333852672, -0.0077426709113247805], [0.0308640409173466, -0.02951725044776086], [0.030054243311893575, -0.051654614289953944], [0.028586066963257484, -0.07338999661662841], [0.02634868662905277, -0.09376302553584288], [0.02348792510808584, -0.11265177173131773], [0.019925045182301867, -0.12905143783306677], [0.015781187844823817, -0.1432480966265809], [0.010928176378398512, -0.15417009367181314], [0.005311305085361598, -0.1628014158368296], [-4.028471455760625e-15, -0.16800067567693713], [-0.005311305085369558, -0.1628014158368268], [-0.010928176378406125, -0.15417009367180784], [-0.015781187844830846, -0.1432480966265731], [-0.01992504518230809, -0.12905143783305775], [-0.023487925108091123, -0.11265177173130779], [-0.0263486866290571, -0.09376302553583309], [-0.02858606696326102, -0.0733899966166197], [-0.030054243311896576, -0.05165461428994676], [-0.030864040917349265, -0.029517250447755626], [-0.031030219333855254, -0.007742670911321494], [0.04179040116560952, -0.00774316357845426], [0.041572732538423834, -0.029451054587527493], [0.040704972987228444, -0.05150663138277702], [0.038743762925542616, -0.07298284861769364], [0.035871010861729766, -0.09343961809209897], [0.03198830974719724, -0.1119292665291617], [0.027319759946460548, -0.128563797628836], [0.02177983934840957, -0.14226035024063421], [0.015594002283623329, -0.1534811414528008], [0.008666504900716012, -0.1616159204415889], [-4.683657985994166e-15, -0.16938623716823759], [-0.008666504900725179, -0.16161592044158618], [-0.015594002283632055, -0.15348114145279565], [-0.021779839348417433, -0.14226035024062664], [-0.027319759946467275, -0.12856379762882708], [-0.031988309747202646, -0.11192926652915208], [-0.03587101086173381, -0.09343961809208924], [-0.038743762925545606, -0.07298284861768507], [-0.04070497298723068, -0.05150663138276988], [-0.041572732538425645, -0.029451054587522292], [-0.04179040116561121, -0.007743163578450971]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/sofa_scene.py new file mode 100644 index 0000000..a468708 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/2D/ThreePointBending/sofa_scene.py @@ -0,0 +1,100 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np + +from common.geometry import Beam2D +from common.sofa.conventions import ELEMENTS +from common.sofa.prefabs import ElasticBeam + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.MechanicalLoad", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Beam2D(length=case['geometry']['length'], width=case['geometry']['width']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers']} + beam = root.addChild(ElasticBeam(name='ElasticBeam', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + beam.Grid.grid.init() + rest_positions = beam.Grid.grid.position.array()[:, :2] + + def node_at(x, y): + return int(np.where(np.isclose(rest_positions[:, 0], x) & np.isclose(rest_positions[:, 1], y))[0][0]) + + roller_indices = [node_at(0.0, 0.0), node_at(geometry.length, 0.0)] + anchor_index = node_at(geometry.length / 2, 0.0) + load_index = node_at(geometry.length / 2, geometry.width) + + with beam.mechanical_node() as mechanical: + mechanical.addObject('PartialFixedProjectiveConstraint', name='rollers', indices=roller_indices, + fixedDirections=[0, 1]) + # Removes the rigid translation along x while keeping the solution symmetric about the midspan + mechanical.addObject('PartialFixedProjectiveConstraint', name='anchor', indices=[anchor_index], + fixedDirections=[1, 0]) + mechanical.addObject('ConstantForceField', name='pointLoad', indices=[load_index], + forces=[[0.0, -case['load']['magnitude']]]) + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :2].copy() + u = mechanical.dofs.position.array()[:, :2] - x0 + cells = getattr(mechanical.topology, ELEMENTS[case['element']].data_name).array().copy() + return x0, u, cells + + +def main(case): + x, u, cells = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/analytic_solution.py b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/analytic_solution.py new file mode 100644 index 0000000..b42d982 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/analytic_solution.py @@ -0,0 +1,17 @@ +"""Analytic solution for AxialCompression: a beam under a uniform compressive edge traction. + +u_x(x) = stress*x/E, u_y(x,y) = -nu*stress*y/E, u_z(x,z) = -nu*stress*z/E, for a beam clamped at +x=0, under a uniform compressive traction on x=length: a uniaxial stress state throughout. +""" + +import numpy as np + + +def displacement(x, case): + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + stress = -case['load']['magnitude'] + ux = stress * x[:, 0] / young_modulus + uy = -poisson_ratio * stress * x[:, 1] / young_modulus + uz = -poisson_ratio * stress * x[:, 2] / young_modulus + return np.column_stack([ux, uy, uz]) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/case.json b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/case.json new file mode 100644 index 0000000..b568d1e --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/case.json @@ -0,0 +1,40 @@ +{ + "hexa": { + "geometry": { "type": "Beam3D", "length": 1.0, "width": 0.2, "height": 0.2 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [11, 5, 5] }, + "load": { "type": "axialTraction", "magnitude": 200.0 }, + "tolerance": { "rms": 1e-10 }, + "toleranceAnalytic": { "rms": 1e-10 } + }, + "tet": { + "geometry": { "type": "Beam3D", "length": 1.0, "width": 0.2, "height": 0.2 }, + "element": "tet", + "swapping": true, + "gridMapping": { "swapping": true }, + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [11, 5, 5] }, + "load": { "type": "axialTraction", "magnitude": 200.0 }, + "tolerance": { "rms": 1e-10 }, + "toleranceAnalytic": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/fenics_scene.py new file mode 100644 index 0000000..0679fce --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/fenics_scene.py @@ -0,0 +1,108 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem + +from common.fenics import BeamMesh +from common.geometry import Beam3D + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + geometry = Beam3D(length=case['geometry']['length'], width=case['geometry']['width'], + height=case['geometry']['height']) + grid = BeamMesh(geometry, case['mesh']['resolution'], element=case['element'], + swapping=case.get('swapping', True)) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1, (3,))) + + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - 2 * poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(3) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + right_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[0], geometry.length)) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, right_facets, + np.full_like(right_facets, 1, dtype=np.int32)) + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags) + + traction = fem.Constant(domain, default_scalar_type((-case['load']['magnitude'], 0.0, 0.0))) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + # Fix the axial displacement along x = 0, leaving it free to contract laterally. + # Pin one corner in y and z to remove translation; pin a second corner off that axis in z + # only, to remove the remaining rigid-body mode: rotation about x. + Vx, _ = V.sub(0).collapse() + clamped_x = fem.locate_dofs_geometrical((V.sub(0), Vx), lambda x: np.isclose(x[0], 0.0)) + bc_x = fem.dirichletbc(default_scalar_type(0.0), clamped_x[0], V.sub(0)) + + Vy, _ = V.sub(1).collapse() + corner_y = fem.locate_dofs_geometrical( + (V.sub(1), Vy), lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], 0.0) & np.isclose(x[2], 0.0)) + bc_corner_y = fem.dirichletbc(default_scalar_type(0.0), corner_y[0], V.sub(1)) + + Vz, _ = V.sub(2).collapse() + corner_z = fem.locate_dofs_geometrical( + (V.sub(2), Vz), lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], 0.0) & np.isclose(x[2], 0.0)) + bc_corner_z = fem.dirichletbc(default_scalar_type(0.0), corner_z[0], V.sub(2)) + + second_corner_z = fem.locate_dofs_geometrical( + (V.sub(2), Vz), lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], geometry.width) & np.isclose(x[2], 0.0)) + bc_second_corner_z = fem.dirichletbc(default_scalar_type(0.0), second_corner_z[0], V.sub(2)) + + return grid, V, a, L, [bc_x, bc_corner_y, bc_corner_z, bc_second_corner_z] + + +def solve(case): + grid, V, a, L, bcs = build(case) + + problem = LinearProblem(a, L, bcs=bcs, petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + coords = V.tabulate_dof_coordinates()[:, :3] + values = solution.x.array.reshape(-1, 3) + return coords[grid.inverse], values[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/reference_solution.json new file mode 100644 index 0000000..c766b4f --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/reference_solution.json @@ -0,0 +1 @@ +{"hexa": {"fenics": {"x": [[-1.510554047423433e-19, 9.013887592422957e-19, -1.1802794119298727e-18], [0.1, 9.013887592422957e-19, -1.1802794119298727e-18], [0.2, 9.013887592422957e-19, -1.1802794119298727e-18], [0.30000000000000004, 9.013887592422957e-19, -1.1802794119298727e-18], [0.4, 9.013887592422957e-19, -1.1802794119298727e-18], [0.5, 9.013887592422957e-19, -1.1802794119298727e-18], [0.6000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [0.7000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [0.8, 9.013887592422957e-19, -1.1802794119298727e-18], [0.9000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [1.0, 1.180279411929873e-18, 2.568058192711319e-18], [-1.510554047423433e-19, 0.05000000000000001, -1.1802794119298727e-18], [0.1, 0.05000000000000001, -1.1802794119298727e-18], [0.2, 0.05000000000000001, -1.1802794119298727e-18], [0.30000000000000004, 0.05000000000000001, -1.1802794119298727e-18], [0.4, 0.05000000000000001, -1.1802794119298727e-18], [0.5, 0.05000000000000001, -1.1802794119298727e-18], [0.6000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [0.7000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [0.8, 0.05000000000000001, -1.1802794119298727e-18], [0.9000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [1.0, 0.05, 2.568058192711319e-18], [-1.510554047423433e-19, 0.10000000000000002, -1.1802794119298727e-18], [0.1, 0.10000000000000002, -1.1802794119298727e-18], [0.2, 0.10000000000000002, -1.1802794119298727e-18], [0.30000000000000004, 0.10000000000000002, -1.1802794119298727e-18], [0.4, 0.10000000000000002, -1.1802794119298727e-18], [0.5, 0.10000000000000002, -1.1802794119298727e-18], [0.6000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [0.7000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [0.8, 0.10000000000000002, -1.1802794119298727e-18], [0.9000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [1.0, 0.1, 2.568058192711319e-18], [-1.510554047423433e-19, 0.15000000000000002, -1.1802794119298727e-18], [0.1, 0.15000000000000002, -1.1802794119298727e-18], [0.2, 0.15000000000000002, -1.1802794119298727e-18], [0.30000000000000004, 0.15000000000000002, -1.1802794119298727e-18], [0.4, 0.15000000000000002, -1.1802794119298727e-18], [0.5, 0.15000000000000002, -1.1802794119298727e-18], [0.6000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [0.7000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [0.8, 0.15000000000000002, -1.1802794119298727e-18], [0.9000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [1.0, 0.15000000000000002, 2.568058192711319e-18], [-8.17561727994633e-18, 0.2, -2.9830569304144645e-18], [0.09999999999999999, 0.2, -2.9830569304144645e-18], [0.2, 0.2, -2.9830569304144645e-18], [0.30000000000000004, 0.2, -2.9830569304144645e-18], [0.4, 0.2, -2.9830569304144645e-18], [0.5, 0.2, -2.9830569304144645e-18], [0.6000000000000001, 0.2, -2.9830569304144645e-18], [0.7000000000000001, 0.2, -2.9830569304144645e-18], [0.8, 0.2, -2.9830569304144645e-18], [0.9, 0.2, -2.9830569304144645e-18], [1.0000000000000002, 0.20000000000000004, 6.452503882368078e-18], [-1.510554047423433e-19, 9.013887592422957e-19, 0.05], [0.1, 9.013887592422957e-19, 0.05], [0.2, 9.013887592422957e-19, 0.05], [0.30000000000000004, 9.013887592422957e-19, 0.05], [0.4, 9.013887592422957e-19, 0.05], [0.5, 9.013887592422957e-19, 0.05], [0.6000000000000001, 9.013887592422957e-19, 0.05], [0.7000000000000001, 9.013887592422957e-19, 0.05], [0.8, 9.013887592422957e-19, 0.05], [0.9000000000000001, 9.013887592422957e-19, 0.05], [1.0, 1.180279411929873e-18, 0.05], [-1.510554047423433e-19, 0.05000000000000001, 0.05], [0.1, 0.05000000000000001, 0.05], [0.2, 0.05000000000000001, 0.05], [0.30000000000000004, 0.05000000000000001, 0.05], [0.4, 0.05000000000000001, 0.05], [0.5, 0.05000000000000001, 0.05], [0.6000000000000001, 0.05000000000000001, 0.05], [0.7000000000000001, 0.05000000000000001, 0.05], [0.8, 0.05000000000000001, 0.05], [0.9000000000000001, 0.05000000000000001, 0.05], [1.0, 0.05, 0.05], [-1.510554047423433e-19, 0.10000000000000002, 0.05], [0.1, 0.10000000000000002, 0.05], [0.2, 0.10000000000000002, 0.05], [0.30000000000000004, 0.10000000000000002, 0.05], [0.4, 0.10000000000000002, 0.05], [0.5, 0.10000000000000002, 0.05], [0.6000000000000001, 0.10000000000000002, 0.05], [0.7000000000000001, 0.10000000000000002, 0.05], [0.8, 0.10000000000000002, 0.05], [0.9000000000000001, 0.10000000000000002, 0.05], [1.0, 0.1, 0.05], [-1.510554047423433e-19, 0.15000000000000002, 0.05], [0.1, 0.15000000000000002, 0.05], [0.2, 0.15000000000000002, 0.05], [0.30000000000000004, 0.15000000000000002, 0.05], [0.4, 0.15000000000000002, 0.05], [0.5, 0.15000000000000002, 0.05], [0.6000000000000001, 0.15000000000000002, 0.05], [0.7000000000000001, 0.15000000000000002, 0.05], [0.8, 0.15000000000000002, 0.05], [0.9000000000000001, 0.15000000000000002, 0.05], [1.0, 0.15000000000000002, 0.05], [-8.17561727994633e-18, 0.2, 0.049999999999999996], [0.09999999999999999, 0.2, 0.049999999999999996], [0.2, 0.2, 0.049999999999999996], [0.30000000000000004, 0.2, 0.049999999999999996], [0.4, 0.2, 0.049999999999999996], [0.5, 0.2, 0.049999999999999996], [0.6000000000000001, 0.2, 0.049999999999999996], [0.7000000000000001, 0.2, 0.049999999999999996], [0.8, 0.2, 0.049999999999999996], [0.9, 0.2, 0.049999999999999996], [1.0000000000000002, 0.20000000000000004, 0.050000000000000024], [-1.510554047423433e-19, 9.013887592422957e-19, 0.1], [0.1, 9.013887592422957e-19, 0.1], [0.2, 9.013887592422957e-19, 0.1], [0.30000000000000004, 9.013887592422957e-19, 0.1], [0.4, 9.013887592422957e-19, 0.1], [0.5, 9.013887592422957e-19, 0.1], [0.6000000000000001, 9.013887592422957e-19, 0.1], [0.7000000000000001, 9.013887592422957e-19, 0.1], [0.8, 9.013887592422957e-19, 0.1], [0.9000000000000001, 9.013887592422957e-19, 0.1], [1.0, 1.180279411929873e-18, 0.1], [-1.510554047423433e-19, 0.05000000000000001, 0.1], [0.1, 0.05000000000000001, 0.1], [0.2, 0.05000000000000001, 0.1], [0.30000000000000004, 0.05000000000000001, 0.1], [0.4, 0.05000000000000001, 0.1], [0.5, 0.05000000000000001, 0.1], [0.6000000000000001, 0.05000000000000001, 0.1], [0.7000000000000001, 0.05000000000000001, 0.1], [0.8, 0.05000000000000001, 0.1], [0.9000000000000001, 0.05000000000000001, 0.1], [1.0, 0.05, 0.1], [-1.510554047423433e-19, 0.10000000000000002, 0.1], [0.1, 0.10000000000000002, 0.1], [0.2, 0.10000000000000002, 0.1], [0.30000000000000004, 0.10000000000000002, 0.1], [0.4, 0.10000000000000002, 0.1], [0.5, 0.10000000000000002, 0.1], [0.6000000000000001, 0.10000000000000002, 0.1], [0.7000000000000001, 0.10000000000000002, 0.1], [0.8, 0.10000000000000002, 0.1], [0.9000000000000001, 0.10000000000000002, 0.1], [1.0, 0.1, 0.1], [-1.510554047423433e-19, 0.15000000000000002, 0.1], [0.1, 0.15000000000000002, 0.1], [0.2, 0.15000000000000002, 0.1], [0.30000000000000004, 0.15000000000000002, 0.1], [0.4, 0.15000000000000002, 0.1], [0.5, 0.15000000000000002, 0.1], [0.6000000000000001, 0.15000000000000002, 0.1], [0.7000000000000001, 0.15000000000000002, 0.1], [0.8, 0.15000000000000002, 0.1], [0.9000000000000001, 0.15000000000000002, 0.1], [1.0, 0.15000000000000002, 0.1], [-8.17561727994633e-18, 0.2, 0.1], [0.09999999999999999, 0.2, 0.1], [0.2, 0.2, 0.1], [0.30000000000000004, 0.2, 0.1], [0.4, 0.2, 0.1], [0.5, 0.2, 0.1], [0.6000000000000001, 0.2, 0.1], [0.7000000000000001, 0.2, 0.1], [0.8, 0.2, 0.1], [0.9, 0.2, 0.1], [1.0000000000000002, 0.20000000000000004, 0.10000000000000003], [-1.510554047423433e-19, 9.013887592422957e-19, 0.15000000000000002], [0.1, 9.013887592422957e-19, 0.15000000000000002], [0.2, 9.013887592422957e-19, 0.15000000000000002], [0.30000000000000004, 9.013887592422957e-19, 0.15000000000000002], [0.4, 9.013887592422957e-19, 0.15000000000000002], [0.5, 9.013887592422957e-19, 0.15000000000000002], [0.6000000000000001, 9.013887592422957e-19, 0.15000000000000002], [0.7000000000000001, 9.013887592422957e-19, 0.15000000000000002], [0.8, 9.013887592422957e-19, 0.15000000000000002], [0.9000000000000001, 9.013887592422957e-19, 0.15000000000000002], [1.0, 1.180279411929873e-18, 0.15000000000000002], [-1.510554047423433e-19, 0.05000000000000001, 0.15000000000000002], [0.1, 0.05000000000000001, 0.15000000000000002], [0.2, 0.05000000000000001, 0.15000000000000002], [0.30000000000000004, 0.05000000000000001, 0.15000000000000002], [0.4, 0.05000000000000001, 0.15000000000000002], [0.5, 0.05000000000000001, 0.15000000000000002], [0.6000000000000001, 0.05000000000000001, 0.15000000000000002], [0.7000000000000001, 0.05000000000000001, 0.15000000000000002], [0.8, 0.05000000000000001, 0.15000000000000002], [0.9000000000000001, 0.05000000000000001, 0.15000000000000002], [1.0, 0.05, 0.15000000000000002], [-1.510554047423433e-19, 0.10000000000000002, 0.15000000000000002], [0.1, 0.10000000000000002, 0.15000000000000002], [0.2, 0.10000000000000002, 0.15000000000000002], [0.30000000000000004, 0.10000000000000002, 0.15000000000000002], [0.4, 0.10000000000000002, 0.15000000000000002], [0.5, 0.10000000000000002, 0.15000000000000002], [0.6000000000000001, 0.10000000000000002, 0.15000000000000002], [0.7000000000000001, 0.10000000000000002, 0.15000000000000002], [0.8, 0.10000000000000002, 0.15000000000000002], [0.9000000000000001, 0.10000000000000002, 0.15000000000000002], [1.0, 0.1, 0.15000000000000002], [-1.510554047423433e-19, 0.15000000000000002, 0.15000000000000002], [0.1, 0.15000000000000002, 0.15000000000000002], [0.2, 0.15000000000000002, 0.15000000000000002], [0.30000000000000004, 0.15000000000000002, 0.15000000000000002], [0.4, 0.15000000000000002, 0.15000000000000002], [0.5, 0.15000000000000002, 0.15000000000000002], [0.6000000000000001, 0.15000000000000002, 0.15000000000000002], [0.7000000000000001, 0.15000000000000002, 0.15000000000000002], [0.8, 0.15000000000000002, 0.15000000000000002], [0.9000000000000001, 0.15000000000000002, 0.15000000000000002], [1.0, 0.15000000000000002, 0.15000000000000002], [-8.17561727994633e-18, 0.2, 0.15000000000000002], [0.09999999999999999, 0.2, 0.15000000000000002], [0.2, 0.2, 0.15000000000000002], [0.30000000000000004, 0.2, 0.15000000000000002], [0.4, 0.2, 0.15000000000000002], [0.5, 0.2, 0.15000000000000002], [0.6000000000000001, 0.2, 0.15000000000000002], [0.7000000000000001, 0.2, 0.15000000000000002], [0.8, 0.2, 0.15000000000000002], [0.9, 0.2, 0.15000000000000002], [1.0000000000000002, 0.20000000000000004, 0.15000000000000005], [7.089949308649572e-18, 1.180279411929873e-18, 0.20000000000000004], [0.10000000000000003, 1.180279411929873e-18, 0.20000000000000004], [0.20000000000000007, 1.180279411929873e-18, 0.20000000000000004], [0.3000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.4000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.5000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.6000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.7000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.8000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.9000000000000002, 1.180279411929873e-18, 0.20000000000000004], [1.0000000000000002, 1.0615840224712416e-17, 0.20000000000000007], [7.089949308649572e-18, 0.05000000000000001, 0.20000000000000004], [0.10000000000000003, 0.05000000000000001, 0.20000000000000004], [0.20000000000000007, 0.05000000000000001, 0.20000000000000004], [0.3000000000000001, 0.05000000000000001, 0.20000000000000004], [0.4000000000000001, 0.05000000000000001, 0.20000000000000004], [0.5000000000000001, 0.05000000000000001, 0.20000000000000004], [0.6000000000000002, 0.05000000000000001, 0.20000000000000004], [0.7000000000000002, 0.05000000000000001, 0.20000000000000004], [0.8000000000000002, 0.05000000000000001, 0.20000000000000004], [0.9000000000000002, 0.05000000000000001, 0.20000000000000004], [1.0000000000000002, 0.05000000000000003, 0.20000000000000007], [7.089949308649572e-18, 0.10000000000000002, 0.20000000000000004], [0.10000000000000003, 0.10000000000000002, 0.20000000000000004], [0.20000000000000007, 0.10000000000000002, 0.20000000000000004], [0.3000000000000001, 0.10000000000000002, 0.20000000000000004], [0.4000000000000001, 0.10000000000000002, 0.20000000000000004], [0.5000000000000001, 0.10000000000000002, 0.20000000000000004], [0.6000000000000002, 0.10000000000000002, 0.20000000000000004], [0.7000000000000002, 0.10000000000000002, 0.20000000000000004], [0.8000000000000002, 0.10000000000000002, 0.20000000000000004], [0.9000000000000002, 0.10000000000000002, 0.20000000000000004], [1.0000000000000002, 0.10000000000000006, 0.20000000000000007], [7.089949308649572e-18, 0.15000000000000005, 0.20000000000000004], [0.10000000000000003, 0.15000000000000005, 0.20000000000000004], [0.20000000000000007, 0.15000000000000005, 0.20000000000000004], [0.3000000000000001, 0.15000000000000005, 0.20000000000000004], [0.4000000000000001, 0.15000000000000005, 0.20000000000000004], [0.5000000000000001, 0.15000000000000005, 0.20000000000000004], [0.6000000000000002, 0.15000000000000005, 0.20000000000000004], [0.7000000000000002, 0.15000000000000005, 0.20000000000000004], [0.8000000000000002, 0.15000000000000005, 0.20000000000000004], [0.9000000000000002, 0.15000000000000005, 0.20000000000000004], [1.0000000000000002, 0.15000000000000008, 0.20000000000000007], [3.3155635334012356e-17, 0.2000000000000001, 0.2000000000000001], [0.10000000000000009, 0.2000000000000001, 0.2000000000000001], [0.20000000000000015, 0.2000000000000001, 0.2000000000000001], [0.30000000000000027, 0.2000000000000001, 0.2000000000000001], [0.4000000000000003, 0.2000000000000001, 0.2000000000000001], [0.5000000000000003, 0.2000000000000001, 0.2000000000000001], [0.6000000000000004, 0.2000000000000001, 0.2000000000000001], [0.7000000000000005, 0.2000000000000001, 0.2000000000000001], [0.8000000000000005, 0.2000000000000001, 0.2000000000000001], [0.9000000000000006, 0.2000000000000001, 0.2000000000000001], [1.0000000000000004, 0.20000000000000007, 0.2000000000000001]], "u": [[0.0, 0.0, 0.0], [-0.020000000000003414, 1.7686536603130642e-15, -4.095964593095682e-15], [-0.04000000000000646, 1.1079256756955115e-15, -8.118168860849181e-15], [-0.06000000000000902, 1.467304956377712e-16, -1.4533289779836677e-14], [-0.08000000000001099, -1.1971110035606918e-15, -2.2557159834152143e-14], [-0.10000000000001272, -2.799330301334867e-15, -3.184437103305163e-14], [-0.1200000000000139, -4.495578730274949e-15, -4.205338399141468e-14], [-0.14000000000001483, -6.472181053843496e-15, -5.2769446288354716e-14], [-0.16000000000001535, -8.56238890020733e-15, -6.39942483746029e-14], [-0.18000000000001562, -1.0688434685953075e-14, -7.548990399222773e-14], [-0.20000000000001564, -1.2780384779156956e-14, -8.704967390673412e-14], [0.0, 0.0030000000000016467, -2.7345032624670666e-15], [-0.020000000000003362, 0.0030000000000020726, -4.23258736198839e-15], [-0.04000000000000604, 0.0030000000000015444, -8.563503590023357e-15], [-0.0600000000000084, 0.0030000000000004762, -1.4884436517872207e-14], [-0.0800000000000103, 0.0029999999999990724, -2.2893206573864856e-14], [-0.1000000000000118, 0.002999999999997415, -3.2174743373852664e-14], [-0.12000000000001297, 0.002999999999995647, -4.230372293189599e-14], [-0.14000000000001372, 0.0029999999999936458, -5.304831871921276e-14], [-0.16000000000001433, 0.002999999999991496, -6.426701610020631e-14], [-0.18000000000001462, 0.002999999999989313, -7.570884989139629e-14], [-0.20000000000001464, 0.002999999999987213, -8.732596644700286e-14], [0.0, 0.006000000000002742, -3.0454167105055367e-15], [-0.020000000000003102, 0.006000000000002555, -4.563324338130692e-15], [-0.04000000000000569, 0.006000000000001883, -8.78370024838267e-15], [-0.06000000000000779, 0.006000000000000782, -1.5131307568146165e-14], [-0.08000000000000951, 0.005999999999999326, -2.313716224771459e-14], [-0.10000000000001108, 0.005999999999997631, -3.237953327849268e-14], [-0.12000000000001206, 0.005999999999995782, -4.25719537312868e-14], [-0.14000000000001264, 0.0059999999999937395, -5.3243897045757045e-14], [-0.16000000000001327, 0.005999999999991567, -6.453050559650918e-14], [-0.18000000000001354, 0.0059999999999893645, -7.59454231966719e-14], [-0.20000000000001364, 0.0059999999999872005, -8.759200778331537e-14], [0.0, 0.009000000000003705, -2.9701114160234214e-15], [-0.020000000000002932, 0.00900000000000303, -4.524518244610436e-15], [-0.040000000000005254, 0.009000000000002192, -8.919308051688842e-15], [-0.06000000000000723, 0.009000000000001063, -1.5241635949157364e-14], [-0.08000000000000884, 0.00899999999999955, -2.3262671507800448e-14], [-0.10000000000001001, 0.008999999999997826, -3.2537402899104526e-14], [-0.12000000000001106, 0.008999999999995904, -4.2692661142147566e-14], [-0.14000000000001173, 0.008999999999993838, -5.3446118890817145e-14], [-0.16000000000001244, 0.008999999999991603, -6.470578715812534e-14], [-0.18000000000001248, 0.008999999999989416, -7.618872313277176e-14], [-0.2000000000000126, 0.008999999999987214, -8.778506394057604e-14], [0.0, 0.012000000000004854, 0.0], [-0.020000000000002627, 0.012000000000003341, -4.809902797062927e-15], [-0.0400000000000048, 0.012000000000002514, -8.78606135531599e-15], [-0.060000000000006604, 0.012000000000001322, -1.5247079127863994e-14], [-0.08000000000000809, 0.01199999999999974, -2.3317558092821782e-14], [-0.10000000000000923, 0.011999999999998009, -3.260319930048977e-14], [-0.12000000000001021, 0.011999999999996035, -4.2789537531472746e-14], [-0.14000000000001073, 0.01199999999999395, -5.360890666315359e-14], [-0.1600000000000115, 0.011999999999991658, -6.493749066586763e-14], [-0.18000000000001135, 0.011999999999989398, -7.639374478347851e-14], [-0.2000000000000115, 0.01199999999998724, -8.802420857036963e-14], [0.0, 2.3545362224381893e-15, 0.002999999999998922], [-0.020000000000001846, 2.1356015429679266e-15, 0.0029999999999965688], [-0.040000000000003894, 1.622009338707114e-15, 0.0029999999999921847], [-0.06000000000000546, 5.89615814450943e-16, 0.002999999999985753], [-0.08000000000000679, -8.0313863251031e-16, 0.0029999999999776616], [-0.10000000000000775, -2.433454720082045e-15, 0.002999999999968333], [-0.1200000000000088, -4.215984151044166e-15, 0.002999999999958101], [-0.14000000000000934, -6.170654550520994e-15, 0.0029999999999473104], [-0.16000000000000975, -8.303462268864607e-15, 0.0029999999999360703], [-0.18000000000000996, -1.0454116527999873e-14, 0.002999999999924527], [-0.2000000000000098, -1.2552124109294364e-14, 0.0029999999999129295], [0.0, 0.003000000000002683, 0.0029999999999976972], [-0.020000000000001808, 0.0030000000000024443, 0.002999999999996072], [-0.04000000000000347, 0.003000000000001865, 0.002999999999991755], [-0.06000000000000488, 0.0030000000000007967, 0.002999999999985373], [-0.08000000000000604, 0.002999999999999367, 0.0029999999999773103], [-0.10000000000000699, 0.0029999999999977055, 0.002999999999968003], [-0.12000000000000786, 0.002999999999995893, 0.002999999999957805], [-0.14000000000000834, 0.0029999999999938934, 0.0029999999999470377], [-0.1600000000000088, 0.0029999999999917606, 0.0029999999999357945], [-0.18000000000000888, 0.002999999999989566, 0.0029999999999242746], [-0.2000000000000088, 0.0029999999999874155, 0.0029999999999126945], [0.0, 0.006000000000002899, 0.002999999999997204], [-0.020000000000001652, 0.006000000000002734, 0.0029999999999957673], [-0.040000000000003096, 0.006000000000002065, 0.002999999999991498], [-0.060000000000004265, 0.00600000000000097, 0.00299999999998509], [-0.08000000000000526, 0.005999999999999523, 0.0029999999999770605], [-0.10000000000000615, 0.005999999999997836, 0.0029999999999677546], [-0.12000000000000684, 0.005999999999995965, 0.0029999999999575483], [-0.14000000000000726, 0.005999999999993966, 0.002999999999946812], [-0.16000000000000766, 0.0059999999999918036, 0.0029999999999355525], [-0.18000000000000782, 0.005999999999989561, 0.002999999999924071], [-0.20000000000000775, 0.005999999999987445, 0.002999999999912384], [0.0, 0.009000000000003045, 0.0029999999999974773], [-0.02000000000000137, 0.009000000000002995, 0.0029999999999956953], [-0.04000000000000265, 0.009000000000002234, 0.002999999999991361], [-0.06000000000000373, 0.009000000000001125, 0.002999999999984956], [-0.08000000000000455, 0.008999999999999656, 0.0029999999999768953], [-0.10000000000000522, 0.008999999999997944, 0.0029999999999676024], [-0.12000000000000588, 0.008999999999996048, 0.0029999999999574087], [-0.1400000000000063, 0.008999999999994027, 0.002999999999946604], [-0.1600000000000065, 0.008999999999991851, 0.002999999999935338], [-0.18000000000000682, 0.008999999999989605, 0.002999999999923839], [-0.20000000000000684, 0.008999999999987417, 0.0029999999999121853], [0.0, 0.012000000000003378, 0.002999999999998381], [-0.02000000000000096, 0.012000000000003182, 0.00299999999999581], [-0.04000000000000221, 0.012000000000002382, 0.002999999999991376], [-0.06000000000000309, 0.012000000000001267, 0.002999999999984939], [-0.0800000000000038, 0.011999999999999754, 0.0029999999999768385], [-0.10000000000000447, 0.011999999999998035, 0.002999999999967503], [-0.12000000000000491, 0.011999999999996135, 0.002999999999957289], [-0.14000000000000526, 0.011999999999994067, 0.0029999999999464596], [-0.16000000000000555, 0.011999999999991885, 0.0029999999999351136], [-0.18000000000000568, 0.011999999999989682, 0.0029999999999235955], [-0.2000000000000056, 0.011999999999987378, 0.0029999999999119832], [0.0, 3.019596046889052e-15, 0.005999999999998557], [-0.020000000000000656, 2.7877740854157336e-15, 0.005999999999996773], [-0.04000000000000139, 2.1439147160803305e-15, 0.005999999999992401], [-0.06000000000000213, 1.0567074069516707e-15, 0.005999999999985899], [-0.0800000000000027, -3.926999429890619e-16, 0.005999999999977781], [-0.10000000000000318, -2.075301001117798e-15, 0.005999999999968445], [-0.12000000000000366, -3.910816821699712e-15, 0.005999999999958206], [-0.140000000000004, -5.869665177598457e-15, 0.005999999999947373], [-0.16000000000000425, -8.000765313423016e-15, 0.005999999999936099], [-0.18000000000000427, -1.0234143585325447e-14, 0.005999999999924515], [-0.2000000000000041, -1.2297383581068108e-14, 0.005999999999912882], [0.0, 0.0030000000000031555, 0.00599999999999787], [-0.020000000000000472, 0.0030000000000028866, 0.0059999999999962375], [-0.04000000000000101, 0.00300000000000222, 0.005999999999991914], [-0.06000000000000142, 0.003000000000001134, 0.005999999999985507], [-0.08000000000000186, 0.002999999999999696, 0.005999999999977408], [-0.1000000000000023, 0.002999999999997982, 0.005999999999968111], [-0.12000000000000269, 0.0029999999999961576, 0.0059999999999578975], [-0.14000000000000315, 0.0029999999999941497, 0.0059999999999471], [-0.16000000000000306, 0.0029999999999919978, 0.005999999999935829], [-0.18000000000000319, 0.00299999999998976, 0.0059999999999242664], [-0.20000000000000293, 0.0029999999999876592, 0.005999999999912637], [0.0, 0.00600000000000313, 0.005999999999997464], [-0.020000000000000295, 0.006000000000002952, 0.005999999999995888], [-0.04000000000000054, 0.006000000000002268, 0.005999999999991634], [-0.06000000000000087, 0.006000000000001184, 0.005999999999985201], [-0.08000000000000111, 0.005999999999999757, 0.005999999999977148], [-0.10000000000000137, 0.005999999999998024, 0.00599999999996786], [-0.1200000000000017, 0.005999999999996209, 0.005999999999957648], [-0.14000000000000187, 0.005999999999994171, 0.0059999999999468335], [-0.16000000000000208, 0.0059999999999920135, 0.005999999999935577], [-0.180000000000002, 0.005999999999989812, 0.005999999999924047], [-0.20000000000000204, 0.005999999999987615, 0.005999999999912378], [0.0, 0.009000000000003096, 0.005999999999997499], [-0.020000000000000014, 0.00900000000000298, 0.005999999999995802], [-0.040000000000000174, 0.009000000000002296, 0.005999999999991476], [-0.06000000000000031, 0.009000000000001214, 0.005999999999985025], [-0.08000000000000042, 0.008999999999999774, 0.005999999999976965], [-0.10000000000000059, 0.008999999999998062, 0.005999999999967681], [-0.1200000000000009, 0.00899999999999621, 0.005999999999957458], [-0.14000000000000087, 0.008999999999994209, 0.005999999999946616], [-0.16000000000000117, 0.008999999999992028, 0.005999999999935352], [-0.18000000000000094, 0.008999999999989834, 0.005999999999923828], [-0.20000000000000093, 0.0089999999999876, 0.005999999999912146], [0.0, 0.012000000000003152, 0.005999999999997754], [-0.019999999999999785, 0.012000000000002974, 0.005999999999995898], [-0.03999999999999973, 0.012000000000002304, 0.005999999999991477], [-0.059999999999999706, 0.012000000000001225, 0.005999999999984985], [-0.0799999999999997, 0.011999999999999778, 0.005999999999976896], [-0.09999999999999978, 0.0119999999999981, 0.0059999999999675625], [-0.11999999999999994, 0.011999999999996212, 0.005999999999957313], [-0.13999999999999976, 0.011999999999994248, 0.005999999999946438], [-0.1599999999999998, 0.011999999999992041, 0.0059999999999351735], [-0.17999999999999997, 0.01199999999998981, 0.005999999999923606], [-0.1999999999999998, 0.011999999999987599, 0.00599999999991192], [0.0, 3.661741256892589e-15, 0.008999999999998402], [-0.019999999999999404, 3.4128225765344942e-15, 0.008999999999996774], [-0.039999999999998974, 2.697885253428681e-15, 0.00899999999999244], [-0.05999999999999868, 1.5452065363354269e-15, 0.008999999999985948], [-0.07999999999999857, 2.984042545290014e-17, 0.008999999999977814], [-0.09999999999999844, -1.7146738856457191e-15, 0.008999999999968478], [-0.11999999999999851, -3.568931422629756e-15, 0.008999999999958243], [-0.1399999999999986, -5.576833353964215e-15, 0.008999999999947408], [-0.1599999999999986, -7.720788257069219e-15, 0.008999999999936123], [-0.17999999999999858, -9.96351477511492e-15, 0.008999999999924485], [-0.19999999999999835, -1.220445024368111e-14, 0.00899999999991284], [0.0, 0.0030000000000035645, 0.008999999999997805], [-0.01999999999999919, 0.0030000000000033125, 0.00899999999999621], [-0.03999999999999848, 0.003000000000002626, 0.008999999999991933], [-0.05999999999999804, 0.003000000000001496, 0.008999999999985502], [-0.07999999999999768, 0.003000000000000018, 0.008999999999977424], [-0.09999999999999769, 0.0029999999999982875, 0.008999999999968152], [-0.11999999999999764, 0.0029999999999964274, 0.00899999999995796], [-0.13999999999999754, 0.0029999999999944325, 0.008999999999947108], [-0.15999999999999753, 0.0029999999999922684, 0.00899999999993583], [-0.17999999999999733, 0.002999999999990036, 0.008999999999924237], [-0.19999999999999726, 0.0029999999999877954, 0.008999999999912564], [0.0, 0.006000000000003397, 0.008999999999997435], [-0.019999999999998942, 0.006000000000003184, 0.00899999999999585], [-0.03999999999999813, 0.006000000000002513, 0.008999999999991605], [-0.05999999999999743, 0.006000000000001435, 0.008999999999985199], [-0.07999999999999702, 0.005999999999999991, 0.008999999999977118], [-0.09999999999999659, 0.005999999999998256, 0.0089999999999679], [-0.1199999999999966, 0.0059999999999964275, 0.008999999999957686], [-0.13999999999999657, 0.005999999999994444, 0.00899999999994683], [-0.1599999999999964, 0.005999999999992257, 0.008999999999935561], [-0.1799999999999963, 0.005999999999990008, 0.008999999999924005], [-0.19999999999999615, 0.005999999999987799, 0.008999999999912366], [0.0, 0.009000000000003214, 0.008999999999997347], [-0.019999999999998776, 0.009000000000002995, 0.0089999999999957], [-0.039999999999997676, 0.009000000000002404, 0.008999999999991432], [-0.059999999999996875, 0.00900000000000133, 0.008999999999984982], [-0.07999999999999631, 0.008999999999999916, 0.008999999999976947], [-0.09999999999999586, 0.008999999999998214, 0.008999999999967668], [-0.11999999999999565, 0.008999999999996419, 0.00899999999995747], [-0.13999999999999546, 0.00899999999999443, 0.008999999999946611], [-0.15999999999999523, 0.008999999999992242, 0.008999999999935348], [-0.17999999999999516, 0.008999999999990006, 0.008999999999923796], [-0.199999999999995, 0.008999999999987771, 0.008999999999912129], [0.0, 0.012000000000003027, 0.008999999999997427], [-0.019999999999998536, 0.01200000000000282, 0.008999999999995775], [-0.039999999999997295, 0.012000000000002235, 0.008999999999991397], [-0.05999999999999628, 0.012000000000001221, 0.00899999999998491], [-0.0799999999999955, 0.011999999999999829, 0.008999999999976848], [-0.09999999999999505, 0.011999999999998179, 0.008999999999967527], [-0.11999999999999471, 0.01199999999999638, 0.008999999999957303], [-0.13999999999999443, 0.011999999999994399, 0.008999999999946386], [-0.15999999999999426, 0.011999999999992223, 0.00899999999993515], [-0.17999999999999397, 0.011999999999990012, 0.008999999999923573], [-0.19999999999999402, 0.011999999999987764, 0.008999999999911884], [0.0, 4.3695608833343894e-15, 0.011999999999998175], [-0.01999999999999803, 4.0870640214340914e-15, 0.011999999999996605], [-0.039999999999996386, 3.2918404844089734e-15, 0.011999999999992307], [-0.059999999999995154, 2.0665881793043843e-15, 0.011999999999985867], [-0.07999999999999426, 4.901868384883147e-16, 0.011999999999977763], [-0.09999999999999376, -1.3178036055450634e-15, 0.011999999999968435], [-0.11999999999999333, -3.254238983548642e-15, 0.01199999999995823], [-0.1399999999999931, -5.246837598573331e-15, 0.0119999999999474], [-0.15999999999999287, -7.401342696617148e-15, 0.011999999999936116], [-0.1799999999999928, -9.700420979390869e-15, 0.011999999999924448], [-0.1999999999999925, -1.1986244464103778e-14, 0.011999999999912806], [0.0, 0.0030000000000040385, 0.011999999999997568], [-0.01999999999999779, 0.003000000000003788, 0.01199999999999599], [-0.03999999999999595, 0.003000000000003052, 0.01199999999999178], [-0.059999999999994544, 0.003000000000001897, 0.011999999999985385], [-0.07999999999999349, 0.0030000000000003618, 0.011999999999977334], [-0.09999999999999275, 0.002999999999998619, 0.01199999999996812], [-0.11999999999999236, 0.002999999999996702, 0.011999999999957904], [-0.13999999999999205, 0.0029999999999947243, 0.011999999999947076], [-0.15999999999999184, 0.0029999999999925525, 0.011999999999935803], [-0.17999999999999142, 0.0029999999999902657, 0.0119999999999242], [-0.19999999999999155, 0.002999999999987994, 0.011999999999912558], [0.0, 0.006000000000003677, 0.011999999999997166], [-0.019999999999997575, 0.006000000000003438, 0.011999999999995627], [-0.039999999999995525, 0.006000000000002802, 0.011999999999991408], [-0.059999999999993905, 0.006000000000001695, 0.011999999999985049], [-0.07999999999999272, 0.006000000000000224, 0.011999999999977026], [-0.09999999999999211, 0.0059999999999985525, 0.011999999999967833], [-0.11999999999999136, 0.005999999999996664, 0.01199999999995765], [-0.13999999999999102, 0.005999999999994694, 0.011999999999946788], [-0.1599999999999907, 0.005999999999992508, 0.011999999999935517], [-0.1799999999999905, 0.005999999999990227, 0.011999999999923976], [-0.1999999999999904, 0.005999999999988009, 0.011999999999912334], [0.0, 0.009000000000003271, 0.01199999999999703], [-0.01999999999999735, 0.009000000000003089, 0.011999999999995426], [-0.0399999999999951, 0.00900000000000251, 0.011999999999991207], [-0.05999999999999336, 0.00900000000000149, 0.011999999999984814], [-0.07999999999999201, 0.009000000000000067, 0.011999999999976821], [-0.09999999999999103, 0.008999999999998436, 0.011999999999967582], [-0.11999999999999039, 0.00899999999999661, 0.011999999999957427], [-0.13999999999999002, 0.00899999999999466, 0.01199999999994655], [-0.15999999999998957, 0.008999999999992467, 0.01199999999993531], [-0.1799999999999893, 0.008999999999990243, 0.011999999999923783], [-0.1999999999999893, 0.008999999999987978, 0.011999999999912093], [0.0, 0.012000000000002863, 0.011999999999997065], [-0.019999999999997166, 0.012000000000002679, 0.011999999999995464], [-0.039999999999994706, 0.0120000000000022, 0.011999999999991151], [-0.059999999999992754, 0.012000000000001253, 0.011999999999984705], [-0.07999999999999126, 0.011999999999999882, 0.011999999999976724], [-0.09999999999999033, 0.011999999999998297, 0.011999999999967405], [-0.11999999999998943, 0.011999999999996538, 0.011999999999957229], [-0.1399999999999889, 0.011999999999994595, 0.011999999999946328], [-0.15999999999998848, 0.011999999999992421, 0.01199999999993509], [-0.17999999999998834, 0.011999999999990251, 0.01199999999992352], [-0.19999999999998797, 0.011999999999987925, 0.011999999999911864]]}}, "tet": {"fenics": {"x": [[4.665716287175671e-19, -2.8407483086153776e-18, -3.074034122974161e-18], [0.09999999999999998, 5.534199685153879e-19, 5.534199685153879e-19], [0.19999999999999998, -2.8407483086153776e-18, -3.074034122974161e-18], [0.3, 5.534199685153879e-19, 5.534199685153879e-19], [0.39999999999999997, -2.8407483086153776e-18, -3.074034122974161e-18], [0.4999999999999999, 5.534199685153879e-19, 5.534199685153879e-19], [0.6, -2.8407483086153776e-18, -3.074034122974161e-18], [0.7, 5.534199685153879e-19, 5.534199685153879e-19], [0.7999999999999999, -2.8407483086153776e-18, -3.074034122974161e-18], [0.8999999999999999, 5.534199685153879e-19, 5.534199685153879e-19], [0.9999999999999999, -1.923661031636234e-18, -2.477081000151622e-18], [2.7755575615628915e-18, 0.05000000000000001, 1.3877787807814458e-18], [0.09999999999999998, 0.049999999999999996, 2.3328581435878354e-19], [0.20000000000000004, 0.05000000000000001, 1.3877787807814458e-18], [0.3, 0.049999999999999996, 2.3328581435878354e-19], [0.4000000000000001, 0.05000000000000001, 1.3877787807814458e-18], [0.4999999999999999, 0.049999999999999996, 2.3328581435878354e-19], [0.6000000000000002, 0.05000000000000001, 1.3877787807814458e-18], [0.7, 0.049999999999999996, 2.3328581435878354e-19], [0.8000000000000002, 0.05000000000000001, 1.3877787807814458e-18], [0.8999999999999998, 0.049999999999999996, 2.3328581435878354e-19], [1.0, 0.05000000000000001, -7.867057828741714e-19], [4.665716287175671e-19, 0.09999999999999998, -3.074034122974161e-18], [0.09999999999999998, 0.09999999999999999, 5.534199685153879e-19], [0.19999999999999998, 0.09999999999999998, -3.074034122974161e-18], [0.3, 0.09999999999999999, 5.534199685153879e-19], [0.39999999999999997, 0.09999999999999998, -3.074034122974161e-18], [0.4999999999999999, 0.09999999999999999, 5.534199685153879e-19], [0.6, 0.09999999999999998, -3.074034122974161e-18], [0.7, 0.09999999999999999, 5.534199685153879e-19], [0.7999999999999999, 0.09999999999999998, -3.074034122974161e-18], [0.8999999999999999, 0.09999999999999999, 5.534199685153879e-19], [0.9999999999999999, 0.09999999999999998, -2.477081000151622e-18], [2.7755575615628915e-18, 0.15000000000000005, 1.3877787807814458e-18], [0.09999999999999998, 0.15, 2.3328581435878354e-19], [0.20000000000000004, 0.15000000000000005, 1.3877787807814458e-18], [0.3, 0.15, 2.3328581435878354e-19], [0.4000000000000001, 0.15000000000000005, 1.3877787807814458e-18], [0.4999999999999999, 0.15, 2.3328581435878354e-19], [0.6000000000000002, 0.15000000000000005, 1.3877787807814458e-18], [0.7, 0.15, 2.3328581435878354e-19], [0.8000000000000002, 0.15000000000000005, 1.3877787807814458e-18], [0.8999999999999998, 0.15, 2.3328581435878354e-19], [1.0, 0.15000000000000005, -7.867057828741714e-19], [-6.148068245948322e-18, 0.19999999999999998, 2.3328581435878354e-19], [0.09999999999999998, 0.19999999999999998, -2.477081000151622e-18], [0.19999999999999996, 0.19999999999999998, 2.3328581435878354e-19], [0.3, 0.19999999999999998, -2.477081000151622e-18], [0.3999999999999999, 0.19999999999999998, 2.3328581435878354e-19], [0.4999999999999999, 0.19999999999999998, -2.477081000151622e-18], [0.6, 0.19999999999999998, 2.3328581435878354e-19], [0.7, 0.19999999999999998, -2.477081000151622e-18], [0.7999999999999999, 0.19999999999999998, 2.3328581435878354e-19], [0.8999999999999999, 0.19999999999999998, -2.477081000151622e-18], [1.0, 0.20000000000000004, 2.7755575615628915e-18], [-5.681496617230755e-18, 0.0, 0.049999999999999996], [0.10000000000000002, 2.7755575615628915e-18, 0.05000000000000001], [0.19999999999999996, 0.0, 0.049999999999999996], [0.3000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.3999999999999999, 0.0, 0.049999999999999996], [0.5000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.6, 0.0, 0.049999999999999996], [0.7000000000000002, 2.7755575615628915e-18, 0.05000000000000001], [0.7999999999999999, 0.0, 0.049999999999999996], [0.9000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.9999999999999998, -3.074034122974161e-18, 0.049999999999999996], [-3.847322063272468e-18, 0.049999999999999996, 0.049999999999999996], [0.09999999999999999, 0.04999999999999999, 0.04999999999999999], [0.19999999999999996, 0.049999999999999996, 0.049999999999999996], [0.3, 0.04999999999999999, 0.04999999999999999], [0.39999999999999997, 0.049999999999999996, 0.049999999999999996], [0.4999999999999999, 0.04999999999999999, 0.04999999999999999], [0.6, 0.049999999999999996, 0.049999999999999996], [0.7, 0.04999999999999999, 0.04999999999999999], [0.7999999999999999, 0.049999999999999996, 0.049999999999999996], [0.8999999999999999, 0.04999999999999999, 0.04999999999999999], [1.0, 0.05000000000000001, 0.05000000000000002], [-5.681496617230755e-18, 0.09999999999999999, 0.049999999999999996], [0.10000000000000002, 0.10000000000000002, 0.05000000000000001], [0.19999999999999996, 0.09999999999999999, 0.049999999999999996], [0.3000000000000001, 0.10000000000000002, 0.05000000000000001], [0.3999999999999999, 0.09999999999999999, 0.049999999999999996], [0.5000000000000001, 0.10000000000000002, 0.05000000000000001], [0.6, 0.09999999999999999, 0.049999999999999996], [0.7000000000000002, 0.10000000000000002, 0.05000000000000001], [0.7999999999999999, 0.09999999999999999, 0.049999999999999996], [0.9000000000000001, 0.10000000000000002, 0.05000000000000001], [0.9999999999999998, 0.09999999999999998, 0.049999999999999996], [-3.847322063272468e-18, 0.15, 0.049999999999999996], [0.09999999999999999, 0.15, 0.04999999999999999], [0.19999999999999996, 0.15, 0.049999999999999996], [0.3, 0.15, 0.04999999999999999], [0.39999999999999997, 0.15, 0.049999999999999996], [0.4999999999999999, 0.15, 0.04999999999999999], [0.6, 0.15, 0.049999999999999996], [0.7, 0.15, 0.04999999999999999], [0.7999999999999999, 0.15, 0.049999999999999996], [0.8999999999999999, 0.15, 0.04999999999999999], [1.0, 0.15000000000000005, 0.05000000000000002], [-5.681496617230755e-18, 0.19999999999999998, 0.04999999999999999], [0.10000000000000002, 0.20000000000000004, 0.05000000000000001], [0.19999999999999996, 0.19999999999999998, 0.04999999999999999], [0.3000000000000001, 0.20000000000000004, 0.05000000000000001], [0.3999999999999999, 0.19999999999999998, 0.04999999999999999], [0.5000000000000001, 0.20000000000000004, 0.05000000000000001], [0.6, 0.19999999999999998, 0.04999999999999999], [0.7000000000000002, 0.20000000000000004, 0.05000000000000001], [0.7999999999999999, 0.19999999999999998, 0.04999999999999999], [0.9000000000000001, 0.20000000000000004, 0.05000000000000001], [0.9999999999999998, 0.19999999999999998, 0.04999999999999999], [4.665716287175671e-19, -2.8407483086153776e-18, 0.09999999999999998], [0.09999999999999998, 5.534199685153879e-19, 0.09999999999999999], [0.19999999999999998, -2.8407483086153776e-18, 0.09999999999999998], [0.3, 5.534199685153879e-19, 0.09999999999999999], [0.39999999999999997, -2.8407483086153776e-18, 0.09999999999999998], [0.4999999999999999, 5.534199685153879e-19, 0.09999999999999999], [0.6, -2.8407483086153776e-18, 0.09999999999999998], [0.7, 5.534199685153879e-19, 0.09999999999999999], [0.7999999999999999, -2.8407483086153776e-18, 0.09999999999999998], [0.8999999999999999, 5.534199685153879e-19, 0.09999999999999999], [1.0, -7.867057828741714e-19, 0.10000000000000002], [2.7755575615628915e-18, 0.05000000000000001, 0.10000000000000002], [0.09999999999999998, 0.049999999999999996, 0.09999999999999999], [0.20000000000000004, 0.05000000000000001, 0.10000000000000002], [0.3, 0.049999999999999996, 0.09999999999999999], [0.4000000000000001, 0.05000000000000001, 0.10000000000000002], [0.4999999999999999, 0.049999999999999996, 0.09999999999999999], [0.6000000000000002, 0.05000000000000001, 0.10000000000000002], [0.7, 0.049999999999999996, 0.09999999999999999], [0.8000000000000002, 0.05000000000000001, 0.10000000000000002], [0.8999999999999998, 0.049999999999999996, 0.09999999999999999], [1.0, 0.05000000000000001, 0.10000000000000002], [4.665716287175671e-19, 0.09999999999999998, 0.09999999999999998], [0.09999999999999998, 0.09999999999999999, 0.09999999999999999], [0.19999999999999998, 0.09999999999999998, 0.09999999999999998], [0.3, 0.09999999999999999, 0.09999999999999999], [0.39999999999999997, 0.09999999999999998, 0.09999999999999998], [0.4999999999999999, 0.09999999999999999, 0.09999999999999999], [0.6, 0.09999999999999998, 0.09999999999999998], [0.7, 0.09999999999999999, 0.09999999999999999], [0.7999999999999999, 0.09999999999999998, 0.09999999999999998], [0.8999999999999999, 0.09999999999999999, 0.09999999999999999], [0.9999999999999999, 0.09999999999999998, 0.09999999999999998], [2.7755575615628915e-18, 0.15000000000000005, 0.10000000000000002], [0.09999999999999998, 0.15, 0.09999999999999999], [0.20000000000000004, 0.15000000000000005, 0.10000000000000002], [0.3, 0.15, 0.09999999999999999], [0.4000000000000001, 0.15000000000000005, 0.10000000000000002], [0.4999999999999999, 0.15, 0.09999999999999999], [0.6000000000000002, 0.15000000000000005, 0.10000000000000002], [0.7, 0.15, 0.09999999999999999], [0.8000000000000002, 0.15000000000000005, 0.10000000000000002], [0.8999999999999998, 0.15, 0.09999999999999999], [1.0, 0.15000000000000005, 0.10000000000000002], [-6.148068245948322e-18, 0.19999999999999998, 0.09999999999999999], [0.09999999999999998, 0.19999999999999998, 0.09999999999999998], [0.19999999999999996, 0.19999999999999998, 0.09999999999999999], [0.3, 0.19999999999999998, 0.09999999999999998], [0.3999999999999999, 0.19999999999999998, 0.09999999999999999], [0.4999999999999999, 0.19999999999999998, 0.09999999999999998], [0.6, 0.19999999999999998, 0.09999999999999999], [0.7, 0.19999999999999998, 0.09999999999999998], [0.7999999999999999, 0.19999999999999998, 0.09999999999999999], [0.8999999999999999, 0.19999999999999998, 0.09999999999999998], [1.0, 0.20000000000000004, 0.10000000000000002], [-5.681496617230755e-18, 0.0, 0.15], [0.10000000000000002, 2.7755575615628915e-18, 0.15000000000000005], [0.19999999999999996, 0.0, 0.15], [0.3000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.3999999999999999, 0.0, 0.15], [0.5000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.6, 0.0, 0.15], [0.7000000000000002, 2.7755575615628915e-18, 0.15000000000000005], [0.7999999999999999, 0.0, 0.15], [0.9000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.9999999999999998, -3.074034122974161e-18, 0.15], [-3.847322063272468e-18, 0.049999999999999996, 0.15], [0.09999999999999999, 0.04999999999999999, 0.15], [0.19999999999999996, 0.049999999999999996, 0.15], [0.3, 0.04999999999999999, 0.15], [0.39999999999999997, 0.049999999999999996, 0.15], [0.4999999999999999, 0.04999999999999999, 0.15], [0.6, 0.049999999999999996, 0.15], [0.7, 0.04999999999999999, 0.15], [0.7999999999999999, 0.049999999999999996, 0.15], [0.8999999999999999, 0.04999999999999999, 0.15], [1.0, 0.05000000000000001, 0.15000000000000005], [-5.681496617230755e-18, 0.09999999999999999, 0.15], [0.10000000000000002, 0.10000000000000002, 0.15000000000000005], [0.19999999999999996, 0.09999999999999999, 0.15], [0.3000000000000001, 0.10000000000000002, 0.15000000000000005], [0.3999999999999999, 0.09999999999999999, 0.15], [0.5000000000000001, 0.10000000000000002, 0.15000000000000005], [0.6, 0.09999999999999999, 0.15], [0.7000000000000002, 0.10000000000000002, 0.15000000000000005], [0.7999999999999999, 0.09999999999999999, 0.15], [0.9000000000000001, 0.10000000000000002, 0.15000000000000005], [0.9999999999999998, 0.09999999999999998, 0.15], [-3.847322063272468e-18, 0.15, 0.15], [0.09999999999999999, 0.15, 0.15], [0.19999999999999996, 0.15, 0.15], [0.3, 0.15, 0.15], [0.39999999999999997, 0.15, 0.15], [0.4999999999999999, 0.15, 0.15], [0.6, 0.15, 0.15], [0.7, 0.15, 0.15], [0.7999999999999999, 0.15, 0.15], [0.8999999999999999, 0.15, 0.15], [1.0, 0.15000000000000005, 0.15000000000000005], [-5.681496617230755e-18, 0.19999999999999998, 0.15], [0.10000000000000002, 0.20000000000000004, 0.15000000000000005], [0.19999999999999996, 0.19999999999999998, 0.15], [0.3000000000000001, 0.20000000000000004, 0.15000000000000005], [0.3999999999999999, 0.19999999999999998, 0.15], [0.5000000000000001, 0.20000000000000004, 0.15000000000000005], [0.6, 0.19999999999999998, 0.15], [0.7000000000000002, 0.20000000000000004, 0.15000000000000005], [0.7999999999999999, 0.19999999999999998, 0.15], [0.9000000000000001, 0.20000000000000004, 0.15000000000000005], [0.9999999999999998, 0.19999999999999998, 0.15], [-6.148068245948322e-18, -2.8407483086153776e-18, 0.19999999999999998], [0.09999999999999998, -2.477081000151622e-18, 0.19999999999999998], [0.19999999999999996, -2.8407483086153776e-18, 0.19999999999999998], [0.3, -2.477081000151622e-18, 0.19999999999999998], [0.3999999999999999, -2.8407483086153776e-18, 0.19999999999999998], [0.4999999999999999, -2.477081000151622e-18, 0.19999999999999998], [0.6, -2.8407483086153776e-18, 0.19999999999999998], [0.7, -2.477081000151622e-18, 0.19999999999999998], [0.7999999999999999, -2.8407483086153776e-18, 0.19999999999999998], [0.8999999999999999, -2.477081000151622e-18, 0.19999999999999998], [0.9999999999999999, -1.923661031636234e-18, 0.19999999999999998], [5.551115123125783e-18, 0.05000000000000001, 0.20000000000000004], [0.09999999999999998, 0.049999999999999996, 0.19999999999999998], [0.20000000000000004, 0.05000000000000001, 0.20000000000000004], [0.3, 0.049999999999999996, 0.19999999999999998], [0.4000000000000001, 0.05000000000000001, 0.20000000000000004], [0.4999999999999999, 0.049999999999999996, 0.19999999999999998], [0.6000000000000002, 0.05000000000000001, 0.20000000000000004], [0.7, 0.049999999999999996, 0.19999999999999998], [0.8000000000000002, 0.05000000000000001, 0.20000000000000004], [0.8999999999999998, 0.049999999999999996, 0.19999999999999998], [1.0, 0.05000000000000001, 0.20000000000000004], [-6.148068245948322e-18, 0.09999999999999998, 0.19999999999999998], [0.09999999999999998, 0.09999999999999998, 0.19999999999999998], [0.19999999999999996, 0.09999999999999998, 0.19999999999999998], [0.3, 0.09999999999999998, 0.19999999999999998], [0.3999999999999999, 0.09999999999999998, 0.19999999999999998], [0.4999999999999999, 0.09999999999999998, 0.19999999999999998], [0.6, 0.09999999999999998, 0.19999999999999998], [0.7, 0.09999999999999998, 0.19999999999999998], [0.7999999999999999, 0.09999999999999998, 0.19999999999999998], [0.8999999999999999, 0.09999999999999998, 0.19999999999999998], [0.9999999999999999, 0.09999999999999998, 0.19999999999999998], [5.551115123125783e-18, 0.15000000000000005, 0.20000000000000004], [0.09999999999999998, 0.15, 0.19999999999999998], [0.20000000000000004, 0.15000000000000005, 0.20000000000000004], [0.3, 0.15, 0.19999999999999998], [0.4000000000000001, 0.15000000000000005, 0.20000000000000004], [0.4999999999999999, 0.15, 0.19999999999999998], [0.6000000000000002, 0.15000000000000005, 0.20000000000000004], [0.7, 0.15, 0.19999999999999998], [0.8000000000000002, 0.15000000000000005, 0.20000000000000004], [0.8999999999999998, 0.15, 0.19999999999999998], [1.0, 0.15000000000000005, 0.20000000000000004], [4.665716287175671e-19, 0.19999999999999998, 0.19999999999999998], [0.09999999999999998, 0.19999999999999998, 0.19999999999999998], [0.19999999999999998, 0.19999999999999998, 0.19999999999999998], [0.3, 0.19999999999999998, 0.19999999999999998], [0.39999999999999997, 0.19999999999999998, 0.19999999999999998], [0.4999999999999999, 0.19999999999999998, 0.19999999999999998], [0.6, 0.19999999999999998, 0.19999999999999998], [0.7, 0.19999999999999998, 0.19999999999999998], [0.7999999999999999, 0.19999999999999998, 0.19999999999999998], [0.8999999999999999, 0.19999999999999998, 0.19999999999999998], [0.9999999999999999, 0.19999999999999998, 0.19999999999999998]], "u": [[0.0, 0.0, 0.0], [-0.020000000000000382, -1.2292665539572353e-15, 3.400490015578278e-16], [-0.04000000000000075, -2.226845419985863e-15, 1.7670336088219991e-15], [-0.06000000000000111, -3.698841361849934e-15, 4.067850875897628e-15], [-0.08000000000000153, -5.57317106995226e-15, 7.086460769662015e-15], [-0.10000000000000205, -7.901169061656342e-15, 1.0754280543181131e-14], [-0.12000000000000283, -1.0617469382336656e-14, 1.4870038473598757e-14], [-0.14000000000000357, -1.3543738546733548e-14, 1.9275878446563832e-14], [-0.16000000000000422, -1.6387866153085113e-14, 2.3867963186750978e-14], [-0.18000000000000468, -1.9113768973606065e-14, 2.8372957048019532e-14], [-0.2000000000000049, -2.194479362696565e-14, 3.290830718185875e-14], [0.0, 0.0029999999999994905, 4.957328875530824e-17], [-0.020000000000000046, 0.002999999999998779, 5.630288791975223e-16], [-0.04000000000000016, 0.002999999999997788, 2.0243319105822523e-15], [-0.060000000000000255, 0.002999999999996368, 4.2623277278885945e-15], [-0.08000000000000046, 0.0029999999999944828, 7.308860763684898e-15], [-0.10000000000000077, 0.0029999999999922107, 1.092784271218128e-14], [-0.1200000000000015, 0.0029999999999894824, 1.5041718507494704e-14], [-0.14000000000000212, 0.0029999999999865607, 1.9432199621281795e-14], [-0.16000000000000278, 0.0029999999999836876, 2.40221108909632e-14], [-0.18000000000000316, 0.002999999999980945, 2.853204198185341e-14], [-0.20000000000000343, 0.0029999999999781334, 3.307961226214671e-14], [0.0, 0.005999999999999228, 3.1017328732338683e-16], [-0.019999999999999806, 0.005999999999998746, 7.423371472410441e-16], [-0.039999999999999605, 0.0059999999999978005, 2.224694610072132e-15], [-0.0599999999999995, 0.005999999999996383, 4.433625085765029e-15], [-0.07999999999999943, 0.005999999999994528, 7.516766708110188e-15], [-0.09999999999999934, 0.005999999999992276, 1.1093359960069206e-14], [-0.12000000000000009, 0.005999999999989582, 1.5192061992180474e-14], [-0.14000000000000073, 0.005999999999986672, 1.9572683091556123e-14], [-0.16000000000000147, 0.005999999999983764, 2.416643766731767e-14], [-0.18000000000000188, 0.005999999999981004, 2.8676514817896616e-14], [-0.2000000000000021, 0.005999999999978215, 3.321911140245817e-14], [0.0, 0.008999999999999024, 2.922385130214472e-16], [-0.019999999999999494, 0.008999999999998709, 8.153649898366794e-16], [-0.03999999999999904, 0.008999999999997739, 2.322440938185006e-15], [-0.059999999999998686, 0.008999999999996372, 4.50821159424113e-15], [-0.07999999999999846, 0.008999999999994509, 7.595192681904444e-15], [-0.09999999999999831, 0.00899999999999233, 1.1166165111213925e-14], [-0.11999999999999884, 0.008999999999989674, 1.5318149023535432e-14], [-0.13999999999999943, 0.008999999999986767, 1.9650912156995825e-14], [-0.1600000000000001, 0.008999999999983847, 2.4273985398730454e-14], [-0.1800000000000005, 0.008999999999981053, 2.881721502140693e-14], [-0.20000000000000076, 0.00899999999997828, 3.339346751958588e-14], [0.0, 0.011999999999998916, 0.0], [-0.019999999999999275, 0.0119999999999986, 7.581438992637813e-16], [-0.03999999999999851, 0.011999999999997677, 2.3875752334389647e-15], [-0.059999999999997916, 0.011999999999996312, 4.570602026409995e-15], [-0.07999999999999749, 0.01199999999999449, 7.692395739996645e-15], [-0.09999999999999726, 0.011999999999992359, 1.1251771942925297e-14], [-0.11999999999999758, 0.011999999999989758, 1.5446927663524136e-14], [-0.13999999999999807, 0.011999999999986853, 1.9784061599754897e-14], [-0.1599999999999986, 0.011999999999983925, 2.4418147872579524e-14], [-0.1799999999999991, 0.011999999999981107, 2.8984379957387905e-14], [-0.19999999999999934, 0.011999999999978346, 3.357156230238835e-14], [0.0, -9.943328706780912e-16, 0.002999999999999855], [-0.020000000000000868, -1.5700140890145201e-15, 0.0030000000000004502], [-0.04000000000000166, -2.4696645094669552e-15, 0.0030000000000017747], [-0.060000000000002406, -3.93790263555466e-15, 0.0030000000000041695], [-0.08000000000000312, -5.764985941191602e-15, 0.003000000000007128], [-0.10000000000000381, -8.107138590551957e-15, 0.0030000000000108937], [-0.12000000000000492, -1.0775154808159333e-14, 0.0030000000000149738], [-0.14000000000000584, -1.3712804794739815e-14, 0.0030000000000194285], [-0.16000000000000655, -1.6571671825643275e-14, 0.003000000000023963], [-0.18000000000000696, -1.9282961192713728e-14, 0.0030000000000284235], [-0.20000000000000737, -2.2075769993341184e-14, 0.003000000000032922], [0.0, 0.0029999999999990807, 0.0030000000000001575], [-0.020000000000000556, 0.002999999999998566, 0.003000000000000709], [-0.04000000000000109, 0.0029999999999976157, 0.0030000000000020197], [-0.06000000000000159, 0.002999999999996188, 0.003000000000004374], [-0.08000000000000212, 0.002999999999994329, 0.0030000000000073228], [-0.10000000000000271, 0.0029999999999920333, 0.0030000000000110676], [-0.12000000000000363, 0.0029999999999893445, 0.0030000000000151373], [-0.14000000000000445, 0.0029999999999863925, 0.003000000000019567], [-0.16000000000000514, 0.0029999999999835198, 0.003000000000024108], [-0.18000000000000554, 0.0029999999999807876, 0.0030000000000285835], [-0.20000000000000584, 0.0029999999999779704, 0.0030000000000330795], [0.0, 0.005999999999999104, 0.003000000000000214], [-0.020000000000000257, 0.005999999999998594, 0.003000000000000805], [-0.04000000000000051, 0.005999999999997689, 0.0030000000000021355], [-0.060000000000000796, 0.005999999999996235, 0.0030000000000044943], [-0.08000000000000108, 0.005999999999994418, 0.0030000000000074403], [-0.10000000000000145, 0.005999999999992126, 0.0030000000000111942], [-0.12000000000000229, 0.005999999999989471, 0.003000000000015279], [-0.1400000000000031, 0.005999999999986512, 0.0030000000000197004], [-0.16000000000000383, 0.0059999999999836, 0.003000000000024239], [-0.18000000000000418, 0.005999999999980833, 0.0030000000000287293], [-0.2000000000000045, 0.005999999999978045, 0.0030000000000332404], [0.0, 0.00899999999999908, 0.0030000000000002516], [-0.019999999999999966, 0.00899999999999864, 0.0030000000000008783], [-0.039999999999999925, 0.008999999999997703, 0.003000000000002239], [-0.059999999999999984, 0.008999999999996289, 0.0030000000000045845], [-0.08000000000000007, 0.008999999999994445, 0.0030000000000075444], [-0.10000000000000032, 0.008999999999992224, 0.003000000000011272], [-0.12000000000000093, 0.008999999999989588, 0.0030000000000153884], [-0.14000000000000173, 0.008999999999986628, 0.003000000000019805], [-0.16000000000000247, 0.008999999999983703, 0.0030000000000243517], [-0.18000000000000288, 0.008999999999980884, 0.0030000000000288724], [-0.20000000000000318, 0.008999999999978107, 0.0030000000000333996], [0.0, 0.011999999999998998, 0.003000000000000153], [-0.01999999999999968, 0.011999999999998553, 0.003000000000000835], [-0.0399999999999994, 0.011999999999997686, 0.0030000000000022205], [-0.059999999999999214, 0.011999999999996252, 0.003000000000004593], [-0.07999999999999906, 0.011999999999994463, 0.0030000000000075834], [-0.09999999999999923, 0.01199999999999225, 0.003000000000011336], [-0.11999999999999961, 0.011999999999989682, 0.0030000000000154716], [-0.14000000000000026, 0.011999999999986724, 0.003000000000019915], [-0.16000000000000095, 0.011999999999983791, 0.0030000000000244774], [-0.18000000000000146, 0.011999999999980963, 0.003000000000029034], [-0.2000000000000019, 0.01199999999997815, 0.0030000000000335765], [0.0, -1.4058645048853774e-15, 0.006000000000000131], [-0.02000000000000131, -1.8091060326945353e-15, 0.006000000000000525], [-0.04000000000000251, -2.7272747784529477e-15, 0.0060000000000020115], [-0.06000000000000366, -4.12254209940803e-15, 0.006000000000004235], [-0.08000000000000476, -5.973911970919147e-15, 0.006000000000007343], [-0.10000000000000575, -8.252768216455157e-15, 0.006000000000011012], [-0.120000000000007, -1.0929666695010922e-14, 0.006000000000015207], [-0.1400000000000082, -1.383810491510111e-14, 0.006000000000019582], [-0.16000000000000877, -1.6653438583454396e-14, 0.006000000000024051], [-0.18000000000000935, -1.9449287125646345e-14, 0.006000000000028481], [-0.20000000000000948, -2.229759864342352e-14, 0.006000000000032891], [0.0, 0.0029999999999987454, 0.0060000000000003115], [-0.02000000000000101, 0.0029999999999983846, 0.006000000000000688], [-0.04000000000000196, 0.002999999999997414, 0.006000000000002175], [-0.06000000000000289, 0.0029999999999960475, 0.006000000000004383], [-0.0800000000000038, 0.002999999999994169, 0.006000000000007481], [-0.10000000000000474, 0.002999999999991906, 0.006000000000011143], [-0.1200000000000058, 0.0029999999999892088, 0.006000000000015334], [-0.14000000000000698, 0.002999999999986274, 0.006000000000019711], [-0.16000000000000736, 0.0029999999999833957, 0.006000000000024192], [-0.1800000000000078, 0.002999999999980598, 0.00600000000002864], [-0.20000000000000798, 0.002999999999977784, 0.006000000000033052], [0.0, 0.0059999999999988994, 0.006000000000000416], [-0.020000000000000726, 0.005999999999998496, 0.006000000000000821], [-0.04000000000000141, 0.005999999999997558, 0.006000000000002306], [-0.060000000000002114, 0.005999999999996156, 0.006000000000004521], [-0.0800000000000028, 0.00599999999999432, 0.00600000000000761], [-0.10000000000000361, 0.005999999999992018, 0.006000000000011272], [-0.12000000000000452, 0.005999999999989346, 0.0060000000000154504], [-0.14000000000000554, 0.005999999999986357, 0.006000000000019821], [-0.16000000000000597, 0.005999999999983445, 0.006000000000024321], [-0.18000000000000654, 0.005999999999980658, 0.006000000000028775], [-0.20000000000000667, 0.005999999999977875, 0.006000000000033206], [0.0, 0.008999999999998936, 0.006000000000000397], [-0.020000000000000427, 0.008999999999998587, 0.006000000000000826], [-0.04000000000000087, 0.008999999999997626, 0.006000000000002324], [-0.06000000000000132, 0.00899999999999626, 0.006000000000004542], [-0.08000000000000176, 0.008999999999994382, 0.006000000000007648], [-0.10000000000000223, 0.008999999999992124, 0.006000000000011317], [-0.12000000000000308, 0.008999999999989466, 0.006000000000015536], [-0.140000000000004, 0.008999999999986477, 0.006000000000019928], [-0.1600000000000046, 0.008999999999983554, 0.006000000000024436], [-0.18000000000000524, 0.008999999999980735, 0.006000000000028921], [-0.20000000000000537, 0.008999999999977925, 0.006000000000033376], [0.0, 0.011999999999998985, 0.006000000000000393], [-0.020000000000000153, 0.011999999999998602, 0.006000000000000838], [-0.040000000000000334, 0.011999999999997698, 0.006000000000002333], [-0.06000000000000057, 0.011999999999996283, 0.006000000000004571], [-0.08000000000000078, 0.011999999999994444, 0.006000000000007678], [-0.10000000000000119, 0.01199999999999217, 0.006000000000011378], [-0.12000000000000174, 0.011999999999989592, 0.006000000000015603], [-0.14000000000000257, 0.011999999999986594, 0.006000000000020025], [-0.16000000000000322, 0.011999999999983647, 0.006000000000024565], [-0.1800000000000039, 0.011999999999980792, 0.006000000000029083], [-0.20000000000000412, 0.011999999999977959, 0.00600000000003355], [0.0, -1.6335681585938738e-15, 0.009000000000000265], [-0.020000000000001728, -2.03492486019591e-15, 0.009000000000000797], [-0.040000000000003366, -2.9042956703300818e-15, 0.00900000000000212], [-0.06000000000000492, -4.336851492898987e-15, 0.009000000000004466], [-0.08000000000000643, -6.146753569110072e-15, 0.00900000000000744], [-0.10000000000000782, -8.429138754927522e-15, 0.009000000000011221], [-0.1200000000000092, -1.1030392048103911e-14, 0.009000000000015385], [-0.14000000000001026, -1.3961323325498878e-14, 0.009000000000019711], [-0.16000000000001097, -1.6843386982361237e-14, 0.009000000000024138], [-0.18000000000001137, -1.9611732827914567e-14, 0.009000000000028548], [-0.20000000000001175, -2.2513785176472003e-14, 0.009000000000032874], [0.0, 0.0029999999999985824, 0.009000000000000435], [-0.02000000000000144, 0.0029999999999982215, 0.009000000000000962], [-0.040000000000002825, 0.002999999999997301, 0.009000000000002287], [-0.06000000000000416, 0.0029999999999959018, 0.009000000000004624], [-0.08000000000000543, 0.0029999999999940634, 0.009000000000007604], [-0.10000000000000679, 0.002999999999991785, 0.009000000000011388], [-0.1200000000000079, 0.002999999999989133, 0.009000000000015529], [-0.14000000000000884, 0.0029999999999861765, 0.009000000000019853], [-0.16000000000000947, 0.0029999999999832444, 0.009000000000024284], [-0.18000000000000993, 0.00299999999998044, 0.009000000000028714], [-0.20000000000001011, 0.0029999999999775553, 0.009000000000033044], [0.0, 0.005999999999998789, 0.009000000000000457], [-0.020000000000001156, 0.00599999999999839, 0.00900000000000102], [-0.040000000000002305, 0.005999999999997506, 0.009000000000002329], [-0.060000000000003405, 0.0059999999999960545, 0.009000000000004697], [-0.08000000000000444, 0.0059999999999942695, 0.009000000000007674], [-0.10000000000000567, 0.00599999999999193, 0.009000000000011459], [-0.12000000000000663, 0.005999999999989287, 0.009000000000015588], [-0.14000000000000745, 0.0059999999999862785, 0.009000000000019954], [-0.16000000000000816, 0.005999999999983323, 0.009000000000024396], [-0.18000000000000876, 0.005999999999980498, 0.009000000000028853], [-0.20000000000000898, 0.005999999999977599, 0.009000000000033176], [0.0, 0.008999999999998924, 0.009000000000000482], [-0.020000000000000875, 0.008999999999998565, 0.009000000000001058], [-0.04000000000000176, 0.008999999999997647, 0.009000000000002364], [-0.060000000000002655, 0.008999999999996223, 0.009000000000004735], [-0.08000000000000336, 0.008999999999994407, 0.009000000000007714], [-0.10000000000000431, 0.008999999999992079, 0.009000000000011523], [-0.12000000000000516, 0.008999999999989418, 0.009000000000015662], [-0.14000000000000595, 0.008999999999986385, 0.009000000000020065], [-0.1600000000000069, 0.008999999999983424, 0.009000000000024523], [-0.18000000000000743, 0.008999999999980567, 0.009000000000029007], [-0.2000000000000079, 0.008999999999977679, 0.009000000000033336], [0.0, 0.011999999999999034, 0.009000000000000398], [-0.020000000000000583, 0.01199999999999863, 0.009000000000000997], [-0.040000000000001194, 0.011999999999997771, 0.0090000000000023], [-0.06000000000000182, 0.0119999999999963, 0.009000000000004695], [-0.08000000000000235, 0.01199999999999454, 0.009000000000007665], [-0.10000000000000309, 0.011999999999992173, 0.009000000000011514], [-0.1200000000000038, 0.011999999999989531, 0.009000000000015706], [-0.14000000000000448, 0.011999999999986504, 0.009000000000020159], [-0.16000000000000544, 0.011999999999983534, 0.009000000000024643], [-0.18000000000000596, 0.01199999999998064, 0.00900000000002915], [-0.20000000000000637, 0.011999999999977749, 0.00900000000003349], [0.0, -1.8081918315590084e-15, 0.012000000000000694], [-0.020000000000002176, -2.139116656937399e-15, 0.012000000000001008], [-0.040000000000004254, -3.062961058917272e-15, 0.01200000000000252], [-0.060000000000006264, -4.439559830871074e-15, 0.012000000000004642], [-0.08000000000000809, -6.30043453623008e-15, 0.012000000000007786], [-0.10000000000000989, -8.53004585324779e-15, 0.012000000000011403], [-0.12000000000001128, -1.1150879239582082e-14, 0.012000000000015602], [-0.14000000000001245, -1.4071011663396085e-14, 0.012000000000019814], [-0.16000000000001313, -1.69776763688335e-14, 0.012000000000024214], [-0.1800000000000136, -1.9774374290270428e-14, 0.0120000000000286], [-0.2000000000000137, -2.2634838892088278e-14, 0.012000000000032866], [0.0, 0.0029999999999984605, 0.012000000000000746], [-0.020000000000001877, 0.0029999999999981548, 0.012000000000001095], [-0.04000000000000372, 0.0029999999999971976, 0.012000000000002582], [-0.060000000000005486, 0.0029999999999958255, 0.012000000000004746], [-0.08000000000000712, 0.002999999999993949, 0.012000000000007872], [-0.10000000000000882, 0.002999999999991698, 0.012000000000011515], [-0.12000000000000999, 0.00299999999998902, 0.012000000000015693], [-0.14000000000001103, 0.002999999999986051, 0.012000000000019969], [-0.16000000000001166, 0.002999999999983109, 0.012000000000024366], [-0.18000000000001215, 0.0029999999999802776, 0.012000000000028762], [-0.20000000000001225, 0.002999999999977444, 0.012000000000033024], [0.0, 0.005999999999998727, 0.012000000000000777], [-0.0200000000000016, 0.005999999999998387, 0.012000000000001168], [-0.04000000000000321, 0.0059999999999974605, 0.012000000000002632], [-0.06000000000000474, 0.005999999999996046, 0.012000000000004835], [-0.08000000000000612, 0.0059999999999942035, 0.012000000000007938], [-0.10000000000000757, 0.005999999999991915, 0.012000000000011625], [-0.12000000000000871, 0.005999999999989191, 0.012000000000015752], [-0.1400000000000095, 0.005999999999986183, 0.012000000000020076], [-0.1600000000000103, 0.005999999999983193, 0.012000000000024507], [-0.1800000000000109, 0.005999999999980348, 0.012000000000028913], [-0.20000000000001103, 0.005999999999977517, 0.012000000000033163], [0.0, 0.008999999999998913, 0.012000000000000715], [-0.020000000000001336, 0.008999999999998594, 0.012000000000001138], [-0.040000000000002645, 0.00899999999999764, 0.012000000000002588], [-0.06000000000000394, 0.00899999999999624, 0.012000000000004807], [-0.08000000000000508, 0.008999999999994391, 0.012000000000007912], [-0.10000000000000638, 0.008999999999992101, 0.012000000000011654], [-0.1200000000000073, 0.00899999999998933, 0.012000000000015797], [-0.14000000000000817, 0.008999999999986295, 0.012000000000020194], [-0.1600000000000089, 0.008999999999983308, 0.012000000000024623], [-0.18000000000000962, 0.008999999999980409, 0.012000000000029086], [-0.20000000000000975, 0.008999999999977562, 0.012000000000033307], [0.0, 0.011999999999999096, 0.01200000000000062], [-0.02000000000000104, 0.011999999999998744, 0.012000000000001104], [-0.0400000000000021, 0.011999999999997821, 0.012000000000002503], [-0.060000000000003134, 0.011999999999996383, 0.012000000000004786], [-0.08000000000000407, 0.011999999999994572, 0.01200000000000785], [-0.10000000000000507, 0.011999999999992237, 0.012000000000011645], [-0.12000000000000592, 0.011999999999989469, 0.012000000000015838], [-0.14000000000000673, 0.011999999999986428, 0.012000000000020291], [-0.16000000000000755, 0.011999999999983416, 0.012000000000024732], [-0.18000000000000813, 0.011999999999980492, 0.012000000000029225], [-0.20000000000000834, 0.011999999999977593, 0.012000000000033453]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/sofa_scene.py new file mode 100644 index 0000000..32469fb --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/AxialCompression/sofa_scene.py @@ -0,0 +1,132 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.geometry import Beam3D +from common.sofa.conventions import ELEMENTS, VEC_DIM +from common.sofa.controllers import RegionClamp +from common.sofa.prefabs import ElasticBeam + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.Engine.Select", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Beam3D(length=case['geometry']['length'], width=case['geometry']['width'], + height=case['geometry']['height']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers'], + 'gridMapping': case.get('gridMapping', {})} + beam = root.addChild(ElasticBeam(name='ElasticBeam', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + beam.Grid.grid.init() + rest_positions = beam.Grid.grid.position.array() + left_nodes = set(geometry.region_indices('left', rest_positions)) + bottom_nodes = set(geometry.region_indices('bottom', rest_positions)) + front_nodes = set(geometry.region_indices('front', rest_positions)) + top_nodes = set(geometry.region_indices('top', rest_positions)) + corner = sorted(left_nodes & bottom_nodes & front_nodes) + second_corner = sorted(left_nodes & top_nodes & front_nodes) + + boundary_kind_name, mapping = ELEMENTS[case['element']].boundary_mappings[0] + boundary_kind = ELEMENTS[boundary_kind_name] + vec_type = VEC_DIM[geometry.spatial_dimensions] + + length = geometry.length + eps = min(case['mesh']['resolution'][1:]) * 1e-6 + right_box = [length - eps, -eps, -eps, length + eps, geometry.width + eps, geometry.height + eps] + + with beam.mechanical_node() as mechanical: + # Fix the axial displacement along x = 0, leaving it free to contract laterally. + # Pin one corner in y and z to remove translation; pin a second corner off that axis in + # z only, to remove the remaining rigid-body mode: rotation about x. + mechanical.addObject(RegionClamp(geometry=geometry, dofs=mechanical.dofs, node=mechanical, + prescribe_displacement_on={'left': [1, 0, 0]}, + vec_type=vec_type, name='clampCtrl')) + mechanical.addObject('PartialFixedProjectiveConstraint', name='pinCorner', + template=vec_type, indices=corner, fixedDirections=[0, 1, 1]) + mechanical.addObject('PartialFixedProjectiveConstraint', name='pinSecondCorner', + template=vec_type, indices=second_corner, fixedDirections=[0, 0, 1]) + + with mechanical.addChild(boundary_kind_name) as boundary: + boundary.addObject(boundary_kind.container, name='topology') + boundary.addObject(boundary_kind.container.replace('Container', 'Modifier')) + boundary.addObject(mapping, input='@../topology', output='@topology') + + boundary.addObject('BoxROI', name='rightFace', box=right_box, position='@../dofs.rest_position', + **{boundary_kind.data_name: f'@topology.{boundary_kind.data_name}'}) + + with boundary.addChild('LoadedFace') as loaded_face: + loaded_face.addObject(boundary_kind.container, name='face', position='@../../dofs.rest_position', + **{boundary_kind.data_name: + f'@../rightFace.{boundary_kind.data_name}InROI'}) + loaded_face.addObject('NodalSourceDensity', name='loadDensity', template=vec_type, + property=[[-case['load']['magnitude'], 0.0, 0.0]]) + loaded_face.addObject('VectorSourceTerm', name='traction', template=f'{vec_type},{boundary_kind.cpp}', + sourceDensity='@loadDensity') + loaded_face.addObject('FEMSourceTermIntegrator', name='load', template=f'{vec_type},{boundary_kind.cpp}', + topology='@face', quadratureDegree=1, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :3].copy() + u = mechanical.dofs.position.array()[:, :3] - x0 + boundary_kind_name, _ = ELEMENTS[case['element']].boundary_mappings[0] + boundary = mechanical.getChild(boundary_kind_name).topology + faces = getattr(boundary, ELEMENTS[boundary_kind_name].data_name).array().copy() + return x0, u, faces + + +def main(case): + x, u, faces = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/beam_tet.msh b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/beam_tet.msh new file mode 100644 index 0000000..5e5492e --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/beam_tet.msh @@ -0,0 +1,8996 @@ +$MeshFormat +4.1 0 8 +$EndMeshFormat +$Entities +2 3 3 1 +1 0 0 0.1 0 +2 1 0 0.1 0 +1 -1e-07 -0.1000001 -0.1000001 1e-07 0.1000001 0.1000001 0 2 1 -1 +2 -9.999999994736442e-08 -1e-07 0.0999999 1.0000001 1e-07 0.1000001 0 2 1 -2 +3 0.9999999000000001 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 2 2 -2 +1 -1e-07 -0.1000001 -0.1000001 1e-07 0.1000001 0.1000001 0 1 1 +2 -9.999999994736442e-08 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 4 2 3 -2 -1 +3 0.9999999000000001 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 1 3 +1 -9.999999994736442e-08 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 1 1 3 -2 -1 3 +$EndEntities +$Nodes +9 1485 1 1485 +0 1 0 1 +1 +0 0 0.1 +0 2 0 1 +2 +1 0 0.1 +1 1 0 20 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +0 -0.02947551744109039 0.09555728057861408 +0 -0.05633200580636216 0.08262387743159953 +0 -0.07818314824680293 0.06234898018587343 +0 -0.09308737486442038 0.03653410243663962 +0 -0.09972037971811801 0.007473009358642549 +0 -0.09749279121818238 -0.02225209339563135 +0 -0.08660254037844392 -0.04999999999999991 +0 -0.06801727377709203 -0.07330518718298255 +0 -0.04338837391175594 -0.09009688679024186 +0 -0.01490422661761778 -0.09888308262251282 +0 0.0149042266176171 -0.09888308262251291 +0 0.0433883739117554 -0.09009688679024212 +0 0.06801727377709153 -0.07330518718298301 +0 0.08660254037844349 -0.05000000000000066 +0 0.09749279121818219 -0.02225209339563224 +0 0.09972037971811809 0.007473009358641551 +0 0.0930873748644207 0.03653410243663879 +0 0.07818314824680334 0.06234898018587292 +0 0.05633200580636256 0.08262387743159925 +0 0.02947551744109064 0.09555728057861401 +1 2 0 33 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +0.02941176470588239 0 0.1 +0.05882352941176477 0 0.1 +0.08823529411764718 0 0.1 +0.1176470588235296 0 0.1 +0.147058823529412 0 0.1 +0.1764705882352943 0 0.1 +0.2058823529411767 0 0.1 +0.235294117647059 0 0.1 +0.2647058823529415 0 0.1 +0.2941176470588239 0 0.1 +0.3235294117647065 0 0.1 +0.3529411764705889 0 0.1 +0.3823529411764713 0 0.1 +0.4117647058823538 0 0.1 +0.4411764705882362 0 0.1 +0.4705882352941187 0 0.1 +0.5000000000000011 0 0.1 +0.5294117647058832 0 0.1 +0.5588235294117656 0 0.1 +0.5882352941176479 0 0.1 +0.6176470588235301 0 0.1 +0.6470588235294124 0 0.1 +0.6764705882352946 0 0.1 +0.7058823529411768 0 0.1 +0.7352941176470592 0 0.1 +0.7647058823529413 0 0.1 +0.7941176470588236 0 0.1 +0.823529411764706 0 0.1 +0.8529411764705882 0 0.1 +0.8823529411764703 0 0.1 +0.9117647058823527 0 0.1 +0.9411764705882349 0 0.1 +0.9705882352941173 0 0.1 +1 3 0 20 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +1 -0.02947551744109039 0.09555728057861408 +1 -0.05633200580636216 0.08262387743159953 +1 -0.07818314824680293 0.06234898018587343 +1 -0.09308737486442038 0.03653410243663962 +1 -0.09972037971811801 0.007473009358642549 +1 -0.09749279121818238 -0.02225209339563135 +1 -0.08660254037844392 -0.04999999999999991 +1 -0.06801727377709203 -0.07330518718298255 +1 -0.04338837391175594 -0.09009688679024186 +1 -0.01490422661761778 -0.09888308262251282 +1 0.0149042266176171 -0.09888308262251291 +1 0.0433883739117554 -0.09009688679024212 +1 0.06801727377709153 -0.07330518718298301 +1 0.08660254037844349 -0.05000000000000066 +1 0.09749279121818219 -0.02225209339563224 +1 0.09972037971811809 0.007473009358641551 +1 0.0930873748644207 0.03653410243663879 +1 0.07818314824680334 0.06234898018587292 +1 0.05633200580636256 0.08262387743159925 +1 0.02947551744109064 0.09555728057861401 +2 1 0 39 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +0 -2.503541930082155e-16 -0.07306820487327914 +0 -0.01150824889312312 0.07280417667649478 +0 0.07123623242397975 0.01625920519091276 +0 -0.07286389135284624 -0.005460393788372082 +0 0.05855994900625908 -0.04917425094414683 +0 0.04969900095266479 0.05356278435360208 +0 -0.04116078541182028 -0.06037178403596809 +0 -0.04875854296352724 0.05132560736237923 +0 0.06944984514603657 0.04009688679024143 +0 0.04665563482725372 0.0275528366322077 +0 0.02297651809823792 0.04235001236537813 +0 0.01985573963200126 0.01447966668228785 +0 -0.003969118687826098 0.02972517116452704 +0 -0.008513706565336083 0.002292220138594796 +0 0.01623453042698919 -0.01410242938413878 +0 -0.01224314338738922 -0.02649510757048446 +0 -0.03450550212999404 0.02144882057249528 +0 0.04871740625483301 -0.003488004852144479 +0 0.01323793920972892 -0.04397369914465722 +0 -0.03369305220905091 -0.008916522986870287 +0 0.03915734447139095 -0.02818109576474569 +0 0.07828726642463173 -0.006766422180493857 +0 0.02831588746977902 0.06799443321897355 +0 -0.03723162283093191 -0.03480413784791668 +0 -0.01683919035646618 -0.0525573204498645 +0 0.02629005051493083 -0.06917579577250926 +0 -0.06136973046791287 -0.04418039696963311 +0 -0.02194967942142288 0.05019951782252414 +0 -0.06724393895343415 0.02559486143473897 +0 -0.0236375297183843 -0.07663098922688143 +0 -0.03418764401364816 0.07135923552761661 +0 -0.05599275549500649 -0.02004242348629351 +0 0.003315594733254228 0.05619567722638206 +0 -0.05341173252383826 0.005654386985016353 +0 0.009750487402022718 0.07935329800422579 +0 0.06813621629229007 -0.02664364452286063 +0 -0.07540677636266056 -0.02851090800560852 +0 0.04694795383579439 -0.06567816069170311 +0 0.03648978553636028 -0.05030998955692086 +2 2 0 794 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +0.4852941176470599 0.0252639219150482 0.0967560553633226 +0.6617647058823535 0.0252639219150482 0.0967560553633226 +0.3382352941176476 0.02526392191503892 0.09675605536332503 +0.7500032707586177 -0.02526361212528865 0.09675613625183144 +0.6323529411764712 -0.02526392191503734 0.09675605536332543 +0.5147085547247892 -0.02526239289697757 0.09675645459150897 +0.3970588235294126 -0.02526392191508832 0.09675605536331212 +0.2500233326303539 -0.02524719535683889 0.09676042128170802 +0.7794117647058825 0.0252639219150482 0.0967560553633226 +0.2205882352941179 0.02526392191504829 0.09675605536332257 +0.8382348892760625 -0.02526184063139512 0.09675659878227426 +0.1615518234361898 -0.02461911173251836 0.09692213027736121 +0.5664469667941777 0.02494621341809352 0.09683845535787389 +0.9706081396299115 -0.001479437582354865 -0.09998905572331362 +0.02946327025520788 -0.002147021015057625 -0.09997694884702624 +0.9742092960782426 0.09308737486442015 -0.03653410243664023 +0.02765550287383968 0.09253748638154967 -0.03790532435139569 +0.02987842527996892 -0.09169440260381675 -0.03990158557161812 +0.9742092960782459 -0.09308737486442047 -0.0365341024366394 +0.8676470588235292 0.02526392191499836 0.09675605536333562 +0.1323529411764708 0.02526392191499853 0.09675605536333558 +0.02809113892153562 -0.08638710675014011 0.05037129924212694 +0.9712891951134757 -0.08642270486913846 0.0503101985993078 +0.97420929607838 0.08660254037844423 0.0499999999999994 +0.02859149916209112 0.08847220778903959 0.0466118917115901 +0.3382427957239559 -0.02526153711169094 0.09675667802665955 +0.4558877422570792 -0.02526130027009747 0.09675673986169632 +0.5735376494773946 -0.02526050595988254 0.09675694723714023 +0.6911803774893994 -0.02525897337790453 0.09675734733804101 +0.1028971193780311 -0.02473973539476977 0.09689141082983969 +0.8970588235294115 -0.02526392191508811 0.09675605536331218 +0.3970588235294126 0.02526392191504081 0.09675605536332453 +0.2794117647058827 0.02526392191507338 0.09675605536331602 +0.720588235294118 0.02526392191505679 0.09675605536332035 +0.9710712117050965 -0.05602774337543642 -0.08283050146085223 +0.02579070392175642 -0.05633200580636233 -0.08262387743159941 +0.02416074464999332 0.05590550041305607 -0.08291305701495869 +0.972929636051732 0.05553625342671965 -0.08316083546551928 +0.9264705882352938 0.02526392191535628 0.09675605536324217 +0.07352941176470598 0.02526392191535637 0.09675605536324214 +0.9535053699285615 -0.02499832756202306 0.09682501546140748 +0.0462811721305656 -0.02485533505852341 0.09686182075063704 +0.9742092960782424 0.04338837391175607 0.0900968867902418 +0.02356276400527855 0.04470876263410964 0.08944901644918653 +0.4264827317564587 -0.0252573699432011 0.09675776590823232 +0.4853064430883126 -0.02525705588503405 0.09675784788853185 +0.5441233763386278 -0.02526260340305383 0.09675639962968864 +0.6029561381493567 -0.02525549533585457 0.09675825523096532 +0.6617663338377172 -0.02526221959040005 0.0967564998404056 +0.3676470588235301 -0.02526392191503751 0.09675605536332539 +0.3088242730465371 -0.025263459741801 0.09675617603995314 +0.7794117647058825 -0.02526392191508811 0.09675605536331218 +0.7647058823527656 -0.04892003708809009 0.08721714264581185 +0.647058823529397 -0.0488965219298583 0.08723032811564385 +0.5294117647058834 -0.04889152248704069 0.08723313033990696 +0.411786577440753 -0.04889193840125559 0.08723289723130735 +0.3235294029274697 -0.04890038427893734 0.08722816298290513 +0.4705362486353751 -0.04889959162440136 0.08722860734281374 +0.5882581438467583 -0.04888523094913425 0.08723665625784729 +0.2941130976955501 -0.04888567955268872 0.08723640487016779 +0.7352758896218003 -0.04890061314349439 0.0872280346803154 +0.7499691729251775 -0.06940458678045197 0.07199307837448481 +0.7794576446938972 -0.06940581405086461 0.07199189521006379 +0.7646864520108182 -0.08538329980434753 0.05205470309703927 +0.7942207358258061 -0.08537958062346852 0.05206080303415074 +0.779450307518349 -0.0957923044359633 0.0287025157581653 +0.749931846797614 -0.09578772617733888 0.0287177908930187 +0.7646820959833436 -0.09993942624315509 0.00348009801427567 +0.7351556822563751 -0.09993866994381846 0.003501749542802415 +0.7499011790856396 -0.0975581282284219 -0.02196387071002721 +0.7203818964725015 -0.09756306633479767 -0.02194192533375028 +0.77943194677792 -0.09755402144601646 -0.02198210407832156 +0.7646473829395952 -0.08878731296654814 -0.04600883671839827 +0.7941951279569172 -0.08877920342709816 -0.04602448303729138 +0.7794095362961146 -0.07419228947757325 -0.06704852110282504 +0.8089420231650305 -0.07416927554777701 -0.06707397829798026 +0.794177474057204 -0.05471902103436441 -0.08370082877152882 +0.7646075198063507 -0.05473966879987749 -0.08368732675668233 +0.8237280063393676 -0.05469487634297791 -0.08371660827951857 +0.8089494674980768 -0.03163965922143583 -0.09486270059592132 +0.823721348298858 -0.0887385730282121 -0.04610277276820417 +0.8385442778066193 -0.03162722056482763 -0.09486684836835124 +0.823735535400295 -0.006465131562135117 -0.09979079152849868 +0.8531666981811304 -0.006374425927100419 -0.09979662666693655 +0.8385172950436833 0.01912903591419769 -0.0981533493315095 +0.8089237399759499 0.01910896864608251 -0.09815725809782502 +0.8237102650353139 0.04344242997284002 -0.09007083478049314 +0.7941134198565937 0.04341870885270457 -0.09008227196049218 +0.8088795152793981 0.06488392656889537 -0.07609254939218553 +0.7793071215927916 0.06486368140610449 -0.07610980774149528 +0.7940682399441179 0.08207256486656292 -0.05713225092908403 +0.7645082689098337 0.082056373544065 -0.05715550332904847 +0.8236470050080795 0.08208491003858806 -0.05711451255116257 +0.8088270643730976 0.09389742533962184 -0.0343987429216555 +0.8384063553713287 0.09390598222534481 -0.03437537639493166 +0.7497508580280903 0.06485094996468783 -0.07612065612353559 +0.734959960872174 0.08204045296889755 -0.05717835321743808 +0.8236055956312013 0.0995579459250959 -0.009392305530362785 +0.8531841438442141 0.09955933751915556 -0.009377543001600477 +0.74970453319346 0.09387087578278748 -0.03447112820568081 +0.720171016917559 0.0938618553069501 -0.03449568260430809 +0.8532375461772759 0.08207455103541139 -0.05712939761922622 +0.7349135623252208 0.09954342923369497 -0.009544930402908222 +0.7053837047371949 0.09954073723095423 -0.009572963570291271 +0.6906375652493472 0.09385406959322322 -0.03451685994974651 +0.6758698116881143 0.0995418765393381 -0.009561109508167437 +0.6611208911483948 0.0938483806794162 -0.03453232462275572 +0.6463519579688209 0.09954045326324634 -0.009575915838575061 +0.6316146774055205 0.09384250039584739 -0.03454830125281681 +0.646393316231398 0.08202683352896563 -0.05719788965697389 +0.6168834114903214 0.08202132115761361 -0.0572057940733245 +0.6316474792124694 0.06485636876613343 -0.07611603924582067 +0.6021616185446172 0.0648399127088327 -0.0761300579266229 +0.6169141548506891 0.04345279775447335 -0.09006583351809296 +0.5874303927488627 0.0434344345748976 -0.09007469063593247 +0.6021684948905269 0.01922530196264306 -0.09813453910038603 +0.5726968946862562 0.01920351961894644 -0.09813880391692544 +0.3087966724917206 -0.06937343439242327 0.07202309768817322 +0.5579450391174698 0.0434158908506107 -0.09008363015358484 +0.5432212268990303 0.0191830455966763 -0.0981428079975086 +0.5874559111623764 -0.0062673785946992 -0.09980340658289528 +0.5284697037227307 0.04339841244981868 -0.09009205179612363 +0.5137470918489422 0.01916400058667624 -0.09814652862691514 +0.4989927750235865 0.04338021576781567 -0.09010081509030736 +0.4842710885296338 0.01914491834057856 -0.09815025268297876 +0.4695163925711805 0.04336228032501448 -0.0901094481451022 +0.4547951519288759 0.01912572968540531 -0.09815399362227095 +0.4400129512011533 0.04340073442516135 -0.0900909332361288 +0.4253174197991227 0.01910771503568914 -0.09815750213873059 +0.4104842288020282 0.0433849160528689 -0.09009855192557492 +0.3958352395594426 0.01908637325703355 -0.09816165420312148 +0.3810844259285288 0.04331057506229786 -0.09013431137903626 +0.3663570800788326 0.01906477048214109 -0.09816585214046319 +0.351600657423871 0.04329441760726022 -0.09014207343992126 +0.3368640805497553 0.01903836009456004 -0.09817097761003435 +0.3220957222319343 0.04328341497434693 -0.09014735707805571 +0.3073556912049312 0.01901011617650174 -0.09817645075554476 +0.2925692929608608 0.04327465264717495 -0.09015156370394445 +0.2778332543846004 0.01898086251674415 -0.0981821106827535 +0.2630277749720096 0.04326474847734422 -0.09015631724506133 +0.2482658452071974 0.01895207810719272 -0.0981876709949822 +0.2334605296544359 0.04327828201922606 -0.09014982143889325 +0.2186876783103647 0.01892188521122373 -0.09819349398026976 +0.2335111203721501 -0.006643769885723952 -0.09977905753065394 +0.381131726364985 -0.00640412052553972 -0.09979472551339756 +0.2039299528635202 0.04331340267218767 -0.09013295262531307 +0.2039159449354725 -0.006672452415807269 -0.09977714356884942 +0.2186463272119396 -0.03185463509320834 -0.09479072857130355 +0.6021210153787935 0.09383757430681548 -0.03456167889748534 +0.4990192282176508 -0.006322217139811736 -0.09979994774766704 +0.1890881546713715 -0.03185652830255081 -0.09479009233305336 +0.2039610509357996 -0.05488275473356383 -0.08359355975704993 +0.2335349508677297 -0.05486543324417416 -0.08360492948940912 +0.2187858865303565 -0.07431618810321809 -0.06691116637607739 +0.1892013599873119 -0.0743434856050043 -0.0668808354321215 +0.4551578116647176 0.06502288324598361 -0.07597384190877268 +0.3663271445349439 0.0647188075901912 -0.07623303709090837 +0.248248042490179 0.06474617706026244 -0.07620979304578347 +0.6169371207874019 -0.006250950988248995 -0.09980443683395297 +0.6022119266237482 -0.03132906236141391 -0.09496572987954466 +0.2040190895923339 -0.08888993675973363 -0.04581025150389984 +0.1744323278204606 -0.08890892987602546 -0.04577337859826375 +0.2483504354058064 -0.07428538109290499 -0.06694536694859381 +0.6316975128447124 -0.03131594187584865 -0.09497005730454453 +0.6169687239389076 -0.05435450638885873 -0.0839379987563649 +0.5874892418525229 -0.05436737909833649 -0.08392966156239262 +0.6022354784353683 -0.07384370441768762 -0.0674322424206194 +0.5727666248133966 -0.07385493378556887 -0.06741994330707524 +0.189260448403997 -0.09761942557533355 -0.02168980752201164 +0.1596589458307107 -0.0976299230796122 -0.02164250723620088 +0.5875091230565239 -0.08851022768227451 -0.0465396561615138 +0.5580461936567327 -0.08851666033774155 -0.04652742033094992 +0.5136655218419031 0.06482076074185811 -0.07614636548678333 +0.646413237381041 0.0434309002818821 -0.09007639480299606 +0.4400799400026612 -0.006361563742131583 -0.09979744739598703 +0.3073096728994886 0.06477385458724878 -0.07618627016667734 +0.3221475454061105 -0.006464577496209128 -0.09979082742314299 +0.1448156207110668 -0.08892234155661316 -0.04574731874207525 +0.2188270620184427 -0.09761110564412867 -0.02172721921762544 +0.2040866385010897 -0.09992825718754608 0.003787270185720204 +0.1300503875643748 -0.09763896705279716 -0.02160166921473414 +0.14489961796366 -0.09992176259571607 0.00395491589864522 +0.572791736203355 -0.09741576416738401 -0.0225869185964935 +0.5433291216458613 -0.09741289566648052 -0.02259928666731281 +0.6022459170543912 -0.09740553634443319 -0.02263098516311885 +0.7056390975838637 -0.09993817015087264 0.003515984484497714 +0.8680650796880691 0.01906583266913889 -0.09816564584737575 +0.8679334411791563 -0.03142213533628005 -0.09493497464532501 +0.6905974566301929 0.09871754492633492 0.01596390690642639 +0.8383632122971687 0.09867670706561971 0.01621442205833676 +0.8679545388071461 0.09867124573955077 0.01624762334020525 +0.5285861526467956 -0.08852393184401398 -0.04651358393927916 +0.5138729515560106 -0.09741473941598269 -0.02259133782041669 +0.4991306679653407 -0.08853145616329927 -0.04649926095763052 +0.4844185277436385 -0.09741760589339347 -0.02257897389164245 +0.4696764561594781 -0.0885387181321559 -0.0464854320353662 +0.4549640627033296 -0.09742107968041269 -0.02256398089661222 +0.4402220062630815 -0.08854588591395005 -0.04647177732467033 +0.4255051279799345 -0.09742476170678216 -0.02254807766477477 +0.4107641321746768 -0.08855211936293818 -0.04645989836764551 +0.3960475445751351 -0.09742851422450406 -0.02253185780191262 +0.3813007440078541 -0.08855801539395433 -0.04644865885560259 +0.3665718409281707 -0.09743323100970609 -0.02251145252997344 +0.3518207367817737 -0.08856234978217965 -0.04644039406657596 +0.337085668823262 -0.09743786478928572 -0.02249138735838403 +0.2793340389455163 -0.06936168080949866 0.07203441701909738 +0.6464553190167194 -0.05434262018559893 -0.08394569453738374 +0.6611964087236024 -0.0312959723777732 -0.09497663982753685 +0.3813603190929007 -0.09995731196327085 0.002921606591817446 +0.5580653824556486 -0.09996174410779951 0.002765811802493502 +0.4991633923106991 -0.09996098213349787 0.002793215155787192 +0.4402853031488336 -0.0999589283057235 0.002865772491184139 +0.1152748984889588 -0.09992062515622002 0.003983549722316935 +0.1743056766221124 -0.006685819436377395 -0.09977624876925451 +0.1151868718932833 -0.08893704568846128 -0.04571872596878167 +0.1301205543929657 -0.09561697694509003 0.02928128617192429 +0.8827886441758031 0.09956051761213994 -0.009365005755618831 +0.8087954654899486 0.0986857414557606 0.01615934507728499 +0.8235545291524475 0.09133912318952982 0.04070828631824114 +0.7940199495421827 0.09135228299898573 0.04067874618118437 +0.3382460110682575 -0.06937221385461077 0.07202427330358946 +0.6759553569798402 -0.05433372575611922 -0.08395145171739932 +0.6907056826424823 -0.03127546347540566 -0.09498339530885684 +0.6908770923800082 -0.09756224384621301 -0.02194558214520803 +0.6761335548570546 -0.09993762814449207 0.003531356800611797 +0.7204953916265786 -0.06938088809138135 0.0720159174603172 +0.1299720268608671 -0.07436975850720362 -0.06685161942376726 +0.2939451851543458 -0.08536591406469997 0.05208320953914285 +0.8975531833336222 0.09866607853371223 0.01627897253451001 +0.8827175241462337 0.09128547836143626 0.04082843911201791 +0.7793419977744843 0.01914300218335772 -0.09815062642392031 +0.8089830745963452 -0.09579380881169475 0.02869749454827852 +0.8237622833345994 -0.08537554733747421 0.05206741703624928 +0.8385381997761548 -0.09579501057731771 0.02869348268320859 +0.8533208044367427 -0.08537167575624076 0.05207376478200224 +0.8680991336973584 -0.09579622582647515 0.02868942518425519 +0.8828831672999824 -0.0853678348930933 0.05208006111426487 +0.8975279455204022 -0.09577600809720087 0.02875684741005027 +0.8828969894065075 -0.09994251929664852 0.003390108647084957 +0.3223920162863601 -0.08858215752476015 -0.04640260087816826 +0.3076031578646347 -0.09744366245830434 -0.02246625573414604 +0.7202077904446441 0.06483607917059141 -0.07613332278171502 +0.1009263134006025 -0.09557155586128961 0.02942919826044196 +0.1006320154806122 -0.07428345801964731 -0.06694750080953953 +0.1151284540428087 -0.05486544252492503 -0.08360492339894912 +0.2645711325291501 -0.08533417895649108 0.05213518870994482 +0.2630152458399766 -0.05472769785950149 -0.08369515569612807 +0.5580117337307451 -0.0543822124869027 -0.08392005103090301 +0.4549358812395378 -0.073901378943395 -0.06736902990443557 +0.3960227724982451 -0.07391371997086892 -0.06735548975449569 +0.3370730629481432 -0.07391776716806452 -0.0673510482241205 +0.1153807271636592 -0.08502451588216485 0.05263869013381221 +0.1449468776250967 -0.08505109719071299 0.05259573049835789 +0.9120903265396946 -0.09994856482314898 0.003206928404686933 +0.8976613275130196 -0.09750203425544418 -0.02221155816349206 +0.08806422084220178 -0.09990035146930715 0.004463157661219504 +0.8087692327017471 0.0780019308972727 0.06257554455453899 +0.7792352614987569 0.07804551469948928 0.06252117749444425 +0.9124124259574107 0.09956212617912591 -0.009347889103525612 +0.9124595450054868 -0.08534940770818859 0.05211025430624379 +0.9123370019699264 0.0912714390345896 0.04085981420118299 +0.897493442532083 0.07789373401191207 0.06271017622110063 +0.08584318235292666 -0.08498127050817883 0.05270847809238793 +0.08548781193724449 -0.05487671023160597 -0.08359752791893044 +0.1002268816306063 -0.03176241886107816 -0.09482166813599846 +0.8679205051049211 0.07791811340791088 0.06267988196344931 +0.6613697353862327 -0.09756530345155191 -0.02193197579805782 +0.6466390804919595 -0.09993707427568745 0.003546996647268051 +0.661398910674306 -0.09578390515926452 0.02873053275595529 +0.631931020867861 -0.09577851333755304 0.02874850227139104 +0.7054931160248761 -0.05434506642019631 -0.08394411090591437 +0.7202281813196951 -0.03125989644318251 -0.09498851969770614 +0.7054381947902207 -0.006152843060005261 -0.09981053312290716 +0.5138419902278774 -0.07387951690799048 -0.06739300395027624 +0.8976058292758049 0.09389769892865141 -0.03439799610303395 +0.08551919201596951 -0.08895973981763439 -0.04567455190342645 +0.7349833560200217 0.04341074874930581 -0.09008610821333468 +0.2336337406662417 -0.09992976408875587 0.003747298915966142 +0.2189012893542892 -0.09570362514835222 0.02899682971401678 +0.2483131448703216 -0.09758890031181749 -0.02182673901273734 +0.3223588223263627 -0.0999568493412326 0.00293739166168375 +0.292948962709726 -0.09995400359864168 0.003032682740203308 +0.8680393350634683 -0.06935860182344036 0.07203738163687973 +0.7644967750032869 0.09136055926526644 0.04066015507518066 +0.7495925941423994 0.07828570009432567 0.06222016683312009 +0.1302158594743224 -0.06889626222333967 0.07247968716580404 +0.2498475341293026 -0.06933933884948579 0.0720559233367819 +0.7054520048121338 0.04340690431164725 -0.09008796067222025 +0.159765524248818 -0.06895815310492372 0.0724208058527237 +0.9254434520865231 0.07799641291293195 0.0625824222343257 +0.07056087902987562 -0.03177281122207685 -0.09481818637290142 +0.0853898413498653 -0.006517675207973955 -0.09978737349927275 +0.1150270112073463 -0.006576989598487035 -0.09978348163810177 +0.1002117503109685 0.01917199010875767 -0.09814496826261497 +0.1298036092724912 0.01905094949318165 -0.09816853530234748 +0.1150419794689635 0.04357258713672833 -0.09000794215074699 +0.1446477811512045 0.04362910480843064 -0.08998056019838382 +0.1298642054837206 0.06509221112468909 -0.0759144521873069 +0.1001903346564231 0.06507394807742282 -0.0759301078730755 +0.1150190313733932 0.0822829509749104 -0.05682883052518758 +0.1446805854217007 0.0822976770490078 -0.05680750260605738 +0.1298392105561054 0.09404924597822582 -0.03398145569170302 +0.1594814091403302 0.09405464290482339 -0.03396651510011229 +0.1446550933837539 0.09960073836177478 -0.008927088987418402 +0.1742497606400694 0.09960273321694862 -0.008904804080571323 +0.1594553591257337 0.09859807972121916 0.01668588251451241 +0.1890288323751637 0.09859573564305689 0.01669972793204855 +0.1298983690104298 0.09860082838037845 0.01666963235056961 +0.1742425150806481 0.09112601049239795 0.04118313018384323 +0.2037979046852148 0.0911216037926721 0.04119287950910066 +0.2185923572066714 0.09859222641434004 0.01672043332762378 +0.2333447356062046 0.09111547861728117 0.04120642615349916 +0.2481379623834646 0.09858766576991904 0.01674730300790949 +0.2628791438139127 0.09110823081091624 0.04122244872038552 +0.2776648110682935 0.09858279548027918 0.01677594811906164 +0.2924130544655634 0.09110271047633063 0.04123464737166885 +0.3071846038996605 0.09857813354790235 0.01680332069002819 +0.3219200959393006 0.09110174291330227 0.04123678501239617 +0.3366880444028452 0.09857348305006125 0.016830580482541 +0.3514137059124188 0.09109628418593145 0.04124884249910557 +0.36618613755209 0.09856887937653079 0.01685752112426154 +0.3809077157173356 0.09108232059226899 0.04127966661114323 +0.3956724744961088 0.09856460349092683 0.01688250392200097 +0.4103978127232458 0.0910697914277178 0.04130730067811234 +0.4251418308643158 0.09855822355079946 0.01691970952796294 +0.4398791529348914 0.09106010037217749 0.04132865979207364 +0.4546276911612117 0.09855524808489741 0.01693703264814499 +0.4693641886151724 0.09105091540037501 0.04134889121553026 +0.4841294025830809 0.09855041750026297 0.01696511746271929 +0.4988462069635894 0.0910410992142604 0.04137049980190224 +0.5136036127782492 0.09855459553464313 0.01694082934814298 +0.5283304688101546 0.09103203179291598 0.04139044802431516 +0.4102361884553837 0.0996375838447814 -0.008505991157658047 +0.1002115919256126 0.09404073424801863 -0.03400500407430554 +0.5430912211263851 0.09854418109110499 0.01700130504059929 +0.5578057866429161 0.09103852587519946 0.04137616229751907 +0.1890645729776965 0.09407313652336763 -0.03391526182496366 +0.4988862818944353 0.09963440126316954 -0.008543189388613695 +0.3514595717738555 0.09962307983358282 -0.008674212613925517 +0.2924512109263581 0.0996169609773684 -0.008744202973025151 +0.1890042855155546 0.07768478983429281 0.06296882902199911 +0.4546219490359207 0.07790206070568326 0.06269983203971156 +0.5430506791076256 0.07757344707958208 0.06310594510972227 +0.5724905189462759 0.07733453116742017 0.06339850383972258 +0.5873041564756322 0.09103023610243077 0.0413943971466636 +0.6021155251544981 0.0772260514454893 0.06353059875476258 +0.159481944461468 0.07768843489015598 0.06296433184206753 +0.3661266354950013 0.07795850471703897 0.06262963789040629 +0.3073286536874044 0.07753398052000632 0.06315442870237431 +0.2480640570053399 0.07764966523030144 0.06301213763730061 +0.2333903569688322 0.09960943136437655 -0.008829563028007551 +0.6167935130943158 0.09102073327363264 0.0414152884129789 +0.6315080786587789 0.07752692714985718 0.06316308705803365 +0.1742411686291132 0.05918580983602787 0.08060421771876176 +0.6197948999031327 0.05897731137438855 0.08075689904304412 +0.07295751788005778 0.01885972221659757 -0.09820545238383038 +0.646291142380681 0.09101907013212884 0.04141894339891605 +0.6608712917548377 0.07773177826255613 0.06291081503319447 +0.1744911846938774 -0.08507148073300147 0.05256275455010478 +0.1896873169393717 -0.06882071893514428 0.07255142069766705 +0.73496833521547 0.09137951288562048 0.04061754085105007 +0.7202103414004235 0.07809206813222401 0.06246302021862284 +0.7644651476729036 0.09954960051272979 -0.009480350086147095 +0.6906801822260111 0.06484829338187906 -0.076122919317757 +0.7349396692334554 -0.006218671149454757 -0.09980645334413472 +0.307606940473919 -0.07395172165305451 -0.06731376430232638 +0.1594979930905945 -0.03181998388795129 -0.09480236613803751 +0.8680659423818711 -0.0975151471513321 -0.02215391784886023 +0.8829042369281008 -0.08865568916743814 -0.04626195821889291 +0.9125096879212748 -0.08863529377026785 -0.04630102264808326 +0.8976606664844017 -0.07392343982867924 -0.06734482195310669 +0.9255074217922548 -0.07374004622788574 -0.06754558151581251 +0.9124711947588831 -0.05428784689631318 -0.08398112692362768 +0.8680875553120588 -0.07400318504296211 -0.0672571825420684 +0.602076290020498 0.09862528981280699 0.01652429149282443 +0.6612144396157191 -0.07383844054512012 -0.06743800633073875 +0.7056872155412328 -0.08877645193551864 -0.04602979015529562 +0.6466840229367061 -0.08538778754082105 0.05204734132387173 +0.6172120839565814 -0.08538283048610734 0.05205547289364163 +0.6024727769307441 -0.09577195102415374 0.02877035622002443 +0.5877754987605429 -0.08537215715531088 0.0520729755501729 +0.6761986477794916 -0.08536506575489503 0.0520845999184255 +0.8237580253561302 -0.09994060940080154 0.003445953075191212 +0.3223143890399492 -0.05442825432894012 -0.08389019686890842 +0.3517859272838286 -0.054426127431575 -0.08389157676907712 +0.9251775958150403 0.09398531494410753 -0.0341578772006827 +0.9124389137272173 0.08202133268447451 -0.05720577754617757 +0.9404851416567763 0.09962604110608965 -0.008640135041059021 +0.9421339196048667 0.0820293522615848 -0.05719427740206913 +0.9258357083834465 0.06488230665483481 -0.0760939306590741 +0.8970827715564786 0.06488317936812417 -0.07609318652207848 +0.912451217783132 0.04313000421916846 -0.09022085532765976 +0.2038725173174951 0.05942695860140237 0.0804265913202046 +0.7644531935432658 0.05967854882895201 0.08024008231345724 +0.8825406091389516 0.05967191516382152 0.08024501567500431 +0.8530647798538387 0.05984378200063445 0.08011692552676083 +0.5577722580415555 0.05905428892227576 0.08070062552350124 +0.528290133800308 0.05907355861328337 0.08068652101040778 +0.1446202606938243 0.0594397784506385 0.08041711719366103 +0.129948596943183 0.07769793847499931 0.06295260405046976 +0.1151539046328138 0.05948601546824341 0.08038292084586071 +0.1004055988388861 0.07770699355783495 0.06294142635977197 +0.08559121583020143 0.0594841808975034 0.08038427845638159 +0.07312320766441294 0.07789738337481973 0.06270564299452132 +0.08571254433480618 0.0911612842077659 0.04110499071391373 +0.9421542826042462 0.04312797560627335 -0.09022182507633446 +0.9257431935848242 0.01846136699202497 -0.09828111684746858 +0.1889906446674649 0.03682429455317358 0.09297296021242474 +0.05605573809044826 0.05914819841422097 0.08063182141283892 +0.5367876665790662 0.03623071847089279 0.09320587448805417 +0.9419562879475231 0.0912568170119516 0.04089246078248634 +0.942191444705632 -0.08863282251462994 -0.04630575313165861 +0.5871936279187961 0.05093513754359216 0.08605586420119984 +0.6151970130197864 0.03420505997677156 0.09396815349886078 +0.9421697858242821 -0.05426852804428042 -0.08399361204226874 +0.9273007257969291 -0.03104889482227576 -0.09505769895340019 +0.9538646824351047 -0.03059481639410179 -0.09520481715654519 +0.05602615504805272 0.09115927521659326 0.04110944589732885 +0.07082869498653326 0.09862185822214886 0.01654475991999799 +0.04539174150984777 0.0985345303488694 0.01705714890970164 +0.05697971877232472 0.09964535988947498 -0.008414407435881191 +0.5135352290434029 0.03673023808996845 0.09301015863793713 +0.4988125750753292 0.05909067661622306 0.0806739855036117 +0.4680754830482144 0.0505917314434802 0.08625819792663639 +0.6757675012951384 0.09098363892788525 0.04149671610429199 +0.5730173220644414 -0.09576529966979731 0.02879248824179527 +0.5584244711860801 -0.08541588911548226 0.05200121043410086 +0.5877199511694131 -0.0999344791438489 0.003619375394682016 +0.2484364288056489 -0.09571594201424805 0.02895614691779804 +0.6904964165624852 0.07749464513511173 0.06320268962143229 +0.6757263983170428 0.05896530400643618 0.08076566673673016 +0.7052197234358698 0.0589447954903442 0.08078063557933608 +0.6904512546553759 0.03657245733112819 0.09307231255729498 +0.7349391812715736 0.05088614393738483 0.08608484393424753 +0.6424813012183476 0.04879582371408775 0.08728669765814073 +0.0563429154046575 -0.05511646470866271 -0.08343965075441495 +0.04560626267694144 -0.03124125768333703 -0.09499465152503764 +0.04458082478887465 -0.07510308247000716 -0.06602671431703462 +0.7054781111190428 0.091378249651002 0.040620382700304 +0.2343728980096851 -0.08520296395730588 0.05234935465590799 +0.21939947490968 -0.06890329307736526 0.07247300327083672 +0.2630170402682018 -0.09994221433459816 0.003399087215304199 +0.2781879440188358 -0.09749254709063115 -0.02225316296127517 +0.6318805571158409 -0.09757905069790643 -0.02187073078100979 +0.646554643511013 -0.08873774779780495 -0.04610436113615679 +0.2040267436983628 -0.08509077621076475 0.05253151248393248 +0.2052447790974107 -0.04860641947854163 0.08739231079148811 +0.1892609288972375 -0.09565732711597703 0.02914919842854972 +0.6169736634389082 -0.08850561434521467 -0.0465484288604474 +0.6610849169115409 0.09858635451281342 0.01675502025883209 +0.2927590177999495 -0.05452950549908645 -0.08382441786272721 +0.2778249064779391 -0.07412619846358215 -0.06712158148716128 +0.2778117869804183 -0.03164434615456832 -0.09486113722937259 +0.455562182638499 0.02569635739676858 0.0966421089201676 +0.4404440679959906 0.04794461533579429 0.08775712996846878 +0.8383408848586762 0.0779701703483615 0.06261511427640687 +0.8234258337694697 0.05967290442662363 0.08024428002849202 +0.8364068403902201 0.03768074927037066 0.0926291592017517 +0.8106682072447593 0.03731242017716271 0.09277814020836407 +0.1452710678536042 -0.04892901118601108 0.0872121084733032 +0.9123236309410846 0.05971570745032587 0.08021243222660124 +0.935754471336872 0.06058860382043282 0.07955514494418719 +0.8973803665471296 0.0370483897916121 0.09288388888202719 +0.7497284109335716 -0.03131167974066575 -0.09497146261808324 +0.1006161161676347 -0.06886951884532809 0.07250509895181856 +0.07104623107030576 -0.06883888000613728 0.07253418917655752 +0.05781188078842985 -0.08515720675343261 0.0524237554735745 +0.04515226240102038 -0.06861545905156512 0.07274557566713588 +0.04360381945476442 -0.096033081084894 0.02788632886097015 +0.0859531207303007 -0.04842585814086597 0.08749249261119908 +0.2185399202676807 0.0776788272544441 0.06297618435864652 +0.2332757351622617 0.05951093497016653 0.08036447361226608 +0.2627900318385171 0.05913527327057477 0.08064130117510782 +0.2490534995843388 0.03884413791112338 0.09214734369444205 +0.2944212330735545 0.05206367682735805 0.08537782824139076 +0.7940352921765834 0.0995536603172795 -0.009437622445919849 +0.1614538096337912 0.03732151905655149 0.09277448040981671 +0.174480721235039 -0.09992381532830827 0.003902708064171277 +0.7522872474382039 0.02769770115573829 0.09608765451756753 +0.8531450606367773 0.09131110214849089 0.04077110035831585 +0.2777414389278518 0.07738392673677057 0.06333820239632734 +0.3246853395512019 0.05883248320288588 0.08086246916946176 +0.1150694879978111 0.09959911741603122 -0.008945155669278683 +0.8384912216981033 -0.06937097427158237 0.07202546722244473 +0.6314186457658006 0.0986485870832377 0.01638463507316738 +0.8089611941975231 -0.06939123187156616 0.07200595072177397 +0.7792668046295212 0.09388435676647028 -0.03443439493509545 +0.7941274052055919 -0.0063990700847085 -0.09979504948669042 +0.7794110047530025 -0.03149633693043596 -0.09491038278273067 +0.7350558836381073 -0.0543721542569079 -0.08392656815015739 +0.7201391884854557 -0.07397848426245118 -0.06728435082714451 +0.7498598473011356 -0.07416771181047511 -0.06707570741183659 +0.1742984646019959 0.08232236240187475 -0.05677172402327059 +0.203892497158875 0.08236973686001703 -0.05670296685017068 +0.1890890356311779 0.06518094969702386 -0.0758382739557939 +0.6908774234700151 -0.09578708017948911 0.02871994552028476 +0.720397073474242 -0.09578607478187845 0.02872329852019767 +0.7351919166100787 -0.08536717986227321 0.05208113480294278 +0.70568702207497 -0.08535191650914058 0.05210614501396835 +0.6911402606609748 -0.06930907803758557 0.07208503105069647 +0.233523062979173 -0.0888537081370829 -0.04588048114710751 +0.1446996998374535 0.09112194689027468 0.04119212054417642 +0.8532529461082343 0.04343269540748482 -0.09007552924985036 +0.3823700598927924 -0.04889486560561279 0.0872312565392077 +0.397093126015194 -0.06934594350225264 0.07204956710336562 +0.4263003124092408 -0.06927404650048953 0.0721186971696523 +0.4117681161827684 -0.0852979922120904 0.05219437253752712 +0.3822996482332752 -0.08534333288972518 0.05212020271711876 +0.4405855508667659 -0.08542761040661233 0.05198195244713363 +0.3967349088267623 -0.0958140471554093 0.02862985098984983 +0.7645472518723978 0.04341667531762989 -0.0900832520747531 +0.7054362796229149 0.08203387912356205 -0.05718778432445877 +0.6759151478005192 0.0820296134304061 -0.05719390282589693 +0.5286209446119414 -0.09996154885503464 0.002772859625463116 +0.5139066329571441 -0.09600821276846543 0.02797182655825453 +0.4844889821856969 -0.09600542276115669 0.02798140097371072 +0.4994322159964278 -0.08586351908117595 0.05125871721957675 +0.5285231261566266 -0.0857115209860598 0.05151247586998932 +0.513809143036262 -0.06982043996296021 0.07158984678974155 +0.4848042881182353 -0.06990830235899126 0.07150405066346842 +0.4697248535966994 -0.09996004334639558 0.002826611785640232 +0.455330974490136 -0.09595766816402136 0.02814473166551002 +0.6317101129198254 -0.07383850087508755 -0.06743794027489049 +0.6760514553309326 -0.08865870988218016 -0.04625616890780526 +0.5726806869181211 0.06482437201186818 -0.0761432911901431 +0.7201400716089706 0.09871094694654156 0.01600465410176237 +0.7496833031170433 0.09870277767122078 0.01605495811223314 +0.7792426678382364 0.09869387921703272 0.01610956874325805 +0.6168437605487275 0.09953893136303588 -0.009591722634898988 +0.587348919453059 0.09953645349481512 -0.009617402231086562 +0.5726285110731911 0.09383524017951035 -0.03456801557008454 +0.5578714177189571 0.09953666500728056 -0.009615212906036496 +0.5431410338089677 0.09383351434135598 -0.03457270001533787 +0.528393029668088 0.09952962321942052 -0.009687832667846284 +0.5136561012017993 0.09383044996251022 -0.03458101588780851 +0.4838732801091822 0.09415627040856282 -0.03368377566054018 +0.4986520687553757 0.08234747808312437 -0.05673528754971946 +0.4690435585830808 0.08275790346049904 -0.05613492152682431 +0.4542187312768707 0.09437730187955819 -0.03305941454313344 +0.4391506291433197 0.08312884865452264 -0.05558412112621258 +0.4250398860597128 0.06558689319638793 -0.07548747870240205 +0.4101784836461408 0.08257071441132198 -0.05640990269096292 +0.5727636905240454 0.09868384891544277 0.01617089865264349 +0.587380365300049 0.08201795133890408 -0.05721062539571792 +0.5579729468057695 -0.006287599357251067 -0.09980213471826491 +0.5727394520317902 -0.0313540433921724 -0.09495748502862622 +0.5431720061532369 0.06482299406525788 -0.07614446427952293 +0.3956356836594934 0.07764582057191823 0.06301687510273325 +0.3827292974397289 0.05958211576058893 0.08031171447237184 +0.4084778606042422 0.05919118294126527 0.08060027209639969 +0.2038223664773965 0.09960588002957887 -0.008869535699975553 +0.6611532548706298 0.06485991890279318 -0.07611301412979973 +0.4695497679337849 -0.006338198648977802 -0.09979893405185297 +0.4843027656994869 -0.03138721958193307 -0.09494652414341201 +0.5137830026033889 -0.03138358494174724 -0.09494772559784746 +0.5432585098382064 -0.03136888387689207 -0.09495258355788989 +0.5285378725221619 -0.05439122095666978 -0.08391421263911572 +0.4990665526051146 -0.05439948919406867 -0.08390885278338875 +0.5284944747586675 -0.006306328017828638 -0.09980095303618874 +0.4548293783478164 -0.03140750886208869 -0.09493981455152428 +0.4253629329424969 -0.03142400667401509 -0.09493435523850918 +0.4695881958071348 -0.05440829272478151 -0.0839031446536689 +0.4401099022051559 -0.05442691570440844 -0.08389106535802976 +0.4107744586873229 -0.09995967701534539 0.002839537108021642 +0.4249808618186163 0.07791382995494439 0.06268520640272321 +0.8384565770016568 0.06490996447374002 -0.07607033923953416 +0.5578913445606931 0.0820163759645073 -0.05721288380818249 +0.5285209726693785 0.08214784097842201 -0.05702396182819894 +0.6759260737716617 0.04342353353895954 -0.09007994635317484 +0.6611471477842898 0.01926320234972971 -0.09812710652634861 +0.3518420549800655 -0.0999576903184764 0.00290863304587736 +0.3371350579102519 -0.09595945625630534 0.02813863456165248 +0.3079120890045516 -0.09596322909563187 0.02812576508362527 +0.3808580601411213 0.09963034461019175 -0.00859036860992796 +0.3661203596244694 0.09420519419237088 -0.03354670456509393 +0.3366892700862085 0.09418163219346906 -0.03361279752377232 +0.351514585357326 0.08258779250005152 -0.05638489629296514 +0.3220126858565896 0.08251639538795305 -0.05648933078182997 +0.5135790949748538 0.0775911230220153 0.06308421060917295 +0.4841010879696515 0.07793707228113556 0.06265630665978529 +0.3219649288738551 0.09962036414024861 -0.008705345976138376 +0.4106047016805047 -0.006381541747038941 -0.09979617189517241 +0.2629219962719023 0.09961314561934609 -0.008787560515806037 +0.2777191696371618 0.09412887384617916 -0.03376025930661804 +0.5587903820647458 -0.04891573380232724 0.08721955621636618 +0.4844138452531954 0.06495282983442839 -0.07603374182887351 +0.5433340534076662 -0.0960144594303402 0.02795037710478262 +0.3667244339538323 -0.0959138286664213 0.02829377087891219 +0.7351512888116912 -0.0887761978045174 -0.04603028028779751 +0.8976506493080573 -0.06934282536062855 0.07205256810832887 +0.9271808797959966 -0.06930154369329176 0.07209227449405915 +0.9414044623132087 -0.0854495951859307 0.05194580524508759 +0.9523301639838256 -0.06891180853345412 0.07246490629710743 +0.9538757399383631 -0.09622039202811507 0.0272329975940191 +0.5433024364734461 -0.07386603076982907 -0.06740778514615849 +0.6171732347686648 -0.09993699299680625 0.003549285950201713 +0.3233400338874338 -0.08537424403559707 0.05206955401528151 +0.7942159934513614 -0.09994005986130867 0.003461854260080685 +0.6759324877252008 -0.006195097754827197 -0.09980791934414891 +0.48438845309249 -0.07389340481400915 -0.06737777619507022 +0.4411331260156831 -0.04888049560690823 0.08723930965581414 +0.3959393768927056 -0.03145393820872903 -0.09492444243271307 +0.4106728270790831 -0.05443014804116911 -0.08388896819139222 +0.307212839016469 0.09415480040028681 -0.03368788449253159 +0.4254773165452158 -0.07391038864121259 -0.06735914526554589 +0.1594757088500332 0.06513683299553084 -0.07587616877065108 +0.21863488146348 0.09409465467954127 -0.03385551595734265 +0.2333847106404385 0.08236129590304579 -0.05671522667829984 +0.2777715003080363 0.06478077739237061 -0.07618038382969811 +0.3368194090128815 0.06480006050878283 -0.0761639820260081 +0.08536402580205399 0.04355457573090331 -0.09001665919651212 +0.07286568681591757 0.06528942627024252 -0.07574490621357034 +0.7939470130514954 0.0598715604897886 0.08009616872558628 +0.3516501884044744 -0.006429298089788583 -0.09979310660598077 +0.6906336965885888 -0.07391290638547539 -0.06735638254576884 +0.1596911578550997 -0.09563064459328609 0.02923661770233698 +0.6464249363453477 -0.00623485850238577 -0.09980544343599315 +0.3665445040781078 -0.07391442660274856 -0.06735471431152311 +0.2794166339861863 -0.02525972008099146 0.09675715240451198 +0.72058684618131 -0.02526149051534748 0.09675669019216712 +0.2206031969728852 -0.02525549533585483 0.09675825523096526 +0.4999006132032613 -0.04893221446970757 0.08721031124294043 +0.3529543425523057 -0.0488965495261218 0.08723031264669134 +0.8088271124860144 -0.02526137798955974 0.09675671957062511 +0.2926185223156465 -0.00649216875166083 -0.09978903619586653 +0.2481759800968622 0.09409911068379974 -0.03384312882282025 +0.1029411764705884 0.02526392191504081 0.09675605536332453 +0.174353400512201 -0.05490449199675415 -0.08357928426696631 +0.08547339437844918 0.08231063476499463 -0.05678872603416684 +0.05563706250660976 0.08228786063921251 -0.05682172112336568 +0.6764705882352946 -0.04888885400611052 0.08723462588885914 +0.6176695093635964 -0.04887735358045615 0.0872410700700712 +0.103937848851758 -0.09774409807550977 -0.02112087335801076 +0.7941191466066 -0.04888783596533245 0.0872351964210934 +0.8676472569532369 -0.02526122736725868 0.09675675889517829 +0.1891107814952558 0.01892719707992807 -0.09819247023421686 +0.05803890249045007 -0.00626696540540487 -0.09980343252918439 +0.3676470588235301 0.02526392191504081 0.09675605536332453 +0.3530232983881414 0.04785712600973324 0.08780487167628295 +0.3088085677329905 0.02525549533584761 0.09675825523096715 +0.808960737177391 -0.09754722605096879 -0.02201223954442611 +0.9246363322405237 0.09871026123165356 0.01600888277109657 +0.1595844468991577 -0.07435836833743249 -0.06686428836228438 +0.8533194798493879 -0.09994159988707607 0.003417105794616013 +0.3676624656980098 -0.06936002848276336 0.07203600800204199 +0.9257197896691109 -0.09749252422180188 -0.02225326315085891 +0.352858138027891 -0.08535197580038328 0.05210604789245474 +0.262881122335502 0.08211310742064956 -0.05707396595405707 +0.2925006673158892 0.08253231047195979 -0.05646607590544997 +0.6316632943890043 0.01924233502486824 -0.09813120065907036 +0.868007465343668 0.0939021655993485 -0.03438580078684418 +0.2185727264298926 0.06515999637136601 -0.07585627774207993 +0.144749271590633 -0.05491340675280354 -0.08357342734865641 +0.925451400207227 -0.02514606084032268 0.09678675335093534 +0.1594779515182713 0.01900743970726591 -0.09817696896815797 +0.1298700699230785 -0.03179084277676646 -0.09481214223686182 +0.8828001492232994 0.08206060652269206 -0.0571494256937715 +0.1446697531603194 -0.006628883603202608 -0.09978004761561898 +0.7058681874317342 -0.04889185580808236 0.08723294352274079 +0.8384936837402841 -0.0975384218214904 -0.02205121920831149 +0.2648347644672129 -0.04882339894995519 0.08727127657467557 +0.8678145646223769 0.06489521618307784 -0.07608292131977842 +0.1741467476999788 0.04349089556870947 -0.09004744306548414 +0.38123486049115 -0.0544337928912272 -0.08388660317044067 +0.1151674254955578 0.09111988460039797 0.0411966822743065 +0.8533244103275242 -0.08868601040724444 -0.04620380458410466 +0.8384788033927497 -0.07410764662952578 -0.06714206364890297 +0.8972186974971381 0.01879758173818563 -0.09821736567835766 +0.8235532592365735 -0.04889131770385829 0.08723324511435072 +0.8529868386893715 -0.0488748903142797 0.08724245008461838 +0.8976430700233426 -0.03124843294988972 -0.09499229146713035 +0.3664960575984036 -0.0314483031018668 -0.09492630948274096 +0.3370076740674928 -0.03145089381521754 -0.09492545116155052 +0.1003660802515165 0.09860857499275029 0.01662374620532759 +0.08616181467761455 0.0996167948287433 -0.008746095588779207 +0.2482007287312107 -0.03175182137108217 -0.09482521731912293 +0.661735320079767 -0.06933189268800262 0.07206308802916574 +0.6323122389934464 -0.06934296329969511 0.07205243535660082 +0.6028821566566508 -0.06935134452501616 0.07204436836125716 +0.543496519663887 -0.06961448098739853 0.07179013885524342 +0.5732934721260688 -0.06946504245398326 0.07193474735387832 +0.9681605200315824 0.06603249664142243 0.07509799855722213 +0.02576691230308493 0.06798640013746142 0.07333382164014765 +0.6906723575894277 0.01928111669983796 -0.09812358808567506 +0.3955023613758566 0.06459465377469269 -0.07633826500338858 +0.749765068518744 0.01922162264841075 -0.09813525983438422 +0.9723889251289501 -0.07893286658462814 -0.06139708928551332 +0.7202113558113173 0.01925244754529021 -0.09812921717570078 +0.971764025799426 0.07821171527140108 -0.06231314142542718 +0.02698354268639098 0.0781999005998152 -0.06232796760828178 +0.02544191805547403 0.02952148618965746 -0.09554308898687475 +0.0515473508113826 0.04337713381728996 -0.09010229887076646 +0.9742164296471714 0.02946345214420972 -0.09556100139568371 +0.9723887975546824 0.0971909377901027 0.02353553932843664 +0.9685284228485403 0.09970400313564176 -0.007688417179624241 +0.9709446618491515 -0.09989391244677716 -0.004605025089575491 +0.03006434580849448 -0.0999308015129276 -0.003719530747805236 +0.05153832954383115 -0.09749279121818281 -0.02225209339562951 +0.2630764581187176 -0.006529850820961372 -0.09978657749545272 +0.3074428018244183 -0.03153730029505915 -0.09489677913448519 +0.7645409746046027 -0.006311837517188325 -0.09980060474344138 +0.2928027670323106 -0.08867603410280263 -0.04622294858399437 +0.8824349575222784 -0.04885066950184615 0.08725601463063391 +0.8827948710881846 -0.006366494755782319 -0.09979713294741788 +0.8827143965207457 0.04329864153545782 -0.09014004460384922 +0.9258965031093197 -0.09582121666229659 0.02860584620942395 +0.2629658022023316 -0.0887996603619079 -0.04598500102870287 +0.8532603153733292 -0.05461324750299504 -0.08376988239920484 +0.4692165026429605 0.09963966512761224 -0.00848157610690938 +0.07405205978155725 0.09414621427810353 -0.03371187234642147 +0.4551974174704408 -0.06937381635479814 0.0720227297758891 +0.9117796369672573 -0.04880345012330112 0.08728243383443464 +0.8828089770347352 -0.05445038343781488 -0.08387583527736064 +0.4703171927487712 -0.08586007687550311 0.05126448282127401 +0.3957061571832213 0.09428246276504867 -0.03332892459947084 +0.4259036581311206 -0.09570652772074775 0.02898724808666291 +0.3807183695031547 0.08214603502922087 -0.05702656336285766 +0.2789440115847684 -0.09585253739598201 0.02850072060057203 +0.4396154544129446 0.09964546548607602 -0.008413156842899961 +0.941176517917598 -0.04872940805418516 0.08732379280979907 +0.2349952864439607 -0.04873989855439753 0.08731793795610979 +0.3366540707292137 0.07794373446133361 0.0626480187892731 +0.07250441195085067 -0.0743543614400629 -0.06686874408002956 +0.9123608405502864 -0.006382046241231929 -0.099796139633629 +0.02919815039072044 0.09967442486347641 -0.008062817630034578 +0.9399744269230424 -0.006020720800887585 -0.09981859005735234 +0.4248271561152975 0.09432901366480065 -0.03319694535685253 +0.1750175853179939 -0.04881832499426321 0.08727411497548684 +0.9414742781105553 -0.09995671299292019 0.00294202781274725 +0.1905751625446908 -0.02496137955012574 0.09683454719755014 +0.1320588115577474 -0.02477206827262131 0.09688314937849921 +0.115658364535018 -0.04897324358316027 0.08718727781588581 +0.426470588235295 0.02428340849165193 0.09700678363922581 +0.07407344674429446 -0.02464746461725288 0.09691492396912493 +0.07342923138322657 -0.09555641589510355 0.0294783205302134 +0.05732885668789788 -0.04862515507365032 0.0873818876773869 +0.02835254395395196 -0.04787961202219765 0.08779261217553461 +0.9701058434498083 -0.04853756353585183 0.08743057203291733 +0.9545730416564759 0.02452613535345731 0.09694569967060887 +0.0514402475992057 0.02607366034514568 0.0965409976963465 +0.06022600929029231 -0.0884673946615627 -0.04662102617698701 +0.6399249111545549 0.02399316643759999 0.09707897797307935 +0.06411446725680439 -0.09986586245361743 0.005177790686689179 +0.9487709089990894 0.07813271539738111 0.06241216856216299 +0.9531859500752193 -0.09749234963982277 -0.0222540279883564 +0.9493472511204915 0.06635980385634088 -0.0748089328365802 +0.9491062860896492 0.01705828534994204 -0.09853433361483678 +0.0458035441525181 0.07816006464776511 0.06237791511630683 +0.07860330159819398 -0.09784572964729096 -0.02064493133408897 +0.9803522084827868 -0.09749279121818234 0.02225209339563156 +0.01959235836282523 -0.09749279121818234 0.02225209339563156 +0.04603711568008912 0.0673572052831283 -0.07391215662153632 +0.9489994251649106 -0.07205842338879603 -0.06933674075640571 +0.04614235978445427 0.01606065466175373 -0.09870185090379963 +0.948552916517075 0.09905529362961774 0.01371308878226253 +0.9770043286338558 -0.06822609995148819 0.07311086981707675 +0.9811154558530613 -0.02947551744109063 -0.09555728057861401 +0.9471872150295213 0.09473808955209198 -0.03201084797408217 +0.01870564969596494 -0.07818314824680306 -0.06234898018587329 +0.02065553715433657 0.09765943563454892 0.02150894305960658 +0.01794663996001775 -0.06801727377709187 0.07330518718298271 +0.9781755757050412 0.02175500220631844 0.09760491728905404 +0.02542763074539088 0.02250295322206635 0.09743519434108752 +0.01771375014051884 -0.02947551744109067 -0.09555728057861401 +0.9763141173635808 -0.02204729538173799 0.09753930882649516 +0.02303970976165702 -0.02183978167437412 0.09758598227417539 +0.0508355758248084 0.09510587375473382 -0.03090101579800627 +0.4396546862947157 0.06617872168124382 0.07496917230859941 +0.412325208046138 0.04022420032230045 0.09155333805182335 +0.7809396966657557 0.04464041110157188 0.08948314755685932 +0.8086295904167685 0.01624751869803366 0.09867126297031496 +0.8380416973098584 0.01621582746316716 0.09867647612113434 +0.8676462777191555 0.04565505222421393 0.08896974882736434 +0.3509281839148257 0.0666021799098899 0.0745932277841002 +0.8968652666950141 0.01611773139716786 0.0986925464997674 +0.1301392465606857 0.04547426965358618 0.08906228606695953 +0.9270353197835751 0.0456472638384956 0.08897374502660194 +0.1650987869146936 0.0166248691324767 0.09860838567955579 +0.1006036907761421 0.04546724555623829 0.08906587214825176 +0.1910096403027605 0.01602129631378938 0.09870824719559029 +0.2184977220061798 0.04549797551639252 0.08905017812396418 +0.07570335356635133 0.04536108512500143 0.089119986289734 +0.2498325238236347 0.01598976503816806 0.09871335985581779 +0.3823529411764713 0.0404170271738389 0.09146837658135826 +0.514533193348345 0.01592568605136737 0.09872371814206191 +0.543944975645444 0.01590877312991265 0.09872644497550274 +0.691003491796719 0.01582048654865528 0.09874063097511489 +0.3235172687750349 0.04018636580847865 0.09156995142025105 +0.7351054013044269 0.06776250321076675 0.07354075848541967 +0.5912538308495628 0.02121862752575693 0.09772292385066665 +0.2751601214638404 0.04455291033045805 0.08952674561876001 +0.6463903414950827 0.0671980233582589 0.07405690823105493 +0.4693410906618556 0.0673909552463748 0.07388138568666068 +0.9496706790641984 0.04449641998026433 0.0895548357652446 +2 3 0 39 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +1 -2.503541930082155e-16 -0.07306820487327914 +1 -0.01150824889312312 0.07280417667649478 +1 0.07123623242397975 0.01625920519091276 +1 -0.07286389135284624 -0.005460393788372082 +1 0.05855994900625908 -0.04917425094414683 +1 0.04969900095266479 0.05356278435360208 +1 -0.04116078541182028 -0.06037178403596809 +1 -0.04875854296352724 0.05132560736237923 +1 0.06944984514603657 0.04009688679024143 +1 0.04665563482725372 0.0275528366322077 +1 0.02297651809823792 0.04235001236537813 +1 0.01985573963200126 0.01447966668228785 +1 -0.003969118687826098 0.02972517116452704 +1 -0.008513706565336083 0.002292220138594796 +1 0.01623453042698919 -0.01410242938413878 +1 -0.01224314338738922 -0.02649510757048446 +1 -0.03450550212999404 0.02144882057249528 +1 0.04871740625483301 -0.003488004852144479 +1 0.01323793920972892 -0.04397369914465722 +1 -0.03369305220905091 -0.008916522986870287 +1 0.03915734447139095 -0.02818109576474569 +1 0.07828726642463173 -0.006766422180493857 +1 0.02831588746977902 0.06799443321897355 +1 -0.03723162283093191 -0.03480413784791668 +1 -0.01683919035646618 -0.0525573204498645 +1 0.02629005051493083 -0.06917579577250926 +1 -0.06136973046791287 -0.04418039696963311 +1 -0.02194967942142288 0.05019951782252414 +1 -0.06724393895343415 0.02559486143473897 +1 -0.0236375297183843 -0.07663098922688143 +1 -0.03418764401364816 0.07135923552761661 +1 -0.05599275549500649 -0.02004242348629351 +1 0.003315594733254228 0.05619567722638206 +1 -0.05341173252383826 0.005654386985016353 +1 0.009750487402022718 0.07935329800422579 +1 0.06813621629229007 -0.02664364452286063 +1 -0.07540677636266056 -0.02851090800560852 +1 0.04694795383579439 -0.06567816069170311 +1 0.03648978553636028 -0.05030998955692086 +3 1 0 538 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402 +1403 +1404 +1405 +1406 +1407 +1408 +1409 +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419 +1420 +1421 +1422 +1423 +1424 +1425 +1426 +1427 +1428 +1429 +1430 +1431 +1432 +1433 +1434 +1435 +1436 +1437 +1438 +1439 +1440 +1441 +1442 +1443 +1444 +1445 +1446 +1447 +1448 +1449 +1450 +1451 +1452 +1453 +1454 +1455 +1456 +1457 +1458 +1459 +1460 +1461 +1462 +1463 +1464 +1465 +1466 +1467 +1468 +1469 +1470 +1471 +1472 +1473 +1474 +1475 +1476 +1477 +1478 +1479 +1480 +1481 +1482 +1483 +1484 +1485 +0.268734849562297 8.678019529639869e-07 2.424041184544146e-05 +0.3687401665273465 3.469446951953614e-18 6.764828177213689e-07 +0.7132177729366423 -1.721067164747042e-05 5.776205234316045e-05 +0.5064582714200779 -5.580027912330254e-06 -6.147645290831803e-06 +0.8454968360563146 5.65459218356823e-05 -2.691232990403858e-05 +0.609574444651921 -1.661898254581851e-06 -8.853883966777887e-06 +0.1533413218253502 -1.231904683002272e-05 -2.046087777082817e-06 +0.9219427229563725 -0.01939383691025429 -0.008696595680282814 +0.07797145070964782 -0.004255908198889047 -0.02164167120828883 +0.4376001690786889 -0.008011534295762228 0.02572006309460388 +0.7793814695249716 -0.01422591480766552 0.02535746621963106 +0.211030723246348 0.02881253820609682 0.01787413356588517 +0.2110464781058128 -0.02173948372900679 -0.0259273219432464 +0.7681683249135164 0.02120444126357036 -0.02857502134857295 +0.4220725252389623 -2.611626058547645e-05 -0.03650835314634296 +0.6617647058823535 -0.0005814005945286146 0.0378661785139183 +0.5580342062526941 -0.02753222054182743 -0.02591531150491637 +0.6611794787726845 -0.002914611459696645 -0.0376680317219478 +0.8971776915532333 0.03410573634478894 0.01609730200334863 +0.5578848714085336 0.03532574806224245 -0.01363764991097196 +0.3187463139547875 -0.006325724685629284 0.03761771812317383 +0.5580176453116135 -0.008521369138748389 0.03670962043835162 +0.3187286071608521 0.004713335298362297 -0.03793645858738472 +0.1029411764705884 -0.000451752497152634 0.03837971120928195 +0.4595128965404829 0.03889524282979027 -0.007292315072507637 +0.8013074300422407 -0.02881028600433828 -0.02855192199975666 +0.2261059685260812 -0.02694427919064726 0.03115725441995459 +0.9431590974011212 0.007815940751619115 0.04170405003947571 +0.8035735709437393 0.03878311397523362 0.01538166553793698 +0.309009594976871 0.04148615003038076 0.006022154071607177 +0.4642573926982453 -0.03701969660635153 -0.01821792453068365 +0.3076152187852595 -0.04212506460356622 -0.006193775793957211 +0.05843555708313716 0.03518365228172823 0.01931097191178937 +0.1115845147823084 0.04104530461183038 -0.005107308717666828 +0.8864318010758006 0.01620246116288059 -0.03848987871775356 +0.8860449981703395 -0.0190780566960637 0.03725107526745427 +0.6507147607929816 0.04171255418282754 -0.001160053679672611 +0.2341387957604846 0.02950281596742642 -0.03398643095243611 +0.40551481853475 0.04238751685148304 0.01151176091537274 +0.114568236782079 -0.04248954567886618 0.000881928213329274 +0.6613862347038606 -0.04469321119953568 0.00142629274746929 +0.7473394638432856 0.04012740222368996 0.02038627025708148 +0.7486788283631677 -0.0418793504786611 -0.01303498968759556 +0.4044601711144856 -0.04397933686857278 -0.004996567605631254 +0.06203039824869644 -0.03684688879791783 0.02238076451015512 +0.9450121244811271 0.02560934646733485 -0.03511186531124386 +0.8738688611132872 -0.03877862002672529 -0.02591525681431658 +0.1812672023921828 0.03812043938356745 -0.02634716266796288 +0.1797748539787944 -0.0457730304722628 0.01089713513280969 +0.1798690211794078 -0.004282581467938851 0.04653872713756389 +0.8205814576289544 0.02812047497730388 -0.03858642487535442 +0.1258623591779811 0.0009728229599732805 -0.04697809614730463 +0.4790592626128262 0.006786356516091668 -0.04593517437749201 +0.8224938637908735 -0.04462707703647815 0.01773032728623708 +0.5283130037215272 0.03652749445647376 0.03226033664799556 +0.3911746510750332 0.00529203334719552 0.04787290619276656 +0.4852941176470599 -0.001988017080359603 0.0488388160043375 +0.5877583753626726 -0.04662116037936297 0.01408531770603676 +0.5283073374024839 -0.04657911403948473 0.01405683221629726 +0.2789696503125934 0.02455763073135018 0.04313608619091011 +0.3516150867302509 -0.03599838770881496 -0.03412207508414088 +0.8237525442012668 0.0026782102445101 0.04762485565086223 +0.7314465573052102 -0.01647744393668913 0.04629688701842054 +0.5889270286845707 0.009448834276771316 -0.04782476549828384 +0.6939026528084232 0.03779912330428898 -0.03106816821183436 +0.2517769138514636 -0.04796508976564125 -0.008297603988705837 +0.7303568306376518 -0.008409918601763674 -0.04818014082516547 +0.2630112019069015 -0.01736610980638262 -0.04788508141483301 +0.04833009961720028 0.03217683440172892 -0.03856484949953327 +0.3540277212414758 -0.04695369053711403 0.01657178241020443 +0.2592452703997306 0.05071982062944183 0.004529542450345628 +0.3512094597032518 0.04240039850608447 -0.02384702912098288 +0.1625512804846506 0.04415604841002103 0.02431996984097432 +0.6955041925132073 0.04188458609078394 0.02548264274420775 +0.3558612329816084 0.04165079109643485 0.02746120835801591 +0.2780149177056676 -0.03594641026352742 0.03422398611803004 +0.6169722056038243 -0.03600321566815077 -0.03593220631695931 +0.5305250122069758 0.0095459078049508 -0.04903210459152302 +0.04851170375672282 -0.04481441066774208 -0.02513842675221958 +0.162813434878746 -0.03275640350798183 -0.0377648634742356 +0.9548404726936063 -0.0529386256336378 -0.007371158504887478 +0.6144801641548404 -0.01669330229997677 0.04787575728733103 +0.5979047533223412 0.04734984991685315 0.01636945682919132 +0.9459121886101159 0.04819353220415774 0.0106322923998485 +0.8511715459877562 0.05033786481049563 0.002442180072025555 +0.374033694297017 0.006093538376214177 -0.05016160722520736 +0.7088363579723462 -0.04899521633942801 0.01604583858851599 +0.50866876543314 0.04877758159149357 -0.01252062540231561 +0.04874935533433607 -7.70665217876334e-05 0.05199864647260616 +0.5100927136758463 -0.03432477884490585 -0.03742159034329975 +0.6979442353016321 -0.04130319063670398 -0.03128480995156242 +0.2822771082770941 0.0370957853303313 -0.03626328129780151 +0.9334678736871137 -0.03932530979038554 0.03422299033281705 +0.1423994580578325 -0.03468342706871247 0.0400569315053062 +0.9520931434459139 -0.02426012515354296 -0.04678501939032011 +0.4547553706129471 0.03472902827680569 0.04073334257998007 +0.4812660235555793 -0.04521709968995869 0.02670742217891111 +0.841210743538001 -0.01356961695375251 -0.05046481767077881 +0.6299190375203313 0.03204368616542386 -0.04233161763511659 +0.4006741347184844 0.04176039630104628 -0.03519897364963754 +0.8600752188461136 0.03145818862355088 0.0439777953265301 +0.1858226137266308 0.002844555460496615 -0.05534050969484762 +0.2352647267039581 0.01254541961006938 0.05430587283816504 +0.4057196570352815 -0.03747115791382208 0.0403177313895572 +0.8975181846885759 -0.05403371551590063 0.01011271099004318 +0.7358994467281487 0.05247156443035566 -0.02181920572658875 +0.6347831599860397 0.0365306248844201 0.04173013286461573 +0.09310099420530685 0.03223750161189939 -0.04552608619039482 +0.9071070320356132 -0.02190130353689514 -0.05167600582002382 +0.9100081605704899 0.05179312627328979 -0.02372696825355097 +0.120214037536608 0.04099953357100938 0.03896573878847967 +0.1017075108026475 -0.03676889072117456 -0.04195498497611769 +0.3944726665666396 -0.03330904552686795 -0.04702676039505619 +0.356999462294322 -0.02198693938712605 0.05266755231793939 +0.1393503677274761 0.04221316487118945 -0.03930237291388224 +0.7542546958145712 -0.04959002657179359 0.02949173760473526 +0.7778950818339492 0.02394992431152644 0.0494497239921077 +0.7729109898541409 -0.01165226898378192 -0.05672261143629933 +0.04736508697858727 -0.01030448814278487 -0.05469258926202186 +0.6905917673731546 -0.03033406117297331 0.05067508192383055 +0.3025681851256061 -0.03363862292283002 -0.04781183351632404 +0.4394092834443714 -0.05532647433088011 0.0188037670785289 +0.7864561424122792 -0.05808047584783331 -0.001063487640783466 +0.6999616237422001 0.01170390422456081 0.05642251070962048 +0.8344887750870277 -0.05496773685553945 -0.02198741987608077 +0.5949963738112485 0.05208683641250741 -0.02734203562729853 +0.7765224753200288 0.05880238509611221 -0.01058770001875797 +0.5212430818319755 -0.02595302182596094 0.05144826600772862 +0.9579576098898457 0.00378989317611223 0.0006373392816911507 +0.6281398418964813 -0.05191293300450342 0.02755269641442667 +0.3192333406294888 0.03441689441527567 0.0456476299724666 +0.219148081984858 0.06001107223655516 -0.009176799448100927 +0.1399959571462194 0.003344547020062053 0.05842717815978062 +0.8476977671631707 -0.03195737487042824 0.04902237785978299 +0.4458286974252125 0.03398684785946528 -0.0477403846109295 +0.4898164115464639 0.05287303871162691 0.02524447406506961 +0.58912987205081 0.0207633669955617 0.05214716961675449 +0.04296973642671647 -0.002410631485835985 0.004011321494047509 +0.9029606252337218 0.01648710433678744 0.05520717391850714 +0.09967262740345441 -0.04224140983881123 0.04010027151526303 +0.2265431324221692 -0.002021473075788547 -0.05942327295723596 +0.1930840634678362 -0.006681432561259849 0.007759672973460688 +0.3176286934627941 -0.04763321867215061 0.03617505818228198 +0.4514388452337091 -0.02262117017501113 -0.05473495472034145 +0.07316784502189151 0.05647737722385669 -0.01426589626629138 +0.8577926258380928 0.04584718302071859 -0.03799605472059753 +0.212507541696921 -0.05913457452119058 -0.00955949309912443 +0.4965845240254999 -0.06062555265964062 -0.008863013029986834 +0.8048318851706577 0.001963414500434111 -0.002057485262335561 +0.6572245446072694 -0.04384878845799868 -0.03952059514132403 +0.3292973496669878 -0.008444283902030884 -0.001277829996927486 +0.6944022987418462 0.007882010735652123 -0.05899281732135411 +0.804125152658 -0.03245994052811852 0.05165222396951127 +0.886233794565375 -0.001857827755913932 0.0002823274450645986 +0.3529411764705888 0.01748931642461843 0.0599898593339787 +0.6270737657493971 -0.004651334197335421 -0.06019932648759305 +0.2875717580111126 -0.009219261133851808 0.06163764324822293 +0.1902111225928458 0.0343190161668475 0.05197411566472911 +0.1489986742675229 -0.06000198267695354 -0.01120967353261611 +0.4558349629559833 -0.03008807376193247 0.05444307028888582 +0.9223514173367089 -0.05280492931483455 -0.03101178023482468 +0.6732575150742871 0.007811361212376444 -0.0002875218739784052 +0.112703327814296 0.000604579009730895 -0.001073549816720996 +0.4303570521575735 -0.05057405892667447 -0.03500934554283734 +0.4662185288383884 -0.000400716918821805 -0.001573032902978108 +0.8581404584503164 -0.06077839411799132 0.009684546813157703 +0.4282851352744925 0.004349042319831744 0.06249349237103972 +0.4085456591815189 0.003920417820476682 0.0009372453394975791 +0.08291163039960316 0.03204358755908181 0.05108571247577859 +0.7526435754688109 -0.003943529471808108 -0.002098239974377782 +0.8170234717642136 0.06007439974763198 -0.01530358427553843 +0.7263832749721135 0.03067219766107749 -0.05353905809137002 +0.2386632294267323 0.04842887589691992 0.03815984884555147 +0.2300556136076936 0.0008100824128928902 -0.0008731165840700321 +0.2362465799850023 -0.04534747721866203 -0.04389506176631773 +0.08773603432770759 -0.004321776147200085 -0.06017050755095957 +0.7384505766900029 0.02184373525110881 0.05465068677803814 +0.288397399440302 0.00857106464140019 -0.06212608315045254 +0.5594943304861065 0.05782030751777437 0.01930157967292922 +0.5301863324571821 0.01090529361302645 0.06214076886523799 +0.5699404783348339 8.129876104468585e-05 -9.671115148108414e-05 +0.5851582937910201 -0.05612930341462165 -0.02411901136358317 +0.1552782650368885 0.06202069130270713 -0.009644484367483917 +0.7668164008522704 -0.01134807651690735 0.06236022520166416 +0.5580195643529845 -0.04783909019658485 0.03998361935854606 +0.5030717417873399 0.03765642224694317 -0.04979608497144083 +0.5358436926236647 -0.05924067549560288 -0.02194956158502612 +0.438561037430377 0.0622347227566528 0.01546460519369801 +0.3194652144508909 0.04273233562641576 -0.0464416881722017 +0.07927809362646407 -0.0608807290174062 -0.004846786389564674 +0.2520340349008132 -0.02271038410772956 0.05877835502441537 +0.5838749099446431 -0.02849129655593968 -0.05504291577893136 +0.3742005561707566 0.06239918072399727 0.0002311695738000889 +0.8083961580939044 0.001634400289339536 -0.06380287068500931 +0.1934055772559949 -0.04044499923141079 0.04662922806576497 +0.5615923211674607 0.03652468351449987 -0.0521589472475372 +0.3427326881428819 -0.01201703767022607 -0.06252098285616672 +0.08972328538505854 0.0577399608899718 0.02207184755385202 +0.8676470588235292 0.0002038364676170469 0.06468944587433938 +0.6199022552412675 -0.06324019508874715 -0.008555151405867378 +0.9286965586479903 0.04360527819634483 0.045037585137041 +0.6525507174055883 -0.03507564046080185 0.05187681955998921 +0.9181809749849643 0.0141229851186263 -0.0605555415349237 +0.2477542834691543 -0.05786153920463704 0.02803621151136409 +0.8234831161807841 0.0405511579286245 0.0475518709079301 +0.0352964224628969 0.03560408609850739 0.04970490226136639 +0.7713076175616266 -0.04658432132566608 -0.04275998297359375 +0.6906274604359401 0.06483253524560226 -0.004482759365767127 +0.2810330030126055 -0.06373898546650712 0.009162786817761118 +0.6654675560937557 0.03209777235443492 -0.05546146206504898 +0.3717455554773886 -0.0609061635352399 -0.01387477715399459 +0.281821228307544 -0.05780048023685415 -0.02824244643181026 +0.03766209230627678 -0.06334330074140523 0.007405412909819187 +0.9158176243046099 -0.01873826658833458 0.060697870498496 +0.7341845516273919 -0.04561897868893568 -0.04732532980236327 +0.4310342340975409 0.05915283409541484 -0.02129631879608611 +0.7892444837061878 0.04725076493872918 -0.04483581245065932 +0.1945073220375799 0.0619823207670329 0.01843698687217403 +0.4168696648099225 0.0388187394377304 0.04854405771630308 +0.85622020657968 0.01817527924034846 -0.06286964105813714 +0.2855306588589384 0.05748272467931446 0.02888960119090647 +0.965583838746087 0.03792278835253626 0.04092158988926645 +0.9236453737639214 0.01797953404787916 -0.00515414966860777 +0.9611095108687173 -0.0236089805955868 0.05792592709162742 +0.5396746132852901 -0.02540083419209991 -0.0583107789773686 +0.9659792256084522 0.05329256474723523 -0.02073588558771474 +0.3374097500960444 0.06473597585277739 0.002099132605471092 +0.9624695716904679 0.00805536164625926 -0.06403800753622488 +0.6384888343969758 -0.0184082014486951 0.01476653240389303 +0.7771444416986691 0.05811527443480977 0.0318380121022165 +0.03690989084670405 0.06193575904781331 5.947830090028642e-05 +0.1941841741323465 -0.0326468529761238 -0.05637936602099741 +0.5808885707620174 -0.02447242272008262 0.06071421304039663 +0.07961314134118681 -0.01876663275758117 0.06069116569389047 +0.204279434514516 0.03446538240451719 -0.05459886523527685 +0.6624773624273484 0.0582863979302274 0.02992863737741745 +0.8836947158649253 0.06649395242523019 0.006047925369110497 +0.2879927493582318 0.06400487907162408 -0.01284988723520296 +0.6690034085143001 0.03152893671998263 0.05436480236360162 +0.4056685331906963 0.01879840613848318 -0.06306372378423811 +0.2543905547250341 0.02078771849120691 -0.06261978910629132 +0.2109887463686857 -0.01320586146029281 0.06357960926232423 +0.6815535032198449 -0.02618740282120882 -0.06009249355928941 +0.432702436650768 -0.02139536709637295 -0.009042217006337498 +0.1579373360863021 0.01153722826613977 -0.03398366744664437 +0.03539133239422098 -0.0354167625704576 0.04927101846242212 +0.5047913036805357 -0.01075441992726944 -0.06435684578724576 +0.2544047439045615 0.05891379608170437 -0.03011352179542525 +0.3358944749775634 -0.06226676334350673 -0.01535564292679533 +0.6219433466441705 0.06364973648294918 -0.005672736155059342 +0.8745136496066087 -0.01297146890426038 -0.06454032186888725 +0.1542699883690095 -0.01129871693498238 -0.06539061497049022 +0.9677052963996734 0.009693398050511517 0.06689630767726649 +0.6640463913054501 0.05809379431594922 -0.03044454660500704 +0.3867919113425412 -0.06175841892445635 0.02119001354358069 +0.2969682892529673 0.0108788196745087 0.01689008252698863 +0.07720237513507633 0.00476429629234646 0.01343169490385212 +0.2939394144194839 -0.01315526167345646 -0.02060830471908108 +0.2505348488668628 0.01890245330580249 0.02334312429681282 +0.6850951324720133 -0.02195208186664849 0.01611338490895875 +0.4789348633134925 0.05822043908552675 -0.03119408279454106 +0.7592604891653637 0.02067835079799934 -0.06311200404090012 +0.6377377201572771 0.006193457773249044 0.06492598934129595 +0.8746161110802911 -0.05621865638128448 0.03907910809810054 +0.5363787108157466 0.05518321140311247 -0.03454716589350358 +0.9641526686913465 -0.0279832314151662 0.01776199083677669 +0.2053421626652348 0.01278352801414208 -0.02278506086350527 +0.9147456003004056 -0.003135891079187894 0.02256664613672541 +0.6773975442756899 -0.05680697496505459 0.03084062622457741 +0.133762970153007 -0.02151236606540106 -0.02053579445560918 +0.7233391415187237 0.06393217318095167 0.009395677102241786 +0.3451618511604407 0.02338475010005091 -0.06146364446579966 +0.1811675897789787 -0.06050847758426884 -0.0258421252286336 +0.7745882869124803 0.01873037348317228 0.01369503626465583 +0.7202782741044782 -0.06297231545401503 -0.01440244276078032 +0.2127336904077291 -0.06115351037700316 0.0256385275248208 +0.5580243729567518 -0.06438767643883053 0.005521021884236815 +0.4786154114039116 -0.04424122677055029 -0.04945243181341798 +0.5381769797168181 1.410971294698221e-06 -0.01578470733645769 +0.733735933757021 0.01762651485519766 -0.02200114536360584 +0.06834832660549489 -0.03901622192376501 -0.05408524472216217 +0.3859859826356974 0.05680713706598221 0.03666308238837268 +0.6871831478790342 -0.06764847112426459 -0.004110409532063269 +0.1298147586617251 0.06373994985602272 0.01422814999456056 +0.3780246934255962 -0.02288059681216621 0.0247499575670514 +0.5662294687887331 0.02385094808066281 0.02559641160416816 +0.1153859089277672 -0.02142924158891714 0.06397819690567257 +0.1554571379993178 0.03496062371152546 0.05755404991954288 +0.4354464838498716 0.02459118833416643 0.01351192377141054 +0.7878103759653091 -0.05693509816609139 0.0334708625628352 +0.1334221622417985 -0.05116498540859869 -0.04109423966691016 +0.9158775362962278 0.06379087191267233 0.01949942158153111 +0.8645691596962848 -0.02671136758597435 0.01109027456035462 +0.3493008899919008 0.005699753942201896 0.03263301958060084 +0.1449105693968568 -0.06482173220333022 0.022954333613331 +0.5600752563410598 0.001867661611285156 -0.06593530071567524 +0.4853197374447532 0.01857135460878918 0.02063650028360395 +0.4989823094506627 0.03046770270998221 0.05091631841847263 +0.5258451283339419 0.06583093395870863 0.0129843231706336 +0.8838495963489862 0.05629168455521567 0.03922083534735492 +0.6388375248921581 0.01188075382778377 -0.01512813966456045 +0.9297924838729315 -0.06570265627557996 0.01245162834506727 +0.4378918827169343 0.006646916337478246 -0.0676558479525276 +0.8544699060082728 -0.002296475162732033 0.03305624747711289 +0.1325206564060045 0.0117390845451694 0.02507661073955898 +0.824592854778187 0.06585304039790854 0.01770066908548122 +0.5252567949114222 0.0005701830903095707 0.02927638395431734 +0.8226908898028875 -0.04243683926433102 -0.05167851405589356 +0.6940632381442127 -0.007117426725351236 -0.02784001451840329 +0.1674147225561931 0.03462062568057393 -0.05756827860939578 +0.4597697388469505 -0.06832811982554807 -0.005335744701030036 +0.03063730937116121 0.004197087289166455 -0.02784782229282358 +0.8788517234547045 0.03710801602920252 -0.01256698573506732 +0.5908845408407307 -0.01743848936441601 -0.02314627002704053 +0.3812979277577967 0.03037485848066908 -0.009427738852995835 +0.2618989043149971 0.01123350040438585 -0.03067516977882179 +0.8346904531745593 0.02585699190897071 0.01912892230613535 +0.3212467729644292 0.008905317711859271 0.06757676382792081 +0.5896113369284045 -0.01389413753382195 0.02434851960280668 +0.971950561892983 -0.06266977611559765 -0.03122292458704278 +0.7343225501881163 -0.02697191644105846 0.01437580534998369 +0.3501258851947365 -0.002813913749965106 -0.02803603714156491 +0.1806965240465113 0.0243111577911929 0.004236825204770159 +0.558046256761488 -0.03019909010366487 0.01031258475246547 +0.1060658761549595 0.06065595418817591 -0.03225238052944445 +0.3260036098443359 -0.0240741816482672 0.06499080675000544 +0.8643754441935391 -0.006515953369049338 -0.02709722989185633 +0.4876146457610778 0.02251677887425894 -0.01707353942340841 +0.7236962512355209 0.05032156992371962 0.04285571561192762 +0.7248126514323624 -0.04932353637459636 0.04551011788518827 +0.3902675916842007 -0.008570974063173168 -0.02449930880790556 +0.9673596233112446 0.04327038407436685 -0.05258213748435248 +0.5997777947624439 -0.04826079623031546 0.04571579606200115 +0.9685942520364905 -0.02331796435539222 -0.01701340927321335 +0.3369560496124539 0.0240700990329627 0.0002134159935934764 +0.9604223501319724 -0.06102025057670105 0.02878255034168602 +0.4892210064979607 -0.03506356063872607 0.05811598045996373 +0.7771873613136646 -0.02622940610615712 -0.005673890201045115 +0.5630784068630548 0.00537346674064463 0.06699836674509088 +0.568878969220855 0.06745218411172818 -0.01192450637420844 +0.7120199294126134 0.03477517039642344 -0.002917134477191431 +0.7210010039428646 0.02000398748830216 0.02589555263521481 +0.1435175471705576 0.03202159146579808 -0.0004458716164833248 +0.2555552689270029 -0.01326215170261768 0.02691077050165061 +0.4605599453443779 0.01314894591573323 0.06585294780437538 +0.2779106349028322 -0.03127339441669755 0.00191308551538561 +0.6710776529365328 -0.009942960203410643 0.0685595119419717 +0.3880346572692354 -0.02327817201970522 0.06473786768090967 +0.1493928530646503 -0.03232361235044034 0.007481768284790398 +0.5099646937818652 -0.05573877476594347 0.04069609520477904 +0.4693189549043507 0.06871166206825814 0.004148161214567642 +0.370972044584159 0.04255870785855715 -0.05120504164817983 +0.4134438754283334 -0.01588861380080605 -0.06805862190703452 +0.7499200077658489 -0.07028161441600063 0.00398048306635415 +0.6611722466786064 0.0003923713065286764 -0.07075216711471416 +0.6139225231712419 0.01240700592808603 0.03097389811972008 +0.02766032707926836 0.04773870598065266 -0.05389752644902925 +0.1806150757047522 -0.009512853097457658 -0.0226212170730713 +0.2984944012681345 0.01863545431282125 -0.01477837510276692 +0.03789945158791002 0.02904599564427379 -0.006503474895051329 +0.642196014894339 -0.02265706704252935 -0.01830062453795345 +0.1874741558897102 0.06843536572958832 -0.01317078097394448 +0.7966520855335183 0.03246501963197705 -0.01626869856999828 +0.2432710553775808 -0.01984870495868879 -0.02219245636615259 +0.7564162470945313 0.04967382841966388 -0.04755197621911644 +0.8030526334199725 -0.06174091856667204 -0.02933435866110694 +0.7953201026966567 0.003206400530001412 -0.03358962311964294 +0.7966367705929565 0.002710300409569533 0.06692390746493904 +0.8552044169810389 -0.04803811331337227 -0.05149722110519039 +0.3171316048068212 -0.06852387112823688 0.01085089861991294 +0.264674174072334 0.01251023434562082 0.06987106676296735 +0.89340950891071 -0.06483535869248971 -0.02076952347947358 +0.111489740632541 0.01996174162255161 0.06334166222728677 +0.5898280470135376 0.0257198655026608 -0.007646354586483797 +0.8272920328493358 -0.02582245305216566 -0.008732701802106974 +0.4244161746265405 0.02697321484396717 -0.0175669016090492 +0.5580359536412612 -0.05387831980978672 -0.0457272604254667 +0.8890107348880896 0.04752974340082718 -0.04902430783994963 +0.8667179180110816 0.02118722434931684 0.01348519385649692 +0.1077824414838488 -0.06446348930511367 -0.02389459296521786 +0.08616929749866889 -0.02535366918946619 0.002669059840883826 +0.4909852783762372 -0.02917783247164498 -0.0004758903007820963 +0.02823611708677342 -0.06704251570498673 -0.0211984086959653 +0.6033731906097358 0.03565100614091293 -0.06123929477951285 +0.7495968572443253 0.004626849376572744 0.02924974073955276 +0.1642651398951264 -0.02775913067012934 0.06401551050032123 +0.06267333752643363 0.01789464913915428 -0.06584482150711402 +0.7228589854401779 -0.02347172569588961 -0.02032977159520952 +0.6304865297197222 0.06523747507263176 0.02611932033974641 +0.2098899438737939 0.0009481040374555647 0.03442362268841594 +0.1261596522200846 -0.02769833735710996 -0.06262059422864948 +0.3990307494683747 -0.06183521759230438 -0.03179569072430537 +0.5294947823490285 0.02706365656180744 0.0007783058316591929 +0.3754143754090851 -0.04839295334096675 0.04849739077197165 +0.9058071196107607 -0.0475401483459201 0.04929533406450265 +0.4250866063200587 -0.02785186261721841 0.06447211498968033 +0.4260165556587407 -0.06826481440494271 -0.007963761201299364 +0.1298550670489897 0.02681469847029366 -0.06636089613597479 +0.3818375216127187 0.02285739452934933 0.02217997161898437 +0.3663546502518971 -0.03478510187891891 -0.06281729986673232 +0.0441786200809948 0.06187538026386968 0.0320957077036184 +0.9371701965112831 0.06752917662877019 -0.0143343201827559 +0.3172060957913486 0.06181838588630979 0.0292969200447983 +0.02878315565844802 -0.03528173229607414 -0.04818952575188981 +0.6132520291512376 -0.03238747938142586 -0.000406041852081384 +0.3182481710189751 0.06557198113308005 -0.02377060780644972 +0.8113803767558341 -0.01527026260739088 0.02414569666380949 +0.3115585353973365 -0.01215408733304132 -0.06976395236006677 +0.6430443152586386 0.01576569273355313 0.01688744734295657 +0.1126310173019621 -0.06620949783618492 0.0227349498912717 +0.08337150203849612 0.02582933353646263 -0.0105555866253659 +0.770417353875147 -0.04262911474514211 0.05629738051697332 +0.9299655387678931 -0.003192118649478319 -0.0357042578386421 +0.2348884061492383 0.03194676948816064 -0.002536756260942359 +0.3272605786918886 -0.0536002963523469 -0.04480973417740059 +0.03135911916402847 -0.03244015755962261 -0.0004563371865139478 +0.0791994207444169 -0.06380117956213105 0.02736531813851163 +0.6502852018187363 -0.06743455814966931 -0.01860806066048261 +0.8522455844488788 0.06036540424398628 0.03278279863685367 +0.5524033345664664 0.03266396711356544 0.05342141610919657 +0.9714029245570504 0.007052562242194099 -0.0291173465461835 +0.5063178112484593 -0.002899235598734543 -0.03198942600225473 +0.4583032445321686 -0.02831610580513071 0.01205468790027031 +0.4519694698995468 0.008785056693335798 -0.02883092747221061 +0.8160006748088826 -0.0695141811808707 -0.0007674348375786731 +0.2210972180602555 0.05769164203483707 -0.04083852709559069 +0.03029879050643998 0.0163788774808156 -0.06238255941647172 +0.2250062989166763 -0.03205977413858949 0.0002149534253142252 +0.8437930284796151 0.02661076350545018 -0.01714153254889857 +0.755458438852884 -0.0166944019100351 -0.03087045565920025 +0.7128221811961444 -0.02939343205144161 -0.06421984491522199 +0.6479030256223094 -0.02818964555601965 -0.06571709162385013 +0.4045945784983362 0.06849311458848464 -0.006476448966112772 +0.8877699608806301 -0.04712872893983056 -0.05330181705628882 +0.9245393160471075 0.04429576397121457 -0.05142019381149925 +0.9322876558228707 -0.01314214584595515 -0.06915694837648181 +0.236524476279955 0.06953222440976814 0.01509712488526313 +0.3758198751183335 -0.03030383709050868 -0.006384190869639292 +0.8385409676634725 -0.06054914156777525 0.03961299113076555 +0.6915255771435114 0.007747657866977449 0.0258905658288617 +0.7976331480329507 -0.02916995156713036 -0.06551612306552136 +0.2074051824620472 -0.05769105085392809 -0.04284072748747947 +0.5496508999616464 -0.02755477187422389 0.0655634445601633 +0.02850952824375329 0.01129498217302594 0.02948488128721639 +0.2659302652817186 -0.04800750558027428 -0.05331098019455024 +0.2976850488419577 -0.03841731250147609 0.05817726658188817 +0.3810490551869578 0.03404102869053799 0.05950124830443308 +0.3035835745655935 -0.01912355890677644 0.01398148700006869 +0.879579657911113 0.06600262985025028 -0.025237972412035 +0.04457223924738523 0.06342079765561112 -0.03128383131259493 +0.8277696156085486 0.0004094210660035094 -0.02585749387237372 +0.09848994834627613 0.0272809648035676 0.02032369847372327 +0.2331905052995343 -0.04748076024999021 0.05395934408155376 +0.7542994681158199 0.06851613102844262 0.009195516293550463 +0.6599048700485955 0.07214231260559045 -0.0008474278023689295 +0.1657261577199343 -0.05536191053130397 0.04463105522820009 +0.1216463393905492 -0.01961376494162243 0.0215464657633044 +0.1006352635526243 0.07223004621718584 -0.003566244089053152 +0.5216933642123918 -0.0261579146056778 -0.009161932142258491 +0.6335491033669229 0.06258571142549359 -0.0362085086205719 +0.5010532526351646 -0.01971050890665138 0.02794750708861641 +0.6494774022528466 -0.07065047471914174 0.0143131812157276 +0.7540512505564293 0.04904186525295565 0.05129901805292442 +0.3235603518692981 -0.02522427603428723 -0.02666146694345536 +0.6205156865957111 0.03264360258376849 -2.525998104620838e-06 +0.06503279056175221 -0.04538196464976518 0.05248730749543555 +0.710323832667882 -0.01480937181304105 0.06920438825661275 +0.7090755884330245 0.06495741972283943 -0.03143749485586701 +0.665297670022733 0.02635243836057625 -0.02448436839136587 +0.8857838460099398 -0.02484786544621089 0.06779290536250533 +0.8268652860452805 -0.01995140736124867 0.06848314274664813 +0.7666070020721089 -0.06918512351629184 -0.02209868715327627 +0.3796978024955871 0.06484670854362712 -0.03070391939709049 +0.6146601962922388 0.001053349002495709 -0.03194904224240018 +0.9307679846824801 0.007328053146128135 0.07092286384341863 +0.7950749119507843 0.07156876590073649 0.01057005752402147 +0.1633039511347731 0.01340211794533471 0.02734562426433316 +0.02617886226075748 0.01276632904644861 0.06604242111754245 +0.8864849533568856 0.02074472072890336 -0.06917710960220802 +0.5600967554416356 0.009961247233086855 -0.03573376043537427 +0.4741502184738641 0.03376138244099691 -0.06079976858081341 +0.862693817196712 -0.06723961446849425 -0.02010135863348116 +0.9727530175082613 0.03229918882416531 0.002702146881270285 +0.3153177846823372 0.02188541004014311 -0.06863520286279387 +0.9716418396630586 0.009669845160136872 0.02838909099127773 +0.5804540163715723 0.05165694105844491 0.04413323368133895 +0.1257889042853288 0.02001498216479435 -0.02268200709030056 +0.5065016735622991 -0.006886110801552338 0.07066596213830634 +0.971944798969784 0.06519479653523597 0.02779223856964814 +0.6954711069848509 0.03834338299987048 -0.061615862926967 +0.4585322601258204 -0.06238940753836621 -0.03528101063029402 +0.7892741248102842 0.02530019464266742 -0.06602103929217024 +0.1434679896204741 0.06061588977650664 0.04155866519922576 +0.3457944090046092 -0.05617229002990133 0.04524302872727445 +0.7997239908586953 0.0124513538817882 0.03095593348385866 +0.07026348623812129 0.05295772007805719 -0.04477203547704745 +0.531985528338081 0.03814379577809941 -0.06006376733489012 +0.4749378565446173 -0.01106467256816532 -0.07022822827235313 +0.1640734457402427 0.06000100700017003 -0.03873950804179195 +0.971422090938282 -0.01992278887171203 -0.06904694305162497 +0.2098580457786789 0.055880903101602 0.04382353024824289 +0.4585541977420319 -0.05857658650143185 0.0428230155267781 +0.8423534341277046 0.01924366843930367 0.06734626036040997 +0.7335539217536265 0.008280401949685001 -0.07325099368196428 +0.5987489719948351 -0.007366010398398196 -0.0714047372022206 +0.2660311511679286 0.05092271224660914 0.05142919797456596 +0.189286160949795 -0.07352892300625143 0.003465585401599344 +0.6402439947793128 0.02230508493194124 -0.06919005185877303 +0.2934686460968839 0.01896878970463322 0.06827427015720711 +0.9292182235777906 -0.04198506321830058 -0.05895983660716535 +0.4132988139519405 -0.02269934062677968 0.01484348389650656 +0.08410971069034986 0.009376340747704832 0.07134875170600666 +0.829929471182196 0.0565516800566678 -0.04233712139181194 +0.04437484974233821 -0.06215049375264333 0.03728245590517672 +0.849897605407783 0.06945026617573286 -0.02089935442242761 +0.2367960992425603 -0.06814932836158358 -0.02452877842203509 +0.8956657214903954 -0.01772053641199773 -0.02384723818410089 +0.340772981797421 -0.02094418358471088 0.02345249993166196 +0.4990066881309401 0.0177564657093801 -0.07197264597402618 +0.5997152098015115 -0.001773431900128074 0.07100572203972064 +0.4626505049094323 0.06281963892947953 0.03345679960457653 +0.7478240122570099 -0.02582073788192222 -0.06543725013873725 +0.6974994043922254 0.04198593817401544 0.05580514433618418 +0.2773507043633319 0.027772664242098 0.003261630493465889 +0.2416525558531357 -0.02663979063470948 -0.06631488391025075 +0.07692640396683782 -0.03436026719071961 -0.02472267729071619 +0.4143715532183932 0.01056565108595645 0.02960162714895651 +0.5285700154316421 -0.0525734446601424 -0.05234788981911967 +0.3676470588235301 -0.003931840380461321 0.07445375207164344 +0.8273816281871815 0.02437831244296504 -0.06740405970188823 +0.3719929832876216 -0.05683000126050214 -0.04346522772436964 +0.6721189651818509 -0.02630490803258841 -0.01997897180278286 +0.06436673765687584 0.06973795577194848 0.01124525812339734 +0.3968962990247094 -0.0738341469509789 -0.004210257064145521 +0.1714549187065681 -0.02003726991158136 0.02293054422306396 +0.5167033413708939 -0.07343300497270371 0.008857565652170081 +0.3841328405387683 -0.01249191600729566 -0.07093506024194142 +0.6803421760312121 0.0369873768536216 3.336231969160467e-05 +$EndNodes +$Elements +1 5995 1 5995 +3 1 4 5995 +1 1054 1084 469 1433 +2 355 1159 1196 1362 +3 1004 1107 160 1292 +4 1015 1068 567 1355 +5 997 1105 894 1189 +6 124 1105 1050 1189 +7 38 160 1107 1292 +8 723 1188 1039 1195 +9 620 1051 1343 1449 +10 1015 567 1125 1355 +11 1024 1103 279 1452 +12 620 1069 1051 1449 +13 1078 1453 1007 1456 +14 355 1159 979 1196 +15 956 1059 999 1110 +16 1193 1363 88 1391 +17 1130 416 1272 1405 +18 621 1051 620 1069 +19 999 1110 1059 1217 +20 1094 1151 392 1463 +21 1025 1340 1035 1369 +22 28 1080 997 1333 +23 563 637 1024 1365 +24 401 320 1023 1138 +25 855 1026 1137 1473 +26 1085 1363 1193 1391 +27 141 38 160 1107 +28 644 1197 1030 1287 +29 1307 1348 85 1391 +30 489 1030 644 1197 +31 855 1228 1026 1473 +32 997 892 1105 1235 +33 980 1348 1307 1391 +34 961 1053 989 1074 +35 894 1105 124 1189 +36 1130 1231 416 1405 +37 252 1125 1039 1188 +38 723 272 1188 1195 +39 1035 1133 1025 1369 +40 966 983 1086 1326 +41 1000 978 1225 1369 +42 792 746 1149 1280 +43 1104 1203 1023 1291 +44 644 1030 489 1287 +45 1078 1168 1007 1453 +46 957 1043 1004 1244 +47 982 1170 1150 1382 +48 1135 1166 438 1229 +49 1051 1069 621 1202 +50 1038 1097 638 1230 +51 1029 1149 746 1280 +52 455 461 1020 1105 +53 1005 1077 494 1147 +54 557 1013 556 1156 +55 1013 1156 557 1159 +56 966 1215 983 1326 +57 982 1057 1170 1382 +58 1000 1112 978 1369 +59 542 1005 494 1147 +60 892 894 997 1105 +61 452 1035 1246 1298 +62 252 1039 723 1188 +63 394 556 557 1013 +64 38 1107 141 1292 +65 966 1086 983 1215 +66 355 979 1159 1317 +67 637 1097 1024 1365 +68 983 1251 1086 1326 +69 1054 1336 1030 1433 +70 1007 1203 1104 1291 +71 371 1152 1177 1253 +72 727 1152 1064 1177 +73 1024 279 1139 1452 +74 611 1034 1277 1301 +75 1010 1131 175 1359 +76 355 1196 979 1317 +77 85 1307 1178 1348 +78 855 1137 390 1473 +79 455 1105 1020 1165 +80 394 1013 557 1159 +81 256 985 1188 1373 +82 1186 1387 1356 1485 +83 1023 1090 342 1156 +84 855 390 1228 1473 +85 401 1138 1023 1400 +86 677 717 1111 1300 +87 256 985 1182 1188 +88 989 1053 961 1227 +89 1025 1212 1035 1340 +90 621 1069 830 1202 +91 256 1182 985 1373 +92 597 416 1231 1405 +93 509 1086 1048 1247 +94 455 1020 423 1165 +95 355 354 1159 1362 +96 956 1026 1085 1259 +97 1017 1098 1008 1411 +98 160 1107 1004 1284 +99 975 1148 1170 1215 +100 401 1023 320 1151 +101 681 1143 1073 1287 +102 1013 1159 394 1463 +103 1086 1251 1048 1326 +104 303 1155 1021 1183 +105 279 1103 1024 1379 +106 431 1185 1174 1350 +107 146 1166 1114 1394 +108 689 690 1019 1174 +109 950 1268 1010 1387 +110 1228 1327 1059 1473 +111 118 175 1010 1131 +112 390 1327 1228 1473 +113 677 1111 1091 1300 +114 623 621 620 1069 +115 657 489 1030 1287 +116 423 455 461 1020 +117 360 1023 342 1156 +118 407 1123 999 1345 +119 392 1151 1094 1223 +120 528 1084 1054 1210 +121 1130 1272 1231 1405 +122 859 760 1028 1108 +123 1010 1268 1207 1387 +124 1002 1083 693 1246 +125 1150 1170 993 1382 +126 254 252 723 1188 +127 1083 1246 1035 1298 +128 146 1114 1003 1394 +129 1048 1086 887 1146 +130 1186 1356 1183 1485 +131 1112 1329 978 1369 +132 612 611 1277 1301 +133 1037 1095 308 1475 +134 950 1207 1268 1387 +135 966 1170 1148 1215 +136 303 1021 539 1183 +137 1044 1095 630 1258 +138 961 1074 989 1221 +139 887 1048 509 1086 +140 975 1148 1031 1170 +141 567 1068 1015 1392 +142 308 1095 1037 1225 +143 727 371 1152 1177 +144 1153 85 1348 1391 +145 146 36 35 1003 +146 608 1182 1373 1446 +147 401 1023 1151 1400 +148 542 1129 1005 1147 +149 146 36 1003 1114 +150 1004 1043 957 1292 +151 638 1230 1097 1365 +152 983 1052 1101 1215 +153 1017 1008 1196 1411 +154 434 1140 1022 1174 +155 1024 1147 563 1365 +156 256 1188 272 1373 +157 407 408 1123 1345 +158 1095 1134 308 1475 +159 1174 1185 431 1353 +160 400 1087 1041 1357 +161 830 1069 1344 1481 +162 957 1112 1004 1370 +163 119 746 1029 1149 +164 955 1101 1052 1215 +165 1047 1082 655 1163 +166 681 658 1073 1143 +167 1025 1133 1035 1212 +168 996 960 1220 1305 +169 956 1066 1026 1259 +170 830 1202 1069 1481 +171 1023 1203 1104 1395 +172 983 1215 1101 1326 +173 612 1277 1063 1301 +174 957 1004 1112 1244 +175 390 1137 1327 1473 +176 757 1027 269 1179 +177 648 1246 1212 1287 +178 1008 1098 1017 1385 +179 995 1373 1182 1446 +180 1013 1159 1015 1293 +181 1037 1225 978 1369 +182 1045 1141 196 1388 +183 982 1150 1170 1360 +184 1022 1140 434 1229 +185 553 539 303 1021 +186 986 1166 1135 1229 +187 257 1049 1088 1182 +188 989 961 1221 1227 +189 1021 1387 1186 1485 +190 999 1199 407 1345 +191 888 1078 1022 1102 +192 567 813 1015 1125 +193 1019 689 1174 1420 +194 757 269 1027 1220 +195 655 1082 1047 1187 +196 269 1179 1027 1220 +197 36 35 1003 1295 +198 1013 1293 1015 1311 +199 401 775 320 1138 +200 197 1045 198 1477 +201 1039 252 1136 1431 +202 355 1159 1156 1317 +203 772 407 1199 1345 +204 457 1126 1002 1246 +205 1035 1275 1133 1369 +206 452 445 443 1246 +207 608 1373 1309 1446 +208 327 1106 1327 1357 +209 1020 1105 461 1235 +210 355 354 816 1159 +211 390 1059 1228 1327 +212 320 1023 360 1151 +213 28 997 894 1189 +214 1010 175 1277 1359 +215 28 892 894 997 +216 997 1080 892 1235 +217 892 997 28 1080 +218 146 883 1114 1166 +219 1173 1349 1031 1436 +220 1045 1167 198 1477 +221 701 1006 632 1132 +222 495 1005 540 1132 +223 908 1148 1200 1422 +224 685 1017 702 1158 +225 1309 1373 995 1446 +226 980 1153 1348 1391 +227 290 1039 252 1136 +228 908 1148 1169 1200 +229 1079 1214 959 1270 +230 757 742 1027 1179 +231 993 1170 1150 1360 +232 1050 1105 895 1448 +233 371 1177 334 1253 +234 408 1055 1123 1345 +235 256 1182 1088 1188 +236 257 1049 261 1088 +237 966 1101 1215 1326 +238 1159 1205 1015 1293 +239 194 196 1141 1388 +240 92 88 1193 1363 +241 400 1041 1242 1357 +242 760 1028 1108 1249 +243 1035 1133 651 1212 +244 638 1038 729 1097 +245 435 1140 434 1174 +246 412 1272 413 1345 +247 423 1020 420 1165 +248 1035 1340 1275 1369 +249 196 1255 1045 1388 +250 47 1010 1124 1131 +251 983 1040 1052 1215 +252 693 1083 1002 1245 +253 999 1055 956 1434 +254 342 1090 1023 1393 +255 1044 1258 630 1449 +256 836 1022 1078 1350 +257 354 816 1159 1362 +258 757 269 742 1179 +259 995 1214 1079 1270 +260 657 1030 1126 1287 +261 1036 1193 880 1425 +262 878 1066 105 1351 +263 407 1199 999 1338 +264 760 859 1028 1249 +265 681 1073 658 1287 +266 274 279 278 1452 +267 434 1140 435 1229 +268 512 693 1002 1245 +269 512 1002 1127 1245 +270 979 1196 1159 1362 +271 1017 1196 685 1317 +272 1036 1116 971 1204 +273 702 1158 1017 1202 +274 494 1077 1005 1280 +275 1003 1114 36 1295 +276 1114 1166 1003 1394 +277 509 575 1086 1247 +278 750 1049 257 1182 +279 586 1120 895 1448 +280 231 229 1143 1331 +281 256 257 1088 1182 +282 854 1116 1036 1153 +283 1036 1085 992 1193 +284 1050 895 1120 1448 +285 844 997 28 1189 +286 691 1019 1136 1299 +287 792 1149 1077 1280 +288 1086 1146 1048 1251 +289 413 1272 1055 1345 +290 279 1103 278 1452 +291 231 1143 1011 1331 +292 971 992 1181 1204 +293 623 1069 620 1449 +294 77 880 1193 1425 +295 1021 1186 1183 1485 +296 1036 1116 854 1459 +297 888 836 1022 1078 +298 320 342 360 1023 +299 657 1030 459 1126 +300 47 118 1010 1131 +301 742 767 1027 1199 +302 611 1222 1034 1301 +303 1001 1070 1237 1354 +304 963 1356 1186 1387 +305 563 1024 281 1129 +306 1036 1181 992 1204 +307 955 1052 1040 1215 +308 1034 1207 1010 1268 +309 1013 1151 556 1156 +310 649 1035 651 1212 +311 575 1148 1086 1247 +312 512 1127 1002 1367 +313 717 1060 1111 1300 +314 915 149 1267 1447 +315 1034 1067 1010 1207 +316 28 27 1080 1333 +317 869 1031 1349 1436 +318 355 1196 354 1362 +319 119 1149 1029 1210 +320 956 1059 1110 1328 +321 1042 1267 149 1447 +322 1039 1125 252 1431 +323 1085 1193 1036 1391 +324 983 1146 1086 1251 +325 1328 1363 1085 1473 +326 208 1118 1074 1164 +327 1059 1217 1110 1328 +328 542 1005 1129 1224 +329 971 992 1087 1181 +330 459 657 489 1030 +331 955 1213 1076 1215 +332 1051 1069 957 1107 +333 118 175 1131 1359 +334 686 1017 685 1317 +335 601 208 1074 1164 +336 630 1095 1044 1483 +337 883 1166 146 1394 +338 586 1050 895 1120 +339 636 630 1258 1449 +340 281 1024 279 1139 +341 971 1087 992 1328 +342 1062 1130 416 1272 +343 608 609 1182 1446 +344 648 1212 647 1287 +345 957 1236 1043 1244 +346 844 28 997 1333 +347 975 1200 1148 1422 +348 518 1145 1116 1348 +349 693 457 512 1002 +350 750 261 257 1049 +351 491 1038 638 1230 +352 1015 1125 813 1188 +353 252 290 723 1039 +354 654 1163 1082 1208 +355 231 1011 1143 1243 +356 691 1136 724 1299 +357 401 320 360 1151 +358 437 438 1229 1380 +359 996 960 1094 1220 +360 975 1169 1148 1200 +361 1028 1040 955 1249 +362 47 1010 118 1414 +363 434 1022 836 1350 +364 971 1116 1036 1459 +365 878 129 105 1066 +366 360 1151 1023 1156 +367 656 1047 655 1163 +368 281 1129 1024 1139 +369 156 880 1036 1193 +370 971 992 1204 1328 +371 1001 1251 1240 1354 +372 563 559 637 1365 +373 651 1133 1035 1208 +374 327 1106 295 1327 +375 327 1242 1106 1357 +376 1030 1336 466 1433 +377 1025 967 1212 1340 +378 942 1028 912 1283 +379 1178 1307 980 1348 +380 453 689 1140 1174 +381 308 1095 1225 1438 +382 246 1033 247 1187 +383 1140 1174 689 1420 +384 1001 1237 346 1386 +385 261 1088 1049 1179 +386 679 1166 1135 1468 +387 278 1103 279 1379 +388 693 1083 444 1246 +389 772 409 407 1345 +390 1002 1126 457 1367 +391 985 1214 1088 1311 +392 956 1055 999 1123 +393 1023 1291 1203 1395 +394 843 1028 859 1249 +395 408 1123 1055 1334 +396 400 1242 366 1357 +397 1012 1099 1227 1256 +398 1067 1010 1207 1387 +399 955 1040 1213 1215 +400 679 438 1135 1166 +401 992 1193 1085 1363 +402 689 453 690 1174 +403 196 1045 197 1141 +404 952 1240 1251 1354 +405 981 1231 1130 1272 +406 439 1135 438 1380 +407 1010 47 1124 1414 +408 118 1010 175 1414 +409 1012 1099 1119 1227 +410 460 1336 1054 1433 +411 494 540 495 1005 +412 1030 1084 1054 1433 +413 420 1130 1020 1231 +414 961 1096 1117 1314 +415 1076 1213 975 1215 +416 952 1322 1240 1354 +417 334 1253 1177 1423 +418 412 1062 1272 1345 +419 813 1015 1188 1472 +420 1006 1132 701 1224 +421 1001 1240 1322 1354 +422 1038 1207 1034 1335 +423 327 296 1106 1242 +424 689 690 691 1019 +425 1043 907 1245 1468 +426 1108 1267 867 1457 +427 957 1112 1236 1244 +428 971 1036 1181 1459 +429 1096 1285 1117 1314 +430 976 1177 1152 1253 +431 1057 993 1170 1382 +432 983 1052 1040 1342 +433 286 1134 297 1324 +434 400 366 1087 1357 +435 495 1005 1132 1280 +436 1174 1185 977 1350 +437 1031 1076 975 1170 +438 400 1041 1087 1234 +439 469 1054 528 1084 +440 978 1329 1037 1369 +441 1059 1123 379 1228 +442 342 1156 1090 1317 +443 695 1174 431 1353 +444 996 974 1089 1142 +445 989 1221 1117 1227 +446 573 1064 1152 1315 +447 1031 1148 966 1170 +448 407 999 1123 1338 +449 420 1231 1020 1440 +450 194 196 197 1141 +451 247 1033 1144 1484 +452 149 1042 867 1267 +453 105 129 76 1066 +454 494 542 540 1005 +455 996 1089 974 1375 +456 297 1134 1129 1324 +457 834 1161 1040 1342 +458 681 1212 1143 1287 +459 705 834 1040 1342 +460 612 181 611 1301 +461 1107 1114 141 1292 +462 589 1168 1078 1453 +463 35 1003 1295 1476 +464 1129 1134 297 1224 +465 757 292 1220 1238 +466 540 1132 1005 1224 +467 956 999 1059 1123 +468 809 1349 1173 1436 +469 423 420 1020 1440 +470 729 1097 1038 1190 +471 1000 978 1091 1225 +472 999 956 1110 1434 +473 378 1059 379 1228 +474 1024 1129 563 1147 +475 979 1017 1098 1465 +476 1168 1185 431 1350 +477 632 1006 701 1483 +478 279 1024 637 1379 +479 955 1040 1028 1213 +480 199 197 198 1477 +481 1085 1328 992 1363 +482 146 1003 35 1476 +483 300 1034 611 1222 +484 971 1181 1036 1204 +485 320 342 1023 1393 +486 1051 1107 957 1343 +487 1059 987 1217 1328 +488 1037 1134 1095 1475 +489 691 1136 1019 1353 +490 1017 1158 685 1196 +491 461 1020 1235 1440 +492 1006 632 1132 1297 +493 156 1036 880 1425 +494 955 1042 1028 1108 +495 648 1035 1212 1246 +496 689 1019 691 1420 +497 459 1030 466 1433 +498 247 1144 728 1484 +499 1112 1004 1370 1408 +500 434 1174 1022 1350 +501 247 1144 1033 1219 +502 573 1064 727 1152 +503 956 1085 1026 1473 +504 494 1005 495 1280 +505 499 1144 498 1362 +506 1010 1063 958 1131 +507 992 1363 1328 1473 +508 237 673 234 1025 +509 52 1086 53 1417 +510 1083 1245 694 1468 +511 247 1033 246 1299 +512 1034 1207 1038 1230 +513 695 431 1185 1353 +514 1060 1111 962 1191 +515 651 1035 649 1208 +516 681 658 645 1287 +517 498 1144 1355 1362 +518 895 1050 124 1105 +519 697 465 1195 1384 +520 757 742 767 1027 +521 1105 1165 455 1448 +522 262 1088 261 1179 +523 347 346 1237 1386 +524 562 1403 1223 1454 +525 961 1117 1096 1221 +526 274 1139 279 1452 +527 282 1129 281 1139 +528 1040 1161 834 1171 +529 639 1073 1143 1331 +530 1015 1125 1068 1355 +531 452 1208 1035 1298 +532 199 198 1167 1477 +533 975 1213 1040 1215 +534 257 256 1088 1188 +535 869 1349 809 1436 +536 639 658 1073 1331 +537 742 1027 1179 1199 +538 983 1101 1052 1240 +539 1018 1263 1039 1471 +540 697 1195 1018 1384 +541 197 1141 1045 1477 +542 970 1282 1136 1306 +543 907 694 1245 1468 +544 1081 1240 1001 1251 +545 690 1019 1174 1353 +546 1117 1221 961 1227 +547 408 410 1055 1345 +548 957 1004 1107 1370 +549 960 996 1089 1305 +550 649 648 1035 1212 +551 686 702 685 1017 +552 423 1020 461 1440 +553 611 183 1222 1301 +554 196 1198 1045 1316 +555 1026 1085 1363 1473 +556 844 997 1189 1333 +557 492 1077 1149 1216 +558 1027 757 1220 1238 +559 512 1002 457 1367 +560 772 1199 407 1338 +561 635 630 1095 1258 +562 992 1085 1036 1204 +563 960 1089 996 1375 +564 600 1237 1100 1386 +565 528 1084 1210 1467 +566 29 894 124 1189 +567 719 717 1060 1111 +568 1024 1097 637 1379 +569 1081 1251 1001 1354 +570 492 1077 1216 1409 +571 783 1386 1100 1418 +572 1038 1230 1207 1479 +573 1042 867 1267 1457 +574 639 1073 658 1143 +575 760 843 859 1249 +576 1052 1101 955 1464 +577 1025 1226 1340 1369 +578 996 1027 1296 1305 +579 1128 1254 1233 1340 +580 308 1095 307 1134 +581 374 1249 1052 1342 +582 612 1063 181 1301 +583 652 654 1082 1208 +584 1060 1191 962 1278 +585 760 1249 1108 1319 +586 242 1082 655 1187 +587 242 655 244 1187 +588 258 1188 1088 1472 +589 553 544 539 1021 +590 630 1044 1297 1483 +591 813 1188 258 1472 +592 1018 1195 1263 1361 +593 783 1081 1386 1418 +594 763 1039 1185 1195 +595 134 887 1086 1146 +596 673 1025 237 1466 +597 1000 978 1112 1371 +598 859 1028 526 1108 +599 1038 1256 1207 1335 +600 1001 346 1237 1372 +601 1025 1226 967 1340 +602 677 363 1091 1111 +603 991 1191 1060 1278 +604 1004 957 1107 1292 +605 996 1220 1027 1305 +606 818 1198 838 1426 +607 1018 1195 1039 1263 +608 1100 1386 1081 1418 +609 691 1019 690 1353 +610 491 1162 1038 1222 +611 77 880 106 1193 +612 1052 1211 352 1342 +613 141 1114 37 1292 +614 1085 1259 1026 1363 +615 308 310 1095 1438 +616 1014 1227 1099 1256 +617 812 1137 1026 1330 +618 1039 1136 763 1353 +619 462 836 434 1022 +620 460 1054 469 1433 +621 719 677 717 1111 +622 429 1018 697 1185 +623 767 1027 1199 1338 +624 719 1111 1060 1339 +625 141 1114 1107 1343 +626 613 1216 614 1277 +627 196 302 1198 1316 +628 352 1052 374 1249 +629 719 1060 364 1339 +630 542 540 1005 1224 +631 1042 1267 1108 1457 +632 717 364 719 1060 +633 657 644 489 1287 +634 266 1179 1122 1472 +635 119 168 746 1149 +636 231 230 1331 1452 +637 985 1121 1214 1311 +638 991 1111 1060 1191 +639 1039 763 1185 1353 +640 309 308 310 1095 +641 973 1285 1070 1322 +642 655 1047 799 1187 +643 614 1216 1067 1277 +644 1356 1387 1109 1485 +645 649 1035 452 1208 +646 231 1331 1011 1452 +647 812 1160 1137 1330 +648 887 509 577 1086 +649 605 1038 491 1162 +650 1016 1055 956 1334 +651 567 565 1068 1392 +652 1212 1246 967 1287 +653 1136 1282 1019 1353 +654 267 266 1122 1472 +655 499 1347 1144 1362 +656 673 1194 1025 1466 +657 956 1026 1066 1473 +658 1091 1111 363 1438 +659 247 1219 1033 1299 +660 350 1052 353 1113 +661 1050 1189 1105 1337 +662 455 468 461 1105 +663 265 1179 1049 1199 +664 1079 1270 1165 1309 +665 246 1033 1187 1299 +666 1016 1259 956 1307 +667 1028 1042 955 1281 +668 347 1237 600 1386 +669 1063 958 1131 1359 +670 995 1270 1079 1309 +671 1014 1119 1099 1227 +672 960 996 1094 1375 +673 539 1021 544 1183 +674 436 434 435 1229 +675 190 1154 1313 1388 +676 794 1075 1132 1297 +677 1106 1220 292 1238 +678 542 494 710 1147 +679 1156 1159 979 1317 +680 355 1156 396 1317 +681 515 516 1058 1116 +682 214 206 1074 1312 +683 1114 1343 1003 1474 +684 601 214 206 1074 +685 1052 1240 1101 1464 +686 960 1088 1214 1311 +687 429 1168 1018 1185 +688 245 246 247 1187 +689 989 1227 1117 1289 +690 52 889 53 1086 +691 888 1102 1022 1394 +692 1051 1003 1343 1474 +693 734 118 175 1414 +694 100 105 1066 1351 +695 1015 1293 1205 1311 +696 644 1073 1197 1287 +697 870 1171 916 1283 +698 1052 1108 955 1249 +699 1112 1244 1004 1408 +700 1028 955 1108 1249 +701 350 1052 1113 1211 +702 1128 1254 1226 1271 +703 706 374 1040 1249 +704 309 1095 310 1438 +705 1019 1174 1140 1420 +706 605 729 1038 1378 +707 767 757 1027 1238 +708 350 352 1052 1211 +709 562 473 1223 1403 +710 746 162 1029 1180 +711 373 1184 1057 1239 +712 977 1185 1174 1353 +713 956 1055 1358 1434 +714 1026 1363 992 1473 +715 958 1063 1010 1268 +716 1128 1226 1254 1340 +717 653 1163 654 1208 +718 966 1086 1048 1326 +719 1108 1319 1052 1464 +720 751 1066 405 1123 +721 600 1100 783 1386 +722 214 1074 1053 1312 +723 1079 1214 995 1373 +724 355 557 1156 1159 +725 1054 1210 1084 1303 +726 1007 1291 1104 1318 +727 265 1049 328 1199 +728 1040 1052 955 1249 +729 1063 1277 1034 1301 +730 1149 1210 119 1294 +731 351 352 1211 1342 +732 290 763 1039 1136 +733 468 461 1105 1235 +734 586 588 1050 1120 +735 988 1176 1149 1207 +736 416 1130 1062 1446 +737 956 1016 1307 1358 +738 812 855 1026 1137 +739 672 669 1194 1475 +740 749 1146 1081 1418 +741 1000 1091 978 1371 +742 1086 1161 53 1417 +743 959 1165 1079 1270 +744 1063 1131 1010 1359 +745 1091 1111 962 1300 +746 601 205 208 1164 +747 980 1116 1036 1204 +748 600 783 598 1386 +749 981 1130 1062 1272 +750 119 746 162 1029 +751 969 1006 1075 1254 +752 567 1015 813 1472 +753 1053 1074 214 1401 +754 429 431 1168 1185 +755 637 281 563 1024 +756 374 1052 352 1342 +757 428 1384 1168 1453 +758 1077 1149 1029 1280 +759 955 1108 1052 1464 +760 234 1025 673 1243 +761 446 693 444 1246 +762 1233 1303 1266 1321 +763 1015 1159 1013 1392 +764 459 489 466 1030 +765 637 559 1097 1365 +766 809 1173 930 1436 +767 653 1163 1208 1298 +768 611 300 610 1034 +769 327 296 295 1106 +770 958 1268 1010 1332 +771 785 1056 838 1198 +772 1060 962 1111 1300 +773 304 1032 305 1366 +774 1050 1120 588 1453 +775 306 308 1134 1475 +776 1110 1217 987 1328 +777 627 1415 1012 1437 +778 650 649 452 1208 +779 589 1453 1078 1456 +780 993 1279 1175 1382 +781 950 1010 1289 1387 +782 190 189 1154 1388 +783 1019 1136 970 1282 +784 767 1238 1027 1338 +785 685 702 323 1158 +786 256 766 1182 1373 +787 1047 1187 962 1278 +788 586 588 1120 1453 +789 956 1328 1085 1473 +790 672 1194 1037 1475 +791 760 368 1249 1319 +792 355 557 396 1156 +793 996 974 1223 1375 +794 427 429 428 1384 +795 196 822 302 1316 +796 100 105 76 1066 +797 632 1297 1006 1483 +798 350 352 353 1052 +799 346 1372 1001 1386 +800 694 1083 693 1245 +801 1033 1187 1047 1278 +802 1207 1256 1038 1479 +803 1043 1166 1114 1292 +804 459 1126 1030 1433 +805 627 1012 1201 1437 +806 374 1040 1249 1342 +807 1000 1225 1194 1369 +808 1104 1203 968 1395 +809 1041 1252 1424 1482 +810 1058 1116 516 1145 +811 256 272 766 1373 +812 769 1199 1049 1257 +813 400 367 366 1242 +814 1017 1385 1098 1465 +815 729 638 491 1038 +816 673 1025 1172 1243 +817 627 1201 1012 1415 +818 959 1214 1079 1361 +819 969 1006 1254 1271 +820 1079 1195 465 1384 +821 1191 1323 1236 1371 +822 300 611 183 1222 +823 648 646 1246 1287 +824 648 452 1035 1246 +825 746 1180 1029 1280 +826 742 481 767 1199 +827 290 763 723 1039 +828 1135 1166 1043 1468 +829 512 1127 536 1245 +830 156 850 1193 1413 +831 1223 1403 996 1454 +832 211 1119 1053 1415 +833 421 1165 420 1309 +834 969 1075 1006 1132 +835 702 323 1158 1202 +836 491 1222 1038 1230 +837 542 299 1129 1147 +838 1016 956 1066 1334 +839 882 1043 1166 1468 +840 1011 1073 1321 1421 +841 156 1181 850 1413 +842 959 1105 1050 1448 +843 648 452 649 1035 +844 300 610 1034 1230 +845 654 655 1082 1163 +846 457 1367 1126 1433 +847 197 196 198 1045 +848 666 226 1157 1407 +849 987 1327 1106 1357 +850 237 1025 234 1444 +851 466 1030 489 1336 +852 673 1172 1025 1194 +853 1128 969 1254 1271 +854 1083 1244 1035 1340 +855 976 1310 1118 1376 +856 1002 1244 1083 1340 +857 769 1199 1257 1345 +858 156 1036 24 1181 +859 408 1055 725 1334 +860 966 1148 1086 1215 +861 892 28 27 1080 +862 281 279 280 1139 +863 206 601 1074 1164 +864 336 1097 729 1190 +865 206 1164 1074 1312 +866 763 762 1039 1195 +867 1191 1236 1112 1371 +868 1231 1272 981 1405 +869 988 1207 1149 1216 +870 1051 1343 957 1474 +871 994 1072 1240 1322 +872 985 1088 1263 1311 +873 956 1259 1085 1307 +874 624 1202 830 1481 +875 1018 1361 1263 1471 +876 1053 1119 211 1312 +877 392 543 556 1151 +878 1007 1206 1291 1318 +879 247 728 1144 1219 +880 975 1076 1031 1432 +881 1041 1252 1080 1424 +882 1162 1222 703 1419 +883 261 1049 265 1179 +884 1116 1153 523 1348 +885 977 1078 1203 1282 +886 637 279 281 1024 +887 305 1184 1032 1462 +888 969 1132 1006 1271 +889 390 837 855 1228 +890 1013 1291 1293 1311 +891 163 1149 119 1294 +892 774 1372 1113 1429 +893 1046 1157 226 1407 +894 1046 1321 1073 1421 +895 758 1113 774 1372 +896 439 438 437 1380 +897 1054 1084 1030 1303 +898 1168 1384 1018 1453 +899 1037 1194 1225 1369 +900 190 1154 189 1313 +901 30 1050 1138 1189 +902 613 611 610 1034 +903 379 1123 1059 1338 +904 749 1081 125 1418 +905 1137 1160 1026 1330 +906 882 1166 679 1468 +907 783 1081 598 1386 +908 305 213 1184 1462 +909 1136 1219 724 1299 +910 916 1171 1213 1283 +911 108 103 1036 1425 +912 635 630 325 1095 +913 1038 1162 605 1378 +914 1242 1403 730 1454 +915 351 374 352 1342 +916 499 787 498 1144 +917 1012 1109 1256 1288 +918 370 327 1327 1357 +919 979 1090 1017 1465 +920 1057 1170 1031 1239 +921 1028 1108 1042 1267 +922 706 1040 374 1342 +923 959 1337 1105 1424 +924 985 1214 1079 1373 +925 993 1175 1150 1382 +926 52 1146 1086 1417 +927 1262 1278 1047 1323 +928 794 1132 1075 1390 +929 276 757 292 1220 +930 1008 1269 1098 1385 +931 727 1177 1064 1410 +932 567 739 813 1125 +933 976 1118 1264 1376 +934 562 730 1403 1454 +935 739 1125 567 1355 +936 1008 1278 1060 1347 +937 306 308 307 1134 +938 266 1122 1179 1389 +939 498 1355 1068 1362 +940 1052 994 1240 1464 +941 538 1043 1245 1292 +942 290 1136 252 1431 +943 624 621 830 1202 +944 672 1037 1194 1225 +945 338 491 638 1230 +946 373 1239 1057 1349 +947 912 1028 810 1283 +948 538 1043 907 1245 +949 94 114 96 1304 +950 118 167 175 1359 +951 370 1327 1137 1357 +952 462 1022 1229 1394 +953 103 108 1036 1391 +954 714 308 388 1225 +955 336 490 729 1097 +956 613 1034 610 1216 +957 244 655 799 1187 +958 679 1135 440 1468 +959 928 940 942 1028 +960 1041 1424 1080 1482 +961 119 1029 162 1467 +962 985 1263 1195 1361 +963 1013 1291 1311 1375 +964 953 1266 1303 1321 +965 1027 1106 996 1296 +966 763 1185 698 1195 +967 1073 1143 1011 1321 +968 784 397 1081 1417 +969 749 125 1146 1418 +970 605 729 491 1038 +971 36 1295 1114 1343 +972 515 517 516 1116 +973 950 1256 1109 1288 +974 1116 1145 980 1348 +975 146 1394 1003 1476 +976 1128 969 1233 1254 +977 1021 1276 553 1470 +978 1016 1066 956 1259 +979 1226 1271 1254 1406 +980 1044 1107 1004 1370 +981 518 1116 523 1348 +982 1114 1166 569 1292 +983 1129 1139 282 1324 +984 608 607 609 1446 +985 729 1190 1038 1378 +986 996 974 1142 1223 +987 948 1293 1291 1311 +988 621 619 1051 1341 +989 560 1223 473 1403 +990 962 1047 1278 1323 +991 774 1113 758 1429 +992 680 1167 1093 1477 +993 1064 1152 976 1177 +994 397 1211 1081 1417 +995 1043 569 1166 1292 +996 996 1142 1089 1482 +997 1033 1262 1019 1269 +998 775 1138 1104 1393 +999 956 1055 1016 1358 +1000 286 298 297 1134 +1001 1120 1018 1384 1453 +1002 1067 1071 1010 1387 +1003 1085 956 1307 1358 +1004 1012 1256 1227 1288 +1005 742 1179 481 1199 +1006 950 1034 1207 1335 +1007 230 1331 1103 1455 +1008 1030 1197 1073 1287 +1009 1015 1159 1068 1205 +1010 96 1178 1307 1397 +1011 695 431 454 1185 +1012 180 1063 1237 1301 +1013 648 647 646 1287 +1014 590 1074 208 1118 +1015 544 1021 553 1470 +1016 356 1119 211 1415 +1017 1017 1090 979 1317 +1018 405 1123 1066 1228 +1019 358 1059 390 1327 +1020 379 1123 405 1228 +1021 686 702 1017 1441 +1022 957 1343 1114 1474 +1023 1027 1220 960 1305 +1024 297 1134 298 1224 +1025 1057 1184 373 1396 +1026 1007 1078 968 1203 +1027 994 1072 1113 1240 +1028 203 1460 1164 1477 +1029 644 1073 263 1197 +1030 160 1284 1004 1435 +1031 967 1246 1212 1340 +1032 712 346 1070 1237 +1033 1011 1321 1143 1427 +1034 972 1035 1083 1275 +1035 1031 993 1170 1349 +1036 1047 1163 656 1380 +1037 99 107 1330 1363 +1038 415 416 1062 1446 +1039 592 1106 1242 1454 +1040 982 1360 1170 1464 +1041 574 1041 400 1234 +1042 180 1237 1070 1301 +1043 342 687 1156 1317 +1044 37 1114 141 1343 +1045 791 1149 1067 1216 +1046 966 1170 1057 1239 +1047 779 1058 516 1145 +1048 1055 1272 1062 1345 +1049 166 1100 1131 1315 +1050 490 638 729 1097 +1051 1028 1249 843 1283 +1052 960 1027 1179 1220 +1053 1103 1331 230 1452 +1054 1115 1236 1191 1323 +1055 509 575 577 1086 +1056 1233 1266 1128 1321 +1057 982 1101 1170 1260 +1058 950 1207 1256 1335 +1059 727 372 371 1177 +1060 1027 996 1106 1220 +1061 1059 1328 956 1473 +1062 681 639 658 1143 +1063 372 1177 727 1410 +1064 1227 1256 950 1288 +1065 1042 1267 932 1281 +1066 621 1051 1202 1341 +1067 119 1210 1029 1467 +1068 462 1022 434 1229 +1069 400 1087 846 1234 +1070 706 705 1040 1342 +1071 611 1034 613 1277 +1072 763 762 723 1039 +1073 520 1150 1175 1382 +1074 29 28 894 1189 +1075 749 784 125 1081 +1076 791 1067 614 1216 +1077 1070 973 1322 1372 +1078 613 1034 1216 1277 +1079 669 1172 1194 1475 +1080 108 1036 1391 1425 +1081 1015 1013 1311 1392 +1082 166 738 1100 1315 +1083 834 707 1040 1171 +1084 560 1142 1223 1403 +1085 834 1161 768 1171 +1086 462 888 1022 1394 +1087 593 1124 1064 1131 +1088 196 198 1045 1198 +1089 567 1068 565 1355 +1090 1175 1279 520 1382 +1091 750 769 1049 1257 +1092 707 1171 870 1283 +1093 30 1138 735 1189 +1094 1007 1206 1203 1291 +1095 1010 1067 1034 1277 +1096 723 1039 762 1195 +1097 972 1083 1035 1298 +1098 1208 1275 1082 1428 +1099 1207 1230 988 1479 +1100 1019 970 1219 1269 +1101 134 887 577 1086 +1102 859 526 760 1108 +1103 1070 1237 346 1372 +1104 1088 1122 960 1179 +1105 672 671 669 1475 +1106 993 1031 1170 1430 +1107 400 1041 367 1242 +1108 691 692 1136 1353 +1109 701 1006 1224 1483 +1110 560 562 473 1223 +1111 680 617 1093 1167 +1112 968 1078 1007 1456 +1113 656 655 654 1163 +1114 712 180 346 1237 +1115 190 191 189 1388 +1116 948 1203 1291 1395 +1117 542 1129 297 1224 +1118 475 1276 1401 1410 +1119 166 1131 1100 1359 +1120 901 1186 1071 1294 +1121 723 762 272 1195 +1122 590 601 208 1074 +1123 1047 1262 1033 1278 +1124 1047 1380 656 1420 +1125 653 833 1163 1298 +1126 493 1077 494 1280 +1127 957 1069 1051 1458 +1128 477 214 1074 1401 +1129 697 1185 1018 1195 +1130 1125 1263 1205 1306 +1131 1164 1460 998 1477 +1132 712 1070 180 1237 +1133 1149 1176 963 1207 +1134 34 1273 1265 1476 +1135 1063 958 1237 1285 +1136 1252 1041 1404 1482 +1137 328 1049 769 1199 +1138 972 1082 1208 1275 +1139 231 1011 1243 1452 +1140 1013 1151 1291 1375 +1141 978 1069 1191 1344 +1142 994 1240 1274 1322 +1143 345 1065 602 1439 +1144 96 1307 1016 1397 +1145 526 867 1108 1267 +1146 858 1169 1148 1436 +1147 328 265 261 1049 +1148 1126 967 1246 1287 +1149 832 360 342 1156 +1150 1057 1170 993 1349 +1151 346 712 1070 1372 +1152 575 376 1148 1247 +1153 359 379 378 1059 +1154 415 1062 416 1272 +1155 180 181 1063 1301 +1156 1036 1193 103 1391 +1157 959 1270 1337 1424 +1158 226 1157 1046 1455 +1159 1089 1142 974 1337 +1160 733 1104 775 1138 +1161 967 1143 1073 1321 +1162 30 1138 1050 1318 +1163 818 785 838 1198 +1164 984 1183 1356 1485 +1165 262 1179 266 1472 +1166 706 374 705 1342 +1167 1091 363 1225 1438 +1168 967 1143 1321 1427 +1169 190 1313 1255 1388 +1170 175 176 1277 1359 +1171 775 1104 733 1393 +1172 1010 1131 958 1332 +1173 774 1072 1372 1429 +1174 241 1428 1250 1445 +1175 928 1028 942 1213 +1176 589 463 1078 1168 +1177 516 1116 518 1145 +1178 462 888 836 1022 +1179 1029 1280 1266 1352 +1180 959 1050 1120 1448 +1181 1185 1306 1039 1353 +1182 1021 1218 553 1276 +1183 1029 1077 1280 1352 +1184 247 246 1219 1299 +1185 363 676 677 1091 +1186 1122 1179 1088 1472 +1187 262 1088 1179 1472 +1188 982 1170 1101 1464 +1189 254 723 272 1188 +1190 676 1091 363 1225 +1191 1070 1313 973 1372 +1192 214 217 1053 1401 +1193 544 1183 1021 1470 +1194 1007 968 1104 1203 +1195 265 481 1179 1199 +1196 707 1040 1171 1283 +1197 993 1170 1076 1430 +1198 515 1116 1058 1320 +1199 175 1010 1277 1414 +1200 408 410 725 1055 +1201 1050 1105 959 1337 +1202 652 653 654 1208 +1203 942 1213 1028 1283 +1204 745 1067 791 1149 +1205 854 1153 1036 1425 +1206 680 1093 1460 1477 +1207 1113 1372 1072 1429 +1208 912 942 940 1028 +1209 30 122 735 1138 +1210 166 1100 748 1359 +1211 686 1017 1317 1441 +1212 989 1289 1117 1332 +1213 652 654 270 1082 +1214 96 1016 1304 1397 +1215 492 1149 791 1216 +1216 749 1081 1146 1417 +1217 813 255 258 1188 +1218 1045 1255 196 1316 +1219 838 1150 1056 1383 +1220 956 1358 1110 1434 +1221 982 1167 1274 1376 +1222 977 1022 1078 1282 +1223 237 1025 1444 1466 +1224 1115 1278 1262 1323 +1225 826 1161 834 1342 +1226 1049 1182 750 1257 +1227 96 111 1178 1397 +1228 596 902 1078 1102 +1229 1044 1370 1004 1408 +1230 525 1148 1031 1436 +1231 633 1075 794 1297 +1232 970 1269 1019 1282 +1233 1055 1123 956 1334 +1234 963 1176 1029 1303 +1235 975 1086 1148 1215 +1236 1313 1322 973 1372 +1237 393 1151 392 1223 +1238 652 1082 270 1208 +1239 480 1159 816 1362 +1240 1088 1182 985 1188 +1241 1031 1239 869 1349 +1242 1172 1226 1037 1406 +1243 1105 1189 997 1337 +1244 1274 1376 1167 1398 +1245 1036 1116 980 1153 +1246 972 1083 1043 1244 +1247 1063 1237 1070 1285 +1248 948 1263 1205 1311 +1249 968 1098 1203 1282 +1250 379 1059 359 1338 +1251 242 1082 1187 1250 +1252 573 1315 1152 1450 +1253 1020 1270 1130 1309 +1254 1152 1315 1009 1450 +1255 285 563 281 1129 +1256 1001 1070 1322 1372 +1257 977 1078 1022 1350 +1258 631 630 1044 1297 +1259 982 1170 1057 1260 +1260 682 651 1133 1212 +1261 388 672 1225 1475 +1262 794 1132 632 1297 +1263 964 1226 1172 1406 +1264 1020 1165 1270 1309 +1265 518 1145 1348 1480 +1266 1032 1184 305 1366 +1267 1254 1271 1006 1406 +1268 608 1309 451 1446 +1269 705 826 834 1342 +1270 300 1034 1222 1230 +1271 957 1114 1107 1292 +1272 959 1105 1270 1424 +1273 1194 1225 1000 1445 +1274 977 1306 1185 1353 +1275 948 1203 1206 1291 +1276 620 1343 1107 1449 +1277 605 385 729 1378 +1278 87 1307 85 1391 +1279 672 1194 668 1225 +1280 859 526 1028 1267 +1281 419 420 1130 1309 +1282 705 834 707 1040 +1283 1007 1018 1206 1453 +1284 1104 1291 1138 1318 +1285 419 421 420 1309 +1286 91 1351 1259 1363 +1287 180 181 178 1063 +1288 679 662 438 1229 +1289 495 540 541 1132 +1290 962 1111 1091 1191 +1291 791 745 614 1067 +1292 1013 1291 1151 1293 +1293 480 1068 566 1159 +1294 400 579 846 1087 +1295 892 522 894 1105 +1296 155 834 768 1171 +1297 1136 1039 1306 1353 +1298 1025 1212 967 1427 +1299 1068 1355 1144 1362 +1300 1259 1351 1026 1363 +1301 621 622 619 1341 +1302 999 1123 1055 1345 +1303 1068 1159 480 1362 +1304 77 1193 103 1425 +1305 460 467 1054 1336 +1306 1164 1439 203 1477 +1307 1043 1114 957 1292 +1308 1285 1322 1096 1354 +1309 955 1213 1028 1281 +1310 1177 1253 976 1423 +1311 1205 1293 948 1311 +1312 440 679 438 1135 +1313 821 394 1159 1463 +1314 980 1204 1036 1391 +1315 378 379 405 1228 +1316 407 1123 379 1338 +1317 1050 1291 1206 1318 +1318 1046 1412 1321 1421 +1319 362 1139 660 1172 +1320 541 701 632 1132 +1321 592 1106 296 1242 +1322 634 631 1044 1297 +1323 1050 588 1318 1453 +1324 1096 1221 1117 1285 +1325 428 1120 1384 1453 +1326 498 1144 787 1355 +1327 660 1172 1139 1243 +1328 1032 1253 304 1462 +1329 1113 1240 1072 1322 +1330 1035 1212 1246 1340 +1331 492 1077 792 1149 +1332 751 1066 1123 1334 +1333 982 1093 1167 1376 +1334 267 1122 266 1389 +1335 988 1149 1077 1216 +1336 1018 1007 1168 1453 +1337 526 1108 1028 1267 +1338 995 1214 1182 1373 +1339 814 567 565 1355 +1340 950 1268 1034 1335 +1341 630 828 631 1044 +1342 963 1029 1210 1303 +1343 627 1201 1157 1437 +1344 996 1403 1242 1454 +1345 1037 1226 1172 1369 +1346 544 553 1276 1470 +1347 646 449 1246 1287 +1348 522 124 894 1105 +1349 460 466 1336 1433 +1350 954 1252 1404 1482 +1351 1043 1083 972 1468 +1352 702 1202 1017 1441 +1353 750 769 328 1049 +1354 1109 1207 1176 1479 +1355 1030 1197 489 1336 +1356 28 126 27 1333 +1357 231 230 229 1331 +1358 844 1189 1142 1333 +1359 978 1258 1069 1344 +1360 1000 1082 1275 1428 +1361 1029 1180 162 1467 +1362 740 697 465 1195 +1363 779 1058 1145 1231 +1364 475 1401 398 1410 +1365 633 169 794 1075 +1366 472 1183 544 1186 +1367 815 602 345 1065 +1368 968 1007 1104 1456 +1369 980 1153 1116 1348 +1370 621 1202 622 1341 +1371 1030 1303 1233 1321 +1372 630 325 1095 1483 +1373 1019 970 1136 1219 +1374 166 738 748 1100 +1375 1073 1331 225 1407 +1376 1205 1263 1015 1311 +1377 1052 1249 368 1319 +1378 178 180 1063 1237 +1379 1068 1125 1015 1205 +1380 1000 1275 1082 1371 +1381 679 438 1166 1229 +1382 389 1057 373 1396 +1383 1046 1073 1321 1412 +1384 1065 1141 602 1439 +1385 1037 1225 672 1475 +1386 703 1162 491 1222 +1387 367 1041 400 1403 +1388 854 523 1116 1153 +1389 99 1351 91 1363 +1390 634 631 828 1044 +1391 1041 1080 997 1482 +1392 544 1186 1183 1470 +1393 985 1263 1121 1311 +1394 567 1392 1015 1472 +1395 961 1014 1209 1377 +1396 961 1209 1014 1227 +1397 1126 1246 449 1287 +1398 413 1055 410 1345 +1399 958 1063 1268 1285 +1400 669 671 1172 1475 +1401 1002 1083 1035 1340 +1402 1043 1245 1083 1468 +1403 608 451 607 1446 +1404 348 1113 758 1372 +1405 989 1074 1053 1401 +1406 348 1113 1372 1386 +1407 989 1288 1227 1289 +1408 1033 1300 1278 1484 +1409 627 626 1415 1437 +1410 972 1083 1244 1275 +1411 729 385 1190 1378 +1412 376 1239 1148 1247 +1413 518 1348 532 1480 +1414 627 478 626 1437 +1415 978 1091 1191 1371 +1416 679 1166 662 1229 +1417 972 1082 1275 1371 +1418 988 1077 1149 1176 +1419 829 656 1380 1420 +1420 1020 1105 959 1165 +1421 680 617 1167 1477 +1422 950 1117 1227 1289 +1423 1100 1237 1001 1386 +1424 1025 967 1226 1427 +1425 1080 1424 997 1482 +1426 1023 1104 968 1395 +1427 1027 960 1179 1305 +1428 680 617 776 1093 +1429 609 1257 1182 1446 +1430 1032 1264 1118 1376 +1431 230 1103 764 1455 +1432 198 1167 1045 1198 +1433 957 1114 1043 1474 +1434 954 1404 1296 1482 +1435 746 173 1180 1280 +1436 99 1330 1026 1363 +1437 677 1091 675 1300 +1438 864 912 810 1283 +1439 892 522 1105 1235 +1440 121 1295 36 1343 +1441 280 282 281 1139 +1442 978 1191 1111 1344 +1443 1157 1201 666 1407 +1444 606 1162 703 1419 +1445 437 1229 1140 1380 +1446 125 1081 784 1418 +1447 821 394 557 1159 +1448 996 1305 1296 1482 +1449 525 858 1148 1436 +1450 916 1171 936 1213 +1451 964 1172 1037 1406 +1452 384 1147 1077 1409 +1453 763 698 762 1195 +1454 1065 1154 192 1388 +1455 103 1193 1036 1425 +1456 746 173 162 1180 +1457 784 1081 749 1417 +1458 1093 1167 776 1325 +1459 843 810 1028 1283 +1460 134 1086 889 1146 +1461 974 1291 1151 1375 +1462 959 1105 1020 1270 +1463 400 366 579 1087 +1464 1010 1268 950 1289 +1465 40 1127 1390 1435 +1466 527 469 1084 1433 +1467 129 76 1066 1374 +1468 975 1031 1169 1432 +1469 304 1253 1032 1366 +1470 713 387 1099 1190 +1471 1142 1337 1089 1482 +1472 1097 1230 1038 1479 +1473 776 1325 1167 1426 +1474 270 1208 1082 1428 +1475 1156 1293 1023 1395 +1476 997 1105 1337 1424 +1477 1019 1262 1022 1282 +1478 668 1225 1194 1445 +1479 457 1126 450 1433 +1480 932 933 1042 1281 +1481 392 1094 294 1223 +1482 34 140 1265 1273 +1483 620 715 1107 1343 +1484 192 1154 1065 1469 +1485 34 140 1273 1476 +1486 828 634 1044 1449 +1487 510 509 1048 1247 +1488 1048 1146 887 1450 +1489 239 1428 241 1445 +1490 348 758 497 1372 +1491 1016 1259 96 1304 +1492 957 1112 1191 1236 +1493 566 1159 1068 1392 +1494 262 261 265 1179 +1495 161 40 1390 1435 +1496 1005 1266 1261 1271 +1497 1019 1140 1022 1262 +1498 168 792 746 1149 +1499 114 1304 94 1374 +1500 510 1048 380 1247 +1501 784 817 397 1417 +1502 217 1053 1218 1415 +1503 1020 1165 959 1270 +1504 510 380 509 1247 +1505 1012 1109 1288 1485 +1506 1244 1275 1035 1340 +1507 122 1138 30 1318 +1508 1115 1346 1232 1474 +1509 1262 1269 1033 1278 +1510 1121 1311 1291 1375 +1511 415 414 1062 1272 +1512 356 211 1119 1312 +1513 977 1185 1168 1350 +1514 990 1222 1162 1419 +1515 948 1291 1121 1311 +1516 1026 1351 99 1363 +1517 1026 1259 1066 1351 +1518 979 1293 1156 1395 +1519 1036 1204 1085 1391 +1520 99 95 107 1363 +1521 367 1242 1041 1403 +1522 955 1076 1213 1281 +1523 968 1241 1098 1282 +1524 1025 1133 1212 1444 +1525 841 656 1163 1380 +1526 525 1031 1148 1239 +1527 24 1181 1036 1459 +1528 387 1099 1378 1451 +1529 639 227 658 1331 +1530 335 1090 171 1273 +1531 682 649 651 1212 +1532 1173 1279 993 1382 +1533 953 1128 1266 1321 +1534 415 416 414 1272 +1535 610 1216 1034 1230 +1536 1033 1019 1262 1299 +1537 500 1349 1057 1382 +1538 346 348 1372 1386 +1539 815 1065 345 1209 +1540 1081 1001 1240 1386 +1541 742 265 481 1179 +1542 501 500 1057 1382 +1543 617 776 1093 1167 +1544 1048 1152 510 1366 +1545 966 1148 1031 1239 +1546 740 465 1079 1195 +1547 1032 1184 1247 1326 +1548 975 1170 1076 1215 +1549 1025 1143 1212 1427 +1550 1155 1183 303 1402 +1551 1074 1177 989 1221 +1552 29 844 28 1189 +1553 949 1019 1269 1282 +1554 1045 1141 973 1398 +1555 1017 979 1196 1317 +1556 1048 1086 966 1247 +1557 1023 968 1104 1393 +1558 842 844 1142 1333 +1559 777 750 1182 1257 +1560 1002 1254 1244 1340 +1561 1173 993 1349 1382 +1562 1018 1168 1007 1471 +1563 794 1075 169 1390 +1564 932 1042 933 1447 +1565 345 1209 1065 1439 +1566 1261 1266 1128 1271 +1567 1098 1385 949 1465 +1568 456 882 679 1468 +1569 1176 1207 988 1479 +1570 1018 1007 1206 1471 +1571 769 772 1199 1345 +1572 289 675 1091 1300 +1573 1019 1219 1033 1269 +1574 1113 1240 1001 1386 +1575 1099 1157 798 1302 +1576 949 1019 1262 1269 +1577 908 1169 157 1200 +1578 1266 1280 1005 1352 +1579 930 1173 926 1436 +1580 1217 1296 1027 1305 +1581 576 1148 858 1169 +1582 99 1026 1330 1351 +1583 463 1168 589 1453 +1584 180 1070 182 1301 +1585 233 234 1243 1444 +1586 1045 1274 1167 1398 +1587 949 1098 1269 1385 +1588 347 179 600 1237 +1589 387 1099 1190 1378 +1590 267 262 266 1472 +1591 605 491 703 1162 +1592 1010 1071 1067 1414 +1593 503 1173 1349 1382 +1594 84 797 81 1348 +1595 146 883 847 1114 +1596 1125 1205 970 1306 +1597 503 1279 1173 1382 +1598 1035 1083 1002 1246 +1599 1172 1226 1025 1369 +1600 376 404 1148 1239 +1601 949 1269 1262 1278 +1602 561 1142 844 1189 +1603 123 1131 1064 1315 +1604 650 1208 452 1298 +1605 684 798 683 1302 +1606 407 409 408 1345 +1607 520 1150 861 1175 +1608 1040 975 1171 1213 +1609 27 845 1080 1333 +1610 845 1234 1080 1333 +1611 393 543 392 1151 +1612 1192 1257 1199 1345 +1613 299 563 1129 1147 +1614 1167 1376 998 1398 +1615 1135 1163 833 1298 +1616 232 171 335 1090 +1617 988 1230 1097 1479 +1618 1099 802 1437 1451 +1619 88 103 1193 1391 +1620 961 1227 1014 1377 +1621 47 1124 593 1131 +1622 257 1088 255 1188 +1623 954 1296 1217 1305 +1624 1121 1291 1206 1337 +1625 475 1276 1218 1401 +1626 412 414 413 1272 +1627 561 842 844 1142 +1628 1029 963 1149 1176 +1629 798 1157 683 1302 +1630 368 353 1052 1319 +1631 289 1091 1250 1300 +1632 769 409 772 1345 +1633 574 1041 1234 1333 +1634 606 1154 1162 1419 +1635 620 715 825 1107 +1636 1027 1192 1199 1217 +1637 941 1171 1200 1432 +1638 429 454 431 1185 +1639 1274 1326 1260 1376 +1640 217 1218 218 1415 +1641 282 285 281 1129 +1642 1151 1291 1023 1293 +1643 1065 1209 815 1451 +1644 806 866 1304 1443 +1645 972 1043 1236 1244 +1646 799 1187 1047 1299 +1647 899 1245 1127 1435 +1648 184 703 1222 1419 +1649 773 614 1067 1277 +1650 163 168 119 1149 +1651 966 1031 1170 1239 +1652 548 1276 1124 1470 +1653 713 337 387 1190 +1654 891 1148 908 1422 +1655 1076 1170 1031 1430 +1656 985 1079 1214 1361 +1657 1232 1346 1003 1474 +1658 970 1125 1068 1205 +1659 957 1107 1069 1370 +1660 1094 1223 1151 1375 +1661 841 829 656 1380 +1662 371 334 333 1253 +1663 85 93 1178 1307 +1664 1034 1222 1268 1301 +1665 956 1123 1066 1334 +1666 575 891 1086 1148 +1667 1125 1039 1263 1306 +1668 761 1341 1202 1441 +1669 936 1171 941 1432 +1670 977 1022 1174 1350 +1671 884 727 573 1064 +1672 684 683 1157 1302 +1673 619 620 621 1051 +1674 869 1031 525 1239 +1675 963 1176 1303 1356 +1676 702 761 1202 1441 +1677 623 830 621 1069 +1678 806 1304 1016 1443 +1679 1008 1158 1017 1196 +1680 948 1291 1293 1395 +1681 990 1268 1222 1301 +1682 1016 1334 806 1443 +1683 1109 1356 963 1387 +1684 50 1418 1315 1450 +1685 403 400 1041 1403 +1686 593 1064 123 1131 +1687 592 1242 730 1454 +1688 1065 1451 815 1469 +1689 1118 1253 976 1264 +1690 861 1175 1150 1383 +1691 655 656 799 1047 +1692 141 160 172 1107 +1693 473 562 730 1403 +1694 574 400 846 1234 +1695 365 1347 1362 1478 +1696 1078 1102 902 1265 +1697 1040 1161 983 1342 +1698 175 1277 773 1414 +1699 999 1199 1192 1217 +1700 1152 1315 1064 1442 +1701 1084 1303 1210 1467 +1702 1259 1304 1016 1374 +1703 1032 1253 1118 1264 +1704 996 1223 1142 1403 +1705 233 1243 1143 1444 +1706 1033 1187 1300 1484 +1707 603 1065 192 1388 +1708 1183 1186 1054 1356 +1709 1076 1430 1031 1432 +1710 1035 1244 1083 1275 +1711 1016 1304 806 1334 +1712 740 1195 1079 1373 +1713 52 889 1086 1146 +1714 888 596 836 1078 +1715 620 1107 825 1449 +1716 1019 949 1262 1282 +1717 983 1161 1040 1215 +1718 1097 1230 988 1365 +1719 908 1148 576 1169 +1720 1015 1205 1125 1263 +1721 1086 1148 966 1247 +1722 878 551 1066 1351 +1723 403 400 574 1041 +1724 993 1031 1173 1349 +1725 234 1025 1243 1444 +1726 779 514 516 1058 +1727 412 1062 414 1272 +1728 292 1106 284 1220 +1729 47 593 48 1131 +1730 972 1208 1163 1298 +1731 40 1127 1286 1390 +1732 636 630 635 1258 +1733 740 1079 721 1373 +1734 891 1086 1148 1422 +1735 1275 1340 951 1369 +1736 1091 1000 1225 1445 +1737 957 1458 1051 1474 +1738 682 651 287 1133 +1739 1068 1159 1015 1392 +1740 335 1090 1273 1441 +1741 911 930 926 1436 +1742 950 1207 1034 1268 +1743 1045 1255 1072 1322 +1744 212 304 1253 1462 +1745 835 735 1138 1189 +1746 990 1063 1070 1285 +1747 992 1137 1026 1473 +1748 666 226 288 1157 +1749 985 1182 1214 1373 +1750 1193 1363 992 1461 +1751 81 85 84 1348 +1752 750 257 260 1182 +1753 855 812 1026 1330 +1754 847 1114 883 1166 +1755 896 854 523 1116 +1756 34 140 33 1265 +1757 977 1174 1022 1282 +1758 1047 1187 1082 1323 +1759 1085 1307 1204 1358 +1760 1061 1102 1003 1241 +1761 1017 1158 1008 1385 +1762 798 1157 1099 1437 +1763 1119 1437 802 1451 +1764 155 1200 1171 1422 +1765 1032 1326 1247 1366 +1766 23 156 880 1425 +1767 423 616 420 1440 +1768 619 170 620 1051 +1769 467 1183 1054 1336 +1770 233 231 229 1143 +1771 171 1273 1090 1393 +1772 798 683 1157 1437 +1773 1019 1219 1136 1299 +1774 960 1214 1121 1311 +1775 255 1088 258 1188 +1776 124 1050 30 1189 +1777 1082 1187 962 1323 +1778 1176 1308 1109 1479 +1779 1037 1095 978 1225 +1780 192 1065 603 1469 +1781 928 940 1028 1281 +1782 1031 993 1173 1430 +1783 1000 1275 1112 1369 +1784 1061 1003 1232 1241 +1785 989 1053 1227 1288 +1786 976 1177 1074 1221 +1787 230 273 764 1103 +1788 606 703 187 1419 +1789 674 289 675 1091 +1790 226 288 1157 1455 +1791 1029 1149 963 1210 +1792 1019 1299 691 1420 +1793 835 1189 1138 1400 +1794 951 1329 1112 1369 +1795 1265 1273 1102 1476 +1796 1278 1300 1060 1484 +1797 94 96 1259 1304 +1798 967 1212 1143 1427 +1799 54 1200 155 1422 +1800 1022 1140 1019 1174 +1801 828 1044 630 1449 +1802 232 171 1090 1393 +1803 570 510 1152 1366 +1804 979 1395 1090 1465 +1805 371 333 1152 1253 +1806 172 1107 160 1284 +1807 1023 968 1393 1395 +1808 1096 1310 1376 1398 +1809 951 1275 1244 1340 +1810 701 1132 541 1224 +1811 569 1114 847 1166 +1812 347 346 179 1237 +1813 276 292 284 1220 +1814 279 637 321 1379 +1815 342 1090 687 1317 +1816 734 47 118 1414 +1817 577 889 134 1086 +1818 899 536 1127 1245 +1819 977 1174 1282 1353 +1820 1251 1264 952 1354 +1821 433 1174 434 1350 +1822 848 156 24 1181 +1823 433 435 434 1174 +1824 1260 1274 1101 1326 +1825 1051 1003 1295 1343 +1826 359 1059 358 1238 +1827 988 1147 1077 1352 +1828 799 246 1187 1299 +1829 975 1161 1040 1171 +1830 459 466 460 1433 +1831 972 1236 1112 1244 +1832 570 1152 333 1253 +1833 1031 1170 1057 1349 +1834 225 1331 226 1407 +1835 644 263 643 1197 +1836 620 1051 170 1343 +1837 31 122 30 1318 +1838 421 423 420 1165 +1839 274 280 279 1139 +1840 868 1066 751 1334 +1841 846 579 584 1087 +1842 966 1247 1184 1326 +1843 161 1390 120 1435 +1844 350 351 352 1211 +1845 980 1085 1204 1391 +1846 1052 1319 994 1464 +1847 1179 1220 269 1389 +1848 869 525 1031 1436 +1849 979 1159 1068 1362 +1850 1026 1137 992 1160 +1851 966 1170 1101 1260 +1852 1078 1168 463 1350 +1853 241 242 1250 1428 +1854 678 830 1344 1481 +1855 125 51 1146 1418 +1856 528 1054 549 1210 +1857 515 513 1058 1440 +1858 573 884 1064 1315 +1859 588 895 586 1050 +1860 972 1035 1208 1298 +1861 540 541 1132 1224 +1862 596 753 902 1102 +1863 906 1054 1183 1186 +1864 670 1172 660 1243 +1865 217 215 1053 1415 +1866 906 1054 467 1183 +1867 491 338 1222 1230 +1868 96 1259 1016 1307 +1869 813 1125 253 1188 +1870 196 302 198 1198 +1871 456 679 440 1468 +1872 1042 1281 933 1368 +1873 1076 1281 955 1360 +1874 964 1134 1129 1224 +1875 1034 1268 1063 1301 +1876 230 273 1103 1452 +1877 352 374 820 1249 +1878 1022 1174 1019 1282 +1879 480 565 566 1068 +1880 960 1088 1049 1214 +1881 331 373 1184 1396 +1882 1244 1254 951 1340 +1883 1102 1273 1061 1476 +1884 1073 1143 967 1287 +1885 682 1133 287 1212 +1886 387 1190 337 1378 +1887 940 1267 1028 1281 +1888 224 666 1201 1407 +1889 695 1185 454 1353 +1890 1085 1204 956 1358 +1891 403 1041 574 1403 +1892 955 1042 1108 1360 +1893 677 675 717 1300 +1894 978 1095 1037 1329 +1895 356 1119 1415 1437 +1896 365 1347 499 1362 +1897 914 931 157 1169 +1898 383 1216 339 1409 +1899 513 1235 1058 1440 +1900 1089 1337 1270 1424 +1901 677 719 363 1111 +1902 846 1087 584 1234 +1903 996 1089 1305 1482 +1904 309 1258 1095 1438 +1905 444 693 694 1083 +1906 1077 1005 1280 1352 +1907 371 333 570 1152 +1908 720 1062 412 1345 +1909 997 1080 1041 1333 +1910 247 246 248 1219 +1911 1108 1249 1052 1319 +1912 170 1051 619 1295 +1913 1044 1095 1006 1483 +1914 1019 1282 1174 1353 +1915 1216 1230 339 1409 +1916 1066 1123 956 1228 +1917 957 1043 1236 1474 +1918 1052 994 1113 1240 +1919 964 1224 1129 1271 +1920 1022 1241 1078 1282 +1921 992 1181 1036 1413 +1922 720 1257 1062 1345 +1923 967 1126 1233 1321 +1924 665 1079 425 1165 +1925 948 1263 1361 1471 +1926 988 1216 1077 1409 +1927 1082 1163 972 1208 +1928 885 50 1315 1450 +1929 406 751 405 1123 +1930 833 1163 1135 1380 +1931 978 1091 1111 1191 +1932 630 1297 629 1483 +1933 622 1202 761 1341 +1934 27 126 845 1333 +1935 1122 1311 1013 1392 +1936 565 566 1068 1392 +1937 362 1139 1172 1324 +1938 1099 1437 1119 1451 +1939 1296 1404 1041 1482 +1940 295 1106 292 1238 +1941 1030 1233 1126 1321 +1942 636 1258 1069 1449 +1943 489 644 643 1197 +1944 1138 1291 1050 1318 +1945 1015 1263 1088 1311 +1946 543 556 1151 1156 +1947 833 1135 439 1380 +1948 1001 1240 1113 1322 +1949 649 647 648 1212 +1950 952 1326 1274 1376 +1951 1009 1264 1251 1354 +1952 399 475 398 1410 +1953 1029 1176 1077 1352 +1954 962 1191 1091 1371 +1955 1035 1246 1002 1340 +1956 1062 1130 981 1290 +1957 801 149 867 1267 +1958 961 1074 1221 1310 +1959 990 1268 1063 1285 +1960 94 1304 1259 1374 +1961 961 1221 1096 1310 +1962 1027 1220 1106 1238 +1963 1057 1239 1031 1349 +1964 880 851 106 1193 +1965 1022 1282 1262 1346 +1966 469 460 467 1054 +1967 214 477 217 1401 +1968 146 847 36 1114 +1969 967 1126 1246 1340 +1970 1025 1212 1143 1444 +1971 157 1169 931 1200 +1972 666 1157 627 1201 +1973 161 120 40 1435 +1974 958 1315 1100 1442 +1975 95 99 91 1363 +1976 291 1144 249 1431 +1977 857 1137 812 1160 +1978 648 646 449 1246 +1979 958 1100 1354 1442 +1980 37 141 159 1343 +1981 1074 1118 590 1423 +1982 1023 1293 1291 1395 +1983 1068 1362 1144 1411 +1984 352 368 353 1052 +1985 989 1401 1276 1410 +1986 976 1152 1064 1442 +1987 705 707 706 1040 +1988 1315 1418 1009 1450 +1989 295 1106 1238 1327 +1990 1082 1250 242 1428 +1991 827 1198 302 1316 +1992 1087 1181 584 1234 +1993 973 1096 1285 1322 +1994 958 1268 1117 1285 +1995 383 610 339 1216 +1996 647 1212 681 1287 +1997 165 1104 32 1265 +1998 1064 1124 593 1410 +1999 1168 1203 1007 1471 +2000 868 1066 1334 1374 +2001 318 1362 1196 1478 +2002 974 1291 1121 1337 +2003 483 1381 488 1429 +2004 1120 1206 1018 1453 +2005 257 255 256 1188 +2006 925 916 1213 1283 +2007 297 542 299 1129 +2008 1090 1156 979 1317 +2009 1132 1266 1180 1280 +2010 1063 1010 1277 1359 +2011 509 376 575 1247 +2012 1049 1088 960 1179 +2013 392 294 393 1223 +2014 551 1228 1066 1351 +2015 488 1381 1316 1429 +2016 691 692 724 1136 +2017 988 1308 1147 1352 +2018 721 740 465 1079 +2019 957 1191 1115 1236 +2020 960 1220 1179 1389 +2021 1072 1255 1045 1316 +2022 706 1040 707 1283 +2023 1262 1282 949 1346 +2024 1143 1212 967 1287 +2025 574 1234 845 1333 +2026 949 1232 1115 1346 +2027 339 1216 610 1230 +2028 1148 1169 1031 1436 +2029 376 375 404 1239 +2030 954 1424 1252 1482 +2031 516 517 518 1116 +2032 995 1130 1270 1309 +2033 368 1052 352 1249 +2034 484 1319 1108 1381 +2035 960 1122 1088 1311 +2036 952 1274 1240 1322 +2037 495 1132 795 1280 +2038 298 1134 628 1224 +2039 552 1330 1026 1351 +2040 402 802 1119 1437 +2041 631 629 630 1297 +2042 756 869 1239 1349 +2043 1044 1258 978 1329 +2044 1250 1428 1000 1445 +2045 1005 1266 1132 1280 +2046 1108 1381 1319 1464 +2047 994 1113 1072 1429 +2048 913 944 803 1173 +2049 510 380 1048 1366 +2050 1010 1034 1268 1277 +2051 710 1147 384 1409 +2052 929 1279 947 1368 +2053 284 1106 592 1454 +2054 260 777 750 1182 +2055 1044 1095 1258 1329 +2056 1034 1222 1038 1335 +2057 706 1249 1040 1283 +2058 1006 1095 1044 1329 +2059 1033 1262 1047 1299 +2060 510 1152 1048 1450 +2061 1010 1071 1289 1387 +2062 912 1028 940 1267 +2063 937 942 912 1283 +2064 358 1059 378 1228 +2065 928 1028 1213 1281 +2066 564 303 1183 1402 +2067 996 1242 1106 1454 +2068 365 499 1347 1478 +2069 1072 1322 1313 1372 +2070 484 1108 485 1381 +2071 1104 1265 165 1273 +2072 1042 955 1281 1360 +2073 570 1152 1253 1366 +2074 1084 1180 969 1266 +2075 493 384 494 1077 +2076 417 1130 416 1446 +2077 773 1277 1067 1414 +2078 1031 1148 975 1169 +2079 1198 1274 1045 1316 +2080 53 1161 1086 1422 +2081 959 1384 1165 1448 +2082 749 125 51 1146 +2083 994 1274 1198 1316 +2084 1144 1347 1008 1362 +2085 1033 1269 1144 1347 +2086 737 1061 1295 1341 +2087 398 1401 1177 1410 +2088 737 1295 618 1341 +2089 518 523 862 1348 +2090 785 838 1056 1383 +2091 1054 1186 549 1210 +2092 990 1070 1063 1301 +2093 1112 1370 1329 1408 +2094 779 1145 788 1231 +2095 1296 1305 954 1482 +2096 1044 1006 1297 1483 +2097 522 895 124 1105 +2098 1040 1161 975 1215 +2099 1159 1392 821 1463 +2100 514 1058 779 1440 +2101 1096 1264 952 1376 +2102 1009 1315 1152 1442 +2103 412 413 410 1345 +2104 1010 1268 1289 1332 +2105 702 761 622 1202 +2106 360 832 1151 1156 +2107 812 863 855 1137 +2108 1019 1033 1219 1299 +2109 802 402 798 1437 +2110 948 1263 1121 1361 +2111 1141 1314 973 1398 +2112 1232 1458 1115 1474 +2113 33 1265 140 1273 +2114 1027 1217 1199 1338 +2115 1050 1206 1120 1453 +2116 673 1172 670 1243 +2117 978 1191 1069 1370 +2118 1198 1316 827 1381 +2119 634 1044 1284 1297 +2120 284 1220 1106 1454 +2121 980 1204 1307 1358 +2122 217 218 215 1415 +2123 892 591 522 1235 +2124 124 30 29 1189 +2125 818 838 782 1426 +2126 995 1062 1192 1290 +2127 1144 1269 1008 1347 +2128 895 1105 507 1448 +2129 145 52 53 1417 +2130 1103 1308 1024 1379 +2131 263 1073 644 1287 +2132 1039 1125 970 1306 +2133 720 411 1257 1345 +2134 411 720 412 1345 +2135 1139 1421 1024 1452 +2136 246 248 1219 1299 +2137 551 550 1228 1351 +2138 638 381 1230 1365 +2139 802 798 1099 1437 +2140 755 186 712 1070 +2141 579 1087 377 1413 +2142 755 186 1070 1313 +2143 492 792 791 1149 +2144 26 144 25 1459 +2145 217 1218 1053 1401 +2146 1081 1146 1009 1418 +2147 982 1056 1198 1426 +2148 420 616 1231 1440 +2149 24 1036 854 1459 +2150 267 266 268 1389 +2151 925 916 936 1213 +2152 1058 1231 779 1440 +2153 1006 1254 1406 1408 +2154 1046 1103 965 1421 +2155 964 1139 1243 1427 +2156 752 1394 146 1476 +2157 628 1224 1134 1483 +2158 997 1337 1142 1482 +2159 1046 965 1248 1421 +2160 987 1087 1328 1364 +2161 26 1320 1234 1459 +2162 992 1036 1193 1413 +2163 998 1376 1310 1398 +2164 673 670 659 1243 +2165 901 547 1071 1186 +2166 933 1042 1368 1447 +2167 1009 1146 1081 1251 +2168 1319 1381 994 1464 +2169 959 1079 1165 1384 +2170 567 813 790 1472 +2171 365 732 499 1478 +2172 1052 1113 994 1429 +2173 1051 1458 1003 1474 +2174 1261 1321 1011 1427 +2175 212 1253 1118 1462 +2176 328 261 750 1049 +2177 1014 1209 1119 1227 +2178 773 340 614 1277 +2179 77 106 103 1193 +2180 593 123 48 1131 +2181 986 1135 1236 1323 +2182 93 96 111 1178 +2183 1160 992 1363 1461 +2184 1149 1207 1067 1216 +2185 1029 1266 1176 1352 +2186 986 1163 1135 1323 +2187 747 370 327 1327 +2188 1068 1125 970 1355 +2189 108 77 103 1425 +2190 225 227 226 1331 +2191 666 224 226 1407 +2192 1053 1074 961 1312 +2193 552 1026 855 1228 +2194 1142 1189 561 1400 +2195 242 1187 243 1250 +2196 969 1233 1254 1367 +2197 1084 1233 1030 1303 +2198 978 1258 1095 1329 +2199 1050 1206 1291 1337 +2200 912 810 1028 1267 +2201 1045 973 1255 1322 +2202 1067 1149 963 1207 +2203 1199 1217 999 1338 +2204 291 1355 1144 1431 +2205 180 712 182 1070 +2206 1024 1308 1147 1365 +2207 983 1101 1251 1326 +2208 289 1091 674 1445 +2209 1052 994 1319 1429 +2210 995 1130 1062 1290 +2211 1084 1266 1233 1303 +2212 1041 1333 574 1403 +2213 1108 1360 1042 1457 +2214 231 1143 233 1243 +2215 678 624 830 1481 +2216 380 1247 1048 1366 +2217 982 1150 1056 1426 +2218 521 861 1150 1383 +2219 134 887 1146 1450 +2220 285 299 563 1129 +2221 1232 1241 1003 1346 +2222 1032 1247 1184 1366 +2223 1004 1107 1044 1284 +2224 964 1134 1037 1475 +2225 952 1264 1096 1354 +2226 1114 1166 1043 1474 +2227 1043 972 1135 1468 +2228 567 361 1392 1472 +2229 1005 1129 1224 1271 +2230 331 389 373 1396 +2231 1041 987 1242 1357 +2232 634 1284 1044 1449 +2233 564 303 539 1183 +2234 1176 1266 1029 1303 +2235 1182 1257 995 1446 +2236 267 268 1122 1389 +2237 988 1077 1176 1352 +2238 1128 1321 1261 1427 +2239 493 792 1077 1280 +2240 998 1439 1164 1477 +2241 96 1178 93 1307 +2242 177 1100 600 1237 +2243 295 292 329 1238 +2244 1099 1256 1012 1416 +2245 1127 1004 1245 1254 +2246 1011 1143 1073 1331 +2247 978 1111 1258 1344 +2248 758 774 497 1372 +2249 1026 1228 552 1351 +2250 799 1047 656 1420 +2251 327 330 296 1242 +2252 569 847 1114 1292 +2253 968 1241 1078 1265 +2254 832 342 687 1156 +2255 573 885 1315 1450 +2256 26 1234 144 1459 +2257 838 1150 782 1426 +2258 953 1266 1176 1303 +2259 859 843 810 1028 +2260 592 296 730 1242 +2261 148 1071 1124 1414 +2262 711 687 342 1090 +2263 965 1308 1103 1379 +2264 217 215 214 1053 +2265 415 414 412 1062 +2266 256 260 257 1182 +2267 1001 1113 1072 1322 +2268 755 1070 712 1372 +2269 721 1309 451 1373 +2270 524 1127 512 1367 +2271 958 1131 1100 1315 +2272 289 1250 1091 1445 +2273 36 121 35 1295 +2274 737 1061 164 1295 +2275 964 1172 1226 1427 +2276 977 1203 1168 1471 +2277 212 213 304 1462 +2278 580 579 377 1413 +2279 1226 1369 1037 1406 +2280 1067 1216 1034 1277 +2281 1056 1360 1108 1457 +2282 1046 984 1407 1412 +2283 265 328 481 1199 +2284 608 451 1309 1373 +2285 226 1331 1046 1407 +2286 601 477 214 1074 +2287 685 1158 317 1196 +2288 569 847 883 1166 +2289 963 1303 1210 1356 +2290 801 915 149 1267 +2291 330 1242 327 1357 +2292 964 1139 1172 1243 +2293 1103 1024 1421 1452 +2294 737 1273 1061 1441 +2295 359 358 341 1238 +2296 51 1146 1418 1450 +2297 1025 1226 1172 1427 +2298 751 868 129 1066 +2299 996 1223 1094 1375 +2300 795 1132 699 1180 +2301 714 388 672 1225 +2302 493 494 495 1280 +2303 584 1087 579 1413 +2304 1114 1295 1003 1343 +2305 964 1037 1172 1475 +2306 34 1265 1102 1476 +2307 1088 1182 1049 1214 +2308 145 53 1161 1417 +2309 100 1066 76 1374 +2310 652 1208 270 1428 +2311 673 669 1172 1194 +2312 973 1322 1045 1398 +2313 555 1223 1142 1400 +2314 1078 1241 1102 1265 +2315 819 1325 776 1426 +2316 755 1313 1070 1372 +2317 670 362 660 1172 +2318 797 1153 81 1348 +2319 1261 1266 1005 1352 +2320 1008 1060 1278 1385 +2321 1012 1256 1109 1416 +2322 1059 1238 359 1338 +2323 515 1058 514 1440 +2324 283 1094 275 1220 +2325 987 1328 1137 1364 +2326 873 1330 552 1351 +2327 1018 1195 1079 1384 +2328 1043 1004 1244 1245 +2329 318 1196 1158 1478 +2330 963 1176 1109 1207 +2331 901 46 1294 1414 +2332 1041 987 1357 1404 +2333 781 1072 780 1316 +2334 1132 1180 795 1280 +2335 1044 978 1258 1370 +2336 560 1142 555 1223 +2337 971 1087 1328 1404 +2338 358 1238 1059 1327 +2339 329 295 1238 1327 +2340 686 761 702 1441 +2341 524 536 512 1127 +2342 962 1278 1115 1323 +2343 906 1183 472 1186 +2344 228 1331 230 1455 +2345 1165 1384 424 1448 +2346 1002 1245 1244 1254 +2347 956 1066 1228 1473 +2348 803 913 1173 1279 +2349 1002 1233 1254 1340 +2350 949 1115 1232 1385 +2351 1232 1385 1115 1458 +2352 1129 1134 964 1324 +2353 263 1197 1073 1407 +2354 753 1102 888 1394 +2355 318 317 1158 1196 +2356 992 1026 1160 1363 +2357 1075 120 1390 1435 +2358 1004 1245 1043 1292 +2359 1002 1254 1233 1367 +2360 1065 1209 1014 1377 +2361 890 1058 1235 1320 +2362 1173 1279 929 1368 +2363 1144 1219 249 1431 +2364 958 1221 1096 1285 +2365 195 1072 781 1255 +2366 1009 1251 1081 1354 +2367 780 781 195 1072 +2368 485 1381 1108 1457 +2369 1106 1242 987 1357 +2370 1115 1278 1191 1458 +2371 962 1060 1278 1300 +2372 506 1382 1325 1426 +2373 1070 1237 1063 1301 +2374 959 1120 1384 1448 +2375 987 1328 1059 1473 +2376 1004 1254 1127 1435 +2377 359 378 358 1059 +2378 1180 1266 1084 1467 +2379 232 1090 342 1393 +2380 962 1323 1191 1371 +2381 890 1058 513 1235 +2382 103 88 108 1391 +2383 785 487 530 1056 +2384 970 1136 1039 1306 +2385 1020 1270 1105 1424 +2386 1428 1445 239 1466 +2387 955 1108 1056 1360 +2388 85 1178 78 1348 +2389 287 1212 1133 1444 +2390 85 78 84 1348 +2391 1079 995 1309 1373 +2392 1134 1271 964 1406 +2393 1137 1160 857 1364 +2394 1006 1132 1075 1297 +2395 968 1265 1078 1456 +2396 1058 1020 1235 1252 +2397 1076 1170 955 1215 +2398 961 1209 1065 1377 +2399 1191 1278 991 1458 +2400 1088 1311 1122 1472 +2401 1001 1100 1081 1354 +2402 855 863 390 1137 +2403 949 1282 1241 1346 +2404 1013 1392 1159 1463 +2405 211 214 1053 1312 +2406 901 1294 1071 1414 +2407 100 1259 1066 1374 +2408 1173 1430 926 1436 +2409 699 1180 1132 1390 +2410 960 1094 1220 1389 +2411 1100 1237 958 1354 +2412 1147 1308 988 1365 +2413 967 1128 1233 1340 +2414 964 1261 1139 1427 +2415 1081 1009 1354 1418 +2416 627 219 1201 1415 +2417 184 1222 1301 1419 +2418 1171 1213 975 1432 +2419 1003 1051 1232 1458 +2420 788 1231 1145 1405 +2421 1081 1354 1100 1418 +2422 408 470 1123 1334 +2423 1024 1097 1308 1365 +2424 389 500 373 1057 +2425 551 129 878 1066 +2426 1075 1254 1006 1408 +2427 1012 1119 1053 1227 +2428 515 513 890 1058 +2429 1192 1270 995 1290 +2430 868 129 1066 1374 +2431 1080 1252 1041 1404 +2432 501 1325 1057 1396 +2433 647 681 645 1287 +2434 799 656 831 1420 +2435 515 514 513 1440 +2436 625 204 1312 1439 +2437 1192 1199 999 1345 +2438 751 1123 406 1334 +2439 501 1057 389 1396 +2440 950 1289 1268 1332 +2441 81 1153 85 1348 +2442 992 1328 1137 1473 +2443 827 302 822 1316 +2444 92 88 103 1193 +2445 228 230 764 1455 +2446 736 1075 633 1284 +2447 606 187 1154 1419 +2448 951 1244 1112 1408 +2449 177 1100 1237 1359 +2450 750 777 769 1257 +2451 203 1439 202 1477 +2452 972 1208 1035 1275 +2453 1001 1372 1113 1386 +2454 853 908 1200 1422 +2455 424 1165 425 1384 +2456 1037 1134 964 1406 +2457 906 467 472 1183 +2458 963 1071 1067 1387 +2459 951 1112 1275 1369 +2460 584 1181 1087 1413 +2461 510 509 887 1048 +2462 935 915 801 1267 +2463 638 1097 559 1365 +2464 802 1099 387 1451 +2465 305 1184 344 1366 +2466 206 205 601 1164 +2467 449 657 1126 1287 +2468 660 1243 1139 1452 +2469 1083 1298 972 1468 +2470 1088 1188 1015 1472 +2471 1281 1360 1076 1368 +2472 1057 982 1325 1382 +2473 982 1274 1260 1376 +2474 653 823 833 1298 +2475 932 933 915 1447 +2476 540 701 541 1224 +2477 92 1160 109 1363 +2478 760 369 368 1319 +2479 891 577 575 1086 +2480 619 1295 1051 1341 +2481 487 530 1056 1457 +2482 755 774 195 1072 +2483 835 561 1189 1400 +2484 1067 1071 963 1294 +2485 670 660 659 1243 +2486 208 205 207 1460 +2487 873 102 1330 1351 +2488 598 1081 397 1386 +2489 981 1058 1252 1290 +2490 335 1273 737 1441 +2491 257 258 255 1088 +2492 1092 1307 1016 1358 +2493 490 1097 336 1379 +2494 698 1185 697 1195 +2495 711 686 1317 1441 +2496 1047 962 1187 1323 +2497 1090 1393 968 1395 +2498 1057 1170 966 1260 +2499 140 164 737 1061 +2500 192 1162 1154 1469 +2501 638 490 559 1097 +2502 1192 995 1270 1305 +2503 665 1079 1165 1309 +2504 242 244 243 1187 +2505 387 1378 386 1451 +2506 755 1072 195 1313 +2507 514 515 516 1058 +2508 1176 1248 1109 1308 +2509 1043 1135 972 1236 +2510 755 774 1072 1372 +2511 854 1036 24 1425 +2512 1100 1354 1009 1418 +2513 356 1119 210 1312 +2514 633 1284 1075 1297 +2515 612 611 613 1277 +2516 515 893 1116 1320 +2517 1079 425 1165 1384 +2518 1003 1241 1102 1346 +2519 1154 973 1313 1388 +2520 420 418 1130 1231 +2521 606 1154 192 1162 +2522 867 486 1108 1457 +2523 592 284 296 1106 +2524 757 276 269 1220 +2525 942 925 1213 1283 +2526 973 1285 1314 1377 +2527 1081 1211 397 1386 +2528 980 1204 1085 1307 +2529 989 1117 1221 1332 +2530 1031 1430 1173 1436 +2531 48 1131 123 1315 +2532 737 164 618 1295 +2533 713 1190 1099 1302 +2534 26 1080 1234 1320 +2535 176 1063 612 1277 +2536 1087 1364 377 1413 +2537 725 1334 1055 1443 +2538 987 1041 1242 1296 +2539 985 1182 1088 1214 +2540 1072 1313 755 1372 +2541 1067 1149 745 1294 +2542 973 1314 1065 1377 +2543 148 1124 47 1414 +2544 1063 1277 176 1359 +2545 799 1299 1047 1420 +2546 343 1184 373 1239 +2547 989 1177 1074 1401 +2548 354 480 816 1362 +2549 969 1254 1127 1367 +2550 687 1090 711 1317 +2551 1037 1194 1172 1475 +2552 816 480 566 1159 +2553 1094 275 1220 1389 +2554 356 210 211 1312 +2555 650 452 823 1298 +2556 969 1180 1084 1286 +2557 1034 1268 1222 1335 +2558 956 1228 1123 1473 +2559 1098 1269 1008 1411 +2560 717 716 778 1060 +2561 1226 951 1340 1369 +2562 961 1119 1227 1312 +2563 965 1256 1099 1416 +2564 1241 1282 1022 1346 +2565 131 97 111 1178 +2566 237 234 236 1444 +2567 706 820 374 1249 +2568 336 729 385 1190 +2569 426 428 1120 1384 +2570 391 1119 1209 1312 +2571 80 1304 804 1397 +2572 1339 1385 1060 1478 +2573 1094 1122 960 1375 +2574 263 1073 225 1407 +2575 845 26 1080 1234 +2576 978 1225 1095 1438 +2577 608 721 451 1373 +2578 711 1317 1090 1441 +2579 373 1057 500 1349 +2580 979 1098 1395 1465 +2581 625 1312 1209 1439 +2582 1192 1217 1027 1305 +2583 1055 1345 1062 1434 +2584 937 912 864 1283 +2585 997 1337 1089 1424 +2586 961 1119 1209 1227 +2587 691 690 692 1353 +2588 677 674 675 1091 +2589 1006 1271 1134 1406 +2590 449 646 657 1287 +2591 1039 1185 1018 1471 +2592 92 104 1160 1461 +2593 961 1310 1096 1314 +2594 543 1151 832 1156 +2595 961 1209 1119 1312 +2596 148 1124 1071 1470 +2597 602 1141 1065 1388 +2598 1098 1306 1205 1395 +2599 275 283 293 1094 +2600 1003 1458 1232 1474 +2601 884 1064 593 1410 +2602 1098 1203 1306 1395 +2603 1057 1184 966 1239 +2604 148 548 1124 1470 +2605 1197 1407 984 1412 +2606 201 203 202 1477 +2607 1227 1288 950 1289 +2608 370 1357 1137 1364 +2609 978 1191 1112 1371 +2610 410 413 725 1055 +2611 552 855 1026 1330 +2612 1056 1198 785 1381 +2613 939 916 852 1171 +2614 1041 1357 1087 1404 +2615 1046 1331 226 1455 +2616 1173 1368 929 1430 +2617 27 845 26 1080 +2618 1064 1131 958 1315 +2619 843 708 810 1283 +2620 975 1213 1076 1432 +2621 395 685 1196 1317 +2622 1028 1267 1042 1281 +2623 1139 1261 1011 1427 +2624 874 78 1178 1348 +2625 1027 1192 1049 1199 +2626 1244 1245 1004 1254 +2627 176 178 612 1063 +2628 1158 1385 1339 1478 +2629 277 821 1392 1463 +2630 506 1150 1382 1426 +2631 970 1098 1282 1306 +2632 413 1055 1272 1443 +2633 583 1364 1160 1461 +2634 965 1103 1046 1455 +2635 1247 1326 1048 1366 +2636 987 1059 1217 1238 +2637 249 1144 728 1219 +2638 962 1115 1191 1323 +2639 515 893 517 1116 +2640 219 1155 220 1201 +2641 1013 1122 1392 1463 +2642 140 164 1061 1476 +2643 1100 1315 738 1418 +2644 1049 1192 1027 1305 +2645 169 633 736 1075 +2646 386 1451 1378 1469 +2647 405 751 551 1066 +2648 952 1101 1274 1326 +2649 1085 1204 992 1328 +2650 1205 1306 1203 1395 +2651 998 1167 1093 1376 +2652 1097 1190 336 1379 +2653 386 479 1451 1469 +2654 407 408 406 1123 +2655 1089 1121 974 1375 +2656 1050 1291 974 1337 +2657 1029 1149 1077 1176 +2658 312 314 313 1111 +2659 954 1217 1192 1305 +2660 127 1084 1286 1367 +2661 520 521 861 1150 +2662 692 763 1136 1353 +2663 1120 1361 959 1384 +2664 1058 1020 1252 1290 +2665 835 735 122 1138 +2666 1079 1309 721 1373 +2667 576 858 796 1169 +2668 1069 1258 1044 1449 +2669 660 235 1243 1452 +2670 1013 1375 1122 1463 +2671 1122 1375 1094 1463 +2672 38 141 37 1292 +2673 1014 1227 1256 1335 +2674 1051 1295 170 1343 +2675 1203 1282 1098 1306 +2676 321 490 336 1379 +2677 366 377 1087 1357 +2678 973 1154 1070 1285 +2679 247 249 728 1219 +2680 307 1134 1095 1483 +2681 558 563 1147 1365 +2682 1061 1441 1273 1465 +2683 969 1180 1132 1266 +2684 598 784 397 1081 +2685 156 848 850 1181 +2686 961 1314 1065 1439 +2687 1214 1270 995 1305 +2688 924 933 1281 1368 +2689 708 843 1249 1283 +2690 1184 1239 344 1247 +2691 92 1193 104 1461 +2692 951 1112 1329 1408 +2693 959 1120 1050 1206 +2694 1029 1084 1266 1467 +2695 486 485 1108 1457 +2696 1184 1247 344 1366 +2697 490 637 559 1097 +2698 542 710 299 1147 +2699 982 1056 1150 1360 +2700 901 116 1186 1294 +2701 1273 1441 1090 1465 +2702 998 1398 1141 1477 +2703 636 828 630 1449 +2704 387 386 479 1451 +2705 982 1056 1360 1464 +2706 571 1152 510 1450 +2707 1064 1315 958 1442 +2708 205 1164 203 1460 +2709 483 1319 1381 1429 +2710 215 211 214 1053 +2711 111 131 1178 1397 +2712 1141 1398 1045 1477 +2713 1079 959 1361 1384 +2714 92 89 88 1363 +2715 783 784 598 1081 +2716 1134 1224 964 1271 +2717 1087 987 1357 1364 +2718 405 1066 551 1228 +2719 716 1060 717 1300 +2720 961 1065 1209 1439 +2721 1091 1225 676 1445 +2722 1031 1430 1169 1432 +2723 1041 997 1333 1482 +2724 936 941 921 1432 +2725 356 1415 626 1437 +2726 1008 1060 1385 1478 +2727 833 439 447 1380 +2728 135 1235 1080 1320 +2729 1008 1362 1347 1478 +2730 1061 1273 140 1476 +2731 955 1170 1360 1464 +2732 808 930 911 1436 +2733 994 1381 1198 1464 +2734 344 1184 343 1239 +2735 303 640 553 1218 +2736 528 469 549 1054 +2737 1038 1222 1034 1230 +2738 222 221 1402 1407 +2739 1058 1231 1020 1290 +2740 781 1255 1072 1316 +2741 85 87 93 1307 +2742 905 1318 1453 1456 +2743 1096 1376 952 1398 +2744 635 1095 309 1258 +2745 974 1121 1089 1337 +2746 1014 1335 1256 1378 +2747 38 1292 115 1435 +2748 313 1111 314 1344 +2749 1127 1245 1004 1435 +2750 988 1308 1176 1479 +2751 426 428 464 1120 +2752 978 1044 1329 1370 +2753 496 492 791 1216 +2754 651 649 650 1208 +2755 1045 1322 1274 1398 +2756 1018 1185 1039 1195 +2757 407 406 379 1123 +2758 959 1121 1206 1337 +2759 376 375 1239 1247 +2760 785 1056 530 1383 +2761 1015 1188 1088 1263 +2762 953 1176 1266 1352 +2763 259 247 728 1484 +2764 1081 1100 1001 1386 +2765 213 331 1184 1462 +2766 338 638 381 1230 +2767 362 280 1139 1324 +2768 746 792 793 1280 +2769 1222 1268 990 1335 +2770 1046 984 1201 1407 +2771 575 376 404 1148 +2772 203 680 1460 1477 +2773 1057 1349 993 1382 +2774 787 1144 499 1347 +2775 366 377 579 1087 +2776 218 1218 1155 1415 +2777 967 1233 1126 1340 +2778 570 1253 333 1366 +2779 724 1219 248 1299 +2780 981 1252 1058 1399 +2781 956 1204 1085 1328 +2782 45 901 46 1294 +2783 181 612 178 1063 +2784 475 553 1218 1276 +2785 932 1267 940 1281 +2786 815 603 602 1065 +2787 1080 1234 1041 1333 +2788 1256 1335 1038 1378 +2789 891 153 1086 1422 +2790 1044 1006 1329 1408 +2791 335 171 737 1273 +2792 635 325 309 1095 +2793 1144 1362 1008 1411 +2794 914 157 796 1169 +2795 982 1101 1260 1274 +2796 837 358 378 1228 +2797 998 1118 1310 1376 +2798 527 469 528 1084 +2799 927 929 947 1368 +2800 177 748 600 1100 +2801 159 121 36 1343 +2802 222 1402 1197 1407 +2803 959 1121 1089 1214 +2804 984 1046 1201 1416 +2805 294 1223 1094 1454 +2806 1226 1254 951 1406 +2807 1026 1228 1066 1473 +2808 1203 1206 1007 1471 +2809 973 1065 1154 1377 +2810 415 417 416 1446 +2811 358 329 1238 1327 +2812 109 1330 107 1363 +2813 1055 999 1345 1434 +2814 43 1210 119 1467 +2815 391 1209 210 1312 +2816 1043 1166 1135 1236 +2817 1015 1311 1122 1392 +2818 140 1061 737 1273 +2819 948 1206 1203 1471 +2820 272 1195 722 1373 +2821 640 1155 218 1218 +2822 1077 1147 988 1409 +2823 712 186 182 1070 +2824 262 258 261 1088 +2825 429 431 430 1168 +2826 974 1138 1050 1189 +2827 453 1140 435 1174 +2828 1126 1233 1002 1340 +2829 1092 535 1397 1480 +2830 1155 1201 219 1415 +2831 1059 1238 987 1327 +2832 694 693 537 1245 +2833 802 798 387 1099 +2834 221 219 220 1201 +2835 718 1185 763 1353 +2836 835 561 735 1189 +2837 50 51 1418 1450 +2838 1218 1276 989 1401 +2839 433 434 432 1350 +2840 771 1325 501 1396 +2841 964 1243 1172 1427 +2842 331 1396 1184 1462 +2843 674 1091 676 1445 +2844 958 1117 1221 1285 +2845 512 537 693 1245 +2846 365 1362 318 1478 +2847 277 1392 1122 1463 +2848 639 1143 229 1331 +2849 403 574 1333 1403 +2850 954 1270 1192 1290 +2851 882 1043 569 1166 +2852 1084 1367 527 1433 +2853 980 1036 1153 1391 +2854 1023 1138 1104 1291 +2855 319 685 317 1196 +2856 1161 1171 975 1422 +2857 1012 1227 1053 1288 +2858 487 1056 785 1381 +2859 362 282 280 1324 +2860 810 859 1028 1267 +2861 311 312 1344 1438 +2862 899 115 1245 1435 +2863 446 449 450 1246 +2864 1023 1393 1090 1395 +2865 628 1134 307 1483 +2866 792 492 493 1077 +2867 270 654 655 1082 +2868 1104 1138 1023 1393 +2869 436 462 434 1229 +2870 313 312 1111 1344 +2871 628 298 307 1134 +2872 1210 1303 1054 1356 +2873 1056 1381 1108 1464 +2874 1255 1313 973 1388 +2875 1070 1154 973 1313 +2876 1178 1397 535 1480 +2877 1003 1102 1061 1476 +2878 120 1075 736 1435 +2879 1001 1237 1100 1354 +2880 1130 995 1270 1290 +2881 1158 1202 323 1481 +2882 778 1060 716 1484 +2883 228 226 1331 1455 +2884 976 1221 1074 1310 +2885 449 1126 450 1246 +2886 163 745 1149 1294 +2887 37 159 1114 1343 +2888 519 516 518 1145 +2889 1069 991 1191 1344 +2890 508 372 727 1410 +2891 523 1153 862 1348 +2892 775 733 174 1393 +2893 752 146 35 1476 +2894 987 1041 1296 1404 +2895 244 799 246 1187 +2896 204 1164 1312 1439 +2897 182 1070 186 1419 +2898 1050 1138 974 1291 +2899 413 1272 743 1443 +2900 1030 1287 1073 1321 +2901 982 1260 1093 1376 +2902 1139 1261 1024 1421 +2903 988 1176 1308 1352 +2904 156 851 880 1193 +2905 771 501 389 1396 +2906 1046 1331 1103 1421 +2907 1014 1378 1099 1451 +2908 602 1065 603 1388 +2909 1008 1278 1269 1385 +2910 391 210 1119 1312 +2911 271 691 724 1299 +2912 1121 1263 985 1361 +2913 720 415 412 1062 +2914 1198 1381 1056 1464 +2915 282 1139 280 1324 +2916 1115 1385 1278 1458 +2917 747 1137 370 1327 +2918 748 1100 177 1359 +2919 222 223 221 1407 +2920 1055 1016 1358 1443 +2921 981 1231 1058 1290 +2922 950 1288 1109 1387 +2923 240 242 241 1428 +2924 1041 1234 1080 1404 +2925 1068 1159 979 1205 +2926 1112 1236 972 1371 +2927 348 350 1113 1386 +2928 973 1313 1072 1322 +2929 1099 1014 1256 1378 +2930 467 471 1183 1336 +2931 1046 1331 1073 1407 +2932 379 406 405 1123 +2933 1068 1144 1355 1411 +2934 1062 1272 1055 1434 +2935 980 1307 1092 1358 +2936 1029 1266 1180 1467 +2937 958 1117 1268 1332 +2938 245 247 259 1484 +2939 769 1257 411 1345 +2940 1103 1331 1011 1421 +2941 355 395 1196 1317 +2942 353 758 1113 1429 +2943 1135 1166 986 1236 +2944 1097 1024 1308 1379 +2945 100 1066 1259 1351 +2946 1230 1365 339 1409 +2947 467 471 472 1183 +2948 728 1144 786 1484 +2949 426 424 1384 1448 +2950 1096 1354 1264 1442 +2951 669 670 673 1172 +2952 543 832 556 1156 +2953 969 1233 1084 1266 +2954 965 1103 1308 1421 +2955 1020 1235 1252 1424 +2956 464 1120 428 1453 +2957 303 218 640 1155 +2958 1196 1362 1008 1478 +2959 1049 1199 1192 1257 +2960 1061 1341 737 1441 +2961 770 772 407 1338 +2962 1032 1260 1184 1326 +2963 908 576 796 1169 +2964 84 139 797 1348 +2965 303 1155 640 1218 +2966 326 1069 636 1258 +2967 1088 1188 985 1263 +2968 495 541 795 1132 +2969 827 785 1198 1381 +2970 515 1058 890 1320 +2971 959 1270 1089 1337 +2972 89 1259 1085 1363 +2973 544 553 476 1276 +2974 994 1198 1274 1464 +2975 983 1052 1211 1240 +2976 530 1383 1056 1457 +2977 135 892 1080 1235 +2978 34 117 1102 1265 +2979 538 569 1043 1292 +2980 1023 1156 1151 1293 +2981 188 1154 187 1419 +2982 836 1078 463 1350 +2983 195 1072 1255 1313 +2984 78 139 84 1348 +2985 950 1117 1289 1332 +2986 117 902 1102 1265 +2987 1075 1390 1127 1435 +2988 1148 1239 966 1247 +2989 1142 1189 997 1333 +2990 188 189 187 1154 +2991 448 824 1272 1405 +2992 955 1101 1170 1464 +2993 824 1272 1092 1443 +2994 779 516 519 1145 +2995 552 1228 550 1351 +2996 392 293 294 1094 +2997 1004 1284 1044 1408 +2998 457 450 458 1433 +2999 1083 1244 1002 1245 +3000 1080 1234 971 1404 +3001 965 1046 1157 1455 +3002 979 1205 1159 1293 +3003 948 1361 1206 1471 +3004 1052 1249 1040 1342 +3005 1000 1250 1091 1371 +3006 933 1368 1175 1447 +3007 216 776 771 1093 +3008 900 1286 1127 1367 +3009 1005 1129 1261 1352 +3010 364 717 778 1060 +3011 1201 1402 221 1407 +3012 760 1108 484 1319 +3013 1054 1336 984 1412 +3014 969 1266 1132 1271 +3015 1005 1132 1266 1271 +3016 1092 1397 1178 1480 +3017 144 1234 1181 1459 +3018 198 301 1167 1198 +3019 188 1313 1154 1419 +3020 45 46 143 1294 +3021 318 319 317 1196 +3022 1092 1145 980 1358 +3023 169 1075 120 1390 +3024 1184 1260 966 1326 +3025 1151 1156 1013 1293 +3026 991 1060 1339 1385 +3027 963 1210 1054 1356 +3028 959 1206 1050 1337 +3029 954 1192 1270 1305 +3030 665 425 421 1165 +3031 176 178 1063 1359 +3032 1075 1284 736 1435 +3033 271 724 248 1299 +3034 1000 1250 1082 1428 +3035 672 669 668 1194 +3036 47 48 118 1131 +3037 477 1401 1074 1423 +3038 408 725 470 1334 +3039 33 165 32 1265 +3040 1107 1114 957 1343 +3041 661 1143 681 1212 +3042 991 1278 1385 1458 +3043 169 736 120 1075 +3044 1049 1179 1027 1199 +3045 541 632 794 1132 +3046 783 784 1081 1418 +3047 293 1094 392 1463 +3048 950 1256 1227 1335 +3049 555 1142 561 1400 +3050 1137 1357 987 1364 +3051 143 1067 745 1294 +3052 46 143 1294 1414 +3053 935 932 915 1267 +3054 975 1161 1086 1215 +3055 1092 1272 824 1405 +3056 477 642 1401 1423 +3057 150 105 82 1351 +3058 1080 1235 997 1424 +3059 1012 1157 1099 1416 +3060 914 138 917 1436 +3061 215 211 1053 1415 +3062 163 745 168 1149 +3063 431 1174 433 1350 +3064 475 399 1276 1410 +3065 682 1212 287 1444 +3066 997 1235 1105 1424 +3067 263 658 225 1073 +3068 771 1093 776 1325 +3069 54 155 768 1422 +3070 324 298 628 1224 +3071 949 1241 1232 1346 +3072 1109 1387 1288 1485 +3073 368 369 353 1319 +3074 1014 1209 1065 1451 +3075 1060 1111 991 1339 +3076 1011 1243 1139 1427 +3077 991 1232 1202 1458 +3078 1011 1421 1139 1452 +3079 982 1198 1056 1464 +3080 1063 1237 958 1359 +3081 172 1284 634 1449 +3082 131 839 97 1178 +3083 1202 1232 1051 1458 +3084 83 104 1193 1461 +3085 1009 1418 1146 1450 +3086 222 1197 223 1407 +3087 932 924 933 1281 +3088 700 1208 652 1428 +3089 1070 1285 1154 1419 +3090 676 674 677 1091 +3091 569 568 847 1292 +3092 170 619 618 1295 +3093 463 595 1168 1453 +3094 157 908 796 1169 +3095 1107 1284 172 1449 +3096 878 105 150 1351 +3097 430 1168 431 1350 +3098 965 1099 1157 1416 +3099 970 1098 1269 1282 +3100 987 1217 1106 1238 +3101 87 1085 1307 1391 +3102 1078 1265 902 1456 +3103 1011 1321 1261 1421 +3104 899 115 536 1245 +3105 720 415 1062 1446 +3106 1064 958 1131 1332 +3107 891 153 577 1086 +3108 91 1259 89 1363 +3109 1071 1124 1010 1289 +3110 799 831 1299 1420 +3111 700 1133 651 1208 +3112 1168 1185 977 1471 +3113 1028 1213 1040 1283 +3114 955 1170 1076 1360 +3115 1076 1170 993 1360 +3116 1040 1213 1171 1283 +3117 773 745 143 1067 +3118 203 201 680 1477 +3119 986 1323 1047 1380 +3120 728 249 291 1144 +3121 668 676 1225 1445 +3122 993 1368 1173 1430 +3123 798 713 387 1099 +3124 1022 1102 1078 1241 +3125 981 1130 1231 1290 +3126 1075 1132 969 1390 +3127 1150 1325 982 1382 +3128 450 1126 459 1433 +3129 358 329 341 1238 +3130 982 1274 1198 1464 +3131 910 939 879 1171 +3132 1059 1123 999 1338 +3133 950 1207 1109 1256 +3134 905 1318 587 1453 +3135 220 1201 1155 1402 +3136 37 1114 847 1292 +3137 1006 1044 1297 1408 +3138 970 1355 1144 1411 +3139 420 422 418 1231 +3140 1089 954 1305 1482 +3141 857 1160 583 1364 +3142 1058 1235 1080 1252 +3143 1053 1119 1012 1415 +3144 545 472 544 1186 +3145 188 189 1154 1313 +3146 613 614 340 1277 +3147 1100 1131 958 1359 +3148 443 1298 1083 1468 +3149 1109 1248 1176 1356 +3150 1137 1327 987 1357 +3151 372 334 371 1177 +3152 1014 1451 1065 1469 +3153 498 565 480 1068 +3154 1006 1224 1134 1271 +3155 373 756 1239 1349 +3156 1010 1124 1071 1414 +3157 173 795 1180 1280 +3158 205 203 207 1460 +3159 950 1268 1117 1332 +3160 1013 1311 1122 1375 +3161 434 836 432 1350 +3162 667 239 241 1445 +3163 993 1076 1368 1430 +3164 1102 1241 1022 1346 +3165 833 447 1163 1380 +3166 503 1349 500 1382 +3167 40 1127 900 1286 +3168 1087 1357 377 1364 +3169 1133 1275 1208 1428 +3170 258 257 261 1088 +3171 306 388 308 1475 +3172 344 1239 375 1247 +3173 973 1154 1285 1377 +3174 667 241 1250 1445 +3175 1009 1152 1048 1264 +3176 743 1272 824 1443 +3177 531 529 1447 1457 +3178 1028 1040 1249 1283 +3179 40 900 41 1286 +3180 1030 1336 1054 1412 +3181 30 1050 897 1318 +3182 92 104 109 1160 +3183 498 1068 480 1362 +3184 437 438 436 1229 +3185 1140 1229 986 1380 +3186 837 552 855 1228 +3187 263 223 1197 1407 +3188 1154 1285 990 1419 +3189 993 1279 1173 1368 +3190 1111 1339 314 1344 +3191 987 1059 1327 1473 +3192 830 1069 326 1344 +3193 87 1085 90 1307 +3194 484 486 485 1108 +3195 278 1103 273 1452 +3196 1027 1217 1106 1296 +3197 870 916 137 1283 +3198 545 1186 544 1470 +3199 216 1093 771 1396 +3200 733 1104 165 1393 +3201 492 1216 383 1409 +3202 959 1214 1089 1270 +3203 636 326 830 1069 +3204 571 570 510 1152 +3205 453 689 688 1140 +3206 454 429 697 1185 +3207 346 347 348 1386 +3208 1018 1185 1168 1471 +3209 1122 1311 960 1375 +3210 481 767 1199 1338 +3211 1082 1163 1047 1323 +3212 344 343 375 1239 +3213 364 1060 778 1478 +3214 348 349 350 1386 +3215 993 1076 1360 1368 +3216 37 847 568 1292 +3217 1157 1201 1012 1437 +3218 1046 1248 1412 1421 +3219 967 1226 1128 1340 +3220 696 1187 245 1484 +3221 549 1054 906 1186 +3222 1130 1270 1020 1290 +3223 313 311 312 1344 +3224 450 657 459 1126 +3225 542 297 324 1224 +3226 231 1243 235 1452 +3227 243 1187 696 1250 +3228 603 1065 815 1469 +3229 960 1122 1094 1389 +3230 538 1245 115 1292 +3231 1099 1256 1190 1378 +3232 424 455 423 1165 +3233 1103 1024 1308 1421 +3234 1022 1102 1346 1394 +3235 1042 1360 1281 1368 +3236 724 1136 250 1219 +3237 969 1127 1075 1390 +3238 1082 1250 1000 1371 +3239 1093 1167 998 1477 +3240 1054 1303 1030 1412 +3241 955 1056 1108 1464 +3242 1062 1130 995 1446 +3243 778 1347 1060 1484 +3244 231 233 234 1243 +3245 501 503 500 1382 +3246 1102 1003 1346 1394 +3247 948 1121 1206 1361 +3248 791 614 496 1216 +3249 989 1064 1124 1332 +3250 965 1157 1046 1416 +3251 391 625 210 1209 +3252 992 1160 1137 1364 +3253 282 285 1129 1324 +3254 1118 1253 212 1423 +3255 780 483 488 1429 +3256 560 474 555 1142 +3257 1087 1181 992 1413 +3258 275 1094 293 1389 +3259 696 1250 1187 1300 +3260 505 1325 506 1382 +3261 984 1183 1054 1356 +3262 1104 1273 165 1393 +3263 1080 1235 1058 1320 +3264 962 1187 1082 1250 +3265 309 307 308 1095 +3266 941 1171 910 1200 +3267 981 1252 1110 1290 +3268 928 932 940 1281 +3269 1100 958 1237 1359 +3270 159 36 1114 1343 +3271 1166 1236 1043 1474 +3272 1049 1182 995 1214 +3273 1043 1244 1083 1245 +3274 727 371 571 1152 +3275 971 1204 1110 1328 +3276 175 167 176 1359 +3277 1003 1166 1346 1394 +3278 444 1083 694 1468 +3279 949 1278 1115 1385 +3280 739 253 813 1125 +3281 672 668 676 1225 +3282 875 83 1193 1461 +3283 1236 1323 972 1371 +3284 457 458 1367 1433 +3285 662 1229 664 1394 +3286 580 584 579 1413 +3287 543 360 832 1151 +3288 662 1166 664 1229 +3289 841 833 447 1163 +3290 90 1085 1259 1307 +3291 907 538 882 1043 +3292 573 727 571 1152 +3293 1069 1258 978 1370 +3294 1091 1250 1000 1445 +3295 290 692 763 1136 +3296 780 488 1316 1429 +3297 836 596 463 1078 +3298 537 907 694 1245 +3299 182 1301 1070 1419 +3300 599 489 1197 1336 +3301 1210 1303 1029 1467 +3302 1011 1331 1103 1452 +3303 659 660 235 1243 +3304 520 1279 860 1382 +3305 444 694 442 1468 +3306 971 1328 1110 1404 +3307 989 1218 1053 1288 +3308 263 644 645 1287 +3309 312 1111 1344 1438 +3310 977 1168 1078 1350 +3311 1044 1258 1069 1370 +3312 1057 966 1184 1260 +3313 1011 1261 1139 1421 +3314 1064 1131 1124 1332 +3315 1059 956 1123 1473 +3316 870 852 916 1171 +3317 680 776 216 1093 +3318 964 1261 1128 1271 +3319 184 1222 183 1301 +3320 324 297 298 1224 +3321 849 857 583 1364 +3322 54 55 155 1200 +3323 613 496 614 1216 +3324 664 1229 1166 1394 +3325 957 1370 1069 1458 +3326 116 1210 1186 1294 +3327 293 1389 1094 1463 +3328 1229 1346 1166 1394 +3329 1039 1306 1185 1471 +3330 39 38 115 1435 +3331 1086 1146 983 1417 +3332 142 1180 1286 1467 +3333 418 422 597 1231 +3334 1202 1341 1017 1441 +3335 1042 1175 1360 1368 +3336 439 440 438 1135 +3337 965 1097 1308 1379 +3338 441 1135 833 1298 +3339 124 895 588 1050 +3340 1144 1347 786 1484 +3341 963 1186 1054 1210 +3342 39 160 38 1435 +3343 1093 998 1460 1477 +3344 503 803 1173 1279 +3345 983 1211 1052 1342 +3346 987 1327 1137 1473 +3347 567 790 361 1472 +3348 402 802 391 1119 +3349 716 1060 1300 1484 +3350 1076 1213 922 1432 +3351 1172 1194 1037 1369 +3352 713 1099 798 1302 +3353 389 501 500 1057 +3354 991 1069 1191 1458 +3355 910 1171 879 1200 +3356 1006 1134 1095 1406 +3357 186 1070 1313 1419 +3358 1029 1266 1084 1303 +3359 780 1316 1072 1429 +3360 255 813 253 1188 +3361 1025 1194 1172 1369 +3362 1121 1263 948 1311 +3363 1004 1075 1254 1435 +3364 665 465 425 1079 +3365 1088 1015 1311 1472 +3366 1095 1134 1037 1406 +3367 590 1118 212 1423 +3368 311 1344 1258 1438 +3369 667 1250 289 1445 +3370 695 433 431 1174 +3371 618 1295 619 1341 +3372 1145 980 1358 1399 +3373 284 283 1220 1454 +3374 184 185 183 1222 +3375 1002 1246 1126 1340 +3376 1004 1244 1254 1408 +3377 701 1224 628 1483 +3378 980 1178 1092 1307 +3379 382 339 1365 1409 +3380 999 1110 1217 1434 +3381 963 1054 1186 1356 +3382 339 1230 381 1365 +3383 558 559 563 1365 +3384 486 526 867 1108 +3385 949 1385 1232 1465 +3386 357 1357 370 1364 +3387 773 1067 143 1414 +3388 525 1148 404 1239 +3389 1047 1187 1033 1299 +3390 604 1162 192 1469 +3391 1150 1175 993 1360 +3392 1074 1164 961 1312 +3393 1012 1416 1109 1485 +3394 479 815 1451 1469 +3395 914 1169 796 1436 +3396 123 1064 884 1315 +3397 1072 1113 1001 1372 +3398 809 930 808 1436 +3399 984 1046 1248 1412 +3400 175 340 773 1277 +3401 1002 1127 1254 1367 +3402 994 1316 1198 1381 +3403 961 1227 1053 1312 +3404 977 1185 1306 1471 +3405 166 1131 49 1315 +3406 998 1314 1164 1439 +3407 413 726 1055 1443 +3408 355 395 319 1196 +3409 1060 991 1278 1385 +3410 1133 1025 1369 1466 +3411 806 1334 1304 1374 +3412 1027 1238 1217 1338 +3413 606 192 604 1162 +3414 1009 1048 1251 1264 +3415 711 342 232 1090 +3416 1092 1016 1307 1397 +3417 971 1204 1116 1399 +3418 954 1192 1217 1434 +3419 1071 1276 1124 1289 +3420 382 339 381 1365 +3421 609 777 1182 1257 +3422 178 1237 1063 1359 +3423 980 1116 1204 1399 +3424 395 686 685 1317 +3425 783 748 738 1100 +3426 106 875 83 1193 +3427 990 1162 1154 1419 +3428 403 367 400 1403 +3429 989 1124 1064 1410 +3430 317 685 323 1158 +3431 417 418 416 1130 +3432 844 126 28 1333 +3433 496 383 492 1216 +3434 608 1182 766 1373 +3435 965 1109 1248 1308 +3436 1049 1179 960 1305 +3437 1175 1368 1042 1447 +3438 1009 1264 1354 1442 +3439 987 1238 1106 1327 +3440 356 391 210 1119 +3441 1093 1325 771 1396 +3442 738 783 1100 1418 +3443 594 305 344 1366 +3444 1303 1321 1030 1412 +3445 889 1086 153 1422 +3446 1124 1276 1071 1470 +3447 1069 1370 1107 1449 +3448 1071 1276 1289 1470 +3449 887 510 1048 1450 +3450 1092 1358 1016 1443 +3451 300 1222 338 1230 +3452 696 1300 1187 1484 +3453 1007 1453 1318 1456 +3454 889 53 1086 1422 +3455 92 83 104 1193 +3456 953 1266 1261 1352 +3457 565 567 361 1392 +3458 981 1110 1252 1399 +3459 468 1105 522 1235 +3460 981 1145 1058 1231 +3461 963 1109 1176 1356 +3462 547 1071 1186 1470 +3463 700 1133 1208 1428 +3464 1004 1254 1075 1408 +3465 756 869 525 1239 +3466 960 1179 1122 1389 +3467 766 608 609 1182 +3468 983 1101 1240 1251 +3469 477 1074 590 1423 +3470 355 816 557 1159 +3471 1090 1317 1017 1441 +3472 968 1104 1265 1456 +3473 700 652 270 1428 +3474 1054 984 1356 1412 +3475 195 1255 190 1313 +3476 100 94 1259 1374 +3477 505 506 1325 1426 +3478 981 1055 1272 1434 +3479 986 1229 1140 1346 +3480 951 1406 1254 1408 +3481 1079 1195 1018 1361 +3482 1325 1382 1150 1426 +3483 300 185 338 1222 +3484 97 874 78 1178 +3485 117 902 753 1102 +3486 455 1165 424 1448 +3487 983 1086 1161 1215 +3488 1046 1201 1157 1407 +3489 554 1223 555 1400 +3490 492 384 493 1077 +3491 220 221 1201 1402 +3492 789 535 1092 1480 +3493 982 1167 1198 1274 +3494 815 1209 800 1451 +3495 184 703 185 1222 +3496 304 305 594 1366 +3497 320 232 342 1393 +3498 1064 1177 976 1221 +3499 989 1177 1064 1221 +3500 977 1282 1203 1306 +3501 721 1079 665 1309 +3502 841 1163 447 1380 +3503 773 614 745 1067 +3504 725 726 1334 1443 +3505 493 793 792 1280 +3506 1086 983 1161 1417 +3507 1094 1220 283 1454 +3508 127 527 1084 1367 +3509 1111 978 1258 1438 +3510 697 427 465 1384 +3511 969 1075 1127 1254 +3512 1027 1179 1049 1305 +3513 848 1181 24 1459 +3514 1109 1256 1207 1479 +3515 960 1214 1049 1305 +3516 978 1111 1091 1438 +3517 586 895 507 1448 +3518 825 172 634 1449 +3519 720 1062 1257 1446 +3520 986 1047 1262 1380 +3521 780 195 774 1072 +3522 1140 1229 1022 1346 +3523 232 335 711 1090 +3524 971 1252 1080 1404 +3525 599 1336 1197 1402 +3526 1059 999 1217 1338 +3527 648 445 452 1246 +3528 970 1205 1098 1306 +3529 1111 1191 991 1344 +3530 981 1358 1055 1434 +3531 1087 992 1328 1364 +3532 48 49 166 1131 +3533 258 1088 262 1472 +3534 954 1110 1217 1404 +3535 897 30 124 1050 +3536 1059 1123 1228 1473 +3537 963 1067 1207 1387 +3538 1376 1460 1118 1462 +3539 1047 1323 1163 1380 +3540 665 1165 421 1309 +3541 518 517 523 1116 +3542 869 809 808 1436 +3543 26 135 1080 1320 +3544 962 1191 1115 1278 +3545 1167 1198 301 1426 +3546 1048 1152 1009 1450 +3547 979 1362 1068 1411 +3548 718 698 763 1185 +3549 927 1175 933 1368 +3550 980 1348 1145 1480 +3551 426 424 425 1384 +3552 966 1101 1170 1215 +3553 250 1219 1136 1431 +3554 274 278 273 1452 +3555 312 363 719 1111 +3556 234 673 659 1243 +3557 972 1163 1135 1298 +3558 961 1164 1314 1439 +3559 626 356 211 1415 +3560 990 1301 1222 1419 +3561 135 591 892 1235 +3562 589 1078 902 1456 +3563 904 1084 528 1467 +3564 965 1109 1308 1479 +3565 981 1145 1092 1358 +3566 99 107 102 1330 +3567 1010 1124 1131 1332 +3568 1057 1325 501 1382 +3569 993 1360 1175 1368 +3570 305 213 331 1184 +3571 1000 1133 1369 1466 +3572 465 425 1079 1384 +3573 144 1181 25 1459 +3574 135 892 27 1080 +3575 554 560 555 1223 +3576 1113 1211 1052 1240 +3577 283 293 1094 1454 +3578 551 751 129 1066 +3579 863 390 1137 1327 +3580 156 850 851 1193 +3581 958 1285 1096 1354 +3582 879 1171 155 1200 +3583 1296 1403 996 1482 +3584 972 1298 1135 1468 +3585 554 1151 393 1223 +3586 984 1197 1402 1407 +3587 1038 1190 1256 1378 +3588 952 1240 1101 1251 +3589 1074 1118 976 1310 +3590 1070 990 1285 1419 +3591 986 1166 1229 1346 +3592 135 890 1235 1320 +3593 198 818 301 1198 +3594 122 733 775 1138 +3595 973 1314 1141 1388 +3596 1086 1161 975 1422 +3597 1183 1336 564 1402 +3598 795 794 699 1132 +3599 976 1118 1074 1423 +3600 842 1142 474 1403 +3601 1175 1360 1150 1383 +3602 948 1205 1203 1395 +3603 982 1167 1093 1325 +3604 368 352 820 1249 +3605 1117 1268 990 1285 +3606 1003 1346 1166 1474 +3607 1069 1370 1191 1458 +3608 109 107 95 1363 +3609 974 1189 1050 1337 +3610 586 587 588 1453 +3611 48 49 1131 1315 +3612 764 273 731 1103 +3613 109 1160 1330 1363 +3614 363 1111 312 1438 +3615 1063 1268 1034 1277 +3616 1092 1307 1178 1397 +3617 350 353 758 1113 +3618 881 1092 535 1397 +3619 318 1158 317 1478 +3620 185 491 338 1222 +3621 900 1127 524 1367 +3622 1047 986 1262 1323 +3623 910 941 936 1171 +3624 983 1146 1081 1417 +3625 1054 1183 984 1336 +3626 32 1265 1104 1456 +3627 576 908 891 1148 +3628 1001 1237 1070 1372 +3629 952 1251 1101 1326 +3630 173 795 699 1180 +3631 1055 1272 1092 1358 +3632 1121 1291 974 1375 +3633 599 1197 222 1402 +3634 1069 1258 326 1344 +3635 633 794 632 1297 +3636 302 827 785 1198 +3637 726 806 1334 1443 +3638 869 502 809 1349 +3639 740 698 697 1195 +3640 733 165 174 1393 +3641 1053 1227 1119 1312 +3642 492 384 1077 1409 +3643 550 551 150 1351 +3644 954 1217 1296 1404 +3645 353 1319 482 1429 +3646 796 1169 858 1436 +3647 1005 1077 1147 1352 +3648 1175 1383 840 1447 +3649 1058 1235 1020 1440 +3650 382 1147 710 1409 +3651 354 355 319 1196 +3652 995 1182 1049 1257 +3653 362 280 660 1139 +3654 680 1093 216 1460 +3655 636 830 623 1069 +3656 632 701 629 1483 +3657 1022 1262 1140 1346 +3658 1063 1268 990 1301 +3659 842 1333 1142 1403 +3660 959 1121 1214 1361 +3661 788 1405 1145 1480 +3662 275 1389 293 1463 +3663 318 354 1196 1362 +3664 1089 1121 960 1214 +3665 55 879 155 1200 +3666 1074 1177 976 1423 +3667 1020 1231 1058 1440 +3668 1058 1145 981 1399 +3669 788 1145 533 1480 +3670 851 875 106 1193 +3671 983 1211 1081 1240 +3672 1304 1334 1016 1374 +3673 875 136 83 1461 +3674 572 571 510 1450 +3675 89 90 87 1085 +3676 978 1095 1258 1438 +3677 1103 1331 1046 1455 +3678 1087 1357 987 1404 +3679 89 90 1085 1259 +3680 319 395 685 1196 +3681 564 1183 471 1336 +3682 314 1111 719 1339 +3683 785 530 838 1383 +3684 1071 1186 963 1294 +3685 809 872 1173 1349 +3686 1105 959 1165 1448 +3687 985 1195 1079 1361 +3688 161 169 120 1390 +3689 986 1163 1323 1380 +3690 643 263 223 1197 +3691 953 1128 1261 1266 +3692 984 1402 1201 1407 +3693 826 768 834 1161 +3694 1147 1308 1024 1352 +3695 332 212 1253 1423 +3696 584 1181 144 1234 +3697 1003 1232 1051 1295 +3698 1218 1276 1021 1289 +3699 1081 1211 983 1417 +3700 1186 1210 963 1294 +3701 335 711 1090 1441 +3702 810 912 945 1267 +3703 1041 1403 1296 1482 +3704 996 1296 1242 1403 +3705 788 533 1405 1480 +3706 292 295 284 1106 +3707 715 141 1107 1343 +3708 165 1265 33 1273 +3709 499 498 365 1362 +3710 498 787 814 1355 +3711 965 1046 1248 1416 +3712 260 609 777 1182 +3713 210 1209 625 1312 +3714 901 45 116 1294 +3715 1218 1021 1288 1289 +3716 960 1121 1089 1375 +3717 382 1365 1147 1409 +3718 538 569 882 1043 +3719 961 1065 1314 1377 +3720 849 1364 583 1461 +3721 699 1132 794 1390 +3722 878 150 551 1351 +3723 905 588 587 1318 +3724 27 26 135 1080 +3725 211 206 214 1312 +3726 1024 1352 1308 1421 +3727 527 460 469 1433 +3728 503 1173 872 1349 +3729 520 1175 807 1279 +3730 1032 1376 1118 1462 +3731 188 190 189 1313 +3732 802 391 1119 1451 +3733 764 1103 731 1455 +3734 1068 1355 970 1411 +3735 433 453 435 1174 +3736 922 1213 1076 1281 +3737 602 1141 200 1439 +3738 788 779 519 1145 +3739 521 840 861 1383 +3740 974 1151 1223 1375 +3741 789 535 824 1092 +3742 32 1104 31 1318 +3743 963 1210 1149 1294 +3744 164 1295 1061 1476 +3745 874 139 78 1348 +3746 667 289 674 1445 +3747 477 601 590 1074 +3748 315 316 1158 1339 +3749 301 1198 818 1426 +3750 270 1082 242 1428 +3751 984 1248 1046 1416 +3752 632 629 1297 1483 +3753 667 241 289 1250 +3754 558 1147 382 1365 +3755 1049 1192 995 1257 +3756 825 1107 172 1449 +3757 270 655 242 1082 +3758 577 153 889 1086 +3759 951 1254 1226 1340 +3760 236 237 1444 1466 +3761 175 773 734 1414 +3762 273 278 731 1103 +3763 780 1072 774 1429 +3764 1021 1071 1186 1387 +3765 746 793 173 1280 +3766 965 1308 1248 1421 +3767 503 860 1279 1382 +3768 1202 1232 991 1385 +3769 1074 1164 1118 1310 +3770 986 1135 1163 1380 +3771 143 1067 1294 1414 +3772 1021 1186 1071 1470 +3773 89 1085 87 1391 +3774 1048 1247 966 1326 +3775 998 1310 1164 1314 +3776 737 1341 759 1441 +3777 751 406 470 1334 +3778 190 1255 191 1388 +3779 725 413 726 1055 +3780 975 1148 1086 1422 +3781 481 770 767 1338 +3782 317 315 316 1158 +3783 525 858 404 1148 +3784 1081 1146 983 1251 +3785 884 123 593 1064 +3786 974 1142 1189 1337 +3787 544 1276 476 1470 +3788 1117 1335 1227 1377 +3789 997 1189 1142 1337 +3790 1133 1000 1275 1428 +3791 510 570 380 1366 +3792 469 467 906 1054 +3793 968 1273 1090 1465 +3794 953 1321 1303 1412 +3795 487 1381 485 1457 +3796 1045 1198 1167 1274 +3797 406 408 470 1123 +3798 989 1276 1218 1289 +3799 874 84 78 139 +3800 989 1221 1064 1332 +3801 32 733 31 1104 +3802 623 636 1069 1449 +3803 589 905 1453 1456 +3804 989 1218 1288 1289 +3805 586 585 1120 1448 +3806 52 134 889 1146 +3807 1125 1188 1015 1263 +3808 353 482 758 1429 +3809 1096 1322 952 1354 +3810 925 928 942 1213 +3811 1262 1380 1047 1420 +3812 505 819 506 1426 +3813 953 1308 1352 1421 +3814 964 1324 1134 1475 +3815 590 208 212 1118 +3816 1055 981 1272 1358 +3817 586 1120 464 1453 +3818 1012 1415 1119 1437 +3819 1115 1262 986 1323 +3820 690 453 695 1174 +3821 1005 1147 1129 1352 +3822 726 866 806 1443 +3823 1120 1206 959 1361 +3824 1119 1209 1014 1451 +3825 100 1259 91 1351 +3826 41 1286 142 1390 +3827 177 600 179 1237 +3828 964 1271 1226 1406 +3829 953 1261 1321 1421 +3830 50 738 1315 1418 +3831 272 762 722 1195 +3832 311 1258 309 1438 +3833 731 1103 278 1379 +3834 840 1175 861 1383 +3835 195 781 190 1255 +3836 1232 1385 1017 1465 +3837 85 1153 86 1391 +3838 986 1166 1346 1474 +3839 1002 1127 1245 1254 +3840 688 1140 689 1420 +3841 959 1089 1121 1337 +3842 99 1330 102 1351 +3843 554 543 393 1151 +3844 561 555 474 1142 +3845 641 475 1218 1401 +3846 725 1055 726 1443 +3847 975 1200 1171 1432 +3848 972 1163 1082 1323 +3849 96 90 1259 1307 +3850 208 209 1118 1460 +3851 365 318 732 1478 +3852 964 1172 1139 1324 +3853 345 602 200 1439 +3854 973 1154 1065 1388 +3855 690 1174 695 1353 +3856 987 1137 1328 1473 +3857 982 1167 1325 1426 +3858 922 1281 1076 1368 +3859 1084 1030 1233 1433 +3860 589 596 902 1078 +3861 1146 1251 1009 1450 +3862 970 1144 1219 1269 +3863 814 739 567 1355 +3864 953 1321 1412 1421 +3865 1018 1361 1120 1384 +3866 843 760 368 1249 +3867 256 254 272 1188 +3868 681 661 639 1143 +3869 1062 1257 1192 1345 +3870 987 1328 1087 1404 +3871 973 1065 1314 1388 +3872 1060 1347 778 1478 +3873 142 1286 42 1467 +3874 102 873 82 1351 +3875 420 616 422 1231 +3876 955 1170 1101 1215 +3877 34 33 117 1265 +3878 231 235 230 1452 +3879 948 1203 1205 1306 +3880 839 1178 131 1397 +3881 948 1205 1263 1306 +3882 1096 1264 976 1442 +3883 958 1064 1221 1332 +3884 224 666 627 1201 +3885 346 348 497 1372 +3886 1024 1129 1147 1352 +3887 37 159 36 1114 +3888 999 1217 1192 1434 +3889 994 1316 1381 1429 +3890 419 420 418 1130 +3891 968 1241 1061 1465 +3892 203 1164 202 1439 +3893 974 1189 1142 1400 +3894 939 936 916 1171 +3895 1039 1188 1125 1263 +3896 987 1242 1106 1296 +3897 639 233 229 1143 +3898 1024 1261 1129 1352 +3899 166 49 738 1315 +3900 294 1094 293 1454 +3901 770 1199 772 1338 +3902 306 1134 286 1324 +3903 788 519 533 1145 +3904 426 1384 1120 1448 +3905 1092 1272 981 1358 +3906 870 707 852 1171 +3907 897 1050 588 1318 +3908 1106 1220 996 1454 +3909 481 1199 770 1338 +3910 1095 1134 1006 1483 +3911 578 603 815 1469 +3912 130 803 944 1173 +3913 789 1092 824 1405 +3914 475 553 640 1218 +3915 897 124 588 1050 +3916 472 539 544 1183 +3917 1124 1276 548 1410 +3918 256 766 260 1182 +3919 856 528 549 1210 +3920 901 116 547 1186 +3921 839 874 97 1178 +3922 437 1140 688 1380 +3923 964 1128 1261 1427 +3924 1140 1380 1262 1420 +3925 1058 1252 1080 1320 +3926 1062 1192 999 1345 +3927 422 779 788 1231 +3928 998 1164 1118 1460 +3929 973 1285 1096 1314 +3930 251 252 253 1125 +3931 1154 1313 1070 1419 +3932 1099 1119 1014 1451 +3933 487 785 827 1381 +3934 267 1122 1392 1472 +3935 989 1053 1218 1401 +3936 1138 1189 974 1400 +3937 561 474 842 1142 +3938 1072 1255 973 1322 +3939 1003 1061 1232 1295 +3940 203 204 202 1164 +3941 609 720 1257 1446 +3942 599 564 1336 1402 +3943 954 1217 1110 1434 +3944 1112 1275 1000 1371 +3945 468 522 591 1235 +3946 921 922 1213 1432 +3947 382 558 710 1147 +3948 506 1150 520 1382 +3949 1018 1206 1120 1361 +3950 1084 1286 1180 1467 +3951 596 589 463 1078 +3952 969 1286 1127 1390 +3953 396 1156 687 1317 +3954 883 664 1166 1394 +3955 1012 1119 1099 1437 +3956 557 556 396 1156 +3957 1118 1253 1032 1462 +3958 904 1286 1084 1467 +3959 1143 1212 661 1444 +3960 1133 1275 1000 1369 +3961 267 1122 277 1392 +3962 315 313 1339 1481 +3963 800 815 345 1209 +3964 970 1219 1144 1431 +3965 991 1339 1158 1385 +3966 1164 1310 961 1314 +3967 585 464 586 1120 +3968 969 1084 1233 1286 +3969 573 123 884 1315 +3970 512 536 537 1245 +3971 1038 1335 1162 1378 +3972 50 51 125 1418 +3973 760 484 369 1319 +3974 1234 1320 971 1459 +3975 251 252 1125 1431 +3976 397 1211 349 1386 +3977 181 183 611 1301 +3978 656 654 841 1163 +3979 180 182 181 1301 +3980 487 1056 1381 1457 +3981 997 1089 1337 1482 +3982 767 341 757 1238 +3983 300 183 185 1222 +3984 477 590 642 1423 +3985 1142 1403 1333 1482 +3986 367 330 366 1242 +3987 1021 1183 1155 1485 +3988 613 610 496 1216 +3989 1227 1335 1014 1377 +3990 366 1242 330 1357 +3991 701 324 628 1224 +3992 756 502 869 1349 +3993 968 1273 1104 1393 +3994 599 489 643 1197 +3995 964 1172 1324 1475 +3996 1024 1261 1352 1421 +3997 322 1190 713 1302 +3998 318 317 316 1478 +3999 537 538 907 1245 +4000 930 130 944 1173 +4001 406 1123 470 1334 +4002 994 1381 1319 1429 +4003 986 1140 1262 1346 +4004 1041 1242 1296 1403 +4005 981 1272 1062 1434 +4006 1073 1287 967 1321 +4007 1081 983 1240 1251 +4008 950 1227 1117 1335 +4009 969 1127 1286 1367 +4010 1129 1139 964 1261 +4011 1024 1139 1129 1261 +4012 314 719 364 1339 +4013 313 1344 1339 1481 +4014 549 1186 116 1210 +4015 602 194 197 1141 +4016 783 600 748 1100 +4017 978 1091 1225 1438 +4018 364 1339 1060 1478 +4019 954 1270 1089 1305 +4020 1093 1396 216 1462 +4021 1080 1252 1235 1424 +4022 989 1064 1177 1410 +4023 313 314 1339 1344 +4024 251 1125 739 1355 +4025 426 1120 585 1448 +4026 528 1210 43 1467 +4027 331 373 343 1184 +4028 789 1092 1405 1480 +4029 1171 1200 975 1422 +4030 437 435 688 1140 +4031 522 507 895 1105 +4032 463 589 595 1453 +4033 925 936 921 1213 +4034 923 929 1368 1430 +4035 238 1444 1133 1466 +4036 239 240 241 1428 +4037 666 683 478 1437 +4038 1194 1369 1025 1466 +4039 1157 1201 1046 1416 +4040 810 945 133 1267 +4041 640 641 475 1218 +4042 1041 1087 1234 1404 +4043 1067 1277 1010 1414 +4044 1172 1243 1025 1427 +4045 1106 1217 1027 1238 +4046 934 807 1175 1279 +4047 951 1254 1244 1408 +4048 1095 1329 1006 1406 +4049 142 1286 1180 1390 +4050 998 1118 1164 1310 +4051 362 1324 1172 1475 +4052 968 1090 1273 1393 +4053 542 324 540 1224 +4054 1218 1288 1155 1415 +4055 666 1157 683 1437 +4056 446 444 445 1246 +4057 970 1144 1355 1431 +4058 507 468 455 1105 +4059 284 592 283 1454 +4060 311 309 310 1438 +4061 1102 1394 752 1476 +4062 708 864 810 1283 +4063 283 294 293 1454 +4064 295 296 284 1106 +4065 505 1325 819 1426 +4066 548 593 1124 1410 +4067 972 1244 1112 1275 +4068 1134 1324 306 1475 +4069 642 1177 398 1401 +4070 824 535 881 1092 +4071 1147 1365 988 1409 +4072 963 1149 1067 1294 +4073 1152 1264 1253 1366 +4074 884 593 508 1410 +4075 355 396 395 1317 +4076 119 162 43 1467 +4077 962 1091 1250 1371 +4078 426 464 585 1120 +4079 1048 1009 1251 1450 +4080 665 721 465 1079 +4081 356 626 478 1437 +4082 968 1265 1104 1273 +4083 1073 1197 1030 1412 +4084 668 674 676 1445 +4085 954 1110 1252 1290 +4086 1160 1364 992 1461 +4087 931 1169 919 1200 +4088 317 1158 316 1478 +4089 981 1062 1290 1434 +4090 318 354 319 1196 +4091 1053 1288 1218 1415 +4092 236 1444 238 1466 +4093 1000 1445 1428 1466 +4094 1093 1460 1376 1462 +4095 297 299 285 1129 +4096 419 1130 417 1309 +4097 1012 1201 1155 1415 +4098 758 348 350 1113 +4099 981 1145 1358 1399 +4100 602 194 1141 1388 +4101 866 1397 1304 1443 +4102 743 448 824 1272 +4103 790 813 258 1472 +4104 1183 1186 1021 1470 +4105 212 1118 209 1462 +4106 1067 1207 1034 1216 +4107 980 1092 1178 1480 +4108 980 1145 1092 1480 +4109 312 719 314 1111 +4110 918 919 1169 1432 +4111 1158 1196 1008 1478 +4112 320 775 174 1393 +4113 733 32 165 1104 +4114 669 671 670 1172 +4115 615 1122 268 1389 +4116 954 1110 1290 1434 +4117 332 1253 334 1423 +4118 1079 1195 985 1373 +4119 965 1302 1103 1455 +4120 982 1325 1150 1426 +4121 350 349 351 1211 +4122 968 1203 1098 1395 +4123 963 1186 1071 1387 +4124 160 736 1284 1435 +4125 952 1274 1322 1398 +4126 422 1231 788 1405 +4127 1103 1302 731 1455 +4128 782 838 521 1150 +4129 722 1195 740 1373 +4130 391 1209 1119 1451 +4131 641 1218 217 1401 +4132 1096 1314 1310 1398 +4133 961 1117 1227 1377 +4134 1055 1334 1016 1443 +4135 1092 1145 981 1405 +4136 161 41 142 1390 +4137 1177 1401 989 1410 +4138 745 791 168 1149 +4139 1003 1166 1114 1474 +4140 915 938 871 1447 +4141 202 1164 204 1439 +4142 334 332 333 1253 +4143 167 166 748 1359 +4144 402 391 356 1119 +4145 288 684 683 1157 +4146 138 914 796 1436 +4147 1181 1234 971 1459 +4148 150 552 550 1351 +4149 964 1139 1129 1324 +4150 1177 1401 642 1423 +4151 660 1139 274 1452 +4152 178 177 1237 1359 +4153 981 1290 1110 1434 +4154 1038 1222 1162 1335 +4155 587 1318 588 1453 +4156 747 327 295 1327 +4157 953 1248 1176 1308 +4158 1059 1217 1238 1338 +4159 1262 1299 1019 1420 +4160 881 535 1178 1397 +4161 987 1106 1217 1296 +4162 1143 1243 1025 1444 +4163 962 1250 1091 1300 +4164 919 1200 1169 1432 +4165 200 1141 197 1477 +4166 653 833 841 1163 +4167 475 476 553 1276 +4168 980 1145 1116 1399 +4169 964 1128 1226 1271 +4170 78 85 93 1178 +4171 1137 1328 992 1364 +4172 453 688 435 1140 +4173 865 1160 104 1461 +4174 287 1133 238 1444 +4175 824 1092 1397 1443 +4176 605 1162 604 1378 +4177 30 735 29 1189 +4178 32 1104 1318 1456 +4179 208 209 212 1118 +4180 1044 1329 1370 1408 +4181 262 265 266 1179 +4182 786 1144 787 1347 +4183 460 466 467 1336 +4184 998 1310 1314 1398 +4185 972 1323 1082 1371 +4186 240 270 242 1428 +4187 322 337 713 1190 +4188 943 910 55 1200 +4189 217 640 218 1218 +4190 752 34 117 1102 +4191 1008 1385 1158 1478 +4192 1378 1451 1014 1469 +4193 722 740 721 1373 +4194 362 1172 671 1475 +4195 248 724 250 1219 +4196 660 280 274 1139 +4197 50 886 51 1450 +4198 1001 1322 1072 1372 +4199 547 148 1071 1470 +4200 160 120 736 1435 +4201 949 1269 1098 1282 +4202 309 325 307 1095 +4203 953 1261 1128 1321 +4204 417 1309 1130 1446 +4205 821 277 615 1463 +4206 700 287 651 1133 +4207 640 217 641 1218 +4208 288 684 1157 1455 +4209 615 1122 1389 1463 +4210 961 1164 1074 1310 +4211 949 1262 1115 1278 +4212 1183 1402 1155 1485 +4213 185 703 491 1222 +4214 985 1214 1121 1361 +4215 1263 1306 1039 1471 +4216 315 1339 1158 1481 +4217 831 691 1299 1420 +4218 1041 1333 1403 1482 +4219 343 373 756 1239 +4220 243 245 696 1187 +4221 1037 1369 1329 1406 +4222 356 402 1119 1437 +4223 1064 1221 976 1442 +4224 507 1105 455 1448 +4225 371 570 571 1152 +4226 971 1252 1058 1320 +4227 1061 1241 1232 1465 +4228 299 558 563 1147 +4229 46 148 47 1414 +4230 967 1233 1128 1321 +4231 168 791 792 1149 +4232 1089 1270 1214 1305 +4233 862 1153 797 1348 +4234 995 1192 1062 1257 +4235 1125 1355 251 1431 +4236 770 407 379 1338 +4237 737 618 759 1341 +4238 275 269 1220 1389 +4239 1037 1329 1095 1406 +4240 430 428 429 1168 +4241 1073 1030 1321 1412 +4242 501 1325 505 1382 +4243 1141 1314 1065 1388 +4244 621 624 622 1202 +4245 554 1151 1223 1400 +4246 913 929 1173 1279 +4247 1017 1232 1202 1385 +4248 276 275 269 1220 +4249 718 695 454 1353 +4250 998 1141 1314 1439 +4251 812 857 863 1137 +4252 922 928 1213 1281 +4253 1162 1335 1014 1378 +4254 1006 1406 1329 1408 +4255 942 937 925 1283 +4256 984 1356 1109 1485 +4257 898 146 752 1394 +4258 193 1255 781 1316 +4259 731 1302 1103 1379 +4260 49 50 738 1315 +4261 718 454 1185 1353 +4262 979 1196 1362 1411 +4263 1162 1222 990 1335 +4264 1033 1219 1144 1269 +4265 1042 1360 1175 1383 +4266 979 1098 1205 1395 +4267 357 327 370 1357 +4268 852 879 939 1171 +4269 627 626 219 1415 +4270 982 1260 1057 1325 +4271 315 313 314 1339 +4272 525 404 375 1239 +4273 910 936 939 1171 +4274 1061 1017 1232 1341 +4275 709 306 1324 1475 +4276 948 1206 1121 1291 +4277 385 605 604 1378 +4278 803 946 913 1279 +4279 441 439 833 1135 +4280 615 277 268 1122 +4281 838 521 1150 1383 +4282 959 1206 1121 1361 +4283 1107 1370 1044 1449 +4284 1118 1376 998 1460 +4285 1020 1105 1235 1424 +4286 1066 1228 1026 1351 +4287 970 1144 1269 1411 +4288 1053 1012 1288 1415 +4289 824 1092 881 1397 +4290 969 1286 1233 1367 +4291 1101 1240 952 1274 +4292 23 880 77 1425 +4293 369 482 353 1319 +4294 144 848 25 1181 +4295 1047 1299 1262 1420 +4296 328 769 772 1199 +4297 786 728 787 1144 +4298 617 1167 301 1426 +4299 180 179 346 1237 +4300 1062 1192 1290 1434 +4301 393 562 1223 1454 +4302 31 30 897 1318 +4303 1017 1202 1158 1385 +4304 597 1231 422 1405 +4305 941 1200 919 1432 +4306 1085 980 1307 1391 +4307 202 1439 200 1477 +4308 609 607 720 1446 +4309 193 781 822 1316 +4310 236 234 233 1444 +4311 128 1175 840 1447 +4312 965 1157 1302 1455 +4313 173 793 795 1280 +4314 603 192 191 1388 +4315 1288 1387 1021 1485 +4316 450 449 657 1126 +4317 584 850 1181 1413 +4318 282 286 285 1324 +4319 709 306 286 1324 +4320 826 1342 817 1417 +4321 923 1076 920 1430 +4322 1002 1233 1126 1367 +4323 1127 1254 1075 1435 +4324 809 130 930 1173 +4325 189 606 187 1154 +4326 958 1221 1064 1442 +4327 617 301 819 1426 +4328 920 1076 922 1432 +4329 976 1096 1221 1310 +4330 1141 1065 1314 1439 +4331 204 1164 206 1312 +4332 1106 1242 996 1296 +4333 965 1157 1099 1302 +4334 554 401 360 1151 +4335 448 789 824 1405 +4336 599 564 471 1336 +4337 393 1223 294 1454 +4338 949 1232 1241 1465 +4339 519 533 1145 1480 +4340 832 687 396 1156 +4341 969 1128 1233 1266 +4342 223 222 643 1197 +4343 1258 1344 1111 1438 +4344 1156 1159 1013 1293 +4345 1000 1369 1194 1466 +4346 267 1392 361 1472 +4347 979 1159 1156 1293 +4348 1006 1297 1075 1408 +4349 82 873 150 1351 +4350 479 578 815 1469 +4351 377 1364 581 1413 +4352 981 1110 1358 1434 +4353 1035 1208 1133 1275 +4354 782 1150 506 1426 +4355 948 1293 1205 1395 +4356 971 1116 1320 1399 +4357 1066 1259 1016 1374 +4358 721 665 451 1309 +4359 44 1210 116 1294 +4360 953 1352 1261 1421 +4361 979 1205 1098 1411 +4362 965 1190 1099 1256 +4363 506 521 520 1150 +4364 277 1122 615 1463 +4365 806 1304 151 1374 +4366 306 298 286 1134 +4367 377 581 580 1413 +4368 967 1321 1128 1427 +4369 1269 1278 949 1385 +4370 976 1253 1152 1264 +4371 970 1098 1205 1411 +4372 971 1080 1252 1320 +4373 971 1234 1087 1404 +4374 486 487 485 1457 +4375 923 922 1076 1368 +4376 340 175 176 1277 +4377 520 861 807 1175 +4378 199 198 301 1167 +4379 55 910 879 1200 +4380 853 908 157 1200 +4381 968 1061 1273 1465 +4382 987 1217 1110 1404 +4383 1062 999 1192 1434 +4384 881 1178 839 1397 +4385 548 546 1276 1470 +4386 971 1320 1058 1399 +4387 562 592 730 1454 +4388 306 307 298 1134 +4389 784 749 817 1417 +4390 145 53 768 1161 +4391 307 1095 325 1483 +4392 1055 1358 1092 1443 +4393 948 1306 1263 1471 +4394 968 1090 1395 1465 +4395 909 933 927 1175 +4396 1008 1269 1144 1411 +4397 1134 1224 1006 1483 +4398 1142 1333 997 1482 +4399 662 664 663 1394 +4400 405 551 550 1228 +4401 83 136 104 1461 +4402 170 1295 121 1343 +4403 946 152 934 1279 +4404 1097 965 1190 1379 +4405 373 502 756 1349 +4406 1097 988 1308 1365 +4407 971 1181 1087 1234 +4408 955 1360 1056 1464 +4409 856 549 116 1210 +4410 1058 1320 1116 1399 +4411 34 1102 752 1476 +4412 715 141 172 1107 +4413 949 1098 1241 1282 +4414 1084 1233 1286 1367 +4415 370 1137 857 1364 +4416 1142 1223 974 1400 +4417 582 875 1193 1461 +4418 854 158 1153 1425 +4419 845 574 846 1234 +4420 954 1252 1110 1404 +4421 209 1118 1460 1462 +4422 1122 1311 1015 1472 +4423 957 1191 1112 1370 +4424 1175 1279 993 1368 +4425 48 123 49 1315 +4426 990 1285 1154 1377 +4427 462 663 888 1394 +4428 957 1191 1370 1458 +4429 526 484 760 1108 +4430 401 1151 554 1400 +4431 1076 920 1430 1432 +4432 678 830 326 1344 +4433 789 1405 533 1480 +4434 1117 1268 950 1335 +4435 696 245 259 1484 +4436 643 222 599 1197 +4437 863 370 747 1137 +4438 777 411 769 1257 +4439 1176 1248 953 1356 +4440 1061 1017 1341 1441 +4441 451 1309 417 1446 +4442 965 1109 1256 1416 +4443 991 1385 1232 1458 +4444 221 627 219 1201 +4445 1152 1264 1009 1442 +4446 189 192 606 1154 +4447 201 202 200 1477 +4448 966 1260 1101 1326 +4449 527 528 904 1084 +4450 393 294 562 1454 +4451 1066 1016 1334 1374 +4452 1058 1252 971 1399 +4453 765 216 1396 1462 +4454 1115 1262 949 1346 +4455 469 906 549 1054 +4456 566 821 1159 1392 +4457 1197 1336 984 1402 +4458 688 1380 1140 1420 +4459 700 651 652 1208 +4460 376 344 375 1247 +4461 918 1430 1169 1436 +4462 236 287 238 1444 +4463 1033 1347 1144 1484 +4464 304 594 1253 1366 +4465 250 1136 290 1431 +4466 432 431 433 1350 +4467 954 1089 1270 1424 +4468 707 870 137 1283 +4469 826 1161 1342 1417 +4470 380 344 1247 1366 +4471 206 204 205 1164 +4472 1010 1268 1063 1277 +4473 684 1302 1157 1455 +4474 188 186 1313 1419 +4475 317 315 1158 1481 +4476 634 1284 633 1297 +4477 1154 1162 990 1377 +4478 512 457 511 1367 +4479 267 277 361 1392 +4480 165 1273 171 1393 +4481 881 535 839 1178 +4482 825 715 172 1107 +4483 200 197 199 1477 +4484 768 1161 53 1422 +4485 1084 1029 1303 1467 +4486 956 1204 1110 1358 +4487 753 752 1102 1394 +4488 679 664 662 1166 +4489 826 704 817 1342 +4490 127 1084 904 1286 +4491 193 191 190 1255 +4492 208 207 209 1460 +4493 1092 1272 1055 1443 +4494 641 398 475 1401 +4495 231 659 235 1243 +4496 984 1336 1197 1412 +4497 584 850 848 1181 +4498 1071 1289 1021 1470 +4499 511 457 458 1367 +4500 739 251 253 1125 +4501 210 625 204 1312 +4502 953 1248 1308 1421 +4503 846 584 144 1234 +4504 990 1070 1301 1419 +4505 351 704 374 1342 +4506 266 742 269 1179 +4507 50 885 886 1450 +4508 715 159 141 1343 +4509 1108 1381 1056 1457 +4510 1158 1202 991 1385 +4511 351 1211 704 1342 +4512 1124 1010 1289 1332 +4513 1116 1145 1058 1399 +4514 1054 1356 1303 1412 +4515 649 682 647 1212 +4516 653 841 654 1163 +4517 986 1262 1140 1380 +4518 600 598 347 1386 +4519 1176 953 1303 1356 +4520 922 920 923 1076 +4521 289 1250 696 1300 +4522 960 1089 1214 1305 +4523 616 779 1231 1440 +4524 724 290 250 1136 +4525 332 590 212 1423 +4526 534 874 1178 1348 +4527 130 503 803 1173 +4528 949 1241 1098 1465 +4529 1032 1253 1264 1366 +4530 950 1289 1288 1387 +4531 162 1180 142 1467 +4532 1112 1191 978 1370 +4533 1071 1294 1067 1414 +4534 151 1304 101 1374 +4535 682 661 681 1212 +4536 996 1220 1094 1454 +4537 101 151 113 1304 +4538 986 1262 1115 1346 +4539 425 424 421 1165 +4540 639 229 227 1331 +4541 1099 1157 1012 1437 +4542 1017 1061 1232 1465 +4543 598 397 349 1386 +4544 615 1389 275 1463 +4545 476 475 399 1276 +4546 953 1412 1248 1421 +4547 382 710 384 1409 +4548 909 933 1175 1447 +4549 228 288 226 1455 +4550 863 1137 747 1327 +4551 971 1234 1080 1320 +4552 988 1230 1216 1409 +4553 1180 1266 1029 1280 +4554 1061 1017 1441 1465 +4555 506 782 521 1150 +4556 264 239 1445 1466 +4557 531 529 149 1447 +4558 271 831 691 1299 +4559 25 848 24 1459 +4560 380 594 344 1366 +4561 581 1364 849 1461 +4562 511 527 1367 1433 +4563 1152 1048 1264 1366 +4564 787 1144 291 1355 +4565 954 1290 1192 1434 +4566 419 418 417 1130 +4567 954 1089 1424 1482 +4568 23 854 24 1425 +4569 1099 1190 965 1302 +4570 775 835 122 1138 +4571 1060 1008 1347 1478 +4572 413 414 743 1272 +4573 990 1268 1117 1335 +4574 511 1367 458 1433 +4575 333 304 594 1253 +4576 998 1314 1141 1398 +4577 670 671 362 1172 +4578 996 1403 1142 1482 +4579 1020 1231 1130 1290 +4580 970 1205 1068 1411 +4581 126 574 845 1333 +4582 925 937 916 1283 +4583 964 1226 1128 1427 +4584 333 1253 594 1366 +4585 979 1068 1205 1411 +4586 823 441 833 1298 +4587 250 290 252 1431 +4588 1162 1377 1154 1469 +4589 95 91 89 1363 +4590 266 1179 269 1389 +4591 956 1110 1204 1328 +4592 953 1308 1176 1352 +4593 995 1257 1062 1446 +4594 218 1155 219 1415 +4595 692 718 763 1353 +4596 322 336 1190 1379 +4597 238 1133 700 1428 +4598 986 1236 1166 1474 +4599 1056 1383 1360 1457 +4600 1042 1360 1383 1457 +4601 1003 1061 1295 1476 +4602 1097 1190 965 1479 +4603 924 1281 922 1368 +4604 517 896 523 1116 +4605 728 291 787 1144 +4606 853 1200 54 1422 +4607 967 1128 1226 1427 +4608 531 840 1383 1447 +4609 871 64 938 915 +4610 615 275 293 1463 +4611 725 726 806 1334 +4612 982 1198 1167 1426 +4613 137 916 937 1283 +4614 1094 1223 996 1454 +4615 341 292 757 1238 +4616 272 722 766 1373 +4617 913 929 944 1173 +4618 174 165 171 1393 +4619 918 920 919 1432 +4620 913 947 929 1279 +4621 439 437 447 1380 +4622 1252 1290 1020 1424 +4623 322 1190 1302 1379 +4624 1206 1361 1018 1471 +4625 220 1155 303 1402 +4626 383 496 610 1216 +4627 973 1096 1322 1398 +4628 268 277 267 1122 +4629 582 1193 850 1413 +4630 398 642 334 1177 +4631 708 1249 706 1283 +4632 1126 1233 1030 1433 +4633 193 191 1255 1388 +4634 680 201 617 1477 +4635 337 336 385 1190 +4636 987 1296 1217 1404 +4637 682 661 1212 1444 +4638 326 1258 311 1344 +4639 1071 1021 1289 1387 +4640 789 788 533 1405 +4641 862 532 518 1348 +4642 765 216 771 1396 +4643 23 77 110 1425 +4644 872 503 130 1173 +4645 741 1320 26 1459 +4646 962 1250 1082 1371 +4647 1110 1204 971 1399 +4648 552 132 855 1330 +4649 988 1365 1230 1409 +4650 623 620 825 1449 +4651 153 891 908 1422 +4652 403 842 474 1403 +4653 972 1275 1112 1371 +4654 903 548 1276 1410 +4655 976 1264 1152 1442 +4656 1038 1190 1097 1479 +4657 1116 1320 893 1459 +4658 984 1336 1183 1402 +4659 334 1177 642 1423 +4660 358 390 329 1327 +4661 278 279 321 1379 +4662 136 865 104 1461 +4663 246 271 248 1299 +4664 1032 1260 1093 1462 +4665 454 697 698 1185 +4666 1096 1221 958 1442 +4667 687 711 686 1317 +4668 816 566 821 1159 +4669 950 1109 1207 1387 +4670 1288 1289 1021 1387 +4671 987 1110 1328 1404 +4672 142 41 42 1286 +4673 800 1209 391 1451 +4674 150 873 552 1351 +4675 688 829 1380 1420 +4676 1204 1358 980 1399 +4677 973 1314 1096 1398 +4678 37 36 847 1114 +4679 1094 1389 1122 1463 +4680 259 728 786 1484 +4681 357 377 1357 1364 +4682 143 745 163 1294 +4683 684 713 798 1302 +4684 1101 1274 982 1464 +4685 441 440 1135 1468 +4686 337 1190 385 1378 +4687 263 225 223 1407 +4688 806 151 805 1374 +4689 918 926 1430 1436 +4690 749 1146 52 1417 +4691 366 357 377 1357 +4692 849 370 857 1364 +4693 826 145 1161 1417 +4694 730 1242 367 1403 +4695 1089 997 1424 1482 +4696 586 507 585 1448 +4697 245 244 246 1187 +4698 452 443 823 1298 +4699 834 852 707 1171 +4700 1145 1231 981 1405 +4701 316 1158 1339 1478 +4702 1184 1396 1032 1462 +4703 909 934 807 1175 +4704 973 1255 1072 1313 +4705 796 858 138 1436 +4706 573 885 123 1315 +4707 923 1368 1076 1430 +4708 111 97 93 1178 +4709 1018 1079 1361 1384 +4710 289 243 696 1250 +4711 984 1402 1183 1485 +4712 709 1324 362 1475 +4713 1110 981 1358 1399 +4714 317 1158 323 1481 +4715 1022 1346 1229 1394 +4716 81 158 98 1153 +4717 795 541 794 1132 +4718 1136 1219 970 1431 +4719 1003 1394 1102 1476 +4720 300 339 610 1230 +4721 178 177 179 1237 +4722 599 466 489 1336 +4723 578 192 603 1469 +4724 1190 1256 965 1479 +4725 735 561 844 1189 +4726 873 132 552 1330 +4727 583 1160 865 1461 +4728 1062 1345 999 1434 +4729 1072 1316 994 1429 +4730 148 546 548 1470 +4731 986 1236 1115 1323 +4732 238 287 700 1133 +4733 714 1225 363 1438 +4734 597 422 788 1405 +4735 138 73 914 917 +4736 1009 1315 1100 1418 +4737 1032 1396 1260 1462 +4738 1140 1262 1019 1420 +4739 284 283 276 1220 +4740 962 1082 1323 1371 +4741 976 1221 1096 1442 +4742 971 1252 1110 1399 +4743 386 578 479 1469 +4744 1260 1396 1093 1462 +4745 43 44 119 1210 +4746 673 264 669 1194 +4747 1038 1256 1190 1479 +4748 1139 1243 1011 1452 +4749 899 39 115 1435 +4750 1132 1180 969 1390 +4751 1169 1430 1031 1436 +4752 805 151 101 1374 +4753 755 188 186 1313 +4754 1155 1201 1012 1485 +4755 820 706 708 1249 +4756 326 636 635 1258 +4757 1030 1197 1336 1412 +4758 811 1160 812 1330 +4759 520 807 152 1279 +4760 184 187 703 1419 +4761 1057 1260 1184 1396 +4762 605 703 606 1162 +4763 176 177 178 1359 +4764 616 779 422 1231 +4765 868 1334 806 1374 +4766 853 153 908 1422 +4767 1115 986 1346 1474 +4768 387 337 386 1378 +4769 1021 1155 1218 1288 +4770 682 287 661 1444 +4771 25 1181 848 1459 +4772 935 915 63 801 +4773 1202 1232 1017 1341 +4774 463 1168 430 1350 +4775 965 1256 1109 1479 +4776 1329 1369 951 1406 +4777 1092 981 1272 1405 +4778 1155 1402 1201 1485 +4779 1126 1367 1233 1433 +4780 634 736 633 1284 +4781 1032 1184 1260 1396 +4782 630 629 325 1483 +4783 129 805 76 1374 +4784 893 896 1116 1459 +4785 922 928 925 1213 +4786 1141 1439 998 1477 +4787 1112 1244 951 1275 +4788 424 423 421 1165 +4789 216 1460 1093 1462 +4790 495 795 793 1280 +4791 968 1098 1241 1465 +4792 332 212 304 1253 +4793 403 1333 842 1403 +4794 1132 1224 1006 1271 +4795 1005 1224 1132 1271 +4796 1103 1302 965 1379 +4797 990 1335 1117 1377 +4798 329 292 341 1238 +4799 79 865 811 1160 +4800 963 1207 1109 1387 +4801 473 730 367 1403 +4802 990 1162 1335 1377 +4803 357 370 849 1364 +4804 889 153 53 1422 +4805 1014 1335 1162 1377 +4806 914 919 931 1169 +4807 233 1143 661 1444 +4808 1201 1402 984 1485 +4809 144 584 848 1181 +4810 481 772 770 1199 +4811 1155 1288 1012 1415 +4812 661 233 639 1143 +4813 291 251 1355 1431 +4814 807 128 909 1175 +4815 335 737 759 1441 +4816 664 569 883 1166 +4817 109 1160 79 1330 +4818 883 146 898 1394 +4819 200 1439 1141 1477 +4820 982 1093 1260 1325 +4821 158 523 854 1153 +4822 305 343 344 1184 +4823 984 1248 1109 1356 +4824 247 248 249 1219 +4825 526 486 484 1108 +4826 468 513 461 1235 +4827 408 409 410 1345 +4828 313 326 311 1344 +4829 906 472 545 1186 +4830 668 669 264 1194 +4831 811 857 812 1160 +4832 547 148 901 1071 +4833 264 239 667 1445 +4834 749 51 52 1146 +4835 145 768 826 1161 +4836 202 204 625 1439 +4837 724 692 290 1136 +4838 769 411 409 1345 +4839 441 1135 1298 1468 +4840 702 624 323 1202 +4841 1069 1044 1370 1449 +4842 288 683 666 1157 +4843 938 65 871 1447 +4844 1110 1358 1204 1399 +4845 1115 1191 957 1458 +4846 504 505 506 1382 +4847 178 179 180 1237 +4848 797 158 81 1153 +4849 255 253 254 1188 +4850 540 324 701 1224 +4851 1090 1441 1017 1465 +4852 570 333 594 1366 +4853 152 946 803 1279 +4854 79 104 865 1160 +4855 1004 1075 1284 1408 +4856 786 787 499 1347 +4857 538 568 569 1292 +4858 809 872 130 1173 +4859 800 625 391 1209 +4860 938 909 65 1447 +4861 741 26 25 1459 +4862 1048 1251 1146 1450 +4863 94 96 90 1259 +4864 650 653 652 1208 +4865 48 166 118 1131 +4866 602 197 200 1141 +4867 100 76 94 1374 +4868 686 711 761 1441 +4869 127 527 904 1084 +4870 754 902 1265 1456 +4871 1021 1289 1276 1470 +4872 386 1378 604 1469 +4873 958 1221 1117 1332 +4874 264 1445 1194 1466 +4875 1004 1284 1075 1435 +4876 783 125 784 1418 +4877 816 821 557 1159 +4878 111 80 16 131 +4879 966 1239 1184 1247 +4880 1133 1444 1025 1466 +4881 264 668 1194 1445 +4882 338 381 339 1230 +4883 983 1211 1342 1417 +4884 220 219 218 1155 +4885 1065 1377 1014 1469 +4886 351 397 704 1211 +4887 797 862 523 1153 +4888 759 622 761 1341 +4889 165 33 140 1273 +4890 241 242 243 1250 +4891 504 501 505 1382 +4892 441 440 439 1135 +4893 925 921 922 1213 +4894 581 1413 1364 1461 +4895 162 173 142 1180 +4896 291 249 251 1431 +4897 1065 1154 1377 1469 +4898 1232 1295 1061 1341 +4899 1051 1295 1232 1341 +4900 752 117 753 1102 +4901 840 128 861 1175 +4902 586 464 587 1453 +4903 1143 1025 1243 1427 +4904 1074 1401 1177 1423 +4905 461 1235 513 1440 +4906 862 797 139 1348 +4907 1051 1232 1202 1341 +4908 68 913 803 946 +4909 965 1302 1190 1379 +4910 1032 1093 1376 1462 +4911 451 419 417 1309 +4912 248 250 249 1219 +4913 249 1219 250 1431 +4914 45 44 116 1294 +4915 142 1180 699 1390 +4916 423 461 616 1440 +4917 818 302 785 1198 +4918 976 1253 1118 1423 +4919 672 388 671 1475 +4920 965 1248 1109 1416 +4921 109 79 107 1330 +4922 479 815 800 1451 +4923 157 931 876 1200 +4924 954 1270 1290 1424 +4925 171 140 737 1273 +4926 969 1128 1266 1271 +4927 804 16 80 131 +4928 276 283 275 1220 +4929 709 362 671 1475 +4930 1115 1236 986 1474 +4931 934 152 807 1279 +4932 1133 1428 238 1466 +4933 76 805 101 1374 +4934 538 537 115 1245 +4935 984 1109 1248 1416 +4936 507 522 468 1105 +4937 1304 1397 1016 1443 +4938 801 915 63 149 +4939 978 1329 1112 1370 +4940 946 934 947 1279 +4941 647 682 681 1212 +4942 55 54 853 1200 +4943 173 699 142 1180 +4944 1169 1200 975 1432 +4945 340 176 612 1277 +4946 224 1201 221 1407 +4947 413 743 726 1443 +4948 100 82 105 1351 +4949 87 85 86 1391 +4950 827 1316 488 1381 +4951 227 228 226 1331 +4952 676 363 714 1225 +4953 793 493 495 1280 +4954 1093 1260 1032 1376 +4955 850 582 851 1193 +4956 318 365 354 1362 +4957 148 593 47 1124 +4958 1187 1250 962 1300 +4959 604 1378 1162 1469 +4960 718 454 698 1185 +4961 471 564 539 1183 +4962 51 134 1146 1450 +4963 203 205 204 1164 +4964 81 86 85 1153 +4965 453 433 695 1174 +4966 482 774 758 1429 +4967 952 1322 1096 1398 +4968 159 170 121 1343 +4969 974 1223 1151 1400 +4970 970 1355 1125 1431 +4971 35 1295 121 1476 +4972 266 265 742 1179 +4973 112 132 102 1330 +4974 732 364 778 1478 +4975 665 421 419 1309 +4976 646 647 645 1287 +4977 638 559 381 1365 +4978 799 831 271 1299 +4979 915 871 149 1447 +4980 426 585 424 1448 +4981 310 714 363 1438 +4982 931 157 74 914 +4983 432 430 431 1350 +4984 1087 992 1364 1413 +4985 291 251 739 1355 +4986 438 662 436 1229 +4987 236 238 237 1466 +4988 519 532 533 1480 +4989 299 710 558 1147 +4990 904 42 1286 1467 +4991 841 447 829 1380 +4992 340 612 613 1277 +4993 951 1329 1406 1408 +4994 663 753 888 1394 +4995 198 302 818 1198 +4996 827 822 488 1316 +4997 930 944 926 1173 +4998 632 629 631 1297 +4999 154 24 854 1459 +5000 952 1376 1274 1398 +5001 766 609 260 1182 +5002 61 810 912 945 +5003 482 1319 483 1429 +5004 625 1209 345 1439 +5005 878 12 105 129 +5006 735 844 29 1189 +5007 426 427 428 1384 +5008 240 239 238 1466 +5009 740 762 698 1195 +5010 1044 1284 1107 1449 +5011 564 220 303 1402 +5012 731 1302 684 1455 +5013 1032 1326 1264 1376 +5014 164 121 1295 1476 +5015 970 1269 1098 1411 +5016 105 82 11 150 +5017 761 759 1341 1441 +5018 641 642 398 1401 +5019 776 819 505 1325 +5020 764 731 684 1455 +5021 548 508 593 1410 +5022 714 672 676 1225 +5023 556 832 396 1156 +5024 581 849 583 1461 +5025 323 1202 624 1481 +5026 32 754 1265 1456 +5027 485 488 483 1381 +5028 799 271 246 1299 +5029 835 555 561 1400 +5030 394 293 392 1463 +5031 528 856 43 1210 +5032 199 1167 617 1477 +5033 127 511 527 1367 +5034 96 93 90 1307 +5035 918 911 926 1436 +5036 838 840 521 1383 +5037 240 1428 239 1466 +5038 240 238 1428 1466 +5039 804 1304 866 1397 +5040 953 1303 1356 1412 +5041 1011 1103 1421 1452 +5042 322 336 337 1190 +5043 945 935 62 1267 +5044 941 931 919 1200 +5045 934 909 927 1175 +5046 620 170 715 1343 +5047 1008 1362 1196 1411 +5048 164 35 121 1476 +5049 140 34 164 1476 +5050 91 100 94 1259 +5051 1096 958 1354 1442 +5052 289 696 675 1300 +5053 1032 1260 1326 1376 +5054 866 744 1397 1443 +5055 231 234 659 1243 +5056 450 459 458 1433 +5057 256 255 254 1188 +5058 607 451 417 1446 +5059 32 1318 147 1456 +5060 699 794 169 1390 +5061 216 209 1460 1462 +5062 957 1236 1115 1474 +5063 991 1202 1158 1481 +5064 1116 971 1320 1459 +5065 560 393 562 1223 +5066 1264 1326 952 1376 +5067 771 505 501 1325 +5068 33 32 754 1265 +5069 909 1175 128 1447 +5070 83 92 103 1193 +5071 397 351 349 1211 +5072 1020 1290 1270 1424 +5073 554 393 560 1223 +5074 899 1127 40 1435 +5075 235 660 274 1452 +5076 824 1397 744 1443 +5077 79 1160 811 1330 +5078 1014 1377 1162 1469 +5079 554 360 543 1151 +5080 552 837 550 1228 +5081 531 128 840 1447 +5082 76 105 12 129 +5083 675 716 717 1300 +5084 641 217 477 1401 +5085 38 37 568 1292 +5086 576 404 858 1148 +5087 221 224 627 1201 +5088 1124 1276 989 1289 +5089 810 133 859 1267 +5090 989 1124 1289 1332 +5091 87 90 93 1307 +5092 32 31 147 1318 +5093 575 576 891 1148 +5094 868 806 805 1374 +5095 311 635 309 1258 +5096 809 502 872 1349 +5097 378 405 550 1228 +5098 537 536 115 1245 +5099 573 886 885 1450 +5100 755 497 774 1372 +5101 1201 1416 1012 1485 +5102 914 918 1169 1436 +5103 158 98 1153 1425 +5104 1048 1251 1264 1326 +5105 100 91 99 1351 +5106 1093 998 1376 1460 +5107 199 301 617 1167 +5108 49 885 50 1315 +5109 1016 1397 1092 1443 +5110 801 867 526 1267 +5111 11 105 150 878 +5112 1233 1367 1084 1433 +5113 971 1110 1252 1404 +5114 322 321 336 1379 +5115 609 720 777 1257 +5116 731 322 1302 1379 +5117 953 1356 1248 1412 +5118 656 829 831 1420 +5119 369 483 482 1319 +5120 503 860 803 1279 +5121 504 520 860 1382 +5122 170 618 121 1295 +5123 1284 1297 1044 1408 +5124 42 162 142 1467 +5125 899 900 40 1127 +5126 702 622 624 1202 +5127 800 345 625 1209 +5128 646 644 657 1287 +5129 991 1339 1111 1344 +5130 428 1168 595 1453 +5131 108 1391 86 1425 +5132 534 1178 535 1480 +5133 770 379 359 1338 +5134 195 190 188 1313 +5135 914 157 74 796 +5136 1075 1297 1284 1408 +5137 61 810 945 133 +5138 243 244 245 1187 +5139 220 218 303 1155 +5140 988 1097 1308 1479 +5141 447 437 688 1380 +5142 762 740 722 1195 +5143 664 882 569 1166 +5144 317 323 315 1481 +5145 79 109 104 1160 +5146 102 112 873 132 +5147 137 706 707 1283 +5148 79 8 112 1330 +5149 1011 1143 1243 1427 +5150 931 943 876 1200 +5151 78 93 97 1178 +5152 380 376 509 1247 +5153 583 865 136 1461 +5154 1012 1201 1157 1416 +5155 103 106 83 1193 +5156 845 144 26 1234 +5157 789 533 535 1480 +5158 1117 1285 990 1377 +5159 346 497 712 1372 +5160 834 155 852 1171 +5161 328 772 481 1199 +5162 863 747 390 1327 +5163 768 53 54 1422 +5164 875 851 582 1193 +5165 1042 1383 1175 1447 +5166 536 524 899 1127 +5167 683 798 402 1437 +5168 842 403 574 1333 +5169 855 132 812 1330 +5170 1057 1325 1260 1396 +5171 759 618 619 1341 +5172 182 184 1301 1419 +5173 152 860 520 1279 +5174 1180 1286 969 1390 +5175 883 898 664 1394 +5176 51 134 52 1146 +5177 899 524 900 1127 +5178 86 1391 1153 1425 +5179 441 442 440 1468 +5180 591 135 890 1235 +5181 914 917 918 1436 +5182 910 55 2 943 +5183 874 839 534 1178 +5184 566 277 821 1392 +5185 777 720 411 1257 +5186 903 548 546 1276 +5187 634 633 631 1297 +5188 152 67 946 934 +5189 808 71 911 930 +5190 927 933 924 1368 +5191 923 924 922 1368 +5192 960 1311 1121 1375 +5193 605 606 604 1162 +5194 983 1342 1161 1417 +5195 316 1339 364 1478 +5196 896 517 893 1116 +5197 506 520 504 1382 +5198 641 477 642 1401 +5199 1193 1413 582 1461 +5200 488 781 780 1316 +5201 965 1308 1097 1479 +5202 1012 1288 1155 1485 +5203 912 940 945 1267 +5204 954 1290 1252 1424 +5205 13 76 129 805 +5206 915 871 64 149 +5207 524 512 511 1367 +5208 602 603 194 1388 +5209 101 14 113 151 +5210 968 1395 1098 1465 +5211 882 664 679 1166 +5212 989 1276 1124 1410 +5213 599 222 564 1402 +5214 1203 1306 948 1471 +5215 781 193 190 1255 +5216 534 1348 1178 1480 +5217 82 102 10 873 +5218 398 334 372 1177 +5219 414 416 448 1272 +5220 207 203 680 1460 +5221 218 219 215 1415 +5222 952 1264 1251 1326 +5223 445 648 449 1246 +5224 430 595 428 1168 +5225 150 82 10 873 +5226 45 163 44 1294 +5227 152 68 803 946 +5228 223 224 221 1407 +5229 266 269 268 1389 +5230 887 572 510 1450 +5231 386 604 578 1469 +5232 232 174 171 1393 +5233 582 136 875 1461 +5234 212 209 213 1462 +5235 172 160 736 1284 +5236 870 58 137 916 +5237 749 52 145 1417 +5238 575 404 576 1148 +5239 790 258 262 1472 +5240 89 91 90 1259 +5241 1130 1309 995 1446 +5242 903 476 399 1276 +5243 651 650 652 1208 +5244 102 112 9 873 +5245 369 484 483 1319 +5246 753 898 752 1394 +5247 399 903 1276 1410 +5248 616 514 779 1440 +5249 1026 1330 1160 1363 +5250 1104 1007 1318 1456 +5251 46 47 734 1414 +5252 984 1416 1201 1485 +5253 549 906 545 1186 +5254 820 843 368 1249 +5255 1260 1325 1093 1396 +5256 471 539 472 1183 +5257 943 55 876 1200 +5258 188 187 186 1419 +5259 911 917 72 1436 +5260 979 1205 1293 1395 +5261 447 688 829 1380 +5262 207 216 209 1460 +5263 157 876 853 1200 +5264 730 296 330 1242 +5265 151 806 866 1304 +5266 881 839 131 1397 +5267 782 301 818 1426 +5268 86 81 98 1153 +5269 926 1173 929 1430 +5270 844 842 126 1333 +5271 864 137 937 1283 +5272 1155 1288 1021 1485 +5273 945 62 133 1267 +5274 704 705 374 1342 +5275 211 210 206 1312 +5276 17 97 111 131 +5277 980 1178 1348 1480 +5278 1145 1405 1092 1480 +5279 704 826 705 1342 +5280 535 534 839 1178 +5281 305 331 343 1184 +5282 525 375 756 1239 +5283 943 941 910 1200 +5284 731 278 322 1379 +5285 229 230 228 1331 +5286 678 1344 313 1481 +5287 696 716 1300 1484 +5288 76 13 101 805 +5289 387 479 802 1451 +5290 365 498 480 1362 +5291 565 361 566 1392 +5292 857 370 863 1137 +5293 492 383 384 1409 +5294 869 808 525 1436 +5295 382 383 339 1409 +5296 547 546 148 1470 +5297 787 291 814 1355 +5298 148 548 593 1124 +5299 19 84 78 874 +5300 873 102 132 1330 +5301 858 525 138 1436 +5302 210 204 206 1312 +5303 81 84 20 797 +5304 114 101 1304 1374 +5305 523 158 797 1153 +5306 96 114 80 1304 +5307 796 73 914 138 +5308 913 946 947 1279 +5309 589 905 587 1453 +5310 1150 1360 1056 1383 +5311 573 572 886 1450 +5312 463 595 430 1168 +5313 831 689 691 1420 +5314 829 688 689 1420 +5315 615 268 275 1389 +5316 470 868 751 1334 +5317 113 15 80 1304 +5318 147 1318 905 1456 +5319 98 86 1153 1425 +5320 875 5 83 136 +5321 622 759 619 1341 +5322 755 195 188 1313 +5323 836 463 432 1350 +5324 694 907 456 1468 +5325 859 133 526 1267 +5326 767 770 359 1338 +5327 570 594 380 1366 +5328 193 194 191 1388 +5329 731 322 713 1302 +5330 914 918 919 1169 +5331 315 678 313 1481 +5332 396 687 395 1317 +5333 114 101 113 1304 +5334 807 66 909 128 +5335 662 462 436 1229 +5336 868 805 129 1374 +5337 89 87 88 1391 +5338 127 524 511 1367 +5339 951 1369 1226 1406 +5340 589 902 754 1456 +5341 584 580 850 1413 +5342 547 1186 545 1470 +5343 837 378 550 1228 +5344 128 871 65 1447 +5345 182 186 184 1419 +5346 17 97 131 839 +5347 320 174 232 1393 +5348 225 226 224 1407 +5349 300 338 339 1230 +5350 128 65 909 1447 +5351 780 482 483 1429 +5352 1133 1000 1428 1466 +5353 445 449 446 1246 +5354 381 558 382 1365 +5355 734 773 143 1414 +5356 1194 1445 1000 1466 +5357 804 866 744 1397 +5358 71 808 809 930 +5359 123 885 49 1315 +5360 240 238 700 1428 +5361 1015 1392 1122 1472 +5362 215 626 211 1415 +5363 375 343 756 1239 +5364 741 893 1320 1459 +5365 984 1109 1416 1485 +5366 373 500 502 1349 +5367 236 233 661 1444 +5368 811 583 857 1160 +5369 66 909 934 807 +5370 26 741 135 1320 +5371 826 817 145 1417 +5372 164 121 618 1295 +5373 172 736 634 1284 +5374 771 776 505 1325 +5375 487 827 485 1381 +5376 167 748 177 1359 +5377 743 824 744 1443 +5378 957 1115 1458 1474 +5379 241 243 289 1250 +5380 538 115 568 1292 +5381 482 780 774 1429 +5382 500 503 872 1349 +5383 414 448 743 1272 +5384 330 327 357 1357 +5385 904 528 43 1467 +5386 879 852 155 1171 +5387 696 259 716 1484 +5388 497 755 712 1372 +5389 267 361 790 1472 +5390 314 364 316 1339 +5391 202 625 345 1439 +5392 332 304 333 1253 +5393 581 582 1413 1461 +5394 628 307 325 1483 +5395 623 828 636 1449 +5396 311 326 635 1258 +5397 465 427 425 1384 +5398 220 222 221 1402 +5399 411 412 410 1345 +5400 854 877 158 1425 +5401 15 113 151 1304 +5402 977 1306 1203 1471 +5403 819 782 506 1426 +5404 199 617 201 1477 +5405 143 163 45 1294 +5406 139 20 84 797 +5407 471 467 466 1336 +5408 694 456 442 1468 +5409 931 941 943 1200 +5410 718 690 695 1353 +5411 923 929 927 1368 +5412 1364 1413 992 1461 +5413 432 463 430 1350 +5414 1153 1391 1036 1425 +5415 604 192 578 1469 +5416 207 680 216 1460 +5417 89 92 95 1363 +5418 43 856 44 1210 +5419 92 109 95 1363 +5420 315 314 316 1339 +5421 14 101 805 151 +5422 941 919 921 1432 +5423 581 582 580 1413 +5424 709 282 362 1324 +5425 856 116 44 1210 +5426 394 821 615 1463 +5427 935 940 932 1267 +5428 515 890 893 1320 +5429 161 142 699 1390 +5430 1162 1378 1014 1469 +5431 23 1 110 77 +5432 19 84 874 139 +5433 824 881 744 1397 +5434 380 344 376 1247 +5435 182 184 183 1301 +5436 345 200 202 1439 +5437 992 1413 1193 1461 +5438 591 890 513 1235 +5439 264 667 668 1445 +5440 501 504 503 1382 +5441 730 330 367 1242 +5442 386 385 604 1378 +5443 240 700 270 1428 +5444 132 112 8 1330 +5445 991 1158 1339 1481 +5446 893 154 896 1459 +5447 585 507 455 1448 +5448 917 138 72 1436 +5449 861 128 807 1175 +5450 823 443 441 1298 +5451 209 216 765 1462 +5452 329 747 295 1327 +5453 88 86 108 1391 +5454 403 474 473 1403 +5455 924 932 928 1281 +5456 802 800 391 1451 +5457 534 139 874 1348 +5458 377 849 581 1364 +5459 937 137 58 916 +5460 112 102 107 1330 +5461 165 140 171 1273 +5462 718 692 690 1353 +5463 738 50 125 1418 +5464 720 607 415 1446 +5465 828 825 634 1449 +5466 160 39 120 1435 +5467 929 926 944 1173 +5468 820 708 843 1249 +5469 313 678 326 1344 +5470 98 81 21 158 +5471 33 754 117 1265 +5472 701 628 629 1483 +5473 356 478 402 1437 +5474 646 645 644 1287 +5475 82 99 102 1351 +5476 116 549 545 1186 +5477 765 389 331 1396 +5478 357 849 377 1364 +5479 547 116 545 1186 +5480 18 97 839 874 +5481 104 83 5 136 +5482 230 235 273 1452 +5483 110 98 877 1425 +5484 468 591 513 1235 +5485 668 667 674 1445 +5486 365 480 354 1362 +5487 845 846 144 1234 +5488 873 112 9 132 +5489 860 503 504 1382 +5490 311 310 312 1438 +5491 337 385 386 1378 +5492 797 21 81 158 +5493 39 40 120 1435 +5494 476 1276 546 1470 +5495 316 364 732 1478 +5496 921 920 922 1432 +5497 390 747 329 1327 +5498 15 804 80 1304 +5499 687 686 395 1317 +5500 470 725 806 1334 +5501 935 801 62 1267 +5502 585 455 424 1448 +5503 898 663 664 1394 +5504 79 811 8 1330 +5505 318 316 732 1478 +5506 461 513 514 1440 +5507 176 167 177 1359 +5508 544 476 546 1470 +5509 722 721 608 1373 +5510 633 632 631 1297 +5511 854 23 877 1425 +5512 910 2 55 879 +5513 984 1248 1356 1412 +5514 323 624 678 1481 +5515 665 419 451 1309 +5516 991 1339 1344 1481 +5517 903 546 476 1276 +5518 97 18 78 874 +5519 267 790 262 1472 +5520 114 94 101 1374 +5521 147 588 905 1318 +5522 442 456 440 1468 +5523 675 696 716 1300 +5524 851 4 106 875 +5525 182 183 181 1301 +5526 251 250 252 1431 +5527 366 330 357 1357 +5528 765 771 389 1396 +5529 38 568 115 1292 +5530 922 924 928 1281 +5531 532 1348 534 1480 +5532 464 428 595 1453 +5533 887 134 572 1450 +5534 734 143 46 1414 +5535 911 72 808 1436 +5536 741 154 893 1459 +5537 51 886 134 1450 +5538 170 159 715 1343 +5539 811 865 583 1160 +5540 597 789 448 1405 +5541 347 349 348 1386 +5542 487 529 530 1457 +5543 127 904 42 1286 +5544 41 127 42 1286 +5545 153 853 54 1422 +5546 228 764 288 1455 +5547 381 559 558 1365 +5548 291 739 814 1355 +5549 753 663 898 1394 +5550 473 367 403 1403 +5551 934 152 67 807 +5552 555 401 554 1400 +5553 117 754 902 1265 +5554 201 200 199 1477 +5555 488 822 781 1316 +5556 722 608 766 1373 +5557 15 151 804 1304 +5558 4 83 106 875 +5559 709 286 282 1324 +5560 738 125 783 1418 +5561 39 899 40 1435 +5562 110 877 23 1425 +5563 607 417 415 1446 +5564 249 250 251 1431 +5565 485 827 488 1381 +5566 427 426 425 1384 +5567 842 574 126 1333 +5568 471 466 599 1336 +5569 332 334 642 1423 +5570 923 926 929 1430 +5571 287 236 661 1444 +5572 864 708 137 1283 +5573 589 587 595 1453 +5574 526 133 801 1267 +5575 684 731 713 1302 +5576 310 363 312 1438 +5577 264 237 239 1466 +5578 227 229 228 1331 +5579 110 98 22 877 +5580 35 34 752 1476 +5581 110 77 108 1425 +5582 161 699 169 1390 +5583 25 24 154 1459 +5584 716 259 786 1484 +5585 761 335 759 1441 +5586 133 62 801 1267 +5587 938 915 933 1447 +5588 868 470 806 1334 +5589 838 530 840 1383 +5590 335 761 711 1441 +5591 810 864 60 912 +5592 388 306 709 1475 +5593 235 274 273 1452 +5594 811 79 7 865 +5595 860 152 803 1279 +5596 269 275 268 1389 +5597 603 191 194 1388 +5598 278 321 322 1379 +5599 288 764 684 1455 +5600 332 642 590 1423 +5601 135 741 890 1320 +5602 876 55 853 1200 +5603 566 361 277 1392 +5604 136 6 104 865 +5605 527 458 460 1433 +5606 532 139 534 1348 +5607 219 626 215 1415 +5608 778 786 499 1347 +5609 132 8 811 1330 +5610 75 876 157 931 +5611 91 94 90 1259 +5612 683 402 478 1437 +5613 409 411 410 1345 +5614 77 23 1 880 +5615 372 508 399 1410 +5616 347 598 349 1386 +5617 890 741 893 1320 +5618 394 615 293 1463 +5619 749 145 817 1417 +5620 137 59 864 937 +5621 383 382 384 1409 +5622 138 525 808 1436 +5623 511 458 527 1433 +5624 158 877 98 1425 +5625 209 765 213 1462 +5626 53 153 54 1422 +5627 592 294 283 1454 +5628 137 708 706 1283 +5629 94 76 101 1374 +5630 866 726 744 1443 +5631 918 926 920 1430 +5632 225 224 223 1407 +5633 782 819 301 1426 +5634 531 149 871 1447 +5635 64 63 915 149 +5636 580 582 850 1413 +5637 555 835 401 1400 +5638 944 930 70 130 +5639 106 77 3 880 +5640 184 186 187 1419 +5641 876 75 943 931 +5642 829 689 831 1420 +5643 597 788 789 1405 +5644 147 897 588 1318 +5645 592 562 294 1454 +5646 138 808 72 1436 +5647 98 108 86 1425 +5648 220 564 222 1402 +5649 930 809 70 130 +5650 530 531 840 1383 +5651 754 32 147 1456 +5652 910 939 56 879 +5653 458 459 460 1433 +5654 74 73 914 796 +5655 623 825 828 1449 +5656 744 131 804 1397 +5657 533 532 534 1480 +5658 909 938 933 1447 +5659 487 486 529 1457 +5660 82 10 11 150 +5661 616 461 514 1440 +5662 867 529 486 1457 +5663 82 100 99 1351 +5664 104 7 79 865 +5665 60 864 937 912 +5666 3 106 880 851 +5667 943 55 2 876 +5668 802 479 800 1451 +5669 66 65 909 128 +5670 76 12 13 129 +5671 628 325 629 1483 +5672 582 581 136 1461 +5673 927 924 923 1368 +5674 903 508 548 1410 +5675 15 16 80 804 +5676 671 388 709 1475 +5677 239 237 238 1466 +5678 589 147 905 1456 +5679 104 5 6 136 +5680 811 812 132 1330 +5681 58 59 137 937 +5682 900 127 41 1286 +5683 940 935 945 1267 +5684 17 111 16 131 +5685 939 852 56 879 +5686 69 68 913 803 +5687 74 75 157 931 +5688 35 164 34 1476 +5689 128 531 871 1447 +5690 911 918 917 1436 +5691 533 534 535 1480 +5692 572 134 886 1450 +5693 726 743 744 1443 +5694 112 107 79 1330 +5695 872 502 500 1349 +5696 315 323 678 1481 +5697 926 923 920 1430 +5698 139 532 862 1348 +5699 31 897 147 1318 +5700 162 42 43 1467 +5701 754 147 589 1456 +5702 42 904 43 1467 +5703 921 919 920 1432 +5704 72 71 911 808 +5705 114 113 80 1304 +5706 88 87 86 1391 +5707 158 22 98 877 +5708 866 804 151 1304 +5709 63 62 935 801 +5710 852 56 57 939 +5711 101 13 14 805 +5712 881 131 744 1397 +5713 581 583 136 1461 +5714 110 108 98 1425 +5715 20 21 81 797 +5716 106 3 4 851 +5717 741 25 154 1459 +5718 97 17 18 839 +5719 67 68 152 946 +5720 8 9 112 132 +5721 70 71 809 930 +5722 23 110 1 877 +5723 84 19 20 139 +5724 79 7 8 811 +5725 67 66 934 807 +5726 60 61 810 912 +5727 399 508 903 1410 +5728 22 1 110 877 +5729 15 113 14 151 +5730 464 595 587 1453 +5731 56 2 910 879 +5732 57 58 870 916 +5733 19 78 18 874 +5734 22 98 21 158 +5735 1 3 77 880 +5736 545 544 546 1470 +5737 547 545 546 1470 +5738 62 61 945 133 +5739 2 75 943 876 +5740 70 69 944 130 +5741 104 6 7 865 +5742 59 60 864 937 +5743 102 9 10 873 +5744 72 73 138 917 +5745 83 4 5 875 +5746 105 11 12 878 +5747 65 64 938 871 +5748 1292 160 1435 38 +5749 1292 1435 160 1004 +5750 1246 1298 443 452 +5751 443 1298 1246 1083 +5752 1135 1229 1380 986 +5753 1380 1229 1135 438 +5754 1138 320 1393 775 +5755 1138 1393 320 1023 +5756 416 1231 418 597 +5757 418 1231 416 1130 +5758 1411 1017 979 1196 +5759 1411 979 1017 1098 +5760 1481 1069 991 1202 +5761 1481 991 1069 1344 +5762 1449 1051 1107 1069 +5763 1449 1107 1051 1343 +5764 303 1021 1218 553 +5765 1218 1021 303 1155 +5766 1267 1447 932 915 +5767 932 1447 1267 1042 +5768 1246 443 444 445 +5769 1246 444 443 1083 +5770 457 1246 693 446 +5771 693 1246 457 1002 +5772 1188 1373 1195 272 +5773 1195 1373 1188 985 +5774 394 1013 1151 556 +5775 1151 1013 394 1463 +5776 1151 392 394 556 +5777 394 392 1151 1463 +5778 1354 1070 1322 1001 +5779 1354 1322 1070 1285 +5780 297 1324 285 286 +5781 285 1324 297 1129 +5782 1384 1168 429 428 +5783 1384 429 1168 1018 +5784 247 1187 1484 245 +5785 1484 1187 247 1033 +5786 1147 384 494 710 +5787 1147 494 384 1077 +5788 1391 1363 89 1085 +5789 1391 89 1363 88 +5790 1225 1475 308 388 +5791 308 1475 1225 1037 +5792 1388 196 193 194 +5793 1388 193 196 1255 +5794 1228 358 390 837 +5795 1228 390 358 1059 +5796 1384 429 697 427 +5797 1384 697 429 1018 +5798 1237 1285 1354 1070 +5799 1354 1285 1237 958 +5800 1188 252 253 254 +5801 1188 253 252 1125 +5802 1376 976 1096 1264 +5803 1376 1096 976 1310 +5804 1462 305 304 1032 +5805 1462 304 305 213 +5806 1102 596 888 1078 +5807 1102 888 596 753 +5808 1282 968 1078 1203 +5809 1282 1078 968 1241 +5810 1353 1306 1282 977 +5811 1353 1282 1306 1136 +5812 1426 1056 838 1150 +5813 1426 838 1056 1198 +5814 1117 1314 1377 961 +5815 1377 1314 1117 1285 +5816 1287 658 263 1073 +5817 1287 263 658 645 +5818 1271 1129 1261 1005 +5819 1271 1261 1129 964 +5820 768 1171 1422 155 +5821 1422 1171 768 1161 +5822 1363 1461 92 1160 +5823 92 1461 1363 1193 +5824 1164 208 1460 205 +5825 1164 1460 208 1118 +5826 1459 896 854 154 +5827 1459 854 896 1116 +5828 1203 1168 1078 977 +5829 1203 1078 1168 1007 +5830 1156 1395 1090 979 +5831 1090 1395 1156 1023 +5832 1480 518 519 532 +5833 1480 519 518 1145 +5834 119 1294 44 163 +5835 44 1294 119 1210 +5836 1425 156 24 23 +5837 1425 24 156 1036 +5838 974 1400 1291 1138 +5839 974 1291 1400 1151 +5840 1023 1291 1400 1138 +5841 1023 1400 1291 1151 +5842 1309 1020 420 1130 +5843 1309 420 1020 1165 +5844 1466 673 264 237 +5845 1466 264 673 1194 +5846 1240 1386 1211 1081 +5847 1211 1386 1240 1113 +5848 1321 1126 1287 967 +5849 1321 1287 1126 1030 +5850 435 1229 437 436 +5851 437 1229 435 1140 +5852 1318 1206 1453 1007 +5853 1318 1453 1206 1050 +5854 1388 189 192 191 +5855 1388 192 189 1154 +5856 1432 936 1213 921 +5857 1432 1213 936 1171 +5858 1278 1187 1300 1033 +5859 1278 1300 1187 962 +5860 565 1355 498 814 +5861 498 1355 565 1068 +5862 1359 118 166 1131 +5863 1359 166 118 167 +5864 1331 658 225 227 +5865 1331 225 658 1073 +5866 1347 1269 1278 1033 +5867 1347 1278 1269 1008 +5868 1431 1039 970 1136 +5869 1431 970 1039 1125 +5870 1403 560 474 473 +5871 1403 474 560 1142 +5872 1292 1435 1245 115 +5873 1245 1435 1292 1004 +5874 1442 1100 1009 1315 +5875 1442 1009 1100 1354 +5876 1381 484 483 485 +5877 1381 483 484 1319 +5878 1318 122 1104 31 +5879 1318 1104 122 1138 +5880 733 1104 122 31 +5881 733 122 1104 1138 +5882 1316 1274 1072 994 +5883 1316 1072 1274 1045 +5884 1322 1072 1274 994 +5885 1322 1274 1072 1045 +5886 1323 1135 972 1163 +5887 1323 972 1135 1236 +5888 1478 499 778 732 +5889 1478 778 499 1347 +5890 450 1246 457 446 +5891 457 1246 450 1126 +5892 1457 867 149 1042 +5893 149 867 1457 529 +5894 149 1447 1457 1042 +5895 1457 1447 149 529 +5896 1417 397 1342 817 +5897 1417 1342 397 1211 +5898 704 1342 397 817 +5899 704 397 1342 1211 +5900 1265 1241 1273 968 +5901 1265 1273 1241 1102 +5902 1061 1273 1241 968 +5903 1061 1241 1273 1102 +5904 1230 1207 1216 1034 +5905 1230 1216 1207 988 +5906 1468 882 907 456 +5907 1468 907 882 1043 +5908 1429 1052 353 1319 +5909 1429 353 1052 1113 +5910 1397 80 96 111 +5911 1397 96 80 1304 +5912 1414 901 148 1071 +5913 1414 148 901 46 +5914 947 1368 1175 927 +5915 1175 1368 947 1279 +5916 1175 934 947 927 +5917 947 934 1175 1279 +5918 1477 1398 1167 998 +5919 1477 1167 1398 1045 +5920 1386 350 1211 349 +5921 1386 1211 350 1113 +5922 1413 1036 156 1181 +5923 1413 156 1036 1193 +5924 1195 1263 1188 1039 +5925 1188 1263 1195 985 +5926 1388 1045 973 1255 +5927 1388 973 1045 1141 +5928 1407 1412 1073 1046 +5929 1073 1412 1407 1197 +5930 1305 995 1049 1192 +5931 1305 1049 995 1214 +5932 401 1138 835 775 +5933 401 835 1138 1400 +5934 1405 416 448 597 +5935 1405 448 416 1272 +5936 852 916 57 870 +5937 57 916 852 939 +5938 1379 490 637 321 +5939 1379 637 490 1097 +5940 1463 1375 1151 1013 +5941 1463 1151 1375 1094 +5942 1447 1457 1383 531 +5943 1383 1457 1447 1042 +5944 1298 650 653 823 +5945 1298 653 650 1208 +5946 1278 1484 1347 1033 +5947 1347 1484 1278 1060 +5948 1390 41 40 161 +5949 1390 40 41 1286 +5950 1240 1464 1274 1101 +5951 1274 1464 1240 994 +5952 1468 444 443 442 +5953 1468 443 444 1083 +5954 1367 900 127 524 +5955 1367 127 900 1286 +5956 1202 1458 1069 991 +5957 1069 1458 1202 1051 +5958 1462 331 765 213 +5959 1462 765 331 1396 +5960 131 80 1397 111 +5961 131 1397 80 804 +5962 1238 359 767 341 +5963 1238 767 359 1338 +5964 1421 1331 1073 1046 +5965 1421 1073 1331 1011 +5966 1437 666 627 478 +5967 1437 627 666 1157 +5968 1366 1326 1264 1032 +5969 1366 1264 1326 1048 +5970 1438 714 308 310 +5971 1438 308 714 1225 +5972 1316 193 196 822 +5973 1316 196 193 1255 +5974 803 944 69 130 +5975 803 69 944 913 +5976 1426 617 776 819 +5977 1426 776 617 1167 +5978 1410 884 727 508 +5979 1410 727 884 1064 +5980 1468 443 441 442 +5981 1468 441 443 1298 +5982 1450 571 573 572 +5983 1450 573 571 1152 +5984 398 1410 372 399 +5985 372 1410 398 1177 +5986 1394 662 462 663 +5987 1394 462 662 1229 +5988 1312 1439 961 1209 +5989 961 1439 1312 1164 +5990 1432 918 1430 1169 +5991 1432 1430 918 920 +5992 1484 778 786 716 +5993 1484 786 778 1347 +5994 531 1457 530 529 +5995 530 1457 531 1383 +$EndElements diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/case.json b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/case.json new file mode 100644 index 0000000..29e5125 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/case.json @@ -0,0 +1,19 @@ +{ + "tet": { + "geometry": { "type": "Cylinder", "length": 1.0, "radius": 0.1 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "file": "beam_tet.msh", "size": 0.03 }, + "load": { "type": "axialTraction", "magnitude": 200.0 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/fenics_scene.py new file mode 100644 index 0000000..bca0bf3 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/fenics_scene.py @@ -0,0 +1,84 @@ +import json +import os + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem +from dolfinx.io import gmshio +from mpi4py import MPI + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + domain = gmshio.read_from_msh(os.path.join(CASE_DIR, case['mesh']['file']), MPI.COMM_WORLD, gdim=3)[0] + V = fem.functionspace(domain, ("Lagrange", 1, (3,))) + + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - 2 * poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(3) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + right_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[0], case['geometry']['length'])) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, right_facets, + np.full_like(right_facets, 1, dtype=np.int32)) + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags) + + traction = fem.Constant(domain, default_scalar_type((-case['load']['magnitude'], 0.0, 0.0))) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + clamped = fem.locate_dofs_geometrical(V, lambda x: np.isclose(x[0], 0.0)) + bc = fem.dirichletbc(np.zeros(3, dtype=default_scalar_type), clamped, V) + + return V, a, L, [bc] + + +def solve(case): + V, a, L, bcs = build(case) + + problem = LinearProblem(a, L, bcs=bcs, petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + # dolfinx renumbers the nodes it reads: put them back in the mesh file's order, which is SOFA's + domain = V.mesh + file_index = np.empty(V.dofmap.index_map.size_local, dtype=np.int64) + file_index[V.dofmap.list.ravel()] = np.asarray(domain.geometry.input_global_indices)[domain.geometry.dofmap.ravel()] + + x, u = np.empty((len(file_index), 3)), np.empty((len(file_index), 3)) + x[file_index] = V.tabulate_dof_coordinates()[:, :3] + u[file_index] = solution.x.array.reshape(-1, 3) + return x, u + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for sub_case in json.load(f).values(): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/mesh.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/mesh.py new file mode 100644 index 0000000..af0f9e1 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/mesh.py @@ -0,0 +1,31 @@ +"""Writes the cylinder meshes of case.json with gmsh: `python mesh.py`.""" + +import json +import os + +import gmsh + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) + + +def write(case): + gmsh.initialize() + gmsh.model.add(case['element']) + length, radius = case['geometry']['length'], case['geometry']['radius'] + size = case['mesh']['size'] + + disk = gmsh.model.occ.addDisk(0, 0, 0, radius, radius, zAxis=[1, 0, 0]) + gmsh.model.occ.extrude([(2, disk)], length, 0, 0) + gmsh.model.occ.synchronize() + gmsh.model.addPhysicalGroup(3, [tag for _, tag in gmsh.model.getEntities(3)]) + + gmsh.option.setNumber('Mesh.MeshSizeMax', size) + gmsh.model.mesh.generate(3) + gmsh.write(os.path.join(CASE_DIR, case['mesh']['file'])) + gmsh.finalize() + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for case in json.load(f).values(): + write(case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/reference_solution.json new file mode 100644 index 0000000..9214dcf --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/reference_solution.json @@ -0,0 +1 @@ +{"tet": {"fenics": {"x": [[1.2701714604616472e-18, -2.952064939143235e-19, 0.10000000000000002], [0.9999999999999999, -2.422618889939055e-19, 0.09999999999999999], [-8.276072663456242e-19, -0.029475517441090386, 0.09555728057861407], [8.373393036153253e-20, -0.05633200580636215, 0.08262387743159952], [1.3106528439152314e-19, -0.07818314824680292, 0.062348980185873426], [9.141238551761612e-20, -0.09308737486442037, 0.03653410243663961], [1.3606380143606146e-18, -0.09972037971811802, 0.007473009358642548], [1.2246361148826323e-18, -0.0974927912181824, -0.02225209339563135], [1.3940425546391227e-19, -0.0866025403784439, -0.049999999999999906], [1.1373548099965328e-18, -0.06801727377709203, -0.07330518718298257], [-1.0816503924012673e-18, -0.043388373911755936, -0.09009688679024185], [-4.635785018431321e-19, -0.014904226617617781, -0.09888308262251283], [-1.1780568292455269e-18, 0.014904226617617098, -0.0988830826225129], [-3.8014795069391887e-19, 0.04338837391175541, -0.09009688679024214], [3.0615554682668055e-19, 0.06801727377709152, -0.073305187182983], [1.2903273018850735e-19, 0.08660254037844348, -0.050000000000000655], [1.3623028583338903e-19, 0.09749279121818218, -0.022252093395632236], [9.637287612135032e-20, 0.09972037971811808, 0.00747300935864155], [2.286237344324274e-19, 0.09308737486442069, 0.036534102436638786], [1.2022110240273052e-19, 0.07818314824680332, 0.06234898018587291], [-3.7073925406904015e-19, 0.056332005806362564, 0.08262387743159925], [1.1863811091305906e-19, 0.029475517441090632, 0.095557280578614], [0.029411764705882394, 1.87994906967695e-20, 0.10000000000000002], [0.058823529411764754, -1.5094958152185287e-18, 0.09999999999999999], [0.08823529411764719, 1.2549009603521568e-18, 0.10000000000000002], [0.11764705882352962, -1.4277495178280731e-18, 0.10000000000000002], [0.14705882352941202, -9.2986986204805e-19, 0.10000000000000002], [0.17647058823529432, -1.1778523635749064e-18, 0.10000000000000002], [0.20588235294117674, -1.1941790694360141e-18, 0.10000000000000002], [0.23529411764705901, -1.5983383537148134e-18, 0.10000000000000002], [0.26470588235294157, -1.257139220518591e-18, 0.10000000000000002], [0.2941176470588238, -1.5111754032095107e-18, 0.09999999999999999], [0.32352941176470645, -1.5116934750489912e-18, 0.09999999999999999], [0.35294117647058887, -1.5715880126414966e-18, 0.09999999999999999], [0.38235294117647123, -4.339671681119395e-19, 0.09999999999999999], [0.41176470588235375, -1.4726691289239154e-18, 0.09999999999999999], [0.4411764705882361, -1.5184803383578934e-18, 0.09999999999999999], [0.47058823529411875, -1.2937013851085852e-18, 0.10000000000000002], [0.500000000000001, 1.1753216448095972e-18, 0.09999999999999999], [0.5294117647058831, 2.5071071290422413e-20, 0.09999999999999999], [0.5588235294117655, 2.5071071290422413e-20, 0.09999999999999999], [0.5882352941176477, -8.274330100624452e-21, 0.09999999999999999], [0.61764705882353, 6.855166411745742e-20, 0.09999999999999999], [0.6470588235294122, -1.5996341923040502e-18, 0.09999999999999999], [0.6764705882352945, -1.1005265445442547e-19, 0.09999999999999999], [0.7058823529411767, -1.6391604165011703e-19, 0.09999999999999999], [0.7352941176470591, -1.2560504297394158e-19, 0.09999999999999999], [0.7647058823529412, 2.999868734662428e-20, 0.09999999999999999], [0.7941176470588235, 2.999868734662428e-20, 0.09999999999999999], [0.8235294117647058, 2.12996607636e-19, 0.09999999999999999], [0.8529411764705881, 2.2561434298182798e-21, 0.09999999999999999], [0.8823529411764702, 1.8248585525949642e-19, 0.09999999999999999], [0.9117647058823526, 8.110981882818643e-20, 0.09999999999999999], [0.9411764705882347, -1.4626568944618657e-18, 0.09999999999999999], [0.9705882352941171, 1.0150266812156259e-19, 0.09999999999999999], [0.9999999999999999, -0.029475517441090386, 0.09555728057861407], [1.0, -0.05633200580636217, 0.08262387743159955], [0.9999999999999998, -0.07818314824680292, 0.06234898018587342], [0.9999999999999998, -0.09308737486442037, 0.03653410243663961], [0.9999999999999998, -0.099720379718118, 0.007473009358642546], [0.9999999999999998, -0.09749279121818237, -0.022252093395631348], [0.9999999999999998, -0.0866025403784439, -0.049999999999999906], [0.9999999999999999, -0.06801727377709202, -0.07330518718298254], [0.9999999999999998, -0.043388373911755936, -0.09009688679024185], [0.9999999999999998, -0.014904226617617778, -0.0988830826225128], [0.9999999999999999, 0.014904226617617096, -0.0988830826225129], [0.9999999999999999, 0.043388373911755394, -0.09009688679024211], [0.9999999999999998, 0.06801727377709152, -0.073305187182983], [0.9999999999999998, 0.08660254037844348, -0.050000000000000655], [1.0, 0.0974927912181822, -0.02225209339563224], [0.9999999999999998, 0.09972037971811808, 0.00747300935864155], [0.9999999999999999, 0.09308737486442069, 0.036534102436638786], [0.9999999999999998, 0.07818314824680332, 0.06234898018587291], [0.9999999999999999, 0.05633200580636255, 0.08262387743159924], [0.9999999999999998, 0.029475517441090636, 0.095557280578614], [2.152565832239851e-18, -2.52118677002983e-16, -0.07306820487327914], [2.897581025623416e-19, -0.011508248893123116, 0.07280417667649476], [1.3537990147782153e-18, 0.07123623242397975, 0.01625920519091276], [1.6463957697377853e-18, -0.07286389135284624, -0.005460393788372081], [2.0390455281883777e-18, 0.058559949006259084, -0.04917425094414683], [4.889866106855485e-19, 0.04969900095266478, 0.05356278435360207], [1.3429403815193348e-19, -0.04116078541182027, -0.060371784035968074], [1.6512591597656474e-19, -0.048758542963527225, 0.051325607362379226], [-6.951115179423921e-19, 0.06944984514603657, 0.04009688679024144], [-2.583114342431216e-18, 0.046655634827253704, 0.027552836632207693], [1.5107728305327313e-18, 0.022976518098237923, 0.04235001236537814], [-1.562045384430632e-18, 0.019855739632001258, 0.014479666682287848], [3.2568221964772303e-18, -0.003969118687826101, 0.029725171164527043], [-1.7896843779311632e-18, -0.008513706565336081, 0.002292220138594795], [-1.0983356726907806e-18, 0.016234530426989188, -0.014102429384138776], [1.4294499332826666e-19, -0.01224314338738922, -0.026495107570484455], [-1.1618561640675625e-18, -0.03450550212999403, 0.021448820572495277], [-5.963143546393702e-19, 0.04871740625483301, -0.003488004852144479], [3.391059757516847e-19, 0.013237939209728919, -0.043973699144657215], [3.470952548085387e-19, -0.0336930522090509, -0.008916522986870285], [-1.974865163853407e-18, 0.039157344471390944, -0.028181095764745683], [4.085334126057872e-19, 0.07828726642463171, -0.006766422180493857], [-2.0479049973673905e-18, 0.028315887469779012, 0.06799443321897354], [3.797318622550732e-18, -0.03723162283093192, -0.03480413784791669], [-2.011184026741183e-18, -0.016839190356466176, -0.05255732044986449], [2.3999226756187173e-18, 0.026290050514930836, -0.06917579577250928], [-4.44270331961537e-19, -0.06136973046791288, -0.04418039696963311], [4.222174226474465e-18, -0.021949679421422882, 0.050199517822524145], [1.2664145866819168e-18, -0.06724393895343415, 0.025594861434738974], [-2.777743834044394e-18, -0.023637529718384297, -0.07663098922688141], [2.2959918509592292e-18, -0.03418764401364817, 0.07135923552761662], [1.0740113579437536e-18, -0.0559927554950065, -0.02004242348629351], [-1.1226501121554046e-18, 0.003315594733254227, 0.05619567722638205], [-1.0517677282655212e-18, -0.053411732523838254, 0.005654386985016353], [-1.1673483681150847e-18, 0.009750487402022716, 0.07935329800422578], [-2.061283856147982e-18, 0.06813621629229005, -0.026643644522860627], [3.1252862058317907e-19, -0.07540677636266055, -0.028510908005608515], [1.2905523856234862e-19, 0.04694795383579438, -0.0656781606917031], [1.2905523856234862e-19, 0.03648978553636027, -0.050309989556920856], [0.48529411764705976, 0.02526392191504819, 0.09675605536332259], [0.6617647058823534, 0.02526392191504819, 0.09675605536332259], [0.3382352941176475, 0.025263921915038914, 0.09675605536332502], [0.7500032707586178, -0.02526361212528865, 0.09675613625183145], [0.6323529411764711, -0.025263921915037336, 0.09675605536332542], [0.5147085547247893, -0.025262392896977574, 0.09675645459150899], [0.39705882352941263, -0.025263921915088323, 0.09675605536331214], [0.250023332630354, -0.025247195356838892, 0.09676042128170803], [0.7794117647058826, 0.025263921915048202, 0.09675605536332262], [0.22058823529411792, 0.02526392191504829, 0.09675605536332259], [0.8382348892760624, -0.025261840631395117, 0.09675659878227424], [0.16155182343618982, -0.024619111732518364, 0.09692213027736123], [0.5664469667941776, 0.024946213418093516, 0.09683845535787387], [0.9706081396299117, -0.0014794375823548643, -0.09998905572331364], [0.029463270255207886, -0.0021470210150576247, -0.09997694884702625], [0.9742092960782424, 0.09308737486442013, -0.03653410243664022], [0.027655502873839673, 0.09253748638154966, -0.037905324351395674], [0.029878425279968913, -0.09169440260381674, -0.03990158557161811], [0.9742092960782457, -0.09308737486442045, -0.03653410243663939], [0.8676470588235293, 0.025263921914998363, 0.09675605536333563], [0.13235294117647078, 0.025263921914998527, 0.09675605536333556], [0.028091138921535627, -0.08638710675014012, 0.050371299242126945], [0.9712891951134758, -0.08642270486913847, 0.050310198599307805], [0.9742092960783801, 0.08660254037844424, 0.049999999999999406], [0.028591499162091114, 0.08847220778903958, 0.046611891711590095], [0.3382427957239558, -0.025261537111690935, 0.09675667802665953], [0.4558877422570791, -0.025261300270097462, 0.0967567398616963], [0.5735376494773947, -0.025260505959882544, 0.09675694723714025], [0.6911803774893995, -0.025258973377904535, 0.09675734733804102], [0.10289711937803107, -0.024739735394769768, 0.09689141082983968], [0.8970588235294114, -0.025263921915088108, 0.09675605536331217], [0.3970588235294125, 0.025263921915040805, 0.09675605536332452], [0.27941176470588275, 0.02526392191507338, 0.09675605536331604], [0.7205882352941179, 0.025263921915056785, 0.09675605536332034], [0.9710712117050966, -0.05602774337543643, -0.08283050146085223], [0.025790703921756426, -0.056332005806362336, -0.08262387743159942], [0.024160744649993314, 0.055905500413056065, -0.08291305701495867], [0.9729296360517319, 0.05553625342671964, -0.08316083546551926], [0.9264705882352937, 0.025263921915356275, 0.09675605536324215], [0.07352941176470597, 0.025263921915356362, 0.09675605536324212], [0.9535053699285616, -0.02499832756202306, 0.0968250154614075], [0.046281172130565595, -0.024855335058523404, 0.09686182075063703], [0.9742092960782425, 0.04338837391175607, 0.09009688679024182], [0.02356276400527854, 0.04470876263410963, 0.08944901644918651], [0.42648273175645857, -0.025257369943201095, 0.0967577659082323], [0.48530644308831256, -0.025257055885034043, 0.09675784788853184], [0.5441233763386277, -0.025262603403053824, 0.09675639962968863], [0.6029561381493568, -0.025255495335854573, 0.09675825523096533], [0.6617663338377171, -0.025262219590400047, 0.09675649984040559], [0.36764705882353005, -0.025263921915037506, 0.09675605536332538], [0.30882427304653703, -0.025263459741800994, 0.09675617603995312], [0.7794117647058824, -0.025263921915088108, 0.09675605536331217], [0.7647058823527655, -0.04892003708809008, 0.08721714264581183], [0.6470588235293971, -0.04889652192985831, 0.08723032811564387], [0.5294117647058835, -0.0488915224870407, 0.08723313033990697], [0.4117865774407529, -0.04889193840125558, 0.08723289723130734], [0.3235294029274696, -0.04890038427893733, 0.08722816298290512], [0.470536248635375, -0.048899591624401356, 0.08722860734281372], [0.5882581438467585, -0.04888523094913426, 0.08723665625784731], [0.29411309769555005, -0.048885679552688716, 0.08723640487016777], [0.7352758896218002, -0.048900613143494386, 0.08722803468031538], [0.7499691729251774, -0.06940458678045196, 0.07199307837448479], [0.7794576446938971, -0.0694058140508646, 0.07199189521006377], [0.7646864520108181, -0.08538329980434751, 0.052054703097039266], [0.794220735825806, -0.08537958062346851, 0.05206080303415073], [0.7794503075183489, -0.09579230443596329, 0.028702515758165296], [0.7499318467976139, -0.09578772617733887, 0.028717790893018694], [0.7646820959833437, -0.0999394262431551, 0.003480098014275672], [0.735155682256375, -0.09993866994381845, 0.003501749542802413], [0.7499011790856395, -0.09755812822842189, -0.021963870710027207], [0.7203818964725016, -0.09756306633479768, -0.021941925333750282], [0.7794319467779199, -0.09755402144601645, -0.021982104078321556], [0.7646473829395953, -0.08878731296654815, -0.046008836718398276], [0.7941951279569173, -0.08877920342709818, -0.04602448303729139], [0.7794095362961148, -0.07419228947757327, -0.06704852110282504], [0.8089420231650306, -0.07416927554777702, -0.06707397829798026], [0.7941774740572038, -0.0547190210343644, -0.0837008287715288], [0.7646075198063508, -0.05473966879987749, -0.08368732675668233], [0.8237280063393677, -0.05469487634297792, -0.08371660827951859], [0.8089494674980767, -0.03163965922143582, -0.0948627005959213], [0.8237213482988579, -0.08873857302821209, -0.04610277276820416], [0.8385442778066192, -0.03162722056482762, -0.09486684836835123], [0.8237355354002949, -0.006465131562135116, -0.09979079152849867], [0.8531666981811303, -0.006374425927100418, -0.09979662666693653], [0.8385172950436832, 0.019129035914197685, -0.09815334933150949], [0.8089237399759498, 0.019108968646082507, -0.09815725809782501], [0.8237102650353137, 0.043442429972840015, -0.09007083478049313], [0.7941134198565938, 0.043418708852704574, -0.09008227196049219], [0.8088795152793979, 0.06488392656889536, -0.07609254939218552], [0.7793071215927917, 0.0648636814061045, -0.0761098077414953], [0.7940682399441178, 0.0820725648665629, -0.057132250929084014], [0.7645082689098336, 0.08205637354406499, -0.057155503329048465], [0.8236470050080794, 0.08208491003858805, -0.057114512551162566], [0.8088270643730975, 0.09389742533962182, -0.03439874292165549], [0.8384063553713286, 0.0939059822253448, -0.034375376394931656], [0.7497508580280902, 0.06485094996468782, -0.07612065612353558], [0.7349599608721739, 0.08204045296889753, -0.057178353217438076], [0.8236055956312012, 0.09955794592509588, -0.009392305530362783], [0.853184143844214, 0.09955933751915555, -0.009377543001600475], [0.7497045331934599, 0.09387087578278747, -0.0344711282056808], [0.7201710169175589, 0.09386185530695008, -0.03449568260430808], [0.8532375461772758, 0.08207455103541138, -0.05712939761922621], [0.7349135623252209, 0.09954342923369498, -0.009544930402908224], [0.705383704737195, 0.09954073723095425, -0.009572963570291271], [0.690637565249347, 0.0938540695932232, -0.0345168599497465], [0.6758698116881142, 0.09954187653933809, -0.009561109508167435], [0.6611208911483947, 0.09384838067941619, -0.03453232462275571], [0.6463519579688208, 0.09954045326324633, -0.009575915838575057], [0.6316146774055204, 0.09384250039584738, -0.034548301252816806], [0.6463933162313978, 0.08202683352896561, -0.05719788965697387], [0.6168834114903213, 0.0820213211576136, -0.05720579407332449], [0.6316474792124696, 0.06485636876613343, -0.07611603924582067], [0.6021616185446171, 0.06483991270883269, -0.07613005792662289], [0.616914154850689, 0.043452797754473346, -0.09006583351809294], [0.5874303927488626, 0.043434434574897596, -0.09007469063593246], [0.6021684948905268, 0.019225301962643056, -0.09813453910038601], [0.5726968946862561, 0.019203519618946435, -0.09813880391692542], [0.30879667249172055, -0.06937343439242326, 0.07202309768817321], [0.5579450391174697, 0.04341589085061069, -0.09008363015358482], [0.5432212268990302, 0.019183045596676298, -0.09814280799750859], [0.5874559111623763, -0.006267378594699199, -0.09980340658289527], [0.5284697037227306, 0.04339841244981867, -0.09009205179612362], [0.5137470918489421, 0.019164000586676236, -0.09814652862691513], [0.4989927750235866, 0.04338021576781568, -0.09010081509030737], [0.48427108852963385, 0.01914491834057856, -0.09815025268297878], [0.46951639257118044, 0.04336228032501447, -0.09010944814510219], [0.45479515192887593, 0.019125729685405313, -0.09815399362227097], [0.44001295120115336, 0.04340073442516135, -0.0900909332361288], [0.42531741979912274, 0.019107715035689143, -0.0981575021387306], [0.4104842288020281, 0.04338491605286889, -0.09009855192557491], [0.39583523955944266, 0.019086373257033554, -0.09816165420312149], [0.38108442592852887, 0.04331057506229786, -0.09013431137903627], [0.36635708007883266, 0.019064770482141093, -0.09816585214046321], [0.35160065742387103, 0.04329441760726023, -0.09014207343992127], [0.33686408054975525, 0.019038360094560038, -0.09817097761003434], [0.32209572223193433, 0.043283414974346936, -0.09014735707805573], [0.3073556912049313, 0.01901011617650174, -0.09817645075554478], [0.29256929296086076, 0.04327465264717494, -0.09015156370394443], [0.27783325438460044, 0.018980862516744152, -0.09818211068275351], [0.2630277749720095, 0.04326474847734421, -0.09015631724506132], [0.24826584520719738, 0.018952078107192717, -0.09818767099498218], [0.23346052965443587, 0.04327828201922605, -0.09014982143889323], [0.21868767831036467, 0.018921885211223722, -0.09819349398026975], [0.23351112037215013, -0.0066437698857239515, -0.09977905753065396], [0.38113172636498505, -0.0064041205255397195, -0.09979472551339758], [0.20392995286352017, 0.04331340267218766, -0.09013295262531305], [0.20391594493547252, -0.006672452415807271, -0.09977714356884944], [0.21864632721193963, -0.03185463509320834, -0.09479072857130356], [0.6021210153787934, 0.09383757430681547, -0.034561678897485335], [0.4990192282176507, -0.006322217139811733, -0.09979994774766703], [0.18908815467137152, -0.03185652830255081, -0.09479009233305337], [0.20396105093579955, -0.05488275473356382, -0.08359355975704992], [0.23353495086772968, -0.05486543324417415, -0.0836049294894091], [0.21878588653035647, -0.07431618810321808, -0.06691116637607737], [0.18920135998731188, -0.07434348560500428, -0.06688083543212149], [0.4551578116647175, 0.0650228832459836, -0.07597384190877267], [0.36632714453494386, 0.06471880759019119, -0.07623303709090835], [0.24824804249017896, 0.06474617706026242, -0.07620979304578346], [0.6169371207874018, -0.006250950988248994, -0.09980443683395296], [0.6022119266237481, -0.031329062361413904, -0.09496572987954464], [0.20401908959233386, -0.08888993675973361, -0.045810251503899835], [0.17443232782046056, -0.08890892987602544, -0.04577337859826374], [0.24835043540580634, -0.07428538109290497, -0.06694536694859379], [0.6316975128447123, -0.031315941875848644, -0.09497005730454451], [0.6169687239389074, -0.05435450638885872, -0.08393799875636489], [0.587489241852523, -0.0543673790983365, -0.08392966156239264], [0.6022354784353682, -0.0738437044176876, -0.06743224242061939], [0.5727666248133965, -0.07385493378556886, -0.06741994330707522], [0.18926044840399697, -0.09761942557533354, -0.021689807522011637], [0.15965894583071066, -0.09762992307961219, -0.021642507236200877], [0.5875091230565238, -0.0885102276822745, -0.046539656161513794], [0.5580461936567328, -0.08851666033774157, -0.04652742033094993], [0.513665521841903, 0.0648207607418581, -0.07614636548678332], [0.6464132373810408, 0.043430900281882096, -0.09007639480299605], [0.4400799400026611, -0.006361563742131581, -0.09979744739598702], [0.3073096728994885, 0.06477385458724877, -0.07618627016667733], [0.32214754540611057, -0.006464577496209127, -0.099790827423143], [0.14481562071106677, -0.08892234155661315, -0.045747318742075244], [0.21882706201844274, -0.09761110564412868, -0.021727219217625444], [0.20408663850108968, -0.09992825718754607, 0.003787270185720202], [0.13005038756437476, -0.09763896705279715, -0.021601669214734137], [0.14489961796366002, -0.09992176259571608, 0.003954915898645219], [0.5727917362033549, -0.097415764167384, -0.022586918596493498], [0.5433291216458614, -0.09741289566648054, -0.02259928666731281], [0.6022459170543911, -0.09740553634443318, -0.022630985163118848], [0.7056390975838636, -0.09993817015087263, 0.003515984484497712], [0.8680650796880692, 0.01906583266913889, -0.09816564584737576], [0.8679334411791562, -0.03142213533628004, -0.094934974645325], [0.6905974566301928, 0.0987175449263349, 0.015963906906426382], [0.8383632122971686, 0.09867670706561969, 0.016214422058336758], [0.867954538807146, 0.09867124573955076, 0.01624762334020524], [0.5285861526467955, -0.08852393184401397, -0.04651358393927915], [0.5138729515560108, -0.0974147394159827, -0.02259133782041669], [0.4991306679653406, -0.08853145616329926, -0.04649926095763051], [0.48441852774363847, -0.09741760589339346, -0.022578973891642443], [0.4696764561594782, -0.08853871813215591, -0.04648543203536621], [0.45496406270332956, -0.09742107968041268, -0.022563980896612212], [0.44022200626308156, -0.08854588591395006, -0.04647177732467034], [0.42550512797993445, -0.09742476170678215, -0.022548077664774766], [0.4107641321746767, -0.08855211936293816, -0.046459898367645504], [0.396047544575135, -0.09742851422450405, -0.02253185780191261], [0.38130074400785413, -0.08855801539395435, -0.0464486588556026], [0.36657184092817063, -0.09743323100970608, -0.022511452529973438], [0.35182073678177367, -0.08856234978217964, -0.046440394066575956], [0.33708566882326196, -0.0974378647892857, -0.022491387358384025], [0.2793340389455162, -0.06936168080949864, 0.07203441701909737], [0.6464553190167193, -0.054342620185598926, -0.08394569453738372], [0.6611964087236023, -0.03129597237777319, -0.09497663982753683], [0.38136031909290063, -0.09995731196327083, 0.002921606591817444], [0.5580653824556487, -0.09996174410779952, 0.0027658118024935013], [0.499163392310699, -0.09996098213349786, 0.00279321515578719], [0.4402853031488335, -0.09995892830572349, 0.0028657724911841384], [0.11527489848895878, -0.09992062515622001, 0.003983549722316935], [0.17430567662211238, -0.006685819436377395, -0.09977624876925449], [0.11518687189328332, -0.0889370456884613, -0.045718725968781675], [0.13012055439296566, -0.09561697694509001, 0.029281286171924284], [0.8827886441758029, 0.09956051761213992, -0.009365005755618829], [0.8087954654899485, 0.09868574145576059, 0.016159345077284983], [0.8235545291524474, 0.0913391231895298, 0.04070828631824113], [0.7940199495421826, 0.09135228299898572, 0.04067874618118436], [0.33824601106825747, -0.06937221385461076, 0.07202427330358945], [0.6759553569798401, -0.054333725756119215, -0.0839514517173993], [0.6907056826424822, -0.031275463475405656, -0.09498339530885683], [0.6908770923800083, -0.09756224384621302, -0.021945582145208035], [0.6761335548570545, -0.09993762814449206, 0.003531356800611795], [0.7204953916265785, -0.06938088809138133, 0.07201591746031719], [0.12997202686086706, -0.0743697585072036, -0.06685161942376724], [0.29394518515434576, -0.08536591406469995, 0.05208320953914284], [0.897553183333622, 0.09866607853371222, 0.016278972534510005], [0.8827175241462338, 0.09128547836143627, 0.04082843911201791], [0.7793419977744842, 0.019143002183357717, -0.09815062642392029], [0.8089830745963451, -0.09579380881169473, 0.028697494548278517], [0.8237622833345993, -0.0853755473374742, 0.05206741703624927], [0.8385381997761547, -0.0957950105773177, 0.028693482683208586], [0.8533208044367429, -0.08537167575624077, 0.05207376478200225], [0.8680991336973582, -0.09579622582647514, 0.028689425184255185], [0.8828831672999823, -0.08536783489309328, 0.052080061114264865], [0.897527945520402, -0.09577600809720085, 0.028756847410050267], [0.8828969894065074, -0.0999425192966485, 0.003390108647084956], [0.32239201628636005, -0.08858215752476013, -0.046402600878168256], [0.30760315786463466, -0.09744366245830433, -0.022466255734146037], [0.720207790444644, 0.06483607917059139, -0.076133322781715], [0.10092631340060251, -0.09557155586128963, 0.029429198260441963], [0.10063201548061218, -0.0742834580196473, -0.06694750080953951], [0.11512845404280868, -0.05486544252492502, -0.08360492339894911], [0.26457113252915004, -0.08533417895649106, 0.05213518870994481], [0.26301524583997665, -0.054727697859501497, -0.08369515569612808], [0.558011733730745, -0.05438221248690269, -0.083920051030903], [0.4549358812395379, -0.073901378943395, -0.06736902990443557], [0.396022772498245, -0.0739137199708689, -0.06735548975449568], [0.33707306294814315, -0.0739177671680645, -0.06735104822412048], [0.11538072716365921, -0.08502451588216486, 0.05263869013381222], [0.14494687762509673, -0.08505109719071301, 0.05259573049835789], [0.9120903265396947, -0.099948564823149, 0.0032069284046869345], [0.8976613275130194, -0.09750203425544417, -0.022211558163492056], [0.08806422084220177, -0.09990035146930713, 0.004463157661219504], [0.8087692327017469, 0.07800193089727268, 0.06257554455453898], [0.7792352614987568, 0.07804551469948927, 0.06252117749444423], [0.9124124259574106, 0.0995621261791259, -0.009347889103525608], [0.9124595450054869, -0.0853494077081886, 0.052110254306243796], [0.9123370019699265, 0.09127143903458962, 0.040859814201182995], [0.8974934425320827, 0.07789373401191206, 0.06271017622110062], [0.08584318235292668, -0.08498127050817884, 0.052708478092387934], [0.0854878119372445, -0.05487671023160598, -0.08359752791893045], [0.10022688163060628, -0.031762418861078154, -0.09482166813599845], [0.867920505104921, 0.07791811340791087, 0.0626798819634493], [0.6613697353862326, -0.0975653034515519, -0.021931975798057817], [0.6466390804919594, -0.09993707427568743, 0.0035469966472680514], [0.6613989106743059, -0.0957839051592645, 0.028730532755955288], [0.6319310208678611, -0.09577851333755305, 0.028748502271391044], [0.705493116024876, -0.054345066420196306, -0.08394411090591436], [0.720228181319695, -0.0312598964431825, -0.09498851969770612], [0.7054381947902206, -0.006152843060005258, -0.09981053312290715], [0.5138419902278772, -0.07387951690799047, -0.06739300395027623], [0.8976058292758048, 0.0938976989286514, -0.03439799610303394], [0.08551919201596948, -0.08895973981763437, -0.045674551903426445], [0.7349833560200216, 0.043410748749305804, -0.09008610821333467], [0.23363374066624165, -0.09992976408875585, 0.003747298915966143], [0.21890128935428918, -0.0957036251483522, 0.028996829714016778], [0.24831314487032158, -0.09758890031181748, -0.021826739012737337], [0.32235882232636265, -0.09995684934123258, 0.0029373916616837496], [0.2929489627097259, -0.09995400359864166, 0.0030326827402033076], [0.8680393350634681, -0.06935860182344035, 0.07203738163687971], [0.7644967750032868, 0.09136055926526643, 0.04066015507518065], [0.7495925941423995, 0.07828570009432569, 0.062220166833120094], [0.13021585947432243, -0.06889626222333968, 0.07247968716580405], [0.24984753412930258, -0.06933933884948577, 0.07205592333678189], [0.7054520048121337, 0.043406904311647246, -0.09008796067222023], [0.15976552424881799, -0.0689581531049237, 0.07242080585272369], [0.9254434520865229, 0.07799641291293194, 0.06258242223432568], [0.07056087902987564, -0.03177281122207685, -0.09481818637290143], [0.08538984134986531, -0.006517675207973954, -0.09978737349927276], [0.11502701120734632, -0.006576989598487036, -0.09978348163810177], [0.10021175031096849, 0.019171990108757666, -0.09814496826261496], [0.12980360927249118, 0.019050949493181646, -0.09816853530234747], [0.11504197946896351, 0.04357258713672834, -0.090007942150747], [0.14464778115120447, 0.04362910480843063, -0.08998056019838381], [0.12986420548372063, 0.0650922111246891, -0.07591445218730691], [0.10019033465642312, 0.06507394807742284, -0.0759301078730755], [0.11501903137339321, 0.08228295097491041, -0.056828830525187585], [0.14468058542170073, 0.08229767704900781, -0.05680750260605739], [0.12983921055610542, 0.09404924597822584, -0.03398145569170302], [0.15948140914033018, 0.09405464290482338, -0.03396651510011228], [0.14465509338375387, 0.09960073836177477, -0.008927088987418398], [0.17424976064006936, 0.09960273321694861, -0.00890480408057132], [0.15945535912573372, 0.09859807972121917, 0.016685882514512414], [0.18902883237516374, 0.0985957356430569, 0.016699727932048554], [0.12989836901042978, 0.09860082838037844, 0.016669632350569608], [0.17424251508064814, 0.09112601049239796, 0.04118313018384324], [0.20379790468521475, 0.09112160379267209, 0.04119287950910065], [0.21859235720667142, 0.09859222641434005, 0.01672043332762378], [0.23334473560620458, 0.09111547861728116, 0.041206426153499155], [0.24813796238346464, 0.09858766576991905, 0.01674730300790949], [0.26287914381391275, 0.09110823081091625, 0.041222448720385524], [0.27766481106829344, 0.09858279548027916, 0.016775948119061638], [0.2924130544655635, 0.09110271047633065, 0.041234647371668855], [0.30718460389966046, 0.09857813354790233, 0.016803320690028187], [0.32192009593930065, 0.09110174291330228, 0.04123678501239618], [0.33668804440284517, 0.09857348305006124, 0.016830580482540995], [0.35141370591241883, 0.09109628418593145, 0.04124884249910557], [0.36618613755209006, 0.0985688793765308, 0.016857521124261542], [0.38090771571733567, 0.091082320592269, 0.04127966661114324], [0.3956724744961089, 0.09856460349092684, 0.016882503922000972], [0.41039781272324577, 0.09106979142771779, 0.041307300678112335], [0.42514183086431584, 0.09855822355079948, 0.016919709527962942], [0.43987915293489144, 0.0910601003721775, 0.04132865979207364], [0.4546276911612116, 0.09855524808489739, 0.016937032648144987], [0.46936418861517243, 0.09105091540037502, 0.041348891215530266], [0.48412940258308096, 0.09855041750026299, 0.016965117462719292], [0.49884620696358944, 0.09104109921426042, 0.041370499801902244], [0.5136036127782491, 0.09855459553464312, 0.016940829348142974], [0.5283304688101547, 0.091032031792916, 0.041390448024315164], [0.4102361884553836, 0.09963758384478139, -0.008505991157658044], [0.10021159192561258, 0.09404073424801862, -0.03400500407430553], [0.543091221126385, 0.09854418109110498, 0.017001305040599286], [0.557805786642916, 0.09103852587519945, 0.041376162297519066], [0.18906457297769652, 0.09407313652336764, -0.03391526182496366], [0.4988862818944352, 0.09963440126316953, -0.008543189388613693], [0.35145957177385545, 0.0996230798335828, -0.008674212613925515], [0.2924512109263582, 0.09961696097736841, -0.008744202973025153], [0.18900428551555457, 0.07768478983429279, 0.0629688290219991], [0.45462194903592074, 0.07790206070568327, 0.06269983203971158], [0.5430506791076255, 0.07757344707958207, 0.06310594510972226], [0.5724905189462758, 0.07733453116742016, 0.06339850383972256], [0.587304156475632, 0.09103023610243076, 0.04139439714666359], [0.602115525154498, 0.07722605144548929, 0.06353059875476257], [0.15948194446146796, 0.07768843489015596, 0.06296433184206751], [0.36612663549500124, 0.07795850471703895, 0.06262963789040628], [0.30732865368740436, 0.0775339805200063, 0.0631544287023743], [0.24806405700533987, 0.07764966523030142, 0.0630121376373006], [0.23339035696883215, 0.09960943136437654, -0.008829563028007548], [0.6167935130943157, 0.09102073327363262, 0.041415288412978896], [0.6315080786587788, 0.07752692714985716, 0.06316308705803364], [0.17424116862911318, 0.05918580983602786, 0.08060421771876175], [0.6197948999031326, 0.058977311374388545, 0.0807568990430441], [0.07295751788005779, 0.01885972221659757, -0.0982054523838304], [0.6462911423806809, 0.09101907013212883, 0.041418943398916046], [0.6608712917548376, 0.07773177826255612, 0.06291081503319446], [0.17449118469387742, -0.08507148073300148, 0.052562754550104784], [0.18968731693937171, -0.06882071893514428, 0.07255142069766707], [0.7349683352154699, 0.09137951288562046, 0.040617540851050064], [0.7202103414004234, 0.078092068132224, 0.06246302021862283], [0.7644651476729035, 0.09954960051272978, -0.009480350086147093], [0.690680182226011, 0.06484829338187904, -0.07612291931775698], [0.7349396692334553, -0.006218671149454756, -0.09980645334413471], [0.30760694047391896, -0.0739517216530545, -0.06731376430232637], [0.15949799309059454, -0.0318199838879513, -0.09480236613803752], [0.868065942381871, -0.09751514715133208, -0.022153917848860227], [0.8829042369281009, -0.08865568916743816, -0.04626195821889292], [0.912509687921275, -0.08863529377026787, -0.04630102264808326], [0.8976606664844016, -0.07392343982867923, -0.06734482195310668], [0.9255074217922546, -0.07374004622788573, -0.0675455815158125], [0.9124711947588829, -0.05428784689631317, -0.08398112692362766], [0.8680875553120587, -0.07400318504296209, -0.06725718254206839], [0.6020762900204979, 0.09862528981280698, 0.016524291492824427], [0.661214439615719, -0.07383844054512011, -0.06743800633073874], [0.7056872155412329, -0.08877645193551865, -0.046029790155295625], [0.646684022936706, -0.08538778754082103, 0.05204734132387172], [0.6172120839565816, -0.08538283048610736, 0.05205547289364164], [0.602472776930744, -0.09577195102415373, 0.028770356220024423], [0.587775498760543, -0.0853721571553109, 0.05207297555017291], [0.6761986477794915, -0.08536506575489501, 0.052084599918425484], [0.8237580253561303, -0.09994060940080156, 0.003445953075191214], [0.32231438903994925, -0.05442825432894013, -0.08389019686890843], [0.3517859272838287, -0.05442612743157501, -0.08389157676907713], [0.9251775958150404, 0.09398531494410754, -0.0341578772006827], [0.9124389137272171, 0.0820213326844745, -0.05720577754617756], [0.9404851416567761, 0.09962604110608964, -0.00864013504105902], [0.9421339196048666, 0.08202935226158478, -0.05719427740206912], [0.9258357083834466, 0.06488230665483483, -0.07609393065907412], [0.8970827715564788, 0.06488317936812418, -0.07609318652207848], [0.9124512177831319, 0.043130004219168454, -0.09022085532765975], [0.20387251731749512, 0.059426958601402374, 0.08042659132020462], [0.7644531935432659, 0.059678548828952016, 0.08024008231345725], [0.8825406091389515, 0.05967191516382151, 0.08024501567500429], [0.8530647798538386, 0.05984378200063444, 0.08011692552676082], [0.5577722580415554, 0.05905428892227575, 0.08070062552350123], [0.5282901338003079, 0.05907355861328335, 0.08068652101040777], [0.14462026069382428, 0.059439778450638484, 0.08041711719366101], [0.12994859694318303, 0.07769793847499933, 0.06295260405046978], [0.11515390463281379, 0.059486015468243406, 0.0803829208458607], [0.10040559883888611, 0.07770699355783496, 0.06294142635977198], [0.08559121583020142, 0.05948418089750339, 0.08038427845638157], [0.07312320766441295, 0.07789738337481973, 0.06270564299452132], [0.0857125443348062, 0.09116128420776591, 0.041104990713913735], [0.9421542826042463, 0.04312797560627335, -0.09022182507633446], [0.925743193584824, 0.018461366992024966, -0.09828111684746857], [0.18899064466746487, 0.03682429455317357, 0.09297296021242472], [0.05605573809044827, 0.059148198414220976, 0.08063182141283894], [0.5367876665790663, 0.03623071847089279, 0.09320587448805419], [0.941956287947523, 0.09125681701195158, 0.04089246078248633], [0.9421914447056321, -0.08863282251462995, -0.04630575313165861], [0.587193627918796, 0.050935137543592156, 0.08605586420119983], [0.6151970130197862, 0.034205059976771555, 0.09396815349886077], [0.9421697858242822, -0.05426852804428043, -0.08399361204226875], [0.927300725796929, -0.031048894822275755, -0.09505769895340017], [0.9538646824351048, -0.030594816394101793, -0.0952048171565452], [0.05602615504805273, 0.09115927521659327, 0.04110944589732886], [0.07082869498653327, 0.09862185822214888, 0.016544759919997994], [0.04539174150984776, 0.09853453034886939, 0.017057148909701638], [0.0569797187723247, 0.09964535988947497, -0.008414407435881188], [0.5135352290434028, 0.036730238089968434, 0.09301015863793712], [0.4988125750753291, 0.059090676616223047, 0.08067398550361168], [0.46807548304821434, 0.05059173144348019, 0.08625819792663637], [0.6757675012951383, 0.09098363892788523, 0.04149671610429198], [0.5730173220644416, -0.09576529966979733, 0.028792488241795273], [0.55842447118608, -0.08541588911548224, 0.052001210434100845], [0.587719951169413, -0.09993447914384888, 0.0036193753946820156], [0.24843642880564887, -0.09571594201424803, 0.028956146917798038], [0.6904964165624851, 0.07749464513511171, 0.06320268962143227], [0.6757263983170427, 0.05896530400643617, 0.08076566673673015], [0.7052197234358699, 0.058944795490344204, 0.0807806355793361], [0.6904512546553758, 0.03657245733112818, 0.09307231255729496], [0.7349391812715735, 0.050886143937384824, 0.08608484393424752], [0.6424813012183475, 0.048795823714087735, 0.08728669765814072], [0.05634291540465751, -0.055116464708662716, -0.08343965075441497], [0.04560626267694145, -0.031241257683337034, -0.09499465152503765], [0.04458082478887464, -0.07510308247000715, -0.06602671431703461], [0.7054781111190427, 0.09137824965100198, 0.04062038270030399], [0.23437289800968508, -0.08520296395730587, 0.05234935465590798], [0.21939947490967998, -0.06890329307736524, 0.07247300327083671], [0.2630170402682017, -0.09994221433459814, 0.0033990872153041984], [0.27818794401883573, -0.09749254709063114, -0.022253162961275167], [0.6318805571158408, -0.09757905069790641, -0.021870730781009786], [0.6465546435110131, -0.08873774779780497, -0.0461043611361568], [0.20402674369836277, -0.08509077621076473, 0.052531512483932466], [0.20524477909741068, -0.04860641947854162, 0.0873923107914881], [0.18926092889723753, -0.09565732711597705, 0.029149198428549725], [0.6169736634389081, -0.08850561434521466, -0.04654842886044739], [0.6610849169115408, 0.0985863545128134, 0.016755020258832083], [0.29275901779994945, -0.054529505499086445, -0.0838244178627272], [0.27782490647793917, -0.07412619846358215, -0.06712158148716128], [0.27781178698041825, -0.03164434615456831, -0.09486113722937257], [0.45556218263849907, 0.025696357396768583, 0.09664210892016761], [0.4404440679959905, 0.047944615335794284, 0.08775712996846877], [0.8383408848586761, 0.07797017034836148, 0.06261511427640686], [0.8234258337694695, 0.05967290442662362, 0.080244280028492], [0.8364068403902202, 0.03768074927037067, 0.09262915920175172], [0.8106682072447592, 0.0373124201771627, 0.09277814020836406], [0.14527106785360416, -0.048929011186011076, 0.08721210847330318], [0.9123236309410845, 0.05971570745032586, 0.08021243222660122], [0.9357544713368717, 0.0605886038204328, 0.07955514494418718], [0.8973803665471297, 0.03704838979161211, 0.0928838888820272], [0.7497284109335715, -0.031311679740665746, -0.09497146261808323], [0.10061611616763468, -0.06886951884532808, 0.07250509895181854], [0.07104623107030575, -0.06883888000613726, 0.0725341891765575], [0.05781188078842986, -0.08515720675343262, 0.05242375547357451], [0.04515226240102037, -0.0686154590515651, 0.07274557566713587], [0.04360381945476443, -0.09603308108489401, 0.027886328860970155], [0.08595312073030069, -0.04842585814086596, 0.08749249261119907], [0.21853992026768074, 0.07767882725444411, 0.06297618435864652], [0.23327573516226166, 0.059510934970166525, 0.08036447361226606], [0.2627900318385172, 0.05913527327057478, 0.08064130117510783], [0.24905349958433876, 0.038844137911123365, 0.09214734369444204], [0.29442123307355444, 0.052063676827358046, 0.08537782824139074], [0.7940352921765833, 0.09955366031727948, -0.009437622445919848], [0.16145380963379116, 0.03732151905655148, 0.0927744804098167], [0.17448072123503897, -0.09992381532830825, 0.0039027080641712768], [0.752287247438204, 0.027697701155738292, 0.09608765451756754], [0.8531450606367772, 0.09131110214849088, 0.04077110035831584], [0.27774143892785175, 0.07738392673677055, 0.06333820239632733], [0.32468533955120193, 0.05883248320288589, 0.08086246916946177], [0.11506948799781111, 0.09959911741603124, -0.008945155669278684], [0.8384912216981032, -0.06937097427158236, 0.07202546722244471], [0.6314186457658005, 0.09864858708323769, 0.016384635073167376], [0.808961194197523, -0.06939123187156615, 0.07200595072177396], [0.7792668046295211, 0.09388435676647026, -0.034434394935095446], [0.7941274052055918, -0.0063990700847085, -0.09979504948669041], [0.7794110047530024, -0.03149633693043595, -0.09491038278273066], [0.7350558836381074, -0.054372154256907904, -0.08392656815015741], [0.7201391884854556, -0.07397848426245117, -0.0672843508271445], [0.7498598473011355, -0.0741677118104751, -0.06707570741183658], [0.17429846460199588, 0.08232236240187474, -0.056771724023270576], [0.20389249715887497, 0.08236973686001701, -0.056702966850170664], [0.18908903563117793, 0.06518094969702387, -0.07583827395579391], [0.6908774234700152, -0.09578708017948913, 0.028719945520284763], [0.7203970734742421, -0.09578607478187846, 0.028723298520197674], [0.7351919166100788, -0.08536717986227323, 0.05208113480294279], [0.7056870220749701, -0.08535191650914059, 0.052106145013968354], [0.6911402606609749, -0.06930907803758557, 0.07208503105069648], [0.23352306297917302, -0.08885370813708292, -0.045880481147107514], [0.14469969983745354, 0.0911219468902747, 0.041192120544176425], [0.8532529461082342, 0.04343269540748481, -0.09007552924985035], [0.3823700598927923, -0.048894865605612785, 0.08723125653920769], [0.3970931260151939, -0.06934594350225262, 0.0720495671033656], [0.42630031240924077, -0.06927404650048952, 0.07211869716965229], [0.4117681161827683, -0.08529799221209039, 0.05219437253752711], [0.3822996482332753, -0.08534333288972519, 0.052120202717118765], [0.4405855508667658, -0.08542761040661231, 0.05198195244713362], [0.39673490882676227, -0.09581404715540928, 0.028629850989849825], [0.7645472518723977, 0.04341667531762988, -0.09008325207475308], [0.7054362796229148, 0.08203387912356204, -0.05718778432445876], [0.6759151478005191, 0.08202961343040609, -0.057193902825896925], [0.5286209446119415, -0.09996154885503465, 0.002772859625463115], [0.5139066329571442, -0.09600821276846544, 0.02797182655825453], [0.48448898218569686, -0.09600542276115667, 0.027981400973710716], [0.49943221599642784, -0.08586351908117597, 0.051258717219576755], [0.5285231261566264, -0.08571152098605979, 0.051512475869989305], [0.5138091430362619, -0.0698204399629602, 0.07158984678974153], [0.4848042881182352, -0.06990830235899125, 0.0715040506634684], [0.46972485359669935, -0.09996004334639556, 0.0028266117856402314], [0.45533097449013593, -0.09595766816402135, 0.028144731665510018], [0.6317101129198253, -0.07383850087508753, -0.06743794027489047], [0.6760514553309327, -0.08865870988218018, -0.04625616890780527], [0.572680686918121, 0.06482437201186816, -0.07614329119014308], [0.7201400716089705, 0.09871094694654155, 0.016004654101762363], [0.7496833031170432, 0.09870277767122076, 0.016054958112233134], [0.7792426678382365, 0.09869387921703274, 0.016109568743258054], [0.6168437605487274, 0.09953893136303586, -0.009591722634898986], [0.5873489194530589, 0.0995364534948151, -0.00961740223108656], [0.5726285110731912, 0.09383524017951037, -0.03456801557008454], [0.557871417718957, 0.09953666500728055, -0.009615212906036494], [0.5431410338089676, 0.09383351434135596, -0.03457270001533786], [0.5283930296680879, 0.09952962321942051, -0.009687832667846282], [0.5136561012017992, 0.0938304499625102, -0.0345810158878085], [0.4838732801091821, 0.09415627040856281, -0.03368377566054017], [0.49865206875537577, 0.08234747808312437, -0.05673528754971946], [0.46904355858308083, 0.08275790346049905, -0.05613492152682432], [0.45421873127687057, 0.09437730187955817, -0.033059414543133436], [0.43915062914331976, 0.08312884865452265, -0.05558412112621258], [0.42503988605971277, 0.06558689319638791, -0.07548747870240204], [0.41017848364614073, 0.08257071441132197, -0.05640990269096291], [0.5727636905240453, 0.09868384891544275, 0.016170898652643487], [0.5873803653000489, 0.08201795133890406, -0.057210625395717904], [0.5579729468057694, -0.006287599357251066, -0.09980213471826489], [0.5727394520317901, -0.03135404339217239, -0.0949574850286262], [0.5431720061532368, 0.06482299406525786, -0.07614446427952291], [0.3956356836594935, 0.07764582057191824, 0.06301687510273327], [0.38272929743972894, 0.05958211576058894, 0.08031171447237186], [0.4084778606042421, 0.059191182941265255, 0.08060027209639968], [0.20382236647739646, 0.09960588002957886, -0.008869535699975551], [0.6611532548706297, 0.06485991890279316, -0.07611301412979972], [0.4695497679337848, -0.006338198648977799, -0.09979893405185296], [0.48430276569948694, -0.03138721958193308, -0.09494652414341202], [0.5137830026033888, -0.031383584941747235, -0.09494772559784745], [0.5432585098382063, -0.031368883876892066, -0.09495258355788988], [0.5285378725221618, -0.054391220956669775, -0.0839142126391157], [0.49906655260511457, -0.054399489194068666, -0.08390885278338873], [0.5284944747586674, -0.006306328017828637, -0.09980095303618873], [0.45482937834781645, -0.03140750886208869, -0.0949398145515243], [0.42536293294249694, -0.03142400667401509, -0.0949343552385092], [0.46958819580713484, -0.054408292724781517, -0.08390314465366891], [0.44010990220515595, -0.05442691570440845, -0.08389106535802977], [0.4107744586873228, -0.09995967701534537, 0.0028395371080216416], [0.42498086181861633, 0.0779138299549444, 0.06268520640272322], [0.8384565770016567, 0.06490996447374, -0.07607033923953414], [0.557891344560693, 0.08201637596450728, -0.057212883808182485], [0.5285209726693784, 0.082147840978422, -0.05702396182819893], [0.6759260737716616, 0.04342353353895953, -0.09007994635317483], [0.6611471477842897, 0.019263202349729704, -0.0981271065263486], [0.35184205498006543, -0.09995769031847639, 0.0029086330458773595], [0.33713505791025183, -0.09595945625630532, 0.028138634561652477], [0.3079120890045515, -0.09596322909563186, 0.028125765083625263], [0.38085806014112134, 0.09963034461019177, -0.00859036860992796], [0.3661203596244695, 0.09420519419237089, -0.03354670456509393], [0.33668927008620847, 0.09418163219346905, -0.03361279752377231], [0.35151458535732594, 0.08258779250005151, -0.056384896292965135], [0.32201268585658954, 0.08251639538795304, -0.05648933078182996], [0.5135790949748537, 0.07759112302201529, 0.06308421060917294], [0.48410108796965146, 0.07793707228113554, 0.06265630665978528], [0.32196492887385514, 0.09962036414024862, -0.008705345976138376], [0.4106047016805048, -0.006381541747038941, -0.09979617189517243], [0.2629219962719024, 0.0996131456193461, -0.008787560515806037], [0.27771916963716187, 0.09412887384617917, -0.03376025930661804], [0.558790382064746, -0.04891573380232725, 0.08721955621636619], [0.48441384525319536, 0.06495282983442838, -0.0760337418288735], [0.5433340534076663, -0.09601445943034022, 0.027950377104782622], [0.36672443395383225, -0.09591382866642129, 0.028293770878912185], [0.7351512888116913, -0.0887761978045174, -0.046030280287797515], [0.8976506493080572, -0.06934282536062854, 0.07205256810832886], [0.9271808797959965, -0.06930154369329175, 0.07209227449405914], [0.9414044623132086, -0.08544959518593069, 0.05194580524508757], [0.9523301639838258, -0.06891180853345412, 0.07246490629710745], [0.9538757399383628, -0.09622039202811505, 0.027232997594019093], [0.543302436473446, -0.07386603076982906, -0.06740778514615847], [0.6171732347686647, -0.09993699299680624, 0.0035492859502017113], [0.32334003388743376, -0.08537424403559705, 0.0520695540152815], [0.7942159934513615, -0.09994005986130869, 0.003461854260080687], [0.6759324877252006, -0.0061950977548271965, -0.0998079193441489], [0.48438845309248996, -0.07389340481400913, -0.06737777619507021], [0.44113312601568305, -0.04888049560690822, 0.08723930965581413], [0.39593937689270564, -0.03145393820872903, -0.09492444243271309], [0.41067282707908304, -0.0544301480411691, -0.0838889681913922], [0.30721283901646895, 0.0941548004002868, -0.033687884492531586], [0.4254773165452157, -0.07391038864121258, -0.06735914526554587], [0.15947570885003318, 0.06513683299553083, -0.07587616877065106], [0.21863488146348004, 0.09409465467954128, -0.03385551595734265], [0.23338471064043853, 0.0823612959030458, -0.05671522667829985], [0.2777715003080364, 0.0647807773923706, -0.07618038382969812], [0.33681940901288143, 0.06480006050878281, -0.07616398202600809], [0.085364025802054, 0.043554575730903315, -0.09001665919651214], [0.07286568681591755, 0.0652894262702425, -0.07574490621357033], [0.7939470130514953, 0.05987156048978859, 0.08009616872558627], [0.35165018840447443, -0.006429298089788582, -0.09979310660598079], [0.6906336965885886, -0.07391290638547537, -0.06735638254576883], [0.15969115785509969, -0.09563064459328607, 0.029236617702336973], [0.6464249363453476, -0.0062348585023857695, -0.09980544343599314], [0.36654450407810774, -0.07391442660274855, -0.0673547143115231], [0.27941663398618627, -0.025259720080991456, 0.09675715240451196], [0.7205868461813099, -0.025261490515347474, 0.09675669019216711], [0.22060319697288522, -0.02525549533585483, 0.09675825523096528], [0.4999006132032612, -0.048932214469707566, 0.08721031124294042], [0.3529543425523056, -0.048896549526121796, 0.08723031264669133], [0.8088271124860142, -0.025261377989559738, 0.0967567195706251], [0.29261852231564656, -0.0064921687516608295, -0.09978903619586654], [0.24817598009686218, 0.09409911068379972, -0.03384312882282024], [0.10294117647058837, 0.025263921915040805, 0.09675605536332452], [0.17435340051220097, -0.05490449199675414, -0.0835792842669663], [0.0854733943784492, 0.08231063476499464, -0.05678872603416685], [0.05563706250660977, 0.08228786063921252, -0.056821721123365684], [0.6764705882352945, -0.04888885400611051, 0.08723462588885912], [0.6176695093635965, -0.048877353580456154, 0.08724107007007122], [0.10393784885175798, -0.09774409807550975, -0.021120873358010755], [0.7941191466065999, -0.04888783596533244, 0.08723519642109338], [0.8676472569532367, -0.025261227367258676, 0.09675675889517828], [0.18911078149525576, 0.018927197079928064, -0.09819247023421684], [0.05803890249045006, -0.006266965405404869, -0.09980343252918437], [0.36764705882353005, 0.025263921915040805, 0.09675605536332452], [0.35302329838814134, 0.047857126009733235, 0.08780487167628294], [0.3088085677329904, 0.025255495335847603, 0.09675825523096714], [0.8089607371773909, -0.09754722605096877, -0.022012239544426108], [0.9246363322405238, 0.09871026123165358, 0.016008882771096574], [0.15958444689915768, -0.07435836833743248, -0.06686428836228436], [0.853319479849388, -0.09994159988707609, 0.0034171057946160125], [0.36766246569800975, -0.06936002848276335, 0.07203600800204198], [0.9257197896691108, -0.09749252422180187, -0.022253263150858908], [0.35285813802789107, -0.0853519758003833, 0.052106047892454745], [0.2628811223355019, 0.08211310742064955, -0.05707396595405705], [0.29250066731588914, 0.08253231047195977, -0.05646607590544996], [0.6316632943890041, 0.019242335024868235, -0.09813120065907034], [0.8680074653436679, 0.09390216559934848, -0.034385800786844174], [0.21857272642989262, 0.065159996371366, -0.07585627774207994], [0.14474927159063303, -0.05491340675280355, -0.08357342734865643], [0.9254514002072272, -0.02514606084032268, 0.09678675335093535], [0.15947795151827127, 0.019007439707265907, -0.09817696896815796], [0.12987006992307853, -0.03179084277676646, -0.09481214223686184], [0.8828001492232993, 0.08206060652269205, -0.057149425693771495], [0.14466975316031944, -0.006628883603202607, -0.099780047615619], [0.7058681874317341, -0.048891855808082356, 0.08723294352274077], [0.838493683740284, -0.09753842182149039, -0.022051219208311486], [0.2648347644672128, -0.04882339894995518, 0.08727127657467555], [0.867814564622377, 0.06489521618307784, -0.07608292131977842], [0.17414674769997876, 0.04349089556870946, -0.09004744306548412], [0.3812348604911501, -0.054433792891227205, -0.08388660317044068], [0.11516742549555781, 0.09111988460039797, 0.0411966822743065], [0.853324410327524, -0.08868601040724443, -0.046203804584104655], [0.8384788033927496, -0.07410764662952576, -0.06714206364890296], [0.8972186974971382, 0.01879758173818563, -0.09821736567835768], [0.8235532592365734, -0.04889131770385828, 0.08723324511435071], [0.8529868386893714, -0.04887489031427969, 0.08724245008461837], [0.8976430700233425, -0.031248432949889715, -0.09499229146713034], [0.36649605759840365, -0.0314483031018668, -0.09492630948274097], [0.3370076740674929, -0.03145089381521754, -0.09492545116155053], [0.10036608025151651, 0.0986085749927503, 0.016623746205327593], [0.08616181467761454, 0.09961679482874329, -0.008746095588779203], [0.24820072873121074, -0.03175182137108217, -0.09482521731912294], [0.6617353200797669, -0.0693318926880026, 0.07206308802916572], [0.6323122389934462, -0.0693429632996951, 0.0720524353566008], [0.6028821566566509, -0.06935134452501616, 0.07204436836125717], [0.5434965196638869, -0.06961448098739852, 0.07179013885524341], [0.573293472126069, -0.06946504245398326, 0.07193474735387834], [0.9681605200315825, 0.06603249664142243, 0.07509799855722214], [0.025766912303084925, 0.0679864001374614, 0.07333382164014764], [0.6906723575894276, 0.019281116699837956, -0.09812358808567505], [0.39550236137585665, 0.0645946537746927, -0.0763382650033886], [0.7497650685187439, 0.019221622648410742, -0.0981352598343842], [0.9723889251289503, -0.07893286658462816, -0.06139708928551333], [0.7202113558113172, 0.019252447545290208, -0.09812921717570076], [0.9717640257994258, 0.07821171527140107, -0.062313141425427175], [0.026983542686390975, 0.07819990059981519, -0.06232796760828177], [0.025441918055474036, 0.029521486189657463, -0.09554308898687476], [0.051547350811382606, 0.04337713381728996, -0.09010229887076646], [0.9742164296471715, 0.029463452144209725, -0.09556100139568373], [0.9723887975546825, 0.09719093779010271, 0.023535539328436644], [0.9685284228485401, 0.09970400313564175, -0.007688417179624242], [0.9709446618491513, -0.09989391244677714, -0.004605025089575489], [0.030064345808494472, -0.09993080151292759, -0.003719530747805236], [0.051538329543831134, -0.0974927912181828, -0.022252093395629505], [0.26307645811871766, -0.006529850820961373, -0.09978657749545272], [0.30744280182441835, -0.031537300295059155, -0.0948967791344852], [0.7645409746046026, -0.006311837517188325, -0.09980060474344137], [0.29280276703231056, -0.08867603410280261, -0.04622294858399436], [0.8824349575222783, -0.04885066950184614, 0.0872560146306339], [0.8827948710881844, -0.006366494755782319, -0.09979713294741786], [0.8827143965207456, 0.043298641535457816, -0.09014004460384921], [0.9258965031093196, -0.09582121666229658, 0.028605846209423948], [0.26296580220233157, -0.08879966036190788, -0.045985001028702864], [0.8532603153733294, -0.054613247502995045, -0.08376988239920485], [0.46921650264296055, 0.09963966512761226, -0.00848157610690938], [0.07405205978155724, 0.09414621427810352, -0.033711872346421465], [0.45519741747044073, -0.06937381635479813, 0.07202272977588908], [0.9117796369672574, -0.04880345012330112, 0.08728243383443465], [0.882808977034735, -0.05445038343781487, -0.08387583527736063], [0.47031719274877126, -0.08586007687550312, 0.051264482821274014], [0.39570615718322133, 0.09428246276504869, -0.03332892459947084], [0.42590365813112063, -0.09570652772074777, 0.02898724808666291], [0.38071836950315474, 0.08214603502922088, -0.05702656336285767], [0.27894401158476834, -0.095852537395982, 0.028500720600572026], [0.43961545441294464, 0.09964546548607603, -0.008413156842899961], [0.9411765179175979, -0.04872940805418515, 0.08732379280979906], [0.23499528644396064, -0.048739898554397525, 0.08731793795610977], [0.33665407072921366, 0.0779437344613336, 0.06264801878927309], [0.07250441195085068, -0.0743543614400629, -0.06686874408002956], [0.9123608405502863, -0.006382046241231927, -0.09979613963362899], [0.029198150390720448, 0.09967442486347643, -0.00806281763003458], [0.9399744269230423, -0.006020720800887585, -0.09981859005735233], [0.42482715611529753, 0.09432901366480066, -0.03319694535685253], [0.17501758531799388, -0.0488183249942632, 0.08727411497548683], [0.9414742781105554, -0.0999567129929202, 0.00294202781274725], [0.19057516254469084, -0.024961379550125742, 0.09683454719755015], [0.13205881155774743, -0.024772068272621312, 0.09688314937849922], [0.11565836453501802, -0.04897324358316028, 0.08718727781588582], [0.42647058823529505, 0.024283408491651934, 0.09700678363922582], [0.07407344674429447, -0.024647464617252885, 0.09691492396912495], [0.07342923138322656, -0.09555641589510354, 0.029478320530213393], [0.05732885668789787, -0.04862515507365031, 0.08738188767738689], [0.028352543953951967, -0.047879612022197655, 0.08779261217553462], [0.9701058434498081, -0.04853756353585182, 0.08743057203291732], [0.954573041656476, 0.02452613535345731, 0.09694569967060888], [0.05144024759920571, 0.026073660345145685, 0.0965409976963465], [0.060226009290292294, -0.08846739466156268, -0.046621026176987004], [0.6399249111545547, 0.023993166437599987, 0.09707897797307934], [0.0641144672568044, -0.09986586245361745, 0.005177790686689179], [0.9487709089990892, 0.07813271539738109, 0.06241216856216297], [0.9531859500752194, -0.09749234963982278, -0.0222540279883564], [0.9493472511204912, 0.06635980385634087, -0.07480893283658019], [0.9491062860896491, 0.017058285349942037, -0.09853433361483677], [0.045803544152518104, 0.07816006464776512, 0.06237791511630684], [0.07860330159819397, -0.09784572964729095, -0.020644931334088963], [0.9803522084827867, -0.09749279121818233, 0.022252093395631556], [0.019592358362825222, -0.09749279121818233, 0.022252093395631556], [0.046037115680089113, 0.06735720528312829, -0.0739121566215363], [0.9489994251649104, -0.07205842338879602, -0.0693367407564057], [0.04614235978445426, 0.016060654661753725, -0.09870185090379961], [0.9485529165170749, 0.09905529362961772, 0.013713088782262529], [0.9770043286338559, -0.06822609995148819, 0.07311086981707676], [0.981115455853061, -0.029475517441090626, -0.095557280578614], [0.9471872150295211, 0.09473808955209197, -0.032010847974082164], [0.018705649695964933, -0.07818314824680304, -0.06234898018587328], [0.020655537154336562, 0.0976594356345489, 0.021508943059606576], [0.017946639960017743, -0.06801727377709185, 0.07330518718298269], [0.9781755757050413, 0.02175500220631844, 0.09760491728905406], [0.025427630745390884, 0.02250295322206635, 0.09743519434108754], [0.017713750140518833, -0.029475517441090667, -0.095557280578614], [0.9763141173635809, -0.02204729538173799, 0.09753930882649517], [0.023039709761657028, -0.02183978167437412, 0.0975859822741754], [0.05083557582480841, 0.09510587375473384, -0.030901015798006273], [0.43965468629471577, 0.06617872168124384, 0.07496917230859941], [0.41232520804613804, 0.04022420032230046, 0.09155333805182336], [0.7809396966657556, 0.044640411101571874, 0.08948314755685931], [0.8086295904167684, 0.016247518698033658, 0.09867126297031495], [0.8380416973098583, 0.016215827463167156, 0.09867647612113432], [0.8676462777191554, 0.04565505222421392, 0.08896974882736433], [0.35092818391482566, 0.06660217990988988, 0.07459322778410019], [0.896865266695014, 0.016117731397167857, 0.09869254649976739], [0.13013924656068573, 0.04547426965358619, 0.08906228606695954], [0.9270353197835749, 0.04564726383849559, 0.08897374502660192], [0.16509878691469357, 0.016624869132476697, 0.09860838567955578], [0.10060369077614212, 0.045467245556238295, 0.08906587214825178], [0.19100964030276046, 0.016021296313789377, 0.09870824719559028], [0.21849772200617976, 0.04549797551639251, 0.08905017812396417], [0.07570335356635134, 0.045361085125001435, 0.08911998628973401], [0.24983252382363463, 0.015989765038168055, 0.09871335985581778], [0.38235294117647123, 0.04041702717383889, 0.09146837658135824], [0.5145331933483449, 0.015925686051367367, 0.09872371814206189], [0.5439449756454441, 0.015908773129912655, 0.09872644497550276], [0.6910034917967192, 0.01582048654865528, 0.0987406309751149], [0.32351726877503495, 0.040186365808478654, 0.09156995142025107], [0.7351054013044268, 0.06776250321076674, 0.07354075848541966], [0.5912538308495627, 0.021218627525756928, 0.09772292385066664], [0.27516012146384033, 0.044552910330458044, 0.08952674561875999], [0.6463903414950826, 0.06719802335825889, 0.07405690823105492], [0.4693410906618555, 0.06739095524637478, 0.07388138568666067], [0.9496706790641982, 0.04449641998026432, 0.08955483576524459], [0.9999999999999999, -2.50920862002394e-16, -0.07306820487327913], [0.9999999999999999, -0.011508248893123118, 0.07280417667649476], [0.9999999999999999, 0.07123623242397974, 0.016259205190912753], [1.0, -0.07286389135284624, -0.005460393788372083], [0.9999999999999999, 0.05855994900625907, -0.049174250944146826], [1.0, 0.049699000952664794, 0.05356278435360209], [1.0, -0.04116078541182028, -0.060371784035968094], [1.0, -0.04875854296352724, 0.05132560736237924], [1.0, 0.06944984514603658, 0.04009688679024144], [0.9999999999999998, 0.04665563482725371, 0.027552836632207693], [1.0, 0.022976518098237923, 0.04235001236537814], [1.0, 0.01985573963200126, 0.014479666682287853], [1.0, -0.003969118687826096, 0.029725171164527046], [1.0, -0.008513706565336081, 0.002292220138594798], [1.0, 0.01623453042698919, -0.014102429384138778], [0.9999999999999998, -0.012243143387389218, -0.026495107570484455], [0.9999999999999999, -0.03450550212999403, 0.021448820572495277], [0.9999999999999998, 0.048717406254833, -0.0034880048521444794], [0.9999999999999999, 0.013237939209728919, -0.043973699144657215], [0.9999999999999998, -0.0336930522090509, -0.008916522986870287], [1.0, 0.03915734447139096, -0.02818109576474569], [0.9999999999999998, 0.07828726642463171, -0.006766422180493856], [1.0, 0.028315887469779023, 0.06799443321897357], [0.9999999999999998, -0.037231622830931906, -0.03480413784791667], [0.9999999999999998, -0.016839190356466176, -0.05255732044986449], [0.9999999999999998, 0.026290050514930823, -0.06917579577250925], [0.9999999999999998, -0.06136973046791286, -0.0441803969696331], [1.0, -0.02194967942142288, 0.050199517822524145], [0.9999999999999998, -0.06724393895343414, 0.025594861434738964], [0.9999999999999998, -0.023637529718384297, -0.07663098922688141], [0.9999999999999998, -0.034187644013648155, 0.0713592355276166], [0.9999999999999998, -0.055992755495006485, -0.020042423486293506], [0.9999999999999998, 0.003315594733254227, 0.056195677226382044], [0.9999999999999999, -0.053411732523838254, 0.005654386985016351], [1.0, 0.00975048740202272, 0.0793532980042258], [0.9999999999999998, 0.06813621629229005, -0.026643644522860627], [1.0, -0.07540677636266058, -0.02851090800560852], [0.9999999999999998, 0.04694795383579438, -0.0656781606917031], [1.0, 0.03648978553636028, -0.05030998955692087], [0.26873484956229693, 8.678019529644268e-07, 2.4240411845442632e-05], [0.3687401665273464, 4.2675738132940525e-18, 6.76482817720072e-07], [0.7132177729366422, -1.721067164747017e-05, 5.776205234316087e-05], [0.5064582714200778, -5.580027912329954e-06, -6.147645290831012e-06], [0.8454968360563145, 5.6545921835682625e-05, -2.691232990403844e-05], [0.6095744446519211, -1.6618982545824613e-06, -8.853883966778173e-06], [0.15334132182535018, -1.2319046830022228e-05, -2.0460877770813188e-06], [0.9219427229563724, -0.019393836910254286, -0.008696595680282812], [0.07797145070964781, -0.004255908198889046, -0.021641671208288825], [0.43760016907868887, -0.008011534295762226, 0.025720063094603875], [0.7793814695249714, -0.014225914807665519, 0.025357466219631055], [0.21103072324634797, 0.028812538206096815, 0.017874133565885165], [0.21104647810581278, -0.021739483729006786, -0.025927321943246397], [0.7681683249135163, 0.021204441263570357, -0.028575021348572947], [0.42207252523896227, -2.6116260585477684e-05, -0.03650835314634295], [0.6617647058823534, -0.0005814005945286129, 0.03786617851391829], [0.5580342062526942, -0.027532220541827433, -0.025915311504916373], [0.6611794787726843, -0.002914611459696645, -0.03766803172194779], [0.8971776915532335, 0.034105736344788945, 0.016097302003348635], [0.5578848714085335, 0.035325748062242444, -0.013637649910971958], [0.3187463139547874, -0.006325724685629282, 0.03761771812317382], [0.5580176453116134, -0.008521369138748389, 0.03670962043835161], [0.31872860716085205, 0.004713335298362294, -0.03793645858738471], [0.10294117647058838, -0.0004517524971526343, 0.03837971120928194], [0.45951289654048283, 0.03889524282979026, -0.007292315072507637], [0.8013074300422406, -0.028810286004338277, -0.028551921999756657], [0.22610596852608117, -0.026944279190647256, 0.031157254419954587], [0.9431590974011214, 0.007815940751619118, 0.041704050039475714], [0.8035735709437392, 0.03878311397523361, 0.015381665537936977], [0.30900959497687097, 0.04148615003038075, 0.006022154071607174], [0.46425739269824523, -0.03701969660635152, -0.018217924530683643], [0.30761521878525944, -0.042125064603566215, -0.00619377579395721], [0.05843555708313715, 0.03518365228172822, 0.019310971911789362], [0.11158451478230841, 0.04104530461183039, -0.005107308717666831], [0.8864318010758004, 0.016202461162880582, -0.038489878717753556], [0.8860449981703394, -0.019078056696063696, 0.03725107526745426], [0.6507147607929815, 0.04171255418282753, -0.0011600536796726108], [0.23413879576048463, 0.029502815967426422, -0.033986430952436114], [0.40551481853474997, 0.04238751685148303, 0.011511760915372739], [0.11456823678207899, -0.042489545678866175, 0.000881928213329275], [0.6613862347038607, -0.04469321119953569, 0.0014262927474692911], [0.7473394638432855, 0.040127402223689955, 0.020386270257081472], [0.7486788283631676, -0.04187935047866109, -0.013034989687595559], [0.40446017111448557, -0.04397933686857277, -0.004996567605631252], [0.062030398248696425, -0.03684688879791782, 0.022380764510155114], [0.945012124481127, 0.025609346467334846, -0.035111865311243856], [0.8738688611132871, -0.03877862002672528, -0.025915256814316577], [0.18126720239218283, 0.038120439383567455, -0.026347162667962883], [0.17977485397879436, -0.04577303047226279, 0.010897135132809687], [0.17986902117940778, -0.004282581467938848, 0.046538727137563886], [0.8205814576289543, 0.028120474977303873, -0.038586424875354415], [0.12586235917798114, 0.00097282295997328, -0.04697809614730464], [0.47905926261282616, 0.006786356516091667, -0.045935174377492005], [0.8224938637908736, -0.04462707703647815, 0.017730327286237083], [0.5283130037215271, 0.036527494456473755, 0.032260336647995554], [0.39117465107503324, 0.005292033347195519, 0.047872906192766566], [0.4852941176470598, -0.001988017080359603, 0.048838816004337496], [0.5877583753626725, -0.046621160379362966, 0.014085317706036759], [0.528307337402484, -0.04657911403948473, 0.014056832216297263], [0.27896965031259335, 0.024557630731350175, 0.043136086190910104], [0.3516150867302508, -0.03599838770881495, -0.03412207508414087], [0.8237525442012666, 0.0026782102445101013, 0.047624855650862226], [0.7314465573052104, -0.016477443936689134, 0.046296887018420545], [0.5889270286845708, 0.009448834276771317, -0.04782476549828385], [0.6939026528084231, 0.03779912330428897, -0.031068168211834356], [0.25177691385146356, -0.04796508976564124, -0.008297603988705833], [0.7303568306376519, -0.008409918601763672, -0.04818014082516547], [0.26301120190690147, -0.017366109806382618, -0.047885081414833004], [0.048330099617200285, 0.03217683440172892, -0.038564849499533274], [0.35402772124147575, -0.046953690537114026, 0.016571782410204426], [0.25924527039973055, 0.050719820629441824, 0.0045295424503456255], [0.35120945970325174, 0.042400398506084465, -0.023847029120982875], [0.16255128048465062, 0.044156048410021034, 0.024319969840974322], [0.6955041925132074, 0.041884586090783944, 0.025482642744207754], [0.3558612329816083, 0.041650791096434846, 0.027461208358015902], [0.27801491770566755, -0.03594641026352741, 0.034223986118030035], [0.6169722056038242, -0.03600321566815076, -0.0359322063169593], [0.5305250122069757, 0.009545907804950798, -0.04903210459152301], [0.048511703756722827, -0.04481441066774208, -0.02513842675221958], [0.16281343487874597, -0.03275640350798182, -0.03776486347423559], [0.9548404726936062, -0.05293862563363779, -0.007371158504887479], [0.6144801641548403, -0.016693302299976766, 0.047875757287331025], [0.5979047533223413, 0.04734984991685315, 0.016369456829191324], [0.9459121886101157, 0.04819353220415773, 0.010632292399848496], [0.8511715459877561, 0.050337864810495625, 0.002442180072025553], [0.37403369429701694, 0.006093538376214174, -0.05016160722520735], [0.7088363579723463, -0.048995216339428015, 0.016045838588515993], [0.5086687654331401, 0.04877758159149358, -0.012520625402315615], [0.04874935533433605, -7.706652178763331e-05, 0.05199864647260615], [0.5100927136758464, -0.03432477884490585, -0.037421590343299754], [0.697944235301632, -0.04130319063670397, -0.031284809951562416], [0.2822771082770942, 0.0370957853303313, -0.036263281297801514], [0.9334678736871136, -0.03932530979038553, 0.034222990332817046], [0.14239945805783247, -0.03468342706871246, 0.04005693150530619], [0.9520931434459138, -0.024260125153542957, -0.0467850193903201], [0.454755370612947, 0.034729028276805685, 0.04073334257998006], [0.4812660235555792, -0.045217099689958684, 0.026707422178911103], [0.8412107435380008, -0.01356961695375251, -0.0504648176707788], [0.6299190375203314, 0.032043686165423864, -0.0423316176351166], [0.40067413471848445, 0.04176039630104629, -0.03519897364963755], [0.8600752188461137, 0.03145818862355089, 0.04397779532653011], [0.18582261372663084, 0.002844555460496614, -0.05534050969484763], [0.23526472670395812, 0.012545419610069379, 0.05430587283816505], [0.40571965703528146, -0.03747115791382207, 0.040317731389557195], [0.8975181846885757, -0.054033715515900624, 0.010112710990043176], [0.7358994467281488, 0.052471564430355666, -0.02181920572658875], [0.6347831599860396, 0.03653062488442009, 0.04173013286461572], [0.09310099420530683, 0.03223750161189938, -0.04552608619039481], [0.9071070320356133, -0.02190130353689514, -0.05167600582002382], [0.9100081605704898, 0.05179312627328978, -0.023726968253550966], [0.12021403753660798, 0.040999533571009376, 0.03896573878847966], [0.10170751080264749, -0.036768890721174556, -0.04195498497611768], [0.39447266656663954, -0.03330904552686794, -0.04702676039505618], [0.35699946229432195, -0.021986939387126047, 0.05266755231793938], [0.13935036772747614, 0.04221316487118946, -0.03930237291388225], [0.754254695814571, -0.04959002657179358, 0.029491737604735255], [0.7778950818339491, 0.023949924311526434, 0.049449723992107696], [0.7729109898541408, -0.011652268983781919, -0.05672261143629932], [0.047365086978587274, -0.01030448814278487, -0.05469258926202187], [0.6905917673731545, -0.030334061172973308, 0.050675081923830544], [0.30256818512560607, -0.033638622922830014, -0.04781183351632403], [0.43940928344437147, -0.055326474330880115, 0.0188037670785289], [0.7864561424122791, -0.0580804758478333, -0.0010634876407834652], [0.6999616237422, 0.011703904224560809, 0.056422510709620476], [0.8344887750870276, -0.054967736855539434, -0.021987419876080768], [0.5949963738112486, 0.052086836412507415, -0.027342035627298533], [0.7765224753200289, 0.058802385096112214, -0.01058770001875797], [0.5212430818319754, -0.025953021825960938, 0.051448266007728616], [0.9579576098898455, 0.00378989317611223, 0.0006373392816911506], [0.6281398418964814, -0.05191293300450343, 0.027552696414426675], [0.31923334062948877, 0.034416894415275665, 0.045647629972466595], [0.21914808198485797, 0.060011072236555156, -0.009176799448100926], [0.13999595714621937, 0.0033445470200620525, 0.058427178159780616], [0.8476977671631708, -0.03195737487042824, 0.049022377859782994], [0.44582869742521236, 0.03398684785946527, -0.04774038461092949], [0.48981641154646394, 0.05287303871162691, 0.025244474065069612], [0.5891298720508101, 0.020763366995561704, 0.052147169616754495], [0.042969736426716476, -0.0024106314858359846, 0.004011321494047508], [0.9029606252337219, 0.016487104336787444, 0.055207173918507144], [0.09967262740345438, -0.04224140983881122, 0.04010027151526302], [0.22654313242216922, -0.002021473075788547, -0.05942327295723597], [0.19308406346783616, -0.006681432561259846, 0.007759672973460686], [0.31762869346279404, -0.047633218672150604, 0.03617505818228197], [0.45143884523370914, -0.02262117017501113, -0.054734954720341455], [0.0731678450218915, 0.056477377223856685, -0.014265896266291376], [0.8577926258380927, 0.045847183020718586, -0.03799605472059752], [0.21250754169692102, -0.059134574521190586, -0.009559493099124431], [0.49658452402549996, -0.060625552659640626, -0.008863013029986834], [0.8048318851706578, 0.0019634145004341127, -0.0020574852623355608], [0.6572245446072695, -0.04384878845799869, -0.039520595141324034], [0.32929734966698776, -0.008444283902030883, -0.0012778299969274855], [0.6944022987418463, 0.007882010735652124, -0.05899281732135412], [0.8041251526580001, -0.03245994052811852, 0.051652223969511274], [0.8862337945653748, -0.0018578277559139328, 0.00028232744506459897], [0.35294117647058876, 0.017489316424618425, 0.05998985933397869], [0.627073765749397, -0.00465133419733542, -0.06019932648759304], [0.2875717580111127, -0.009219261133851808, 0.061637643248222934], [0.19021112259284578, 0.034319016166847495, 0.051974115664729106], [0.14899867426752286, -0.06000198267695353, -0.011209673532616109], [0.4558349629559832, -0.030088073761932465, 0.054443070288885814], [0.922351417336709, -0.052804929314834555, -0.03101178023482468], [0.6732575150742872, 0.007811361212376443, -0.0002875218739784067], [0.11270332781429597, 0.0006045790097308942, -0.0010735498167209973], [0.43035705215757347, -0.050574058926674464, -0.035009345542837335], [0.46621852883838827, -0.00040071691882180636, -0.0015730329029781068], [0.8581404584503163, -0.06077839411799131, 0.009684546813157701], [0.42828513527449247, 0.004349042319831744, 0.06249349237103971], [0.40854565918151897, 0.003920417820476683, 0.0009372453394975808], [0.08291163039960317, 0.03204358755908181, 0.051085712475778595], [0.752643575468811, -0.003943529471808107, -0.0020982399743777833], [0.8170234717642137, 0.060074399747631985, -0.015303584275538427], [0.7263832749721136, 0.030672197661077493, -0.05353905809137003], [0.23866322942673227, 0.048428875896919917, 0.038159848845551465], [0.23005561360769358, 0.0008100824128928899, -0.0008731165840700322], [0.23624657998500226, -0.04534747721866202, -0.043895061766317724], [0.08773603432770756, -0.004321776147200084, -0.06017050755095956], [0.738450576690003, 0.02184373525110881, 0.054650686778038145], [0.28839739944030196, 0.008571064641400188, -0.06212608315045253], [0.5594943304861066, 0.05782030751777438, 0.019301579672929222], [0.5301863324571819, 0.010905293613026449, 0.06214076886523798], [0.5699404783348337, 8.129876104468682e-05, -9.671115148108565e-05], [0.58515829379102, -0.056129303414621634, -0.024119011363583166], [0.15527826503688846, 0.062020691302707126, -0.009644484367483915], [0.7668164008522703, -0.011348076516907349, 0.06236022520166415], [0.5580195643529844, -0.047839090196584846, 0.03998361935854605], [0.5030717417873398, 0.03765642224694316, -0.04979608497144082], [0.5358436926236646, -0.059240675495602864, -0.021949561585026117], [0.43856103743037705, 0.06223472275665281, 0.015464605193698012], [0.3194652144508908, 0.042732335626415756, -0.04644168817220169], [0.07927809362646406, -0.060880729017406196, -0.0048467863895646736], [0.25203403490081316, -0.022710384107729555, 0.05877835502441536], [0.583874909944643, -0.028491296555939672, -0.055042915778931355], [0.37420055617075654, 0.06239918072399726, 0.0002311695738000882], [0.8083961580939043, 0.0016344002893395368, -0.0638028706850093], [0.19340557725599491, -0.04044499923141079, 0.04662922806576498], [0.5615923211674606, 0.03652468351449986, -0.052158947247537196], [0.34273268814288194, -0.012017037670226072, -0.06252098285616672], [0.08972328538505851, 0.05773996088997179, 0.02207184755385201], [0.8676470588235293, 0.0002038364676170478, 0.06468944587433939], [0.6199022552412674, -0.06324019508874713, -0.008555151405867377], [0.9286965586479901, 0.04360527819634482, 0.045037585137040995], [0.6525507174055882, -0.035075640460801846, 0.051876819559989205], [0.9181809749849644, 0.014122985118626303, -0.0605555415349237], [0.24775428346915432, -0.05786153920463705, 0.028036211511364092], [0.823483116180784, 0.04055115792862449, 0.04755187090793009], [0.03529642246289689, 0.03560408609850738, 0.04970490226136638], [0.7713076175616265, -0.04658432132566607, -0.04275998297359374], [0.6906274604359403, 0.06483253524560226, -0.004482759365767126], [0.2810330030126054, -0.06373898546650711, 0.009162786817761117], [0.6654675560937556, 0.032097772354434916, -0.055461462065048976], [0.37174555547738863, -0.06090616353523991, -0.013874777153994588], [0.2818212283075441, -0.057800480236854156, -0.02824244643181026], [0.03766209230627677, -0.06334330074140522, 0.007405412909819186], [0.91581762430461, -0.01873826658833458, 0.06069787049849601], [0.7341845516273918, -0.04561897868893567, -0.047325329802363265], [0.43103423409754094, 0.059152834095414844, -0.021296318796086112], [0.7892444837061877, 0.047250764938729164, -0.04483581245065931], [0.19450732203757992, 0.06198232076703291, 0.018436986872174033], [0.4168696648099224, 0.03881873943773039, 0.048544057716303074], [0.8562202065796799, 0.018175279240348452, -0.06286964105813712], [0.28553065885893836, 0.05748272467931445, 0.02888960119090646], [0.9655838387460868, 0.037922788352536256, 0.04092158988926644], [0.9236453737639215, 0.017979534047879164, -0.005154149668607767], [0.9611095108687171, -0.023608980595586797, 0.05792592709162741], [0.53967461328529, -0.025400834192099903, -0.058310778977368596], [0.9659792256084523, 0.05329256474723524, -0.02073588558771474], [0.33740975009604446, 0.06473597585277739, 0.002099132605471093], [0.962469571690468, 0.008055361646259262, -0.06403800753622488], [0.6384888343969759, -0.0184082014486951, 0.014766532403893032], [0.777144441698669, 0.058115274434809766, 0.03183801210221649], [0.036909890846704055, 0.061935759047813316, 5.947830090028652e-05], [0.19418417413234645, -0.03264685297612379, -0.0563793660209974], [0.5808885707620175, -0.024472422720082623, 0.060714213040396633], [0.0796131413411868, -0.018766632757581163, 0.060691165693890464], [0.20427943451451594, 0.034465382404517186, -0.05459886523527684], [0.6624773624273483, 0.05828639793022739, 0.029928637377417446], [0.8836947158649252, 0.06649395242523018, 0.006047925369110496], [0.28799274935823177, 0.06400487907162407, -0.012849887235202959], [0.6690034085143002, 0.03152893671998263, 0.054364802363601625], [0.40566853319069635, 0.018798406138483183, -0.06306372378423812], [0.254390554725034, 0.020787718491206905, -0.0626197891062913], [0.21098874636868564, -0.013205861460292807, 0.06357960926232421], [0.6815535032198448, -0.026187402821208818, -0.0600924935592894], [0.43270243665076796, -0.021395367096372946, -0.009042217006337496], [0.15793733608630212, 0.01153722826613977, -0.033983667446644376], [0.03539133239422099, -0.0354167625704576, 0.04927101846242213], [0.5047913036805356, -0.010754419927269436, -0.06435684578724575], [0.2544047439045616, 0.05891379608170438, -0.030113521795425254], [0.3358944749775635, -0.06226676334350674, -0.015355642926795332], [0.6219433466441704, 0.06364973648294917, -0.0056727361550593415], [0.8745136496066085, -0.012971468904260377, -0.06454032186888724], [0.15426998836900951, -0.011298716934982382, -0.06539061497049022], [0.9677052963996735, 0.00969339805051152, 0.06689630767726651], [0.66404639130545, 0.05809379431594921, -0.030444546605007037], [0.38679191134254126, -0.061758418924456354, 0.021190013543580695], [0.29696828925296737, 0.0108788196745087, 0.016890082526988634], [0.07720237513507631, 0.004764296292346459, 0.013431694903852117], [0.29393941441948385, -0.013155261673456459, -0.020608304719081077], [0.2505348488668627, 0.018902453305802487, 0.023343124296812814], [0.6850951324720131, -0.021952081866648487, 0.016113384908958743], [0.47893486331349255, 0.05822043908552676, -0.031194082794541063], [0.7592604891653638, 0.02067835079799934, -0.06311200404090012], [0.637737720157277, 0.006193457773249043, 0.06492598934129594], [0.8746161110802909, -0.056218656381284475, 0.039079108098100536], [0.5363787108157465, 0.05518321140311246, -0.034547165893503574], [0.9641526686913463, -0.027983231415166197, 0.017761990836776684], [0.20534216266523483, 0.012783528014142082, -0.022785060863505274], [0.9147456003004057, -0.0031358910791878945, 0.02256664613672541], [0.6773975442756898, -0.05680697496505458, 0.030840626224577408], [0.13376297015300698, -0.021512366065401058, -0.02053579445560917], [0.7233391415187238, 0.06393217318095167, 0.009395677102241786], [0.3451618511604406, 0.023384750100050908, -0.061463644465799654], [0.18116758977897873, -0.06050847758426885, -0.025842125228633602], [0.7745882869124802, 0.018730373483172275, 0.013695036264655826], [0.7202782741044783, -0.06297231545401503, -0.01440244276078032], [0.21273369040772905, -0.061153510377003145, 0.025638527524820796], [0.5580243729567519, -0.06438767643883055, 0.005521021884236815], [0.4786154114039117, -0.0442412267705503, -0.049452431813417984], [0.5381769797168182, 1.41097129470003e-06, -0.01578470733645769], [0.7337359337570211, 0.01762651485519766, -0.02200114536360584], [0.06834832660549488, -0.039016221923765006, -0.05408524472216216], [0.38598598263569744, 0.05680713706598222, 0.03666308238837268], [0.6871831478790343, -0.06764847112426459, -0.004110409532063271], [0.12981475866172507, 0.0637399498560227, 0.014228149994560558], [0.37802469342559614, -0.022880596812166205, 0.024749957567051395], [0.566229468788733, 0.023850948080662803, 0.025596411604168156], [0.11538590892776718, -0.021429241588917132, 0.06397819690567255], [0.15545713799931776, 0.03496062371152545, 0.057554049919542875], [0.43544648384987167, 0.024591188334166434, 0.013511923771410542], [0.787810375965309, -0.05693509816609138, 0.03347086256283519], [0.13342216224179854, -0.0511649854085987, -0.04109423966691016], [0.9158775362962279, 0.06379087191267234, 0.019499421581531118], [0.8645691596962849, -0.026711367585974352, 0.011090274560354621], [0.34930088999190073, 0.005699753942201895, 0.03263301958060083], [0.14491056939685681, -0.06482173220333022, 0.022954333613331004], [0.5600752563410597, 0.0018676616112851552, -0.06593530071567523], [0.48531973744475326, 0.018571354608789184, 0.020636500283603955], [0.49898230945066274, 0.030467702709982215, 0.050916318418472634], [0.525845128333942, 0.06583093395870863, 0.0129843231706336], [0.8838495963489863, 0.056291684555215674, 0.039220835347354925], [0.638837524892158, 0.01188075382778377, -0.01512813966456045], [0.9297924838729316, -0.06570265627557996, 0.012451628345067271], [0.43789188271693424, 0.006646916337478245, -0.06765584795252759], [0.8544699060082726, -0.0022964751627320332, 0.03305624747711288], [0.13252065640600452, 0.011739084545169405, 0.025076610739558983], [0.8245928547781869, 0.06585304039790853, 0.017700669085481218], [0.5252567949114223, 0.0005701830903095712, 0.02927638395431734], [0.8226908898028874, -0.04243683926433101, -0.051678514055893555], [0.6940632381442128, -0.007117426725351235, -0.027840014518403292], [0.16741472255619314, 0.03462062568057393, -0.057568278609395784], [0.45976973884695055, -0.06832811982554807, -0.005335744701030035], [0.030637309371161204, 0.004197087289166454, -0.027847822292823576], [0.8788517234547046, 0.03710801602920253, -0.012566985735067322], [0.5908845408407308, -0.017438489364416013, -0.02314627002704053], [0.38129792775779664, 0.03037485848066907, -0.009427738852995833], [0.26189890431499707, 0.011233500404385848, -0.030675169778821787], [0.8346904531745591, 0.025856991908970707, 0.019128922306135346], [0.32124677296442916, 0.008905317711859269, 0.0675767638279208], [0.5896113369284044, -0.013894137533821946, 0.024348519602806675], [0.9719505618929831, -0.06266977611559767, -0.03122292458704278], [0.7343225501881164, -0.026971916441058463, 0.014375805349983693], [0.3501258851947364, -0.0028139137499651073, -0.028036037141564905], [0.18069652404651132, 0.024311157791192903, 0.004236825204770158], [0.5580462567614881, -0.030199090103664873, 0.01031258475246547], [0.10606587615495952, 0.06065595418817592, -0.03225238052944445], [0.32600360984433585, -0.024074181648267197, 0.06499080675000543], [0.8643754441935392, -0.006515953369049336, -0.027097229891856332], [0.48761464576107777, 0.022516778874258937, -0.017073539423408408], [0.7236962512355208, 0.05032156992371961, 0.042855715611927615], [0.7248126514323625, -0.04932353637459637, 0.04551011788518828], [0.39026759168420067, -0.008570974063173165, -0.024499308807905556], [0.9673596233112444, 0.04327038407436684, -0.052582137484352476], [0.599777794762444, -0.04826079623031547, 0.04571579606200116], [0.9685942520364906, -0.02331796435539222, -0.01701340927321335], [0.33695604961245385, 0.024070099032962696, 0.00021341599359347649], [0.9604223501319725, -0.06102025057670106, 0.028782550341686024], [0.48922100649796074, -0.03506356063872608, 0.05811598045996374], [0.7771873613136645, -0.026229406106157118, -0.005673890201045114], [0.5630784068630547, 0.0053734667406446284, 0.06699836674509087], [0.5688789692208551, 0.06745218411172818, -0.01192450637420844], [0.7120199294126135, 0.034775170396423444, -0.00291713447719143], [0.7210010039428645, 0.020003987488302157, 0.025895552635214807], [0.14351754717055756, 0.032021591465798076, -0.0004458716164833249], [0.255555268927003, -0.013262151702617683, 0.026910770501650614], [0.46055994534437794, 0.013148945915733231, 0.06585294780437538], [0.27791063490283224, -0.03127339441669755, 0.0019130855153856082], [0.6710776529365329, -0.009942960203410641, 0.06855951194197171], [0.38803465726923536, -0.023278172019705216, 0.06473786768090965], [0.14939285306465033, -0.03232361235044034, 0.007481768284790397], [0.5099646937818653, -0.05573877476594348, 0.04069609520477904], [0.46931895490435077, 0.06871166206825814, 0.004148161214567644], [0.37097204458415906, 0.04255870785855716, -0.051205041648179836], [0.41344387542833344, -0.01588861380080605, -0.06805862190703453], [0.749920007765849, -0.07028161441600063, 0.003980483066354152], [0.6611722466786065, 0.000392371306528676, -0.07075216711471416], [0.613922523171242, 0.012407005928086029, 0.030973898119720084], [0.027660327079268354, 0.047738705980652656, -0.053897526449029245], [0.18061507570475221, -0.009512853097457662, -0.0226212170730713], [0.29849440126813453, 0.01863545431282125, -0.014778375102766922], [0.03789945158791003, 0.029045995644273792, -0.006503474895051327], [0.6421960148943391, -0.02265706704252935, -0.018300624537953454], [0.18747415588971017, 0.0684353657295883, -0.013170780973944477], [0.7966520855335184, 0.03246501963197705, -0.016268698569998283], [0.24327105537758084, -0.01984870495868879, -0.02219245636615259], [0.7564162470945314, 0.04967382841966388, -0.04755197621911645], [0.8030526334199726, -0.06174091856667205, -0.02933435866110694], [0.7953201026966568, 0.0032064005300014155, -0.03358962311964294], [0.7966367705929566, 0.002710300409569531, 0.06692390746493905], [0.855204416981039, -0.04803811331337227, -0.051497221105190394], [0.3171316048068211, -0.06852387112823687, 0.010850898619912936], [0.26467417407233407, 0.01251023434562082, 0.06987106676296735], [0.8934095089107101, -0.06483535869248971, -0.02076952347947358], [0.11148974063254101, 0.019961741622551613, 0.06334166222728678], [0.5898280470135375, 0.025719865502660796, -0.0076463545864837975], [0.827292032849336, -0.025822453052165663, -0.008732701802106975], [0.4244161746265404, 0.026973214843967162, -0.017566901609049196], [0.5580359536412614, -0.053878319809786725, -0.04572726042546671], [0.8890107348880897, 0.04752974340082718, -0.04902430783994963], [0.8667179180110817, 0.021187224349316844, 0.013485193856496923], [0.10778244148384881, -0.06446348930511368, -0.023894592965217863], [0.0861692974986689, -0.025353669189466195, 0.0026690598408838258], [0.49098527837623723, -0.029177832471644984, -0.00047589030078209647], [0.028236117086773427, -0.06704251570498673, -0.0211984086959653], [0.6033731906097357, 0.035651006140912926, -0.06123929477951284], [0.7495968572443255, 0.004626849376572744, 0.029249740739552763], [0.16426513989512642, -0.027759130670129344, 0.06401551050032124], [0.06267333752643364, 0.017894649139154284, -0.06584482150711403], [0.7228589854401778, -0.023471725695889605, -0.020329771595209517], [0.6304865297197221, 0.06523747507263175, 0.026119320339746403], [0.20988994387379392, 0.0009481040374555655, 0.03442362268841595], [0.12615965222008463, -0.027698337357109963, -0.06262059422864948], [0.39903074946837463, -0.06183521759230437, -0.03179569072430536], [0.5294947823490286, 0.027063656561807443, 0.0007783058316591929], [0.3754143754090852, -0.04839295334096675, 0.048497390771971655], [0.9058071196107608, -0.04754014834592011, 0.049295334064502656], [0.42508660632005874, -0.027851862617218413, 0.06447211498968033], [0.42601655565874064, -0.0682648144049427, -0.00796376120129936], [0.12985506704898972, 0.02681469847029366, -0.06636089613597479], [0.3818375216127188, 0.022857394529349335, 0.022179971618984374], [0.36635465025189706, -0.0347851018789189, -0.0628172998667323], [0.04417862008099481, 0.061875380263869684, 0.03209570770361841], [0.9371701965112832, 0.0675291766287702, -0.014334320182755898], [0.3172060957913487, 0.0618183858863098, 0.029296920044798305], [0.028783155658448027, -0.03528173229607414, -0.04818952575188982], [0.6132520291512377, -0.03238747938142587, -0.00040604185208138277], [0.3182481710189752, 0.06557198113308005, -0.02377060780644972], [0.8113803767558342, -0.01527026260739088, 0.024145696663809495], [0.3115585353973366, -0.01215408733304132, -0.06976395236006677], [0.6430443152586387, 0.015765692733553133, 0.016887447342956573], [0.11263101730196211, -0.06620949783618492, 0.022734949891271703], [0.08337150203849614, 0.025829333536462634, -0.0105555866253659], [0.7704173538751471, -0.04262911474514212, 0.056297380516973326], [0.9299655387678929, -0.003192118649478319, -0.035704257838642096], [0.23488840614923834, 0.03194676948816064, -0.002536756260942361], [0.32726057869188857, -0.05360029635234689, -0.04480973417740058], [0.03135911916402846, -0.0324401575596226, -0.00045633718651394813], [0.07919942074441691, -0.06380117956213105, 0.027365318138511632], [0.6502852018187362, -0.0674345581496693, -0.018608060660482605], [0.8522455844488789, 0.06036540424398629, 0.03278279863685367], [0.5524033345664663, 0.03266396711356543, 0.05342141610919656], [0.9714029245570505, 0.0070525622421941, -0.0291173465461835], [0.5063178112484594, -0.0028992355987345416, -0.03198942600225473], [0.45830324453216864, -0.028316105805130713, 0.012054687900270311], [0.45196946989954684, 0.008785056693335798, -0.028830927472210614], [0.8160006748088825, -0.06951418118087069, -0.0007674348375786733], [0.22109721806025545, 0.057691642034837065, -0.040838527095590674], [0.030298790506439986, 0.0163788774808156, -0.06238255941647173], [0.22500629891667634, -0.0320597741385895, 0.00021495342531422488], [0.8437930284796152, 0.026610763505450184, -0.017141532548898573], [0.7554584388528841, -0.016694401910035104, -0.030870455659200255], [0.7128221811961445, -0.029393432051441612, -0.064219844915222], [0.6479030256223095, -0.02818964555601965, -0.06571709162385013], [0.40459457849833624, 0.06849311458848466, -0.006476448966112773], [0.8877699608806299, -0.047128728939830555, -0.053301817056288815], [0.9245393160471076, 0.044295763971214576, -0.05142019381149925], [0.9322876558228708, -0.013142145845955152, -0.06915694837648181], [0.23652447627995493, 0.06953222440976813, 0.015097124885263127], [0.3758198751183334, -0.030303837090508677, -0.006384190869639291], [0.8385409676634726, -0.06054914156777526, 0.03961299113076556], [0.6915255771435115, 0.007747657866977449, 0.025890565828861702], [0.7976331480329508, -0.029169951567130363, -0.06551612306552138], [0.20740518246204723, -0.057691050853928096, -0.042840727487479476], [0.5496508999616465, -0.027554771874223893, 0.06556344456016332], [0.028509528243753298, 0.011294982173025941, 0.02948488128721639], [0.26593026528171865, -0.048007505580274286, -0.053310980194550245], [0.2976850488419576, -0.038417312501476085, 0.05817726658188816], [0.38104905518695786, 0.03404102869053799, 0.05950124830443309], [0.30358357456559343, -0.019123558906776437, 0.013981487000068689], [0.8795796579111131, 0.0660026298502503, -0.025237972412035], [0.04457223924738524, 0.06342079765561114, -0.03128383131259493], [0.8277696156085487, 0.00040942106600351026, -0.025857493872373724], [0.09848994834627614, 0.027280964803567603, 0.02032369847372327], [0.23319050529953433, -0.04748076024999021, 0.05395934408155376], [0.7542994681158198, 0.0685161310284426, 0.009195516293550459], [0.6599048700485954, 0.07214231260559044, -0.0008474278023689276], [0.16572615771993432, -0.05536191053130398, 0.04463105522820009], [0.12164633939054917, -0.019613764941622425, 0.021546465763304396], [0.10063526355262431, 0.07223004621718586, -0.0035662440890531543], [0.5216933642123919, -0.026157914605677804, -0.009161932142258493], [0.633549103366923, 0.06258571142549359, -0.0362085086205719], [0.5010532526351648, -0.019710508906651384, 0.02794750708861641], [0.6494774022528467, -0.07065047471914174, 0.0143131812157276], [0.7540512505564292, 0.049041865252955646, 0.0512990180529244], [0.32356035186929816, -0.025224276034287233, -0.02666146694345536], [0.6205156865957112, 0.03264360258376849, -2.5259981046208535e-06], [0.06503279056175222, -0.04538196464976519, 0.05248730749543556], [0.7103238326678821, -0.014809371813041051, 0.06920438825661276], [0.7090755884330247, 0.06495741972283944, -0.03143749485586701], [0.6652976700227331, 0.02635243836057625, -0.024484368391365873], [0.8857838460099399, -0.024847865446210895, 0.06779290536250535], [0.8268652860452806, -0.019951407361248674, 0.06848314274664814], [0.766607002072109, -0.06918512351629184, -0.02209868715327627], [0.37969780249558716, 0.06484670854362712, -0.030703919397090492], [0.6146601962922389, 0.0010533490024957086, -0.03194904224240018], [0.9307679846824802, 0.007328053146128137, 0.07092286384341864], [0.7950749119507844, 0.07156876590073649, 0.010570057524021471], [0.16330395113477314, 0.013402117945334711, 0.027345624264333162], [0.026178862260757472, 0.01276632904644861, 0.06604242111754244], [0.8864849533568857, 0.02074472072890336, -0.06917710960220802], [0.5600967554416357, 0.009961247233086855, -0.03573376043537427], [0.474150218473864, 0.033761382440996905, -0.060799768580813394], [0.8626938171967119, -0.06723961446849423, -0.020101358633481156], [0.9727530175082614, 0.03229918882416531, 0.0027021468812702875], [0.31531778468233723, 0.02188541004014311, -0.06863520286279387], [0.9716418396630587, 0.009669845160136874, 0.028389090991277736], [0.5804540163715725, 0.05165694105844492, 0.04413323368133896], [0.12578890428532882, 0.02001498216479435, -0.02268200709030056], [0.5065016735622992, -0.00688611080155234, 0.07066596213830634], [0.9719447989697841, 0.06519479653523597, 0.02779223856964815], [0.6954711069848508, 0.03834338299987047, -0.06161586292696699], [0.45853226012582043, -0.062389407538366214, -0.03528101063029403], [0.7892741248102841, 0.025300194642667417, -0.06602103929217022], [0.14346798962047413, 0.06061588977650665, 0.04155866519922577], [0.3457944090046093, -0.05617229002990134, 0.04524302872727445], [0.7997239908586954, 0.012451353881788203, 0.030955933483858663], [0.0702634862381213, 0.0529577200780572, -0.04477203547704746], [0.5319855283380811, 0.03814379577809941, -0.06006376733489013], [0.4749378565446172, -0.011064672568165318, -0.07022822827235312], [0.16407344574024274, 0.06000100700017004, -0.03873950804179196], [0.9714220909382821, -0.01992278887171203, -0.06904694305162497], [0.20985804577867892, 0.055880903101602, 0.0438235302482429], [0.45855419774203193, -0.058576586501431854, 0.042823015526778106], [0.8423534341277047, 0.019243668439303672, 0.06734626036040998], [0.7335539217536267, 0.008280401949685, -0.07325099368196428], [0.5987489719948352, -0.0073660103983981965, -0.0714047372022206], [0.2660311511679285, 0.05092271224660913, 0.05142919797456595], [0.18928616094979503, -0.07352892300625143, 0.0034655854015993443], [0.6402439947793129, 0.02230508493194124, -0.06919005185877303], [0.29346864609688394, 0.018968789704633223, 0.06827427015720712], [0.9292182235777907, -0.04198506321830059, -0.058959836607165354], [0.41329881395194057, -0.022699340626779682, 0.014843483896506561], [0.08410971069034988, 0.009376340747704832, 0.07134875170600667], [0.8299294711821958, 0.056551680056667795, -0.042337121391811935], [0.04437484974233822, -0.06215049375264334, 0.037282455905176724], [0.8498976054077831, 0.06945026617573287, -0.02089935442242761], [0.23679609924256032, -0.06814932836158358, -0.024528778422035092], [0.8956657214903955, -0.01772053641199773, -0.02384723818410089], [0.34077298179742105, -0.02094418358471088, 0.02345249993166196], [0.4990066881309402, 0.017756465709380102, -0.07197264597402618], [0.5997152098015116, -0.0017734319001280739, 0.07100572203972064], [0.4626505049094324, 0.06281963892947953, 0.03345679960457654], [0.74782401225701, -0.025820737881922223, -0.06543725013873725], [0.6974994043922255, 0.04198593817401545, 0.055805144336184186], [0.277350704363332, 0.027772664242098004, 0.0032616304934658907], [0.24165255585313572, -0.026639790634709483, -0.06631488391025077], [0.07692640396683784, -0.034360267190719614, -0.02472267729071619], [0.41437155321839325, 0.010565651085956453, 0.029601627148956512], [0.5285700154316422, -0.05257344466014241, -0.052347889819119676], [0.36764705882353016, -0.0039318403804613185, 0.07445375207164345], [0.8273816281871816, 0.024378312442965042, -0.06740405970188823], [0.37199298328762165, -0.056830001260502146, -0.04346522772436964], [0.672118965181851, -0.026304908032588413, -0.01997897180278286], [0.06436673765687585, 0.0697379557719485, 0.011245258123397342], [0.39689629902470946, -0.07383414695097891, -0.004210257064145519], [0.17145491870656812, -0.020037269911581362, 0.022930544223063964], [0.516703341370894, -0.07343300497270372, 0.008857565652170083], [0.38413284053876834, -0.01249191600729566, -0.07093506024194143], [0.6803421760312122, 0.0369873768536216, 3.3362319691605935e-05]], "u": [[0.0, 0.0, 0.0], [-0.19743047427108898, -4.093034381172343e-05, 0.004732905830970231], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.005337007782405843, -7.712016685073715e-05, 0.003648067277841652], [-0.010949214719249714, -4.184945998294037e-06, 0.005259736919949989], [-0.01653315481085702, -4.643361047729567e-06, 0.005732464232071294], [-0.022128041237260927, -2.231293201466148e-05, 0.005963637522008149], [-0.02785960123231344, -1.3863362405301087e-05, 0.0059412507044280215], [-0.033656631949887016, -2.2853706294337174e-05, 0.00591697999939817], [-0.03946507809077138, -2.084477589384318e-05, 0.005859795383668327], [-0.04532493706234678, -1.7752950849777528e-05, 0.005827804816954653], [-0.051155588608822106, -1.916274924881777e-05, 0.005787647583486462], [-0.05701834386201077, -2.7172117683801326e-05, 0.005753504789246938], [-0.06288004025325224, -1.4906521250748698e-05, 0.005721085983340155], [-0.06873702966013029, -1.4191971176441252e-05, 0.005688022815068506], [-0.07458691123729891, -1.0111176268827798e-05, 0.005653108868594064], [-0.0804395478135618, -9.928807395998717e-06, 0.005617280594499863], [-0.08629002091355491, -1.4634223145585764e-05, 0.005580019362759446], [-0.0921530282649453, -2.1631849547379368e-05, 0.005539633591473764], [-0.09802815312662165, -2.3943201647424362e-05, 0.005505137050359775], [-0.10386200685726836, -2.6280603250771103e-05, 0.005466160350049099], [-0.10970831549712616, -3.6067545541599165e-05, 0.0054243750818046355], [-0.11558601508544772, -3.9455357025451664e-05, 0.005383868361926953], [-0.12144729891301696, -3.61431969398895e-05, 0.005344951155797904], [-0.1273168883561447, -2.9806840701849332e-05, 0.005307556252773539], [-0.1331915552816004, -2.9730164706593357e-05, 0.0052694615148509445], [-0.13902184396743794, -3.0268325674552426e-05, 0.0052369248712733334], [-0.14489410836285163, -3.264870433034614e-05, 0.005194408549144672], [-0.15077347458304627, -2.563471011582533e-05, 0.005160464026867095], [-0.15663324099719322, -2.1941581115286163e-05, 0.0051241619586128925], [-0.16246232841754055, -2.3159610972481615e-05, 0.005088761593113469], [-0.1682978119658028, -2.0565046171964524e-05, 0.005049849215894467], [-0.17415915255714073, -2.1537963520943787e-05, 0.005006906800229435], [-0.17999323993496463, -1.9357176138681922e-05, 0.004965892637481846], [-0.1858365083044173, -2.445133217324829e-05, 0.004921779060259742], [-0.19166633102445546, -2.619875666054947e-05, 0.004868534087772261], [-0.19749961008659314, -0.0017839329118443954, 0.004484242067343714], [-0.19750729181071233, -0.0033657004554189366, 0.0037038959131390214], [-0.19758059363638844, -0.004653170325364962, 0.002511156326115587], [-0.19761483364848867, -0.005527217755134017, 0.0009729179628433219], [-0.19766855585802945, -0.005909047108623373, -0.0007405372010092578], [-0.1977220545213222, -0.005776142123461132, -0.00250279372700655], [-0.1977367281695816, -0.005117642408923292, -0.004153537324715002], [-0.19778404510170727, -0.003998249905311108, -0.005523110804950654], [-0.1978010507767235, -0.0025232179758189854, -0.00650712574025898], [-0.19782513244227298, -0.0008438593887347085, -0.007033860507531617], [-0.19781899554079121, 0.0009273501469004877, -0.007007387250184971], [-0.19777215377127014, 0.002606505938555697, -0.006465581974054575], [-0.1977611702242814, 0.00406320899136688, -0.005466307336880062], [-0.19772535527928634, 0.005152101047511246, -0.0040799265301485746], [-0.19768443959102794, 0.005789541677640972, -0.0024394309664282745], [-0.19764412628365127, 0.00591289786417945, -0.0006741638209274199], [-0.19757787671587737, 0.005512477441850286, 0.001038848273922632], [-0.19754344188322245, 0.004611485362320953, 0.002557909699710265], [-0.19747477637339972, 0.0032977081842782727, 0.003738355653117754], [-0.1974185941932182, 0.0017001897720684905, 0.004475811872261994], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-0.09508220237326173, 0.0014862976933744962, 0.005338894879917803], [-0.1302578985751163, 0.0014814331942254837, 0.005106569540363767], [-0.06581366346882572, 0.0014968662550129644, 0.0055186811536270565], [-0.14782625285603843, -0.0015400205503552401, 0.00497499181548416], [-0.12438416073423135, -0.0015435671592609948, 0.005122862241472297], [-0.10094623594916882, -0.0015313086123867807, 0.005281150537097596], [-0.07751891396454022, -0.0015186092287618202, 0.005432865065132798], [-0.04825175254568029, -0.001524657146472328, 0.0056039885876803894], [-0.1537206878399852, 0.0014872753309852107, 0.0049564689875962005], [-0.04240379802789241, 0.0014959506001335338, 0.005663529562739189], [-0.16538584309796311, -0.0015282677686627767, 0.004865137441212142], [-0.03070284292383884, -0.0014979781144252068, 0.005722391904322369], [-0.11122472387255307, 0.0014490458994920147, 0.0052390680543509035], [-0.19200335866325974, -4.058302287205697e-05, -0.007081552449616145], [-0.005574873780173686, -0.0001111736754508262, -0.003798374183356303], [-0.19262313149764979, 0.005585666630435742, -0.003261473682115408], [-0.005024505075527385, 0.0031353868427069697, -0.0012842081826838813], [-0.005514966230272739, -0.0035338812666162655, -0.0016368781387687554], [-0.1926222908766922, -0.0055365623912922435, -0.0033319412411343522], [-0.17123741064133133, 0.0014914138727932867, 0.004844320543855514], [-0.02497346674464552, 0.0014989098191004046, 0.005783832408210756], [-0.004898834692483539, -0.003034684398159162, 0.0018247822126595747], [-0.19192685989246203, -0.0051797567607649135, 0.0018733357021187317], [-0.19245673775181196, 0.005157366167512162, 0.0019003998070050358], [-0.005347323748660642, 0.0032525364788375645, 0.0016728783348079093], [-0.06581208242701782, -0.0015227981227234478, 0.005501517194183783], [-0.08923182788218781, -0.0015265765750106903, 0.005356575129087146], [-0.11266090261638925, -0.0015475546495759451, 0.00520011752827247], [-0.13610656222550307, -0.0015352200773727069, 0.005049112777356654], [-0.019299323816711275, -0.0014614117167794135, 0.0057111549488538926], [-0.17708379495314613, -0.0015272813259070187, 0.004783286147808646], [-0.0775127204946898, 0.0014995055153364369, 0.005454004394515258], [-0.05406518829482401, 0.0014872902282940617, 0.0055894158706179], [-0.14196882002058395, 0.0014815803773837993, 0.005030662188632167], [-0.19207967460306893, -0.0033132320268559833, -0.006080900351243963], [-0.004842278673645097, -0.0019734146279420358, -0.00299308014646019], [-0.004565179880546516, 0.001858794483402955, -0.0027509376011149284], [-0.19243033596697648, 0.0033601225753365433, -0.006060779842577044], [-0.18291125701245958, 0.001489953559099051, 0.004756476976059509], [-0.013751262370837573, 0.0013880755111241963, 0.0053321466201222195], [-0.18829813305894874, -0.0015197326890346214, 0.004699587257131541], [-0.008615085600705605, -0.001218395257860858, 0.0046568663338227255], [-0.1923824042244656, 0.0025593589606521415, 0.0042833973342840705], [-0.004324946770527059, 0.0014391501959672933, 0.0029226743294567025], [-0.08337560557075191, -0.0015204994832872481, 0.005395452147709469], [-0.09509189426414942, -0.0015317713660060032, 0.005318715878518295], [-0.10680309073801286, -0.001536514357425651, 0.0052402349080967], [-0.11852464083458582, -0.001545809556166654, 0.005160947010154439], [-0.13024721115268253, -0.0015414395488905156, 0.005086383870297463], [-0.07166516653497608, -0.0015192358354283026, 0.00546837905157277], [-0.0599537513809014, -0.001528976565411357, 0.005534002994881112], [-0.1536862474582495, -0.0015321756584859212, 0.004939818863683255], [-0.15076247155509007, -0.002946122953434817, 0.004378911666695356], [-0.12732648536686458, -0.00295133414591134, 0.004526008756974509], [-0.10389159049749434, -0.0029430880134866206, 0.004682395042645005], [-0.0804646453569771, -0.0029285129507979606, 0.004837589969473211], [-0.06289292172934084, -0.0029337635803022032, 0.00494055665400566], [-0.09216139423941923, -0.0029374436662141664, 0.004760309465386501], [-0.11561196252014358, -0.0029534365112075345, 0.004601630728576875], [-0.05703755434538913, -0.0029350090324937314, 0.00497408119306903], [-0.14490174135469547, -0.0029478898415773217, 0.004415243932397263], [-0.14784534271861746, -0.004164752759055758, 0.0034795688648498915], [-0.15371731518872658, -0.004161099138999852, 0.0034437814808731273], [-0.15080069168668367, -0.0051101199705484, 0.0022648640662718163], [-0.15668244056260794, -0.005106973681760927, 0.0022293497217396627], [-0.15377114882241805, -0.005722352545320822, 0.0008480126062248392], [-0.1478920129490515, -0.005723908512246593, 0.0008847957645952089], [-0.15086254653683215, -0.00596194964879299, -0.0006425488497205638], [-0.14498125324937916, -0.005963466894102725, -0.0006053605331008019], [-0.1479518933151556, -0.005811081694347752, -0.0021441135462784773], [-0.142071714282537, -0.005812545854872839, -0.0021066504870745906], [-0.1538347756451037, -0.005809839965879082, -0.002181666409102406], [-0.1509218363953957, -0.005277668150008206, -0.003596175874087153], [-0.15680860473464467, -0.00527670045467255, -0.0036343889916502226], [-0.15389124042866054, -0.004397575757731898, -0.004866941834486394], [-0.15977591991022438, -0.004395635871043715, -0.004906687908740588], [-0.15685692871070875, -0.0032270315665949693, -0.005874136363916051], [-0.15096361153143936, -0.0032286801033021085, -0.005835471983156045], [-0.16274605106739357, -0.0032252710337201847, -0.005914763585549917], [-0.15981575010933657, -0.001842880676968513, -0.006552984214210556], [-0.16269217893540952, -0.0052742283681724254, -0.003677912742427793], [-0.1657141471965037, -0.0018419554142192487, -0.006593471381484803], [-0.1627694154116043, -0.00033541162759698337, -0.0068578038378852265], [-0.16863585435456238, -0.0003296641231284504, -0.006899849814625153], [-0.16571316493781704, 0.001195085283085208, -0.006770077988345862], [-0.15981379835079187, 0.0011934396323885399, -0.006729797635951555], [-0.16274945884789357, 0.0026457749070631607, -0.0062560850308841865], [-0.15685117113480104, 0.002643226683317366, -0.006217520048313959], [-0.1597749104137723, 0.003921224971954171, -0.005391657008241222], [-0.1538824243052127, 0.0039188448183373695, -0.005354675067404682], [-0.1567986664153838, 0.004940175864764015, -0.004231644361695466], [-0.15090969277629812, 0.0049381835136325615, -0.004196484151006283], [-0.16269159916570478, 0.004941903203489739, -0.004269190197295098], [-0.15970846865494276, 0.005637718134456024, -0.002886884945934981], [-0.16560069334660443, 0.005639036091125127, -0.002924551225769089], [-0.14799353265158777, 0.003916647687366897, -0.005319039944352027], [-0.14502320820590314, 0.004936042210017506, -0.004162208293178233], [-0.16261859236822912, 0.005965511273444214, -0.0014087152127171094], [-0.1685091095222601, 0.005966124772846883, -0.0014475906920411747], [-0.1479317446468302, 0.00563473887491575, -0.002818110516299356], [-0.14204904072991958, 0.005633261510141679, -0.0027841396570857896], [-0.1685865569766491, 0.00494211887905301, -0.004310567550706995], [-0.14495462001239315, 0.0059637902687427425, -0.0013086431285895465], [-0.1390734956860699, 0.005962709209257185, -0.0012752405407983483], [-0.13616652522645553, 0.00563186768156488, -0.002749895287316205], [-0.13319599332301943, 0.0059618774903616575, -0.0012386630611841162], [-0.13028601544690427, 0.005630180059609056, -0.0027155676510764335], [-0.12731107267509367, 0.005961326529728533, -0.001202924518105598], [-0.12440610008706773, 0.005629538007023143, -0.0026804994329716995], [-0.12737927850316536, 0.004931626131035279, -0.004056685746033703], [-0.12150027353143508, 0.004930986685993326, -0.0040207647957106836], [-0.12446581027920178, 0.003911907978153042, -0.005175004101170489], [-0.11859248121205102, 0.0039106988593649635, -0.005138692844452299], [-0.12154925424371178, 0.0026376021045489075, -0.005997469507744658], [-0.11567701133936746, 0.002636999054859494, -0.00595987103726121], [-0.11862312822769917, 0.0011927534333686, -0.006469088759982296], [-0.11275339579749903, 0.0011925701188243822, -0.00643049592895359], [-0.0599765957956982, -0.004151725405901248, 0.0040420639958086224], [-0.10980437523571328, 0.0026374840224079963, -0.005920769382313872], [-0.10688258235609951, 0.001193408543718432, -0.006390711149108146], [-0.11569563142753736, -0.00032954646733288686, -0.006558372660050415], [-0.10393365230297512, 0.0026389720273585207, -0.005880529947570249], [-0.10101123261603125, 0.0011949532767055785, -0.006350111822590955], [-0.09806189514558217, 0.00264082425699246, -0.00583960583743502], [-0.09513836148819549, 0.001196803767635492, -0.006309855412781003], [-0.09218835963634865, 0.0026427605260464036, -0.005799440812386177], [-0.08926464461579932, 0.0011983156849591369, -0.006270101802771295], [-0.08630812196019888, 0.0026473996389895465, -0.0057577193503639485], [-0.08338878103682772, 0.0011991537668647188, -0.006231934330178318], [-0.08041744972200583, 0.002649406013627574, -0.005721048249301826], [-0.07751153880903615, 0.0012005630302935953, -0.006195246370785687], [-0.07456111687008989, 0.002645421055853574, -0.005687408682892934], [-0.07163640606288718, 0.0011995883820849647, -0.006160332313905645], [-0.06868604409216195, 0.0026444291444292158, -0.005654286511242993], [-0.06575811970791492, 0.0011973309074431988, -0.006127888937197733], [-0.06280499150481575, 0.0026433996413371894, -0.005622433912944171], [-0.059876157292196606, 0.0011949702386348663, -0.006097177344596061], [-0.0569201714806488, 0.0026426759981487, -0.005592844278314178], [-0.05399181219219147, 0.0011926433912628558, -0.006069691399692739], [-0.051033005963929755, 0.002642515563192235, -0.00556650524665403], [-0.0481011957818092, 0.0011915128384163455, -0.006044612696214337], [-0.04514400253598205, 0.0026467248231130335, -0.005544947224116848], [-0.04220995128997307, 0.0011892848515632844, -0.006028425198434147], [-0.045160040166648895, -0.00034256675572634846, -0.006139978432471935], [-0.074583844134252, -0.0003225488666738292, -0.006285708017690076], [-0.0392616278561525, 0.002649648010795002, -0.005521987273832931], [-0.039269299542707185, -0.0003516679370358672, -0.006129582451505613], [-0.04219283396788831, -0.0018594171954358478, -0.005845753530812853], [-0.11852965809595489, 0.005629230194439275, -0.0026452368910419213], [-0.09807947378748175, -0.00032632052125693926, -0.006438311513145257], [-0.036316300527677425, -0.001869857173898896, -0.005829933039244415], [-0.03925997650042046, -0.003253296471244665, -0.005172712724833111], [-0.045147262773836086, -0.003237502534670239, -0.005188411046293762], [-0.0421909237456622, -0.004414974552185307, -0.004184890289961844], [-0.03631925281559794, -0.004433263758216311, -0.0041711543710463705], [-0.08930869983795647, 0.003933751311417384, -0.004925320991122563], [-0.07160593240966089, 0.003919506275723285, -0.004830374982009849], [-0.04807484675598914, 0.003923513933508983, -0.004711765919163279], [-0.12156679132102213, -0.00032897731864633945, -0.0065967839003357375], [-0.11862818109881883, -0.0018289989862036065, -0.006297526988968257], [-0.03923115003088232, -0.005303785355749466, -0.0029164857601708468], [-0.03335559016396528, -0.005314812570855319, -0.0028856656293495602], [-0.04808068947248682, -0.004403986828772647, -0.004208436054752351], [-0.12450029959223585, -0.0018283658141176324, -0.006335896402384988], [-0.12155255489485395, -0.003209165415499562, -0.005666308181051986], [-0.11568197400970148, -0.003209357700549602, -0.005627402465177288], [-0.11859675849355747, -0.004379749618416928, -0.004668256901340415], [-0.11272824777158535, -0.004379440583337461, -0.004628522489011128], [-0.03627713144760495, -0.005844638522637743, -0.0014505121375285566], [-0.030413012768291604, -0.005869421487186502, -0.0014393463744678766], [-0.11563699816889954, -0.005263740752768534, -0.003406678630248726], [-0.10976971071563917, -0.0052629394035554, -0.003365887685085791], [-0.10096689307841038, 0.003915334437950946, -0.0050184321969250585], [-0.12742505501441656, 0.002636797119234827, -0.006035089885066351], [-0.08633410897615414, -0.0003237043121577286, -0.00635913317056748], [-0.05984282006820216, 0.003922386529213061, -0.0047639073460097004], [-0.06282649834577356, -0.0003273836076893799, -0.006218742979209086], [-0.02751290439009414, -0.0053418738728407, -0.0028787052775688065], [-0.04215799798582064, -0.005824787856332627, -0.001483540717058252], [-0.039197748448386506, -0.005982945827560924, 6.171610041189697e-05], [-0.024605589878750413, -0.005872139712278961, -0.0014201901448702898], [-0.02750972369736459, -0.005984226516040277, 0.00011642732121023526], [-0.11267391676728353, -0.005804854798896436, -0.001959217773845498], [-0.10680720518504919, -0.005802751978973254, -0.0019194841595318011], [-0.11854195258973044, -0.005804802967300556, -0.002000818808791392], [-0.13910206307563425, -0.0059648338503644335, -0.0005686711141006824], [-0.17160199346963662, 0.0011911594027130667, -0.006814006633492738], [-0.17157138937854166, -0.0018304767747764298, -0.006640458990878923], [-0.13609915361475353, 0.005904027516710855, 0.0002671759301830481], [-0.16552229287569684, 0.005901830088224461, 0.00010201196567484218], [-0.1714144220905119, 0.0059025005188982, 6.400551463758902e-05], [-0.10390266278504764, -0.005261828635600229, -0.003324630879387727], [-0.10094147155724076, -0.005800973478540079, -0.001878236411915292], [-0.09803557698088589, -0.00525993690384177, -0.003283349428145746], [-0.09507480980464032, -0.005798308707462614, -0.0018368654013295464], [-0.09216782782131307, -0.005257698154713811, -0.003242466922139465], [-0.08920693497841575, -0.0057959117426799244, -0.0017960804192107232], [-0.08629849871788244, -0.005255983098067274, -0.0032027901419870936], [-0.08333669840749053, -0.005793932417155811, -0.0017572220276934995], [-0.08042845021534911, -0.005254641614648401, -0.003164415734388583], [-0.07746636090983205, -0.0057928783028458825, -0.0017186333946490311], [-0.07455600960460144, -0.005254171942860678, -0.0031271088474349195], [-0.07159227347617586, -0.0057928602637883405, -0.0016816534782153154], [-0.06868058711277247, -0.005254542984112749, -0.003091964224714176], [-0.06571654195400803, -0.005794116213606665, -0.0016466235676757903], [-0.05411200575728981, -0.004152757853017345, 0.004075897532974995], [-0.12742488472945152, -0.003207821039291258, -0.005704500569467791], [-0.13037526518048898, -0.001826382857758266, -0.006373426457651708], [-0.07450798470440831, -0.0059521786705034364, -0.00017990491894603503], [-0.10970753272715643, -0.005966168100336449, -0.000425585952442871], [-0.09797937543445027, -0.005960881563972376, -0.0003421219467616962], [-0.08625279137076548, -0.005955008702507785, -0.0002579776496231587], [-0.021711579225605026, -0.005985064417182363, 0.0001311755498353702], [-0.033386078093799364, -0.00035299607825244804, -0.006123218544832727], [-0.021747254227770442, -0.005300629496836988, -0.002843675811146264], [-0.024579476674921913, -0.005751505733214033, 0.001652949283768227], [-0.1744046588799117, 0.005967764833884027, -0.0014888367824194568], [-0.15963546850714536, 0.0059022660513481, 0.00013678769640276418], [-0.16254284921805548, 0.00545225897988809, 0.001581903255714811], [-0.15666195650888634, 0.005453470051053937, 0.0016174045163219425], [-0.06584031795909763, -0.0041490418670096065, 0.004009240796215335], [-0.1333004693118126, -0.0032067520369351886, -0.005741577078398178], [-0.1362531077394411, -0.001824115893921207, -0.00641045739818473], [-0.13619504087742546, -0.005813669510474126, -0.0020709525158051144], [-0.13322512937520967, -0.00596614639852148, -0.0005314938018065557], [-0.141975411841057, -0.0041648033485426, 0.0035171140900089348], [-0.02463680401605561, -0.004420069643059945, -0.004107913973256417], [-0.057040160056323806, -0.005101092878093788, 0.002862028541201316], [-0.17730587604787387, 0.005904463745010965, 2.3193639386097537e-05], [-0.17431796243672246, 0.005450968262237472, 0.0015104650764699503], [-0.1539179152496985, 0.0011945224369952138, -0.006690842269992223], [-0.15965357996133145, -0.005721182185853661, 0.0008107587700574365], [-0.16256612687001412, -0.0051053971364612965, 0.002192428446358064], [-0.16553996917642133, -0.005720786214359521, 0.0007727153303162366], [-0.16845182739845954, -0.005105404665466691, 0.002153784324898782], [-0.17142674067250635, -0.005722607121777521, 0.0007320162321962104], [-0.17433720593833527, -0.005107237281432238, 0.002112177817089057], [-0.17728545995540854, -0.005724668647606659, 0.0006929362298388676], [-0.17441119599248162, -0.005964487902535221, -0.0008043364104895043], [-0.06281518409693698, -0.0052568832433723634, -0.003056825522218657], [-0.05984185439058372, -0.005795979612063634, -0.001613277086624642], [-0.14210803632772326, 0.003914405743691674, -0.005283765984877036], [-0.018927265335161, -0.005668718462097571, 0.0016767548118099386], [-0.018987875501140877, -0.004380697160683999, -0.00405561362034694], [-0.02176405173077467, -0.0032468730707783133, -0.0051050982534855925], [-0.05119059517086719, -0.00510294480303794, 0.0028981183939198927], [-0.051021744683727374, -0.003224968495313417, -0.005216361647169384], [-0.1098115030644518, -0.003209308468234996, -0.005587265484125515], [-0.08925620775469996, -0.004374105972412583, -0.004465839358076886], [-0.07751530834579849, -0.004371803479332165, -0.004389803519769569], [-0.06576528275969738, -0.004372106714646015, -0.004320659098157602], [-0.02169148269840865, -0.005089811907950317, 0.0030607539390726042], [-0.02748844250113434, -0.005120144442530919, 0.0030480757779518843], [-0.1802248603745147, -0.005969198141658919, -0.0008606682299644025], [-0.1773905316585599, -0.005810759966264132, -0.0023577413570772545], [-0.016450198038246034, -0.005844078478587207, 0.00020834636401170583], [-0.15957231434567587, 0.004645743467970785, 0.0029022941107271073], [-0.15368986489452355, 0.004647705962317665, 0.00293549507790678], [-0.18030323297635498, 0.0059705272814269406, -0.00153230936391902], [-0.18022231650227238, -0.005110138492500459, 0.002073276617873414], [-0.18021059133292036, 0.005451787767614314, 0.0014673431453276857], [-0.17722140236042683, 0.004643489411570624, 0.002790259973549008], [-0.015964537054506914, -0.004916816388351028, 0.00301287248373477], [-0.01603965611117583, -0.003141249100959248, -0.004925872289359342], [-0.01894611671322391, -0.0018500261923973156, -0.0057165182577467695], [-0.17134645541420523, 0.004640740943902134, 0.002831029532175352], [-0.13031686534576836, -0.005814556341330791, -0.0020335971911662237], [-0.1273512482268543, -0.005966834171808667, -0.0004938343133857843], [-0.13025768078636654, -0.0057284842326677425, 0.0009939239557935243], [-0.1243891452175203, -0.005728907284577073, 0.0010320456948365855], [-0.1391843356423752, -0.0032064587197457744, -0.005777753533886973], [-0.14213461807548647, -0.0018219060976886314, -0.006447363547883718], [-0.1391948014951094, -0.0003202158540668474, -0.00670771659212333], [-0.10099291930566691, -0.004377704032738827, -0.00454672870734443], [-0.17738821224829115, 0.005641289387275119, -0.0030113170472373363], [-0.016095125152277494, -0.005127757618624301, -0.002705246768896251], [-0.1450690671965936, 0.0026399521771845445, -0.006143982080546801], [-0.0450806828795648, -0.005968369683794873, 3.0577177544305526e-05], [-0.04212452528763281, -0.005729329056684931, 0.0015628925654369266], [-0.04802851730877674, -0.005814246751743366, -0.0015144082426496674], [-0.06275386399593207, -0.005954046640278145, -0.00011161313783657506], [-0.05689560424790312, -0.005956015875784907, -7.392489670367092e-05], [-0.17135401418649598, -0.0041548508939245445, 0.0033320897827142683], [-0.1507818200052064, 0.0054549923749871365, 0.0016514385387896887], [-0.14777856256671118, 0.0046696194184755084, 0.00295250421369837], [-0.024577619061730973, -0.004148735840225916, 0.0042849130855618835], [-0.048240490494514794, -0.004155533330102388, 0.004112503505517545], [-0.139185794935023, 0.0026381101466635606, -0.0061080532780788364], [-0.03039539501959642, -0.00416678580814473, 0.00423903318559281], [-0.1827772998998817, 0.004646325218242562, 0.002742996876031435], [-0.01335436936018834, -0.0017767802755164722, -0.005317817324274323], [-0.016109355095828847, -0.00037431362628061345, -0.005807052188309018], [-0.021746518825998387, -0.0003625803338555162, -0.006085239358928802], [-0.01889181989097679, 0.0011565733666007488, -0.005902172426852006], [-0.024613531660939242, 0.0012002410210164443, -0.005969001921213697], [-0.021783700972215016, 0.0026405817338028058, -0.0054578273331461384], [-0.02750289831770838, 0.002679991877062774, -0.005510406592109699], [-0.02463329793828011, 0.003932677810231482, -0.004634134698739793], [-0.01884767005250747, 0.003922792662107616, -0.004538245262688736], [-0.02165488426468407, 0.004969626304240935, -0.003428211041022471], [-0.02752047363952781, 0.004992303556644891, -0.0034874937325728933], [-0.024556773216664697, 0.005705488710264054, -0.002073204036122752], [-0.030399540785919454, 0.005692600028653106, -0.002107787463655582], [-0.027457061963296624, 0.006026197283256994, -0.0005654740530049023], [-0.03330399812458129, 0.006016533909774866, -0.0005983488634805092], [-0.030353394776654823, 0.005962592835075261, 0.0009663242583667654], [-0.03621015605760558, 0.005930020165750951, 0.0009309270784160407], [-0.024584923412553777, 0.005916796780644102, 0.0009967378312196367], [-0.03325876984923847, 0.005489740942398594, 0.0024179474044590567], [-0.039117762319649294, 0.005466196448501618, 0.0023868650281503993], [-0.04208161130573425, 0.005922228162607133, 0.0009023393102739337], [-0.04499105420569077, 0.005454004206077948, 0.002348247555619708], [-0.047961486118197186, 0.005912038174101869, 0.0008705107688866191], [-0.050867854169815895, 0.005450451040785598, 0.0023137162207089866], [-0.0538424711441472, 0.005907267760423583, 0.000834907434376325], [-0.05675714319887137, 0.005454167320770635, 0.0022719372857680172], [-0.05972160627038157, 0.0059055424452614195, 0.000804462348126016], [-0.06263581507190874, 0.005447427689090175, 0.0022469877533393074], [-0.06559688914384598, 0.0059026050903171106, 0.0007799466153824969], [-0.06850555936286994, 0.005444004443174184, 0.0022234517376223673], [-0.07147255677762657, 0.005901006607827999, 0.0007507389598733144], [-0.07437335680549886, 0.005444523545647196, 0.002187926702067628], [-0.07734203998501823, 0.0059024759810594775, 0.000715150718825079], [-0.08024502942523935, 0.005444603331578662, 0.002151973518108458], [-0.08320684549550232, 0.005901059458334545, 0.0006809736334351922], [-0.08610965242079402, 0.005441325783464833, 0.0021173130546612226], [-0.08907427404356269, 0.005899857038487932, 0.0006438783939643122], [-0.09197135708312464, 0.005440124370865106, 0.0020790959237042437], [-0.09494520016830903, 0.005898659170856525, 0.000603659441273307], [-0.09783424112362106, 0.00543861986260261, 0.0020359235903034505], [-0.10081389564748658, 0.005895534474634628, 0.0005584830014759886], [-0.10371119733876843, 0.005434831598316202, 0.0019972722157279863], [-0.08027072805688405, 0.005976968404449532, -0.0008185685041490955], [-0.01884942081443723, 0.005553347865412775, -0.0020018815486660003], [-0.10669557264657803, 0.005893531255061235, 0.0005188073298791338], [-0.10958674484497566, 0.005435093321636088, 0.0019535622600724218], [-0.03625543241927023, 0.005689127590050793, -0.0021124133391891313], [-0.09792145386733206, 0.005971519000811617, -0.00094192603185439], [-0.06856606833568844, 0.005976445406139263, -0.0007599180061069993], [-0.056813879533545046, 0.005978308684388771, -0.0007050852907586335], [-0.036173176769325, 0.004659671060714226, 0.0037066398108174486], [-0.08900831002104986, 0.004647425597711942, 0.003364812800113911], [-0.1066051172699759, 0.004621147674151888, 0.003272261372452283], [-0.11246231218022161, 0.0046128387168382495, 0.003238852706205706], [-0.1154779737021321, 0.005435118648487941, 0.0019039542540687075], [-0.11843756588708171, 0.004596946082337221, 0.003212159622089173], [-0.030315804890544792, 0.0046761215291553915, 0.0037392212817850953], [-0.07140475065488076, 0.004649940533670063, 0.0034770236660038975], [-0.059724943316391124, 0.004629516858659431, 0.003559740439350486], [-0.04788948805955104, 0.004636427587945971, 0.0036302985674316873], [-0.04505054434961461, 0.005988113345784244, -0.0006446062417717992], [-0.12136609031034905, 0.0054331458006009505, 0.0018769963144264269], [-0.12429157348703386, 0.004614592725153533, 0.0031601011978524655], [-0.03322592220348271, 0.0035518533209522598, 0.004774496454205915], [-0.1219475680413698, 0.003498023164461086, 0.004215278044621666], [-0.013615635553149012, 0.0011069813903078264, -0.005520372750012136], [-0.12724462154781763, 0.005428216110568968, 0.0018477492479881626], [-0.13011047416920235, 0.004629055145631148, 0.003103047569660642], [-0.0332790494306047, -0.005118992131578584, 0.0030335463392281315], [-0.03628495665383074, -0.004141865964949554, 0.00422233704064955], [-0.14490423410302164, 0.0054569544107501465, 0.0016869063302757266], [-0.14195651515790023, 0.004654544570936589, 0.003001452239460291], [-0.15084016415489657, 0.0059644245391931175, -0.0013402413086693991], [-0.13622562476909794, 0.003913579254492026, -0.005247504187867448], [-0.145072196002113, -0.000322915160025396, -0.006744065114602147], [-0.05989168122595019, -0.004375704284590222, -0.004286423175980477], [-0.03045167471827571, -0.0018627624960352578, -0.00583049458372604], [-0.1714947871794257, -0.005809023080015931, -0.002310197407803225], [-0.1744853307832797, -0.005272265367142995, -0.0037722607942688824], [-0.18038306270582882, -0.005275432844115859, -0.003819596919092605], [-0.1774519164772718, -0.004384896005152758, -0.005051286366452381], [-0.18299572975176706, -0.004375241938214205, -0.005105928964886076], [-0.18042697975035327, -0.0032045897794801266, -0.006064148267312172], [-0.17156242007132608, -0.004387575199352746, -0.00500087651119881], [-0.11845450330096613, 0.0058972662922399085, 0.00040668064091125005], [-0.13034347111443398, -0.004378894485023124, -0.004743816365726543], [-0.13917580494398912, -0.005278763149589294, -0.0035248417283807467], [-0.12729663143590333, -0.0051172775646678, 0.0024096017444326474], [-0.12142631057751695, -0.005117947008923756, 0.002447562819429443], [-0.11852180166617009, -0.005728619253675552, 0.001071650703874047], [-0.11556400959505465, -0.005116702454981358, 0.0024871085480068804], [-0.13317589663905235, -0.005114272718360817, 0.002375124494839705], [-0.16263081962392265, -0.005960209402471834, -0.0007188059918946712], [-0.06284173677655969, -0.0032010946404750027, -0.005286177262382295], [-0.06871612634870279, -0.003200349909595759, -0.00531902980116952], [-0.18287299547953986, 0.005648358189984982, -0.003041489157216331], [-0.18037573245839397, 0.004941551589964713, -0.004403946842291826], [-0.18589271066165616, 0.005970225328983795, -0.0015347340266971723], [-0.18628128976549926, 0.004943193780857932, -0.004452588384845073], [-0.18307260073761433, 0.003923044245411767, -0.005562250232018878], [-0.1773479797587024, 0.003923795769471766, -0.00551799760901241], [-0.18042994405081686, 0.002627326669647488, -0.006398114580396121], [-0.03910966957012075, 0.0035485411986363076, 0.004721480115900078], [-0.15074175215642274, 0.0035504564049189955, 0.004001604652812758], [-0.17421765379239199, 0.0035485067766947618, 0.003851373441700564], [-0.16837220556893234, 0.0035541660398516893, 0.003888175467505359], [-0.10950060046952716, 0.003513505830256478, 0.004290006142737475], [-0.10363905281785532, 0.0035036071612839347, 0.004338745656482209], [-0.027405293208531935, 0.0035792363522224356, 0.00479296809843382], [-0.02458096362532667, 0.004658299012606492, 0.003740668163764255], [-0.021652806654907732, 0.0035423336182474406, 0.004800753478003287], [-0.018857363837397546, 0.004585235428501723, 0.003709989951963475], [-0.016015401467694385, 0.0033967549913047003, 0.004614914397505216], [-0.013647468222279188, 0.0043223004336400625, 0.003487617262617434], [-0.016056850276489208, 0.005251051245151263, 0.002375553400143036], [-0.1863427194235559, 0.002628177467784875, -0.0064468079541788095], [-0.18308717554220305, 0.0011525606233910722, -0.0069096088351036315], [-0.0361438793783864, 0.0021913436471262637, 0.0054835704704974215], [-0.010470266872971704, 0.003066133377373466, 0.004183918713728646], [-0.10529614147426818, 0.002138955918396461, 0.005057349746251542], [-0.18609793124897286, 0.005453350444012603, 0.0014257079600954474], [-0.18629323463252537, -0.005278657065504251, -0.003869019636685976], [-0.11542657844230016, 0.0030079792719494543, 0.004571285062979825], [-0.12097983294052315, 0.0020198532973495584, 0.004997199069694634], [-0.18633214052497007, -0.003207829978800507, -0.006108773714050152], [-0.1833910820352929, -0.001809781399613423, -0.0067394941711229825], [-0.18866894337955822, -0.0017841761165921103, -0.00678846766977323], [-0.010462856873142176, 0.0047524714992993895, 0.002143377896240513], [-0.013154296557266434, 0.005447720250804789, 0.0008924507507112968], [-0.008508026110345457, 0.0047280061182153705, 0.0008080877076059339], [-0.010700640365494596, 0.00524059060768736, -0.0004297489072831193], [-0.10071965491626905, 0.002169993595946627, 0.005083686267332666], [-0.09776353815172266, 0.003519498133614222, 0.004371991165787222], [-0.0916133498597762, 0.003014616229456996, 0.004738044630315506], [-0.13310999253385214, 0.005432357030201827, 0.0018095720846983347], [-0.11265635799580784, -0.005726870318080993, 0.001112159811102782], [-0.10971946461346446, -0.005116865270379067, 0.002522833844050515], [-0.11561530457105504, -0.005966282069304871, -0.00041346101646016754], [-0.04800245234527599, -0.005717590179942501, 0.0015270545710733153], [-0.13601855433856264, 0.004616658447210166, 0.003081079958432133], [-0.13304575878296257, 0.003502191707781351, 0.004143996690787312], [-0.13893663901026443, 0.0035030672791858215, 0.004109499269751983], [-0.13597091699405464, 0.0021555976137709308, 0.00485439767975966], [-0.1448598368827716, 0.0030251192978370165, 0.004381211749496032], [-0.12640321398461335, 0.0028978159798690867, 0.004568758638858671], [-0.01065817760722914, -0.002825014495127735, -0.004374165662908982], [-0.008762520891269648, -0.001465630594763905, -0.00457376664257262], [-0.008323145888673781, -0.003531676083260474, -0.0031717732665934415], [-0.13903341633521094, 0.00545812354793165, 0.0017177778827906704], [-0.04518196353200649, -0.005100801824440549, 0.0029485073470201808], [-0.04218663652608057, -0.0041366321572757925, 0.004175355805758659], [-0.05093354768619189, -0.005959120644184843, -1.9493306625194187e-05], [-0.05398143986496733, -0.0058022318303404775, -0.0015691712608920355], [-0.12444468422951228, -0.005816012073684592, -0.0019927969974253925], [-0.12739644189079688, -0.005278135491902976, -0.003456057557768231], [-0.039148217823492926, -0.005105451262392007, 0.0029901659444135885], [-0.039362687890791004, -0.002926308664177616, 0.005095466506207599], [-0.036237028514916544, -0.005742373624159186, 0.0015945756943371407], [-0.12150397253231665, -0.005263902772825181, -0.0034454386674763657], [-0.13021722454361662, 0.005893954510656757, 0.0003551468605260527], [-0.05695053493078305, -0.003209118609630672, -0.005251791701139032], [-0.05395551441156667, -0.004389038834813289, -0.004245044376240325], [-0.053983192209576786, -0.0018372444509023385, -0.005889409459864162], [-0.0891394022318706, 0.0015239072725481805, 0.005368118906178303], [-0.08612794087352989, 0.0028561006924917, 0.004867205815746113], [-0.16545976294915665, 0.004644557294546729, 0.0028666039058013273], [-0.16247436395916784, 0.0035441907639118023, 0.003931137886555586], [-0.16505504676894442, 0.00222757482975024, 0.0046465974481434465], [-0.15992205882106308, 0.0022016488245928823, 0.00469056109371331], [-0.02751246363504766, -0.0029629930763422916, 0.005167167191177566], [-0.1801479559112746, 0.0035498854579921737, 0.0038088099622459693], [-0.1847800596090726, 0.003605612013275563, 0.0037312629758786877], [-0.17714942323618993, 0.002190594474656768, 0.0045752692369478735], [-0.14801158175926699, -0.001823999974795077, -0.006483095077730703], [-0.018836273318733603, -0.004079732186569457, 0.00423367253694147], [-0.013218423179935128, -0.003784467939672214, 0.003995607758151697], [-0.010669187720115143, -0.004409692885760841, 0.002756111254484582], [-0.008463113792227328, -0.0032090632996351048, 0.0035238378045371987], [-0.008055866723181836, -0.004482052676543817, 0.0013162980036377978], [-0.01603750546512792, -0.002816146330363709, 0.00503867028560848], [-0.04202290503620154, 0.004643690446490808, 0.0036656274768541138], [-0.04492883861645436, 0.003548072293463045, 0.004680853333282512], [-0.05079093476473876, 0.003519341903528646, 0.004656337546613458], [-0.048055115124982305, 0.002303745584081672, 0.005356660650664655], [-0.057108837985532325, 0.0030977247885048474, 0.004899009950754743], [-0.15672933969803168, 0.005965019417953246, -0.001374063319857628], [-0.030677674397106232, 0.0022328990871135403, 0.005505248196876041], [-0.033349296764732285, -0.00600046496205345, 9.606006259993713e-05], [-0.14831280890771822, 0.001633158006178377, 0.00495121286069002], [-0.16843291223119738, 0.005451191406736597, 0.001547314636001724], [-0.053787863364307006, 0.0046276584505138595, 0.003610560312427654], [-0.0631762763894252, 0.003506254770893503, 0.004598139582515222], [-0.021658538481704306, 0.005989798264451114, -0.0005484603850508196], [-0.1654722955830273, -0.004154602131768613, 0.0033708968511298224], [-0.12430371020486221, 0.005898056446883436, 0.00036707859798417494], [-0.1595926226048491, -0.004156776717442223, 0.003408640762101988], [-0.15382027702513068, 0.0056363505747718525, -0.0028518856658486316], [-0.15686706724728006, -0.00033161851888155897, -0.006818288515676451], [-0.15392797883660717, -0.0018344179102369404, -0.00651649270148425], [-0.14507441960497483, -0.0032069710688505896, -0.005813345344267278], [-0.14208157031094668, -0.004385698262499727, -0.004807366162933528], [-0.14800405830052232, -0.004396615498402066, -0.0048314571772118875], [-0.03334782427439428, 0.00499442365299649, -0.003490173530524268], [-0.03922667994108053, 0.004985947982098728, -0.00350438317089269], [-0.03630950042571862, 0.003965226483033427, -0.004653096278977018], [-0.13612951385270727, -0.00572725721731799, 0.0009568549289344763], [-0.1420094636911594, -0.0057257158792664, 0.0009210216673678537], [-0.14492675710956118, -0.0051110883978861595, 0.0023022021808044193], [-0.1390501973098629, -0.005111967967543583, 0.002339962826265428], [-0.13612762240552742, -0.004161543685524887, 0.0035578684040911686], [-0.045104780967938365, -0.005288370127600924, -0.0029387756558162947], [-0.027451794265274696, 0.005478355756568832, 0.002451392609481992], [-0.16863692031529898, 0.0026455305033425266, -0.006297655169191783], [-0.07460830328684186, -0.0029279138158750445, 0.0048741341040813], [-0.07755889485320742, -0.0041451141207550935, 0.003942055598571844], [-0.08337391971006654, -0.004142964095362016, 0.003909196717229425], [-0.08050705985139446, -0.005092484441596213, 0.0027325839172706967], [-0.07463842442902521, -0.005094704746561004, 0.0027640642095302036], [-0.08624526122014986, -0.00510249869092928, 0.0026821974560669796], [-0.07754107622610538, -0.005713325280245273, 0.0013397631808986289], [-0.15095932657867767, 0.002641706256558138, -0.00618028237490448], [-0.13914181504211715, 0.004934549822553503, -0.0041272228992094385], [-0.13326077036279022, 0.004932836911903996, -0.004091896334132029], [-0.10384532973631028, -0.005964032553419951, -0.0003843996551650959], [-0.10088212627416024, -0.005735724989965228, 0.001143137387948877], [-0.09502403539165968, -0.005732280920353854, 0.001184364481130379], [-0.09796880764341644, -0.005136592609745774, 0.0025582052586858887], [-0.10376247586034928, -0.005130997959297123, 0.002533599048858713], [-0.10080587654581968, -0.004187138433472299, 0.003759977335325122], [-0.0950271552954671, -0.004188693124511163, 0.003793632731717667], [-0.09211638369667703, -0.005957904462487263, -0.00029971543741202905], [-0.08921737216965801, -0.0057254948025695805, 0.0012335061431228969], [-0.12446598323774467, -0.004379277605963622, -0.004706817519420895], [-0.1332724427609611, -0.0052723958131148125, -0.0035020678196490654], [-0.112720543382225, 0.003910909962645424, -0.005100757459494523], [-0.14198156130427061, 0.005904250286028586, 0.00023458126218718552], [-0.14786471414093322, 0.005903313662672052, 0.0002034783715630479], [-0.15375021334899647, 0.005902921657661796, 0.00017000189738250582], [-0.12143080004226947, 0.005961111594510249, -0.0011696347354431718], [-0.11555383260661367, 0.00596177988184164, -0.0011344272013744932], [-0.11265383957385677, 0.005629603173549664, -0.0026072113388789725], [-0.10968098246823493, 0.005962177053436869, -0.0010937078959129451], [-0.10677842703580534, 0.005631153227403341, -0.0025666300046677504], [-0.10380467952481026, 0.0059629732329901704, -0.0010558573615695108], [-0.10090571872327955, 0.005632823344033587, -0.0025237662194116414], [-0.09496694666229698, 0.005655639516352005, -0.0024253793865704728], [-0.09794949678197433, 0.0049567876635675055, -0.0038305291574863504], [-0.09204820240767794, 0.004984966085187751, -0.0037509286894837355], [-0.08905939155359424, 0.005671729880041287, -0.0023449250664480305], [-0.08608830742806828, 0.005009954037837041, -0.0036754278400009674], [-0.08330183487581153, 0.003970113159567278, -0.004854831952972189], [-0.08032019295443484, 0.004977350398691841, -0.003689020038806145], [-0.11261303862905127, 0.005902110423162981, 0.00042332488747521], [-0.11562313546858351, 0.0049310344906808344, -0.0039833314791035395], [-0.10982356546238095, -0.00032934158947533907, -0.006518994896673483], [-0.11275871246408874, -0.001829816642137501, -0.006258264349945834], [-0.10684397295596723, 0.00391278818184213, -0.005060188503928123], [-0.07727833020067526, 0.004632905179145347, 0.003461649373217491], [-0.07467819523003814, 0.003548828358037407, 0.004503552918098939], [-0.0798136173736269, 0.0035223571659340177, 0.0044899751665126745], [-0.03916801185217957, 0.006000975731751585, -0.0006182184323601593], [-0.1303435637982957, 0.003912960232469646, -0.0052110606314170575], [-0.09220720349329951, -0.0003244598200363309, -0.006398534758619437], [-0.09514173555060064, -0.0018251283379404416, -0.00613774081061167], [-0.10101543474831237, -0.0018275097971611942, -0.006177723915487557], [-0.10688688671177429, -0.00182907519633056, -0.006218110686782896], [-0.10394100717270242, -0.0032080008730564318, -0.005546887925938275], [-0.0980699678179429, -0.0032059984103701158, -0.00550645914478635], [-0.10395173118104584, -0.0003281719798998022, -0.006478802719765279], [-0.08926834909834175, -0.0018238397148825042, -0.006098066038367454], [-0.08339579590361586, -0.0018227961711691728, -0.006059183518718231], [-0.09219633622204809, -0.003204059878987946, -0.005466473594895785], [-0.08632153039242096, -0.0032029400198349363, -0.005427041729057481], [-0.08036964203837084, -0.005952930374073509, -0.0002211418675453869], [-0.08312534707421931, 0.004649415651959848, 0.003406884931414343], [-0.16566828749488183, 0.003923706712749755, -0.0054299870810724064], [-0.10974906763195874, 0.004932273831349522, -0.003944513317236405], [-0.10389935710116105, 0.004942286915480791, -0.003890653152197793], [-0.13330410713214091, 0.002637549674225617, -0.006071588560164323], [-0.13037027977222054, 0.0011959832801070706, -0.006543103729059675], [-0.0686271847054333, -0.005952499507509093, -0.00014626092245200787], [-0.0656689275835087, -0.005722792958510094, 0.0013792578678047062], [-0.05984805430915997, -0.005724868207065901, 0.0014110805947826965], [-0.07442142483082155, 0.005977219263582283, -0.0007874570851565433], [-0.07151233947286485, 0.005663483647568014, -0.002265485311847392], [-0.06565071196474512, 0.0056624359126233835, -0.0022376587197452014], [-0.06862863268169019, 0.00497909332900298, -0.003619167054721302], [-0.06275119770955806, 0.004975131445274532, -0.0035943617187507606], [-0.10073052641006777, 0.0046232220410496174, 0.0033087687396327215], [-0.09485196797405145, 0.0046515627664946175, 0.003321872151803195], [-0.06269148838350715, 0.005977690667820839, -0.0007325779929068276], [-0.08045916294485311, -0.0003227307059435724, -0.006321265465365607], [-0.05093301408048471, 0.005980887562656924, -0.0006754245020975574], [-0.053905924431914116, 0.005661944500785167, -0.002186182169590374], [-0.10974348459702132, -0.002951240516219333, 0.004640562534089437], [-0.0951396884163828, 0.003926279030681041, -0.004970039844539626], [-0.10674319819561735, -0.0057392110564996575, 0.0011010754117668944], [-0.07156271923116177, -0.00571903394441592, 0.0013548781924565471], [-0.14504587339845879, -0.0052778642970056884, -0.003560810419714648], [-0.1772484354550131, -0.0041562877271463135, 0.0032916543830048967], [-0.18311814601813223, -0.0041577489237984025, 0.003250396396972697], [-0.18598157927207243, -0.005120421581300142, 0.002017912664819077], [-0.18811807193714927, -0.004136710036092987, 0.0032344918813422135], [-0.1884910632175719, -0.005757509499341147, 0.000516728202175937], [-0.10686086424633803, -0.004378942599410904, -0.0045878360418198805], [-0.12148384576120218, -0.005967327117159088, -0.0004564860197877839], [-0.06289431534538564, -0.0050991004674471995, 0.0028282002749565305], [-0.15674568556199406, -0.005960739037615375, -0.0006803099023540544], [-0.1333171246752413, -0.0003240992389871079, -0.006671134401561525], [-0.09512490048516739, -0.004376104546853322, -0.004505692055144232], [-0.08630701066608143, -0.002931889720212519, 0.0047997824181104255], [-0.07753050026166802, -0.001823001686264762, -0.006021938601795233], [-0.08045486656142346, -0.0032016036488038114, -0.005389029568758286], [-0.05977936364044184, 0.005661364289479558, -0.0022120269697842414], [-0.08338532789861587, -0.004372730205730845, -0.004427043458179347], [-0.030450399299941276, 0.0039740030031236604, -0.004646276620606914], [-0.04213665321276568, 0.005672467310235125, -0.002136531767462375], [-0.04509200134882933, 0.004974420146304628, -0.003524313950487015], [-0.05395643905443255, 0.003923691713466582, -0.004734834505440873], [-0.06572386248656018, 0.003924073917586114, -0.0047929067078541655], [-0.01602679246260577, 0.002578249458791841, -0.005259326972555283], [-0.013620525334801846, 0.0037171176018791084, -0.004257458202661941], [-0.15660108652747504, 0.003553289833747031, 0.003962992489998543], [-0.06870724347347869, -0.00032407840850006797, -0.006251219359326364], [-0.13620318144702334, -0.0043827062092526015, -0.004775421666982016], [-0.030373522807775586, -0.005760657766940076, 0.001644889754101415], [-0.12743984196189972, -0.00032759233972654315, -0.0066342440074053325], [-0.07163947237730633, -0.004371665736211735, -0.004354502082844479], [-0.05410193550101318, -0.0015284080903073172, 0.005568383108127915], [-0.14196497568204414, -0.0015406857389985596, 0.0050123373085510375], [-0.04240067025668848, -0.0015319380902240555, 0.005643277388865841], [-0.09801199301539582, -0.002942458058373693, 0.0047204009702866145], [-0.0687515236617224, -0.002929410668751612, 0.004908087682685785], [-0.1595401158169942, -0.0015271089013275821, 0.004904231178182703], [-0.0569401164435387, -0.0003301291137867935, -0.006188858019161715], [-0.048019804929437054, 0.005664079462837576, -0.00216139262389714], [-0.019289666730712283, 0.0014733093660538271, 0.005695468538382128], [-0.03339841959028884, -0.0032582894456745387, -0.005159919422601111], [-0.01602248046637562, 0.004820358475109027, -0.003314294205369003], [-0.010471009597924191, 0.00432598527670548, -0.002968158125501439], [-0.13318610726462857, -0.0029469800004473723, 0.004489527264087252], [-0.12147090341224373, -0.002952202844485577, 0.004563957965632488], [-0.019607706514520987, -0.005776473502402969, -0.0013586466527280387], [-0.15662000139307225, -0.002937775453287452, 0.004344440022293699], [-0.17123909220227126, -0.0015293027053009443, 0.004825029738408395], [-0.03632593760285625, 0.0011829091966473993, -0.006017376890473074], [-0.010894966077445046, -0.0003203049324270892, -0.005335396786847311], [-0.07167827905877809, 0.0014971988134686682, 0.005485827258500757], [-0.0687816163841646, 0.002851678133481987, 0.004974202757305626], [-0.059978759455055104, 0.0014885808733445618, 0.005554159912803625], [-0.15971769323725346, -0.005808819005538461, -0.002220914870409803], [-0.18268995803836177, 0.005905664036329103, -3.326681253747254e-05], [-0.030428151463979435, -0.004453099909107014, -0.004160097138828956], [-0.16851972441158616, -0.005961212093741695, -0.0007603174898480467], [-0.07169828397768169, -0.004146173464397792, 0.003976697016691295], [-0.18297303981793508, -0.0058166139505680696, -0.002404317560594814], [-0.06877384978474133, -0.005095932173149711, 0.0027974566041333135], [-0.050970179821859085, 0.004954518147381564, -0.0035714535297481195], [-0.056871376522914505, 0.004976506031968493, -0.003563090080132437], [-0.12449776057820461, 0.0011939152289643395, -0.006506324851873064], [-0.17149629815743261, 0.005640207842720158, -0.0029663472808004643], [-0.04216666677351913, 0.003955631190571275, -0.00466632448632545], [-0.02752985095416533, -0.0032734020083595747, -0.005147556461519187], [-0.18272536270435724, -0.0015226213464982455, 0.004746201445060417], [-0.030445457164268, 0.0011917178097166625, -0.006016433778394925], [-0.024621592314848825, -0.0018785499561104263, -0.005789800899812406], [-0.17447502484403224, 0.0049427062390508085, -0.004354534363040005], [-0.02756651669039825, -0.0003517810711930765, -0.006089230938442886], [-0.13904379928494012, -0.002946358339476726, 0.00445251514361462], [-0.1656020815992357, -0.005808854074656952, -0.0022628075258049165], [-0.05121004422120781, -0.00293195725285585, 0.005011694247970046], [-0.17151770218439336, 0.003923749910732677, -0.005472850745839611], [-0.03333653114127004, 0.0026665446969751437, -0.005511939232625702], [-0.07458676498227407, -0.0032007649494877567, -0.005353080335368531], [-0.02170082714457955, 0.005455460784099067, 0.0024461024292405193], [-0.16859121616427306, -0.005271720184807189, -0.0037249002554210096], [-0.16566221636025072, -0.0043923728109285355, -0.004951122805037829], [-0.17740940571728483, 0.0011746649035783902, -0.006862255427286741], [-0.16247908173593215, -0.002935631942240677, 0.004307832991195628], [-0.16833617884391128, -0.0029360790241478325, 0.004267894109064], [-0.17748911335322065, -0.0018219306669480751, -0.006689780283418879], [-0.07166093626924742, -0.0018219278765972213, -0.005987185696788187], [-0.06578300481539266, -0.0018227185528344192, -0.005953239050190491], [-0.018865084336308232, 0.005853190949344569, 0.0009731598842203523], [-0.016223943666319, 0.005804309779159209, -0.0005132668192629192], [-0.04807985262169601, -0.0018467798155925072, -0.005862855762778397], [-0.13026956206029358, -0.004164573895957186, 0.0035932442476974344], [-0.12440800812644301, -0.004167509480508997, 0.003629316932835259], [-0.11854580315823594, -0.004169014181497432, 0.0036664410487403432], [-0.10672018163827457, -0.004178559376971408, 0.003731694355042501], [-0.11265372656462887, -0.004174237205493566, 0.0036996619940586274], [-0.19121384179123052, 0.00392186904306905, 0.003406525201963475], [-0.004861510513995911, 0.0023639048761786166, 0.0024083475560231307], [-0.13625164462117423, 0.0011984122317053637, -0.006579253068290021], [-0.0774166948933592, 0.003911041352261865, -0.004871378395068337], [-0.14802409143968706, 0.0011979466353493568, -0.006652756160094145], [-0.19229934315258837, -0.004688627714675074, -0.004806191249560064], [-0.14213597779558815, 0.0011982145389749393, -0.006615851625481409], [-0.19217070666997463, 0.004709360967052009, -0.0048051424749617775], [-0.005304429916469521, 0.0028232475659139217, -0.0021572579034078586], [-0.004610179918441896, 0.0010019323857280377, -0.0032692982537059177], [-0.009614849492445739, 0.0021764194238087964, -0.0045652969551376425], [-0.19271187903457646, 0.0018078852999263613, -0.006810963488947679], [-0.19215317390904593, 0.005803657737316793, 0.000336558193044008], [-0.19144378480489213, 0.005975468005979456, -0.001523267484315253], [-0.1919478742591089, -0.005966275582094281, -0.0014209992080284717], [-0.005720533941671049, -0.0038669323120879623, -0.0001168603983262572], [-0.009637057470343987, -0.004834365190208987, -0.001067265919360332], [-0.05105206385896691, -0.0003331576865389624, -0.00616211154951288], [-0.05988965764911365, -0.0018292242286316602, -0.005920436778951749], [-0.15097045806265266, -0.0003270977912390861, -0.006780583285794359], [-0.05691847346147023, -0.005264900760015376, -0.0030148450059625715], [-0.17419490026219153, -0.0029334885156508572, 0.0042292470195682075], [-0.17454017706527603, -0.00033013991062031886, -0.00694370414880828], [-0.1745068109057971, 0.0026372763890540126, -0.0063452872314385365], [-0.18293179924743164, -0.0057290988932902935, 0.0006390250828035016], [-0.050971654900785236, -0.005276947612910275, -0.002971570997091891], [-0.16863142950540125, -0.003221077713643752, -0.005959546935314088], [-0.0920113523782361, 0.0059745146336989095, -0.000894848679085904], [-0.013871005011399488, 0.0053640646564122405, -0.0019192288425613885], [-0.08912758401931435, -0.00415227242509918, 0.0038651841613076875], [-0.18003203696688846, -0.0029341489674785705, 0.004187589130316879], [-0.1745194295471442, -0.0032125702678996925, -0.0060101548794242], [-0.09217068437671588, -0.005132406716252821, 0.002598278359988105], [-0.07740959669628536, 0.005668179397685004, -0.002286354596876326], [-0.08335304928773887, -0.005707904604897982, 0.0013244449408337938], [-0.07444788298437861, 0.0049524438930333625, -0.003691834826923714], [-0.054077444535806214, -0.005720779596081014, 0.0014650132573271954], [-0.08611983864070269, 0.005976552618706812, -0.0008507922267964803], [-0.18587786496586237, -0.0029344579614991114, 0.004147987465295514], [-0.04527380085213955, -0.0029322568095208434, 0.005048918441436682], [-0.06556481942294674, 0.0046514302521211155, 0.0035080746686259007], [-0.013597955180802077, -0.00412418708588535, -0.0038268498708670874], [-0.18042813141037536, -0.00033215992917405655, -0.006991840677313817], [-0.005609962746843572, 0.0038506425573955954, -0.00026948878152205466], [-0.18591422065914928, -0.0003110688106518094, -0.007036531625120463], [-0.08320963416328883, 0.0056696670964063505, -0.0023146652582726785], [-0.03338043206004641, -0.0029569752393650496, 0.005127096704332744], [-0.18606411517476784, -0.005972032516234295, -0.0009207215256590526], [-0.03644677659449309, -0.0015210468986798762, 0.005693548265387291], [-0.024908770640259044, -0.001502786553260069, 0.005771315149510748], [-0.02176965288056389, -0.0029194806646301403, 0.0051401410382129085], [-0.08334642544799609, 0.0014392956305192559, 0.005427839749415553], [-0.013824559539388744, -0.0014113527097021922, 0.005345559395084542], [-0.013750231300896169, -0.005330485655455809, 0.0016469366793184636], [-0.010748808613454968, -0.0025801086192147166, 0.004571899293728002], [-0.005533431790734883, -0.0018187145384933516, 0.003436360653255002], [-0.19161750851426035, -0.0029265458840359625, 0.004105576089934109], [-0.188489082545792, 0.0014392001018858536, 0.004723790566084188], [-0.009529183806992263, 0.0012694486206474146, 0.004800181938472394], [-0.011227841039177929, -0.004713953552763797, -0.002514321845301509], [-0.1259189524441572, 0.001408391116401716, 0.0051486429977572745], [-0.011955973979493344, -0.005389388381443267, 0.0002705991449537974], [-0.1873940019512587, 0.004659928144574169, 0.002692076520083155], [-0.18844095152278423, -0.0058182834698339335, -0.0024486435406753477], [-0.18774623533637672, 0.004010563209767965, -0.005525003248850524], [-0.18773454607301177, 0.0010699664702744846, -0.006963755286741325], [-0.008572109642028883, 0.003720355564978882, 0.002969001950940212], [-0.014732373517539189, -0.005598953433519523, -0.001210218717190567], [-0.1937794901982905, -0.005828022981607491, 0.0001737007921865992], [-0.0034476029201109355, -0.0026314726591728644, 0.0006931003034924896], [-0.008701631285017549, 0.003236495704722997, -0.003528126840943437], [-0.18766904250303523, -0.004279571846930738, -0.0052500977194761805], [-0.008633786950710197, 0.0007882779104378107, -0.004726840843651631], [-0.18744357257308142, 0.005932652106940012, -0.00021123227592232343], [-0.19302875450462598, -0.004095418507241083, 0.0032276782596385376], [-0.19410152157985913, -0.0017151818670657366, -0.006837169380269562], [-0.18724158984897943, 0.0056914410925673845, -0.0029446048938729045], [-0.0035035030020974653, -0.0021640734696851266, -0.0016590411782658545], [-0.003811935762485334, 0.002742543542335426, 0.0007050158081829601], [-0.0032872168007030854, -0.0018601567021105244, 0.0018971194552248134], [-0.19314059645725706, 0.0012663201740600407, 0.004709833307688007], [-0.004632211694093462, 0.0006974609154979256, 0.00333541346264858], [-0.003729535569234733, -0.0007477154271082241, -0.0027075636684519553], [-0.19281975123512035, -0.0013437316780305704, 0.0046986866755374295], [-0.004351152338418786, -0.0007640434322398693, 0.003140557133789432], [-0.009477750197876049, 0.004766973956190955, -0.0014985470098614413], [-0.08601432148673323, 0.003946011548353364, 0.004113648402191363], [-0.08054424588659154, 0.002392169161726631, 0.005129188117538657], [-0.15403709013639952, 0.002647110027808941, 0.004526042241212587], [-0.1595139498830562, 0.0009440835230123339, 0.005036112741096106], [-0.16534544871479037, 0.0009426710329663546, 0.004995047372955094], [-0.17125047573338972, 0.0027105284425186903, 0.0043881929932050355], [-0.06838511750259897, 0.003973767017577872, 0.004201011983084568], [-0.17703993587970282, 0.0009433620959108133, 0.004916088513377776], [-0.024560782489281275, 0.0027261326014825526, 0.005324607028298038], [-0.1830392017858018, 0.0027117966745889162, 0.004299076823035946], [-0.03140136662762988, 0.0009840897477746283, 0.005857242611784265], [-0.018883748953150356, 0.002665546234738069, 0.0052520644707924145], [-0.036535255506837894, 0.0009412559705278928, 0.005820076638542841], [-0.04198957423242934, 0.002712817407644373, 0.0052160965544778065], [-0.014198973470247173, 0.0025247873112778526, 0.004959982143158494], [-0.04820881753262459, 0.0009366173951443445, 0.005737526994467878], [-0.07460424305885964, 0.002399607749832751, 0.005160507994926266], [-0.10090885850237252, 0.0009261549176653179, 0.005414161681945706], [-0.10673910362636102, 0.0009172672359572907, 0.005374790009123979], [-0.13607339357673706, 0.0009133693061974995, 0.005186204636950071], [-0.06291473652735229, 0.0023839024948207077, 0.0052349897050075695], [-0.14489932862839147, 0.00403859213492113, 0.0036371130675530326], [-0.11617416306907048, 0.0012284360382972777, 0.005255823626870649], [-0.053242916337776, 0.0026403783172575263, 0.00516990777701267], [-0.12722187818681985, 0.00400021637965427, 0.0037815593103759544], [-0.09190019861494597, 0.004022104239970938, 0.004005169393109232], [-0.18751756483379978, 0.0026385069086176677, 0.00429939673681653], [-0.1978623900741225, 3.1878642498859666e-05, -0.005492871039236245], [-0.1976271051249285, -0.000714175198021629, 0.0031528351124721667], [-0.1977155498193072, 0.004225641043013914, -0.00016879052964168542], [-0.19777527488460953, -0.004329993004642226, -0.0015022929564104074], [-0.19782537422842986, 0.003500831834444255, -0.004050104038484923], [-0.1976449318005287, 0.0029298677112652802, 0.002030783106095278], [-0.19784795212264666, -0.002417101600417733, -0.0047570357448636896], [-0.1976848794421226, -0.0029203336348224487, 0.0018762492181538352], [-0.19765268370844144, 0.0041058926709624495, 0.0012394381400332626], [-0.19773064037028468, 0.002764486008801933, 0.0004897166360384877], [-0.19770753425626614, 0.0013477044261261868, 0.0013539304332749645], [-0.19777381672053138, 0.0011779236151545206, -0.00029193914385230015], [-0.19774569613595994, -0.00024434135540365754, 0.0006028458237033126], [-0.19780259668389633, -0.000504068118404076, -0.001024176235847376], [-0.19782177338210358, 0.0009740209984717359, -0.0019883505929873062], [-0.1978374405489521, -0.0007135131451516995, -0.0027327015657211584], [-0.19775616147309455, -0.002055719317569273, 0.00010456416352446819], [-0.19778670835459147, 0.0028981568028639934, -0.001346441644553756], [-0.19785147519463425, 0.000806863676383795, -0.0037571852185230184], [-0.19781102267761164, -0.0019950437117764205, -0.0016968233763147728], [-0.19783003386163048, 0.002340695915371468, -0.0028122563795152018], [-0.19774502649218553, 0.004658920840437606, -0.001530108152676774], [-0.19762161663099426, 0.0016525193166728631, 0.0028754475866133557], [-0.19784009843816816, -0.002197398117281489, -0.0032340518207719664], [-0.19786194475179236, -0.0009761820714217876, -0.004282977568267282], [-0.19785528152493734, 0.001591969693845688, -0.005250443368888767], [-0.19781593895166485, -0.0036217291788884554, -0.0037978673958142463], [-0.1976984147695074, -0.00132474512723659, 0.0018106397226000741], [-0.19773449720727992, -0.0040070672878827545, 0.00034219993011632983], [-0.1978604326474577, -0.0013724525994070424, -0.005712467095632519], [-0.19762628151615858, -0.0020593819165888663, 0.003063241614035827], [-0.1978114270812547, -0.003320346471423291, -0.0023654878165757336], [-0.19767873331271177, 0.00017503516884977767, 0.0021715041960059757], [-0.19777719277430597, -0.003174464246525267, -0.0008377418497229209], [-0.1975839800821722, 0.0005431601740041938, 0.003539292770208942], [-0.19779084280945733, 0.004062963091446049, -0.002710640524372737], [-0.19778112534102604, -0.004467053226920986, -0.0028696329211181665], [-0.19783287949512124, 0.002817150220227336, -0.0050330921222161385], [-0.1978467966784978, 0.002192142325768851, -0.0041260281287417684], [-0.05207795711240756, 1.922939217756189e-05, -0.00019216394946387465], [-0.07199790107105875, 2.2315043516350634e-05, -0.00030251458663296224], [-0.14061919786691285, 8.74486812418805e-06, -0.0007472921444957895], [-0.09942825798066748, 1.2630303298581751e-05, -0.0004817569239182772], [-0.16696897501253524, 1.7230658538945434e-05, -0.0009189579088199606], [-0.11997088012071465, 5.929865147633317e-06, -0.0006225933215586834], [-0.028915781783047507, 1.197575015014006e-05, -8.704467114493848e-05], [-0.18222748846223427, -0.0011483413964991434, -0.0015595044880303355], [-0.013500174672074424, -0.0002350356143381852, -0.001280634182783211], [-0.08568057791798836, -0.0004673240796823418, 0.0011459483521311581], [-0.1537647111150941, -0.0008471582698092641, 0.0006778937788694526], [-0.04054838625805883, 0.0017501878263514173, 0.0009541513614070751], [-0.04058623386094942, -0.0012819995806320574, -0.0017093140305417234], [-0.15160176155133276, 0.0012902481791379453, -0.002517170421618452], [-0.08266547959276122, 3.2824642620174694e-05, -0.0025496146510666003], [-0.13032195626920784, -4.1140428369809306e-05, 0.0015760159452706936], [-0.10973854056121202, -0.0016272319373976667, -0.0021117691156962133], [-0.13029994439659948, -0.0001519781406850352, -0.0029382623027177437], [-0.1772417990557637, 0.0020474738394066308, -1.1965731353533388e-05], [-0.10969029348129647, 0.002124580921831539, -0.001357007454635372], [-0.06199932780125517, -0.0003729094917663687, 0.0019974537878765792], [-0.10965135515486146, -0.000517519702863032, 0.00163802605447839], [-0.06207908228424034, 0.00031732713790425427, -0.0025127119776672023], [-0.018689737784358378, -1.335871839322509e-05, 0.002315738443773152], [-0.09008448620204838, 0.0023454001239723026, -0.000836331965150178], [-0.1582031482622393, -0.00169824907971211, -0.00257699596197504], [-0.04355029763941681, -0.001611279834090121, 0.00171515137334772], [-0.18637294153453243, 0.00046349118593520073, 0.0014407286240176315], [-0.15859720049879694, 0.002324323007818441, 7.315397518381624e-05], [-0.06009666388723673, 0.00249727810603845, 0.0001375434083721547], [-0.09104828183789586, -0.0021882442151789955, -0.0015264331823446754], [-0.059829709263027074, -0.002495318719278968, -0.0006211653367961545], [-0.009810429044726688, 0.0016894771102937025, 0.000900267488742966], [-0.020505871666367255, 0.0025152754083305243, -0.0003571292501857263], [-0.1751801339788709, 0.000997490530721584, -0.003274439972474358], [-0.1749941011636767, -0.00114065238854995, 0.001248237656042795], [-0.12816936516659333, 0.0025013258041705123, -0.0007262793283055768], [-0.04521436393949403, 0.0018042038977179463, -0.00218994521659583], [-0.07930611799526975, 0.0025497559246464496, 0.0003593955059149044], [-0.02111142240253914, -0.002599520729940833, -3.271832367189853e-05], [-0.13029101929839956, -0.002664296052636877, -0.0006179635217134442], [-0.1473919762903889, 0.0024023092688598676, 0.00044050589773361927], [-0.14769824452583205, -0.0024868550705538046, -0.0015885738087984896], [-0.07911966131547352, -0.0026042035338155354, -0.0006612495105177648], [-0.010422144469242523, -0.001823962576838126, 0.0010911314098169984], [-0.18686362327489828, 0.0015586297620259386, -0.003161014834058017], [-0.1726591469062162, -0.002297306752894225, -0.0025236566628789063], [-0.03464036558898042, 0.002345924724204203, -0.0016930447439771883], [-0.0343022850533206, -0.0027657955717095657, 0.0005345856584499194], [-0.03430020989729142, -0.0002586902031614189, 0.002715361669497896], [-0.16205646025147877, 0.0017090521788845326, -0.0031798372870131533], [-0.023481255385505266, 9.155114437108027e-05, -0.002950831752681689], [-0.09403100883693187, 0.00043859965560573254, -0.0031862294043779192], [-0.1623611939182424, -0.0026595426877914327, 0.00015665438039514596], [-0.10373230241640301, 0.002180542749544227, 0.0014291879381715578], [-0.0764081283238224, 0.0003221779101424639, 0.0025339679285183024], [-0.09514621182714747, -0.00012076371989784351, 0.0024642012608815525], [-0.11560812318121787, -0.0027856428684803606, 0.00023203759543258796], [-0.10376576093110704, -0.002778436748167745, 0.00031081582464134353], [-0.05407343337345112, 0.0014692004407753875, 0.002382074827138941], [-0.06862631408054631, -0.0021168135093463203, -0.0023364168907318602], [-0.16257476387933353, 0.00015671664353246906, 0.001961846267963794], [-0.14419141239818106, -0.0009924263756031072, 0.00198607514592998], [-0.11592007965210917, 0.0005902525452013713, -0.0034493335477202695], [-0.1368110753824825, 0.0022803128398601333, -0.002569039053561874], [-0.04870496208729668, -0.0028518708576915834, -0.000691576254929334], [-0.1440940966744783, -0.0004736071793064941, -0.0036535677302308276], [-0.05098543036645609, -0.0010026079758470733, -0.003061447391268481], [-0.007902352563492795, 0.0014428756475214923, -0.0016294217269387996], [-0.06904869235635411, -0.002789481681165027, 0.0006864423700008091], [-0.0501870509466284, 0.003054321886405954, 0.00010610219159068966], [-0.06853320278226745, 0.0025644373570208284, -0.001691055533325783], [-0.0308570734467856, 0.0026966397522288537, 0.0014103968503151418], [-0.13706080766307116, 0.0025025998801067313, 0.000809244323304166], [-0.0694018782428585, 0.0025006172367542235, 0.0013712345210324273], [-0.05389171003203313, -0.0021437392972538188, 0.0018301018075305817], [-0.12149153763869809, -0.002130970593557025, -0.0027911842337613015], [-0.10428822808948342, 0.0005999610938699158, -0.0034420131981363566], [-0.007922928696590585, -0.0019111203054453447, -0.0012016860315768236], [-0.030942699500266835, -0.0019700676380222585, -0.0024184255144908797], [-0.18878135568090093, -0.003161233670544342, -0.0015447684494118035], [-0.12088593852603938, -0.0010119499409395809, 0.0022268318564701364], [-0.1176232812299456, 0.0028291792479728573, 0.0003852267162839285], [-0.1869677227288212, 0.002894145156477505, -0.0004107076944816479], [-0.16809421666890306, 0.0030215025804310167, -0.0007584536392455295], [-0.07311078169816249, 0.0004051394929597452, -0.0033044521705797186], [-0.13972437673977478, -0.0029250805763203365, 0.00019531913322012087], [-0.09988238696044767, 0.0029324168404218157, -0.0012146226550523546], [-0.007961835950616659, -0.00012453581556684748, 0.002346924817451221], [-0.10020386799442424, -0.0020245432229744815, -0.0027358129095081925], [-0.13761513860450833, -0.0024474049588046384, -0.002616402171844288], [-0.05481572563360089, 0.0022528312178643145, -0.0023633330897073106], [-0.18445275463231414, -0.0023580516015122557, 0.000988738639115945], [-0.02679098505973456, -0.0021222809148294663, 0.0023595788683162355], [-0.18829206742387594, -0.0014278045819598492, -0.003891587487323628], [-0.08907159864923356, 0.0020805999525237203, 0.0020378328121812552], [-0.09437881771614452, -0.002695899247694719, 0.0011316381584750776], [-0.16618417187920007, -0.0007790317978861052, -0.003935672364029221], [-0.12407833243680004, 0.0019384066824840852, -0.0031656206718629473], [-0.07839936439030105, 0.0025303617084607524, -0.002427053506058501], [-0.16981091134060536, 0.0018778371322608184, 0.0017069976690758523], [-0.03558623213527062, 0.00021077290855164298, -0.0034714075745123384], [-0.04535676467512027, 0.000752078236362666, 0.00310401722546227], [-0.07931488338551615, -0.0022303745657471226, 0.002047598740689102], [-0.17732091108630227, -0.0032256570517475236, -0.00040714328225818975], [-0.14516570545997806, 0.0031555951218314752, -0.0020619635242649544], [-0.1249428003281749, 0.002176619569701975, 0.0018579080956842883], [-0.016911146708450862, 0.001956017821006978, -0.0027603577440031145], [-0.17932103896226687, -0.0012807118621844633, -0.004113004682693866], [-0.17985406115311747, 0.003123598353092528, -0.002411432337197266], [-0.02234179911369136, 0.0025071191548663822, 0.0023407682127222686], [-0.01861457926825251, -0.0021806590434205013, -0.002594018711668562], [-0.07718047907995915, -0.0019514904093458972, -0.0031569782186761514], [-0.06959807205950416, -0.0013094548923419178, 0.002848929834628654], [-0.02625482781934856, 0.0026135402386160515, -0.0024749929756673586], [-0.14875347746541026, -0.002963402593424756, 0.0009425919593473039], [-0.1534455529557837, 0.0014249602723288186, 0.0021351788824687194], [-0.15258314412016263, -0.0006627119404598036, -0.004218061877468461], [-0.007790535914764441, -0.0004224746241323768, -0.002579032707204182], [-0.13604717474224737, -0.0018238830192778032, 0.0022942980327136644], [-0.058868954609398415, -0.0019727505851695163, -0.003100472405684789], [-0.08605277166123905, -0.0032925980673053487, 0.000711859266507573], [-0.1552073146368623, -0.003457862842769997, -0.0009258761797564377], [-0.13790953031160755, 0.0006855446194589256, 0.0026415842978399773], [-0.16480521880773774, -0.003264377543338019, -0.002238665100468241], [-0.11710128743759786, 0.003130558471982365, -0.002219142117096333], [-0.15324293033651365, 0.003530322163479961, -0.001437639706648813], [-0.10230808363563593, -0.0015588007320769654, 0.0025638008292424956], [-0.18940959525866718, 0.0002350584291643723, -0.001048017520014233], [-0.12363441869012567, -0.003107569229334913, 0.0009822654335435042], [-0.0620918224661408, 0.0020575346738000463, 0.002489746957598441], [-0.04220897331434805, 0.0036304334370005054, -0.0006716647927373453], [-0.026327856104902427, 0.00019422379807085667, 0.0035076852354771113], [-0.1673389312348067, -0.001912263420044434, 0.001999490655016979], [-0.08741149628948558, 0.0020679483899395047, -0.0032374061509123212], [-0.096072637880475, 0.0031654027543829835, 0.0010705476432981659], [-0.11582739674324942, 0.001222851346585351, 0.002525347863693755], [-0.0066496281404182156, -6.799161666898812e-05, 0.00014669524990661492], [-0.17833039861866534, 0.0009786981328392585, 0.0023147745505695343], [-0.018218353102938113, -0.002522957823924588, 0.0023332627969784767], [-0.04372634490358258, -8.048705514895053e-05, -0.0037227546534030517], [-0.03694688871487012, -0.00039541760843181184, 0.000348425856468767], [-0.0617772484182881, -0.0028392108314753976, 0.0018980102613160607], [-0.088540261821051, -0.001313292377193614, -0.0036864186033280155], [-0.01283973962762309, 0.003133522883809783, -0.0007962592283939197], [-0.16946922916714593, 0.002769486717833585, -0.0031890008151144117], [-0.04087693376262261, -0.0035376272639298678, -0.0007362346761239868], [-0.097477313763849, -0.003605835477760302, -0.0010204318059835683], [-0.1588707067721088, 0.00013138474512560964, -0.0009855850573849663], [-0.1295141033173477, -0.0025978001015918607, -0.0030592305921252495], [-0.06414371329359822, -0.0004827193136482578, -0.00033826057261910275], [-0.1369454115221186, 0.0005026866422934138, -0.004249552029795934], [-0.1586582386912347, -0.001943546990856046, 0.0022132165292773564], [-0.17508887499465353, -9.830309780620512e-05, -0.0009586309494221066], [-0.06878339530903083, 0.0010472044434871688, 0.0033056784560010657], [-0.12353485320444092, -0.0002480313068456785, -0.004242700623659949], [-0.05576553948769547, -0.0005580339337731147, 0.003466409820944148], [-0.0363796912471661, 0.0020682877703820323, 0.0030420703158464367], [-0.02817697142124693, -0.003654657806224593, -0.0007958740718134844], [-0.08927608099983653, -0.0017980288490394149, 0.0028281994445052768], [-0.18233277076427132, -0.003141229465867735, -0.0029099966188548786], [-0.13265912282169331, 0.00047533186205121275, -0.0007153252771611985], [-0.020561159728558782, 5.933063882826616e-05, -0.00011132052557538775], [-0.08431636137028409, -0.0029894902503177943, -0.0024907686758201793], [-0.09141512808932972, -5.7366925380290535e-06, -0.0005202090366524611], [-0.16947359199553733, -0.003623411623668156, -0.00037874380275012897], [-0.08377506226025794, 0.0002606563302853289, 0.0033595581056366066], [-0.0799244579184946, 0.00025586715924465295, -0.000292535399846829], [-0.014866011402837331, 0.0018533908160244987, 0.0029701725126426446], [-0.1484749221121638, -0.00022344372528080745, -0.0009256562561347684], [-0.16131609085085588, 0.003608986925004034, -0.0017702757260775277], [-0.14330981253818542, 0.0018641878652112976, -0.003954177903409032], [-0.04604847766064393, 0.002907157311577076, 0.0021465630477274884], [-0.04436033799556071, 6.997008115619473e-05, -0.0002076769190510917], [-0.04564516860456735, -0.002686045349853962, -0.0028113731779839334], [-0.015901280989507716, -0.00022844978660813606, -0.003606947958970454], [-0.145582721091667, 0.0012960451052132728, 0.002488424856921623], [-0.056060814253366474, 0.0005563812115448375, -0.003927416203320183], [-0.10996513871537174, 0.003455445407251457, 0.0006155368689384727], [-0.10406757283050617, 0.0006387277500419725, 0.003208367621557852], [-0.11207540339990542, 1.1083325770803383e-05, -0.0005763211138198524], [-0.11513949584864264, -0.003337829097927809, -0.0020514630710190404], [-0.02945091184583207, 0.0038105273461391614, -0.000649790137411075], [-0.1512170243815952, -0.0006912342180707037, 0.002904186928267525], [-0.10965120126357884, -0.0028670846559007705, 0.0018195059245214047], [-0.09881943837338962, 0.002282894203560035, -0.003438541409870817], [-0.10531451172469408, -0.00352200387340028, -0.0018560269100549556], [-0.08587894859324167, 0.00373305348941052, 0.0005622478144704408], [-0.06223470565217201, 0.0025929660499266947, -0.0030068229299095397], [-0.014159317951821631, -0.0035393022611279945, -0.0003904665439965615], [-0.04869229419642821, -0.0013615399560774628, 0.003335082687393783], [-0.11492388640232216, -0.0016743186649067151, -0.0038873074998104825], [-0.07308482928165254, 0.003749620483249168, -0.0002690630708478561], [-0.15966300214006043, 0.00013514244266770383, -0.0046820145044359175], [-0.03701734211499376, -0.002443909706626034, 0.0026809619402099138], [-0.11048043706251733, 0.002211294255927116, -0.003662548753382817], [-0.0668882843736071, -0.0006727341142189707, -0.004014706588325086], [-0.016283336617783688, 0.003384024380568055, 0.001295523901483417], [-0.17128786780952415, 3.674490688760981e-06, 0.002920751567951856], [-0.12204054184046452, -0.0037693823954395756, -0.0011689758467282082], [-0.18347136647742865, 0.002606444955895306, 0.001678775923196097], [-0.12846637487282594, -0.0021097566126291167, 0.002411425741938769], [-0.18153948850441096, 0.0008802020653876032, -0.004648075972414083], [-0.047869725116331, -0.0034568630027500477, 0.0014870907357021612], [-0.162521601224888, 0.0024167074407225857, 0.0019712530929466396], [-0.005609249417175146, 0.0013445632937322375, 0.0017335163549171853], [-0.15224500118601575, -0.0027562114344579737, -0.003394667434859059], [-0.13612684976451375, 0.003886162919853087, -0.0009664819128858793], [-0.054517227066968224, -0.003795268634532004, 0.00031858050861682715], [-0.13117695115347378, 0.001947423555917108, -0.003994050564657184], [-0.07261333253179406, -0.0036122846948467725, -0.0011585481792187253], [-0.05471336081585343, -0.0034265968425436443, -0.001917503422743221], [-0.006000856119135859, -0.002417735778161071, 0.0003794136848195311], [-0.18088368349125944, -0.0011309608135534885, 0.0026084581923479415], [-0.14485505409663038, -0.0026978401028453338, -0.0036210312189466683], [-0.08442939773231949, 0.0035633306073110877, -0.0016265292332055814], [-0.1558215757929637, 0.0028538573838513717, -0.0035049811178711966], [-0.037267979297305444, 0.0037527239807517506, 0.0010162732814661358], [-0.08151952363557326, 0.002322687259727268, 0.0025577405081267848], [-0.16919163368683932, 0.001124289553626428, -0.004686470264268934], [-0.055398384345541264, 0.003443899465923284, 0.0015327676006449736], [-0.19083566625526988, 0.0022623547553876737, 0.0013643190966318765], [-0.1825608051083304, 0.0010914194815014636, -0.0013343810295724594], [-0.18991810333748166, -0.0014257310604375748, 0.0023689373212572736], [-0.10612404820534956, -0.001485914426261626, -0.004021708384743662], [-0.19101892130754106, 0.0032073795513704833, -0.0023218919792669375], [-0.06575619231487907, 0.0038883983727695036, -0.00011610742040834567], [-0.19037579756533138, 0.0005177137491784565, -0.004926101795314775], [-0.12571254455040506, -0.0010992048536955612, 0.00021759924064948711], [-0.15331339048609177, 0.0034722368566551605, 0.0010963593985150212], [-0.005835205411314431, 0.0023332162141734155, 9.180448959230285e-06], [-0.03726097523048834, -0.0019334151493680862, -0.0035414407145176424], [-0.11417629044597205, -0.0014834093882003917, 0.003035535769280012], [-0.01425390354922652, -0.0010969728584762173, 0.0034317658182446385], [-0.03928400461219516, 0.0021133840521045466, -0.0034063883070138677], [-0.1304755522572991, 0.003481615031682084, 0.0011245682065715284], [-0.17456506819783604, 0.003986711672067257, -0.000582233514709903], [-0.05593073157758983, 0.003851821021633238, -0.0009596117485181574], [-0.1317440992807947, 0.001871603721685387, 0.0025652884992538342], [-0.07942913292777483, 0.0011685135491705776, -0.004108454238222788], [-0.04928344515903543, 0.0012878152921525147, -0.003922694052577654], [-0.04051187214613588, -0.0007984614162107213, 0.0036833509478955144], [-0.13438667817125796, -0.0015336135668644888, -0.004312134495097608], [-0.08474988405375296, -0.0012547979647686484, -0.0009302534452660786], [-0.02992334756244991, 0.0007351852594362468, -0.002170825059721929], [-0.005631620792742187, -0.0012698549492620318, 0.0017218470328311814], [-0.09918238671710129, -0.0006052195553789106, -0.004329439961677142], [-0.04925590791540491, 0.003559190731262183, -0.001960712488018618], [-0.06547255326399454, -0.0036940094390447505, -0.0012063736210416959], [-0.12244209745309166, 0.0038135046882641337, -0.000954112941969777], [-0.1728406404096684, -0.0007385243658210498, -0.004826830598883213], [-0.029306531235025232, -0.0006520899764320952, -0.004082546338897335], [-0.19120053036259724, 0.0005622829698910459, 0.0029027719857567143], [-0.1308625300992454, 0.0034918338268058215, -0.002487624263952582], [-0.07556904423211154, -0.0036748430050545576, 0.0009189087514809664], [-0.05768577262750123, 0.0006629033868225964, 0.0007888983489329952], [-0.013303168004826406, 0.0003190227028146429, 0.0006896621697738548], [-0.05712174501240527, -0.0007581504396789597, -0.0014575002421890442], [-0.048429763132159964, 0.0011427744963303495, 0.0012309892115100556], [-0.13499600387877034, -0.001309741885679462, 0.0002389255826573294], [-0.09398475892849632, 0.003507302704835817, -0.0022837296637658027], [-0.14987176458214152, 0.0012717348892430332, -0.004570470961927756], [-0.12550288476040322, 0.00035344032100717245, 0.0032255162191703805], [-0.17271327339756506, -0.003361148956123232, 0.0013582694496500315], [-0.1054335748568798, 0.0033216355104486697, -0.002568810864215798], [-0.1906157555503249, -0.00167398606057605, -4.369684055917837e-05], [-0.03944627026803495, 0.0007982226606507709, -0.0015043317462033964], [-0.18073983046276643, -0.00018349489066025042, 0.0003337066304378617], [-0.1334426843833406, -0.0033991717154025856, 0.001115194610077633], [-0.02499159202988561, -0.0013083092251689923, -0.0013458741808946924], [-0.14262559769749986, 0.0038286518918429725, -0.00017747887793037216], [-0.06737087270260601, 0.0014428450050674956, -0.003940333629143977], [-0.034635228385393464, -0.003636824741831683, -0.0016977918443604055], [-0.15282696442413146, 0.0011266377396504062, -1.445494129552089e-07], [-0.1420421089276392, -0.003748171607617163, -0.0016430955310522727], [-0.04089021365377967, -0.003670763491631995, 0.001380395826788381], [-0.10969672967972913, -0.003841784877976979, -0.00024691386509538104], [-0.09394932049075999, -0.002609819009754373, -0.0034154396636990715], [-0.10576839225303222, 1.5726281492119383e-05, -0.0014690099784916866], [-0.14473430022750225, 0.0010726972282043617, -0.002083580413455393], [-0.012138212913255456, -0.002116277641750521, -0.0030570437690116362], [-0.07538774781592748, 0.003401036907069458, 0.0018910365407073556], [-0.1354364987326484, -0.004032940173344803, -0.0009893613374575762], [-0.024338267573858773, 0.0038904351235461384, 0.0008274507700256391], [-0.07381800868065602, -0.0013531024674956864, 0.001156404020186607], [-0.11130012424250753, 0.0014204334202862988, 0.0009706815352053037], [-0.02143643882175733, -0.0013141574909107672, 0.00383342592851989], [-0.029456371284586606, 0.002120963654457095, 0.0034380535441335823], [-0.08526476711983758, 0.0014854877544296025, 0.0004332426963350893], [-0.1554312996321107, -0.0034014806956622445, 0.0011369435576338777], [-0.025093195215154438, -0.00310417720696066, -0.002617082047124814], [-0.18095611594473607, 0.003823550770246118, 0.00017521542513833087], [-0.17075306182675515, -0.0015874655898210797, -0.00029023256108509453], [-0.06808916603528943, 0.00035099577011222464, 0.001671341003509141], [-0.027351540202503303, -0.003944166727745881, 0.0012872781939325113], [-0.11019709282617197, 0.00014531536194355342, -0.004495501148331331], [-0.09518759963651059, 0.0011179202248536113, 0.0007879126201804547], [-0.09786014239438814, 0.0018146470765574192, 0.0025805651983579693], [-0.10326654774134084, 0.003939818132412922, 0.0002912363307175701], [-0.17454782470600405, 0.003363175430934774, 0.0013988890201708406], [-0.12582022769418008, 0.000723085920965117, -0.0015578984394230284], [-0.18374840343729346, -0.003929617919459096, -0.0003206175552487317], [-0.08585644970391078, 0.00044192343369799217, -0.004429145109622506], [-0.16871008822802386, -0.00013414652693843044, 0.0010472083706881458], [-0.024698229987211127, 0.0007353619451531107, 0.0014855690618176946], [-0.16277913571079036, 0.003940782454738418, 0.0001955582026618838], [-0.10313345177147025, 3.3343000445999346e-05, 0.001243779751997686], [-0.16249509663675435, -0.002504296228398906, -0.003993403191454618], [-0.13683827552658265, -0.0004056973913310693, -0.002393093333079932], [-0.031929544748167005, 0.0021366832117313307, -0.003582229819496429], [-0.0901402661778857, -0.004063577010859958, -0.0007624573529847728], [-0.0045866113434670725, 0.00010929237808822429, -0.0008436526847653599], [-0.17363098707842728, 0.002238688649447546, -0.0017017199338582613], [-0.11627820217815842, -0.0010265508470666959, -0.0019868087927236502], [-0.07450944951628925, 0.0018406627164461677, -0.0008678935827330776], [-0.05074774878874851, 0.0007038953340405026, -0.00202029376919007], [-0.16479034251509309, 0.0015514372412894718, 0.0002518140658308737], [-0.06246412265594257, 0.0005266876237282382, 0.003790117968406769], [-0.1159623802189958, -0.0008348666349590328, 0.0008539726374586098], [-0.1922189597787356, -0.0037323450483215848, -0.0030009992915833316], [-0.1448037693585497, -0.0016070499637285457, 7.209367703683624e-05], [-0.06832254120107616, -0.00013577898175732808, -0.00195817070658643], [-0.034467175602626896, 0.0014970496412093155, 0.00016208382762496635], [-0.10969373839913407, -0.001801320198203177, 5.205402274440714e-05], [-0.01963778510989609, 0.003702570960212823, -0.0019766200176995485], [-0.06341214759950717, -0.0014421134027242013, 0.00361816933290462], [-0.1707690674286377, -0.0003661773837167831, -0.0025686096453234573], [-0.09569662353886742, 0.0013672544452117783, -0.0014670355331578952], [-0.14265882322974976, 0.0030035067413540736, 0.001814466704352133], [-0.14286928235593502, -0.0029553347629693843, 0.0019356548082127586], [-0.07631501573241088, -0.000481081124952293, -0.0017956281628768406], [-0.1913306529841079, 0.0026196899676038613, -0.004234105100098676], [-0.11796091392026226, -0.0028977192199057507, 0.0021054397540293222], [-0.1915574805478189, -0.00138180720148598, -0.0021306201377451787], [-0.06566744219027697, 0.001460071789193448, -0.00024476368121179715], [-0.1898322654023536, -0.0036552763668958994, 0.0006097690374230527], [-0.09592103925565226, -0.002101437899054842, 0.003000961401948959], [-0.15336778479377328, -0.001553091269521847, -0.0011780840895474261], [-0.1106118768108809, 0.0002977107112006814, 0.0034458239000945408], [-0.11187731732355813, 0.004043987147044408, -0.0012594789283294134], [-0.1403852651592035, 0.0020898531808978636, -0.0009105502676318818], [-0.14213874070253277, 0.001196065670667455, 0.0007934299593099385], [-0.026963765465995295, 0.0019804048671181935, -9.134188362416568e-05], [-0.04942595198106614, -0.0007854665006763077, 0.0014275463918821513], [-0.09019378871300364, 0.0007820240134520018, 0.0035182736593986326], [-0.05390422940819626, -0.0018523114336048416, -0.00010013835003434427], [-0.13214043378368334, -0.0006120790703921994, 0.0033954237285436467], [-0.07576317416683907, -0.0013898360331959434, 0.003533465674667891], [-0.028156488513922703, -0.0019695563008804043, 0.0003620187528237619], [-0.10007794002487497, -0.0033335878412458636, 0.0019241807862863834], [-0.0920188555427637, 0.004122248688128568, -0.00015366331632328897], [-0.07250116683246328, 0.002584824958132218, -0.003348283107348142], [-0.08098568722119605, -0.0009033148948180894, -0.004430929943863797], [-0.14792241368947084, -0.004190591219619299, -0.0005837829982660861], [-0.1303405499039962, 5.813006448334225e-05, -0.004914145024516194], [-0.12079687070935081, 0.0007352109437379308, 0.001227343689640331], [-0.004305982912950402, 0.001507813743790899, -0.00165734101503218], [-0.034470339238202946, -0.0005547923018710627, -0.0014963979613612278], [-0.058023787695101664, 0.0011403930326733965, -0.0011023579121844595], [-0.0058324151861267595, 0.001093310563890896, -0.0002258932166991004], [-0.1264933547079154, -0.0013399995527283142, -0.0017645406863030086], [-0.035897305509856876, 0.004156683755664907, -0.0008830795981282821], [-0.15725983677448163, 0.001959251442968608, -0.001812639630534624], [-0.04702163717212707, -0.0011633991620307925, -0.0015063076546815155], [-0.14928527219060447, 0.002998756310619848, -0.00362559138097005], [-0.1585515927295672, -0.003666338268324544, -0.002638382760118702], [-0.15701723359538058, 0.00021730637838562704, -0.002858096212507694], [-0.15715574987702197, 0.00015243834341649822, 0.0031495245120788913], [-0.16897384273086022, -0.0028401316184732, -0.004030503972197918], [-0.061705640910172666, -0.004078620047678254, 0.00037828897219542676], [-0.05119545033020671, 0.0007401233647824732, 0.003997887877772128], [-0.17654492871840283, -0.0038603156237617176, -0.0022542560315719933], [-0.020651508056182013, 0.001199296575969885, 0.0038042346529630804], [-0.11604633482192232, 0.0015463563420953323, -0.0010450698705315687], [-0.16335338161920884, -0.0015264292431919077, -0.00142478640711998], [-0.08310789157246005, 0.0016393640976816008, -0.0014088968462663014], [-0.10976583459266755, -0.003193774552708929, -0.0033050897796901057], [-0.17570532472500858, 0.002875800988523506, -0.003894961977402615], [-0.17117808891185401, 0.0012764102258832153, -0.0001308961144808539], [-0.019972717096261798, -0.0038815666028167418, -0.0015558651531498327], [-0.015176513342279587, -0.0014671101800357337, 8.772765562209826e-05], [-0.09634887673604521, -0.0017287489968125464, -0.0004998841654915516], [-0.004378315906444051, -0.0021533513878007815, -0.0006602139020738363], [-0.11881479076747495, 0.0021609116588067537, -0.004260646637832112], [-0.14782953063563803, 0.0002765586857770438, 0.000953267927713007], [-0.031198876803420292, -0.0016907566078699645, 0.0037789603880336343], [-0.011027099731063843, 0.0010395048414160136, -0.00351305811517488], [-0.14256478516306437, -0.0013848772421162369, -0.0019858382909517477], [-0.12410715063469421, 0.0038973856507336295, 0.0009387195324942607], [-0.04030685957699811, 6.235109423953446e-05, 0.0019420953178531084], [-0.023703055686240947, -0.0016516893770349016, -0.003912174813718863], [-0.07807104072987824, -0.0036620272164529194, -0.002263075013132962], [-0.1040144977308685, 0.0016271178959650749, -0.0004575708529436318], [-0.07327008634764198, -0.0028853767840177342, 0.0025687065144607436], [-0.17891076366444658, -0.0028492727666517346, 0.0019295554300848474], [-0.08314033264231672, -0.0016645097467575015, 0.0034691536040521295], [-0.08341900980740334, -0.00405581572684921, -0.0008754676995803713], [-0.024444167032197803, 0.001671361732294029, -0.0041211755414179456], [-0.07457963793988846, 0.0013799930508624151, 0.001017443708626832], [-0.07159616965377802, -0.002033547461161138, -0.004068221676897056], [-0.0074083501724724775, 0.0027785935037743614, 0.0014119091054091456], [-0.18525111444251288, 0.004063271229510877, -0.0018838762261073473], [-0.061707114560348775, 0.0037025686868351736, 0.001526341619734362], [-0.004497970494329615, -0.0010035187617253379, -0.0014079508189209354], [-0.12070472802954436, -0.0019290917393467498, -0.0006621007138182676], [-0.06196758024731189, 0.003949019327829182, -0.0016417036248708146], [-0.16013973694297304, -0.0009074312097226361, 0.0005663245553834406], [-0.06068399896387215, -0.0006792214616092923, -0.004414338345449917], [-0.12661799372358198, 0.0009437415162942658, 0.00035234501907070547], [-0.020909194248064707, -0.004000281547049822, 0.0012756438101731507], [-0.014649944222727413, 0.0014614837206034807, -0.0006336485231445928], [-0.1519390206729652, -0.002557178451810357, 0.00252682735626557], [-0.1838643964276918, -0.0001670937828203577, -0.0031856149791712196], [-0.045335196463185484, 0.0019396697275650438, -0.0003002733742617054], [-0.06378525688981927, -0.0031658960704685508, -0.00295466420266133], [-0.004643599834686197, -0.0010853511547927286, 1.3722988864094265e-05], [-0.014207411626850203, -0.0036724464733366774, 0.0014786107271736477], [-0.1281052310821399, -0.004015717353067895, -0.0018095808372448688], [-0.16826487137556106, 0.00360733019954706, 0.0010586806529937788], [-0.10850115243171587, 0.001935592954616521, 0.0026565853452028823], [-0.19213614762654174, 0.00043943515041407606, -0.0028468766066873192], [-0.09944343809373068, -0.00014805700592919143, -0.0023941330868425983], [-0.08982285422988749, -0.0016779566309099321, 0.00029376357827409706], [-0.08861177037598877, 0.0005543589169201064, -0.002126141261159968], [-0.16109221732278123, -0.004140689600829974, -0.0009499790242535554], [-0.042628074130221176, 0.0034989099138917124, -0.002577016630449587], [-0.004798298769065956, 0.0005120319048965987, -0.001960941976733336], [-0.043355671662838706, -0.001909651447768685, -0.00014900185987556168], [-0.16665177944619505, 0.001610915003877209, -0.0019292968365203916], [-0.14907248029485937, -0.0009745503718762167, -0.0026531742648932474], [-0.1406208056858971, -0.0017223687000868973, -0.0045984944632024806], [-0.12769070980187716, -0.0016521097887542235, -0.004607280990120609], [-0.0791445161389177, 0.004116089411294557, -0.0007035277648130742], [-0.17546679375135157, -0.0027877136420230877, -0.004187425740432537], [-0.18279103972636349, 0.0026842278268633868, -0.004097766952308897], [-0.1843608202690235, -0.0007502799709401495, -0.0051966155719445845], [-0.04565019899146656, 0.004180685196857608, 0.0007737888199436626], [-0.07341586417538726, -0.001785994426182318, -0.000704248627342395], [-0.1655269275353043, -0.003617871197902629, 0.0014378910707115765], [-0.1362660981885646, 0.00046169163144173643, 0.0008259761080448379], [-0.15752088519167184, -0.0017061245445031867, -0.004782085102753382], [-0.03989697210021449, -0.003438131761378144, -0.0027355941256963522], [-0.10794869678446412, -0.0016639281291161605, 0.0033678432476428603], [-0.004234593913729767, 0.0002614921880642274, 0.0008025193640846781], [-0.051572645953815985, -0.0028340316955552686, -0.0033996209538447674], [-0.05778190792670022, -0.00229924227003519, 0.00323804342445403], [-0.0743789517655878, 0.0020346459370886865, 0.0032538695749129236], [-0.059005844065760454, -0.0011289415889161527, 0.0005972223588727931], [-0.17379085254637608, 0.0039705900768077715, -0.0024490500457307936], [-0.0074350547957737, 0.0027573250549937055, -0.0013671438584576044], [-0.16347202769268881, 4.77689737378988e-05, -0.0024396359622500825], [-0.01778884716974024, 0.0016622742305242798, 0.0012052538690588638], [-0.04494304854849561, -0.0028467916199944048, 0.003061217194434192], [-0.1487919267385098, 0.004102899684136036, -0.000224576941870836], [-0.1300016170135208, 0.004320121243738168, -0.000707317676786162], [-0.031507667810626666, -0.003358109871860166, 0.0025919333670268857], [-0.02248688022585628, -0.0011986311384075004, 0.001257316317500938], [-0.018579645571042153, 0.004363405718411848, -0.0002281832681786772], [-0.10247723779206896, -0.0015484006963720899, -0.0010599724426156398], [-0.12479357650482524, 0.0037616281097329375, -0.0027935358210483016], [-0.0983156624492153, -0.0011747219283307882, 0.0011882106861150863], [-0.12790199379666428, -0.00422129777962378, 0.0001570480945478377], [-0.1486929995134956, 0.0029245759969151433, 0.002280949405448679], [-0.06302915743765579, -0.0014765632696987331, -0.001855356038869708], [-0.12214989903862157, 0.0019576638818724836, -0.0006241952673230791], [-0.011473455829624354, -0.0024144072281410416, 0.002800511204594193], [-0.1399547437887038, -0.0009029215215970489, 0.0033820970279871167], [-0.13983463299407536, 0.0039044160134944724, -0.0025993442062836047], [-0.1311040395572667, 0.0015925036946871176, -0.002144588150423086], [-0.17489300900471313, -0.0014944227290009636, 0.0030721885372621952], [-0.16316557219071492, -0.0012007383152208134, 0.0031952698033775964], [-0.1512808458398778, -0.004114757269855547, -0.0021623635257267955], [-0.07421479545748379, 0.0039079436468958525, -0.0021230843474746436], [-0.1210253881366296, 8.197130607972892e-05, -0.0025369643699912894], [-0.1838337634148991, 0.0004272206742188809, 0.003207288422597266], [-0.15691047673029374, 0.004284646169537725, -0.00019124710850586967], [-0.03094658812643413, 0.0008256312742091674, 0.0015887795172855814], [-0.004127519265632108, 0.00036961879832937494, 0.0017190746811440588], [-0.17523178784089946, 0.001280299851672173, -0.005108685413285754], [-0.11016131251053118, 0.0006171759798973817, -0.002688422131002684], [-0.09307223561765295, 0.00205709633005534, -0.004057233658784878], [-0.1704223536041911, -0.003999965762713523, -0.0021694061088523287], [-0.19235240094894335, 0.0019372657764007346, -0.0009380574823485658], [-0.061431840983280236, 0.0013554963878488595, -0.004337769493371352], [-0.1920908427368052, 0.0005737192319683617, 0.000589218239616868], [-0.11411002352196589, 0.003072785023277865, 0.002063143217458244], [-0.02335934168904971, 0.0012588851890550335, -0.0014625512978803138], [-0.09934390337881845, -0.0004246106782443558, 0.0037406279036972944], [-0.1921144076190812, 0.0038980149325791766, 0.0005763408519051957], [-0.13716183049122202, 0.0023243008105114094, -0.004396290442881493], [-0.08993096562243677, -0.0036979388257114593, -0.002548249957201598], [-0.15585547139559885, 0.0015502277884887224, -0.004780222378373799], [-0.027081525138720496, 0.0036921185035253697, 0.0024770263172996707], [-0.06737521078856028, -0.003350382885178388, 0.0024054870994681976], [-0.15781203279048403, 0.0007455160329862243, 0.0009990764052005092], [-0.012525834524435658, 0.0029578912865935074, -0.002512305515869824], [-0.10459358084043374, 0.0023132680663607427, -0.004093173481408339], [-0.09324213193615583, -0.0006188235185718714, -0.004639762524106687], [-0.031254080889827174, 0.003675909889003994, -0.0024234854252555326], [-0.19216492380894348, -0.0011560733288504418, -0.005244489246928715], [-0.04031280626774802, 0.003361051900025943, 0.0025255517052658618], [-0.08983503256666561, -0.0034968025952351453, 0.002120055920425705], [-0.1662516237853908, 0.0011381560503864682, 0.0031232802503962163], [-0.14476295888828966, 0.0005336483010124516, -0.005149520945844961], [-0.11790759514103047, -0.00040595737615197104, -0.00487684163706494], [-0.05148237102621279, 0.0030432543651734223, 0.0029045985091447155], [-0.03624179400783335, -0.004421151057132239, 6.554386782099773e-05], [-0.12616971120928946, 0.0013664789829986675, -0.004786908810656741], [-0.056932542161624564, 0.0011212486608422319, 0.003861305690923432], [-0.1837349978206018, -0.002483352533615833, -0.004591859320790436], [-0.08085504222521984, -0.0013396657920773612, 0.0005217577623491428], [-0.015295757917428907, 0.0005305884716601121, 0.004086354168164337], [-0.16392352922189596, 0.0034098983732166427, -0.0034051419385284568], [-0.007426687988202295, -0.002624207447648211, 0.0016800969379421394], [-0.16787171756667035, 0.0041728861081749965, -0.0021449474372740554], [-0.045735883702843476, -0.004057826988405115, -0.0016578042701490805], [-0.1770036377634002, -0.001039865815564827, -0.0024257729948132154], [-0.06640102156229317, -0.0012383830118275906, 0.001121999702048892], [-0.0980395865250212, 0.001102353192836775, -0.00476587624008456], [-0.11791157633700332, -0.00013201218794553206, 0.003633156046194629], [-0.09064874646972618, 0.0037609499872075067, 0.001604943318222991], [-0.14759580722630128, -0.0015071295191929296, -0.004712942567747064], [-0.13742129321386815, 0.002495658870071828, 0.0026186370607115404], [-0.053793993011712095, 0.0016792489837379131, 1.9070926631684982e-06], [-0.04674628578982588, -0.001553116858694703, -0.004152086219852369], [-0.013445920381667914, -0.0018672563543263075, -0.001426159460167806], [-0.08104882116716214, 0.0006427276220701301, 0.0014158038161087734], [-0.10390532504866805, -0.0031112708670001446, -0.0036599649197082158], [-0.07169273106689489, -0.00023675766248001468, 0.004144936705850932], [-0.1634507565094795, 0.0014966681724312883, -0.004913856540140027], [-0.07269747600945803, -0.0033584119653609994, -0.0029261261709340163], [-0.1324565516641866, -0.0015563265483767123, -0.0019034176299883164], [-0.011391367398614537, 0.003692339100287535, 0.0005608864709377389], [-0.07761277087728691, -0.004388466970157659, -0.0006159657837052488], [-0.032601693783399346, -0.0012127274338675955, 0.0012923343893299502], [-0.1014626473163766, -0.004380115183899735, 5.880369668957658e-06], [-0.07514825943210278, -0.0006981270769103882, -0.0045658131730625185], [-0.13407106877114858, 0.002219670590973544, -0.0006939598414323016]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/sofa_scene.py new file mode 100644 index 0000000..f3a0101 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression/sofa_scene.py @@ -0,0 +1,110 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.sofa.conventions import ELEMENTS +from common.sofa.prefabs.base import ScenePrefab + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.Engine.Select", + "Sofa.Component.IO.Mesh", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + element = ELEMENTS[case['element']] + boundary_kind_name, mapping = element.boundary_mappings[0] + boundary_kind = ELEMENTS[boundary_kind_name] + + length, radius = case['geometry']['length'], case['geometry']['radius'] + eps = 1e-6 * radius + left_box = [-eps, -radius - eps, -radius - eps, eps, radius + eps, radius + eps] + right_box = [length - eps, -radius - eps, -radius - eps, length + eps, radius + eps, radius + eps] + + with root.addChild('Beam') as mechanical: + mechanical.addObject('MeshGmshLoader', name='loader', filename=os.path.join(CASE_DIR, case['mesh']['file'])) + mechanical.addObject(element.container, name='topology', src='@loader') + mechanical.addObject('MechanicalObject', name='dofs', template='Vec3d', src='@loader') + ScenePrefab.add_force_field(mechanical, case['forceField'], case['material'], template=f'Vec3d,{element.cpp}') + ScenePrefab.add_solvers(mechanical, case['solvers']) + + # The left face is clamped. + mechanical.addObject('BoxROI', name='leftFace', box=left_box, position='@dofs.rest_position') + mechanical.addObject('FixedProjectiveConstraint', name='clamp', indices='@leftFace.indices') + + with mechanical.addChild(boundary_kind_name) as boundary: + boundary.addObject(boundary_kind.container, name='topology') + boundary.addObject(boundary_kind.container.replace('Container', 'Modifier')) + boundary.addObject(mapping, input='@../topology', output='@topology') + + boundary.addObject('BoxROI', name='rightFace', box=right_box, position='@../dofs.rest_position', + **{boundary_kind.data_name: f'@topology.{boundary_kind.data_name}'}) + + with boundary.addChild('LoadedFace') as loaded_face: + loaded_face.addObject(boundary_kind.container, name='face', position='@../../dofs.rest_position', + **{boundary_kind.data_name: + f'@../rightFace.{boundary_kind.data_name}InROI'}) + loaded_face.addObject('NodalSourceDensity', name='loadDensity', template='Vec3d', + property=[[-case['load']['magnitude'], 0.0, 0.0]]) + loaded_face.addObject('VectorSourceTerm', name='traction', template=f'Vec3d,{boundary_kind.cpp}', + sourceDensity='@loadDensity') + loaded_face.addObject('FEMSourceTermIntegrator', name='load', template=f'Vec3d,{boundary_kind.cpp}', + topology='@face', quadratureDegree=1, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + + build(root, case[sys.argv[1]]) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :3].copy() + u = mechanical.dofs.position.array()[:, :3] - x0 + boundary_kind_name, _ = ELEMENTS[case['element']].boundary_mappings[0] + boundary = mechanical.getChild(boundary_kind_name).topology + faces = getattr(boundary, ELEMENTS[boundary_kind_name].data_name).array().copy() + return x0, u, faces + + +def main(case): + x, u, faces = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for sub_case in json.load(f).values(): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/beam_tet.msh b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/beam_tet.msh new file mode 100644 index 0000000..5e5492e --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/beam_tet.msh @@ -0,0 +1,8996 @@ +$MeshFormat +4.1 0 8 +$EndMeshFormat +$Entities +2 3 3 1 +1 0 0 0.1 0 +2 1 0 0.1 0 +1 -1e-07 -0.1000001 -0.1000001 1e-07 0.1000001 0.1000001 0 2 1 -1 +2 -9.999999994736442e-08 -1e-07 0.0999999 1.0000001 1e-07 0.1000001 0 2 1 -2 +3 0.9999999000000001 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 2 2 -2 +1 -1e-07 -0.1000001 -0.1000001 1e-07 0.1000001 0.1000001 0 1 1 +2 -9.999999994736442e-08 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 4 2 3 -2 -1 +3 0.9999999000000001 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 1 3 +1 -9.999999994736442e-08 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 1 1 3 -2 -1 3 +$EndEntities +$Nodes +9 1485 1 1485 +0 1 0 1 +1 +0 0 0.1 +0 2 0 1 +2 +1 0 0.1 +1 1 0 20 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +0 -0.02947551744109039 0.09555728057861408 +0 -0.05633200580636216 0.08262387743159953 +0 -0.07818314824680293 0.06234898018587343 +0 -0.09308737486442038 0.03653410243663962 +0 -0.09972037971811801 0.007473009358642549 +0 -0.09749279121818238 -0.02225209339563135 +0 -0.08660254037844392 -0.04999999999999991 +0 -0.06801727377709203 -0.07330518718298255 +0 -0.04338837391175594 -0.09009688679024186 +0 -0.01490422661761778 -0.09888308262251282 +0 0.0149042266176171 -0.09888308262251291 +0 0.0433883739117554 -0.09009688679024212 +0 0.06801727377709153 -0.07330518718298301 +0 0.08660254037844349 -0.05000000000000066 +0 0.09749279121818219 -0.02225209339563224 +0 0.09972037971811809 0.007473009358641551 +0 0.0930873748644207 0.03653410243663879 +0 0.07818314824680334 0.06234898018587292 +0 0.05633200580636256 0.08262387743159925 +0 0.02947551744109064 0.09555728057861401 +1 2 0 33 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +0.02941176470588239 0 0.1 +0.05882352941176477 0 0.1 +0.08823529411764718 0 0.1 +0.1176470588235296 0 0.1 +0.147058823529412 0 0.1 +0.1764705882352943 0 0.1 +0.2058823529411767 0 0.1 +0.235294117647059 0 0.1 +0.2647058823529415 0 0.1 +0.2941176470588239 0 0.1 +0.3235294117647065 0 0.1 +0.3529411764705889 0 0.1 +0.3823529411764713 0 0.1 +0.4117647058823538 0 0.1 +0.4411764705882362 0 0.1 +0.4705882352941187 0 0.1 +0.5000000000000011 0 0.1 +0.5294117647058832 0 0.1 +0.5588235294117656 0 0.1 +0.5882352941176479 0 0.1 +0.6176470588235301 0 0.1 +0.6470588235294124 0 0.1 +0.6764705882352946 0 0.1 +0.7058823529411768 0 0.1 +0.7352941176470592 0 0.1 +0.7647058823529413 0 0.1 +0.7941176470588236 0 0.1 +0.823529411764706 0 0.1 +0.8529411764705882 0 0.1 +0.8823529411764703 0 0.1 +0.9117647058823527 0 0.1 +0.9411764705882349 0 0.1 +0.9705882352941173 0 0.1 +1 3 0 20 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +1 -0.02947551744109039 0.09555728057861408 +1 -0.05633200580636216 0.08262387743159953 +1 -0.07818314824680293 0.06234898018587343 +1 -0.09308737486442038 0.03653410243663962 +1 -0.09972037971811801 0.007473009358642549 +1 -0.09749279121818238 -0.02225209339563135 +1 -0.08660254037844392 -0.04999999999999991 +1 -0.06801727377709203 -0.07330518718298255 +1 -0.04338837391175594 -0.09009688679024186 +1 -0.01490422661761778 -0.09888308262251282 +1 0.0149042266176171 -0.09888308262251291 +1 0.0433883739117554 -0.09009688679024212 +1 0.06801727377709153 -0.07330518718298301 +1 0.08660254037844349 -0.05000000000000066 +1 0.09749279121818219 -0.02225209339563224 +1 0.09972037971811809 0.007473009358641551 +1 0.0930873748644207 0.03653410243663879 +1 0.07818314824680334 0.06234898018587292 +1 0.05633200580636256 0.08262387743159925 +1 0.02947551744109064 0.09555728057861401 +2 1 0 39 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +0 -2.503541930082155e-16 -0.07306820487327914 +0 -0.01150824889312312 0.07280417667649478 +0 0.07123623242397975 0.01625920519091276 +0 -0.07286389135284624 -0.005460393788372082 +0 0.05855994900625908 -0.04917425094414683 +0 0.04969900095266479 0.05356278435360208 +0 -0.04116078541182028 -0.06037178403596809 +0 -0.04875854296352724 0.05132560736237923 +0 0.06944984514603657 0.04009688679024143 +0 0.04665563482725372 0.0275528366322077 +0 0.02297651809823792 0.04235001236537813 +0 0.01985573963200126 0.01447966668228785 +0 -0.003969118687826098 0.02972517116452704 +0 -0.008513706565336083 0.002292220138594796 +0 0.01623453042698919 -0.01410242938413878 +0 -0.01224314338738922 -0.02649510757048446 +0 -0.03450550212999404 0.02144882057249528 +0 0.04871740625483301 -0.003488004852144479 +0 0.01323793920972892 -0.04397369914465722 +0 -0.03369305220905091 -0.008916522986870287 +0 0.03915734447139095 -0.02818109576474569 +0 0.07828726642463173 -0.006766422180493857 +0 0.02831588746977902 0.06799443321897355 +0 -0.03723162283093191 -0.03480413784791668 +0 -0.01683919035646618 -0.0525573204498645 +0 0.02629005051493083 -0.06917579577250926 +0 -0.06136973046791287 -0.04418039696963311 +0 -0.02194967942142288 0.05019951782252414 +0 -0.06724393895343415 0.02559486143473897 +0 -0.0236375297183843 -0.07663098922688143 +0 -0.03418764401364816 0.07135923552761661 +0 -0.05599275549500649 -0.02004242348629351 +0 0.003315594733254228 0.05619567722638206 +0 -0.05341173252383826 0.005654386985016353 +0 0.009750487402022718 0.07935329800422579 +0 0.06813621629229007 -0.02664364452286063 +0 -0.07540677636266056 -0.02851090800560852 +0 0.04694795383579439 -0.06567816069170311 +0 0.03648978553636028 -0.05030998955692086 +2 2 0 794 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +0.4852941176470599 0.0252639219150482 0.0967560553633226 +0.6617647058823535 0.0252639219150482 0.0967560553633226 +0.3382352941176476 0.02526392191503892 0.09675605536332503 +0.7500032707586177 -0.02526361212528865 0.09675613625183144 +0.6323529411764712 -0.02526392191503734 0.09675605536332543 +0.5147085547247892 -0.02526239289697757 0.09675645459150897 +0.3970588235294126 -0.02526392191508832 0.09675605536331212 +0.2500233326303539 -0.02524719535683889 0.09676042128170802 +0.7794117647058825 0.0252639219150482 0.0967560553633226 +0.2205882352941179 0.02526392191504829 0.09675605536332257 +0.8382348892760625 -0.02526184063139512 0.09675659878227426 +0.1615518234361898 -0.02461911173251836 0.09692213027736121 +0.5664469667941777 0.02494621341809352 0.09683845535787389 +0.9706081396299115 -0.001479437582354865 -0.09998905572331362 +0.02946327025520788 -0.002147021015057625 -0.09997694884702624 +0.9742092960782426 0.09308737486442015 -0.03653410243664023 +0.02765550287383968 0.09253748638154967 -0.03790532435139569 +0.02987842527996892 -0.09169440260381675 -0.03990158557161812 +0.9742092960782459 -0.09308737486442047 -0.0365341024366394 +0.8676470588235292 0.02526392191499836 0.09675605536333562 +0.1323529411764708 0.02526392191499853 0.09675605536333558 +0.02809113892153562 -0.08638710675014011 0.05037129924212694 +0.9712891951134757 -0.08642270486913846 0.0503101985993078 +0.97420929607838 0.08660254037844423 0.0499999999999994 +0.02859149916209112 0.08847220778903959 0.0466118917115901 +0.3382427957239559 -0.02526153711169094 0.09675667802665955 +0.4558877422570792 -0.02526130027009747 0.09675673986169632 +0.5735376494773946 -0.02526050595988254 0.09675694723714023 +0.6911803774893994 -0.02525897337790453 0.09675734733804101 +0.1028971193780311 -0.02473973539476977 0.09689141082983969 +0.8970588235294115 -0.02526392191508811 0.09675605536331218 +0.3970588235294126 0.02526392191504081 0.09675605536332453 +0.2794117647058827 0.02526392191507338 0.09675605536331602 +0.720588235294118 0.02526392191505679 0.09675605536332035 +0.9710712117050965 -0.05602774337543642 -0.08283050146085223 +0.02579070392175642 -0.05633200580636233 -0.08262387743159941 +0.02416074464999332 0.05590550041305607 -0.08291305701495869 +0.972929636051732 0.05553625342671965 -0.08316083546551928 +0.9264705882352938 0.02526392191535628 0.09675605536324217 +0.07352941176470598 0.02526392191535637 0.09675605536324214 +0.9535053699285615 -0.02499832756202306 0.09682501546140748 +0.0462811721305656 -0.02485533505852341 0.09686182075063704 +0.9742092960782424 0.04338837391175607 0.0900968867902418 +0.02356276400527855 0.04470876263410964 0.08944901644918653 +0.4264827317564587 -0.0252573699432011 0.09675776590823232 +0.4853064430883126 -0.02525705588503405 0.09675784788853185 +0.5441233763386278 -0.02526260340305383 0.09675639962968864 +0.6029561381493567 -0.02525549533585457 0.09675825523096532 +0.6617663338377172 -0.02526221959040005 0.0967564998404056 +0.3676470588235301 -0.02526392191503751 0.09675605536332539 +0.3088242730465371 -0.025263459741801 0.09675617603995314 +0.7794117647058825 -0.02526392191508811 0.09675605536331218 +0.7647058823527656 -0.04892003708809009 0.08721714264581185 +0.647058823529397 -0.0488965219298583 0.08723032811564385 +0.5294117647058834 -0.04889152248704069 0.08723313033990696 +0.411786577440753 -0.04889193840125559 0.08723289723130735 +0.3235294029274697 -0.04890038427893734 0.08722816298290513 +0.4705362486353751 -0.04889959162440136 0.08722860734281374 +0.5882581438467583 -0.04888523094913425 0.08723665625784729 +0.2941130976955501 -0.04888567955268872 0.08723640487016779 +0.7352758896218003 -0.04890061314349439 0.0872280346803154 +0.7499691729251775 -0.06940458678045197 0.07199307837448481 +0.7794576446938972 -0.06940581405086461 0.07199189521006379 +0.7646864520108182 -0.08538329980434753 0.05205470309703927 +0.7942207358258061 -0.08537958062346852 0.05206080303415074 +0.779450307518349 -0.0957923044359633 0.0287025157581653 +0.749931846797614 -0.09578772617733888 0.0287177908930187 +0.7646820959833436 -0.09993942624315509 0.00348009801427567 +0.7351556822563751 -0.09993866994381846 0.003501749542802415 +0.7499011790856396 -0.0975581282284219 -0.02196387071002721 +0.7203818964725015 -0.09756306633479767 -0.02194192533375028 +0.77943194677792 -0.09755402144601646 -0.02198210407832156 +0.7646473829395952 -0.08878731296654814 -0.04600883671839827 +0.7941951279569172 -0.08877920342709816 -0.04602448303729138 +0.7794095362961146 -0.07419228947757325 -0.06704852110282504 +0.8089420231650305 -0.07416927554777701 -0.06707397829798026 +0.794177474057204 -0.05471902103436441 -0.08370082877152882 +0.7646075198063507 -0.05473966879987749 -0.08368732675668233 +0.8237280063393676 -0.05469487634297791 -0.08371660827951857 +0.8089494674980768 -0.03163965922143583 -0.09486270059592132 +0.823721348298858 -0.0887385730282121 -0.04610277276820417 +0.8385442778066193 -0.03162722056482763 -0.09486684836835124 +0.823735535400295 -0.006465131562135117 -0.09979079152849868 +0.8531666981811304 -0.006374425927100419 -0.09979662666693655 +0.8385172950436833 0.01912903591419769 -0.0981533493315095 +0.8089237399759499 0.01910896864608251 -0.09815725809782502 +0.8237102650353139 0.04344242997284002 -0.09007083478049314 +0.7941134198565937 0.04341870885270457 -0.09008227196049218 +0.8088795152793981 0.06488392656889537 -0.07609254939218553 +0.7793071215927916 0.06486368140610449 -0.07610980774149528 +0.7940682399441179 0.08207256486656292 -0.05713225092908403 +0.7645082689098337 0.082056373544065 -0.05715550332904847 +0.8236470050080795 0.08208491003858806 -0.05711451255116257 +0.8088270643730976 0.09389742533962184 -0.0343987429216555 +0.8384063553713287 0.09390598222534481 -0.03437537639493166 +0.7497508580280903 0.06485094996468783 -0.07612065612353559 +0.734959960872174 0.08204045296889755 -0.05717835321743808 +0.8236055956312013 0.0995579459250959 -0.009392305530362785 +0.8531841438442141 0.09955933751915556 -0.009377543001600477 +0.74970453319346 0.09387087578278748 -0.03447112820568081 +0.720171016917559 0.0938618553069501 -0.03449568260430809 +0.8532375461772759 0.08207455103541139 -0.05712939761922622 +0.7349135623252208 0.09954342923369497 -0.009544930402908222 +0.7053837047371949 0.09954073723095423 -0.009572963570291271 +0.6906375652493472 0.09385406959322322 -0.03451685994974651 +0.6758698116881143 0.0995418765393381 -0.009561109508167437 +0.6611208911483948 0.0938483806794162 -0.03453232462275572 +0.6463519579688209 0.09954045326324634 -0.009575915838575061 +0.6316146774055205 0.09384250039584739 -0.03454830125281681 +0.646393316231398 0.08202683352896563 -0.05719788965697389 +0.6168834114903214 0.08202132115761361 -0.0572057940733245 +0.6316474792124694 0.06485636876613343 -0.07611603924582067 +0.6021616185446172 0.0648399127088327 -0.0761300579266229 +0.6169141548506891 0.04345279775447335 -0.09006583351809296 +0.5874303927488627 0.0434344345748976 -0.09007469063593247 +0.6021684948905269 0.01922530196264306 -0.09813453910038603 +0.5726968946862562 0.01920351961894644 -0.09813880391692544 +0.3087966724917206 -0.06937343439242327 0.07202309768817322 +0.5579450391174698 0.0434158908506107 -0.09008363015358484 +0.5432212268990303 0.0191830455966763 -0.0981428079975086 +0.5874559111623764 -0.0062673785946992 -0.09980340658289528 +0.5284697037227307 0.04339841244981868 -0.09009205179612363 +0.5137470918489422 0.01916400058667624 -0.09814652862691514 +0.4989927750235865 0.04338021576781567 -0.09010081509030736 +0.4842710885296338 0.01914491834057856 -0.09815025268297876 +0.4695163925711805 0.04336228032501448 -0.0901094481451022 +0.4547951519288759 0.01912572968540531 -0.09815399362227095 +0.4400129512011533 0.04340073442516135 -0.0900909332361288 +0.4253174197991227 0.01910771503568914 -0.09815750213873059 +0.4104842288020282 0.0433849160528689 -0.09009855192557492 +0.3958352395594426 0.01908637325703355 -0.09816165420312148 +0.3810844259285288 0.04331057506229786 -0.09013431137903626 +0.3663570800788326 0.01906477048214109 -0.09816585214046319 +0.351600657423871 0.04329441760726022 -0.09014207343992126 +0.3368640805497553 0.01903836009456004 -0.09817097761003435 +0.3220957222319343 0.04328341497434693 -0.09014735707805571 +0.3073556912049312 0.01901011617650174 -0.09817645075554476 +0.2925692929608608 0.04327465264717495 -0.09015156370394445 +0.2778332543846004 0.01898086251674415 -0.0981821106827535 +0.2630277749720096 0.04326474847734422 -0.09015631724506133 +0.2482658452071974 0.01895207810719272 -0.0981876709949822 +0.2334605296544359 0.04327828201922606 -0.09014982143889325 +0.2186876783103647 0.01892188521122373 -0.09819349398026976 +0.2335111203721501 -0.006643769885723952 -0.09977905753065394 +0.381131726364985 -0.00640412052553972 -0.09979472551339756 +0.2039299528635202 0.04331340267218767 -0.09013295262531307 +0.2039159449354725 -0.006672452415807269 -0.09977714356884942 +0.2186463272119396 -0.03185463509320834 -0.09479072857130355 +0.6021210153787935 0.09383757430681548 -0.03456167889748534 +0.4990192282176508 -0.006322217139811736 -0.09979994774766704 +0.1890881546713715 -0.03185652830255081 -0.09479009233305336 +0.2039610509357996 -0.05488275473356383 -0.08359355975704993 +0.2335349508677297 -0.05486543324417416 -0.08360492948940912 +0.2187858865303565 -0.07431618810321809 -0.06691116637607739 +0.1892013599873119 -0.0743434856050043 -0.0668808354321215 +0.4551578116647176 0.06502288324598361 -0.07597384190877268 +0.3663271445349439 0.0647188075901912 -0.07623303709090837 +0.248248042490179 0.06474617706026244 -0.07620979304578347 +0.6169371207874019 -0.006250950988248995 -0.09980443683395297 +0.6022119266237482 -0.03132906236141391 -0.09496572987954466 +0.2040190895923339 -0.08888993675973363 -0.04581025150389984 +0.1744323278204606 -0.08890892987602546 -0.04577337859826375 +0.2483504354058064 -0.07428538109290499 -0.06694536694859381 +0.6316975128447124 -0.03131594187584865 -0.09497005730454453 +0.6169687239389076 -0.05435450638885873 -0.0839379987563649 +0.5874892418525229 -0.05436737909833649 -0.08392966156239262 +0.6022354784353683 -0.07384370441768762 -0.0674322424206194 +0.5727666248133966 -0.07385493378556887 -0.06741994330707524 +0.189260448403997 -0.09761942557533355 -0.02168980752201164 +0.1596589458307107 -0.0976299230796122 -0.02164250723620088 +0.5875091230565239 -0.08851022768227451 -0.0465396561615138 +0.5580461936567327 -0.08851666033774155 -0.04652742033094992 +0.5136655218419031 0.06482076074185811 -0.07614636548678333 +0.646413237381041 0.0434309002818821 -0.09007639480299606 +0.4400799400026612 -0.006361563742131583 -0.09979744739598703 +0.3073096728994886 0.06477385458724878 -0.07618627016667734 +0.3221475454061105 -0.006464577496209128 -0.09979082742314299 +0.1448156207110668 -0.08892234155661316 -0.04574731874207525 +0.2188270620184427 -0.09761110564412867 -0.02172721921762544 +0.2040866385010897 -0.09992825718754608 0.003787270185720204 +0.1300503875643748 -0.09763896705279716 -0.02160166921473414 +0.14489961796366 -0.09992176259571607 0.00395491589864522 +0.572791736203355 -0.09741576416738401 -0.0225869185964935 +0.5433291216458613 -0.09741289566648052 -0.02259928666731281 +0.6022459170543912 -0.09740553634443319 -0.02263098516311885 +0.7056390975838637 -0.09993817015087264 0.003515984484497714 +0.8680650796880691 0.01906583266913889 -0.09816564584737575 +0.8679334411791563 -0.03142213533628005 -0.09493497464532501 +0.6905974566301929 0.09871754492633492 0.01596390690642639 +0.8383632122971687 0.09867670706561971 0.01621442205833676 +0.8679545388071461 0.09867124573955077 0.01624762334020525 +0.5285861526467956 -0.08852393184401398 -0.04651358393927916 +0.5138729515560106 -0.09741473941598269 -0.02259133782041669 +0.4991306679653407 -0.08853145616329927 -0.04649926095763052 +0.4844185277436385 -0.09741760589339347 -0.02257897389164245 +0.4696764561594781 -0.0885387181321559 -0.0464854320353662 +0.4549640627033296 -0.09742107968041269 -0.02256398089661222 +0.4402220062630815 -0.08854588591395005 -0.04647177732467033 +0.4255051279799345 -0.09742476170678216 -0.02254807766477477 +0.4107641321746768 -0.08855211936293818 -0.04645989836764551 +0.3960475445751351 -0.09742851422450406 -0.02253185780191262 +0.3813007440078541 -0.08855801539395433 -0.04644865885560259 +0.3665718409281707 -0.09743323100970609 -0.02251145252997344 +0.3518207367817737 -0.08856234978217965 -0.04644039406657596 +0.337085668823262 -0.09743786478928572 -0.02249138735838403 +0.2793340389455163 -0.06936168080949866 0.07203441701909738 +0.6464553190167194 -0.05434262018559893 -0.08394569453738374 +0.6611964087236024 -0.0312959723777732 -0.09497663982753685 +0.3813603190929007 -0.09995731196327085 0.002921606591817446 +0.5580653824556486 -0.09996174410779951 0.002765811802493502 +0.4991633923106991 -0.09996098213349787 0.002793215155787192 +0.4402853031488336 -0.0999589283057235 0.002865772491184139 +0.1152748984889588 -0.09992062515622002 0.003983549722316935 +0.1743056766221124 -0.006685819436377395 -0.09977624876925451 +0.1151868718932833 -0.08893704568846128 -0.04571872596878167 +0.1301205543929657 -0.09561697694509003 0.02928128617192429 +0.8827886441758031 0.09956051761213994 -0.009365005755618831 +0.8087954654899486 0.0986857414557606 0.01615934507728499 +0.8235545291524475 0.09133912318952982 0.04070828631824114 +0.7940199495421827 0.09135228299898573 0.04067874618118437 +0.3382460110682575 -0.06937221385461077 0.07202427330358946 +0.6759553569798402 -0.05433372575611922 -0.08395145171739932 +0.6907056826424823 -0.03127546347540566 -0.09498339530885684 +0.6908770923800082 -0.09756224384621301 -0.02194558214520803 +0.6761335548570546 -0.09993762814449207 0.003531356800611797 +0.7204953916265786 -0.06938088809138135 0.0720159174603172 +0.1299720268608671 -0.07436975850720362 -0.06685161942376726 +0.2939451851543458 -0.08536591406469997 0.05208320953914285 +0.8975531833336222 0.09866607853371223 0.01627897253451001 +0.8827175241462337 0.09128547836143626 0.04082843911201791 +0.7793419977744843 0.01914300218335772 -0.09815062642392031 +0.8089830745963452 -0.09579380881169475 0.02869749454827852 +0.8237622833345994 -0.08537554733747421 0.05206741703624928 +0.8385381997761548 -0.09579501057731771 0.02869348268320859 +0.8533208044367427 -0.08537167575624076 0.05207376478200224 +0.8680991336973584 -0.09579622582647515 0.02868942518425519 +0.8828831672999824 -0.0853678348930933 0.05208006111426487 +0.8975279455204022 -0.09577600809720087 0.02875684741005027 +0.8828969894065075 -0.09994251929664852 0.003390108647084957 +0.3223920162863601 -0.08858215752476015 -0.04640260087816826 +0.3076031578646347 -0.09744366245830434 -0.02246625573414604 +0.7202077904446441 0.06483607917059141 -0.07613332278171502 +0.1009263134006025 -0.09557155586128961 0.02942919826044196 +0.1006320154806122 -0.07428345801964731 -0.06694750080953953 +0.1151284540428087 -0.05486544252492503 -0.08360492339894912 +0.2645711325291501 -0.08533417895649108 0.05213518870994482 +0.2630152458399766 -0.05472769785950149 -0.08369515569612807 +0.5580117337307451 -0.0543822124869027 -0.08392005103090301 +0.4549358812395378 -0.073901378943395 -0.06736902990443557 +0.3960227724982451 -0.07391371997086892 -0.06735548975449569 +0.3370730629481432 -0.07391776716806452 -0.0673510482241205 +0.1153807271636592 -0.08502451588216485 0.05263869013381221 +0.1449468776250967 -0.08505109719071299 0.05259573049835789 +0.9120903265396946 -0.09994856482314898 0.003206928404686933 +0.8976613275130196 -0.09750203425544418 -0.02221155816349206 +0.08806422084220178 -0.09990035146930715 0.004463157661219504 +0.8087692327017471 0.0780019308972727 0.06257554455453899 +0.7792352614987569 0.07804551469948928 0.06252117749444425 +0.9124124259574107 0.09956212617912591 -0.009347889103525612 +0.9124595450054868 -0.08534940770818859 0.05211025430624379 +0.9123370019699264 0.0912714390345896 0.04085981420118299 +0.897493442532083 0.07789373401191207 0.06271017622110063 +0.08584318235292666 -0.08498127050817883 0.05270847809238793 +0.08548781193724449 -0.05487671023160597 -0.08359752791893044 +0.1002268816306063 -0.03176241886107816 -0.09482166813599846 +0.8679205051049211 0.07791811340791088 0.06267988196344931 +0.6613697353862327 -0.09756530345155191 -0.02193197579805782 +0.6466390804919595 -0.09993707427568745 0.003546996647268051 +0.661398910674306 -0.09578390515926452 0.02873053275595529 +0.631931020867861 -0.09577851333755304 0.02874850227139104 +0.7054931160248761 -0.05434506642019631 -0.08394411090591437 +0.7202281813196951 -0.03125989644318251 -0.09498851969770614 +0.7054381947902207 -0.006152843060005261 -0.09981053312290716 +0.5138419902278774 -0.07387951690799048 -0.06739300395027624 +0.8976058292758049 0.09389769892865141 -0.03439799610303395 +0.08551919201596951 -0.08895973981763439 -0.04567455190342645 +0.7349833560200217 0.04341074874930581 -0.09008610821333468 +0.2336337406662417 -0.09992976408875587 0.003747298915966142 +0.2189012893542892 -0.09570362514835222 0.02899682971401678 +0.2483131448703216 -0.09758890031181749 -0.02182673901273734 +0.3223588223263627 -0.0999568493412326 0.00293739166168375 +0.292948962709726 -0.09995400359864168 0.003032682740203308 +0.8680393350634683 -0.06935860182344036 0.07203738163687973 +0.7644967750032869 0.09136055926526644 0.04066015507518066 +0.7495925941423994 0.07828570009432567 0.06222016683312009 +0.1302158594743224 -0.06889626222333967 0.07247968716580404 +0.2498475341293026 -0.06933933884948579 0.0720559233367819 +0.7054520048121338 0.04340690431164725 -0.09008796067222025 +0.159765524248818 -0.06895815310492372 0.0724208058527237 +0.9254434520865231 0.07799641291293195 0.0625824222343257 +0.07056087902987562 -0.03177281122207685 -0.09481818637290142 +0.0853898413498653 -0.006517675207973955 -0.09978737349927275 +0.1150270112073463 -0.006576989598487035 -0.09978348163810177 +0.1002117503109685 0.01917199010875767 -0.09814496826261497 +0.1298036092724912 0.01905094949318165 -0.09816853530234748 +0.1150419794689635 0.04357258713672833 -0.09000794215074699 +0.1446477811512045 0.04362910480843064 -0.08998056019838382 +0.1298642054837206 0.06509221112468909 -0.0759144521873069 +0.1001903346564231 0.06507394807742282 -0.0759301078730755 +0.1150190313733932 0.0822829509749104 -0.05682883052518758 +0.1446805854217007 0.0822976770490078 -0.05680750260605738 +0.1298392105561054 0.09404924597822582 -0.03398145569170302 +0.1594814091403302 0.09405464290482339 -0.03396651510011229 +0.1446550933837539 0.09960073836177478 -0.008927088987418402 +0.1742497606400694 0.09960273321694862 -0.008904804080571323 +0.1594553591257337 0.09859807972121916 0.01668588251451241 +0.1890288323751637 0.09859573564305689 0.01669972793204855 +0.1298983690104298 0.09860082838037845 0.01666963235056961 +0.1742425150806481 0.09112601049239795 0.04118313018384323 +0.2037979046852148 0.0911216037926721 0.04119287950910066 +0.2185923572066714 0.09859222641434004 0.01672043332762378 +0.2333447356062046 0.09111547861728117 0.04120642615349916 +0.2481379623834646 0.09858766576991904 0.01674730300790949 +0.2628791438139127 0.09110823081091624 0.04122244872038552 +0.2776648110682935 0.09858279548027918 0.01677594811906164 +0.2924130544655634 0.09110271047633063 0.04123464737166885 +0.3071846038996605 0.09857813354790235 0.01680332069002819 +0.3219200959393006 0.09110174291330227 0.04123678501239617 +0.3366880444028452 0.09857348305006125 0.016830580482541 +0.3514137059124188 0.09109628418593145 0.04124884249910557 +0.36618613755209 0.09856887937653079 0.01685752112426154 +0.3809077157173356 0.09108232059226899 0.04127966661114323 +0.3956724744961088 0.09856460349092683 0.01688250392200097 +0.4103978127232458 0.0910697914277178 0.04130730067811234 +0.4251418308643158 0.09855822355079946 0.01691970952796294 +0.4398791529348914 0.09106010037217749 0.04132865979207364 +0.4546276911612117 0.09855524808489741 0.01693703264814499 +0.4693641886151724 0.09105091540037501 0.04134889121553026 +0.4841294025830809 0.09855041750026297 0.01696511746271929 +0.4988462069635894 0.0910410992142604 0.04137049980190224 +0.5136036127782492 0.09855459553464313 0.01694082934814298 +0.5283304688101546 0.09103203179291598 0.04139044802431516 +0.4102361884553837 0.0996375838447814 -0.008505991157658047 +0.1002115919256126 0.09404073424801863 -0.03400500407430554 +0.5430912211263851 0.09854418109110499 0.01700130504059929 +0.5578057866429161 0.09103852587519946 0.04137616229751907 +0.1890645729776965 0.09407313652336763 -0.03391526182496366 +0.4988862818944353 0.09963440126316954 -0.008543189388613695 +0.3514595717738555 0.09962307983358282 -0.008674212613925517 +0.2924512109263581 0.0996169609773684 -0.008744202973025151 +0.1890042855155546 0.07768478983429281 0.06296882902199911 +0.4546219490359207 0.07790206070568326 0.06269983203971156 +0.5430506791076256 0.07757344707958208 0.06310594510972227 +0.5724905189462759 0.07733453116742017 0.06339850383972258 +0.5873041564756322 0.09103023610243077 0.0413943971466636 +0.6021155251544981 0.0772260514454893 0.06353059875476258 +0.159481944461468 0.07768843489015598 0.06296433184206753 +0.3661266354950013 0.07795850471703897 0.06262963789040629 +0.3073286536874044 0.07753398052000632 0.06315442870237431 +0.2480640570053399 0.07764966523030144 0.06301213763730061 +0.2333903569688322 0.09960943136437655 -0.008829563028007551 +0.6167935130943158 0.09102073327363264 0.0414152884129789 +0.6315080786587789 0.07752692714985718 0.06316308705803365 +0.1742411686291132 0.05918580983602787 0.08060421771876176 +0.6197948999031327 0.05897731137438855 0.08075689904304412 +0.07295751788005778 0.01885972221659757 -0.09820545238383038 +0.646291142380681 0.09101907013212884 0.04141894339891605 +0.6608712917548377 0.07773177826255613 0.06291081503319447 +0.1744911846938774 -0.08507148073300147 0.05256275455010478 +0.1896873169393717 -0.06882071893514428 0.07255142069766705 +0.73496833521547 0.09137951288562048 0.04061754085105007 +0.7202103414004235 0.07809206813222401 0.06246302021862284 +0.7644651476729036 0.09954960051272979 -0.009480350086147095 +0.6906801822260111 0.06484829338187906 -0.076122919317757 +0.7349396692334554 -0.006218671149454757 -0.09980645334413472 +0.307606940473919 -0.07395172165305451 -0.06731376430232638 +0.1594979930905945 -0.03181998388795129 -0.09480236613803751 +0.8680659423818711 -0.0975151471513321 -0.02215391784886023 +0.8829042369281008 -0.08865568916743814 -0.04626195821889291 +0.9125096879212748 -0.08863529377026785 -0.04630102264808326 +0.8976606664844017 -0.07392343982867924 -0.06734482195310669 +0.9255074217922548 -0.07374004622788574 -0.06754558151581251 +0.9124711947588831 -0.05428784689631318 -0.08398112692362768 +0.8680875553120588 -0.07400318504296211 -0.0672571825420684 +0.602076290020498 0.09862528981280699 0.01652429149282443 +0.6612144396157191 -0.07383844054512012 -0.06743800633073875 +0.7056872155412328 -0.08877645193551864 -0.04602979015529562 +0.6466840229367061 -0.08538778754082105 0.05204734132387173 +0.6172120839565814 -0.08538283048610734 0.05205547289364163 +0.6024727769307441 -0.09577195102415374 0.02877035622002443 +0.5877754987605429 -0.08537215715531088 0.0520729755501729 +0.6761986477794916 -0.08536506575489503 0.0520845999184255 +0.8237580253561302 -0.09994060940080154 0.003445953075191212 +0.3223143890399492 -0.05442825432894012 -0.08389019686890842 +0.3517859272838286 -0.054426127431575 -0.08389157676907712 +0.9251775958150403 0.09398531494410753 -0.0341578772006827 +0.9124389137272173 0.08202133268447451 -0.05720577754617757 +0.9404851416567763 0.09962604110608965 -0.008640135041059021 +0.9421339196048667 0.0820293522615848 -0.05719427740206913 +0.9258357083834465 0.06488230665483481 -0.0760939306590741 +0.8970827715564786 0.06488317936812417 -0.07609318652207848 +0.912451217783132 0.04313000421916846 -0.09022085532765976 +0.2038725173174951 0.05942695860140237 0.0804265913202046 +0.7644531935432658 0.05967854882895201 0.08024008231345724 +0.8825406091389516 0.05967191516382152 0.08024501567500431 +0.8530647798538387 0.05984378200063445 0.08011692552676083 +0.5577722580415555 0.05905428892227576 0.08070062552350124 +0.528290133800308 0.05907355861328337 0.08068652101040778 +0.1446202606938243 0.0594397784506385 0.08041711719366103 +0.129948596943183 0.07769793847499931 0.06295260405046976 +0.1151539046328138 0.05948601546824341 0.08038292084586071 +0.1004055988388861 0.07770699355783495 0.06294142635977197 +0.08559121583020143 0.0594841808975034 0.08038427845638159 +0.07312320766441294 0.07789738337481973 0.06270564299452132 +0.08571254433480618 0.0911612842077659 0.04110499071391373 +0.9421542826042462 0.04312797560627335 -0.09022182507633446 +0.9257431935848242 0.01846136699202497 -0.09828111684746858 +0.1889906446674649 0.03682429455317358 0.09297296021242474 +0.05605573809044826 0.05914819841422097 0.08063182141283892 +0.5367876665790662 0.03623071847089279 0.09320587448805417 +0.9419562879475231 0.0912568170119516 0.04089246078248634 +0.942191444705632 -0.08863282251462994 -0.04630575313165861 +0.5871936279187961 0.05093513754359216 0.08605586420119984 +0.6151970130197864 0.03420505997677156 0.09396815349886078 +0.9421697858242821 -0.05426852804428042 -0.08399361204226874 +0.9273007257969291 -0.03104889482227576 -0.09505769895340019 +0.9538646824351047 -0.03059481639410179 -0.09520481715654519 +0.05602615504805272 0.09115927521659326 0.04110944589732885 +0.07082869498653326 0.09862185822214886 0.01654475991999799 +0.04539174150984777 0.0985345303488694 0.01705714890970164 +0.05697971877232472 0.09964535988947498 -0.008414407435881191 +0.5135352290434029 0.03673023808996845 0.09301015863793713 +0.4988125750753292 0.05909067661622306 0.0806739855036117 +0.4680754830482144 0.0505917314434802 0.08625819792663639 +0.6757675012951384 0.09098363892788525 0.04149671610429199 +0.5730173220644414 -0.09576529966979731 0.02879248824179527 +0.5584244711860801 -0.08541588911548226 0.05200121043410086 +0.5877199511694131 -0.0999344791438489 0.003619375394682016 +0.2484364288056489 -0.09571594201424805 0.02895614691779804 +0.6904964165624852 0.07749464513511173 0.06320268962143229 +0.6757263983170428 0.05896530400643618 0.08076566673673016 +0.7052197234358698 0.0589447954903442 0.08078063557933608 +0.6904512546553759 0.03657245733112819 0.09307231255729498 +0.7349391812715736 0.05088614393738483 0.08608484393424753 +0.6424813012183476 0.04879582371408775 0.08728669765814073 +0.0563429154046575 -0.05511646470866271 -0.08343965075441495 +0.04560626267694144 -0.03124125768333703 -0.09499465152503764 +0.04458082478887465 -0.07510308247000716 -0.06602671431703462 +0.7054781111190428 0.091378249651002 0.040620382700304 +0.2343728980096851 -0.08520296395730588 0.05234935465590799 +0.21939947490968 -0.06890329307736526 0.07247300327083672 +0.2630170402682018 -0.09994221433459816 0.003399087215304199 +0.2781879440188358 -0.09749254709063115 -0.02225316296127517 +0.6318805571158409 -0.09757905069790643 -0.02187073078100979 +0.646554643511013 -0.08873774779780495 -0.04610436113615679 +0.2040267436983628 -0.08509077621076475 0.05253151248393248 +0.2052447790974107 -0.04860641947854163 0.08739231079148811 +0.1892609288972375 -0.09565732711597703 0.02914919842854972 +0.6169736634389082 -0.08850561434521467 -0.0465484288604474 +0.6610849169115409 0.09858635451281342 0.01675502025883209 +0.2927590177999495 -0.05452950549908645 -0.08382441786272721 +0.2778249064779391 -0.07412619846358215 -0.06712158148716128 +0.2778117869804183 -0.03164434615456832 -0.09486113722937259 +0.455562182638499 0.02569635739676858 0.0966421089201676 +0.4404440679959906 0.04794461533579429 0.08775712996846878 +0.8383408848586762 0.0779701703483615 0.06261511427640687 +0.8234258337694697 0.05967290442662363 0.08024428002849202 +0.8364068403902201 0.03768074927037066 0.0926291592017517 +0.8106682072447593 0.03731242017716271 0.09277814020836407 +0.1452710678536042 -0.04892901118601108 0.0872121084733032 +0.9123236309410846 0.05971570745032587 0.08021243222660124 +0.935754471336872 0.06058860382043282 0.07955514494418719 +0.8973803665471296 0.0370483897916121 0.09288388888202719 +0.7497284109335716 -0.03131167974066575 -0.09497146261808324 +0.1006161161676347 -0.06886951884532809 0.07250509895181856 +0.07104623107030576 -0.06883888000613728 0.07253418917655752 +0.05781188078842985 -0.08515720675343261 0.0524237554735745 +0.04515226240102038 -0.06861545905156512 0.07274557566713588 +0.04360381945476442 -0.096033081084894 0.02788632886097015 +0.0859531207303007 -0.04842585814086597 0.08749249261119908 +0.2185399202676807 0.0776788272544441 0.06297618435864652 +0.2332757351622617 0.05951093497016653 0.08036447361226608 +0.2627900318385171 0.05913527327057477 0.08064130117510782 +0.2490534995843388 0.03884413791112338 0.09214734369444205 +0.2944212330735545 0.05206367682735805 0.08537782824139076 +0.7940352921765834 0.0995536603172795 -0.009437622445919849 +0.1614538096337912 0.03732151905655149 0.09277448040981671 +0.174480721235039 -0.09992381532830827 0.003902708064171277 +0.7522872474382039 0.02769770115573829 0.09608765451756753 +0.8531450606367773 0.09131110214849089 0.04077110035831585 +0.2777414389278518 0.07738392673677057 0.06333820239632734 +0.3246853395512019 0.05883248320288588 0.08086246916946176 +0.1150694879978111 0.09959911741603122 -0.008945155669278683 +0.8384912216981033 -0.06937097427158237 0.07202546722244473 +0.6314186457658006 0.0986485870832377 0.01638463507316738 +0.8089611941975231 -0.06939123187156616 0.07200595072177397 +0.7792668046295212 0.09388435676647028 -0.03443439493509545 +0.7941274052055919 -0.0063990700847085 -0.09979504948669042 +0.7794110047530025 -0.03149633693043596 -0.09491038278273067 +0.7350558836381073 -0.0543721542569079 -0.08392656815015739 +0.7201391884854557 -0.07397848426245118 -0.06728435082714451 +0.7498598473011356 -0.07416771181047511 -0.06707570741183659 +0.1742984646019959 0.08232236240187475 -0.05677172402327059 +0.203892497158875 0.08236973686001703 -0.05670296685017068 +0.1890890356311779 0.06518094969702386 -0.0758382739557939 +0.6908774234700151 -0.09578708017948911 0.02871994552028476 +0.720397073474242 -0.09578607478187845 0.02872329852019767 +0.7351919166100787 -0.08536717986227321 0.05208113480294278 +0.70568702207497 -0.08535191650914058 0.05210614501396835 +0.6911402606609748 -0.06930907803758557 0.07208503105069647 +0.233523062979173 -0.0888537081370829 -0.04588048114710751 +0.1446996998374535 0.09112194689027468 0.04119212054417642 +0.8532529461082343 0.04343269540748482 -0.09007552924985036 +0.3823700598927924 -0.04889486560561279 0.0872312565392077 +0.397093126015194 -0.06934594350225264 0.07204956710336562 +0.4263003124092408 -0.06927404650048953 0.0721186971696523 +0.4117681161827684 -0.0852979922120904 0.05219437253752712 +0.3822996482332752 -0.08534333288972518 0.05212020271711876 +0.4405855508667659 -0.08542761040661233 0.05198195244713363 +0.3967349088267623 -0.0958140471554093 0.02862985098984983 +0.7645472518723978 0.04341667531762989 -0.0900832520747531 +0.7054362796229149 0.08203387912356205 -0.05718778432445877 +0.6759151478005192 0.0820296134304061 -0.05719390282589693 +0.5286209446119414 -0.09996154885503464 0.002772859625463116 +0.5139066329571441 -0.09600821276846543 0.02797182655825453 +0.4844889821856969 -0.09600542276115669 0.02798140097371072 +0.4994322159964278 -0.08586351908117595 0.05125871721957675 +0.5285231261566266 -0.0857115209860598 0.05151247586998932 +0.513809143036262 -0.06982043996296021 0.07158984678974155 +0.4848042881182353 -0.06990830235899126 0.07150405066346842 +0.4697248535966994 -0.09996004334639558 0.002826611785640232 +0.455330974490136 -0.09595766816402136 0.02814473166551002 +0.6317101129198254 -0.07383850087508755 -0.06743794027489049 +0.6760514553309326 -0.08865870988218016 -0.04625616890780526 +0.5726806869181211 0.06482437201186818 -0.0761432911901431 +0.7201400716089706 0.09871094694654156 0.01600465410176237 +0.7496833031170433 0.09870277767122078 0.01605495811223314 +0.7792426678382364 0.09869387921703272 0.01610956874325805 +0.6168437605487275 0.09953893136303588 -0.009591722634898988 +0.587348919453059 0.09953645349481512 -0.009617402231086562 +0.5726285110731911 0.09383524017951035 -0.03456801557008454 +0.5578714177189571 0.09953666500728056 -0.009615212906036496 +0.5431410338089677 0.09383351434135598 -0.03457270001533787 +0.528393029668088 0.09952962321942052 -0.009687832667846284 +0.5136561012017993 0.09383044996251022 -0.03458101588780851 +0.4838732801091822 0.09415627040856282 -0.03368377566054018 +0.4986520687553757 0.08234747808312437 -0.05673528754971946 +0.4690435585830808 0.08275790346049904 -0.05613492152682431 +0.4542187312768707 0.09437730187955819 -0.03305941454313344 +0.4391506291433197 0.08312884865452264 -0.05558412112621258 +0.4250398860597128 0.06558689319638793 -0.07548747870240205 +0.4101784836461408 0.08257071441132198 -0.05640990269096292 +0.5727636905240454 0.09868384891544277 0.01617089865264349 +0.587380365300049 0.08201795133890408 -0.05721062539571792 +0.5579729468057695 -0.006287599357251067 -0.09980213471826491 +0.5727394520317902 -0.0313540433921724 -0.09495748502862622 +0.5431720061532369 0.06482299406525788 -0.07614446427952293 +0.3956356836594934 0.07764582057191823 0.06301687510273325 +0.3827292974397289 0.05958211576058893 0.08031171447237184 +0.4084778606042422 0.05919118294126527 0.08060027209639969 +0.2038223664773965 0.09960588002957887 -0.008869535699975553 +0.6611532548706298 0.06485991890279318 -0.07611301412979973 +0.4695497679337849 -0.006338198648977802 -0.09979893405185297 +0.4843027656994869 -0.03138721958193307 -0.09494652414341201 +0.5137830026033889 -0.03138358494174724 -0.09494772559784746 +0.5432585098382064 -0.03136888387689207 -0.09495258355788989 +0.5285378725221619 -0.05439122095666978 -0.08391421263911572 +0.4990665526051146 -0.05439948919406867 -0.08390885278338875 +0.5284944747586675 -0.006306328017828638 -0.09980095303618874 +0.4548293783478164 -0.03140750886208869 -0.09493981455152428 +0.4253629329424969 -0.03142400667401509 -0.09493435523850918 +0.4695881958071348 -0.05440829272478151 -0.0839031446536689 +0.4401099022051559 -0.05442691570440844 -0.08389106535802976 +0.4107744586873229 -0.09995967701534539 0.002839537108021642 +0.4249808618186163 0.07791382995494439 0.06268520640272321 +0.8384565770016568 0.06490996447374002 -0.07607033923953416 +0.5578913445606931 0.0820163759645073 -0.05721288380818249 +0.5285209726693785 0.08214784097842201 -0.05702396182819894 +0.6759260737716617 0.04342353353895954 -0.09007994635317484 +0.6611471477842898 0.01926320234972971 -0.09812710652634861 +0.3518420549800655 -0.0999576903184764 0.00290863304587736 +0.3371350579102519 -0.09595945625630534 0.02813863456165248 +0.3079120890045516 -0.09596322909563187 0.02812576508362527 +0.3808580601411213 0.09963034461019175 -0.00859036860992796 +0.3661203596244694 0.09420519419237088 -0.03354670456509393 +0.3366892700862085 0.09418163219346906 -0.03361279752377232 +0.351514585357326 0.08258779250005152 -0.05638489629296514 +0.3220126858565896 0.08251639538795305 -0.05648933078182997 +0.5135790949748538 0.0775911230220153 0.06308421060917295 +0.4841010879696515 0.07793707228113556 0.06265630665978529 +0.3219649288738551 0.09962036414024861 -0.008705345976138376 +0.4106047016805047 -0.006381541747038941 -0.09979617189517241 +0.2629219962719023 0.09961314561934609 -0.008787560515806037 +0.2777191696371618 0.09412887384617916 -0.03376025930661804 +0.5587903820647458 -0.04891573380232724 0.08721955621636618 +0.4844138452531954 0.06495282983442839 -0.07603374182887351 +0.5433340534076662 -0.0960144594303402 0.02795037710478262 +0.3667244339538323 -0.0959138286664213 0.02829377087891219 +0.7351512888116912 -0.0887761978045174 -0.04603028028779751 +0.8976506493080573 -0.06934282536062855 0.07205256810832887 +0.9271808797959966 -0.06930154369329176 0.07209227449405915 +0.9414044623132087 -0.0854495951859307 0.05194580524508759 +0.9523301639838256 -0.06891180853345412 0.07246490629710743 +0.9538757399383631 -0.09622039202811507 0.0272329975940191 +0.5433024364734461 -0.07386603076982907 -0.06740778514615849 +0.6171732347686648 -0.09993699299680625 0.003549285950201713 +0.3233400338874338 -0.08537424403559707 0.05206955401528151 +0.7942159934513614 -0.09994005986130867 0.003461854260080685 +0.6759324877252008 -0.006195097754827197 -0.09980791934414891 +0.48438845309249 -0.07389340481400915 -0.06737777619507022 +0.4411331260156831 -0.04888049560690823 0.08723930965581414 +0.3959393768927056 -0.03145393820872903 -0.09492444243271307 +0.4106728270790831 -0.05443014804116911 -0.08388896819139222 +0.307212839016469 0.09415480040028681 -0.03368788449253159 +0.4254773165452158 -0.07391038864121259 -0.06735914526554589 +0.1594757088500332 0.06513683299553084 -0.07587616877065108 +0.21863488146348 0.09409465467954127 -0.03385551595734265 +0.2333847106404385 0.08236129590304579 -0.05671522667829984 +0.2777715003080363 0.06478077739237061 -0.07618038382969811 +0.3368194090128815 0.06480006050878283 -0.0761639820260081 +0.08536402580205399 0.04355457573090331 -0.09001665919651212 +0.07286568681591757 0.06528942627024252 -0.07574490621357034 +0.7939470130514954 0.0598715604897886 0.08009616872558628 +0.3516501884044744 -0.006429298089788583 -0.09979310660598077 +0.6906336965885888 -0.07391290638547539 -0.06735638254576884 +0.1596911578550997 -0.09563064459328609 0.02923661770233698 +0.6464249363453477 -0.00623485850238577 -0.09980544343599315 +0.3665445040781078 -0.07391442660274856 -0.06735471431152311 +0.2794166339861863 -0.02525972008099146 0.09675715240451198 +0.72058684618131 -0.02526149051534748 0.09675669019216712 +0.2206031969728852 -0.02525549533585483 0.09675825523096526 +0.4999006132032613 -0.04893221446970757 0.08721031124294043 +0.3529543425523057 -0.0488965495261218 0.08723031264669134 +0.8088271124860144 -0.02526137798955974 0.09675671957062511 +0.2926185223156465 -0.00649216875166083 -0.09978903619586653 +0.2481759800968622 0.09409911068379974 -0.03384312882282025 +0.1029411764705884 0.02526392191504081 0.09675605536332453 +0.174353400512201 -0.05490449199675415 -0.08357928426696631 +0.08547339437844918 0.08231063476499463 -0.05678872603416684 +0.05563706250660976 0.08228786063921251 -0.05682172112336568 +0.6764705882352946 -0.04888885400611052 0.08723462588885914 +0.6176695093635964 -0.04887735358045615 0.0872410700700712 +0.103937848851758 -0.09774409807550977 -0.02112087335801076 +0.7941191466066 -0.04888783596533245 0.0872351964210934 +0.8676472569532369 -0.02526122736725868 0.09675675889517829 +0.1891107814952558 0.01892719707992807 -0.09819247023421686 +0.05803890249045007 -0.00626696540540487 -0.09980343252918439 +0.3676470588235301 0.02526392191504081 0.09675605536332453 +0.3530232983881414 0.04785712600973324 0.08780487167628295 +0.3088085677329905 0.02525549533584761 0.09675825523096715 +0.808960737177391 -0.09754722605096879 -0.02201223954442611 +0.9246363322405237 0.09871026123165356 0.01600888277109657 +0.1595844468991577 -0.07435836833743249 -0.06686428836228438 +0.8533194798493879 -0.09994159988707607 0.003417105794616013 +0.3676624656980098 -0.06936002848276336 0.07203600800204199 +0.9257197896691109 -0.09749252422180188 -0.02225326315085891 +0.352858138027891 -0.08535197580038328 0.05210604789245474 +0.262881122335502 0.08211310742064956 -0.05707396595405707 +0.2925006673158892 0.08253231047195979 -0.05646607590544997 +0.6316632943890043 0.01924233502486824 -0.09813120065907036 +0.868007465343668 0.0939021655993485 -0.03438580078684418 +0.2185727264298926 0.06515999637136601 -0.07585627774207993 +0.144749271590633 -0.05491340675280354 -0.08357342734865641 +0.925451400207227 -0.02514606084032268 0.09678675335093534 +0.1594779515182713 0.01900743970726591 -0.09817696896815797 +0.1298700699230785 -0.03179084277676646 -0.09481214223686182 +0.8828001492232994 0.08206060652269206 -0.0571494256937715 +0.1446697531603194 -0.006628883603202608 -0.09978004761561898 +0.7058681874317342 -0.04889185580808236 0.08723294352274079 +0.8384936837402841 -0.0975384218214904 -0.02205121920831149 +0.2648347644672129 -0.04882339894995519 0.08727127657467557 +0.8678145646223769 0.06489521618307784 -0.07608292131977842 +0.1741467476999788 0.04349089556870947 -0.09004744306548414 +0.38123486049115 -0.0544337928912272 -0.08388660317044067 +0.1151674254955578 0.09111988460039797 0.0411966822743065 +0.8533244103275242 -0.08868601040724444 -0.04620380458410466 +0.8384788033927497 -0.07410764662952578 -0.06714206364890297 +0.8972186974971381 0.01879758173818563 -0.09821736567835766 +0.8235532592365735 -0.04889131770385829 0.08723324511435072 +0.8529868386893715 -0.0488748903142797 0.08724245008461838 +0.8976430700233426 -0.03124843294988972 -0.09499229146713035 +0.3664960575984036 -0.0314483031018668 -0.09492630948274096 +0.3370076740674928 -0.03145089381521754 -0.09492545116155052 +0.1003660802515165 0.09860857499275029 0.01662374620532759 +0.08616181467761455 0.0996167948287433 -0.008746095588779207 +0.2482007287312107 -0.03175182137108217 -0.09482521731912293 +0.661735320079767 -0.06933189268800262 0.07206308802916574 +0.6323122389934464 -0.06934296329969511 0.07205243535660082 +0.6028821566566508 -0.06935134452501616 0.07204436836125716 +0.543496519663887 -0.06961448098739853 0.07179013885524342 +0.5732934721260688 -0.06946504245398326 0.07193474735387832 +0.9681605200315824 0.06603249664142243 0.07509799855722213 +0.02576691230308493 0.06798640013746142 0.07333382164014765 +0.6906723575894277 0.01928111669983796 -0.09812358808567506 +0.3955023613758566 0.06459465377469269 -0.07633826500338858 +0.749765068518744 0.01922162264841075 -0.09813525983438422 +0.9723889251289501 -0.07893286658462814 -0.06139708928551332 +0.7202113558113173 0.01925244754529021 -0.09812921717570078 +0.971764025799426 0.07821171527140108 -0.06231314142542718 +0.02698354268639098 0.0781999005998152 -0.06232796760828178 +0.02544191805547403 0.02952148618965746 -0.09554308898687475 +0.0515473508113826 0.04337713381728996 -0.09010229887076646 +0.9742164296471714 0.02946345214420972 -0.09556100139568371 +0.9723887975546824 0.0971909377901027 0.02353553932843664 +0.9685284228485403 0.09970400313564176 -0.007688417179624241 +0.9709446618491515 -0.09989391244677716 -0.004605025089575491 +0.03006434580849448 -0.0999308015129276 -0.003719530747805236 +0.05153832954383115 -0.09749279121818281 -0.02225209339562951 +0.2630764581187176 -0.006529850820961372 -0.09978657749545272 +0.3074428018244183 -0.03153730029505915 -0.09489677913448519 +0.7645409746046027 -0.006311837517188325 -0.09980060474344138 +0.2928027670323106 -0.08867603410280263 -0.04622294858399437 +0.8824349575222784 -0.04885066950184615 0.08725601463063391 +0.8827948710881846 -0.006366494755782319 -0.09979713294741788 +0.8827143965207457 0.04329864153545782 -0.09014004460384922 +0.9258965031093197 -0.09582121666229659 0.02860584620942395 +0.2629658022023316 -0.0887996603619079 -0.04598500102870287 +0.8532603153733292 -0.05461324750299504 -0.08376988239920484 +0.4692165026429605 0.09963966512761224 -0.00848157610690938 +0.07405205978155725 0.09414621427810353 -0.03371187234642147 +0.4551974174704408 -0.06937381635479814 0.0720227297758891 +0.9117796369672573 -0.04880345012330112 0.08728243383443464 +0.8828089770347352 -0.05445038343781488 -0.08387583527736064 +0.4703171927487712 -0.08586007687550311 0.05126448282127401 +0.3957061571832213 0.09428246276504867 -0.03332892459947084 +0.4259036581311206 -0.09570652772074775 0.02898724808666291 +0.3807183695031547 0.08214603502922087 -0.05702656336285766 +0.2789440115847684 -0.09585253739598201 0.02850072060057203 +0.4396154544129446 0.09964546548607602 -0.008413156842899961 +0.941176517917598 -0.04872940805418516 0.08732379280979907 +0.2349952864439607 -0.04873989855439753 0.08731793795610979 +0.3366540707292137 0.07794373446133361 0.0626480187892731 +0.07250441195085067 -0.0743543614400629 -0.06686874408002956 +0.9123608405502864 -0.006382046241231929 -0.099796139633629 +0.02919815039072044 0.09967442486347641 -0.008062817630034578 +0.9399744269230424 -0.006020720800887585 -0.09981859005735234 +0.4248271561152975 0.09432901366480065 -0.03319694535685253 +0.1750175853179939 -0.04881832499426321 0.08727411497548684 +0.9414742781105553 -0.09995671299292019 0.00294202781274725 +0.1905751625446908 -0.02496137955012574 0.09683454719755014 +0.1320588115577474 -0.02477206827262131 0.09688314937849921 +0.115658364535018 -0.04897324358316027 0.08718727781588581 +0.426470588235295 0.02428340849165193 0.09700678363922581 +0.07407344674429446 -0.02464746461725288 0.09691492396912493 +0.07342923138322657 -0.09555641589510355 0.0294783205302134 +0.05732885668789788 -0.04862515507365032 0.0873818876773869 +0.02835254395395196 -0.04787961202219765 0.08779261217553461 +0.9701058434498083 -0.04853756353585183 0.08743057203291733 +0.9545730416564759 0.02452613535345731 0.09694569967060887 +0.0514402475992057 0.02607366034514568 0.0965409976963465 +0.06022600929029231 -0.0884673946615627 -0.04662102617698701 +0.6399249111545549 0.02399316643759999 0.09707897797307935 +0.06411446725680439 -0.09986586245361743 0.005177790686689179 +0.9487709089990894 0.07813271539738111 0.06241216856216299 +0.9531859500752193 -0.09749234963982277 -0.0222540279883564 +0.9493472511204915 0.06635980385634088 -0.0748089328365802 +0.9491062860896492 0.01705828534994204 -0.09853433361483678 +0.0458035441525181 0.07816006464776511 0.06237791511630683 +0.07860330159819398 -0.09784572964729096 -0.02064493133408897 +0.9803522084827868 -0.09749279121818234 0.02225209339563156 +0.01959235836282523 -0.09749279121818234 0.02225209339563156 +0.04603711568008912 0.0673572052831283 -0.07391215662153632 +0.9489994251649106 -0.07205842338879603 -0.06933674075640571 +0.04614235978445427 0.01606065466175373 -0.09870185090379963 +0.948552916517075 0.09905529362961774 0.01371308878226253 +0.9770043286338558 -0.06822609995148819 0.07311086981707675 +0.9811154558530613 -0.02947551744109063 -0.09555728057861401 +0.9471872150295213 0.09473808955209198 -0.03201084797408217 +0.01870564969596494 -0.07818314824680306 -0.06234898018587329 +0.02065553715433657 0.09765943563454892 0.02150894305960658 +0.01794663996001775 -0.06801727377709187 0.07330518718298271 +0.9781755757050412 0.02175500220631844 0.09760491728905404 +0.02542763074539088 0.02250295322206635 0.09743519434108752 +0.01771375014051884 -0.02947551744109067 -0.09555728057861401 +0.9763141173635808 -0.02204729538173799 0.09753930882649516 +0.02303970976165702 -0.02183978167437412 0.09758598227417539 +0.0508355758248084 0.09510587375473382 -0.03090101579800627 +0.4396546862947157 0.06617872168124382 0.07496917230859941 +0.412325208046138 0.04022420032230045 0.09155333805182335 +0.7809396966657557 0.04464041110157188 0.08948314755685932 +0.8086295904167685 0.01624751869803366 0.09867126297031496 +0.8380416973098584 0.01621582746316716 0.09867647612113434 +0.8676462777191555 0.04565505222421393 0.08896974882736434 +0.3509281839148257 0.0666021799098899 0.0745932277841002 +0.8968652666950141 0.01611773139716786 0.0986925464997674 +0.1301392465606857 0.04547426965358618 0.08906228606695953 +0.9270353197835751 0.0456472638384956 0.08897374502660194 +0.1650987869146936 0.0166248691324767 0.09860838567955579 +0.1006036907761421 0.04546724555623829 0.08906587214825176 +0.1910096403027605 0.01602129631378938 0.09870824719559029 +0.2184977220061798 0.04549797551639252 0.08905017812396418 +0.07570335356635133 0.04536108512500143 0.089119986289734 +0.2498325238236347 0.01598976503816806 0.09871335985581779 +0.3823529411764713 0.0404170271738389 0.09146837658135826 +0.514533193348345 0.01592568605136737 0.09872371814206191 +0.543944975645444 0.01590877312991265 0.09872644497550274 +0.691003491796719 0.01582048654865528 0.09874063097511489 +0.3235172687750349 0.04018636580847865 0.09156995142025105 +0.7351054013044269 0.06776250321076675 0.07354075848541967 +0.5912538308495628 0.02121862752575693 0.09772292385066665 +0.2751601214638404 0.04455291033045805 0.08952674561876001 +0.6463903414950827 0.0671980233582589 0.07405690823105493 +0.4693410906618556 0.0673909552463748 0.07388138568666068 +0.9496706790641984 0.04449641998026433 0.0895548357652446 +2 3 0 39 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +1 -2.503541930082155e-16 -0.07306820487327914 +1 -0.01150824889312312 0.07280417667649478 +1 0.07123623242397975 0.01625920519091276 +1 -0.07286389135284624 -0.005460393788372082 +1 0.05855994900625908 -0.04917425094414683 +1 0.04969900095266479 0.05356278435360208 +1 -0.04116078541182028 -0.06037178403596809 +1 -0.04875854296352724 0.05132560736237923 +1 0.06944984514603657 0.04009688679024143 +1 0.04665563482725372 0.0275528366322077 +1 0.02297651809823792 0.04235001236537813 +1 0.01985573963200126 0.01447966668228785 +1 -0.003969118687826098 0.02972517116452704 +1 -0.008513706565336083 0.002292220138594796 +1 0.01623453042698919 -0.01410242938413878 +1 -0.01224314338738922 -0.02649510757048446 +1 -0.03450550212999404 0.02144882057249528 +1 0.04871740625483301 -0.003488004852144479 +1 0.01323793920972892 -0.04397369914465722 +1 -0.03369305220905091 -0.008916522986870287 +1 0.03915734447139095 -0.02818109576474569 +1 0.07828726642463173 -0.006766422180493857 +1 0.02831588746977902 0.06799443321897355 +1 -0.03723162283093191 -0.03480413784791668 +1 -0.01683919035646618 -0.0525573204498645 +1 0.02629005051493083 -0.06917579577250926 +1 -0.06136973046791287 -0.04418039696963311 +1 -0.02194967942142288 0.05019951782252414 +1 -0.06724393895343415 0.02559486143473897 +1 -0.0236375297183843 -0.07663098922688143 +1 -0.03418764401364816 0.07135923552761661 +1 -0.05599275549500649 -0.02004242348629351 +1 0.003315594733254228 0.05619567722638206 +1 -0.05341173252383826 0.005654386985016353 +1 0.009750487402022718 0.07935329800422579 +1 0.06813621629229007 -0.02664364452286063 +1 -0.07540677636266056 -0.02851090800560852 +1 0.04694795383579439 -0.06567816069170311 +1 0.03648978553636028 -0.05030998955692086 +3 1 0 538 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402 +1403 +1404 +1405 +1406 +1407 +1408 +1409 +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419 +1420 +1421 +1422 +1423 +1424 +1425 +1426 +1427 +1428 +1429 +1430 +1431 +1432 +1433 +1434 +1435 +1436 +1437 +1438 +1439 +1440 +1441 +1442 +1443 +1444 +1445 +1446 +1447 +1448 +1449 +1450 +1451 +1452 +1453 +1454 +1455 +1456 +1457 +1458 +1459 +1460 +1461 +1462 +1463 +1464 +1465 +1466 +1467 +1468 +1469 +1470 +1471 +1472 +1473 +1474 +1475 +1476 +1477 +1478 +1479 +1480 +1481 +1482 +1483 +1484 +1485 +0.268734849562297 8.678019529639869e-07 2.424041184544146e-05 +0.3687401665273465 3.469446951953614e-18 6.764828177213689e-07 +0.7132177729366423 -1.721067164747042e-05 5.776205234316045e-05 +0.5064582714200779 -5.580027912330254e-06 -6.147645290831803e-06 +0.8454968360563146 5.65459218356823e-05 -2.691232990403858e-05 +0.609574444651921 -1.661898254581851e-06 -8.853883966777887e-06 +0.1533413218253502 -1.231904683002272e-05 -2.046087777082817e-06 +0.9219427229563725 -0.01939383691025429 -0.008696595680282814 +0.07797145070964782 -0.004255908198889047 -0.02164167120828883 +0.4376001690786889 -0.008011534295762228 0.02572006309460388 +0.7793814695249716 -0.01422591480766552 0.02535746621963106 +0.211030723246348 0.02881253820609682 0.01787413356588517 +0.2110464781058128 -0.02173948372900679 -0.0259273219432464 +0.7681683249135164 0.02120444126357036 -0.02857502134857295 +0.4220725252389623 -2.611626058547645e-05 -0.03650835314634296 +0.6617647058823535 -0.0005814005945286146 0.0378661785139183 +0.5580342062526941 -0.02753222054182743 -0.02591531150491637 +0.6611794787726845 -0.002914611459696645 -0.0376680317219478 +0.8971776915532333 0.03410573634478894 0.01609730200334863 +0.5578848714085336 0.03532574806224245 -0.01363764991097196 +0.3187463139547875 -0.006325724685629284 0.03761771812317383 +0.5580176453116135 -0.008521369138748389 0.03670962043835162 +0.3187286071608521 0.004713335298362297 -0.03793645858738472 +0.1029411764705884 -0.000451752497152634 0.03837971120928195 +0.4595128965404829 0.03889524282979027 -0.007292315072507637 +0.8013074300422407 -0.02881028600433828 -0.02855192199975666 +0.2261059685260812 -0.02694427919064726 0.03115725441995459 +0.9431590974011212 0.007815940751619115 0.04170405003947571 +0.8035735709437393 0.03878311397523362 0.01538166553793698 +0.309009594976871 0.04148615003038076 0.006022154071607177 +0.4642573926982453 -0.03701969660635153 -0.01821792453068365 +0.3076152187852595 -0.04212506460356622 -0.006193775793957211 +0.05843555708313716 0.03518365228172823 0.01931097191178937 +0.1115845147823084 0.04104530461183038 -0.005107308717666828 +0.8864318010758006 0.01620246116288059 -0.03848987871775356 +0.8860449981703395 -0.0190780566960637 0.03725107526745427 +0.6507147607929816 0.04171255418282754 -0.001160053679672611 +0.2341387957604846 0.02950281596742642 -0.03398643095243611 +0.40551481853475 0.04238751685148304 0.01151176091537274 +0.114568236782079 -0.04248954567886618 0.000881928213329274 +0.6613862347038606 -0.04469321119953568 0.00142629274746929 +0.7473394638432856 0.04012740222368996 0.02038627025708148 +0.7486788283631677 -0.0418793504786611 -0.01303498968759556 +0.4044601711144856 -0.04397933686857278 -0.004996567605631254 +0.06203039824869644 -0.03684688879791783 0.02238076451015512 +0.9450121244811271 0.02560934646733485 -0.03511186531124386 +0.8738688611132872 -0.03877862002672529 -0.02591525681431658 +0.1812672023921828 0.03812043938356745 -0.02634716266796288 +0.1797748539787944 -0.0457730304722628 0.01089713513280969 +0.1798690211794078 -0.004282581467938851 0.04653872713756389 +0.8205814576289544 0.02812047497730388 -0.03858642487535442 +0.1258623591779811 0.0009728229599732805 -0.04697809614730463 +0.4790592626128262 0.006786356516091668 -0.04593517437749201 +0.8224938637908735 -0.04462707703647815 0.01773032728623708 +0.5283130037215272 0.03652749445647376 0.03226033664799556 +0.3911746510750332 0.00529203334719552 0.04787290619276656 +0.4852941176470599 -0.001988017080359603 0.0488388160043375 +0.5877583753626726 -0.04662116037936297 0.01408531770603676 +0.5283073374024839 -0.04657911403948473 0.01405683221629726 +0.2789696503125934 0.02455763073135018 0.04313608619091011 +0.3516150867302509 -0.03599838770881496 -0.03412207508414088 +0.8237525442012668 0.0026782102445101 0.04762485565086223 +0.7314465573052102 -0.01647744393668913 0.04629688701842054 +0.5889270286845707 0.009448834276771316 -0.04782476549828384 +0.6939026528084232 0.03779912330428898 -0.03106816821183436 +0.2517769138514636 -0.04796508976564125 -0.008297603988705837 +0.7303568306376518 -0.008409918601763674 -0.04818014082516547 +0.2630112019069015 -0.01736610980638262 -0.04788508141483301 +0.04833009961720028 0.03217683440172892 -0.03856484949953327 +0.3540277212414758 -0.04695369053711403 0.01657178241020443 +0.2592452703997306 0.05071982062944183 0.004529542450345628 +0.3512094597032518 0.04240039850608447 -0.02384702912098288 +0.1625512804846506 0.04415604841002103 0.02431996984097432 +0.6955041925132073 0.04188458609078394 0.02548264274420775 +0.3558612329816084 0.04165079109643485 0.02746120835801591 +0.2780149177056676 -0.03594641026352742 0.03422398611803004 +0.6169722056038243 -0.03600321566815077 -0.03593220631695931 +0.5305250122069758 0.0095459078049508 -0.04903210459152302 +0.04851170375672282 -0.04481441066774208 -0.02513842675221958 +0.162813434878746 -0.03275640350798183 -0.0377648634742356 +0.9548404726936063 -0.0529386256336378 -0.007371158504887478 +0.6144801641548404 -0.01669330229997677 0.04787575728733103 +0.5979047533223412 0.04734984991685315 0.01636945682919132 +0.9459121886101159 0.04819353220415774 0.0106322923998485 +0.8511715459877562 0.05033786481049563 0.002442180072025555 +0.374033694297017 0.006093538376214177 -0.05016160722520736 +0.7088363579723462 -0.04899521633942801 0.01604583858851599 +0.50866876543314 0.04877758159149357 -0.01252062540231561 +0.04874935533433607 -7.70665217876334e-05 0.05199864647260616 +0.5100927136758463 -0.03432477884490585 -0.03742159034329975 +0.6979442353016321 -0.04130319063670398 -0.03128480995156242 +0.2822771082770941 0.0370957853303313 -0.03626328129780151 +0.9334678736871137 -0.03932530979038554 0.03422299033281705 +0.1423994580578325 -0.03468342706871247 0.0400569315053062 +0.9520931434459139 -0.02426012515354296 -0.04678501939032011 +0.4547553706129471 0.03472902827680569 0.04073334257998007 +0.4812660235555793 -0.04521709968995869 0.02670742217891111 +0.841210743538001 -0.01356961695375251 -0.05046481767077881 +0.6299190375203313 0.03204368616542386 -0.04233161763511659 +0.4006741347184844 0.04176039630104628 -0.03519897364963754 +0.8600752188461136 0.03145818862355088 0.0439777953265301 +0.1858226137266308 0.002844555460496615 -0.05534050969484762 +0.2352647267039581 0.01254541961006938 0.05430587283816504 +0.4057196570352815 -0.03747115791382208 0.0403177313895572 +0.8975181846885759 -0.05403371551590063 0.01011271099004318 +0.7358994467281487 0.05247156443035566 -0.02181920572658875 +0.6347831599860397 0.0365306248844201 0.04173013286461573 +0.09310099420530685 0.03223750161189939 -0.04552608619039482 +0.9071070320356132 -0.02190130353689514 -0.05167600582002382 +0.9100081605704899 0.05179312627328979 -0.02372696825355097 +0.120214037536608 0.04099953357100938 0.03896573878847967 +0.1017075108026475 -0.03676889072117456 -0.04195498497611769 +0.3944726665666396 -0.03330904552686795 -0.04702676039505619 +0.356999462294322 -0.02198693938712605 0.05266755231793939 +0.1393503677274761 0.04221316487118945 -0.03930237291388224 +0.7542546958145712 -0.04959002657179359 0.02949173760473526 +0.7778950818339492 0.02394992431152644 0.0494497239921077 +0.7729109898541409 -0.01165226898378192 -0.05672261143629933 +0.04736508697858727 -0.01030448814278487 -0.05469258926202186 +0.6905917673731546 -0.03033406117297331 0.05067508192383055 +0.3025681851256061 -0.03363862292283002 -0.04781183351632404 +0.4394092834443714 -0.05532647433088011 0.0188037670785289 +0.7864561424122792 -0.05808047584783331 -0.001063487640783466 +0.6999616237422001 0.01170390422456081 0.05642251070962048 +0.8344887750870277 -0.05496773685553945 -0.02198741987608077 +0.5949963738112485 0.05208683641250741 -0.02734203562729853 +0.7765224753200288 0.05880238509611221 -0.01058770001875797 +0.5212430818319755 -0.02595302182596094 0.05144826600772862 +0.9579576098898457 0.00378989317611223 0.0006373392816911507 +0.6281398418964813 -0.05191293300450342 0.02755269641442667 +0.3192333406294888 0.03441689441527567 0.0456476299724666 +0.219148081984858 0.06001107223655516 -0.009176799448100927 +0.1399959571462194 0.003344547020062053 0.05842717815978062 +0.8476977671631707 -0.03195737487042824 0.04902237785978299 +0.4458286974252125 0.03398684785946528 -0.0477403846109295 +0.4898164115464639 0.05287303871162691 0.02524447406506961 +0.58912987205081 0.0207633669955617 0.05214716961675449 +0.04296973642671647 -0.002410631485835985 0.004011321494047509 +0.9029606252337218 0.01648710433678744 0.05520717391850714 +0.09967262740345441 -0.04224140983881123 0.04010027151526303 +0.2265431324221692 -0.002021473075788547 -0.05942327295723596 +0.1930840634678362 -0.006681432561259849 0.007759672973460688 +0.3176286934627941 -0.04763321867215061 0.03617505818228198 +0.4514388452337091 -0.02262117017501113 -0.05473495472034145 +0.07316784502189151 0.05647737722385669 -0.01426589626629138 +0.8577926258380928 0.04584718302071859 -0.03799605472059753 +0.212507541696921 -0.05913457452119058 -0.00955949309912443 +0.4965845240254999 -0.06062555265964062 -0.008863013029986834 +0.8048318851706577 0.001963414500434111 -0.002057485262335561 +0.6572245446072694 -0.04384878845799868 -0.03952059514132403 +0.3292973496669878 -0.008444283902030884 -0.001277829996927486 +0.6944022987418462 0.007882010735652123 -0.05899281732135411 +0.804125152658 -0.03245994052811852 0.05165222396951127 +0.886233794565375 -0.001857827755913932 0.0002823274450645986 +0.3529411764705888 0.01748931642461843 0.0599898593339787 +0.6270737657493971 -0.004651334197335421 -0.06019932648759305 +0.2875717580111126 -0.009219261133851808 0.06163764324822293 +0.1902111225928458 0.0343190161668475 0.05197411566472911 +0.1489986742675229 -0.06000198267695354 -0.01120967353261611 +0.4558349629559833 -0.03008807376193247 0.05444307028888582 +0.9223514173367089 -0.05280492931483455 -0.03101178023482468 +0.6732575150742871 0.007811361212376444 -0.0002875218739784052 +0.112703327814296 0.000604579009730895 -0.001073549816720996 +0.4303570521575735 -0.05057405892667447 -0.03500934554283734 +0.4662185288383884 -0.000400716918821805 -0.001573032902978108 +0.8581404584503164 -0.06077839411799132 0.009684546813157703 +0.4282851352744925 0.004349042319831744 0.06249349237103972 +0.4085456591815189 0.003920417820476682 0.0009372453394975791 +0.08291163039960316 0.03204358755908181 0.05108571247577859 +0.7526435754688109 -0.003943529471808108 -0.002098239974377782 +0.8170234717642136 0.06007439974763198 -0.01530358427553843 +0.7263832749721135 0.03067219766107749 -0.05353905809137002 +0.2386632294267323 0.04842887589691992 0.03815984884555147 +0.2300556136076936 0.0008100824128928902 -0.0008731165840700321 +0.2362465799850023 -0.04534747721866203 -0.04389506176631773 +0.08773603432770759 -0.004321776147200085 -0.06017050755095957 +0.7384505766900029 0.02184373525110881 0.05465068677803814 +0.288397399440302 0.00857106464140019 -0.06212608315045254 +0.5594943304861065 0.05782030751777437 0.01930157967292922 +0.5301863324571821 0.01090529361302645 0.06214076886523799 +0.5699404783348339 8.129876104468585e-05 -9.671115148108414e-05 +0.5851582937910201 -0.05612930341462165 -0.02411901136358317 +0.1552782650368885 0.06202069130270713 -0.009644484367483917 +0.7668164008522704 -0.01134807651690735 0.06236022520166416 +0.5580195643529845 -0.04783909019658485 0.03998361935854606 +0.5030717417873399 0.03765642224694317 -0.04979608497144083 +0.5358436926236647 -0.05924067549560288 -0.02194956158502612 +0.438561037430377 0.0622347227566528 0.01546460519369801 +0.3194652144508909 0.04273233562641576 -0.0464416881722017 +0.07927809362646407 -0.0608807290174062 -0.004846786389564674 +0.2520340349008132 -0.02271038410772956 0.05877835502441537 +0.5838749099446431 -0.02849129655593968 -0.05504291577893136 +0.3742005561707566 0.06239918072399727 0.0002311695738000889 +0.8083961580939044 0.001634400289339536 -0.06380287068500931 +0.1934055772559949 -0.04044499923141079 0.04662922806576497 +0.5615923211674607 0.03652468351449987 -0.0521589472475372 +0.3427326881428819 -0.01201703767022607 -0.06252098285616672 +0.08972328538505854 0.0577399608899718 0.02207184755385202 +0.8676470588235292 0.0002038364676170469 0.06468944587433938 +0.6199022552412675 -0.06324019508874715 -0.008555151405867378 +0.9286965586479903 0.04360527819634483 0.045037585137041 +0.6525507174055883 -0.03507564046080185 0.05187681955998921 +0.9181809749849643 0.0141229851186263 -0.0605555415349237 +0.2477542834691543 -0.05786153920463704 0.02803621151136409 +0.8234831161807841 0.0405511579286245 0.0475518709079301 +0.0352964224628969 0.03560408609850739 0.04970490226136639 +0.7713076175616266 -0.04658432132566608 -0.04275998297359375 +0.6906274604359401 0.06483253524560226 -0.004482759365767127 +0.2810330030126055 -0.06373898546650712 0.009162786817761118 +0.6654675560937557 0.03209777235443492 -0.05546146206504898 +0.3717455554773886 -0.0609061635352399 -0.01387477715399459 +0.281821228307544 -0.05780048023685415 -0.02824244643181026 +0.03766209230627678 -0.06334330074140523 0.007405412909819187 +0.9158176243046099 -0.01873826658833458 0.060697870498496 +0.7341845516273919 -0.04561897868893568 -0.04732532980236327 +0.4310342340975409 0.05915283409541484 -0.02129631879608611 +0.7892444837061878 0.04725076493872918 -0.04483581245065932 +0.1945073220375799 0.0619823207670329 0.01843698687217403 +0.4168696648099225 0.0388187394377304 0.04854405771630308 +0.85622020657968 0.01817527924034846 -0.06286964105813714 +0.2855306588589384 0.05748272467931446 0.02888960119090647 +0.965583838746087 0.03792278835253626 0.04092158988926645 +0.9236453737639214 0.01797953404787916 -0.00515414966860777 +0.9611095108687173 -0.0236089805955868 0.05792592709162742 +0.5396746132852901 -0.02540083419209991 -0.0583107789773686 +0.9659792256084522 0.05329256474723523 -0.02073588558771474 +0.3374097500960444 0.06473597585277739 0.002099132605471092 +0.9624695716904679 0.00805536164625926 -0.06403800753622488 +0.6384888343969758 -0.0184082014486951 0.01476653240389303 +0.7771444416986691 0.05811527443480977 0.0318380121022165 +0.03690989084670405 0.06193575904781331 5.947830090028642e-05 +0.1941841741323465 -0.0326468529761238 -0.05637936602099741 +0.5808885707620174 -0.02447242272008262 0.06071421304039663 +0.07961314134118681 -0.01876663275758117 0.06069116569389047 +0.204279434514516 0.03446538240451719 -0.05459886523527685 +0.6624773624273484 0.0582863979302274 0.02992863737741745 +0.8836947158649253 0.06649395242523019 0.006047925369110497 +0.2879927493582318 0.06400487907162408 -0.01284988723520296 +0.6690034085143001 0.03152893671998263 0.05436480236360162 +0.4056685331906963 0.01879840613848318 -0.06306372378423811 +0.2543905547250341 0.02078771849120691 -0.06261978910629132 +0.2109887463686857 -0.01320586146029281 0.06357960926232423 +0.6815535032198449 -0.02618740282120882 -0.06009249355928941 +0.432702436650768 -0.02139536709637295 -0.009042217006337498 +0.1579373360863021 0.01153722826613977 -0.03398366744664437 +0.03539133239422098 -0.0354167625704576 0.04927101846242212 +0.5047913036805357 -0.01075441992726944 -0.06435684578724576 +0.2544047439045615 0.05891379608170437 -0.03011352179542525 +0.3358944749775634 -0.06226676334350673 -0.01535564292679533 +0.6219433466441705 0.06364973648294918 -0.005672736155059342 +0.8745136496066087 -0.01297146890426038 -0.06454032186888725 +0.1542699883690095 -0.01129871693498238 -0.06539061497049022 +0.9677052963996734 0.009693398050511517 0.06689630767726649 +0.6640463913054501 0.05809379431594922 -0.03044454660500704 +0.3867919113425412 -0.06175841892445635 0.02119001354358069 +0.2969682892529673 0.0108788196745087 0.01689008252698863 +0.07720237513507633 0.00476429629234646 0.01343169490385212 +0.2939394144194839 -0.01315526167345646 -0.02060830471908108 +0.2505348488668628 0.01890245330580249 0.02334312429681282 +0.6850951324720133 -0.02195208186664849 0.01611338490895875 +0.4789348633134925 0.05822043908552675 -0.03119408279454106 +0.7592604891653637 0.02067835079799934 -0.06311200404090012 +0.6377377201572771 0.006193457773249044 0.06492598934129595 +0.8746161110802911 -0.05621865638128448 0.03907910809810054 +0.5363787108157466 0.05518321140311247 -0.03454716589350358 +0.9641526686913465 -0.0279832314151662 0.01776199083677669 +0.2053421626652348 0.01278352801414208 -0.02278506086350527 +0.9147456003004056 -0.003135891079187894 0.02256664613672541 +0.6773975442756899 -0.05680697496505459 0.03084062622457741 +0.133762970153007 -0.02151236606540106 -0.02053579445560918 +0.7233391415187237 0.06393217318095167 0.009395677102241786 +0.3451618511604407 0.02338475010005091 -0.06146364446579966 +0.1811675897789787 -0.06050847758426884 -0.0258421252286336 +0.7745882869124803 0.01873037348317228 0.01369503626465583 +0.7202782741044782 -0.06297231545401503 -0.01440244276078032 +0.2127336904077291 -0.06115351037700316 0.0256385275248208 +0.5580243729567518 -0.06438767643883053 0.005521021884236815 +0.4786154114039116 -0.04424122677055029 -0.04945243181341798 +0.5381769797168181 1.410971294698221e-06 -0.01578470733645769 +0.733735933757021 0.01762651485519766 -0.02200114536360584 +0.06834832660549489 -0.03901622192376501 -0.05408524472216217 +0.3859859826356974 0.05680713706598221 0.03666308238837268 +0.6871831478790342 -0.06764847112426459 -0.004110409532063269 +0.1298147586617251 0.06373994985602272 0.01422814999456056 +0.3780246934255962 -0.02288059681216621 0.0247499575670514 +0.5662294687887331 0.02385094808066281 0.02559641160416816 +0.1153859089277672 -0.02142924158891714 0.06397819690567257 +0.1554571379993178 0.03496062371152546 0.05755404991954288 +0.4354464838498716 0.02459118833416643 0.01351192377141054 +0.7878103759653091 -0.05693509816609139 0.0334708625628352 +0.1334221622417985 -0.05116498540859869 -0.04109423966691016 +0.9158775362962278 0.06379087191267233 0.01949942158153111 +0.8645691596962848 -0.02671136758597435 0.01109027456035462 +0.3493008899919008 0.005699753942201896 0.03263301958060084 +0.1449105693968568 -0.06482173220333022 0.022954333613331 +0.5600752563410598 0.001867661611285156 -0.06593530071567524 +0.4853197374447532 0.01857135460878918 0.02063650028360395 +0.4989823094506627 0.03046770270998221 0.05091631841847263 +0.5258451283339419 0.06583093395870863 0.0129843231706336 +0.8838495963489862 0.05629168455521567 0.03922083534735492 +0.6388375248921581 0.01188075382778377 -0.01512813966456045 +0.9297924838729315 -0.06570265627557996 0.01245162834506727 +0.4378918827169343 0.006646916337478246 -0.0676558479525276 +0.8544699060082728 -0.002296475162732033 0.03305624747711289 +0.1325206564060045 0.0117390845451694 0.02507661073955898 +0.824592854778187 0.06585304039790854 0.01770066908548122 +0.5252567949114222 0.0005701830903095707 0.02927638395431734 +0.8226908898028875 -0.04243683926433102 -0.05167851405589356 +0.6940632381442127 -0.007117426725351236 -0.02784001451840329 +0.1674147225561931 0.03462062568057393 -0.05756827860939578 +0.4597697388469505 -0.06832811982554807 -0.005335744701030036 +0.03063730937116121 0.004197087289166455 -0.02784782229282358 +0.8788517234547045 0.03710801602920252 -0.01256698573506732 +0.5908845408407307 -0.01743848936441601 -0.02314627002704053 +0.3812979277577967 0.03037485848066908 -0.009427738852995835 +0.2618989043149971 0.01123350040438585 -0.03067516977882179 +0.8346904531745593 0.02585699190897071 0.01912892230613535 +0.3212467729644292 0.008905317711859271 0.06757676382792081 +0.5896113369284045 -0.01389413753382195 0.02434851960280668 +0.971950561892983 -0.06266977611559765 -0.03122292458704278 +0.7343225501881163 -0.02697191644105846 0.01437580534998369 +0.3501258851947365 -0.002813913749965106 -0.02803603714156491 +0.1806965240465113 0.0243111577911929 0.004236825204770159 +0.558046256761488 -0.03019909010366487 0.01031258475246547 +0.1060658761549595 0.06065595418817591 -0.03225238052944445 +0.3260036098443359 -0.0240741816482672 0.06499080675000544 +0.8643754441935391 -0.006515953369049338 -0.02709722989185633 +0.4876146457610778 0.02251677887425894 -0.01707353942340841 +0.7236962512355209 0.05032156992371962 0.04285571561192762 +0.7248126514323624 -0.04932353637459636 0.04551011788518827 +0.3902675916842007 -0.008570974063173168 -0.02449930880790556 +0.9673596233112446 0.04327038407436685 -0.05258213748435248 +0.5997777947624439 -0.04826079623031546 0.04571579606200115 +0.9685942520364905 -0.02331796435539222 -0.01701340927321335 +0.3369560496124539 0.0240700990329627 0.0002134159935934764 +0.9604223501319724 -0.06102025057670105 0.02878255034168602 +0.4892210064979607 -0.03506356063872607 0.05811598045996373 +0.7771873613136646 -0.02622940610615712 -0.005673890201045115 +0.5630784068630548 0.00537346674064463 0.06699836674509088 +0.568878969220855 0.06745218411172818 -0.01192450637420844 +0.7120199294126134 0.03477517039642344 -0.002917134477191431 +0.7210010039428646 0.02000398748830216 0.02589555263521481 +0.1435175471705576 0.03202159146579808 -0.0004458716164833248 +0.2555552689270029 -0.01326215170261768 0.02691077050165061 +0.4605599453443779 0.01314894591573323 0.06585294780437538 +0.2779106349028322 -0.03127339441669755 0.00191308551538561 +0.6710776529365328 -0.009942960203410643 0.0685595119419717 +0.3880346572692354 -0.02327817201970522 0.06473786768090967 +0.1493928530646503 -0.03232361235044034 0.007481768284790398 +0.5099646937818652 -0.05573877476594347 0.04069609520477904 +0.4693189549043507 0.06871166206825814 0.004148161214567642 +0.370972044584159 0.04255870785855715 -0.05120504164817983 +0.4134438754283334 -0.01588861380080605 -0.06805862190703452 +0.7499200077658489 -0.07028161441600063 0.00398048306635415 +0.6611722466786064 0.0003923713065286764 -0.07075216711471416 +0.6139225231712419 0.01240700592808603 0.03097389811972008 +0.02766032707926836 0.04773870598065266 -0.05389752644902925 +0.1806150757047522 -0.009512853097457658 -0.0226212170730713 +0.2984944012681345 0.01863545431282125 -0.01477837510276692 +0.03789945158791002 0.02904599564427379 -0.006503474895051329 +0.642196014894339 -0.02265706704252935 -0.01830062453795345 +0.1874741558897102 0.06843536572958832 -0.01317078097394448 +0.7966520855335183 0.03246501963197705 -0.01626869856999828 +0.2432710553775808 -0.01984870495868879 -0.02219245636615259 +0.7564162470945313 0.04967382841966388 -0.04755197621911644 +0.8030526334199725 -0.06174091856667204 -0.02933435866110694 +0.7953201026966567 0.003206400530001412 -0.03358962311964294 +0.7966367705929565 0.002710300409569533 0.06692390746493904 +0.8552044169810389 -0.04803811331337227 -0.05149722110519039 +0.3171316048068212 -0.06852387112823688 0.01085089861991294 +0.264674174072334 0.01251023434562082 0.06987106676296735 +0.89340950891071 -0.06483535869248971 -0.02076952347947358 +0.111489740632541 0.01996174162255161 0.06334166222728677 +0.5898280470135376 0.0257198655026608 -0.007646354586483797 +0.8272920328493358 -0.02582245305216566 -0.008732701802106974 +0.4244161746265405 0.02697321484396717 -0.0175669016090492 +0.5580359536412612 -0.05387831980978672 -0.0457272604254667 +0.8890107348880896 0.04752974340082718 -0.04902430783994963 +0.8667179180110816 0.02118722434931684 0.01348519385649692 +0.1077824414838488 -0.06446348930511367 -0.02389459296521786 +0.08616929749866889 -0.02535366918946619 0.002669059840883826 +0.4909852783762372 -0.02917783247164498 -0.0004758903007820963 +0.02823611708677342 -0.06704251570498673 -0.0211984086959653 +0.6033731906097358 0.03565100614091293 -0.06123929477951285 +0.7495968572443253 0.004626849376572744 0.02924974073955276 +0.1642651398951264 -0.02775913067012934 0.06401551050032123 +0.06267333752643363 0.01789464913915428 -0.06584482150711402 +0.7228589854401779 -0.02347172569588961 -0.02032977159520952 +0.6304865297197222 0.06523747507263176 0.02611932033974641 +0.2098899438737939 0.0009481040374555647 0.03442362268841594 +0.1261596522200846 -0.02769833735710996 -0.06262059422864948 +0.3990307494683747 -0.06183521759230438 -0.03179569072430537 +0.5294947823490285 0.02706365656180744 0.0007783058316591929 +0.3754143754090851 -0.04839295334096675 0.04849739077197165 +0.9058071196107607 -0.0475401483459201 0.04929533406450265 +0.4250866063200587 -0.02785186261721841 0.06447211498968033 +0.4260165556587407 -0.06826481440494271 -0.007963761201299364 +0.1298550670489897 0.02681469847029366 -0.06636089613597479 +0.3818375216127187 0.02285739452934933 0.02217997161898437 +0.3663546502518971 -0.03478510187891891 -0.06281729986673232 +0.0441786200809948 0.06187538026386968 0.0320957077036184 +0.9371701965112831 0.06752917662877019 -0.0143343201827559 +0.3172060957913486 0.06181838588630979 0.0292969200447983 +0.02878315565844802 -0.03528173229607414 -0.04818952575188981 +0.6132520291512376 -0.03238747938142586 -0.000406041852081384 +0.3182481710189751 0.06557198113308005 -0.02377060780644972 +0.8113803767558341 -0.01527026260739088 0.02414569666380949 +0.3115585353973365 -0.01215408733304132 -0.06976395236006677 +0.6430443152586386 0.01576569273355313 0.01688744734295657 +0.1126310173019621 -0.06620949783618492 0.0227349498912717 +0.08337150203849612 0.02582933353646263 -0.0105555866253659 +0.770417353875147 -0.04262911474514211 0.05629738051697332 +0.9299655387678931 -0.003192118649478319 -0.0357042578386421 +0.2348884061492383 0.03194676948816064 -0.002536756260942359 +0.3272605786918886 -0.0536002963523469 -0.04480973417740059 +0.03135911916402847 -0.03244015755962261 -0.0004563371865139478 +0.0791994207444169 -0.06380117956213105 0.02736531813851163 +0.6502852018187363 -0.06743455814966931 -0.01860806066048261 +0.8522455844488788 0.06036540424398628 0.03278279863685367 +0.5524033345664664 0.03266396711356544 0.05342141610919657 +0.9714029245570504 0.007052562242194099 -0.0291173465461835 +0.5063178112484593 -0.002899235598734543 -0.03198942600225473 +0.4583032445321686 -0.02831610580513071 0.01205468790027031 +0.4519694698995468 0.008785056693335798 -0.02883092747221061 +0.8160006748088826 -0.0695141811808707 -0.0007674348375786731 +0.2210972180602555 0.05769164203483707 -0.04083852709559069 +0.03029879050643998 0.0163788774808156 -0.06238255941647172 +0.2250062989166763 -0.03205977413858949 0.0002149534253142252 +0.8437930284796151 0.02661076350545018 -0.01714153254889857 +0.755458438852884 -0.0166944019100351 -0.03087045565920025 +0.7128221811961444 -0.02939343205144161 -0.06421984491522199 +0.6479030256223094 -0.02818964555601965 -0.06571709162385013 +0.4045945784983362 0.06849311458848464 -0.006476448966112772 +0.8877699608806301 -0.04712872893983056 -0.05330181705628882 +0.9245393160471075 0.04429576397121457 -0.05142019381149925 +0.9322876558228707 -0.01314214584595515 -0.06915694837648181 +0.236524476279955 0.06953222440976814 0.01509712488526313 +0.3758198751183335 -0.03030383709050868 -0.006384190869639292 +0.8385409676634725 -0.06054914156777525 0.03961299113076555 +0.6915255771435114 0.007747657866977449 0.0258905658288617 +0.7976331480329507 -0.02916995156713036 -0.06551612306552136 +0.2074051824620472 -0.05769105085392809 -0.04284072748747947 +0.5496508999616464 -0.02755477187422389 0.0655634445601633 +0.02850952824375329 0.01129498217302594 0.02948488128721639 +0.2659302652817186 -0.04800750558027428 -0.05331098019455024 +0.2976850488419577 -0.03841731250147609 0.05817726658188817 +0.3810490551869578 0.03404102869053799 0.05950124830443308 +0.3035835745655935 -0.01912355890677644 0.01398148700006869 +0.879579657911113 0.06600262985025028 -0.025237972412035 +0.04457223924738523 0.06342079765561112 -0.03128383131259493 +0.8277696156085486 0.0004094210660035094 -0.02585749387237372 +0.09848994834627613 0.0272809648035676 0.02032369847372327 +0.2331905052995343 -0.04748076024999021 0.05395934408155376 +0.7542994681158199 0.06851613102844262 0.009195516293550463 +0.6599048700485955 0.07214231260559045 -0.0008474278023689295 +0.1657261577199343 -0.05536191053130397 0.04463105522820009 +0.1216463393905492 -0.01961376494162243 0.0215464657633044 +0.1006352635526243 0.07223004621718584 -0.003566244089053152 +0.5216933642123918 -0.0261579146056778 -0.009161932142258491 +0.6335491033669229 0.06258571142549359 -0.0362085086205719 +0.5010532526351646 -0.01971050890665138 0.02794750708861641 +0.6494774022528466 -0.07065047471914174 0.0143131812157276 +0.7540512505564293 0.04904186525295565 0.05129901805292442 +0.3235603518692981 -0.02522427603428723 -0.02666146694345536 +0.6205156865957111 0.03264360258376849 -2.525998104620838e-06 +0.06503279056175221 -0.04538196464976518 0.05248730749543555 +0.710323832667882 -0.01480937181304105 0.06920438825661275 +0.7090755884330245 0.06495741972283943 -0.03143749485586701 +0.665297670022733 0.02635243836057625 -0.02448436839136587 +0.8857838460099398 -0.02484786544621089 0.06779290536250533 +0.8268652860452805 -0.01995140736124867 0.06848314274664813 +0.7666070020721089 -0.06918512351629184 -0.02209868715327627 +0.3796978024955871 0.06484670854362712 -0.03070391939709049 +0.6146601962922388 0.001053349002495709 -0.03194904224240018 +0.9307679846824801 0.007328053146128135 0.07092286384341863 +0.7950749119507843 0.07156876590073649 0.01057005752402147 +0.1633039511347731 0.01340211794533471 0.02734562426433316 +0.02617886226075748 0.01276632904644861 0.06604242111754245 +0.8864849533568856 0.02074472072890336 -0.06917710960220802 +0.5600967554416356 0.009961247233086855 -0.03573376043537427 +0.4741502184738641 0.03376138244099691 -0.06079976858081341 +0.862693817196712 -0.06723961446849425 -0.02010135863348116 +0.9727530175082613 0.03229918882416531 0.002702146881270285 +0.3153177846823372 0.02188541004014311 -0.06863520286279387 +0.9716418396630586 0.009669845160136872 0.02838909099127773 +0.5804540163715723 0.05165694105844491 0.04413323368133895 +0.1257889042853288 0.02001498216479435 -0.02268200709030056 +0.5065016735622991 -0.006886110801552338 0.07066596213830634 +0.971944798969784 0.06519479653523597 0.02779223856964814 +0.6954711069848509 0.03834338299987048 -0.061615862926967 +0.4585322601258204 -0.06238940753836621 -0.03528101063029402 +0.7892741248102842 0.02530019464266742 -0.06602103929217024 +0.1434679896204741 0.06061588977650664 0.04155866519922576 +0.3457944090046092 -0.05617229002990133 0.04524302872727445 +0.7997239908586953 0.0124513538817882 0.03095593348385866 +0.07026348623812129 0.05295772007805719 -0.04477203547704745 +0.531985528338081 0.03814379577809941 -0.06006376733489012 +0.4749378565446173 -0.01106467256816532 -0.07022822827235313 +0.1640734457402427 0.06000100700017003 -0.03873950804179195 +0.971422090938282 -0.01992278887171203 -0.06904694305162497 +0.2098580457786789 0.055880903101602 0.04382353024824289 +0.4585541977420319 -0.05857658650143185 0.0428230155267781 +0.8423534341277046 0.01924366843930367 0.06734626036040997 +0.7335539217536265 0.008280401949685001 -0.07325099368196428 +0.5987489719948351 -0.007366010398398196 -0.0714047372022206 +0.2660311511679286 0.05092271224660914 0.05142919797456596 +0.189286160949795 -0.07352892300625143 0.003465585401599344 +0.6402439947793128 0.02230508493194124 -0.06919005185877303 +0.2934686460968839 0.01896878970463322 0.06827427015720711 +0.9292182235777906 -0.04198506321830058 -0.05895983660716535 +0.4132988139519405 -0.02269934062677968 0.01484348389650656 +0.08410971069034986 0.009376340747704832 0.07134875170600666 +0.829929471182196 0.0565516800566678 -0.04233712139181194 +0.04437484974233821 -0.06215049375264333 0.03728245590517672 +0.849897605407783 0.06945026617573286 -0.02089935442242761 +0.2367960992425603 -0.06814932836158358 -0.02452877842203509 +0.8956657214903954 -0.01772053641199773 -0.02384723818410089 +0.340772981797421 -0.02094418358471088 0.02345249993166196 +0.4990066881309401 0.0177564657093801 -0.07197264597402618 +0.5997152098015115 -0.001773431900128074 0.07100572203972064 +0.4626505049094323 0.06281963892947953 0.03345679960457653 +0.7478240122570099 -0.02582073788192222 -0.06543725013873725 +0.6974994043922254 0.04198593817401544 0.05580514433618418 +0.2773507043633319 0.027772664242098 0.003261630493465889 +0.2416525558531357 -0.02663979063470948 -0.06631488391025075 +0.07692640396683782 -0.03436026719071961 -0.02472267729071619 +0.4143715532183932 0.01056565108595645 0.02960162714895651 +0.5285700154316421 -0.0525734446601424 -0.05234788981911967 +0.3676470588235301 -0.003931840380461321 0.07445375207164344 +0.8273816281871815 0.02437831244296504 -0.06740405970188823 +0.3719929832876216 -0.05683000126050214 -0.04346522772436964 +0.6721189651818509 -0.02630490803258841 -0.01997897180278286 +0.06436673765687584 0.06973795577194848 0.01124525812339734 +0.3968962990247094 -0.0738341469509789 -0.004210257064145521 +0.1714549187065681 -0.02003726991158136 0.02293054422306396 +0.5167033413708939 -0.07343300497270371 0.008857565652170081 +0.3841328405387683 -0.01249191600729566 -0.07093506024194142 +0.6803421760312121 0.0369873768536216 3.336231969160467e-05 +$EndNodes +$Elements +1 5995 1 5995 +3 1 4 5995 +1 1054 1084 469 1433 +2 355 1159 1196 1362 +3 1004 1107 160 1292 +4 1015 1068 567 1355 +5 997 1105 894 1189 +6 124 1105 1050 1189 +7 38 160 1107 1292 +8 723 1188 1039 1195 +9 620 1051 1343 1449 +10 1015 567 1125 1355 +11 1024 1103 279 1452 +12 620 1069 1051 1449 +13 1078 1453 1007 1456 +14 355 1159 979 1196 +15 956 1059 999 1110 +16 1193 1363 88 1391 +17 1130 416 1272 1405 +18 621 1051 620 1069 +19 999 1110 1059 1217 +20 1094 1151 392 1463 +21 1025 1340 1035 1369 +22 28 1080 997 1333 +23 563 637 1024 1365 +24 401 320 1023 1138 +25 855 1026 1137 1473 +26 1085 1363 1193 1391 +27 141 38 160 1107 +28 644 1197 1030 1287 +29 1307 1348 85 1391 +30 489 1030 644 1197 +31 855 1228 1026 1473 +32 997 892 1105 1235 +33 980 1348 1307 1391 +34 961 1053 989 1074 +35 894 1105 124 1189 +36 1130 1231 416 1405 +37 252 1125 1039 1188 +38 723 272 1188 1195 +39 1035 1133 1025 1369 +40 966 983 1086 1326 +41 1000 978 1225 1369 +42 792 746 1149 1280 +43 1104 1203 1023 1291 +44 644 1030 489 1287 +45 1078 1168 1007 1453 +46 957 1043 1004 1244 +47 982 1170 1150 1382 +48 1135 1166 438 1229 +49 1051 1069 621 1202 +50 1038 1097 638 1230 +51 1029 1149 746 1280 +52 455 461 1020 1105 +53 1005 1077 494 1147 +54 557 1013 556 1156 +55 1013 1156 557 1159 +56 966 1215 983 1326 +57 982 1057 1170 1382 +58 1000 1112 978 1369 +59 542 1005 494 1147 +60 892 894 997 1105 +61 452 1035 1246 1298 +62 252 1039 723 1188 +63 394 556 557 1013 +64 38 1107 141 1292 +65 966 1086 983 1215 +66 355 979 1159 1317 +67 637 1097 1024 1365 +68 983 1251 1086 1326 +69 1054 1336 1030 1433 +70 1007 1203 1104 1291 +71 371 1152 1177 1253 +72 727 1152 1064 1177 +73 1024 279 1139 1452 +74 611 1034 1277 1301 +75 1010 1131 175 1359 +76 355 1196 979 1317 +77 85 1307 1178 1348 +78 855 1137 390 1473 +79 455 1105 1020 1165 +80 394 1013 557 1159 +81 256 985 1188 1373 +82 1186 1387 1356 1485 +83 1023 1090 342 1156 +84 855 390 1228 1473 +85 401 1138 1023 1400 +86 677 717 1111 1300 +87 256 985 1182 1188 +88 989 1053 961 1227 +89 1025 1212 1035 1340 +90 621 1069 830 1202 +91 256 1182 985 1373 +92 597 416 1231 1405 +93 509 1086 1048 1247 +94 455 1020 423 1165 +95 355 354 1159 1362 +96 956 1026 1085 1259 +97 1017 1098 1008 1411 +98 160 1107 1004 1284 +99 975 1148 1170 1215 +100 401 1023 320 1151 +101 681 1143 1073 1287 +102 1013 1159 394 1463 +103 1086 1251 1048 1326 +104 303 1155 1021 1183 +105 279 1103 1024 1379 +106 431 1185 1174 1350 +107 146 1166 1114 1394 +108 689 690 1019 1174 +109 950 1268 1010 1387 +110 1228 1327 1059 1473 +111 118 175 1010 1131 +112 390 1327 1228 1473 +113 677 1111 1091 1300 +114 623 621 620 1069 +115 657 489 1030 1287 +116 423 455 461 1020 +117 360 1023 342 1156 +118 407 1123 999 1345 +119 392 1151 1094 1223 +120 528 1084 1054 1210 +121 1130 1272 1231 1405 +122 859 760 1028 1108 +123 1010 1268 1207 1387 +124 1002 1083 693 1246 +125 1150 1170 993 1382 +126 254 252 723 1188 +127 1083 1246 1035 1298 +128 146 1114 1003 1394 +129 1048 1086 887 1146 +130 1186 1356 1183 1485 +131 1112 1329 978 1369 +132 612 611 1277 1301 +133 1037 1095 308 1475 +134 950 1207 1268 1387 +135 966 1170 1148 1215 +136 303 1021 539 1183 +137 1044 1095 630 1258 +138 961 1074 989 1221 +139 887 1048 509 1086 +140 975 1148 1031 1170 +141 567 1068 1015 1392 +142 308 1095 1037 1225 +143 727 371 1152 1177 +144 1153 85 1348 1391 +145 146 36 35 1003 +146 608 1182 1373 1446 +147 401 1023 1151 1400 +148 542 1129 1005 1147 +149 146 36 1003 1114 +150 1004 1043 957 1292 +151 638 1230 1097 1365 +152 983 1052 1101 1215 +153 1017 1008 1196 1411 +154 434 1140 1022 1174 +155 1024 1147 563 1365 +156 256 1188 272 1373 +157 407 408 1123 1345 +158 1095 1134 308 1475 +159 1174 1185 431 1353 +160 400 1087 1041 1357 +161 830 1069 1344 1481 +162 957 1112 1004 1370 +163 119 746 1029 1149 +164 955 1101 1052 1215 +165 1047 1082 655 1163 +166 681 658 1073 1143 +167 1025 1133 1035 1212 +168 996 960 1220 1305 +169 956 1066 1026 1259 +170 830 1202 1069 1481 +171 1023 1203 1104 1395 +172 983 1215 1101 1326 +173 612 1277 1063 1301 +174 957 1004 1112 1244 +175 390 1137 1327 1473 +176 757 1027 269 1179 +177 648 1246 1212 1287 +178 1008 1098 1017 1385 +179 995 1373 1182 1446 +180 1013 1159 1015 1293 +181 1037 1225 978 1369 +182 1045 1141 196 1388 +183 982 1150 1170 1360 +184 1022 1140 434 1229 +185 553 539 303 1021 +186 986 1166 1135 1229 +187 257 1049 1088 1182 +188 989 961 1221 1227 +189 1021 1387 1186 1485 +190 999 1199 407 1345 +191 888 1078 1022 1102 +192 567 813 1015 1125 +193 1019 689 1174 1420 +194 757 269 1027 1220 +195 655 1082 1047 1187 +196 269 1179 1027 1220 +197 36 35 1003 1295 +198 1013 1293 1015 1311 +199 401 775 320 1138 +200 197 1045 198 1477 +201 1039 252 1136 1431 +202 355 1159 1156 1317 +203 772 407 1199 1345 +204 457 1126 1002 1246 +205 1035 1275 1133 1369 +206 452 445 443 1246 +207 608 1373 1309 1446 +208 327 1106 1327 1357 +209 1020 1105 461 1235 +210 355 354 816 1159 +211 390 1059 1228 1327 +212 320 1023 360 1151 +213 28 997 894 1189 +214 1010 175 1277 1359 +215 28 892 894 997 +216 997 1080 892 1235 +217 892 997 28 1080 +218 146 883 1114 1166 +219 1173 1349 1031 1436 +220 1045 1167 198 1477 +221 701 1006 632 1132 +222 495 1005 540 1132 +223 908 1148 1200 1422 +224 685 1017 702 1158 +225 1309 1373 995 1446 +226 980 1153 1348 1391 +227 290 1039 252 1136 +228 908 1148 1169 1200 +229 1079 1214 959 1270 +230 757 742 1027 1179 +231 993 1170 1150 1360 +232 1050 1105 895 1448 +233 371 1177 334 1253 +234 408 1055 1123 1345 +235 256 1182 1088 1188 +236 257 1049 261 1088 +237 966 1101 1215 1326 +238 1159 1205 1015 1293 +239 194 196 1141 1388 +240 92 88 1193 1363 +241 400 1041 1242 1357 +242 760 1028 1108 1249 +243 1035 1133 651 1212 +244 638 1038 729 1097 +245 435 1140 434 1174 +246 412 1272 413 1345 +247 423 1020 420 1165 +248 1035 1340 1275 1369 +249 196 1255 1045 1388 +250 47 1010 1124 1131 +251 983 1040 1052 1215 +252 693 1083 1002 1245 +253 999 1055 956 1434 +254 342 1090 1023 1393 +255 1044 1258 630 1449 +256 836 1022 1078 1350 +257 354 816 1159 1362 +258 757 269 742 1179 +259 995 1214 1079 1270 +260 657 1030 1126 1287 +261 1036 1193 880 1425 +262 878 1066 105 1351 +263 407 1199 999 1338 +264 760 859 1028 1249 +265 681 1073 658 1287 +266 274 279 278 1452 +267 434 1140 435 1229 +268 512 693 1002 1245 +269 512 1002 1127 1245 +270 979 1196 1159 1362 +271 1017 1196 685 1317 +272 1036 1116 971 1204 +273 702 1158 1017 1202 +274 494 1077 1005 1280 +275 1003 1114 36 1295 +276 1114 1166 1003 1394 +277 509 575 1086 1247 +278 750 1049 257 1182 +279 586 1120 895 1448 +280 231 229 1143 1331 +281 256 257 1088 1182 +282 854 1116 1036 1153 +283 1036 1085 992 1193 +284 1050 895 1120 1448 +285 844 997 28 1189 +286 691 1019 1136 1299 +287 792 1149 1077 1280 +288 1086 1146 1048 1251 +289 413 1272 1055 1345 +290 279 1103 278 1452 +291 231 1143 1011 1331 +292 971 992 1181 1204 +293 623 1069 620 1449 +294 77 880 1193 1425 +295 1021 1186 1183 1485 +296 1036 1116 854 1459 +297 888 836 1022 1078 +298 320 342 360 1023 +299 657 1030 459 1126 +300 47 118 1010 1131 +301 742 767 1027 1199 +302 611 1222 1034 1301 +303 1001 1070 1237 1354 +304 963 1356 1186 1387 +305 563 1024 281 1129 +306 1036 1181 992 1204 +307 955 1052 1040 1215 +308 1034 1207 1010 1268 +309 1013 1151 556 1156 +310 649 1035 651 1212 +311 575 1148 1086 1247 +312 512 1127 1002 1367 +313 717 1060 1111 1300 +314 915 149 1267 1447 +315 1034 1067 1010 1207 +316 28 27 1080 1333 +317 869 1031 1349 1436 +318 355 1196 354 1362 +319 119 1149 1029 1210 +320 956 1059 1110 1328 +321 1042 1267 149 1447 +322 1039 1125 252 1431 +323 1085 1193 1036 1391 +324 983 1146 1086 1251 +325 1328 1363 1085 1473 +326 208 1118 1074 1164 +327 1059 1217 1110 1328 +328 542 1005 1129 1224 +329 971 992 1087 1181 +330 459 657 489 1030 +331 955 1213 1076 1215 +332 1051 1069 957 1107 +333 118 175 1131 1359 +334 686 1017 685 1317 +335 601 208 1074 1164 +336 630 1095 1044 1483 +337 883 1166 146 1394 +338 586 1050 895 1120 +339 636 630 1258 1449 +340 281 1024 279 1139 +341 971 1087 992 1328 +342 1062 1130 416 1272 +343 608 609 1182 1446 +344 648 1212 647 1287 +345 957 1236 1043 1244 +346 844 28 997 1333 +347 975 1200 1148 1422 +348 518 1145 1116 1348 +349 693 457 512 1002 +350 750 261 257 1049 +351 491 1038 638 1230 +352 1015 1125 813 1188 +353 252 290 723 1039 +354 654 1163 1082 1208 +355 231 1011 1143 1243 +356 691 1136 724 1299 +357 401 320 360 1151 +358 437 438 1229 1380 +359 996 960 1094 1220 +360 975 1169 1148 1200 +361 1028 1040 955 1249 +362 47 1010 118 1414 +363 434 1022 836 1350 +364 971 1116 1036 1459 +365 878 129 105 1066 +366 360 1151 1023 1156 +367 656 1047 655 1163 +368 281 1129 1024 1139 +369 156 880 1036 1193 +370 971 992 1204 1328 +371 1001 1251 1240 1354 +372 563 559 637 1365 +373 651 1133 1035 1208 +374 327 1106 295 1327 +375 327 1242 1106 1357 +376 1030 1336 466 1433 +377 1025 967 1212 1340 +378 942 1028 912 1283 +379 1178 1307 980 1348 +380 453 689 1140 1174 +381 308 1095 1225 1438 +382 246 1033 247 1187 +383 1140 1174 689 1420 +384 1001 1237 346 1386 +385 261 1088 1049 1179 +386 679 1166 1135 1468 +387 278 1103 279 1379 +388 693 1083 444 1246 +389 772 409 407 1345 +390 1002 1126 457 1367 +391 985 1214 1088 1311 +392 956 1055 999 1123 +393 1023 1291 1203 1395 +394 843 1028 859 1249 +395 408 1123 1055 1334 +396 400 1242 366 1357 +397 1012 1099 1227 1256 +398 1067 1010 1207 1387 +399 955 1040 1213 1215 +400 679 438 1135 1166 +401 992 1193 1085 1363 +402 689 453 690 1174 +403 196 1045 197 1141 +404 952 1240 1251 1354 +405 981 1231 1130 1272 +406 439 1135 438 1380 +407 1010 47 1124 1414 +408 118 1010 175 1414 +409 1012 1099 1119 1227 +410 460 1336 1054 1433 +411 494 540 495 1005 +412 1030 1084 1054 1433 +413 420 1130 1020 1231 +414 961 1096 1117 1314 +415 1076 1213 975 1215 +416 952 1322 1240 1354 +417 334 1253 1177 1423 +418 412 1062 1272 1345 +419 813 1015 1188 1472 +420 1006 1132 701 1224 +421 1001 1240 1322 1354 +422 1038 1207 1034 1335 +423 327 296 1106 1242 +424 689 690 691 1019 +425 1043 907 1245 1468 +426 1108 1267 867 1457 +427 957 1112 1236 1244 +428 971 1036 1181 1459 +429 1096 1285 1117 1314 +430 976 1177 1152 1253 +431 1057 993 1170 1382 +432 983 1052 1040 1342 +433 286 1134 297 1324 +434 400 366 1087 1357 +435 495 1005 1132 1280 +436 1174 1185 977 1350 +437 1031 1076 975 1170 +438 400 1041 1087 1234 +439 469 1054 528 1084 +440 978 1329 1037 1369 +441 1059 1123 379 1228 +442 342 1156 1090 1317 +443 695 1174 431 1353 +444 996 974 1089 1142 +445 989 1221 1117 1227 +446 573 1064 1152 1315 +447 1031 1148 966 1170 +448 407 999 1123 1338 +449 420 1231 1020 1440 +450 194 196 197 1141 +451 247 1033 1144 1484 +452 149 1042 867 1267 +453 105 129 76 1066 +454 494 542 540 1005 +455 996 1089 974 1375 +456 297 1134 1129 1324 +457 834 1161 1040 1342 +458 681 1212 1143 1287 +459 705 834 1040 1342 +460 612 181 611 1301 +461 1107 1114 141 1292 +462 589 1168 1078 1453 +463 35 1003 1295 1476 +464 1129 1134 297 1224 +465 757 292 1220 1238 +466 540 1132 1005 1224 +467 956 999 1059 1123 +468 809 1349 1173 1436 +469 423 420 1020 1440 +470 729 1097 1038 1190 +471 1000 978 1091 1225 +472 999 956 1110 1434 +473 378 1059 379 1228 +474 1024 1129 563 1147 +475 979 1017 1098 1465 +476 1168 1185 431 1350 +477 632 1006 701 1483 +478 279 1024 637 1379 +479 955 1040 1028 1213 +480 199 197 198 1477 +481 1085 1328 992 1363 +482 146 1003 35 1476 +483 300 1034 611 1222 +484 971 1181 1036 1204 +485 320 342 1023 1393 +486 1051 1107 957 1343 +487 1059 987 1217 1328 +488 1037 1134 1095 1475 +489 691 1136 1019 1353 +490 1017 1158 685 1196 +491 461 1020 1235 1440 +492 1006 632 1132 1297 +493 156 1036 880 1425 +494 955 1042 1028 1108 +495 648 1035 1212 1246 +496 689 1019 691 1420 +497 459 1030 466 1433 +498 247 1144 728 1484 +499 1112 1004 1370 1408 +500 434 1174 1022 1350 +501 247 1144 1033 1219 +502 573 1064 727 1152 +503 956 1085 1026 1473 +504 494 1005 495 1280 +505 499 1144 498 1362 +506 1010 1063 958 1131 +507 992 1363 1328 1473 +508 237 673 234 1025 +509 52 1086 53 1417 +510 1083 1245 694 1468 +511 247 1033 246 1299 +512 1034 1207 1038 1230 +513 695 431 1185 1353 +514 1060 1111 962 1191 +515 651 1035 649 1208 +516 681 658 645 1287 +517 498 1144 1355 1362 +518 895 1050 124 1105 +519 697 465 1195 1384 +520 757 742 767 1027 +521 1105 1165 455 1448 +522 262 1088 261 1179 +523 347 346 1237 1386 +524 562 1403 1223 1454 +525 961 1117 1096 1221 +526 274 1139 279 1452 +527 282 1129 281 1139 +528 1040 1161 834 1171 +529 639 1073 1143 1331 +530 1015 1125 1068 1355 +531 452 1208 1035 1298 +532 199 198 1167 1477 +533 975 1213 1040 1215 +534 257 256 1088 1188 +535 869 1349 809 1436 +536 639 658 1073 1331 +537 742 1027 1179 1199 +538 983 1101 1052 1240 +539 1018 1263 1039 1471 +540 697 1195 1018 1384 +541 197 1141 1045 1477 +542 970 1282 1136 1306 +543 907 694 1245 1468 +544 1081 1240 1001 1251 +545 690 1019 1174 1353 +546 1117 1221 961 1227 +547 408 410 1055 1345 +548 957 1004 1107 1370 +549 960 996 1089 1305 +550 649 648 1035 1212 +551 686 702 685 1017 +552 423 1020 461 1440 +553 611 183 1222 1301 +554 196 1198 1045 1316 +555 1026 1085 1363 1473 +556 844 997 1189 1333 +557 492 1077 1149 1216 +558 1027 757 1220 1238 +559 512 1002 457 1367 +560 772 1199 407 1338 +561 635 630 1095 1258 +562 992 1085 1036 1204 +563 960 1089 996 1375 +564 600 1237 1100 1386 +565 528 1084 1210 1467 +566 29 894 124 1189 +567 719 717 1060 1111 +568 1024 1097 637 1379 +569 1081 1251 1001 1354 +570 492 1077 1216 1409 +571 783 1386 1100 1418 +572 1038 1230 1207 1479 +573 1042 867 1267 1457 +574 639 1073 658 1143 +575 760 843 859 1249 +576 1052 1101 955 1464 +577 1025 1226 1340 1369 +578 996 1027 1296 1305 +579 1128 1254 1233 1340 +580 308 1095 307 1134 +581 374 1249 1052 1342 +582 612 1063 181 1301 +583 652 654 1082 1208 +584 1060 1191 962 1278 +585 760 1249 1108 1319 +586 242 1082 655 1187 +587 242 655 244 1187 +588 258 1188 1088 1472 +589 553 544 539 1021 +590 630 1044 1297 1483 +591 813 1188 258 1472 +592 1018 1195 1263 1361 +593 783 1081 1386 1418 +594 763 1039 1185 1195 +595 134 887 1086 1146 +596 673 1025 237 1466 +597 1000 978 1112 1371 +598 859 1028 526 1108 +599 1038 1256 1207 1335 +600 1001 346 1237 1372 +601 1025 1226 967 1340 +602 677 363 1091 1111 +603 991 1191 1060 1278 +604 1004 957 1107 1292 +605 996 1220 1027 1305 +606 818 1198 838 1426 +607 1018 1195 1039 1263 +608 1100 1386 1081 1418 +609 691 1019 690 1353 +610 491 1162 1038 1222 +611 77 880 106 1193 +612 1052 1211 352 1342 +613 141 1114 37 1292 +614 1085 1259 1026 1363 +615 308 310 1095 1438 +616 1014 1227 1099 1256 +617 812 1137 1026 1330 +618 1039 1136 763 1353 +619 462 836 434 1022 +620 460 1054 469 1433 +621 719 677 717 1111 +622 429 1018 697 1185 +623 767 1027 1199 1338 +624 719 1111 1060 1339 +625 141 1114 1107 1343 +626 613 1216 614 1277 +627 196 302 1198 1316 +628 352 1052 374 1249 +629 719 1060 364 1339 +630 542 540 1005 1224 +631 1042 1267 1108 1457 +632 717 364 719 1060 +633 657 644 489 1287 +634 266 1179 1122 1472 +635 119 168 746 1149 +636 231 230 1331 1452 +637 985 1121 1214 1311 +638 991 1111 1060 1191 +639 1039 763 1185 1353 +640 309 308 310 1095 +641 973 1285 1070 1322 +642 655 1047 799 1187 +643 614 1216 1067 1277 +644 1356 1387 1109 1485 +645 649 1035 452 1208 +646 231 1331 1011 1452 +647 812 1160 1137 1330 +648 887 509 577 1086 +649 605 1038 491 1162 +650 1016 1055 956 1334 +651 567 565 1068 1392 +652 1212 1246 967 1287 +653 1136 1282 1019 1353 +654 267 266 1122 1472 +655 499 1347 1144 1362 +656 673 1194 1025 1466 +657 956 1026 1066 1473 +658 1091 1111 363 1438 +659 247 1219 1033 1299 +660 350 1052 353 1113 +661 1050 1189 1105 1337 +662 455 468 461 1105 +663 265 1179 1049 1199 +664 1079 1270 1165 1309 +665 246 1033 1187 1299 +666 1016 1259 956 1307 +667 1028 1042 955 1281 +668 347 1237 600 1386 +669 1063 958 1131 1359 +670 995 1270 1079 1309 +671 1014 1119 1099 1227 +672 960 996 1094 1375 +673 539 1021 544 1183 +674 436 434 435 1229 +675 190 1154 1313 1388 +676 794 1075 1132 1297 +677 1106 1220 292 1238 +678 542 494 710 1147 +679 1156 1159 979 1317 +680 355 1156 396 1317 +681 515 516 1058 1116 +682 214 206 1074 1312 +683 1114 1343 1003 1474 +684 601 214 206 1074 +685 1052 1240 1101 1464 +686 960 1088 1214 1311 +687 429 1168 1018 1185 +688 245 246 247 1187 +689 989 1227 1117 1289 +690 52 889 53 1086 +691 888 1102 1022 1394 +692 1051 1003 1343 1474 +693 734 118 175 1414 +694 100 105 1066 1351 +695 1015 1293 1205 1311 +696 644 1073 1197 1287 +697 870 1171 916 1283 +698 1052 1108 955 1249 +699 1112 1244 1004 1408 +700 1028 955 1108 1249 +701 350 1052 1113 1211 +702 1128 1254 1226 1271 +703 706 374 1040 1249 +704 309 1095 310 1438 +705 1019 1174 1140 1420 +706 605 729 1038 1378 +707 767 757 1027 1238 +708 350 352 1052 1211 +709 562 473 1223 1403 +710 746 162 1029 1180 +711 373 1184 1057 1239 +712 977 1185 1174 1353 +713 956 1055 1358 1434 +714 1026 1363 992 1473 +715 958 1063 1010 1268 +716 1128 1226 1254 1340 +717 653 1163 654 1208 +718 966 1086 1048 1326 +719 1108 1319 1052 1464 +720 751 1066 405 1123 +721 600 1100 783 1386 +722 214 1074 1053 1312 +723 1079 1214 995 1373 +724 355 557 1156 1159 +725 1054 1210 1084 1303 +726 1007 1291 1104 1318 +727 265 1049 328 1199 +728 1040 1052 955 1249 +729 1063 1277 1034 1301 +730 1149 1210 119 1294 +731 351 352 1211 1342 +732 290 763 1039 1136 +733 468 461 1105 1235 +734 586 588 1050 1120 +735 988 1176 1149 1207 +736 416 1130 1062 1446 +737 956 1016 1307 1358 +738 812 855 1026 1137 +739 672 669 1194 1475 +740 749 1146 1081 1418 +741 1000 1091 978 1371 +742 1086 1161 53 1417 +743 959 1165 1079 1270 +744 1063 1131 1010 1359 +745 1091 1111 962 1300 +746 601 205 208 1164 +747 980 1116 1036 1204 +748 600 783 598 1386 +749 981 1130 1062 1272 +750 119 746 162 1029 +751 969 1006 1075 1254 +752 567 1015 813 1472 +753 1053 1074 214 1401 +754 429 431 1168 1185 +755 637 281 563 1024 +756 374 1052 352 1342 +757 428 1384 1168 1453 +758 1077 1149 1029 1280 +759 955 1108 1052 1464 +760 234 1025 673 1243 +761 446 693 444 1246 +762 1233 1303 1266 1321 +763 1015 1159 1013 1392 +764 459 489 466 1030 +765 637 559 1097 1365 +766 809 1173 930 1436 +767 653 1163 1208 1298 +768 611 300 610 1034 +769 327 296 295 1106 +770 958 1268 1010 1332 +771 785 1056 838 1198 +772 1060 962 1111 1300 +773 304 1032 305 1366 +774 1050 1120 588 1453 +775 306 308 1134 1475 +776 1110 1217 987 1328 +777 627 1415 1012 1437 +778 650 649 452 1208 +779 589 1453 1078 1456 +780 993 1279 1175 1382 +781 950 1010 1289 1387 +782 190 189 1154 1388 +783 1019 1136 970 1282 +784 767 1238 1027 1338 +785 685 702 323 1158 +786 256 766 1182 1373 +787 1047 1187 962 1278 +788 586 588 1120 1453 +789 956 1328 1085 1473 +790 672 1194 1037 1475 +791 760 368 1249 1319 +792 355 557 396 1156 +793 996 974 1223 1375 +794 427 429 428 1384 +795 196 822 302 1316 +796 100 105 76 1066 +797 632 1297 1006 1483 +798 350 352 353 1052 +799 346 1372 1001 1386 +800 694 1083 693 1245 +801 1033 1187 1047 1278 +802 1207 1256 1038 1479 +803 1043 1166 1114 1292 +804 459 1126 1030 1433 +805 627 1012 1201 1437 +806 374 1040 1249 1342 +807 1000 1225 1194 1369 +808 1104 1203 968 1395 +809 1041 1252 1424 1482 +810 1058 1116 516 1145 +811 256 272 766 1373 +812 769 1199 1049 1257 +813 400 367 366 1242 +814 1017 1385 1098 1465 +815 729 638 491 1038 +816 673 1025 1172 1243 +817 627 1201 1012 1415 +818 959 1214 1079 1361 +819 969 1006 1254 1271 +820 1079 1195 465 1384 +821 1191 1323 1236 1371 +822 300 611 183 1222 +823 648 646 1246 1287 +824 648 452 1035 1246 +825 746 1180 1029 1280 +826 742 481 767 1199 +827 290 763 723 1039 +828 1135 1166 1043 1468 +829 512 1127 536 1245 +830 156 850 1193 1413 +831 1223 1403 996 1454 +832 211 1119 1053 1415 +833 421 1165 420 1309 +834 969 1075 1006 1132 +835 702 323 1158 1202 +836 491 1222 1038 1230 +837 542 299 1129 1147 +838 1016 956 1066 1334 +839 882 1043 1166 1468 +840 1011 1073 1321 1421 +841 156 1181 850 1413 +842 959 1105 1050 1448 +843 648 452 649 1035 +844 300 610 1034 1230 +845 654 655 1082 1163 +846 457 1367 1126 1433 +847 197 196 198 1045 +848 666 226 1157 1407 +849 987 1327 1106 1357 +850 237 1025 234 1444 +851 466 1030 489 1336 +852 673 1172 1025 1194 +853 1128 969 1254 1271 +854 1083 1244 1035 1340 +855 976 1310 1118 1376 +856 1002 1244 1083 1340 +857 769 1199 1257 1345 +858 156 1036 24 1181 +859 408 1055 725 1334 +860 966 1148 1086 1215 +861 892 28 27 1080 +862 281 279 280 1139 +863 206 601 1074 1164 +864 336 1097 729 1190 +865 206 1164 1074 1312 +866 763 762 1039 1195 +867 1191 1236 1112 1371 +868 1231 1272 981 1405 +869 988 1207 1149 1216 +870 1051 1343 957 1474 +871 994 1072 1240 1322 +872 985 1088 1263 1311 +873 956 1259 1085 1307 +874 624 1202 830 1481 +875 1018 1361 1263 1471 +876 1053 1119 211 1312 +877 392 543 556 1151 +878 1007 1206 1291 1318 +879 247 728 1144 1219 +880 975 1076 1031 1432 +881 1041 1252 1080 1424 +882 1162 1222 703 1419 +883 261 1049 265 1179 +884 1116 1153 523 1348 +885 977 1078 1203 1282 +886 637 279 281 1024 +887 305 1184 1032 1462 +888 969 1132 1006 1271 +889 390 837 855 1228 +890 1013 1291 1293 1311 +891 163 1149 119 1294 +892 774 1372 1113 1429 +893 1046 1157 226 1407 +894 1046 1321 1073 1421 +895 758 1113 774 1372 +896 439 438 437 1380 +897 1054 1084 1030 1303 +898 1168 1384 1018 1453 +899 1037 1194 1225 1369 +900 190 1154 189 1313 +901 30 1050 1138 1189 +902 613 611 610 1034 +903 379 1123 1059 1338 +904 749 1081 125 1418 +905 1137 1160 1026 1330 +906 882 1166 679 1468 +907 783 1081 598 1386 +908 305 213 1184 1462 +909 1136 1219 724 1299 +910 916 1171 1213 1283 +911 108 103 1036 1425 +912 635 630 325 1095 +913 1038 1162 605 1378 +914 1242 1403 730 1454 +915 351 374 352 1342 +916 499 787 498 1144 +917 1012 1109 1256 1288 +918 370 327 1327 1357 +919 979 1090 1017 1465 +920 1057 1170 1031 1239 +921 1028 1108 1042 1267 +922 706 1040 374 1342 +923 959 1337 1105 1424 +924 985 1214 1079 1373 +925 993 1175 1150 1382 +926 52 1146 1086 1417 +927 1262 1278 1047 1323 +928 794 1132 1075 1390 +929 276 757 292 1220 +930 1008 1269 1098 1385 +931 727 1177 1064 1410 +932 567 739 813 1125 +933 976 1118 1264 1376 +934 562 730 1403 1454 +935 739 1125 567 1355 +936 1008 1278 1060 1347 +937 306 308 307 1134 +938 266 1122 1179 1389 +939 498 1355 1068 1362 +940 1052 994 1240 1464 +941 538 1043 1245 1292 +942 290 1136 252 1431 +943 624 621 830 1202 +944 672 1037 1194 1225 +945 338 491 638 1230 +946 373 1239 1057 1349 +947 912 1028 810 1283 +948 538 1043 907 1245 +949 94 114 96 1304 +950 118 167 175 1359 +951 370 1327 1137 1357 +952 462 1022 1229 1394 +953 103 108 1036 1391 +954 714 308 388 1225 +955 336 490 729 1097 +956 613 1034 610 1216 +957 244 655 799 1187 +958 679 1135 440 1468 +959 928 940 942 1028 +960 1041 1424 1080 1482 +961 119 1029 162 1467 +962 985 1263 1195 1361 +963 1013 1291 1311 1375 +964 953 1266 1303 1321 +965 1027 1106 996 1296 +966 763 1185 698 1195 +967 1073 1143 1011 1321 +968 784 397 1081 1417 +969 749 125 1146 1418 +970 605 729 491 1038 +971 36 1295 1114 1343 +972 515 517 516 1116 +973 950 1256 1109 1288 +974 1116 1145 980 1348 +975 146 1394 1003 1476 +976 1128 969 1233 1254 +977 1021 1276 553 1470 +978 1016 1066 956 1259 +979 1226 1271 1254 1406 +980 1044 1107 1004 1370 +981 518 1116 523 1348 +982 1114 1166 569 1292 +983 1129 1139 282 1324 +984 608 607 609 1446 +985 729 1190 1038 1378 +986 996 974 1142 1223 +987 948 1293 1291 1311 +988 621 619 1051 1341 +989 560 1223 473 1403 +990 962 1047 1278 1323 +991 774 1113 758 1429 +992 680 1167 1093 1477 +993 1064 1152 976 1177 +994 397 1211 1081 1417 +995 1043 569 1166 1292 +996 996 1142 1089 1482 +997 1033 1262 1019 1269 +998 775 1138 1104 1393 +999 956 1055 1016 1358 +1000 286 298 297 1134 +1001 1120 1018 1384 1453 +1002 1067 1071 1010 1387 +1003 1085 956 1307 1358 +1004 1012 1256 1227 1288 +1005 742 1179 481 1199 +1006 950 1034 1207 1335 +1007 230 1331 1103 1455 +1008 1030 1197 1073 1287 +1009 1015 1159 1068 1205 +1010 96 1178 1307 1397 +1011 695 431 454 1185 +1012 180 1063 1237 1301 +1013 648 647 646 1287 +1014 590 1074 208 1118 +1015 544 1021 553 1470 +1016 356 1119 211 1415 +1017 1017 1090 979 1317 +1018 405 1123 1066 1228 +1019 358 1059 390 1327 +1020 379 1123 405 1228 +1021 686 702 1017 1441 +1022 957 1343 1114 1474 +1023 1027 1220 960 1305 +1024 297 1134 298 1224 +1025 1057 1184 373 1396 +1026 1007 1078 968 1203 +1027 994 1072 1113 1240 +1028 203 1460 1164 1477 +1029 644 1073 263 1197 +1030 160 1284 1004 1435 +1031 967 1246 1212 1340 +1032 712 346 1070 1237 +1033 1011 1321 1143 1427 +1034 972 1035 1083 1275 +1035 1031 993 1170 1349 +1036 1047 1163 656 1380 +1037 99 107 1330 1363 +1038 415 416 1062 1446 +1039 592 1106 1242 1454 +1040 982 1360 1170 1464 +1041 574 1041 400 1234 +1042 180 1237 1070 1301 +1043 342 687 1156 1317 +1044 37 1114 141 1343 +1045 791 1149 1067 1216 +1046 966 1170 1057 1239 +1047 779 1058 516 1145 +1048 1055 1272 1062 1345 +1049 166 1100 1131 1315 +1050 490 638 729 1097 +1051 1028 1249 843 1283 +1052 960 1027 1179 1220 +1053 1103 1331 230 1452 +1054 1115 1236 1191 1323 +1055 509 575 577 1086 +1056 1233 1266 1128 1321 +1057 982 1101 1170 1260 +1058 950 1207 1256 1335 +1059 727 372 371 1177 +1060 1027 996 1106 1220 +1061 1059 1328 956 1473 +1062 681 639 658 1143 +1063 372 1177 727 1410 +1064 1227 1256 950 1288 +1065 1042 1267 932 1281 +1066 621 1051 1202 1341 +1067 119 1210 1029 1467 +1068 462 1022 434 1229 +1069 400 1087 846 1234 +1070 706 705 1040 1342 +1071 611 1034 613 1277 +1072 763 762 723 1039 +1073 520 1150 1175 1382 +1074 29 28 894 1189 +1075 749 784 125 1081 +1076 791 1067 614 1216 +1077 1070 973 1322 1372 +1078 613 1034 1216 1277 +1079 669 1172 1194 1475 +1080 108 1036 1391 1425 +1081 1015 1013 1311 1392 +1082 166 738 1100 1315 +1083 834 707 1040 1171 +1084 560 1142 1223 1403 +1085 834 1161 768 1171 +1086 462 888 1022 1394 +1087 593 1124 1064 1131 +1088 196 198 1045 1198 +1089 567 1068 565 1355 +1090 1175 1279 520 1382 +1091 750 769 1049 1257 +1092 707 1171 870 1283 +1093 30 1138 735 1189 +1094 1007 1206 1203 1291 +1095 1010 1067 1034 1277 +1096 723 1039 762 1195 +1097 972 1083 1035 1298 +1098 1208 1275 1082 1428 +1099 1207 1230 988 1479 +1100 1019 970 1219 1269 +1101 134 887 577 1086 +1102 859 526 760 1108 +1103 1070 1237 346 1372 +1104 1088 1122 960 1179 +1105 672 671 669 1475 +1106 993 1031 1170 1430 +1107 400 1041 367 1242 +1108 691 692 1136 1353 +1109 701 1006 1224 1483 +1110 560 562 473 1223 +1111 680 617 1093 1167 +1112 968 1078 1007 1456 +1113 656 655 654 1163 +1114 712 180 346 1237 +1115 190 191 189 1388 +1116 948 1203 1291 1395 +1117 542 1129 297 1224 +1118 475 1276 1401 1410 +1119 166 1131 1100 1359 +1120 901 1186 1071 1294 +1121 723 762 272 1195 +1122 590 601 208 1074 +1123 1047 1262 1033 1278 +1124 1047 1380 656 1420 +1125 653 833 1163 1298 +1126 493 1077 494 1280 +1127 957 1069 1051 1458 +1128 477 214 1074 1401 +1129 697 1185 1018 1195 +1130 1125 1263 1205 1306 +1131 1164 1460 998 1477 +1132 712 1070 180 1237 +1133 1149 1176 963 1207 +1134 34 1273 1265 1476 +1135 1063 958 1237 1285 +1136 1252 1041 1404 1482 +1137 328 1049 769 1199 +1138 972 1082 1208 1275 +1139 231 1011 1243 1452 +1140 1013 1151 1291 1375 +1141 978 1069 1191 1344 +1142 994 1240 1274 1322 +1143 345 1065 602 1439 +1144 96 1307 1016 1397 +1145 526 867 1108 1267 +1146 858 1169 1148 1436 +1147 328 265 261 1049 +1148 1126 967 1246 1287 +1149 832 360 342 1156 +1150 1057 1170 993 1349 +1151 346 712 1070 1372 +1152 575 376 1148 1247 +1153 359 379 378 1059 +1154 415 1062 416 1272 +1155 180 181 1063 1301 +1156 1036 1193 103 1391 +1157 959 1270 1337 1424 +1158 226 1157 1046 1455 +1159 1089 1142 974 1337 +1160 733 1104 775 1138 +1161 967 1143 1073 1321 +1162 30 1138 1050 1318 +1163 818 785 838 1198 +1164 984 1183 1356 1485 +1165 262 1179 266 1472 +1166 706 374 705 1342 +1167 1091 363 1225 1438 +1168 967 1143 1321 1427 +1169 190 1313 1255 1388 +1170 175 176 1277 1359 +1171 775 1104 733 1393 +1172 1010 1131 958 1332 +1173 774 1072 1372 1429 +1174 241 1428 1250 1445 +1175 928 1028 942 1213 +1176 589 463 1078 1168 +1177 516 1116 518 1145 +1178 462 888 836 1022 +1179 1029 1280 1266 1352 +1180 959 1050 1120 1448 +1181 1185 1306 1039 1353 +1182 1021 1218 553 1276 +1183 1029 1077 1280 1352 +1184 247 246 1219 1299 +1185 363 676 677 1091 +1186 1122 1179 1088 1472 +1187 262 1088 1179 1472 +1188 982 1170 1101 1464 +1189 254 723 272 1188 +1190 676 1091 363 1225 +1191 1070 1313 973 1372 +1192 214 217 1053 1401 +1193 544 1183 1021 1470 +1194 1007 968 1104 1203 +1195 265 481 1179 1199 +1196 707 1040 1171 1283 +1197 993 1170 1076 1430 +1198 515 1116 1058 1320 +1199 175 1010 1277 1414 +1200 408 410 725 1055 +1201 1050 1105 959 1337 +1202 652 653 654 1208 +1203 942 1213 1028 1283 +1204 745 1067 791 1149 +1205 854 1153 1036 1425 +1206 680 1093 1460 1477 +1207 1113 1372 1072 1429 +1208 912 942 940 1028 +1209 30 122 735 1138 +1210 166 1100 748 1359 +1211 686 1017 1317 1441 +1212 989 1289 1117 1332 +1213 652 654 270 1082 +1214 96 1016 1304 1397 +1215 492 1149 791 1216 +1216 749 1081 1146 1417 +1217 813 255 258 1188 +1218 1045 1255 196 1316 +1219 838 1150 1056 1383 +1220 956 1358 1110 1434 +1221 982 1167 1274 1376 +1222 977 1022 1078 1282 +1223 237 1025 1444 1466 +1224 1115 1278 1262 1323 +1225 826 1161 834 1342 +1226 1049 1182 750 1257 +1227 96 111 1178 1397 +1228 596 902 1078 1102 +1229 1044 1370 1004 1408 +1230 525 1148 1031 1436 +1231 633 1075 794 1297 +1232 970 1269 1019 1282 +1233 1055 1123 956 1334 +1234 963 1176 1029 1303 +1235 975 1086 1148 1215 +1236 1313 1322 973 1372 +1237 393 1151 392 1223 +1238 652 1082 270 1208 +1239 480 1159 816 1362 +1240 1088 1182 985 1188 +1241 1031 1239 869 1349 +1242 1172 1226 1037 1406 +1243 1105 1189 997 1337 +1244 1274 1376 1167 1398 +1245 1036 1116 980 1153 +1246 972 1083 1043 1244 +1247 1063 1237 1070 1285 +1248 948 1263 1205 1311 +1249 968 1098 1203 1282 +1250 379 1059 359 1338 +1251 242 1082 1187 1250 +1252 573 1315 1152 1450 +1253 1020 1270 1130 1309 +1254 1152 1315 1009 1450 +1255 285 563 281 1129 +1256 1001 1070 1322 1372 +1257 977 1078 1022 1350 +1258 631 630 1044 1297 +1259 982 1170 1057 1260 +1260 682 651 1133 1212 +1261 388 672 1225 1475 +1262 794 1132 632 1297 +1263 964 1226 1172 1406 +1264 1020 1165 1270 1309 +1265 518 1145 1348 1480 +1266 1032 1184 305 1366 +1267 1254 1271 1006 1406 +1268 608 1309 451 1446 +1269 705 826 834 1342 +1270 300 1034 1222 1230 +1271 957 1114 1107 1292 +1272 959 1105 1270 1424 +1273 1194 1225 1000 1445 +1274 977 1306 1185 1353 +1275 948 1203 1206 1291 +1276 620 1343 1107 1449 +1277 605 385 729 1378 +1278 87 1307 85 1391 +1279 672 1194 668 1225 +1280 859 526 1028 1267 +1281 419 420 1130 1309 +1282 705 834 707 1040 +1283 1007 1018 1206 1453 +1284 1104 1291 1138 1318 +1285 419 421 420 1309 +1286 91 1351 1259 1363 +1287 180 181 178 1063 +1288 679 662 438 1229 +1289 495 540 541 1132 +1290 962 1111 1091 1191 +1291 791 745 614 1067 +1292 1013 1291 1151 1293 +1293 480 1068 566 1159 +1294 400 579 846 1087 +1295 892 522 894 1105 +1296 155 834 768 1171 +1297 1136 1039 1306 1353 +1298 1025 1212 967 1427 +1299 1068 1355 1144 1362 +1300 1259 1351 1026 1363 +1301 621 622 619 1341 +1302 999 1123 1055 1345 +1303 1068 1159 480 1362 +1304 77 1193 103 1425 +1305 460 467 1054 1336 +1306 1164 1439 203 1477 +1307 1043 1114 957 1292 +1308 1285 1322 1096 1354 +1309 955 1213 1028 1281 +1310 1177 1253 976 1423 +1311 1205 1293 948 1311 +1312 440 679 438 1135 +1313 821 394 1159 1463 +1314 980 1204 1036 1391 +1315 378 379 405 1228 +1316 407 1123 379 1338 +1317 1050 1291 1206 1318 +1318 1046 1412 1321 1421 +1319 362 1139 660 1172 +1320 541 701 632 1132 +1321 592 1106 296 1242 +1322 634 631 1044 1297 +1323 1050 588 1318 1453 +1324 1096 1221 1117 1285 +1325 428 1120 1384 1453 +1326 498 1144 787 1355 +1327 660 1172 1139 1243 +1328 1032 1253 304 1462 +1329 1113 1240 1072 1322 +1330 1035 1212 1246 1340 +1331 492 1077 792 1149 +1332 751 1066 1123 1334 +1333 982 1093 1167 1376 +1334 267 1122 266 1389 +1335 988 1149 1077 1216 +1336 1018 1007 1168 1453 +1337 526 1108 1028 1267 +1338 995 1214 1182 1373 +1339 814 567 565 1355 +1340 950 1268 1034 1335 +1341 630 828 631 1044 +1342 963 1029 1210 1303 +1343 627 1201 1157 1437 +1344 996 1403 1242 1454 +1345 1037 1226 1172 1369 +1346 544 553 1276 1470 +1347 646 449 1246 1287 +1348 522 124 894 1105 +1349 460 466 1336 1433 +1350 954 1252 1404 1482 +1351 1043 1083 972 1468 +1352 702 1202 1017 1441 +1353 750 769 328 1049 +1354 1109 1207 1176 1479 +1355 1030 1197 489 1336 +1356 28 126 27 1333 +1357 231 230 229 1331 +1358 844 1189 1142 1333 +1359 978 1258 1069 1344 +1360 1000 1082 1275 1428 +1361 1029 1180 162 1467 +1362 740 697 465 1195 +1363 779 1058 1145 1231 +1364 475 1401 398 1410 +1365 633 169 794 1075 +1366 472 1183 544 1186 +1367 815 602 345 1065 +1368 968 1007 1104 1456 +1369 980 1153 1116 1348 +1370 621 1202 622 1341 +1371 1030 1303 1233 1321 +1372 630 325 1095 1483 +1373 1019 970 1136 1219 +1374 166 738 748 1100 +1375 1073 1331 225 1407 +1376 1205 1263 1015 1311 +1377 1052 1249 368 1319 +1378 178 180 1063 1237 +1379 1068 1125 1015 1205 +1380 1000 1275 1082 1371 +1381 679 438 1166 1229 +1382 389 1057 373 1396 +1383 1046 1073 1321 1412 +1384 1065 1141 602 1439 +1385 1037 1225 672 1475 +1386 703 1162 491 1222 +1387 367 1041 400 1403 +1388 854 523 1116 1153 +1389 99 1351 91 1363 +1390 634 631 828 1044 +1391 1041 1080 997 1482 +1392 544 1186 1183 1470 +1393 985 1263 1121 1311 +1394 567 1392 1015 1472 +1395 961 1014 1209 1377 +1396 961 1209 1014 1227 +1397 1126 1246 449 1287 +1398 413 1055 410 1345 +1399 958 1063 1268 1285 +1400 669 671 1172 1475 +1401 1002 1083 1035 1340 +1402 1043 1245 1083 1468 +1403 608 451 607 1446 +1404 348 1113 758 1372 +1405 989 1074 1053 1401 +1406 348 1113 1372 1386 +1407 989 1288 1227 1289 +1408 1033 1300 1278 1484 +1409 627 626 1415 1437 +1410 972 1083 1244 1275 +1411 729 385 1190 1378 +1412 376 1239 1148 1247 +1413 518 1348 532 1480 +1414 627 478 626 1437 +1415 978 1091 1191 1371 +1416 679 1166 662 1229 +1417 972 1082 1275 1371 +1418 988 1077 1149 1176 +1419 829 656 1380 1420 +1420 1020 1105 959 1165 +1421 680 617 1167 1477 +1422 950 1117 1227 1289 +1423 1100 1237 1001 1386 +1424 1025 967 1226 1427 +1425 1080 1424 997 1482 +1426 1023 1104 968 1395 +1427 1027 960 1179 1305 +1428 680 617 776 1093 +1429 609 1257 1182 1446 +1430 1032 1264 1118 1376 +1431 230 1103 764 1455 +1432 198 1167 1045 1198 +1433 957 1114 1043 1474 +1434 954 1404 1296 1482 +1435 746 173 1180 1280 +1436 99 1330 1026 1363 +1437 677 1091 675 1300 +1438 864 912 810 1283 +1439 892 522 1105 1235 +1440 121 1295 36 1343 +1441 280 282 281 1139 +1442 978 1191 1111 1344 +1443 1157 1201 666 1407 +1444 606 1162 703 1419 +1445 437 1229 1140 1380 +1446 125 1081 784 1418 +1447 821 394 557 1159 +1448 996 1305 1296 1482 +1449 525 858 1148 1436 +1450 916 1171 936 1213 +1451 964 1172 1037 1406 +1452 384 1147 1077 1409 +1453 763 698 762 1195 +1454 1065 1154 192 1388 +1455 103 1193 1036 1425 +1456 746 173 162 1180 +1457 784 1081 749 1417 +1458 1093 1167 776 1325 +1459 843 810 1028 1283 +1460 134 1086 889 1146 +1461 974 1291 1151 1375 +1462 959 1105 1020 1270 +1463 400 366 579 1087 +1464 1010 1268 950 1289 +1465 40 1127 1390 1435 +1466 527 469 1084 1433 +1467 129 76 1066 1374 +1468 975 1031 1169 1432 +1469 304 1253 1032 1366 +1470 713 387 1099 1190 +1471 1142 1337 1089 1482 +1472 1097 1230 1038 1479 +1473 776 1325 1167 1426 +1474 270 1208 1082 1428 +1475 1156 1293 1023 1395 +1476 997 1105 1337 1424 +1477 1019 1262 1022 1282 +1478 668 1225 1194 1445 +1479 457 1126 450 1433 +1480 932 933 1042 1281 +1481 392 1094 294 1223 +1482 34 140 1265 1273 +1483 620 715 1107 1343 +1484 192 1154 1065 1469 +1485 34 140 1273 1476 +1486 828 634 1044 1449 +1487 510 509 1048 1247 +1488 1048 1146 887 1450 +1489 239 1428 241 1445 +1490 348 758 497 1372 +1491 1016 1259 96 1304 +1492 957 1112 1191 1236 +1493 566 1159 1068 1392 +1494 262 261 265 1179 +1495 161 40 1390 1435 +1496 1005 1266 1261 1271 +1497 1019 1140 1022 1262 +1498 168 792 746 1149 +1499 114 1304 94 1374 +1500 510 1048 380 1247 +1501 784 817 397 1417 +1502 217 1053 1218 1415 +1503 1020 1165 959 1270 +1504 510 380 509 1247 +1505 1012 1109 1288 1485 +1506 1244 1275 1035 1340 +1507 122 1138 30 1318 +1508 1115 1346 1232 1474 +1509 1262 1269 1033 1278 +1510 1121 1311 1291 1375 +1511 415 414 1062 1272 +1512 356 211 1119 1312 +1513 977 1185 1168 1350 +1514 990 1222 1162 1419 +1515 948 1291 1121 1311 +1516 1026 1351 99 1363 +1517 1026 1259 1066 1351 +1518 979 1293 1156 1395 +1519 1036 1204 1085 1391 +1520 99 95 107 1363 +1521 367 1242 1041 1403 +1522 955 1076 1213 1281 +1523 968 1241 1098 1282 +1524 1025 1133 1212 1444 +1525 841 656 1163 1380 +1526 525 1031 1148 1239 +1527 24 1181 1036 1459 +1528 387 1099 1378 1451 +1529 639 227 658 1331 +1530 335 1090 171 1273 +1531 682 649 651 1212 +1532 1173 1279 993 1382 +1533 953 1128 1266 1321 +1534 415 416 414 1272 +1535 610 1216 1034 1230 +1536 1033 1019 1262 1299 +1537 500 1349 1057 1382 +1538 346 348 1372 1386 +1539 815 1065 345 1209 +1540 1081 1001 1240 1386 +1541 742 265 481 1179 +1542 501 500 1057 1382 +1543 617 776 1093 1167 +1544 1048 1152 510 1366 +1545 966 1148 1031 1239 +1546 740 465 1079 1195 +1547 1032 1184 1247 1326 +1548 975 1170 1076 1215 +1549 1025 1143 1212 1427 +1550 1155 1183 303 1402 +1551 1074 1177 989 1221 +1552 29 844 28 1189 +1553 949 1019 1269 1282 +1554 1045 1141 973 1398 +1555 1017 979 1196 1317 +1556 1048 1086 966 1247 +1557 1023 968 1104 1393 +1558 842 844 1142 1333 +1559 777 750 1182 1257 +1560 1002 1254 1244 1340 +1561 1173 993 1349 1382 +1562 1018 1168 1007 1471 +1563 794 1075 169 1390 +1564 932 1042 933 1447 +1565 345 1209 1065 1439 +1566 1261 1266 1128 1271 +1567 1098 1385 949 1465 +1568 456 882 679 1468 +1569 1176 1207 988 1479 +1570 1018 1007 1206 1471 +1571 769 772 1199 1345 +1572 289 675 1091 1300 +1573 1019 1219 1033 1269 +1574 1113 1240 1001 1386 +1575 1099 1157 798 1302 +1576 949 1019 1262 1269 +1577 908 1169 157 1200 +1578 1266 1280 1005 1352 +1579 930 1173 926 1436 +1580 1217 1296 1027 1305 +1581 576 1148 858 1169 +1582 99 1026 1330 1351 +1583 463 1168 589 1453 +1584 180 1070 182 1301 +1585 233 234 1243 1444 +1586 1045 1274 1167 1398 +1587 949 1098 1269 1385 +1588 347 179 600 1237 +1589 387 1099 1190 1378 +1590 267 262 266 1472 +1591 605 491 703 1162 +1592 1010 1071 1067 1414 +1593 503 1173 1349 1382 +1594 84 797 81 1348 +1595 146 883 847 1114 +1596 1125 1205 970 1306 +1597 503 1279 1173 1382 +1598 1035 1083 1002 1246 +1599 1172 1226 1025 1369 +1600 376 404 1148 1239 +1601 949 1269 1262 1278 +1602 561 1142 844 1189 +1603 123 1131 1064 1315 +1604 650 1208 452 1298 +1605 684 798 683 1302 +1606 407 409 408 1345 +1607 520 1150 861 1175 +1608 1040 975 1171 1213 +1609 27 845 1080 1333 +1610 845 1234 1080 1333 +1611 393 543 392 1151 +1612 1192 1257 1199 1345 +1613 299 563 1129 1147 +1614 1167 1376 998 1398 +1615 1135 1163 833 1298 +1616 232 171 335 1090 +1617 988 1230 1097 1479 +1618 1099 802 1437 1451 +1619 88 103 1193 1391 +1620 961 1227 1014 1377 +1621 47 1124 593 1131 +1622 257 1088 255 1188 +1623 954 1296 1217 1305 +1624 1121 1291 1206 1337 +1625 475 1276 1218 1401 +1626 412 414 413 1272 +1627 561 842 844 1142 +1628 1029 963 1149 1176 +1629 798 1157 683 1302 +1630 368 353 1052 1319 +1631 289 1091 1250 1300 +1632 769 409 772 1345 +1633 574 1041 1234 1333 +1634 606 1154 1162 1419 +1635 620 715 825 1107 +1636 1027 1192 1199 1217 +1637 941 1171 1200 1432 +1638 429 454 431 1185 +1639 1274 1326 1260 1376 +1640 217 1218 218 1415 +1641 282 285 281 1129 +1642 1151 1291 1023 1293 +1643 1065 1209 815 1451 +1644 806 866 1304 1443 +1645 972 1043 1236 1244 +1646 799 1187 1047 1299 +1647 899 1245 1127 1435 +1648 184 703 1222 1419 +1649 773 614 1067 1277 +1650 163 168 119 1149 +1651 966 1031 1170 1239 +1652 548 1276 1124 1470 +1653 713 337 387 1190 +1654 891 1148 908 1422 +1655 1076 1170 1031 1430 +1656 985 1079 1214 1361 +1657 1232 1346 1003 1474 +1658 970 1125 1068 1205 +1659 957 1107 1069 1370 +1660 1094 1223 1151 1375 +1661 841 829 656 1380 +1662 371 334 333 1253 +1663 85 93 1178 1307 +1664 1034 1222 1268 1301 +1665 956 1123 1066 1334 +1666 575 891 1086 1148 +1667 1125 1039 1263 1306 +1668 761 1341 1202 1441 +1669 936 1171 941 1432 +1670 977 1022 1174 1350 +1671 884 727 573 1064 +1672 684 683 1157 1302 +1673 619 620 621 1051 +1674 869 1031 525 1239 +1675 963 1176 1303 1356 +1676 702 761 1202 1441 +1677 623 830 621 1069 +1678 806 1304 1016 1443 +1679 1008 1158 1017 1196 +1680 948 1291 1293 1395 +1681 990 1268 1222 1301 +1682 1016 1334 806 1443 +1683 1109 1356 963 1387 +1684 50 1418 1315 1450 +1685 403 400 1041 1403 +1686 593 1064 123 1131 +1687 592 1242 730 1454 +1688 1065 1451 815 1469 +1689 1118 1253 976 1264 +1690 861 1175 1150 1383 +1691 655 656 799 1047 +1692 141 160 172 1107 +1693 473 562 730 1403 +1694 574 400 846 1234 +1695 365 1347 1362 1478 +1696 1078 1102 902 1265 +1697 1040 1161 983 1342 +1698 175 1277 773 1414 +1699 999 1199 1192 1217 +1700 1152 1315 1064 1442 +1701 1084 1303 1210 1467 +1702 1259 1304 1016 1374 +1703 1032 1253 1118 1264 +1704 996 1223 1142 1403 +1705 233 1243 1143 1444 +1706 1033 1187 1300 1484 +1707 603 1065 192 1388 +1708 1183 1186 1054 1356 +1709 1076 1430 1031 1432 +1710 1035 1244 1083 1275 +1711 1016 1304 806 1334 +1712 740 1195 1079 1373 +1713 52 889 1086 1146 +1714 888 596 836 1078 +1715 620 1107 825 1449 +1716 1019 949 1262 1282 +1717 983 1161 1040 1215 +1718 1097 1230 988 1365 +1719 908 1148 576 1169 +1720 1015 1205 1125 1263 +1721 1086 1148 966 1247 +1722 878 551 1066 1351 +1723 403 400 574 1041 +1724 993 1031 1173 1349 +1725 234 1025 1243 1444 +1726 779 514 516 1058 +1727 412 1062 414 1272 +1728 292 1106 284 1220 +1729 47 593 48 1131 +1730 972 1208 1163 1298 +1731 40 1127 1286 1390 +1732 636 630 635 1258 +1733 740 1079 721 1373 +1734 891 1086 1148 1422 +1735 1275 1340 951 1369 +1736 1091 1000 1225 1445 +1737 957 1458 1051 1474 +1738 682 651 287 1133 +1739 1068 1159 1015 1392 +1740 335 1090 1273 1441 +1741 911 930 926 1436 +1742 950 1207 1034 1268 +1743 1045 1255 1072 1322 +1744 212 304 1253 1462 +1745 835 735 1138 1189 +1746 990 1063 1070 1285 +1747 992 1137 1026 1473 +1748 666 226 288 1157 +1749 985 1182 1214 1373 +1750 1193 1363 992 1461 +1751 81 85 84 1348 +1752 750 257 260 1182 +1753 855 812 1026 1330 +1754 847 1114 883 1166 +1755 896 854 523 1116 +1756 34 140 33 1265 +1757 977 1174 1022 1282 +1758 1047 1187 1082 1323 +1759 1085 1307 1204 1358 +1760 1061 1102 1003 1241 +1761 1017 1158 1008 1385 +1762 798 1157 1099 1437 +1763 1119 1437 802 1451 +1764 155 1200 1171 1422 +1765 1032 1326 1247 1366 +1766 23 156 880 1425 +1767 423 616 420 1440 +1768 619 170 620 1051 +1769 467 1183 1054 1336 +1770 233 231 229 1143 +1771 171 1273 1090 1393 +1772 798 683 1157 1437 +1773 1019 1219 1136 1299 +1774 960 1214 1121 1311 +1775 255 1088 258 1188 +1776 124 1050 30 1189 +1777 1082 1187 962 1323 +1778 1176 1308 1109 1479 +1779 1037 1095 978 1225 +1780 192 1065 603 1469 +1781 928 940 1028 1281 +1782 1031 993 1173 1430 +1783 1000 1275 1112 1369 +1784 1061 1003 1232 1241 +1785 989 1053 1227 1288 +1786 976 1177 1074 1221 +1787 230 273 764 1103 +1788 606 703 187 1419 +1789 674 289 675 1091 +1790 226 288 1157 1455 +1791 1029 1149 963 1210 +1792 1019 1299 691 1420 +1793 835 1189 1138 1400 +1794 951 1329 1112 1369 +1795 1265 1273 1102 1476 +1796 1278 1300 1060 1484 +1797 94 96 1259 1304 +1798 967 1212 1143 1427 +1799 54 1200 155 1422 +1800 1022 1140 1019 1174 +1801 828 1044 630 1449 +1802 232 171 1090 1393 +1803 570 510 1152 1366 +1804 979 1395 1090 1465 +1805 371 333 1152 1253 +1806 172 1107 160 1284 +1807 1023 968 1393 1395 +1808 1096 1310 1376 1398 +1809 951 1275 1244 1340 +1810 701 1132 541 1224 +1811 569 1114 847 1166 +1812 347 346 179 1237 +1813 276 292 284 1220 +1814 279 637 321 1379 +1815 342 1090 687 1317 +1816 734 47 118 1414 +1817 577 889 134 1086 +1818 899 536 1127 1245 +1819 977 1174 1282 1353 +1820 1251 1264 952 1354 +1821 433 1174 434 1350 +1822 848 156 24 1181 +1823 433 435 434 1174 +1824 1260 1274 1101 1326 +1825 1051 1003 1295 1343 +1826 359 1059 358 1238 +1827 988 1147 1077 1352 +1828 799 246 1187 1299 +1829 975 1161 1040 1171 +1830 459 466 460 1433 +1831 972 1236 1112 1244 +1832 570 1152 333 1253 +1833 1031 1170 1057 1349 +1834 225 1331 226 1407 +1835 644 263 643 1197 +1836 620 1051 170 1343 +1837 31 122 30 1318 +1838 421 423 420 1165 +1839 274 280 279 1139 +1840 868 1066 751 1334 +1841 846 579 584 1087 +1842 966 1247 1184 1326 +1843 161 1390 120 1435 +1844 350 351 352 1211 +1845 980 1085 1204 1391 +1846 1052 1319 994 1464 +1847 1179 1220 269 1389 +1848 869 525 1031 1436 +1849 979 1159 1068 1362 +1850 1026 1137 992 1160 +1851 966 1170 1101 1260 +1852 1078 1168 463 1350 +1853 241 242 1250 1428 +1854 678 830 1344 1481 +1855 125 51 1146 1418 +1856 528 1054 549 1210 +1857 515 513 1058 1440 +1858 573 884 1064 1315 +1859 588 895 586 1050 +1860 972 1035 1208 1298 +1861 540 541 1132 1224 +1862 596 753 902 1102 +1863 906 1054 1183 1186 +1864 670 1172 660 1243 +1865 217 215 1053 1415 +1866 906 1054 467 1183 +1867 491 338 1222 1230 +1868 96 1259 1016 1307 +1869 813 1125 253 1188 +1870 196 302 198 1198 +1871 456 679 440 1468 +1872 1042 1281 933 1368 +1873 1076 1281 955 1360 +1874 964 1134 1129 1224 +1875 1034 1268 1063 1301 +1876 230 273 1103 1452 +1877 352 374 820 1249 +1878 1022 1174 1019 1282 +1879 480 565 566 1068 +1880 960 1088 1049 1214 +1881 331 373 1184 1396 +1882 1244 1254 951 1340 +1883 1102 1273 1061 1476 +1884 1073 1143 967 1287 +1885 682 1133 287 1212 +1886 387 1190 337 1378 +1887 940 1267 1028 1281 +1888 224 666 1201 1407 +1889 695 1185 454 1353 +1890 1085 1204 956 1358 +1891 403 1041 574 1403 +1892 955 1042 1108 1360 +1893 677 675 717 1300 +1894 978 1095 1037 1329 +1895 356 1119 1415 1437 +1896 365 1347 499 1362 +1897 914 931 157 1169 +1898 383 1216 339 1409 +1899 513 1235 1058 1440 +1900 1089 1337 1270 1424 +1901 677 719 363 1111 +1902 846 1087 584 1234 +1903 996 1089 1305 1482 +1904 309 1258 1095 1438 +1905 444 693 694 1083 +1906 1077 1005 1280 1352 +1907 371 333 570 1152 +1908 720 1062 412 1345 +1909 997 1080 1041 1333 +1910 247 246 248 1219 +1911 1108 1249 1052 1319 +1912 170 1051 619 1295 +1913 1044 1095 1006 1483 +1914 1019 1282 1174 1353 +1915 1216 1230 339 1409 +1916 1066 1123 956 1228 +1917 957 1043 1236 1474 +1918 1052 994 1113 1240 +1919 964 1224 1129 1271 +1920 1022 1241 1078 1282 +1921 992 1181 1036 1413 +1922 720 1257 1062 1345 +1923 967 1126 1233 1321 +1924 665 1079 425 1165 +1925 948 1263 1361 1471 +1926 988 1216 1077 1409 +1927 1082 1163 972 1208 +1928 885 50 1315 1450 +1929 406 751 405 1123 +1930 833 1163 1135 1380 +1931 978 1091 1111 1191 +1932 630 1297 629 1483 +1933 622 1202 761 1341 +1934 27 126 845 1333 +1935 1122 1311 1013 1392 +1936 565 566 1068 1392 +1937 362 1139 1172 1324 +1938 1099 1437 1119 1451 +1939 1296 1404 1041 1482 +1940 295 1106 292 1238 +1941 1030 1233 1126 1321 +1942 636 1258 1069 1449 +1943 489 644 643 1197 +1944 1138 1291 1050 1318 +1945 1015 1263 1088 1311 +1946 543 556 1151 1156 +1947 833 1135 439 1380 +1948 1001 1240 1113 1322 +1949 649 647 648 1212 +1950 952 1326 1274 1376 +1951 1009 1264 1251 1354 +1952 399 475 398 1410 +1953 1029 1176 1077 1352 +1954 962 1191 1091 1371 +1955 1035 1246 1002 1340 +1956 1062 1130 981 1290 +1957 801 149 867 1267 +1958 961 1074 1221 1310 +1959 990 1268 1063 1285 +1960 94 1304 1259 1374 +1961 961 1221 1096 1310 +1962 1027 1220 1106 1238 +1963 1057 1239 1031 1349 +1964 880 851 106 1193 +1965 1022 1282 1262 1346 +1966 469 460 467 1054 +1967 214 477 217 1401 +1968 146 847 36 1114 +1969 967 1126 1246 1340 +1970 1025 1212 1143 1444 +1971 157 1169 931 1200 +1972 666 1157 627 1201 +1973 161 120 40 1435 +1974 958 1315 1100 1442 +1975 95 99 91 1363 +1976 291 1144 249 1431 +1977 857 1137 812 1160 +1978 648 646 449 1246 +1979 958 1100 1354 1442 +1980 37 141 159 1343 +1981 1074 1118 590 1423 +1982 1023 1293 1291 1395 +1983 1068 1362 1144 1411 +1984 352 368 353 1052 +1985 989 1401 1276 1410 +1986 976 1152 1064 1442 +1987 705 707 706 1040 +1988 1315 1418 1009 1450 +1989 295 1106 1238 1327 +1990 1082 1250 242 1428 +1991 827 1198 302 1316 +1992 1087 1181 584 1234 +1993 973 1096 1285 1322 +1994 958 1268 1117 1285 +1995 383 610 339 1216 +1996 647 1212 681 1287 +1997 165 1104 32 1265 +1998 1064 1124 593 1410 +1999 1168 1203 1007 1471 +2000 868 1066 1334 1374 +2001 318 1362 1196 1478 +2002 974 1291 1121 1337 +2003 483 1381 488 1429 +2004 1120 1206 1018 1453 +2005 257 255 256 1188 +2006 925 916 1213 1283 +2007 297 542 299 1129 +2008 1090 1156 979 1317 +2009 1132 1266 1180 1280 +2010 1063 1010 1277 1359 +2011 509 376 575 1247 +2012 1049 1088 960 1179 +2013 392 294 393 1223 +2014 551 1228 1066 1351 +2015 488 1381 1316 1429 +2016 691 692 724 1136 +2017 988 1308 1147 1352 +2018 721 740 465 1079 +2019 957 1191 1115 1236 +2020 960 1220 1179 1389 +2021 1072 1255 1045 1316 +2022 706 1040 707 1283 +2023 1262 1282 949 1346 +2024 1143 1212 967 1287 +2025 574 1234 845 1333 +2026 949 1232 1115 1346 +2027 339 1216 610 1230 +2028 1148 1169 1031 1436 +2029 376 375 404 1239 +2030 954 1424 1252 1482 +2031 516 517 518 1116 +2032 995 1130 1270 1309 +2033 368 1052 352 1249 +2034 484 1319 1108 1381 +2035 960 1122 1088 1311 +2036 952 1274 1240 1322 +2037 495 1132 795 1280 +2038 298 1134 628 1224 +2039 552 1330 1026 1351 +2040 402 802 1119 1437 +2041 631 629 630 1297 +2042 756 869 1239 1349 +2043 1044 1258 978 1329 +2044 1250 1428 1000 1445 +2045 1005 1266 1132 1280 +2046 1108 1381 1319 1464 +2047 994 1113 1072 1429 +2048 913 944 803 1173 +2049 510 380 1048 1366 +2050 1010 1034 1268 1277 +2051 710 1147 384 1409 +2052 929 1279 947 1368 +2053 284 1106 592 1454 +2054 260 777 750 1182 +2055 1044 1095 1258 1329 +2056 1034 1222 1038 1335 +2057 706 1249 1040 1283 +2058 1006 1095 1044 1329 +2059 1033 1262 1047 1299 +2060 510 1152 1048 1450 +2061 1010 1071 1289 1387 +2062 912 1028 940 1267 +2063 937 942 912 1283 +2064 358 1059 378 1228 +2065 928 1028 1213 1281 +2066 564 303 1183 1402 +2067 996 1242 1106 1454 +2068 365 499 1347 1478 +2069 1072 1322 1313 1372 +2070 484 1108 485 1381 +2071 1104 1265 165 1273 +2072 1042 955 1281 1360 +2073 570 1152 1253 1366 +2074 1084 1180 969 1266 +2075 493 384 494 1077 +2076 417 1130 416 1446 +2077 773 1277 1067 1414 +2078 1031 1148 975 1169 +2079 1198 1274 1045 1316 +2080 53 1161 1086 1422 +2081 959 1384 1165 1448 +2082 749 125 51 1146 +2083 994 1274 1198 1316 +2084 1144 1347 1008 1362 +2085 1033 1269 1144 1347 +2086 737 1061 1295 1341 +2087 398 1401 1177 1410 +2088 737 1295 618 1341 +2089 518 523 862 1348 +2090 785 838 1056 1383 +2091 1054 1186 549 1210 +2092 990 1070 1063 1301 +2093 1112 1370 1329 1408 +2094 779 1145 788 1231 +2095 1296 1305 954 1482 +2096 1044 1006 1297 1483 +2097 522 895 124 1105 +2098 1040 1161 975 1215 +2099 1159 1392 821 1463 +2100 514 1058 779 1440 +2101 1096 1264 952 1376 +2102 1009 1315 1152 1442 +2103 412 413 410 1345 +2104 1010 1268 1289 1332 +2105 702 761 622 1202 +2106 360 832 1151 1156 +2107 812 863 855 1137 +2108 1019 1033 1219 1299 +2109 802 402 798 1437 +2110 948 1263 1121 1361 +2111 1141 1314 973 1398 +2112 1232 1458 1115 1474 +2113 33 1265 140 1273 +2114 1027 1217 1199 1338 +2115 1050 1206 1120 1453 +2116 673 1172 670 1243 +2117 978 1191 1069 1370 +2118 1198 1316 827 1381 +2119 634 1044 1284 1297 +2120 284 1220 1106 1454 +2121 980 1204 1307 1358 +2122 217 218 215 1415 +2123 892 591 522 1235 +2124 124 30 29 1189 +2125 818 838 782 1426 +2126 995 1062 1192 1290 +2127 1144 1269 1008 1347 +2128 895 1105 507 1448 +2129 145 52 53 1417 +2130 1103 1308 1024 1379 +2131 263 1073 644 1287 +2132 1039 1125 970 1306 +2133 720 411 1257 1345 +2134 411 720 412 1345 +2135 1139 1421 1024 1452 +2136 246 248 1219 1299 +2137 551 550 1228 1351 +2138 638 381 1230 1365 +2139 802 798 1099 1437 +2140 755 186 712 1070 +2141 579 1087 377 1413 +2142 755 186 1070 1313 +2143 492 792 791 1149 +2144 26 144 25 1459 +2145 217 1218 1053 1401 +2146 1081 1146 1009 1418 +2147 982 1056 1198 1426 +2148 420 616 1231 1440 +2149 24 1036 854 1459 +2150 267 266 268 1389 +2151 925 916 936 1213 +2152 1058 1231 779 1440 +2153 1006 1254 1406 1408 +2154 1046 1103 965 1421 +2155 964 1139 1243 1427 +2156 752 1394 146 1476 +2157 628 1224 1134 1483 +2158 997 1337 1142 1482 +2159 1046 965 1248 1421 +2160 987 1087 1328 1364 +2161 26 1320 1234 1459 +2162 992 1036 1193 1413 +2163 998 1376 1310 1398 +2164 673 670 659 1243 +2165 901 547 1071 1186 +2166 933 1042 1368 1447 +2167 1009 1146 1081 1251 +2168 1319 1381 994 1464 +2169 959 1079 1165 1384 +2170 567 813 790 1472 +2171 365 732 499 1478 +2172 1052 1113 994 1429 +2173 1051 1458 1003 1474 +2174 1261 1321 1011 1427 +2175 212 1253 1118 1462 +2176 328 261 750 1049 +2177 1014 1209 1119 1227 +2178 773 340 614 1277 +2179 77 106 103 1193 +2180 593 123 48 1131 +2181 986 1135 1236 1323 +2182 93 96 111 1178 +2183 1160 992 1363 1461 +2184 1149 1207 1067 1216 +2185 1029 1266 1176 1352 +2186 986 1163 1135 1323 +2187 747 370 327 1327 +2188 1068 1125 970 1355 +2189 108 77 103 1425 +2190 225 227 226 1331 +2191 666 224 226 1407 +2192 1053 1074 961 1312 +2193 552 1026 855 1228 +2194 1142 1189 561 1400 +2195 242 1187 243 1250 +2196 969 1233 1254 1367 +2197 1084 1233 1030 1303 +2198 978 1258 1095 1329 +2199 1050 1206 1291 1337 +2200 912 810 1028 1267 +2201 1045 973 1255 1322 +2202 1067 1149 963 1207 +2203 1199 1217 999 1338 +2204 291 1355 1144 1431 +2205 180 712 182 1070 +2206 1024 1308 1147 1365 +2207 983 1101 1251 1326 +2208 289 1091 674 1445 +2209 1052 994 1319 1429 +2210 995 1130 1062 1290 +2211 1084 1266 1233 1303 +2212 1041 1333 574 1403 +2213 1108 1360 1042 1457 +2214 231 1143 233 1243 +2215 678 624 830 1481 +2216 380 1247 1048 1366 +2217 982 1150 1056 1426 +2218 521 861 1150 1383 +2219 134 887 1146 1450 +2220 285 299 563 1129 +2221 1232 1241 1003 1346 +2222 1032 1247 1184 1366 +2223 1004 1107 1044 1284 +2224 964 1134 1037 1475 +2225 952 1264 1096 1354 +2226 1114 1166 1043 1474 +2227 1043 972 1135 1468 +2228 567 361 1392 1472 +2229 1005 1129 1224 1271 +2230 331 389 373 1396 +2231 1041 987 1242 1357 +2232 634 1284 1044 1449 +2233 564 303 539 1183 +2234 1176 1266 1029 1303 +2235 1182 1257 995 1446 +2236 267 268 1122 1389 +2237 988 1077 1176 1352 +2238 1128 1321 1261 1427 +2239 493 792 1077 1280 +2240 998 1439 1164 1477 +2241 96 1178 93 1307 +2242 177 1100 600 1237 +2243 295 292 329 1238 +2244 1099 1256 1012 1416 +2245 1127 1004 1245 1254 +2246 1011 1143 1073 1331 +2247 978 1111 1258 1344 +2248 758 774 497 1372 +2249 1026 1228 552 1351 +2250 799 1047 656 1420 +2251 327 330 296 1242 +2252 569 847 1114 1292 +2253 968 1241 1078 1265 +2254 832 342 687 1156 +2255 573 885 1315 1450 +2256 26 1234 144 1459 +2257 838 1150 782 1426 +2258 953 1266 1176 1303 +2259 859 843 810 1028 +2260 592 296 730 1242 +2261 148 1071 1124 1414 +2262 711 687 342 1090 +2263 965 1308 1103 1379 +2264 217 215 214 1053 +2265 415 414 412 1062 +2266 256 260 257 1182 +2267 1001 1113 1072 1322 +2268 755 1070 712 1372 +2269 721 1309 451 1373 +2270 524 1127 512 1367 +2271 958 1131 1100 1315 +2272 289 1250 1091 1445 +2273 36 121 35 1295 +2274 737 1061 164 1295 +2275 964 1172 1226 1427 +2276 977 1203 1168 1471 +2277 212 213 304 1462 +2278 580 579 377 1413 +2279 1226 1369 1037 1406 +2280 1067 1216 1034 1277 +2281 1056 1360 1108 1457 +2282 1046 984 1407 1412 +2283 265 328 481 1199 +2284 608 451 1309 1373 +2285 226 1331 1046 1407 +2286 601 477 214 1074 +2287 685 1158 317 1196 +2288 569 847 883 1166 +2289 963 1303 1210 1356 +2290 801 915 149 1267 +2291 330 1242 327 1357 +2292 964 1139 1172 1243 +2293 1103 1024 1421 1452 +2294 737 1273 1061 1441 +2295 359 358 341 1238 +2296 51 1146 1418 1450 +2297 1025 1226 1172 1427 +2298 751 868 129 1066 +2299 996 1223 1094 1375 +2300 795 1132 699 1180 +2301 714 388 672 1225 +2302 493 494 495 1280 +2303 584 1087 579 1413 +2304 1114 1295 1003 1343 +2305 964 1037 1172 1475 +2306 34 1265 1102 1476 +2307 1088 1182 1049 1214 +2308 145 53 1161 1417 +2309 100 1066 76 1374 +2310 652 1208 270 1428 +2311 673 669 1172 1194 +2312 973 1322 1045 1398 +2313 555 1223 1142 1400 +2314 1078 1241 1102 1265 +2315 819 1325 776 1426 +2316 755 1313 1070 1372 +2317 670 362 660 1172 +2318 797 1153 81 1348 +2319 1261 1266 1005 1352 +2320 1008 1060 1278 1385 +2321 1012 1256 1109 1416 +2322 1059 1238 359 1338 +2323 515 1058 514 1440 +2324 283 1094 275 1220 +2325 987 1328 1137 1364 +2326 873 1330 552 1351 +2327 1018 1195 1079 1384 +2328 1043 1004 1244 1245 +2329 318 1196 1158 1478 +2330 963 1176 1109 1207 +2331 901 46 1294 1414 +2332 1041 987 1357 1404 +2333 781 1072 780 1316 +2334 1132 1180 795 1280 +2335 1044 978 1258 1370 +2336 560 1142 555 1223 +2337 971 1087 1328 1404 +2338 358 1238 1059 1327 +2339 329 295 1238 1327 +2340 686 761 702 1441 +2341 524 536 512 1127 +2342 962 1278 1115 1323 +2343 906 1183 472 1186 +2344 228 1331 230 1455 +2345 1165 1384 424 1448 +2346 1002 1245 1244 1254 +2347 956 1066 1228 1473 +2348 803 913 1173 1279 +2349 1002 1233 1254 1340 +2350 949 1115 1232 1385 +2351 1232 1385 1115 1458 +2352 1129 1134 964 1324 +2353 263 1197 1073 1407 +2354 753 1102 888 1394 +2355 318 317 1158 1196 +2356 992 1026 1160 1363 +2357 1075 120 1390 1435 +2358 1004 1245 1043 1292 +2359 1002 1254 1233 1367 +2360 1065 1209 1014 1377 +2361 890 1058 1235 1320 +2362 1173 1279 929 1368 +2363 1144 1219 249 1431 +2364 958 1221 1096 1285 +2365 195 1072 781 1255 +2366 1009 1251 1081 1354 +2367 780 781 195 1072 +2368 485 1381 1108 1457 +2369 1106 1242 987 1357 +2370 1115 1278 1191 1458 +2371 962 1060 1278 1300 +2372 506 1382 1325 1426 +2373 1070 1237 1063 1301 +2374 959 1120 1384 1448 +2375 987 1328 1059 1473 +2376 1004 1254 1127 1435 +2377 359 378 358 1059 +2378 1180 1266 1084 1467 +2379 232 1090 342 1393 +2380 962 1323 1191 1371 +2381 890 1058 513 1235 +2382 103 88 108 1391 +2383 785 487 530 1056 +2384 970 1136 1039 1306 +2385 1020 1270 1105 1424 +2386 1428 1445 239 1466 +2387 955 1108 1056 1360 +2388 85 1178 78 1348 +2389 287 1212 1133 1444 +2390 85 78 84 1348 +2391 1079 995 1309 1373 +2392 1134 1271 964 1406 +2393 1137 1160 857 1364 +2394 1006 1132 1075 1297 +2395 968 1265 1078 1456 +2396 1058 1020 1235 1252 +2397 1076 1170 955 1215 +2398 961 1209 1065 1377 +2399 1191 1278 991 1458 +2400 1088 1311 1122 1472 +2401 1001 1100 1081 1354 +2402 855 863 390 1137 +2403 949 1282 1241 1346 +2404 1013 1392 1159 1463 +2405 211 214 1053 1312 +2406 901 1294 1071 1414 +2407 100 1259 1066 1374 +2408 1173 1430 926 1436 +2409 699 1180 1132 1390 +2410 960 1094 1220 1389 +2411 1100 1237 958 1354 +2412 1147 1308 988 1365 +2413 967 1128 1233 1340 +2414 964 1261 1139 1427 +2415 1081 1009 1354 1418 +2416 627 219 1201 1415 +2417 184 1222 1301 1419 +2418 1171 1213 975 1432 +2419 1003 1051 1232 1458 +2420 788 1231 1145 1405 +2421 1081 1354 1100 1418 +2422 408 470 1123 1334 +2423 1024 1097 1308 1365 +2424 389 500 373 1057 +2425 551 129 878 1066 +2426 1075 1254 1006 1408 +2427 1012 1119 1053 1227 +2428 515 513 890 1058 +2429 1192 1270 995 1290 +2430 868 129 1066 1374 +2431 1080 1252 1041 1404 +2432 501 1325 1057 1396 +2433 647 681 645 1287 +2434 799 656 831 1420 +2435 515 514 513 1440 +2436 625 204 1312 1439 +2437 1192 1199 999 1345 +2438 751 1123 406 1334 +2439 501 1057 389 1396 +2440 950 1289 1268 1332 +2441 81 1153 85 1348 +2442 992 1328 1137 1473 +2443 827 302 822 1316 +2444 92 88 103 1193 +2445 228 230 764 1455 +2446 736 1075 633 1284 +2447 606 187 1154 1419 +2448 951 1244 1112 1408 +2449 177 1100 1237 1359 +2450 750 777 769 1257 +2451 203 1439 202 1477 +2452 972 1208 1035 1275 +2453 1001 1372 1113 1386 +2454 853 908 1200 1422 +2455 424 1165 425 1384 +2456 1037 1134 964 1406 +2457 906 467 472 1183 +2458 963 1071 1067 1387 +2459 951 1112 1275 1369 +2460 584 1181 1087 1413 +2461 510 509 887 1048 +2462 935 915 801 1267 +2463 638 1097 559 1365 +2464 802 1099 387 1451 +2465 305 1184 344 1366 +2466 206 205 601 1164 +2467 449 657 1126 1287 +2468 660 1243 1139 1452 +2469 1083 1298 972 1468 +2470 1088 1188 1015 1472 +2471 1281 1360 1076 1368 +2472 1057 982 1325 1382 +2473 982 1274 1260 1376 +2474 653 823 833 1298 +2475 932 933 915 1447 +2476 540 701 541 1224 +2477 92 1160 109 1363 +2478 760 369 368 1319 +2479 891 577 575 1086 +2480 619 1295 1051 1341 +2481 487 530 1056 1457 +2482 755 774 195 1072 +2483 835 561 1189 1400 +2484 1067 1071 963 1294 +2485 670 660 659 1243 +2486 208 205 207 1460 +2487 873 102 1330 1351 +2488 598 1081 397 1386 +2489 981 1058 1252 1290 +2490 335 1273 737 1441 +2491 257 258 255 1088 +2492 1092 1307 1016 1358 +2493 490 1097 336 1379 +2494 698 1185 697 1195 +2495 711 686 1317 1441 +2496 1047 962 1187 1323 +2497 1090 1393 968 1395 +2498 1057 1170 966 1260 +2499 140 164 737 1061 +2500 192 1162 1154 1469 +2501 638 490 559 1097 +2502 1192 995 1270 1305 +2503 665 1079 1165 1309 +2504 242 244 243 1187 +2505 387 1378 386 1451 +2506 755 1072 195 1313 +2507 514 515 516 1058 +2508 1176 1248 1109 1308 +2509 1043 1135 972 1236 +2510 755 774 1072 1372 +2511 854 1036 24 1425 +2512 1100 1354 1009 1418 +2513 356 1119 210 1312 +2514 633 1284 1075 1297 +2515 612 611 613 1277 +2516 515 893 1116 1320 +2517 1079 425 1165 1384 +2518 1003 1241 1102 1346 +2519 1154 973 1313 1388 +2520 420 418 1130 1231 +2521 606 1154 192 1162 +2522 867 486 1108 1457 +2523 592 284 296 1106 +2524 757 276 269 1220 +2525 942 925 1213 1283 +2526 973 1285 1314 1377 +2527 1081 1211 397 1386 +2528 980 1204 1085 1307 +2529 989 1117 1221 1332 +2530 1031 1430 1173 1436 +2531 48 1131 123 1315 +2532 737 164 618 1295 +2533 713 1190 1099 1302 +2534 26 1080 1234 1320 +2535 176 1063 612 1277 +2536 1087 1364 377 1413 +2537 725 1334 1055 1443 +2538 987 1041 1242 1296 +2539 985 1182 1088 1214 +2540 1072 1313 755 1372 +2541 1067 1149 745 1294 +2542 973 1314 1065 1377 +2543 148 1124 47 1414 +2544 1063 1277 176 1359 +2545 799 1299 1047 1420 +2546 343 1184 373 1239 +2547 989 1177 1074 1401 +2548 354 480 816 1362 +2549 969 1254 1127 1367 +2550 687 1090 711 1317 +2551 1037 1194 1172 1475 +2552 816 480 566 1159 +2553 1094 275 1220 1389 +2554 356 210 211 1312 +2555 650 452 823 1298 +2556 969 1180 1084 1286 +2557 1034 1268 1222 1335 +2558 956 1228 1123 1473 +2559 1098 1269 1008 1411 +2560 717 716 778 1060 +2561 1226 951 1340 1369 +2562 961 1119 1227 1312 +2563 965 1256 1099 1416 +2564 1241 1282 1022 1346 +2565 131 97 111 1178 +2566 237 234 236 1444 +2567 706 820 374 1249 +2568 336 729 385 1190 +2569 426 428 1120 1384 +2570 391 1119 1209 1312 +2571 80 1304 804 1397 +2572 1339 1385 1060 1478 +2573 1094 1122 960 1375 +2574 263 1073 225 1407 +2575 845 26 1080 1234 +2576 978 1225 1095 1438 +2577 608 721 451 1373 +2578 711 1317 1090 1441 +2579 373 1057 500 1349 +2580 979 1098 1395 1465 +2581 625 1312 1209 1439 +2582 1192 1217 1027 1305 +2583 1055 1345 1062 1434 +2584 937 912 864 1283 +2585 997 1337 1089 1424 +2586 961 1119 1209 1227 +2587 691 690 692 1353 +2588 677 674 675 1091 +2589 1006 1271 1134 1406 +2590 449 646 657 1287 +2591 1039 1185 1018 1471 +2592 92 104 1160 1461 +2593 961 1310 1096 1314 +2594 543 1151 832 1156 +2595 961 1209 1119 1312 +2596 148 1124 1071 1470 +2597 602 1141 1065 1388 +2598 1098 1306 1205 1395 +2599 275 283 293 1094 +2600 1003 1458 1232 1474 +2601 884 1064 593 1410 +2602 1098 1203 1306 1395 +2603 1057 1184 966 1239 +2604 148 548 1124 1470 +2605 1197 1407 984 1412 +2606 201 203 202 1477 +2607 1227 1288 950 1289 +2608 370 1357 1137 1364 +2609 978 1191 1112 1371 +2610 410 413 725 1055 +2611 552 855 1026 1330 +2612 1056 1198 785 1381 +2613 939 916 852 1171 +2614 1041 1357 1087 1404 +2615 1046 1331 226 1455 +2616 1173 1368 929 1430 +2617 27 845 26 1080 +2618 1064 1131 958 1315 +2619 843 708 810 1283 +2620 975 1213 1076 1432 +2621 395 685 1196 1317 +2622 1028 1267 1042 1281 +2623 1139 1261 1011 1427 +2624 874 78 1178 1348 +2625 1027 1192 1049 1199 +2626 1244 1245 1004 1254 +2627 176 178 612 1063 +2628 1158 1385 1339 1478 +2629 277 821 1392 1463 +2630 506 1150 1382 1426 +2631 970 1098 1282 1306 +2632 413 1055 1272 1443 +2633 583 1364 1160 1461 +2634 965 1103 1046 1455 +2635 1247 1326 1048 1366 +2636 987 1059 1217 1238 +2637 249 1144 728 1219 +2638 962 1115 1191 1323 +2639 515 893 517 1116 +2640 219 1155 220 1201 +2641 1013 1122 1392 1463 +2642 140 164 1061 1476 +2643 1100 1315 738 1418 +2644 1049 1192 1027 1305 +2645 169 633 736 1075 +2646 386 1451 1378 1469 +2647 405 751 551 1066 +2648 952 1101 1274 1326 +2649 1085 1204 992 1328 +2650 1205 1306 1203 1395 +2651 998 1167 1093 1376 +2652 1097 1190 336 1379 +2653 386 479 1451 1469 +2654 407 408 406 1123 +2655 1089 1121 974 1375 +2656 1050 1291 974 1337 +2657 1029 1149 1077 1176 +2658 312 314 313 1111 +2659 954 1217 1192 1305 +2660 127 1084 1286 1367 +2661 520 521 861 1150 +2662 692 763 1136 1353 +2663 1120 1361 959 1384 +2664 1058 1020 1252 1290 +2665 835 735 122 1138 +2666 1079 1309 721 1373 +2667 576 858 796 1169 +2668 1069 1258 1044 1449 +2669 660 235 1243 1452 +2670 1013 1375 1122 1463 +2671 1122 1375 1094 1463 +2672 38 141 37 1292 +2673 1014 1227 1256 1335 +2674 1051 1295 170 1343 +2675 1203 1282 1098 1306 +2676 321 490 336 1379 +2677 366 377 1087 1357 +2678 973 1154 1070 1285 +2679 247 249 728 1219 +2680 307 1134 1095 1483 +2681 558 563 1147 1365 +2682 1061 1441 1273 1465 +2683 969 1180 1132 1266 +2684 598 784 397 1081 +2685 156 848 850 1181 +2686 961 1314 1065 1439 +2687 1214 1270 995 1305 +2688 924 933 1281 1368 +2689 708 843 1249 1283 +2690 1184 1239 344 1247 +2691 92 1193 104 1461 +2692 951 1112 1329 1408 +2693 959 1120 1050 1206 +2694 1029 1084 1266 1467 +2695 486 485 1108 1457 +2696 1184 1247 344 1366 +2697 490 637 559 1097 +2698 542 710 299 1147 +2699 982 1056 1150 1360 +2700 901 116 1186 1294 +2701 1273 1441 1090 1465 +2702 998 1398 1141 1477 +2703 636 828 630 1449 +2704 387 386 479 1451 +2705 982 1056 1360 1464 +2706 571 1152 510 1450 +2707 1064 1315 958 1442 +2708 205 1164 203 1460 +2709 483 1319 1381 1429 +2710 215 211 214 1053 +2711 111 131 1178 1397 +2712 1141 1398 1045 1477 +2713 1079 959 1361 1384 +2714 92 89 88 1363 +2715 783 784 598 1081 +2716 1134 1224 964 1271 +2717 1087 987 1357 1364 +2718 405 1066 551 1228 +2719 716 1060 717 1300 +2720 961 1065 1209 1439 +2721 1091 1225 676 1445 +2722 1031 1430 1169 1432 +2723 1041 997 1333 1482 +2724 936 941 921 1432 +2725 356 1415 626 1437 +2726 1008 1060 1385 1478 +2727 833 439 447 1380 +2728 135 1235 1080 1320 +2729 1008 1362 1347 1478 +2730 1061 1273 140 1476 +2731 955 1170 1360 1464 +2732 808 930 911 1436 +2733 994 1381 1198 1464 +2734 344 1184 343 1239 +2735 303 640 553 1218 +2736 528 469 549 1054 +2737 1038 1222 1034 1230 +2738 222 221 1402 1407 +2739 1058 1231 1020 1290 +2740 781 1255 1072 1316 +2741 85 87 93 1307 +2742 905 1318 1453 1456 +2743 1096 1376 952 1398 +2744 635 1095 309 1258 +2745 974 1121 1089 1337 +2746 1014 1335 1256 1378 +2747 38 1292 115 1435 +2748 313 1111 314 1344 +2749 1127 1245 1004 1435 +2750 988 1308 1176 1479 +2751 426 428 464 1120 +2752 978 1044 1329 1370 +2753 496 492 791 1216 +2754 651 649 650 1208 +2755 1045 1322 1274 1398 +2756 1018 1185 1039 1195 +2757 407 406 379 1123 +2758 959 1121 1206 1337 +2759 376 375 1239 1247 +2760 785 1056 530 1383 +2761 1015 1188 1088 1263 +2762 953 1176 1266 1352 +2763 259 247 728 1484 +2764 1081 1100 1001 1386 +2765 213 331 1184 1462 +2766 338 638 381 1230 +2767 362 280 1139 1324 +2768 746 792 793 1280 +2769 1222 1268 990 1335 +2770 1046 984 1201 1407 +2771 575 376 404 1148 +2772 203 680 1460 1477 +2773 1057 1349 993 1382 +2774 787 1144 499 1347 +2775 366 377 579 1087 +2776 218 1218 1155 1415 +2777 967 1233 1126 1340 +2778 570 1253 333 1366 +2779 724 1219 248 1299 +2780 981 1252 1058 1399 +2781 956 1204 1085 1328 +2782 45 901 46 1294 +2783 181 612 178 1063 +2784 475 553 1218 1276 +2785 932 1267 940 1281 +2786 815 603 602 1065 +2787 1080 1234 1041 1333 +2788 1256 1335 1038 1378 +2789 891 153 1086 1422 +2790 1044 1006 1329 1408 +2791 335 171 737 1273 +2792 635 325 309 1095 +2793 1144 1362 1008 1411 +2794 914 157 796 1169 +2795 982 1101 1260 1274 +2796 837 358 378 1228 +2797 998 1118 1310 1376 +2798 527 469 528 1084 +2799 927 929 947 1368 +2800 177 748 600 1100 +2801 159 121 36 1343 +2802 222 1402 1197 1407 +2803 959 1121 1089 1214 +2804 984 1046 1201 1416 +2805 294 1223 1094 1454 +2806 1226 1254 951 1406 +2807 1026 1228 1066 1473 +2808 1203 1206 1007 1471 +2809 973 1065 1154 1377 +2810 415 417 416 1446 +2811 358 329 1238 1327 +2812 109 1330 107 1363 +2813 1055 999 1345 1434 +2814 43 1210 119 1467 +2815 391 1209 210 1312 +2816 1043 1166 1135 1236 +2817 1015 1311 1122 1392 +2818 140 1061 737 1273 +2819 948 1206 1203 1471 +2820 272 1195 722 1373 +2821 640 1155 218 1218 +2822 1077 1147 988 1409 +2823 712 186 182 1070 +2824 262 258 261 1088 +2825 429 431 430 1168 +2826 974 1138 1050 1189 +2827 453 1140 435 1174 +2828 1126 1233 1002 1340 +2829 1092 535 1397 1480 +2830 1155 1201 219 1415 +2831 1059 1238 987 1327 +2832 694 693 537 1245 +2833 802 798 387 1099 +2834 221 219 220 1201 +2835 718 1185 763 1353 +2836 835 561 735 1189 +2837 50 51 1418 1450 +2838 1218 1276 989 1401 +2839 433 434 432 1350 +2840 771 1325 501 1396 +2841 964 1243 1172 1427 +2842 331 1396 1184 1462 +2843 674 1091 676 1445 +2844 958 1117 1221 1285 +2845 512 537 693 1245 +2846 365 1362 318 1478 +2847 277 1392 1122 1463 +2848 639 1143 229 1331 +2849 403 574 1333 1403 +2850 954 1270 1192 1290 +2851 882 1043 569 1166 +2852 1084 1367 527 1433 +2853 980 1036 1153 1391 +2854 1023 1138 1104 1291 +2855 319 685 317 1196 +2856 1161 1171 975 1422 +2857 1012 1227 1053 1288 +2858 487 1056 785 1381 +2859 362 282 280 1324 +2860 810 859 1028 1267 +2861 311 312 1344 1438 +2862 899 115 1245 1435 +2863 446 449 450 1246 +2864 1023 1393 1090 1395 +2865 628 1134 307 1483 +2866 792 492 493 1077 +2867 270 654 655 1082 +2868 1104 1138 1023 1393 +2869 436 462 434 1229 +2870 313 312 1111 1344 +2871 628 298 307 1134 +2872 1210 1303 1054 1356 +2873 1056 1381 1108 1464 +2874 1255 1313 973 1388 +2875 1070 1154 973 1313 +2876 1178 1397 535 1480 +2877 1003 1102 1061 1476 +2878 120 1075 736 1435 +2879 1001 1237 1100 1354 +2880 1130 995 1270 1290 +2881 1158 1202 323 1481 +2882 778 1060 716 1484 +2883 228 226 1331 1455 +2884 976 1221 1074 1310 +2885 449 1126 450 1246 +2886 163 745 1149 1294 +2887 37 159 1114 1343 +2888 519 516 518 1145 +2889 1069 991 1191 1344 +2890 508 372 727 1410 +2891 523 1153 862 1348 +2892 775 733 174 1393 +2893 752 146 35 1476 +2894 987 1041 1296 1404 +2895 244 799 246 1187 +2896 204 1164 1312 1439 +2897 182 1070 186 1419 +2898 1050 1138 974 1291 +2899 413 1272 743 1443 +2900 1030 1287 1073 1321 +2901 982 1260 1093 1376 +2902 1139 1261 1024 1421 +2903 988 1176 1308 1352 +2904 156 851 880 1193 +2905 771 501 389 1396 +2906 1046 1331 1103 1421 +2907 1014 1378 1099 1451 +2908 602 1065 603 1388 +2909 1008 1278 1269 1385 +2910 391 210 1119 1312 +2911 271 691 724 1299 +2912 1121 1263 985 1361 +2913 720 415 412 1062 +2914 1198 1381 1056 1464 +2915 282 1139 280 1324 +2916 1115 1385 1278 1458 +2917 747 1137 370 1327 +2918 748 1100 177 1359 +2919 222 223 221 1407 +2920 1055 1016 1358 1443 +2921 981 1231 1058 1290 +2922 950 1288 1109 1387 +2923 240 242 241 1428 +2924 1041 1234 1080 1404 +2925 1068 1159 979 1205 +2926 1112 1236 972 1371 +2927 348 350 1113 1386 +2928 973 1313 1072 1322 +2929 1099 1014 1256 1378 +2930 467 471 1183 1336 +2931 1046 1331 1073 1407 +2932 379 406 405 1123 +2933 1068 1144 1355 1411 +2934 1062 1272 1055 1434 +2935 980 1307 1092 1358 +2936 1029 1266 1180 1467 +2937 958 1117 1268 1332 +2938 245 247 259 1484 +2939 769 1257 411 1345 +2940 1103 1331 1011 1421 +2941 355 395 1196 1317 +2942 353 758 1113 1429 +2943 1135 1166 986 1236 +2944 1097 1024 1308 1379 +2945 100 1066 1259 1351 +2946 1230 1365 339 1409 +2947 467 471 472 1183 +2948 728 1144 786 1484 +2949 426 424 1384 1448 +2950 1096 1354 1264 1442 +2951 669 670 673 1172 +2952 543 832 556 1156 +2953 969 1233 1084 1266 +2954 965 1103 1308 1421 +2955 1020 1235 1252 1424 +2956 464 1120 428 1453 +2957 303 218 640 1155 +2958 1196 1362 1008 1478 +2959 1049 1199 1192 1257 +2960 1061 1341 737 1441 +2961 770 772 407 1338 +2962 1032 1260 1184 1326 +2963 908 576 796 1169 +2964 84 139 797 1348 +2965 303 1155 640 1218 +2966 326 1069 636 1258 +2967 1088 1188 985 1263 +2968 495 541 795 1132 +2969 827 785 1198 1381 +2970 515 1058 890 1320 +2971 959 1270 1089 1337 +2972 89 1259 1085 1363 +2973 544 553 476 1276 +2974 994 1198 1274 1464 +2975 983 1052 1211 1240 +2976 530 1383 1056 1457 +2977 135 892 1080 1235 +2978 34 117 1102 1265 +2979 538 569 1043 1292 +2980 1023 1156 1151 1293 +2981 188 1154 187 1419 +2982 836 1078 463 1350 +2983 195 1072 1255 1313 +2984 78 139 84 1348 +2985 950 1117 1289 1332 +2986 117 902 1102 1265 +2987 1075 1390 1127 1435 +2988 1148 1239 966 1247 +2989 1142 1189 997 1333 +2990 188 189 187 1154 +2991 448 824 1272 1405 +2992 955 1101 1170 1464 +2993 824 1272 1092 1443 +2994 779 516 519 1145 +2995 552 1228 550 1351 +2996 392 293 294 1094 +2997 1004 1284 1044 1408 +2998 457 450 458 1433 +2999 1083 1244 1002 1245 +3000 1080 1234 971 1404 +3001 965 1046 1157 1455 +3002 979 1205 1159 1293 +3003 948 1361 1206 1471 +3004 1052 1249 1040 1342 +3005 1000 1250 1091 1371 +3006 933 1368 1175 1447 +3007 216 776 771 1093 +3008 900 1286 1127 1367 +3009 1005 1129 1261 1352 +3010 364 717 778 1060 +3011 1201 1402 221 1407 +3012 760 1108 484 1319 +3013 1054 1336 984 1412 +3014 969 1266 1132 1271 +3015 1005 1132 1266 1271 +3016 1092 1397 1178 1480 +3017 144 1234 1181 1459 +3018 198 301 1167 1198 +3019 188 1313 1154 1419 +3020 45 46 143 1294 +3021 318 319 317 1196 +3022 1092 1145 980 1358 +3023 169 1075 120 1390 +3024 1184 1260 966 1326 +3025 1151 1156 1013 1293 +3026 991 1060 1339 1385 +3027 963 1210 1054 1356 +3028 959 1206 1050 1337 +3029 954 1192 1270 1305 +3030 665 425 421 1165 +3031 176 178 1063 1359 +3032 1075 1284 736 1435 +3033 271 724 248 1299 +3034 1000 1250 1082 1428 +3035 672 669 668 1194 +3036 47 48 118 1131 +3037 477 1401 1074 1423 +3038 408 725 470 1334 +3039 33 165 32 1265 +3040 1107 1114 957 1343 +3041 661 1143 681 1212 +3042 991 1278 1385 1458 +3043 169 736 120 1075 +3044 1049 1179 1027 1199 +3045 541 632 794 1132 +3046 783 784 1081 1418 +3047 293 1094 392 1463 +3048 950 1256 1227 1335 +3049 555 1142 561 1400 +3050 1137 1357 987 1364 +3051 143 1067 745 1294 +3052 46 143 1294 1414 +3053 935 932 915 1267 +3054 975 1161 1086 1215 +3055 1092 1272 824 1405 +3056 477 642 1401 1423 +3057 150 105 82 1351 +3058 1080 1235 997 1424 +3059 1012 1157 1099 1416 +3060 914 138 917 1436 +3061 215 211 1053 1415 +3062 163 745 168 1149 +3063 431 1174 433 1350 +3064 475 399 1276 1410 +3065 682 1212 287 1444 +3066 997 1235 1105 1424 +3067 263 658 225 1073 +3068 771 1093 776 1325 +3069 54 155 768 1422 +3070 324 298 628 1224 +3071 949 1241 1232 1346 +3072 1109 1387 1288 1485 +3073 368 369 353 1319 +3074 1014 1209 1065 1451 +3075 1060 1111 991 1339 +3076 1011 1243 1139 1427 +3077 991 1232 1202 1458 +3078 1011 1421 1139 1452 +3079 982 1198 1056 1464 +3080 1063 1237 958 1359 +3081 172 1284 634 1449 +3082 131 839 97 1178 +3083 1202 1232 1051 1458 +3084 83 104 1193 1461 +3085 1009 1418 1146 1450 +3086 222 1197 223 1407 +3087 932 924 933 1281 +3088 700 1208 652 1428 +3089 1070 1285 1154 1419 +3090 676 674 677 1091 +3091 569 568 847 1292 +3092 170 619 618 1295 +3093 463 595 1168 1453 +3094 157 908 796 1169 +3095 1107 1284 172 1449 +3096 878 105 150 1351 +3097 430 1168 431 1350 +3098 965 1099 1157 1416 +3099 970 1098 1269 1282 +3100 987 1217 1106 1238 +3101 87 1085 1307 1391 +3102 1078 1265 902 1456 +3103 1011 1321 1261 1421 +3104 899 115 536 1245 +3105 720 415 1062 1446 +3106 1064 958 1131 1332 +3107 891 153 577 1086 +3108 91 1259 89 1363 +3109 1071 1124 1010 1289 +3110 799 831 1299 1420 +3111 700 1133 651 1208 +3112 1168 1185 977 1471 +3113 1028 1213 1040 1283 +3114 955 1170 1076 1360 +3115 1076 1170 993 1360 +3116 1040 1213 1171 1283 +3117 773 745 143 1067 +3118 203 201 680 1477 +3119 986 1323 1047 1380 +3120 728 249 291 1144 +3121 668 676 1225 1445 +3122 993 1368 1173 1430 +3123 798 713 387 1099 +3124 1022 1102 1078 1241 +3125 981 1130 1231 1290 +3126 1075 1132 969 1390 +3127 1150 1325 982 1382 +3128 450 1126 459 1433 +3129 358 329 341 1238 +3130 982 1274 1198 1464 +3131 910 939 879 1171 +3132 1059 1123 999 1338 +3133 950 1207 1109 1256 +3134 905 1318 587 1453 +3135 220 1201 1155 1402 +3136 37 1114 847 1292 +3137 1006 1044 1297 1408 +3138 970 1355 1144 1411 +3139 420 422 418 1231 +3140 1089 954 1305 1482 +3141 857 1160 583 1364 +3142 1058 1235 1080 1252 +3143 1053 1119 1012 1415 +3144 545 472 544 1186 +3145 188 189 1154 1313 +3146 613 614 340 1277 +3147 1100 1131 958 1359 +3148 443 1298 1083 1468 +3149 1109 1248 1176 1356 +3150 1137 1327 987 1357 +3151 372 334 371 1177 +3152 1014 1451 1065 1469 +3153 498 565 480 1068 +3154 1006 1224 1134 1271 +3155 373 756 1239 1349 +3156 1010 1124 1071 1414 +3157 173 795 1180 1280 +3158 205 203 207 1460 +3159 950 1268 1117 1332 +3160 1013 1311 1122 1375 +3161 434 836 432 1350 +3162 667 239 241 1445 +3163 993 1076 1368 1430 +3164 1102 1241 1022 1346 +3165 833 447 1163 1380 +3166 503 1349 500 1382 +3167 40 1127 900 1286 +3168 1087 1357 377 1364 +3169 1133 1275 1208 1428 +3170 258 257 261 1088 +3171 306 388 308 1475 +3172 344 1239 375 1247 +3173 973 1154 1285 1377 +3174 667 241 1250 1445 +3175 1009 1152 1048 1264 +3176 743 1272 824 1443 +3177 531 529 1447 1457 +3178 1028 1040 1249 1283 +3179 40 900 41 1286 +3180 1030 1336 1054 1412 +3181 30 1050 897 1318 +3182 92 104 109 1160 +3183 498 1068 480 1362 +3184 437 438 436 1229 +3185 1140 1229 986 1380 +3186 837 552 855 1228 +3187 263 223 1197 1407 +3188 1154 1285 990 1419 +3189 993 1279 1173 1368 +3190 1111 1339 314 1344 +3191 987 1059 1327 1473 +3192 830 1069 326 1344 +3193 87 1085 90 1307 +3194 484 486 485 1108 +3195 278 1103 273 1452 +3196 1027 1217 1106 1296 +3197 870 916 137 1283 +3198 545 1186 544 1470 +3199 216 1093 771 1396 +3200 733 1104 165 1393 +3201 492 1216 383 1409 +3202 959 1214 1089 1270 +3203 636 326 830 1069 +3204 571 570 510 1152 +3205 453 689 688 1140 +3206 454 429 697 1185 +3207 346 347 348 1386 +3208 1018 1185 1168 1471 +3209 1122 1311 960 1375 +3210 481 767 1199 1338 +3211 1082 1163 1047 1323 +3212 344 343 375 1239 +3213 364 1060 778 1478 +3214 348 349 350 1386 +3215 993 1076 1360 1368 +3216 37 847 568 1292 +3217 1157 1201 1012 1437 +3218 1046 1248 1412 1421 +3219 967 1226 1128 1340 +3220 696 1187 245 1484 +3221 549 1054 906 1186 +3222 1130 1270 1020 1290 +3223 313 311 312 1344 +3224 450 657 459 1126 +3225 542 297 324 1224 +3226 231 1243 235 1452 +3227 243 1187 696 1250 +3228 603 1065 815 1469 +3229 960 1122 1094 1389 +3230 538 1245 115 1292 +3231 1099 1256 1190 1378 +3232 424 455 423 1165 +3233 1103 1024 1308 1421 +3234 1022 1102 1346 1394 +3235 1042 1360 1281 1368 +3236 724 1136 250 1219 +3237 969 1127 1075 1390 +3238 1082 1250 1000 1371 +3239 1093 1167 998 1477 +3240 1054 1303 1030 1412 +3241 955 1056 1108 1464 +3242 1062 1130 995 1446 +3243 778 1347 1060 1484 +3244 231 233 234 1243 +3245 501 503 500 1382 +3246 1102 1003 1346 1394 +3247 948 1121 1206 1361 +3248 791 614 496 1216 +3249 989 1064 1124 1332 +3250 965 1157 1046 1416 +3251 391 625 210 1209 +3252 992 1160 1137 1364 +3253 282 285 1129 1324 +3254 1118 1253 212 1423 +3255 780 483 488 1429 +3256 560 474 555 1142 +3257 1087 1181 992 1413 +3258 275 1094 293 1389 +3259 696 1250 1187 1300 +3260 505 1325 506 1382 +3261 984 1183 1054 1356 +3262 1104 1273 165 1393 +3263 1080 1235 1058 1320 +3264 962 1187 1082 1250 +3265 309 307 308 1095 +3266 941 1171 910 1200 +3267 981 1252 1110 1290 +3268 928 932 940 1281 +3269 1100 958 1237 1359 +3270 159 36 1114 1343 +3271 1166 1236 1043 1474 +3272 1049 1182 995 1214 +3273 1043 1244 1083 1245 +3274 727 371 571 1152 +3275 971 1204 1110 1328 +3276 175 167 176 1359 +3277 1003 1166 1346 1394 +3278 444 1083 694 1468 +3279 949 1278 1115 1385 +3280 739 253 813 1125 +3281 672 668 676 1225 +3282 875 83 1193 1461 +3283 1236 1323 972 1371 +3284 457 458 1367 1433 +3285 662 1229 664 1394 +3286 580 584 579 1413 +3287 543 360 832 1151 +3288 662 1166 664 1229 +3289 841 833 447 1163 +3290 90 1085 1259 1307 +3291 907 538 882 1043 +3292 573 727 571 1152 +3293 1069 1258 978 1370 +3294 1091 1250 1000 1445 +3295 290 692 763 1136 +3296 780 488 1316 1429 +3297 836 596 463 1078 +3298 537 907 694 1245 +3299 182 1301 1070 1419 +3300 599 489 1197 1336 +3301 1210 1303 1029 1467 +3302 1011 1331 1103 1452 +3303 659 660 235 1243 +3304 520 1279 860 1382 +3305 444 694 442 1468 +3306 971 1328 1110 1404 +3307 989 1218 1053 1288 +3308 263 644 645 1287 +3309 312 1111 1344 1438 +3310 977 1168 1078 1350 +3311 1044 1258 1069 1370 +3312 1057 966 1184 1260 +3313 1011 1261 1139 1421 +3314 1064 1131 1124 1332 +3315 1059 956 1123 1473 +3316 870 852 916 1171 +3317 680 776 216 1093 +3318 964 1261 1128 1271 +3319 184 1222 183 1301 +3320 324 297 298 1224 +3321 849 857 583 1364 +3322 54 55 155 1200 +3323 613 496 614 1216 +3324 664 1229 1166 1394 +3325 957 1370 1069 1458 +3326 116 1210 1186 1294 +3327 293 1389 1094 1463 +3328 1229 1346 1166 1394 +3329 1039 1306 1185 1471 +3330 39 38 115 1435 +3331 1086 1146 983 1417 +3332 142 1180 1286 1467 +3333 418 422 597 1231 +3334 1202 1341 1017 1441 +3335 1042 1175 1360 1368 +3336 439 440 438 1135 +3337 965 1097 1308 1379 +3338 441 1135 833 1298 +3339 124 895 588 1050 +3340 1144 1347 786 1484 +3341 963 1186 1054 1210 +3342 39 160 38 1435 +3343 1093 998 1460 1477 +3344 503 803 1173 1279 +3345 983 1211 1052 1342 +3346 987 1327 1137 1473 +3347 567 790 361 1472 +3348 402 802 391 1119 +3349 716 1060 1300 1484 +3350 1076 1213 922 1432 +3351 1172 1194 1037 1369 +3352 713 1099 798 1302 +3353 389 501 500 1057 +3354 991 1069 1191 1458 +3355 910 1171 879 1200 +3356 1006 1134 1095 1406 +3357 186 1070 1313 1419 +3358 1029 1266 1084 1303 +3359 780 1316 1072 1429 +3360 255 813 253 1188 +3361 1025 1194 1172 1369 +3362 1121 1263 948 1311 +3363 1004 1075 1254 1435 +3364 665 465 425 1079 +3365 1088 1015 1311 1472 +3366 1095 1134 1037 1406 +3367 590 1118 212 1423 +3368 311 1344 1258 1438 +3369 667 1250 289 1445 +3370 695 433 431 1174 +3371 618 1295 619 1341 +3372 1145 980 1358 1399 +3373 284 283 1220 1454 +3374 184 185 183 1222 +3375 1002 1246 1126 1340 +3376 1004 1244 1254 1408 +3377 701 1224 628 1483 +3378 980 1178 1092 1307 +3379 382 339 1365 1409 +3380 999 1110 1217 1434 +3381 963 1054 1186 1356 +3382 339 1230 381 1365 +3383 558 559 563 1365 +3384 486 526 867 1108 +3385 949 1385 1232 1465 +3386 357 1357 370 1364 +3387 773 1067 143 1414 +3388 525 1148 404 1239 +3389 1047 1187 1033 1299 +3390 604 1162 192 1469 +3391 1150 1175 993 1360 +3392 1074 1164 961 1312 +3393 1012 1416 1109 1485 +3394 479 815 1451 1469 +3395 914 1169 796 1436 +3396 123 1064 884 1315 +3397 1072 1113 1001 1372 +3398 809 930 808 1436 +3399 984 1046 1248 1412 +3400 175 340 773 1277 +3401 1002 1127 1254 1367 +3402 994 1316 1198 1381 +3403 961 1227 1053 1312 +3404 977 1185 1306 1471 +3405 166 1131 49 1315 +3406 998 1314 1164 1439 +3407 413 726 1055 1443 +3408 355 395 319 1196 +3409 1060 991 1278 1385 +3410 1133 1025 1369 1466 +3411 806 1334 1304 1374 +3412 1027 1238 1217 1338 +3413 606 192 604 1162 +3414 1009 1048 1251 1264 +3415 711 342 232 1090 +3416 1092 1016 1307 1397 +3417 971 1204 1116 1399 +3418 954 1192 1217 1434 +3419 1071 1276 1124 1289 +3420 382 339 381 1365 +3421 609 777 1182 1257 +3422 178 1237 1063 1359 +3423 980 1116 1204 1399 +3424 395 686 685 1317 +3425 783 748 738 1100 +3426 106 875 83 1193 +3427 990 1162 1154 1419 +3428 403 367 400 1403 +3429 989 1124 1064 1410 +3430 317 685 323 1158 +3431 417 418 416 1130 +3432 844 126 28 1333 +3433 496 383 492 1216 +3434 608 1182 766 1373 +3435 965 1109 1248 1308 +3436 1049 1179 960 1305 +3437 1175 1368 1042 1447 +3438 1009 1264 1354 1442 +3439 987 1238 1106 1327 +3440 356 391 210 1119 +3441 1093 1325 771 1396 +3442 738 783 1100 1418 +3443 594 305 344 1366 +3444 1303 1321 1030 1412 +3445 889 1086 153 1422 +3446 1124 1276 1071 1470 +3447 1069 1370 1107 1449 +3448 1071 1276 1289 1470 +3449 887 510 1048 1450 +3450 1092 1358 1016 1443 +3451 300 1222 338 1230 +3452 696 1300 1187 1484 +3453 1007 1453 1318 1456 +3454 889 53 1086 1422 +3455 92 83 104 1193 +3456 953 1266 1261 1352 +3457 565 567 361 1392 +3458 981 1110 1252 1399 +3459 468 1105 522 1235 +3460 981 1145 1058 1231 +3461 963 1109 1176 1356 +3462 547 1071 1186 1470 +3463 700 1133 1208 1428 +3464 1004 1254 1075 1408 +3465 756 869 525 1239 +3466 960 1179 1122 1389 +3467 766 608 609 1182 +3468 983 1101 1240 1251 +3469 477 1074 590 1423 +3470 355 816 557 1159 +3471 1090 1317 1017 1441 +3472 968 1104 1265 1456 +3473 700 652 270 1428 +3474 1054 984 1356 1412 +3475 195 1255 190 1313 +3476 100 94 1259 1374 +3477 505 506 1325 1426 +3478 981 1055 1272 1434 +3479 986 1229 1140 1346 +3480 951 1406 1254 1408 +3481 1079 1195 1018 1361 +3482 1325 1382 1150 1426 +3483 300 185 338 1222 +3484 97 874 78 1178 +3485 117 902 753 1102 +3486 455 1165 424 1448 +3487 983 1086 1161 1215 +3488 1046 1201 1157 1407 +3489 554 1223 555 1400 +3490 492 384 493 1077 +3491 220 221 1201 1402 +3492 789 535 1092 1480 +3493 982 1167 1198 1274 +3494 815 1209 800 1451 +3495 184 703 185 1222 +3496 304 305 594 1366 +3497 320 232 342 1393 +3498 1064 1177 976 1221 +3499 989 1177 1064 1221 +3500 977 1282 1203 1306 +3501 721 1079 665 1309 +3502 841 1163 447 1380 +3503 773 614 745 1067 +3504 725 726 1334 1443 +3505 493 793 792 1280 +3506 1086 983 1161 1417 +3507 1094 1220 283 1454 +3508 127 527 1084 1367 +3509 1111 978 1258 1438 +3510 697 427 465 1384 +3511 969 1075 1127 1254 +3512 1027 1179 1049 1305 +3513 848 1181 24 1459 +3514 1109 1256 1207 1479 +3515 960 1214 1049 1305 +3516 978 1111 1091 1438 +3517 586 895 507 1448 +3518 825 172 634 1449 +3519 720 1062 1257 1446 +3520 986 1047 1262 1380 +3521 780 195 774 1072 +3522 1140 1229 1022 1346 +3523 232 335 711 1090 +3524 971 1252 1080 1404 +3525 599 1336 1197 1402 +3526 1059 999 1217 1338 +3527 648 445 452 1246 +3528 970 1205 1098 1306 +3529 1111 1191 991 1344 +3530 981 1358 1055 1434 +3531 1087 992 1328 1364 +3532 48 49 166 1131 +3533 258 1088 262 1472 +3534 954 1110 1217 1404 +3535 897 30 124 1050 +3536 1059 1123 1228 1473 +3537 963 1067 1207 1387 +3538 1376 1460 1118 1462 +3539 1047 1323 1163 1380 +3540 665 1165 421 1309 +3541 518 517 523 1116 +3542 869 809 808 1436 +3543 26 135 1080 1320 +3544 962 1191 1115 1278 +3545 1167 1198 301 1426 +3546 1048 1152 1009 1450 +3547 979 1362 1068 1411 +3548 718 698 763 1185 +3549 927 1175 933 1368 +3550 980 1348 1145 1480 +3551 426 424 425 1384 +3552 966 1101 1170 1215 +3553 250 1219 1136 1431 +3554 274 278 273 1452 +3555 312 363 719 1111 +3556 234 673 659 1243 +3557 972 1163 1135 1298 +3558 961 1164 1314 1439 +3559 626 356 211 1415 +3560 990 1301 1222 1419 +3561 135 591 892 1235 +3562 589 1078 902 1456 +3563 904 1084 528 1467 +3564 965 1109 1308 1479 +3565 981 1145 1092 1358 +3566 99 107 102 1330 +3567 1010 1124 1131 1332 +3568 1057 1325 501 1382 +3569 993 1360 1175 1368 +3570 305 213 331 1184 +3571 1000 1133 1369 1466 +3572 465 425 1079 1384 +3573 144 1181 25 1459 +3574 135 892 27 1080 +3575 554 560 555 1223 +3576 1113 1211 1052 1240 +3577 283 293 1094 1454 +3578 551 751 129 1066 +3579 863 390 1137 1327 +3580 156 850 851 1193 +3581 958 1285 1096 1354 +3582 879 1171 155 1200 +3583 1296 1403 996 1482 +3584 972 1298 1135 1468 +3585 554 1151 393 1223 +3586 984 1197 1402 1407 +3587 1038 1190 1256 1378 +3588 952 1240 1101 1251 +3589 1074 1118 976 1310 +3590 1070 990 1285 1419 +3591 986 1166 1229 1346 +3592 135 890 1235 1320 +3593 198 818 301 1198 +3594 122 733 775 1138 +3595 973 1314 1141 1388 +3596 1086 1161 975 1422 +3597 1183 1336 564 1402 +3598 795 794 699 1132 +3599 976 1118 1074 1423 +3600 842 1142 474 1403 +3601 1175 1360 1150 1383 +3602 948 1205 1203 1395 +3603 982 1167 1093 1325 +3604 368 352 820 1249 +3605 1117 1268 990 1285 +3606 1003 1346 1166 1474 +3607 1069 1370 1191 1458 +3608 109 107 95 1363 +3609 974 1189 1050 1337 +3610 586 587 588 1453 +3611 48 49 1131 1315 +3612 764 273 731 1103 +3613 109 1160 1330 1363 +3614 363 1111 312 1438 +3615 1063 1268 1034 1277 +3616 1092 1307 1178 1397 +3617 350 353 758 1113 +3618 881 1092 535 1397 +3619 318 1158 317 1478 +3620 185 491 338 1222 +3621 900 1127 524 1367 +3622 1047 986 1262 1323 +3623 910 941 936 1171 +3624 983 1146 1081 1417 +3625 1054 1183 984 1336 +3626 32 1265 1104 1456 +3627 576 908 891 1148 +3628 1001 1237 1070 1372 +3629 952 1251 1101 1326 +3630 173 795 699 1180 +3631 1055 1272 1092 1358 +3632 1121 1291 974 1375 +3633 599 1197 222 1402 +3634 1069 1258 326 1344 +3635 633 794 632 1297 +3636 302 827 785 1198 +3637 726 806 1334 1443 +3638 869 502 809 1349 +3639 740 698 697 1195 +3640 733 165 174 1393 +3641 1053 1227 1119 1312 +3642 492 384 1077 1409 +3643 550 551 150 1351 +3644 954 1217 1296 1404 +3645 353 1319 482 1429 +3646 796 1169 858 1436 +3647 1005 1077 1147 1352 +3648 1175 1383 840 1447 +3649 1058 1235 1020 1440 +3650 382 1147 710 1409 +3651 354 355 319 1196 +3652 995 1182 1049 1257 +3653 362 280 660 1139 +3654 680 1093 216 1460 +3655 636 830 623 1069 +3656 632 701 629 1483 +3657 1022 1262 1140 1346 +3658 1063 1268 990 1301 +3659 842 1333 1142 1403 +3660 959 1121 1214 1361 +3661 788 1405 1145 1480 +3662 275 1389 293 1463 +3663 318 354 1196 1362 +3664 1089 1121 960 1214 +3665 55 879 155 1200 +3666 1074 1177 976 1423 +3667 1020 1231 1058 1440 +3668 1058 1145 981 1399 +3669 788 1145 533 1480 +3670 851 875 106 1193 +3671 983 1211 1081 1240 +3672 1304 1334 1016 1374 +3673 875 136 83 1461 +3674 572 571 510 1450 +3675 89 90 87 1085 +3676 978 1095 1258 1438 +3677 1103 1331 1046 1455 +3678 1087 1357 987 1404 +3679 89 90 1085 1259 +3680 319 395 685 1196 +3681 564 1183 471 1336 +3682 314 1111 719 1339 +3683 785 530 838 1383 +3684 1071 1186 963 1294 +3685 809 872 1173 1349 +3686 1105 959 1165 1448 +3687 985 1195 1079 1361 +3688 161 169 120 1390 +3689 986 1163 1323 1380 +3690 643 263 223 1197 +3691 953 1128 1261 1266 +3692 984 1402 1201 1407 +3693 826 768 834 1161 +3694 1147 1308 1024 1352 +3695 332 212 1253 1423 +3696 584 1181 144 1234 +3697 1003 1232 1051 1295 +3698 1218 1276 1021 1289 +3699 1081 1211 983 1417 +3700 1186 1210 963 1294 +3701 335 711 1090 1441 +3702 810 912 945 1267 +3703 1041 1403 1296 1482 +3704 996 1296 1242 1403 +3705 788 533 1405 1480 +3706 292 295 284 1106 +3707 715 141 1107 1343 +3708 165 1265 33 1273 +3709 499 498 365 1362 +3710 498 787 814 1355 +3711 965 1046 1248 1416 +3712 260 609 777 1182 +3713 210 1209 625 1312 +3714 901 45 116 1294 +3715 1218 1021 1288 1289 +3716 960 1121 1089 1375 +3717 382 1365 1147 1409 +3718 538 569 882 1043 +3719 961 1065 1314 1377 +3720 849 1364 583 1461 +3721 699 1132 794 1390 +3722 878 150 551 1351 +3723 905 588 587 1318 +3724 27 26 135 1080 +3725 211 206 214 1312 +3726 1024 1352 1308 1421 +3727 527 460 469 1433 +3728 503 1173 872 1349 +3729 520 1175 807 1279 +3730 1032 1376 1118 1462 +3731 188 190 189 1313 +3732 802 391 1119 1451 +3733 764 1103 731 1455 +3734 1068 1355 970 1411 +3735 433 453 435 1174 +3736 922 1213 1076 1281 +3737 602 1141 200 1439 +3738 788 779 519 1145 +3739 521 840 861 1383 +3740 974 1151 1223 1375 +3741 789 535 824 1092 +3742 32 1104 31 1318 +3743 963 1210 1149 1294 +3744 164 1295 1061 1476 +3745 874 139 78 1348 +3746 667 289 674 1445 +3747 477 601 590 1074 +3748 315 316 1158 1339 +3749 301 1198 818 1426 +3750 270 1082 242 1428 +3751 984 1248 1046 1416 +3752 632 629 1297 1483 +3753 667 241 289 1250 +3754 558 1147 382 1365 +3755 1049 1192 995 1257 +3756 825 1107 172 1449 +3757 270 655 242 1082 +3758 577 153 889 1086 +3759 951 1254 1226 1340 +3760 236 237 1444 1466 +3761 175 773 734 1414 +3762 273 278 731 1103 +3763 780 1072 774 1429 +3764 1021 1071 1186 1387 +3765 746 793 173 1280 +3766 965 1308 1248 1421 +3767 503 860 1279 1382 +3768 1202 1232 991 1385 +3769 1074 1164 1118 1310 +3770 986 1135 1163 1380 +3771 143 1067 1294 1414 +3772 1021 1186 1071 1470 +3773 89 1085 87 1391 +3774 1048 1247 966 1326 +3775 998 1310 1164 1314 +3776 737 1341 759 1441 +3777 751 406 470 1334 +3778 190 1255 191 1388 +3779 725 413 726 1055 +3780 975 1148 1086 1422 +3781 481 770 767 1338 +3782 317 315 316 1158 +3783 525 858 404 1148 +3784 1081 1146 983 1251 +3785 884 123 593 1064 +3786 974 1142 1189 1337 +3787 544 1276 476 1470 +3788 1117 1335 1227 1377 +3789 997 1189 1142 1337 +3790 1133 1000 1275 1428 +3791 510 570 380 1366 +3792 469 467 906 1054 +3793 968 1273 1090 1465 +3794 953 1321 1303 1412 +3795 487 1381 485 1457 +3796 1045 1198 1167 1274 +3797 406 408 470 1123 +3798 989 1276 1218 1289 +3799 874 84 78 139 +3800 989 1221 1064 1332 +3801 32 733 31 1104 +3802 623 636 1069 1449 +3803 589 905 1453 1456 +3804 989 1218 1288 1289 +3805 586 585 1120 1448 +3806 52 134 889 1146 +3807 1125 1188 1015 1263 +3808 353 482 758 1429 +3809 1096 1322 952 1354 +3810 925 928 942 1213 +3811 1262 1380 1047 1420 +3812 505 819 506 1426 +3813 953 1308 1352 1421 +3814 964 1324 1134 1475 +3815 590 208 212 1118 +3816 1055 981 1272 1358 +3817 586 1120 464 1453 +3818 1012 1415 1119 1437 +3819 1115 1262 986 1323 +3820 690 453 695 1174 +3821 1005 1147 1129 1352 +3822 726 866 806 1443 +3823 1120 1206 959 1361 +3824 1119 1209 1014 1451 +3825 100 1259 91 1351 +3826 41 1286 142 1390 +3827 177 600 179 1237 +3828 964 1271 1226 1406 +3829 953 1261 1321 1421 +3830 50 738 1315 1418 +3831 272 762 722 1195 +3832 311 1258 309 1438 +3833 731 1103 278 1379 +3834 840 1175 861 1383 +3835 195 781 190 1255 +3836 1232 1385 1017 1465 +3837 85 1153 86 1391 +3838 986 1166 1346 1474 +3839 1002 1127 1245 1254 +3840 688 1140 689 1420 +3841 959 1089 1121 1337 +3842 99 1330 102 1351 +3843 554 543 393 1151 +3844 561 555 474 1142 +3845 641 475 1218 1401 +3846 725 1055 726 1443 +3847 975 1200 1171 1432 +3848 972 1163 1082 1323 +3849 96 90 1259 1307 +3850 208 209 1118 1460 +3851 365 318 732 1478 +3852 964 1172 1139 1324 +3853 345 602 200 1439 +3854 973 1154 1065 1388 +3855 690 1174 695 1353 +3856 987 1137 1328 1473 +3857 982 1167 1325 1426 +3858 922 1281 1076 1368 +3859 1084 1030 1233 1433 +3860 589 596 902 1078 +3861 1146 1251 1009 1450 +3862 970 1144 1219 1269 +3863 814 739 567 1355 +3864 953 1321 1412 1421 +3865 1018 1361 1120 1384 +3866 843 760 368 1249 +3867 256 254 272 1188 +3868 681 661 639 1143 +3869 1062 1257 1192 1345 +3870 987 1328 1087 1404 +3871 973 1065 1314 1388 +3872 1060 1347 778 1478 +3873 142 1286 42 1467 +3874 102 873 82 1351 +3875 420 616 422 1231 +3876 955 1170 1101 1215 +3877 34 33 117 1265 +3878 231 235 230 1452 +3879 948 1203 1205 1306 +3880 839 1178 131 1397 +3881 948 1205 1263 1306 +3882 1096 1264 976 1442 +3883 958 1064 1221 1332 +3884 224 666 627 1201 +3885 346 348 497 1372 +3886 1024 1129 1147 1352 +3887 37 159 36 1114 +3888 999 1217 1192 1434 +3889 994 1316 1381 1429 +3890 419 420 418 1130 +3891 968 1241 1061 1465 +3892 203 1164 202 1439 +3893 974 1189 1142 1400 +3894 939 936 916 1171 +3895 1039 1188 1125 1263 +3896 987 1242 1106 1296 +3897 639 233 229 1143 +3898 1024 1261 1129 1352 +3899 166 49 738 1315 +3900 294 1094 293 1454 +3901 770 1199 772 1338 +3902 306 1134 286 1324 +3903 788 519 533 1145 +3904 426 1384 1120 1448 +3905 1092 1272 981 1358 +3906 870 707 852 1171 +3907 897 1050 588 1318 +3908 1106 1220 996 1454 +3909 481 1199 770 1338 +3910 1095 1134 1006 1483 +3911 578 603 815 1469 +3912 130 803 944 1173 +3913 789 1092 824 1405 +3914 475 553 640 1218 +3915 897 124 588 1050 +3916 472 539 544 1183 +3917 1124 1276 548 1410 +3918 256 766 260 1182 +3919 856 528 549 1210 +3920 901 116 547 1186 +3921 839 874 97 1178 +3922 437 1140 688 1380 +3923 964 1128 1261 1427 +3924 1140 1380 1262 1420 +3925 1058 1252 1080 1320 +3926 1062 1192 999 1345 +3927 422 779 788 1231 +3928 998 1164 1118 1460 +3929 973 1285 1096 1314 +3930 251 252 253 1125 +3931 1154 1313 1070 1419 +3932 1099 1119 1014 1451 +3933 487 785 827 1381 +3934 267 1122 1392 1472 +3935 989 1053 1218 1401 +3936 1138 1189 974 1400 +3937 561 474 842 1142 +3938 1072 1255 973 1322 +3939 1003 1061 1232 1295 +3940 203 204 202 1164 +3941 609 720 1257 1446 +3942 599 564 1336 1402 +3943 954 1217 1110 1434 +3944 1112 1275 1000 1371 +3945 468 522 591 1235 +3946 921 922 1213 1432 +3947 382 558 710 1147 +3948 506 1150 520 1382 +3949 1018 1206 1120 1361 +3950 1084 1286 1180 1467 +3951 596 589 463 1078 +3952 969 1286 1127 1390 +3953 396 1156 687 1317 +3954 883 664 1166 1394 +3955 1012 1119 1099 1437 +3956 557 556 396 1156 +3957 1118 1253 1032 1462 +3958 904 1286 1084 1467 +3959 1143 1212 661 1444 +3960 1133 1275 1000 1369 +3961 267 1122 277 1392 +3962 315 313 1339 1481 +3963 800 815 345 1209 +3964 970 1219 1144 1431 +3965 991 1339 1158 1385 +3966 1164 1310 961 1314 +3967 585 464 586 1120 +3968 969 1084 1233 1286 +3969 573 123 884 1315 +3970 512 536 537 1245 +3971 1038 1335 1162 1378 +3972 50 51 125 1418 +3973 760 484 369 1319 +3974 1234 1320 971 1459 +3975 251 252 1125 1431 +3976 397 1211 349 1386 +3977 181 183 611 1301 +3978 656 654 841 1163 +3979 180 182 181 1301 +3980 487 1056 1381 1457 +3981 997 1089 1337 1482 +3982 767 341 757 1238 +3983 300 183 185 1222 +3984 477 590 642 1423 +3985 1142 1403 1333 1482 +3986 367 330 366 1242 +3987 1021 1183 1155 1485 +3988 613 610 496 1216 +3989 1227 1335 1014 1377 +3990 366 1242 330 1357 +3991 701 324 628 1224 +3992 756 502 869 1349 +3993 968 1273 1104 1393 +3994 599 489 643 1197 +3995 964 1172 1324 1475 +3996 1024 1261 1352 1421 +3997 322 1190 713 1302 +3998 318 317 316 1478 +3999 537 538 907 1245 +4000 930 130 944 1173 +4001 406 1123 470 1334 +4002 994 1381 1319 1429 +4003 986 1140 1262 1346 +4004 1041 1242 1296 1403 +4005 981 1272 1062 1434 +4006 1073 1287 967 1321 +4007 1081 983 1240 1251 +4008 950 1227 1117 1335 +4009 969 1127 1286 1367 +4010 1129 1139 964 1261 +4011 1024 1139 1129 1261 +4012 314 719 364 1339 +4013 313 1344 1339 1481 +4014 549 1186 116 1210 +4015 602 194 197 1141 +4016 783 600 748 1100 +4017 978 1091 1225 1438 +4018 364 1339 1060 1478 +4019 954 1270 1089 1305 +4020 1093 1396 216 1462 +4021 1080 1252 1235 1424 +4022 989 1064 1177 1410 +4023 313 314 1339 1344 +4024 251 1125 739 1355 +4025 426 1120 585 1448 +4026 528 1210 43 1467 +4027 331 373 343 1184 +4028 789 1092 1405 1480 +4029 1171 1200 975 1422 +4030 437 435 688 1140 +4031 522 507 895 1105 +4032 463 589 595 1453 +4033 925 936 921 1213 +4034 923 929 1368 1430 +4035 238 1444 1133 1466 +4036 239 240 241 1428 +4037 666 683 478 1437 +4038 1194 1369 1025 1466 +4039 1157 1201 1046 1416 +4040 810 945 133 1267 +4041 640 641 475 1218 +4042 1041 1087 1234 1404 +4043 1067 1277 1010 1414 +4044 1172 1243 1025 1427 +4045 1106 1217 1027 1238 +4046 934 807 1175 1279 +4047 951 1254 1244 1408 +4048 1095 1329 1006 1406 +4049 142 1286 1180 1390 +4050 998 1118 1164 1310 +4051 362 1324 1172 1475 +4052 968 1090 1273 1393 +4053 542 324 540 1224 +4054 1218 1288 1155 1415 +4055 666 1157 683 1437 +4056 446 444 445 1246 +4057 970 1144 1355 1431 +4058 507 468 455 1105 +4059 284 592 283 1454 +4060 311 309 310 1438 +4061 1102 1394 752 1476 +4062 708 864 810 1283 +4063 283 294 293 1454 +4064 295 296 284 1106 +4065 505 1325 819 1426 +4066 548 593 1124 1410 +4067 972 1244 1112 1275 +4068 1134 1324 306 1475 +4069 642 1177 398 1401 +4070 824 535 881 1092 +4071 1147 1365 988 1409 +4072 963 1149 1067 1294 +4073 1152 1264 1253 1366 +4074 884 593 508 1410 +4075 355 396 395 1317 +4076 119 162 43 1467 +4077 962 1091 1250 1371 +4078 426 464 585 1120 +4079 1048 1009 1251 1450 +4080 665 721 465 1079 +4081 356 626 478 1437 +4082 968 1265 1104 1273 +4083 1073 1197 1030 1412 +4084 668 674 676 1445 +4085 954 1110 1252 1290 +4086 1160 1364 992 1461 +4087 931 1169 919 1200 +4088 317 1158 316 1478 +4089 981 1062 1290 1434 +4090 318 354 319 1196 +4091 1053 1288 1218 1415 +4092 236 1444 238 1466 +4093 1000 1445 1428 1466 +4094 1093 1460 1376 1462 +4095 297 299 285 1129 +4096 419 1130 417 1309 +4097 1012 1201 1155 1415 +4098 758 348 350 1113 +4099 981 1145 1358 1399 +4100 602 194 1141 1388 +4101 866 1397 1304 1443 +4102 743 448 824 1272 +4103 790 813 258 1472 +4104 1183 1186 1021 1470 +4105 212 1118 209 1462 +4106 1067 1207 1034 1216 +4107 980 1092 1178 1480 +4108 980 1145 1092 1480 +4109 312 719 314 1111 +4110 918 919 1169 1432 +4111 1158 1196 1008 1478 +4112 320 775 174 1393 +4113 733 32 165 1104 +4114 669 671 670 1172 +4115 615 1122 268 1389 +4116 954 1110 1290 1434 +4117 332 1253 334 1423 +4118 1079 1195 985 1373 +4119 965 1302 1103 1455 +4120 982 1325 1150 1426 +4121 350 349 351 1211 +4122 968 1203 1098 1395 +4123 963 1186 1071 1387 +4124 160 736 1284 1435 +4125 952 1274 1322 1398 +4126 422 1231 788 1405 +4127 1103 1302 731 1455 +4128 782 838 521 1150 +4129 722 1195 740 1373 +4130 391 1209 1119 1451 +4131 641 1218 217 1401 +4132 1096 1314 1310 1398 +4133 961 1117 1227 1377 +4134 1055 1334 1016 1443 +4135 1092 1145 981 1405 +4136 161 41 142 1390 +4137 1177 1401 989 1410 +4138 745 791 168 1149 +4139 1003 1166 1114 1474 +4140 915 938 871 1447 +4141 202 1164 204 1439 +4142 334 332 333 1253 +4143 167 166 748 1359 +4144 402 391 356 1119 +4145 288 684 683 1157 +4146 138 914 796 1436 +4147 1181 1234 971 1459 +4148 150 552 550 1351 +4149 964 1139 1129 1324 +4150 1177 1401 642 1423 +4151 660 1139 274 1452 +4152 178 177 1237 1359 +4153 981 1290 1110 1434 +4154 1038 1222 1162 1335 +4155 587 1318 588 1453 +4156 747 327 295 1327 +4157 953 1248 1176 1308 +4158 1059 1217 1238 1338 +4159 1262 1299 1019 1420 +4160 881 535 1178 1397 +4161 987 1106 1217 1296 +4162 1143 1243 1025 1444 +4163 962 1250 1091 1300 +4164 919 1200 1169 1432 +4165 200 1141 197 1477 +4166 653 833 841 1163 +4167 475 476 553 1276 +4168 980 1145 1116 1399 +4169 964 1128 1226 1271 +4170 78 85 93 1178 +4171 1137 1328 992 1364 +4172 453 688 435 1140 +4173 865 1160 104 1461 +4174 287 1133 238 1444 +4175 824 1092 1397 1443 +4176 605 1162 604 1378 +4177 30 735 29 1189 +4178 32 1104 1318 1456 +4179 208 209 212 1118 +4180 1044 1329 1370 1408 +4181 262 265 266 1179 +4182 786 1144 787 1347 +4183 460 466 467 1336 +4184 998 1310 1314 1398 +4185 972 1323 1082 1371 +4186 240 270 242 1428 +4187 322 337 713 1190 +4188 943 910 55 1200 +4189 217 640 218 1218 +4190 752 34 117 1102 +4191 1008 1385 1158 1478 +4192 1378 1451 1014 1469 +4193 722 740 721 1373 +4194 362 1172 671 1475 +4195 248 724 250 1219 +4196 660 280 274 1139 +4197 50 886 51 1450 +4198 1001 1322 1072 1372 +4199 547 148 1071 1470 +4200 160 120 736 1435 +4201 949 1269 1098 1282 +4202 309 325 307 1095 +4203 953 1261 1128 1321 +4204 417 1309 1130 1446 +4205 821 277 615 1463 +4206 700 287 651 1133 +4207 640 217 641 1218 +4208 288 684 1157 1455 +4209 615 1122 1389 1463 +4210 961 1164 1074 1310 +4211 949 1262 1115 1278 +4212 1183 1402 1155 1485 +4213 185 703 491 1222 +4214 985 1214 1121 1361 +4215 1263 1306 1039 1471 +4216 315 1339 1158 1481 +4217 831 691 1299 1420 +4218 1041 1333 1403 1482 +4219 343 373 756 1239 +4220 243 245 696 1187 +4221 1037 1369 1329 1406 +4222 356 402 1119 1437 +4223 1064 1221 976 1442 +4224 507 1105 455 1448 +4225 371 570 571 1152 +4226 971 1252 1058 1320 +4227 1061 1241 1232 1465 +4228 299 558 563 1147 +4229 46 148 47 1414 +4230 967 1233 1128 1321 +4231 168 791 792 1149 +4232 1089 1270 1214 1305 +4233 862 1153 797 1348 +4234 995 1192 1062 1257 +4235 1125 1355 251 1431 +4236 770 407 379 1338 +4237 737 618 759 1341 +4238 275 269 1220 1389 +4239 1037 1329 1095 1406 +4240 430 428 429 1168 +4241 1073 1030 1321 1412 +4242 501 1325 505 1382 +4243 1141 1314 1065 1388 +4244 621 624 622 1202 +4245 554 1151 1223 1400 +4246 913 929 1173 1279 +4247 1017 1232 1202 1385 +4248 276 275 269 1220 +4249 718 695 454 1353 +4250 998 1141 1314 1439 +4251 812 857 863 1137 +4252 922 928 1213 1281 +4253 1162 1335 1014 1378 +4254 1006 1406 1329 1408 +4255 942 937 925 1283 +4256 984 1356 1109 1485 +4257 898 146 752 1394 +4258 193 1255 781 1316 +4259 731 1302 1103 1379 +4260 49 50 738 1315 +4261 718 454 1185 1353 +4262 979 1196 1362 1411 +4263 1162 1222 990 1335 +4264 1033 1219 1144 1269 +4265 1042 1360 1175 1383 +4266 979 1098 1205 1395 +4267 357 327 370 1357 +4268 852 879 939 1171 +4269 627 626 219 1415 +4270 982 1260 1057 1325 +4271 315 313 314 1339 +4272 525 404 375 1239 +4273 910 936 939 1171 +4274 1061 1017 1232 1341 +4275 709 306 1324 1475 +4276 948 1206 1121 1291 +4277 385 605 604 1378 +4278 803 946 913 1279 +4279 441 439 833 1135 +4280 615 277 268 1122 +4281 838 521 1150 1383 +4282 959 1206 1121 1361 +4283 1107 1370 1044 1449 +4284 1118 1376 998 1460 +4285 1020 1105 1235 1424 +4286 1066 1228 1026 1351 +4287 970 1144 1269 1411 +4288 1053 1012 1288 1415 +4289 824 1092 881 1397 +4290 969 1286 1233 1367 +4291 1101 1240 952 1274 +4292 23 880 77 1425 +4293 369 482 353 1319 +4294 144 848 25 1181 +4295 1047 1299 1262 1420 +4296 328 769 772 1199 +4297 786 728 787 1144 +4298 617 1167 301 1426 +4299 180 179 346 1237 +4300 1062 1192 1290 1434 +4301 393 562 1223 1454 +4302 31 30 897 1318 +4303 1017 1202 1158 1385 +4304 597 1231 422 1405 +4305 941 1200 919 1432 +4306 1085 980 1307 1391 +4307 202 1439 200 1477 +4308 609 607 720 1446 +4309 193 781 822 1316 +4310 236 234 233 1444 +4311 128 1175 840 1447 +4312 965 1157 1302 1455 +4313 173 793 795 1280 +4314 603 192 191 1388 +4315 1288 1387 1021 1485 +4316 450 449 657 1126 +4317 584 850 1181 1413 +4318 282 286 285 1324 +4319 709 306 286 1324 +4320 826 1342 817 1417 +4321 923 1076 920 1430 +4322 1002 1233 1126 1367 +4323 1127 1254 1075 1435 +4324 809 130 930 1173 +4325 189 606 187 1154 +4326 958 1221 1064 1442 +4327 617 301 819 1426 +4328 920 1076 922 1432 +4329 976 1096 1221 1310 +4330 1141 1065 1314 1439 +4331 204 1164 206 1312 +4332 1106 1242 996 1296 +4333 965 1157 1099 1302 +4334 554 401 360 1151 +4335 448 789 824 1405 +4336 599 564 471 1336 +4337 393 1223 294 1454 +4338 949 1232 1241 1465 +4339 519 533 1145 1480 +4340 832 687 396 1156 +4341 969 1128 1233 1266 +4342 223 222 643 1197 +4343 1258 1344 1111 1438 +4344 1156 1159 1013 1293 +4345 1000 1369 1194 1466 +4346 267 1392 361 1472 +4347 979 1159 1156 1293 +4348 1006 1297 1075 1408 +4349 82 873 150 1351 +4350 479 578 815 1469 +4351 377 1364 581 1413 +4352 981 1110 1358 1434 +4353 1035 1208 1133 1275 +4354 782 1150 506 1426 +4355 948 1293 1205 1395 +4356 971 1116 1320 1399 +4357 1066 1259 1016 1374 +4358 721 665 451 1309 +4359 44 1210 116 1294 +4360 953 1352 1261 1421 +4361 979 1205 1098 1411 +4362 965 1190 1099 1256 +4363 506 521 520 1150 +4364 277 1122 615 1463 +4365 806 1304 151 1374 +4366 306 298 286 1134 +4367 377 581 580 1413 +4368 967 1321 1128 1427 +4369 1269 1278 949 1385 +4370 976 1253 1152 1264 +4371 970 1098 1205 1411 +4372 971 1080 1252 1320 +4373 971 1234 1087 1404 +4374 486 487 485 1457 +4375 923 922 1076 1368 +4376 340 175 176 1277 +4377 520 861 807 1175 +4378 199 198 301 1167 +4379 55 910 879 1200 +4380 853 908 157 1200 +4381 968 1061 1273 1465 +4382 987 1217 1110 1404 +4383 1062 999 1192 1434 +4384 881 1178 839 1397 +4385 548 546 1276 1470 +4386 971 1320 1058 1399 +4387 562 592 730 1454 +4388 306 307 298 1134 +4389 784 749 817 1417 +4390 145 53 768 1161 +4391 307 1095 325 1483 +4392 1055 1358 1092 1443 +4393 948 1306 1263 1471 +4394 968 1090 1395 1465 +4395 909 933 927 1175 +4396 1008 1269 1144 1411 +4397 1134 1224 1006 1483 +4398 1142 1333 997 1482 +4399 662 664 663 1394 +4400 405 551 550 1228 +4401 83 136 104 1461 +4402 170 1295 121 1343 +4403 946 152 934 1279 +4404 1097 965 1190 1379 +4405 373 502 756 1349 +4406 1097 988 1308 1365 +4407 971 1181 1087 1234 +4408 955 1360 1056 1464 +4409 856 549 116 1210 +4410 1058 1320 1116 1399 +4411 34 1102 752 1476 +4412 715 141 172 1107 +4413 949 1098 1241 1282 +4414 1084 1233 1286 1367 +4415 370 1137 857 1364 +4416 1142 1223 974 1400 +4417 582 875 1193 1461 +4418 854 158 1153 1425 +4419 845 574 846 1234 +4420 954 1252 1110 1404 +4421 209 1118 1460 1462 +4422 1122 1311 1015 1472 +4423 957 1191 1112 1370 +4424 1175 1279 993 1368 +4425 48 123 49 1315 +4426 990 1285 1154 1377 +4427 462 663 888 1394 +4428 957 1191 1370 1458 +4429 526 484 760 1108 +4430 401 1151 554 1400 +4431 1076 920 1430 1432 +4432 678 830 326 1344 +4433 789 1405 533 1480 +4434 1117 1268 950 1335 +4435 696 245 259 1484 +4436 643 222 599 1197 +4437 863 370 747 1137 +4438 777 411 769 1257 +4439 1176 1248 953 1356 +4440 1061 1017 1341 1441 +4441 451 1309 417 1446 +4442 965 1109 1256 1416 +4443 991 1385 1232 1458 +4444 221 627 219 1201 +4445 1152 1264 1009 1442 +4446 189 192 606 1154 +4447 201 202 200 1477 +4448 966 1260 1101 1326 +4449 527 528 904 1084 +4450 393 294 562 1454 +4451 1066 1016 1334 1374 +4452 1058 1252 971 1399 +4453 765 216 1396 1462 +4454 1115 1262 949 1346 +4455 469 906 549 1054 +4456 566 821 1159 1392 +4457 1197 1336 984 1402 +4458 688 1380 1140 1420 +4459 700 651 652 1208 +4460 376 344 375 1247 +4461 918 1430 1169 1436 +4462 236 287 238 1444 +4463 1033 1347 1144 1484 +4464 304 594 1253 1366 +4465 250 1136 290 1431 +4466 432 431 433 1350 +4467 954 1089 1270 1424 +4468 707 870 137 1283 +4469 826 1161 1342 1417 +4470 380 344 1247 1366 +4471 206 204 205 1164 +4472 1010 1268 1063 1277 +4473 684 1302 1157 1455 +4474 188 186 1313 1419 +4475 317 315 1158 1481 +4476 634 1284 633 1297 +4477 1154 1162 990 1377 +4478 512 457 511 1367 +4479 267 277 361 1392 +4480 165 1273 171 1393 +4481 881 535 839 1178 +4482 825 715 172 1107 +4483 200 197 199 1477 +4484 768 1161 53 1422 +4485 1084 1029 1303 1467 +4486 956 1204 1110 1358 +4487 753 752 1102 1394 +4488 679 664 662 1166 +4489 826 704 817 1342 +4490 127 1084 904 1286 +4491 193 191 190 1255 +4492 208 207 209 1460 +4493 1092 1272 1055 1443 +4494 641 398 475 1401 +4495 231 659 235 1243 +4496 984 1336 1197 1412 +4497 584 850 848 1181 +4498 1071 1289 1021 1470 +4499 511 457 458 1367 +4500 739 251 253 1125 +4501 210 625 204 1312 +4502 953 1248 1308 1421 +4503 846 584 144 1234 +4504 990 1070 1301 1419 +4505 351 704 374 1342 +4506 266 742 269 1179 +4507 50 885 886 1450 +4508 715 159 141 1343 +4509 1108 1381 1056 1457 +4510 1158 1202 991 1385 +4511 351 1211 704 1342 +4512 1124 1010 1289 1332 +4513 1116 1145 1058 1399 +4514 1054 1356 1303 1412 +4515 649 682 647 1212 +4516 653 841 654 1163 +4517 986 1262 1140 1380 +4518 600 598 347 1386 +4519 1176 953 1303 1356 +4520 922 920 923 1076 +4521 289 1250 696 1300 +4522 960 1089 1214 1305 +4523 616 779 1231 1440 +4524 724 290 250 1136 +4525 332 590 212 1423 +4526 534 874 1178 1348 +4527 130 503 803 1173 +4528 949 1241 1098 1465 +4529 1032 1253 1264 1366 +4530 950 1289 1288 1387 +4531 162 1180 142 1467 +4532 1112 1191 978 1370 +4533 1071 1294 1067 1414 +4534 151 1304 101 1374 +4535 682 661 681 1212 +4536 996 1220 1094 1454 +4537 101 151 113 1304 +4538 986 1262 1115 1346 +4539 425 424 421 1165 +4540 639 229 227 1331 +4541 1099 1157 1012 1437 +4542 1017 1061 1232 1465 +4543 598 397 349 1386 +4544 615 1389 275 1463 +4545 476 475 399 1276 +4546 953 1412 1248 1421 +4547 382 710 384 1409 +4548 909 933 1175 1447 +4549 228 288 226 1455 +4550 863 1137 747 1327 +4551 971 1234 1080 1320 +4552 988 1230 1216 1409 +4553 1180 1266 1029 1280 +4554 1061 1017 1441 1465 +4555 506 782 521 1150 +4556 264 239 1445 1466 +4557 531 529 149 1447 +4558 271 831 691 1299 +4559 25 848 24 1459 +4560 380 594 344 1366 +4561 581 1364 849 1461 +4562 511 527 1367 1433 +4563 1152 1048 1264 1366 +4564 787 1144 291 1355 +4565 954 1290 1192 1434 +4566 419 418 417 1130 +4567 954 1089 1424 1482 +4568 23 854 24 1425 +4569 1099 1190 965 1302 +4570 775 835 122 1138 +4571 1060 1008 1347 1478 +4572 413 414 743 1272 +4573 990 1268 1117 1335 +4574 511 1367 458 1433 +4575 333 304 594 1253 +4576 998 1314 1141 1398 +4577 670 671 362 1172 +4578 996 1403 1142 1482 +4579 1020 1231 1130 1290 +4580 970 1205 1068 1411 +4581 126 574 845 1333 +4582 925 937 916 1283 +4583 964 1226 1128 1427 +4584 333 1253 594 1366 +4585 979 1068 1205 1411 +4586 823 441 833 1298 +4587 250 290 252 1431 +4588 1162 1377 1154 1469 +4589 95 91 89 1363 +4590 266 1179 269 1389 +4591 956 1110 1204 1328 +4592 953 1308 1176 1352 +4593 995 1257 1062 1446 +4594 218 1155 219 1415 +4595 692 718 763 1353 +4596 322 336 1190 1379 +4597 238 1133 700 1428 +4598 986 1236 1166 1474 +4599 1056 1383 1360 1457 +4600 1042 1360 1383 1457 +4601 1003 1061 1295 1476 +4602 1097 1190 965 1479 +4603 924 1281 922 1368 +4604 517 896 523 1116 +4605 728 291 787 1144 +4606 853 1200 54 1422 +4607 967 1128 1226 1427 +4608 531 840 1383 1447 +4609 871 64 938 915 +4610 615 275 293 1463 +4611 725 726 806 1334 +4612 982 1198 1167 1426 +4613 137 916 937 1283 +4614 1094 1223 996 1454 +4615 341 292 757 1238 +4616 272 722 766 1373 +4617 913 929 944 1173 +4618 174 165 171 1393 +4619 918 920 919 1432 +4620 913 947 929 1279 +4621 439 437 447 1380 +4622 1252 1290 1020 1424 +4623 322 1190 1302 1379 +4624 1206 1361 1018 1471 +4625 220 1155 303 1402 +4626 383 496 610 1216 +4627 973 1096 1322 1398 +4628 268 277 267 1122 +4629 582 1193 850 1413 +4630 398 642 334 1177 +4631 708 1249 706 1283 +4632 1126 1233 1030 1433 +4633 193 191 1255 1388 +4634 680 201 617 1477 +4635 337 336 385 1190 +4636 987 1296 1217 1404 +4637 682 661 1212 1444 +4638 326 1258 311 1344 +4639 1071 1021 1289 1387 +4640 789 788 533 1405 +4641 862 532 518 1348 +4642 765 216 771 1396 +4643 23 77 110 1425 +4644 872 503 130 1173 +4645 741 1320 26 1459 +4646 962 1250 1082 1371 +4647 1110 1204 971 1399 +4648 552 132 855 1330 +4649 988 1365 1230 1409 +4650 623 620 825 1449 +4651 153 891 908 1422 +4652 403 842 474 1403 +4653 972 1275 1112 1371 +4654 903 548 1276 1410 +4655 976 1264 1152 1442 +4656 1038 1190 1097 1479 +4657 1116 1320 893 1459 +4658 984 1336 1183 1402 +4659 334 1177 642 1423 +4660 358 390 329 1327 +4661 278 279 321 1379 +4662 136 865 104 1461 +4663 246 271 248 1299 +4664 1032 1260 1093 1462 +4665 454 697 698 1185 +4666 1096 1221 958 1442 +4667 687 711 686 1317 +4668 816 566 821 1159 +4669 950 1109 1207 1387 +4670 1288 1289 1021 1387 +4671 987 1110 1328 1404 +4672 142 41 42 1286 +4673 800 1209 391 1451 +4674 150 873 552 1351 +4675 688 829 1380 1420 +4676 1204 1358 980 1399 +4677 973 1314 1096 1398 +4678 37 36 847 1114 +4679 1094 1389 1122 1463 +4680 259 728 786 1484 +4681 357 377 1357 1364 +4682 143 745 163 1294 +4683 684 713 798 1302 +4684 1101 1274 982 1464 +4685 441 440 1135 1468 +4686 337 1190 385 1378 +4687 263 225 223 1407 +4688 806 151 805 1374 +4689 918 926 1430 1436 +4690 749 1146 52 1417 +4691 366 357 377 1357 +4692 849 370 857 1364 +4693 826 145 1161 1417 +4694 730 1242 367 1403 +4695 1089 997 1424 1482 +4696 586 507 585 1448 +4697 245 244 246 1187 +4698 452 443 823 1298 +4699 834 852 707 1171 +4700 1145 1231 981 1405 +4701 316 1158 1339 1478 +4702 1184 1396 1032 1462 +4703 909 934 807 1175 +4704 973 1255 1072 1313 +4705 796 858 138 1436 +4706 573 885 123 1315 +4707 923 1368 1076 1430 +4708 111 97 93 1178 +4709 1018 1079 1361 1384 +4710 289 243 696 1250 +4711 984 1402 1183 1485 +4712 709 1324 362 1475 +4713 1110 981 1358 1399 +4714 317 1158 323 1481 +4715 1022 1346 1229 1394 +4716 81 158 98 1153 +4717 795 541 794 1132 +4718 1136 1219 970 1431 +4719 1003 1394 1102 1476 +4720 300 339 610 1230 +4721 178 177 179 1237 +4722 599 466 489 1336 +4723 578 192 603 1469 +4724 1190 1256 965 1479 +4725 735 561 844 1189 +4726 873 132 552 1330 +4727 583 1160 865 1461 +4728 1062 1345 999 1434 +4729 1072 1316 994 1429 +4730 148 546 548 1470 +4731 986 1236 1115 1323 +4732 238 287 700 1133 +4733 714 1225 363 1438 +4734 597 422 788 1405 +4735 138 73 914 917 +4736 1009 1315 1100 1418 +4737 1032 1396 1260 1462 +4738 1140 1262 1019 1420 +4739 284 283 276 1220 +4740 962 1082 1323 1371 +4741 976 1221 1096 1442 +4742 971 1252 1110 1399 +4743 386 578 479 1469 +4744 1260 1396 1093 1462 +4745 43 44 119 1210 +4746 673 264 669 1194 +4747 1038 1256 1190 1479 +4748 1139 1243 1011 1452 +4749 899 39 115 1435 +4750 1132 1180 969 1390 +4751 1169 1430 1031 1436 +4752 805 151 101 1374 +4753 755 188 186 1313 +4754 1155 1201 1012 1485 +4755 820 706 708 1249 +4756 326 636 635 1258 +4757 1030 1197 1336 1412 +4758 811 1160 812 1330 +4759 520 807 152 1279 +4760 184 187 703 1419 +4761 1057 1260 1184 1396 +4762 605 703 606 1162 +4763 176 177 178 1359 +4764 616 779 422 1231 +4765 868 1334 806 1374 +4766 853 153 908 1422 +4767 1115 986 1346 1474 +4768 387 337 386 1378 +4769 1021 1155 1218 1288 +4770 682 287 661 1444 +4771 25 1181 848 1459 +4772 935 915 63 801 +4773 1202 1232 1017 1341 +4774 463 1168 430 1350 +4775 965 1256 1109 1479 +4776 1329 1369 951 1406 +4777 1092 981 1272 1405 +4778 1155 1402 1201 1485 +4779 1126 1367 1233 1433 +4780 634 736 633 1284 +4781 1032 1184 1260 1396 +4782 630 629 325 1483 +4783 129 805 76 1374 +4784 893 896 1116 1459 +4785 922 928 925 1213 +4786 1141 1439 998 1477 +4787 1112 1244 951 1275 +4788 424 423 421 1165 +4789 216 1460 1093 1462 +4790 495 795 793 1280 +4791 968 1098 1241 1465 +4792 332 212 304 1253 +4793 403 1333 842 1403 +4794 1132 1224 1006 1271 +4795 1005 1224 1132 1271 +4796 1103 1302 965 1379 +4797 990 1335 1117 1377 +4798 329 292 341 1238 +4799 79 865 811 1160 +4800 963 1207 1109 1387 +4801 473 730 367 1403 +4802 990 1162 1335 1377 +4803 357 370 849 1364 +4804 889 153 53 1422 +4805 1014 1335 1162 1377 +4806 914 919 931 1169 +4807 233 1143 661 1444 +4808 1201 1402 984 1485 +4809 144 584 848 1181 +4810 481 772 770 1199 +4811 1155 1288 1012 1415 +4812 661 233 639 1143 +4813 291 251 1355 1431 +4814 807 128 909 1175 +4815 335 737 759 1441 +4816 664 569 883 1166 +4817 109 1160 79 1330 +4818 883 146 898 1394 +4819 200 1439 1141 1477 +4820 982 1093 1260 1325 +4821 158 523 854 1153 +4822 305 343 344 1184 +4823 984 1248 1109 1356 +4824 247 248 249 1219 +4825 526 486 484 1108 +4826 468 513 461 1235 +4827 408 409 410 1345 +4828 313 326 311 1344 +4829 906 472 545 1186 +4830 668 669 264 1194 +4831 811 857 812 1160 +4832 547 148 901 1071 +4833 264 239 667 1445 +4834 749 51 52 1146 +4835 145 768 826 1161 +4836 202 204 625 1439 +4837 724 692 290 1136 +4838 769 411 409 1345 +4839 441 1135 1298 1468 +4840 702 624 323 1202 +4841 1069 1044 1370 1449 +4842 288 683 666 1157 +4843 938 65 871 1447 +4844 1110 1358 1204 1399 +4845 1115 1191 957 1458 +4846 504 505 506 1382 +4847 178 179 180 1237 +4848 797 158 81 1153 +4849 255 253 254 1188 +4850 540 324 701 1224 +4851 1090 1441 1017 1465 +4852 570 333 594 1366 +4853 152 946 803 1279 +4854 79 104 865 1160 +4855 1004 1075 1284 1408 +4856 786 787 499 1347 +4857 538 568 569 1292 +4858 809 872 130 1173 +4859 800 625 391 1209 +4860 938 909 65 1447 +4861 741 26 25 1459 +4862 1048 1251 1146 1450 +4863 94 96 90 1259 +4864 650 653 652 1208 +4865 48 166 118 1131 +4866 602 197 200 1141 +4867 100 76 94 1374 +4868 686 711 761 1441 +4869 127 527 904 1084 +4870 754 902 1265 1456 +4871 1021 1289 1276 1470 +4872 386 1378 604 1469 +4873 958 1221 1117 1332 +4874 264 1445 1194 1466 +4875 1004 1284 1075 1435 +4876 783 125 784 1418 +4877 816 821 557 1159 +4878 111 80 16 131 +4879 966 1239 1184 1247 +4880 1133 1444 1025 1466 +4881 264 668 1194 1445 +4882 338 381 339 1230 +4883 983 1211 1342 1417 +4884 220 219 218 1155 +4885 1065 1377 1014 1469 +4886 351 397 704 1211 +4887 797 862 523 1153 +4888 759 622 761 1341 +4889 165 33 140 1273 +4890 241 242 243 1250 +4891 504 501 505 1382 +4892 441 440 439 1135 +4893 925 921 922 1213 +4894 581 1413 1364 1461 +4895 162 173 142 1180 +4896 291 249 251 1431 +4897 1065 1154 1377 1469 +4898 1232 1295 1061 1341 +4899 1051 1295 1232 1341 +4900 752 117 753 1102 +4901 840 128 861 1175 +4902 586 464 587 1453 +4903 1143 1025 1243 1427 +4904 1074 1401 1177 1423 +4905 461 1235 513 1440 +4906 862 797 139 1348 +4907 1051 1232 1202 1341 +4908 68 913 803 946 +4909 965 1302 1190 1379 +4910 1032 1093 1376 1462 +4911 451 419 417 1309 +4912 248 250 249 1219 +4913 249 1219 250 1431 +4914 45 44 116 1294 +4915 142 1180 699 1390 +4916 423 461 616 1440 +4917 818 302 785 1198 +4918 976 1253 1118 1423 +4919 672 388 671 1475 +4920 965 1248 1109 1416 +4921 109 79 107 1330 +4922 479 815 800 1451 +4923 157 931 876 1200 +4924 954 1270 1290 1424 +4925 171 140 737 1273 +4926 969 1128 1266 1271 +4927 804 16 80 131 +4928 276 283 275 1220 +4929 709 362 671 1475 +4930 1115 1236 986 1474 +4931 934 152 807 1279 +4932 1133 1428 238 1466 +4933 76 805 101 1374 +4934 538 537 115 1245 +4935 984 1109 1248 1416 +4936 507 522 468 1105 +4937 1304 1397 1016 1443 +4938 801 915 63 149 +4939 978 1329 1112 1370 +4940 946 934 947 1279 +4941 647 682 681 1212 +4942 55 54 853 1200 +4943 173 699 142 1180 +4944 1169 1200 975 1432 +4945 340 176 612 1277 +4946 224 1201 221 1407 +4947 413 743 726 1443 +4948 100 82 105 1351 +4949 87 85 86 1391 +4950 827 1316 488 1381 +4951 227 228 226 1331 +4952 676 363 714 1225 +4953 793 493 495 1280 +4954 1093 1260 1032 1376 +4955 850 582 851 1193 +4956 318 365 354 1362 +4957 148 593 47 1124 +4958 1187 1250 962 1300 +4959 604 1378 1162 1469 +4960 718 454 698 1185 +4961 471 564 539 1183 +4962 51 134 1146 1450 +4963 203 205 204 1164 +4964 81 86 85 1153 +4965 453 433 695 1174 +4966 482 774 758 1429 +4967 952 1322 1096 1398 +4968 159 170 121 1343 +4969 974 1223 1151 1400 +4970 970 1355 1125 1431 +4971 35 1295 121 1476 +4972 266 265 742 1179 +4973 112 132 102 1330 +4974 732 364 778 1478 +4975 665 421 419 1309 +4976 646 647 645 1287 +4977 638 559 381 1365 +4978 799 831 271 1299 +4979 915 871 149 1447 +4980 426 585 424 1448 +4981 310 714 363 1438 +4982 931 157 74 914 +4983 432 430 431 1350 +4984 1087 992 1364 1413 +4985 291 251 739 1355 +4986 438 662 436 1229 +4987 236 238 237 1466 +4988 519 532 533 1480 +4989 299 710 558 1147 +4990 904 42 1286 1467 +4991 841 447 829 1380 +4992 340 612 613 1277 +4993 951 1329 1406 1408 +4994 663 753 888 1394 +4995 198 302 818 1198 +4996 827 822 488 1316 +4997 930 944 926 1173 +4998 632 629 631 1297 +4999 154 24 854 1459 +5000 952 1376 1274 1398 +5001 766 609 260 1182 +5002 61 810 912 945 +5003 482 1319 483 1429 +5004 625 1209 345 1439 +5005 878 12 105 129 +5006 735 844 29 1189 +5007 426 427 428 1384 +5008 240 239 238 1466 +5009 740 762 698 1195 +5010 1044 1284 1107 1449 +5011 564 220 303 1402 +5012 731 1302 684 1455 +5013 1032 1326 1264 1376 +5014 164 121 1295 1476 +5015 970 1269 1098 1411 +5016 105 82 11 150 +5017 761 759 1341 1441 +5018 641 642 398 1401 +5019 776 819 505 1325 +5020 764 731 684 1455 +5021 548 508 593 1410 +5022 714 672 676 1225 +5023 556 832 396 1156 +5024 581 849 583 1461 +5025 323 1202 624 1481 +5026 32 754 1265 1456 +5027 485 488 483 1381 +5028 799 271 246 1299 +5029 835 555 561 1400 +5030 394 293 392 1463 +5031 528 856 43 1210 +5032 199 1167 617 1477 +5033 127 511 527 1367 +5034 96 93 90 1307 +5035 918 911 926 1436 +5036 838 840 521 1383 +5037 240 1428 239 1466 +5038 240 238 1428 1466 +5039 804 1304 866 1397 +5040 953 1303 1356 1412 +5041 1011 1103 1421 1452 +5042 322 336 337 1190 +5043 945 935 62 1267 +5044 941 931 919 1200 +5045 934 909 927 1175 +5046 620 170 715 1343 +5047 1008 1362 1196 1411 +5048 164 35 121 1476 +5049 140 34 164 1476 +5050 91 100 94 1259 +5051 1096 958 1354 1442 +5052 289 696 675 1300 +5053 1032 1260 1326 1376 +5054 866 744 1397 1443 +5055 231 234 659 1243 +5056 450 459 458 1433 +5057 256 255 254 1188 +5058 607 451 417 1446 +5059 32 1318 147 1456 +5060 699 794 169 1390 +5061 216 209 1460 1462 +5062 957 1236 1115 1474 +5063 991 1202 1158 1481 +5064 1116 971 1320 1459 +5065 560 393 562 1223 +5066 1264 1326 952 1376 +5067 771 505 501 1325 +5068 33 32 754 1265 +5069 909 1175 128 1447 +5070 83 92 103 1193 +5071 397 351 349 1211 +5072 1020 1290 1270 1424 +5073 554 393 560 1223 +5074 899 1127 40 1435 +5075 235 660 274 1452 +5076 824 1397 744 1443 +5077 79 1160 811 1330 +5078 1014 1377 1162 1469 +5079 554 360 543 1151 +5080 552 837 550 1228 +5081 531 128 840 1447 +5082 76 105 12 129 +5083 675 716 717 1300 +5084 641 217 477 1401 +5085 38 37 568 1292 +5086 576 404 858 1148 +5087 221 224 627 1201 +5088 1124 1276 989 1289 +5089 810 133 859 1267 +5090 989 1124 1289 1332 +5091 87 90 93 1307 +5092 32 31 147 1318 +5093 575 576 891 1148 +5094 868 806 805 1374 +5095 311 635 309 1258 +5096 809 502 872 1349 +5097 378 405 550 1228 +5098 537 536 115 1245 +5099 573 886 885 1450 +5100 755 497 774 1372 +5101 1201 1416 1012 1485 +5102 914 918 1169 1436 +5103 158 98 1153 1425 +5104 1048 1251 1264 1326 +5105 100 91 99 1351 +5106 1093 998 1376 1460 +5107 199 301 617 1167 +5108 49 885 50 1315 +5109 1016 1397 1092 1443 +5110 801 867 526 1267 +5111 11 105 150 878 +5112 1233 1367 1084 1433 +5113 971 1110 1252 1404 +5114 322 321 336 1379 +5115 609 720 777 1257 +5116 731 322 1302 1379 +5117 953 1356 1248 1412 +5118 656 829 831 1420 +5119 369 483 482 1319 +5120 503 860 803 1279 +5121 504 520 860 1382 +5122 170 618 121 1295 +5123 1284 1297 1044 1408 +5124 42 162 142 1467 +5125 899 900 40 1127 +5126 702 622 624 1202 +5127 800 345 625 1209 +5128 646 644 657 1287 +5129 991 1339 1111 1344 +5130 428 1168 595 1453 +5131 108 1391 86 1425 +5132 534 1178 535 1480 +5133 770 379 359 1338 +5134 195 190 188 1313 +5135 914 157 74 796 +5136 1075 1297 1284 1408 +5137 61 810 945 133 +5138 243 244 245 1187 +5139 220 218 303 1155 +5140 988 1097 1308 1479 +5141 447 437 688 1380 +5142 762 740 722 1195 +5143 664 882 569 1166 +5144 317 323 315 1481 +5145 79 109 104 1160 +5146 102 112 873 132 +5147 137 706 707 1283 +5148 79 8 112 1330 +5149 1011 1143 1243 1427 +5150 931 943 876 1200 +5151 78 93 97 1178 +5152 380 376 509 1247 +5153 583 865 136 1461 +5154 1012 1201 1157 1416 +5155 103 106 83 1193 +5156 845 144 26 1234 +5157 789 533 535 1480 +5158 1117 1285 990 1377 +5159 346 497 712 1372 +5160 834 155 852 1171 +5161 328 772 481 1199 +5162 863 747 390 1327 +5163 768 53 54 1422 +5164 875 851 582 1193 +5165 1042 1383 1175 1447 +5166 536 524 899 1127 +5167 683 798 402 1437 +5168 842 403 574 1333 +5169 855 132 812 1330 +5170 1057 1325 1260 1396 +5171 759 618 619 1341 +5172 182 184 1301 1419 +5173 152 860 520 1279 +5174 1180 1286 969 1390 +5175 883 898 664 1394 +5176 51 134 52 1146 +5177 899 524 900 1127 +5178 86 1391 1153 1425 +5179 441 442 440 1468 +5180 591 135 890 1235 +5181 914 917 918 1436 +5182 910 55 2 943 +5183 874 839 534 1178 +5184 566 277 821 1392 +5185 777 720 411 1257 +5186 903 548 546 1276 +5187 634 633 631 1297 +5188 152 67 946 934 +5189 808 71 911 930 +5190 927 933 924 1368 +5191 923 924 922 1368 +5192 960 1311 1121 1375 +5193 605 606 604 1162 +5194 983 1342 1161 1417 +5195 316 1339 364 1478 +5196 896 517 893 1116 +5197 506 520 504 1382 +5198 641 477 642 1401 +5199 1193 1413 582 1461 +5200 488 781 780 1316 +5201 965 1308 1097 1479 +5202 1012 1288 1155 1485 +5203 912 940 945 1267 +5204 954 1290 1252 1424 +5205 13 76 129 805 +5206 915 871 64 149 +5207 524 512 511 1367 +5208 602 603 194 1388 +5209 101 14 113 151 +5210 968 1395 1098 1465 +5211 882 664 679 1166 +5212 989 1276 1124 1410 +5213 599 222 564 1402 +5214 1203 1306 948 1471 +5215 781 193 190 1255 +5216 534 1348 1178 1480 +5217 82 102 10 873 +5218 398 334 372 1177 +5219 414 416 448 1272 +5220 207 203 680 1460 +5221 218 219 215 1415 +5222 952 1264 1251 1326 +5223 445 648 449 1246 +5224 430 595 428 1168 +5225 150 82 10 873 +5226 45 163 44 1294 +5227 152 68 803 946 +5228 223 224 221 1407 +5229 266 269 268 1389 +5230 887 572 510 1450 +5231 386 604 578 1469 +5232 232 174 171 1393 +5233 582 136 875 1461 +5234 212 209 213 1462 +5235 172 160 736 1284 +5236 870 58 137 916 +5237 749 52 145 1417 +5238 575 404 576 1148 +5239 790 258 262 1472 +5240 89 91 90 1259 +5241 1130 1309 995 1446 +5242 903 476 399 1276 +5243 651 650 652 1208 +5244 102 112 9 873 +5245 369 484 483 1319 +5246 753 898 752 1394 +5247 399 903 1276 1410 +5248 616 514 779 1440 +5249 1026 1330 1160 1363 +5250 1104 1007 1318 1456 +5251 46 47 734 1414 +5252 984 1416 1201 1485 +5253 549 906 545 1186 +5254 820 843 368 1249 +5255 1260 1325 1093 1396 +5256 471 539 472 1183 +5257 943 55 876 1200 +5258 188 187 186 1419 +5259 911 917 72 1436 +5260 979 1205 1293 1395 +5261 447 688 829 1380 +5262 207 216 209 1460 +5263 157 876 853 1200 +5264 730 296 330 1242 +5265 151 806 866 1304 +5266 881 839 131 1397 +5267 782 301 818 1426 +5268 86 81 98 1153 +5269 926 1173 929 1430 +5270 844 842 126 1333 +5271 864 137 937 1283 +5272 1155 1288 1021 1485 +5273 945 62 133 1267 +5274 704 705 374 1342 +5275 211 210 206 1312 +5276 17 97 111 131 +5277 980 1178 1348 1480 +5278 1145 1405 1092 1480 +5279 704 826 705 1342 +5280 535 534 839 1178 +5281 305 331 343 1184 +5282 525 375 756 1239 +5283 943 941 910 1200 +5284 731 278 322 1379 +5285 229 230 228 1331 +5286 678 1344 313 1481 +5287 696 716 1300 1484 +5288 76 13 101 805 +5289 387 479 802 1451 +5290 365 498 480 1362 +5291 565 361 566 1392 +5292 857 370 863 1137 +5293 492 383 384 1409 +5294 869 808 525 1436 +5295 382 383 339 1409 +5296 547 546 148 1470 +5297 787 291 814 1355 +5298 148 548 593 1124 +5299 19 84 78 874 +5300 873 102 132 1330 +5301 858 525 138 1436 +5302 210 204 206 1312 +5303 81 84 20 797 +5304 114 101 1304 1374 +5305 523 158 797 1153 +5306 96 114 80 1304 +5307 796 73 914 138 +5308 913 946 947 1279 +5309 589 905 587 1453 +5310 1150 1360 1056 1383 +5311 573 572 886 1450 +5312 463 595 430 1168 +5313 831 689 691 1420 +5314 829 688 689 1420 +5315 615 268 275 1389 +5316 470 868 751 1334 +5317 113 15 80 1304 +5318 147 1318 905 1456 +5319 98 86 1153 1425 +5320 875 5 83 136 +5321 622 759 619 1341 +5322 755 195 188 1313 +5323 836 463 432 1350 +5324 694 907 456 1468 +5325 859 133 526 1267 +5326 767 770 359 1338 +5327 570 594 380 1366 +5328 193 194 191 1388 +5329 731 322 713 1302 +5330 914 918 919 1169 +5331 315 678 313 1481 +5332 396 687 395 1317 +5333 114 101 113 1304 +5334 807 66 909 128 +5335 662 462 436 1229 +5336 868 805 129 1374 +5337 89 87 88 1391 +5338 127 524 511 1367 +5339 951 1369 1226 1406 +5340 589 902 754 1456 +5341 584 580 850 1413 +5342 547 1186 545 1470 +5343 837 378 550 1228 +5344 128 871 65 1447 +5345 182 186 184 1419 +5346 17 97 131 839 +5347 320 174 232 1393 +5348 225 226 224 1407 +5349 300 338 339 1230 +5350 128 65 909 1447 +5351 780 482 483 1429 +5352 1133 1000 1428 1466 +5353 445 449 446 1246 +5354 381 558 382 1365 +5355 734 773 143 1414 +5356 1194 1445 1000 1466 +5357 804 866 744 1397 +5358 71 808 809 930 +5359 123 885 49 1315 +5360 240 238 700 1428 +5361 1015 1392 1122 1472 +5362 215 626 211 1415 +5363 375 343 756 1239 +5364 741 893 1320 1459 +5365 984 1109 1416 1485 +5366 373 500 502 1349 +5367 236 233 661 1444 +5368 811 583 857 1160 +5369 66 909 934 807 +5370 26 741 135 1320 +5371 826 817 145 1417 +5372 164 121 618 1295 +5373 172 736 634 1284 +5374 771 776 505 1325 +5375 487 827 485 1381 +5376 167 748 177 1359 +5377 743 824 744 1443 +5378 957 1115 1458 1474 +5379 241 243 289 1250 +5380 538 115 568 1292 +5381 482 780 774 1429 +5382 500 503 872 1349 +5383 414 448 743 1272 +5384 330 327 357 1357 +5385 904 528 43 1467 +5386 879 852 155 1171 +5387 696 259 716 1484 +5388 497 755 712 1372 +5389 267 361 790 1472 +5390 314 364 316 1339 +5391 202 625 345 1439 +5392 332 304 333 1253 +5393 581 582 1413 1461 +5394 628 307 325 1483 +5395 623 828 636 1449 +5396 311 326 635 1258 +5397 465 427 425 1384 +5398 220 222 221 1402 +5399 411 412 410 1345 +5400 854 877 158 1425 +5401 15 113 151 1304 +5402 977 1306 1203 1471 +5403 819 782 506 1426 +5404 199 617 201 1477 +5405 143 163 45 1294 +5406 139 20 84 797 +5407 471 467 466 1336 +5408 694 456 442 1468 +5409 931 941 943 1200 +5410 718 690 695 1353 +5411 923 929 927 1368 +5412 1364 1413 992 1461 +5413 432 463 430 1350 +5414 1153 1391 1036 1425 +5415 604 192 578 1469 +5416 207 680 216 1460 +5417 89 92 95 1363 +5418 43 856 44 1210 +5419 92 109 95 1363 +5420 315 314 316 1339 +5421 14 101 805 151 +5422 941 919 921 1432 +5423 581 582 580 1413 +5424 709 282 362 1324 +5425 856 116 44 1210 +5426 394 821 615 1463 +5427 935 940 932 1267 +5428 515 890 893 1320 +5429 161 142 699 1390 +5430 1162 1378 1014 1469 +5431 23 1 110 77 +5432 19 84 874 139 +5433 824 881 744 1397 +5434 380 344 376 1247 +5435 182 184 183 1301 +5436 345 200 202 1439 +5437 992 1413 1193 1461 +5438 591 890 513 1235 +5439 264 667 668 1445 +5440 501 504 503 1382 +5441 730 330 367 1242 +5442 386 385 604 1378 +5443 240 700 270 1428 +5444 132 112 8 1330 +5445 991 1158 1339 1481 +5446 893 154 896 1459 +5447 585 507 455 1448 +5448 917 138 72 1436 +5449 861 128 807 1175 +5450 823 443 441 1298 +5451 209 216 765 1462 +5452 329 747 295 1327 +5453 88 86 108 1391 +5454 403 474 473 1403 +5455 924 932 928 1281 +5456 802 800 391 1451 +5457 534 139 874 1348 +5458 377 849 581 1364 +5459 937 137 58 916 +5460 112 102 107 1330 +5461 165 140 171 1273 +5462 718 692 690 1353 +5463 738 50 125 1418 +5464 720 607 415 1446 +5465 828 825 634 1449 +5466 160 39 120 1435 +5467 929 926 944 1173 +5468 820 708 843 1249 +5469 313 678 326 1344 +5470 98 81 21 158 +5471 33 754 117 1265 +5472 701 628 629 1483 +5473 356 478 402 1437 +5474 646 645 644 1287 +5475 82 99 102 1351 +5476 116 549 545 1186 +5477 765 389 331 1396 +5478 357 849 377 1364 +5479 547 116 545 1186 +5480 18 97 839 874 +5481 104 83 5 136 +5482 230 235 273 1452 +5483 110 98 877 1425 +5484 468 591 513 1235 +5485 668 667 674 1445 +5486 365 480 354 1362 +5487 845 846 144 1234 +5488 873 112 9 132 +5489 860 503 504 1382 +5490 311 310 312 1438 +5491 337 385 386 1378 +5492 797 21 81 158 +5493 39 40 120 1435 +5494 476 1276 546 1470 +5495 316 364 732 1478 +5496 921 920 922 1432 +5497 390 747 329 1327 +5498 15 804 80 1304 +5499 687 686 395 1317 +5500 470 725 806 1334 +5501 935 801 62 1267 +5502 585 455 424 1448 +5503 898 663 664 1394 +5504 79 811 8 1330 +5505 318 316 732 1478 +5506 461 513 514 1440 +5507 176 167 177 1359 +5508 544 476 546 1470 +5509 722 721 608 1373 +5510 633 632 631 1297 +5511 854 23 877 1425 +5512 910 2 55 879 +5513 984 1248 1356 1412 +5514 323 624 678 1481 +5515 665 419 451 1309 +5516 991 1339 1344 1481 +5517 903 546 476 1276 +5518 97 18 78 874 +5519 267 790 262 1472 +5520 114 94 101 1374 +5521 147 588 905 1318 +5522 442 456 440 1468 +5523 675 696 716 1300 +5524 851 4 106 875 +5525 182 183 181 1301 +5526 251 250 252 1431 +5527 366 330 357 1357 +5528 765 771 389 1396 +5529 38 568 115 1292 +5530 922 924 928 1281 +5531 532 1348 534 1480 +5532 464 428 595 1453 +5533 887 134 572 1450 +5534 734 143 46 1414 +5535 911 72 808 1436 +5536 741 154 893 1459 +5537 51 886 134 1450 +5538 170 159 715 1343 +5539 811 865 583 1160 +5540 597 789 448 1405 +5541 347 349 348 1386 +5542 487 529 530 1457 +5543 127 904 42 1286 +5544 41 127 42 1286 +5545 153 853 54 1422 +5546 228 764 288 1455 +5547 381 559 558 1365 +5548 291 739 814 1355 +5549 753 663 898 1394 +5550 473 367 403 1403 +5551 934 152 67 807 +5552 555 401 554 1400 +5553 117 754 902 1265 +5554 201 200 199 1477 +5555 488 822 781 1316 +5556 722 608 766 1373 +5557 15 151 804 1304 +5558 4 83 106 875 +5559 709 286 282 1324 +5560 738 125 783 1418 +5561 39 899 40 1435 +5562 110 877 23 1425 +5563 607 417 415 1446 +5564 249 250 251 1431 +5565 485 827 488 1381 +5566 427 426 425 1384 +5567 842 574 126 1333 +5568 471 466 599 1336 +5569 332 334 642 1423 +5570 923 926 929 1430 +5571 287 236 661 1444 +5572 864 708 137 1283 +5573 589 587 595 1453 +5574 526 133 801 1267 +5575 684 731 713 1302 +5576 310 363 312 1438 +5577 264 237 239 1466 +5578 227 229 228 1331 +5579 110 98 22 877 +5580 35 34 752 1476 +5581 110 77 108 1425 +5582 161 699 169 1390 +5583 25 24 154 1459 +5584 716 259 786 1484 +5585 761 335 759 1441 +5586 133 62 801 1267 +5587 938 915 933 1447 +5588 868 470 806 1334 +5589 838 530 840 1383 +5590 335 761 711 1441 +5591 810 864 60 912 +5592 388 306 709 1475 +5593 235 274 273 1452 +5594 811 79 7 865 +5595 860 152 803 1279 +5596 269 275 268 1389 +5597 603 191 194 1388 +5598 278 321 322 1379 +5599 288 764 684 1455 +5600 332 642 590 1423 +5601 135 741 890 1320 +5602 876 55 853 1200 +5603 566 361 277 1392 +5604 136 6 104 865 +5605 527 458 460 1433 +5606 532 139 534 1348 +5607 219 626 215 1415 +5608 778 786 499 1347 +5609 132 8 811 1330 +5610 75 876 157 931 +5611 91 94 90 1259 +5612 683 402 478 1437 +5613 409 411 410 1345 +5614 77 23 1 880 +5615 372 508 399 1410 +5616 347 598 349 1386 +5617 890 741 893 1320 +5618 394 615 293 1463 +5619 749 145 817 1417 +5620 137 59 864 937 +5621 383 382 384 1409 +5622 138 525 808 1436 +5623 511 458 527 1433 +5624 158 877 98 1425 +5625 209 765 213 1462 +5626 53 153 54 1422 +5627 592 294 283 1454 +5628 137 708 706 1283 +5629 94 76 101 1374 +5630 866 726 744 1443 +5631 918 926 920 1430 +5632 225 224 223 1407 +5633 782 819 301 1426 +5634 531 149 871 1447 +5635 64 63 915 149 +5636 580 582 850 1413 +5637 555 835 401 1400 +5638 944 930 70 130 +5639 106 77 3 880 +5640 184 186 187 1419 +5641 876 75 943 931 +5642 829 689 831 1420 +5643 597 788 789 1405 +5644 147 897 588 1318 +5645 592 562 294 1454 +5646 138 808 72 1436 +5647 98 108 86 1425 +5648 220 564 222 1402 +5649 930 809 70 130 +5650 530 531 840 1383 +5651 754 32 147 1456 +5652 910 939 56 879 +5653 458 459 460 1433 +5654 74 73 914 796 +5655 623 825 828 1449 +5656 744 131 804 1397 +5657 533 532 534 1480 +5658 909 938 933 1447 +5659 487 486 529 1457 +5660 82 10 11 150 +5661 616 461 514 1440 +5662 867 529 486 1457 +5663 82 100 99 1351 +5664 104 7 79 865 +5665 60 864 937 912 +5666 3 106 880 851 +5667 943 55 2 876 +5668 802 479 800 1451 +5669 66 65 909 128 +5670 76 12 13 129 +5671 628 325 629 1483 +5672 582 581 136 1461 +5673 927 924 923 1368 +5674 903 508 548 1410 +5675 15 16 80 804 +5676 671 388 709 1475 +5677 239 237 238 1466 +5678 589 147 905 1456 +5679 104 5 6 136 +5680 811 812 132 1330 +5681 58 59 137 937 +5682 900 127 41 1286 +5683 940 935 945 1267 +5684 17 111 16 131 +5685 939 852 56 879 +5686 69 68 913 803 +5687 74 75 157 931 +5688 35 164 34 1476 +5689 128 531 871 1447 +5690 911 918 917 1436 +5691 533 534 535 1480 +5692 572 134 886 1450 +5693 726 743 744 1443 +5694 112 107 79 1330 +5695 872 502 500 1349 +5696 315 323 678 1481 +5697 926 923 920 1430 +5698 139 532 862 1348 +5699 31 897 147 1318 +5700 162 42 43 1467 +5701 754 147 589 1456 +5702 42 904 43 1467 +5703 921 919 920 1432 +5704 72 71 911 808 +5705 114 113 80 1304 +5706 88 87 86 1391 +5707 158 22 98 877 +5708 866 804 151 1304 +5709 63 62 935 801 +5710 852 56 57 939 +5711 101 13 14 805 +5712 881 131 744 1397 +5713 581 583 136 1461 +5714 110 108 98 1425 +5715 20 21 81 797 +5716 106 3 4 851 +5717 741 25 154 1459 +5718 97 17 18 839 +5719 67 68 152 946 +5720 8 9 112 132 +5721 70 71 809 930 +5722 23 110 1 877 +5723 84 19 20 139 +5724 79 7 8 811 +5725 67 66 934 807 +5726 60 61 810 912 +5727 399 508 903 1410 +5728 22 1 110 877 +5729 15 113 14 151 +5730 464 595 587 1453 +5731 56 2 910 879 +5732 57 58 870 916 +5733 19 78 18 874 +5734 22 98 21 158 +5735 1 3 77 880 +5736 545 544 546 1470 +5737 547 545 546 1470 +5738 62 61 945 133 +5739 2 75 943 876 +5740 70 69 944 130 +5741 104 6 7 865 +5742 59 60 864 937 +5743 102 9 10 873 +5744 72 73 138 917 +5745 83 4 5 875 +5746 105 11 12 878 +5747 65 64 938 871 +5748 1292 160 1435 38 +5749 1292 1435 160 1004 +5750 1246 1298 443 452 +5751 443 1298 1246 1083 +5752 1135 1229 1380 986 +5753 1380 1229 1135 438 +5754 1138 320 1393 775 +5755 1138 1393 320 1023 +5756 416 1231 418 597 +5757 418 1231 416 1130 +5758 1411 1017 979 1196 +5759 1411 979 1017 1098 +5760 1481 1069 991 1202 +5761 1481 991 1069 1344 +5762 1449 1051 1107 1069 +5763 1449 1107 1051 1343 +5764 303 1021 1218 553 +5765 1218 1021 303 1155 +5766 1267 1447 932 915 +5767 932 1447 1267 1042 +5768 1246 443 444 445 +5769 1246 444 443 1083 +5770 457 1246 693 446 +5771 693 1246 457 1002 +5772 1188 1373 1195 272 +5773 1195 1373 1188 985 +5774 394 1013 1151 556 +5775 1151 1013 394 1463 +5776 1151 392 394 556 +5777 394 392 1151 1463 +5778 1354 1070 1322 1001 +5779 1354 1322 1070 1285 +5780 297 1324 285 286 +5781 285 1324 297 1129 +5782 1384 1168 429 428 +5783 1384 429 1168 1018 +5784 247 1187 1484 245 +5785 1484 1187 247 1033 +5786 1147 384 494 710 +5787 1147 494 384 1077 +5788 1391 1363 89 1085 +5789 1391 89 1363 88 +5790 1225 1475 308 388 +5791 308 1475 1225 1037 +5792 1388 196 193 194 +5793 1388 193 196 1255 +5794 1228 358 390 837 +5795 1228 390 358 1059 +5796 1384 429 697 427 +5797 1384 697 429 1018 +5798 1237 1285 1354 1070 +5799 1354 1285 1237 958 +5800 1188 252 253 254 +5801 1188 253 252 1125 +5802 1376 976 1096 1264 +5803 1376 1096 976 1310 +5804 1462 305 304 1032 +5805 1462 304 305 213 +5806 1102 596 888 1078 +5807 1102 888 596 753 +5808 1282 968 1078 1203 +5809 1282 1078 968 1241 +5810 1353 1306 1282 977 +5811 1353 1282 1306 1136 +5812 1426 1056 838 1150 +5813 1426 838 1056 1198 +5814 1117 1314 1377 961 +5815 1377 1314 1117 1285 +5816 1287 658 263 1073 +5817 1287 263 658 645 +5818 1271 1129 1261 1005 +5819 1271 1261 1129 964 +5820 768 1171 1422 155 +5821 1422 1171 768 1161 +5822 1363 1461 92 1160 +5823 92 1461 1363 1193 +5824 1164 208 1460 205 +5825 1164 1460 208 1118 +5826 1459 896 854 154 +5827 1459 854 896 1116 +5828 1203 1168 1078 977 +5829 1203 1078 1168 1007 +5830 1156 1395 1090 979 +5831 1090 1395 1156 1023 +5832 1480 518 519 532 +5833 1480 519 518 1145 +5834 119 1294 44 163 +5835 44 1294 119 1210 +5836 1425 156 24 23 +5837 1425 24 156 1036 +5838 974 1400 1291 1138 +5839 974 1291 1400 1151 +5840 1023 1291 1400 1138 +5841 1023 1400 1291 1151 +5842 1309 1020 420 1130 +5843 1309 420 1020 1165 +5844 1466 673 264 237 +5845 1466 264 673 1194 +5846 1240 1386 1211 1081 +5847 1211 1386 1240 1113 +5848 1321 1126 1287 967 +5849 1321 1287 1126 1030 +5850 435 1229 437 436 +5851 437 1229 435 1140 +5852 1318 1206 1453 1007 +5853 1318 1453 1206 1050 +5854 1388 189 192 191 +5855 1388 192 189 1154 +5856 1432 936 1213 921 +5857 1432 1213 936 1171 +5858 1278 1187 1300 1033 +5859 1278 1300 1187 962 +5860 565 1355 498 814 +5861 498 1355 565 1068 +5862 1359 118 166 1131 +5863 1359 166 118 167 +5864 1331 658 225 227 +5865 1331 225 658 1073 +5866 1347 1269 1278 1033 +5867 1347 1278 1269 1008 +5868 1431 1039 970 1136 +5869 1431 970 1039 1125 +5870 1403 560 474 473 +5871 1403 474 560 1142 +5872 1292 1435 1245 115 +5873 1245 1435 1292 1004 +5874 1442 1100 1009 1315 +5875 1442 1009 1100 1354 +5876 1381 484 483 485 +5877 1381 483 484 1319 +5878 1318 122 1104 31 +5879 1318 1104 122 1138 +5880 733 1104 122 31 +5881 733 122 1104 1138 +5882 1316 1274 1072 994 +5883 1316 1072 1274 1045 +5884 1322 1072 1274 994 +5885 1322 1274 1072 1045 +5886 1323 1135 972 1163 +5887 1323 972 1135 1236 +5888 1478 499 778 732 +5889 1478 778 499 1347 +5890 450 1246 457 446 +5891 457 1246 450 1126 +5892 1457 867 149 1042 +5893 149 867 1457 529 +5894 149 1447 1457 1042 +5895 1457 1447 149 529 +5896 1417 397 1342 817 +5897 1417 1342 397 1211 +5898 704 1342 397 817 +5899 704 397 1342 1211 +5900 1265 1241 1273 968 +5901 1265 1273 1241 1102 +5902 1061 1273 1241 968 +5903 1061 1241 1273 1102 +5904 1230 1207 1216 1034 +5905 1230 1216 1207 988 +5906 1468 882 907 456 +5907 1468 907 882 1043 +5908 1429 1052 353 1319 +5909 1429 353 1052 1113 +5910 1397 80 96 111 +5911 1397 96 80 1304 +5912 1414 901 148 1071 +5913 1414 148 901 46 +5914 947 1368 1175 927 +5915 1175 1368 947 1279 +5916 1175 934 947 927 +5917 947 934 1175 1279 +5918 1477 1398 1167 998 +5919 1477 1167 1398 1045 +5920 1386 350 1211 349 +5921 1386 1211 350 1113 +5922 1413 1036 156 1181 +5923 1413 156 1036 1193 +5924 1195 1263 1188 1039 +5925 1188 1263 1195 985 +5926 1388 1045 973 1255 +5927 1388 973 1045 1141 +5928 1407 1412 1073 1046 +5929 1073 1412 1407 1197 +5930 1305 995 1049 1192 +5931 1305 1049 995 1214 +5932 401 1138 835 775 +5933 401 835 1138 1400 +5934 1405 416 448 597 +5935 1405 448 416 1272 +5936 852 916 57 870 +5937 57 916 852 939 +5938 1379 490 637 321 +5939 1379 637 490 1097 +5940 1463 1375 1151 1013 +5941 1463 1151 1375 1094 +5942 1447 1457 1383 531 +5943 1383 1457 1447 1042 +5944 1298 650 653 823 +5945 1298 653 650 1208 +5946 1278 1484 1347 1033 +5947 1347 1484 1278 1060 +5948 1390 41 40 161 +5949 1390 40 41 1286 +5950 1240 1464 1274 1101 +5951 1274 1464 1240 994 +5952 1468 444 443 442 +5953 1468 443 444 1083 +5954 1367 900 127 524 +5955 1367 127 900 1286 +5956 1202 1458 1069 991 +5957 1069 1458 1202 1051 +5958 1462 331 765 213 +5959 1462 765 331 1396 +5960 131 80 1397 111 +5961 131 1397 80 804 +5962 1238 359 767 341 +5963 1238 767 359 1338 +5964 1421 1331 1073 1046 +5965 1421 1073 1331 1011 +5966 1437 666 627 478 +5967 1437 627 666 1157 +5968 1366 1326 1264 1032 +5969 1366 1264 1326 1048 +5970 1438 714 308 310 +5971 1438 308 714 1225 +5972 1316 193 196 822 +5973 1316 196 193 1255 +5974 803 944 69 130 +5975 803 69 944 913 +5976 1426 617 776 819 +5977 1426 776 617 1167 +5978 1410 884 727 508 +5979 1410 727 884 1064 +5980 1468 443 441 442 +5981 1468 441 443 1298 +5982 1450 571 573 572 +5983 1450 573 571 1152 +5984 398 1410 372 399 +5985 372 1410 398 1177 +5986 1394 662 462 663 +5987 1394 462 662 1229 +5988 1312 1439 961 1209 +5989 961 1439 1312 1164 +5990 1432 918 1430 1169 +5991 1432 1430 918 920 +5992 1484 778 786 716 +5993 1484 786 778 1347 +5994 531 1457 530 529 +5995 530 1457 531 1383 +$EndElements diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/case.json b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/case.json new file mode 100644 index 0000000..7f559ff --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/case.json @@ -0,0 +1,19 @@ +{ + "tet": { + "geometry": { "type": "Cylinder", "length": 1.0, "radius": 0.1 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "file": "beam_tet.msh", "size": 0.03 }, + "load": { "type": "torque", "magnitude": 0.05 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/fenics_scene.py new file mode 100644 index 0000000..325483b --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/fenics_scene.py @@ -0,0 +1,89 @@ +import json +import os + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem +from dolfinx.io import gmshio +from mpi4py import MPI + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + domain = gmshio.read_from_msh(os.path.join(CASE_DIR, case['mesh']['file']), MPI.COMM_WORLD, gdim=3)[0] + V = fem.functionspace(domain, ("Lagrange", 1, (3,))) + + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - 2 * poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(3) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + right_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[0], case['geometry']['length'])) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, right_facets, + np.full_like(right_facets, 1, dtype=np.int32)) + # The traction is linear over a face: degree 2 integrates it against the P1 test functions exactly, as in SOFA + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags, metadata={'quadrature_degree': 2}) + + # The torque T as the traction (T / J) (0, -z, y), J = pi R^4 / 2, interpolated from its nodal values as in SOFA + polar_moment = np.pi * case['geometry']['radius'] ** 4 / 2 + scale = case['load']['magnitude'] / polar_moment + traction = fem.Function(V) + traction.interpolate(lambda x: np.vstack([np.zeros_like(x[0]), -scale * x[2], scale * x[1]])) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + clamped = fem.locate_dofs_geometrical(V, lambda x: np.isclose(x[0], 0.0)) + bc = fem.dirichletbc(np.zeros(3, dtype=default_scalar_type), clamped, V) + + return V, a, L, [bc] + + +def solve(case): + V, a, L, bcs = build(case) + + problem = LinearProblem(a, L, bcs=bcs, petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + # dolfinx renumbers the nodes it reads: put them back in the mesh file's order, which is SOFA's + domain = V.mesh + file_index = np.empty(V.dofmap.index_map.size_local, dtype=np.int64) + file_index[V.dofmap.list.ravel()] = np.asarray(domain.geometry.input_global_indices)[domain.geometry.dofmap.ravel()] + + x, u = np.empty((len(file_index), 3)), np.empty((len(file_index), 3)) + x[file_index] = V.tabulate_dof_coordinates()[:, :3] + u[file_index] = solution.x.array.reshape(-1, 3) + return x, u + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for sub_case in json.load(f).values(): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/mesh.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/mesh.py new file mode 100644 index 0000000..af0f9e1 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/mesh.py @@ -0,0 +1,31 @@ +"""Writes the cylinder meshes of case.json with gmsh: `python mesh.py`.""" + +import json +import os + +import gmsh + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) + + +def write(case): + gmsh.initialize() + gmsh.model.add(case['element']) + length, radius = case['geometry']['length'], case['geometry']['radius'] + size = case['mesh']['size'] + + disk = gmsh.model.occ.addDisk(0, 0, 0, radius, radius, zAxis=[1, 0, 0]) + gmsh.model.occ.extrude([(2, disk)], length, 0, 0) + gmsh.model.occ.synchronize() + gmsh.model.addPhysicalGroup(3, [tag for _, tag in gmsh.model.getEntities(3)]) + + gmsh.option.setNumber('Mesh.MeshSizeMax', size) + gmsh.model.mesh.generate(3) + gmsh.write(os.path.join(CASE_DIR, case['mesh']['file'])) + gmsh.finalize() + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for case in json.load(f).values(): + write(case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/reference_solution.json new file mode 100644 index 0000000..9bbf511 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/reference_solution.json @@ -0,0 +1 @@ +{"tet": {"fenics": {"x": [[1.2701714604616472e-18, -2.952064939143235e-19, 0.10000000000000002], [0.9999999999999999, -2.422618889939055e-19, 0.09999999999999999], [-8.276072663456242e-19, -0.029475517441090386, 0.09555728057861407], [8.373393036153253e-20, -0.05633200580636215, 0.08262387743159952], [1.3106528439152314e-19, -0.07818314824680292, 0.062348980185873426], [9.141238551761612e-20, -0.09308737486442037, 0.03653410243663961], [1.3606380143606146e-18, -0.09972037971811802, 0.007473009358642548], [1.2246361148826323e-18, -0.0974927912181824, -0.02225209339563135], [1.3940425546391227e-19, -0.0866025403784439, -0.049999999999999906], [1.1373548099965328e-18, -0.06801727377709203, -0.07330518718298257], [-1.0816503924012673e-18, -0.043388373911755936, -0.09009688679024185], [-4.635785018431321e-19, -0.014904226617617781, -0.09888308262251283], [-1.1780568292455269e-18, 0.014904226617617098, -0.0988830826225129], [-3.8014795069391887e-19, 0.04338837391175541, -0.09009688679024214], [3.0615554682668055e-19, 0.06801727377709152, -0.073305187182983], [1.2903273018850735e-19, 0.08660254037844348, -0.050000000000000655], [1.3623028583338903e-19, 0.09749279121818218, -0.022252093395632236], [9.637287612135032e-20, 0.09972037971811808, 0.00747300935864155], [2.286237344324274e-19, 0.09308737486442069, 0.036534102436638786], [1.2022110240273052e-19, 0.07818314824680332, 0.06234898018587291], [-3.7073925406904015e-19, 0.056332005806362564, 0.08262387743159925], [1.1863811091305906e-19, 0.029475517441090632, 0.095557280578614], [0.029411764705882394, 1.87994906967695e-20, 0.10000000000000002], [0.058823529411764754, -1.5094958152185287e-18, 0.09999999999999999], [0.08823529411764719, 1.2549009603521568e-18, 0.10000000000000002], [0.11764705882352962, -1.4277495178280731e-18, 0.10000000000000002], [0.14705882352941202, -9.2986986204805e-19, 0.10000000000000002], [0.17647058823529432, -1.1778523635749064e-18, 0.10000000000000002], [0.20588235294117674, -1.1941790694360141e-18, 0.10000000000000002], [0.23529411764705901, -1.5983383537148134e-18, 0.10000000000000002], [0.26470588235294157, -1.257139220518591e-18, 0.10000000000000002], [0.2941176470588238, -1.5111754032095107e-18, 0.09999999999999999], [0.32352941176470645, -1.5116934750489912e-18, 0.09999999999999999], [0.35294117647058887, -1.5715880126414966e-18, 0.09999999999999999], [0.38235294117647123, -4.339671681119395e-19, 0.09999999999999999], [0.41176470588235375, -1.4726691289239154e-18, 0.09999999999999999], [0.4411764705882361, -1.5184803383578934e-18, 0.09999999999999999], [0.47058823529411875, -1.2937013851085852e-18, 0.10000000000000002], [0.500000000000001, 1.1753216448095972e-18, 0.09999999999999999], [0.5294117647058831, 2.5071071290422413e-20, 0.09999999999999999], [0.5588235294117655, 2.5071071290422413e-20, 0.09999999999999999], [0.5882352941176477, -8.274330100624452e-21, 0.09999999999999999], [0.61764705882353, 6.855166411745742e-20, 0.09999999999999999], [0.6470588235294122, -1.5996341923040502e-18, 0.09999999999999999], [0.6764705882352945, -1.1005265445442547e-19, 0.09999999999999999], [0.7058823529411767, -1.6391604165011703e-19, 0.09999999999999999], [0.7352941176470591, -1.2560504297394158e-19, 0.09999999999999999], [0.7647058823529412, 2.999868734662428e-20, 0.09999999999999999], [0.7941176470588235, 2.999868734662428e-20, 0.09999999999999999], [0.8235294117647058, 2.12996607636e-19, 0.09999999999999999], [0.8529411764705881, 2.2561434298182798e-21, 0.09999999999999999], [0.8823529411764702, 1.8248585525949642e-19, 0.09999999999999999], [0.9117647058823526, 8.110981882818643e-20, 0.09999999999999999], [0.9411764705882347, -1.4626568944618657e-18, 0.09999999999999999], [0.9705882352941171, 1.0150266812156259e-19, 0.09999999999999999], [0.9999999999999999, -0.029475517441090386, 0.09555728057861407], [1.0, -0.05633200580636217, 0.08262387743159955], [0.9999999999999998, -0.07818314824680292, 0.06234898018587342], [0.9999999999999998, -0.09308737486442037, 0.03653410243663961], [0.9999999999999998, -0.099720379718118, 0.007473009358642546], [0.9999999999999998, -0.09749279121818237, -0.022252093395631348], [0.9999999999999998, -0.0866025403784439, -0.049999999999999906], [0.9999999999999999, -0.06801727377709202, -0.07330518718298254], [0.9999999999999998, -0.043388373911755936, -0.09009688679024185], [0.9999999999999998, -0.014904226617617778, -0.0988830826225128], [0.9999999999999999, 0.014904226617617096, -0.0988830826225129], [0.9999999999999999, 0.043388373911755394, -0.09009688679024211], [0.9999999999999998, 0.06801727377709152, -0.073305187182983], [0.9999999999999998, 0.08660254037844348, -0.050000000000000655], [1.0, 0.0974927912181822, -0.02225209339563224], [0.9999999999999998, 0.09972037971811808, 0.00747300935864155], [0.9999999999999999, 0.09308737486442069, 0.036534102436638786], [0.9999999999999998, 0.07818314824680332, 0.06234898018587291], [0.9999999999999999, 0.05633200580636255, 0.08262387743159924], [0.9999999999999998, 0.029475517441090636, 0.095557280578614], [2.152565832239851e-18, -2.52118677002983e-16, -0.07306820487327914], [2.897581025623416e-19, -0.011508248893123116, 0.07280417667649476], [1.3537990147782153e-18, 0.07123623242397975, 0.01625920519091276], [1.6463957697377853e-18, -0.07286389135284624, -0.005460393788372081], [2.0390455281883777e-18, 0.058559949006259084, -0.04917425094414683], [4.889866106855485e-19, 0.04969900095266478, 0.05356278435360207], [1.3429403815193348e-19, -0.04116078541182027, -0.060371784035968074], [1.6512591597656474e-19, -0.048758542963527225, 0.051325607362379226], [-6.951115179423921e-19, 0.06944984514603657, 0.04009688679024144], [-2.583114342431216e-18, 0.046655634827253704, 0.027552836632207693], [1.5107728305327313e-18, 0.022976518098237923, 0.04235001236537814], [-1.562045384430632e-18, 0.019855739632001258, 0.014479666682287848], [3.2568221964772303e-18, -0.003969118687826101, 0.029725171164527043], [-1.7896843779311632e-18, -0.008513706565336081, 0.002292220138594795], [-1.0983356726907806e-18, 0.016234530426989188, -0.014102429384138776], [1.4294499332826666e-19, -0.01224314338738922, -0.026495107570484455], [-1.1618561640675625e-18, -0.03450550212999403, 0.021448820572495277], [-5.963143546393702e-19, 0.04871740625483301, -0.003488004852144479], [3.391059757516847e-19, 0.013237939209728919, -0.043973699144657215], [3.470952548085387e-19, -0.0336930522090509, -0.008916522986870285], [-1.974865163853407e-18, 0.039157344471390944, -0.028181095764745683], [4.085334126057872e-19, 0.07828726642463171, -0.006766422180493857], [-2.0479049973673905e-18, 0.028315887469779012, 0.06799443321897354], [3.797318622550732e-18, -0.03723162283093192, -0.03480413784791669], [-2.011184026741183e-18, -0.016839190356466176, -0.05255732044986449], [2.3999226756187173e-18, 0.026290050514930836, -0.06917579577250928], [-4.44270331961537e-19, -0.06136973046791288, -0.04418039696963311], [4.222174226474465e-18, -0.021949679421422882, 0.050199517822524145], [1.2664145866819168e-18, -0.06724393895343415, 0.025594861434738974], [-2.777743834044394e-18, -0.023637529718384297, -0.07663098922688141], [2.2959918509592292e-18, -0.03418764401364817, 0.07135923552761662], [1.0740113579437536e-18, -0.0559927554950065, -0.02004242348629351], [-1.1226501121554046e-18, 0.003315594733254227, 0.05619567722638205], [-1.0517677282655212e-18, -0.053411732523838254, 0.005654386985016353], [-1.1673483681150847e-18, 0.009750487402022716, 0.07935329800422578], [-2.061283856147982e-18, 0.06813621629229005, -0.026643644522860627], [3.1252862058317907e-19, -0.07540677636266055, -0.028510908005608515], [1.2905523856234862e-19, 0.04694795383579438, -0.0656781606917031], [1.2905523856234862e-19, 0.03648978553636027, -0.050309989556920856], [0.48529411764705976, 0.02526392191504819, 0.09675605536332259], [0.6617647058823534, 0.02526392191504819, 0.09675605536332259], [0.3382352941176475, 0.025263921915038914, 0.09675605536332502], [0.7500032707586178, -0.02526361212528865, 0.09675613625183145], [0.6323529411764711, -0.025263921915037336, 0.09675605536332542], [0.5147085547247893, -0.025262392896977574, 0.09675645459150899], [0.39705882352941263, -0.025263921915088323, 0.09675605536331214], [0.250023332630354, -0.025247195356838892, 0.09676042128170803], [0.7794117647058826, 0.025263921915048202, 0.09675605536332262], [0.22058823529411792, 0.02526392191504829, 0.09675605536332259], [0.8382348892760624, -0.025261840631395117, 0.09675659878227424], [0.16155182343618982, -0.024619111732518364, 0.09692213027736123], [0.5664469667941776, 0.024946213418093516, 0.09683845535787387], [0.9706081396299117, -0.0014794375823548643, -0.09998905572331364], [0.029463270255207886, -0.0021470210150576247, -0.09997694884702625], [0.9742092960782424, 0.09308737486442013, -0.03653410243664022], [0.027655502873839673, 0.09253748638154966, -0.037905324351395674], [0.029878425279968913, -0.09169440260381674, -0.03990158557161811], [0.9742092960782457, -0.09308737486442045, -0.03653410243663939], [0.8676470588235293, 0.025263921914998363, 0.09675605536333563], [0.13235294117647078, 0.025263921914998527, 0.09675605536333556], [0.028091138921535627, -0.08638710675014012, 0.050371299242126945], [0.9712891951134758, -0.08642270486913847, 0.050310198599307805], [0.9742092960783801, 0.08660254037844424, 0.049999999999999406], [0.028591499162091114, 0.08847220778903958, 0.046611891711590095], [0.3382427957239558, -0.025261537111690935, 0.09675667802665953], [0.4558877422570791, -0.025261300270097462, 0.0967567398616963], [0.5735376494773947, -0.025260505959882544, 0.09675694723714025], [0.6911803774893995, -0.025258973377904535, 0.09675734733804102], [0.10289711937803107, -0.024739735394769768, 0.09689141082983968], [0.8970588235294114, -0.025263921915088108, 0.09675605536331217], [0.3970588235294125, 0.025263921915040805, 0.09675605536332452], [0.27941176470588275, 0.02526392191507338, 0.09675605536331604], [0.7205882352941179, 0.025263921915056785, 0.09675605536332034], [0.9710712117050966, -0.05602774337543643, -0.08283050146085223], [0.025790703921756426, -0.056332005806362336, -0.08262387743159942], [0.024160744649993314, 0.055905500413056065, -0.08291305701495867], [0.9729296360517319, 0.05553625342671964, -0.08316083546551926], [0.9264705882352937, 0.025263921915356275, 0.09675605536324215], [0.07352941176470597, 0.025263921915356362, 0.09675605536324212], [0.9535053699285616, -0.02499832756202306, 0.0968250154614075], [0.046281172130565595, -0.024855335058523404, 0.09686182075063703], [0.9742092960782425, 0.04338837391175607, 0.09009688679024182], [0.02356276400527854, 0.04470876263410963, 0.08944901644918651], [0.42648273175645857, -0.025257369943201095, 0.0967577659082323], [0.48530644308831256, -0.025257055885034043, 0.09675784788853184], [0.5441233763386277, -0.025262603403053824, 0.09675639962968863], [0.6029561381493568, -0.025255495335854573, 0.09675825523096533], [0.6617663338377171, -0.025262219590400047, 0.09675649984040559], [0.36764705882353005, -0.025263921915037506, 0.09675605536332538], [0.30882427304653703, -0.025263459741800994, 0.09675617603995312], [0.7794117647058824, -0.025263921915088108, 0.09675605536331217], [0.7647058823527655, -0.04892003708809008, 0.08721714264581183], [0.6470588235293971, -0.04889652192985831, 0.08723032811564387], [0.5294117647058835, -0.0488915224870407, 0.08723313033990697], [0.4117865774407529, -0.04889193840125558, 0.08723289723130734], [0.3235294029274696, -0.04890038427893733, 0.08722816298290512], [0.470536248635375, -0.048899591624401356, 0.08722860734281372], [0.5882581438467585, -0.04888523094913426, 0.08723665625784731], [0.29411309769555005, -0.048885679552688716, 0.08723640487016777], [0.7352758896218002, -0.048900613143494386, 0.08722803468031538], [0.7499691729251774, -0.06940458678045196, 0.07199307837448479], [0.7794576446938971, -0.0694058140508646, 0.07199189521006377], [0.7646864520108181, -0.08538329980434751, 0.052054703097039266], [0.794220735825806, -0.08537958062346851, 0.05206080303415073], [0.7794503075183489, -0.09579230443596329, 0.028702515758165296], [0.7499318467976139, -0.09578772617733887, 0.028717790893018694], [0.7646820959833437, -0.0999394262431551, 0.003480098014275672], [0.735155682256375, -0.09993866994381845, 0.003501749542802413], [0.7499011790856395, -0.09755812822842189, -0.021963870710027207], [0.7203818964725016, -0.09756306633479768, -0.021941925333750282], [0.7794319467779199, -0.09755402144601645, -0.021982104078321556], [0.7646473829395953, -0.08878731296654815, -0.046008836718398276], [0.7941951279569173, -0.08877920342709818, -0.04602448303729139], [0.7794095362961148, -0.07419228947757327, -0.06704852110282504], [0.8089420231650306, -0.07416927554777702, -0.06707397829798026], [0.7941774740572038, -0.0547190210343644, -0.0837008287715288], [0.7646075198063508, -0.05473966879987749, -0.08368732675668233], [0.8237280063393677, -0.05469487634297792, -0.08371660827951859], [0.8089494674980767, -0.03163965922143582, -0.0948627005959213], [0.8237213482988579, -0.08873857302821209, -0.04610277276820416], [0.8385442778066192, -0.03162722056482762, -0.09486684836835123], [0.8237355354002949, -0.006465131562135116, -0.09979079152849867], [0.8531666981811303, -0.006374425927100418, -0.09979662666693653], [0.8385172950436832, 0.019129035914197685, -0.09815334933150949], [0.8089237399759498, 0.019108968646082507, -0.09815725809782501], [0.8237102650353137, 0.043442429972840015, -0.09007083478049313], [0.7941134198565938, 0.043418708852704574, -0.09008227196049219], [0.8088795152793979, 0.06488392656889536, -0.07609254939218552], [0.7793071215927917, 0.0648636814061045, -0.0761098077414953], [0.7940682399441178, 0.0820725648665629, -0.057132250929084014], [0.7645082689098336, 0.08205637354406499, -0.057155503329048465], [0.8236470050080794, 0.08208491003858805, -0.057114512551162566], [0.8088270643730975, 0.09389742533962182, -0.03439874292165549], [0.8384063553713286, 0.0939059822253448, -0.034375376394931656], [0.7497508580280902, 0.06485094996468782, -0.07612065612353558], [0.7349599608721739, 0.08204045296889753, -0.057178353217438076], [0.8236055956312012, 0.09955794592509588, -0.009392305530362783], [0.853184143844214, 0.09955933751915555, -0.009377543001600475], [0.7497045331934599, 0.09387087578278747, -0.0344711282056808], [0.7201710169175589, 0.09386185530695008, -0.03449568260430808], [0.8532375461772758, 0.08207455103541138, -0.05712939761922621], [0.7349135623252209, 0.09954342923369498, -0.009544930402908224], [0.705383704737195, 0.09954073723095425, -0.009572963570291271], [0.690637565249347, 0.0938540695932232, -0.0345168599497465], [0.6758698116881142, 0.09954187653933809, -0.009561109508167435], [0.6611208911483947, 0.09384838067941619, -0.03453232462275571], [0.6463519579688208, 0.09954045326324633, -0.009575915838575057], [0.6316146774055204, 0.09384250039584738, -0.034548301252816806], [0.6463933162313978, 0.08202683352896561, -0.05719788965697387], [0.6168834114903213, 0.0820213211576136, -0.05720579407332449], [0.6316474792124696, 0.06485636876613343, -0.07611603924582067], [0.6021616185446171, 0.06483991270883269, -0.07613005792662289], [0.616914154850689, 0.043452797754473346, -0.09006583351809294], [0.5874303927488626, 0.043434434574897596, -0.09007469063593246], [0.6021684948905268, 0.019225301962643056, -0.09813453910038601], [0.5726968946862561, 0.019203519618946435, -0.09813880391692542], [0.30879667249172055, -0.06937343439242326, 0.07202309768817321], [0.5579450391174697, 0.04341589085061069, -0.09008363015358482], [0.5432212268990302, 0.019183045596676298, -0.09814280799750859], [0.5874559111623763, -0.006267378594699199, -0.09980340658289527], [0.5284697037227306, 0.04339841244981867, -0.09009205179612362], [0.5137470918489421, 0.019164000586676236, -0.09814652862691513], [0.4989927750235866, 0.04338021576781568, -0.09010081509030737], [0.48427108852963385, 0.01914491834057856, -0.09815025268297878], [0.46951639257118044, 0.04336228032501447, -0.09010944814510219], [0.45479515192887593, 0.019125729685405313, -0.09815399362227097], [0.44001295120115336, 0.04340073442516135, -0.0900909332361288], [0.42531741979912274, 0.019107715035689143, -0.0981575021387306], [0.4104842288020281, 0.04338491605286889, -0.09009855192557491], [0.39583523955944266, 0.019086373257033554, -0.09816165420312149], [0.38108442592852887, 0.04331057506229786, -0.09013431137903627], [0.36635708007883266, 0.019064770482141093, -0.09816585214046321], [0.35160065742387103, 0.04329441760726023, -0.09014207343992127], [0.33686408054975525, 0.019038360094560038, -0.09817097761003434], [0.32209572223193433, 0.043283414974346936, -0.09014735707805573], [0.3073556912049313, 0.01901011617650174, -0.09817645075554478], [0.29256929296086076, 0.04327465264717494, -0.09015156370394443], [0.27783325438460044, 0.018980862516744152, -0.09818211068275351], [0.2630277749720095, 0.04326474847734421, -0.09015631724506132], [0.24826584520719738, 0.018952078107192717, -0.09818767099498218], [0.23346052965443587, 0.04327828201922605, -0.09014982143889323], [0.21868767831036467, 0.018921885211223722, -0.09819349398026975], [0.23351112037215013, -0.0066437698857239515, -0.09977905753065396], [0.38113172636498505, -0.0064041205255397195, -0.09979472551339758], [0.20392995286352017, 0.04331340267218766, -0.09013295262531305], [0.20391594493547252, -0.006672452415807271, -0.09977714356884944], [0.21864632721193963, -0.03185463509320834, -0.09479072857130356], [0.6021210153787934, 0.09383757430681547, -0.034561678897485335], [0.4990192282176507, -0.006322217139811733, -0.09979994774766703], [0.18908815467137152, -0.03185652830255081, -0.09479009233305337], [0.20396105093579955, -0.05488275473356382, -0.08359355975704992], [0.23353495086772968, -0.05486543324417415, -0.0836049294894091], [0.21878588653035647, -0.07431618810321808, -0.06691116637607737], [0.18920135998731188, -0.07434348560500428, -0.06688083543212149], [0.4551578116647175, 0.0650228832459836, -0.07597384190877267], [0.36632714453494386, 0.06471880759019119, -0.07623303709090835], [0.24824804249017896, 0.06474617706026242, -0.07620979304578346], [0.6169371207874018, -0.006250950988248994, -0.09980443683395296], [0.6022119266237481, -0.031329062361413904, -0.09496572987954464], [0.20401908959233386, -0.08888993675973361, -0.045810251503899835], [0.17443232782046056, -0.08890892987602544, -0.04577337859826374], [0.24835043540580634, -0.07428538109290497, -0.06694536694859379], [0.6316975128447123, -0.031315941875848644, -0.09497005730454451], [0.6169687239389074, -0.05435450638885872, -0.08393799875636489], [0.587489241852523, -0.0543673790983365, -0.08392966156239264], [0.6022354784353682, -0.0738437044176876, -0.06743224242061939], [0.5727666248133965, -0.07385493378556886, -0.06741994330707522], [0.18926044840399697, -0.09761942557533354, -0.021689807522011637], [0.15965894583071066, -0.09762992307961219, -0.021642507236200877], [0.5875091230565238, -0.0885102276822745, -0.046539656161513794], [0.5580461936567328, -0.08851666033774157, -0.04652742033094993], [0.513665521841903, 0.0648207607418581, -0.07614636548678332], [0.6464132373810408, 0.043430900281882096, -0.09007639480299605], [0.4400799400026611, -0.006361563742131581, -0.09979744739598702], [0.3073096728994885, 0.06477385458724877, -0.07618627016667733], [0.32214754540611057, -0.006464577496209127, -0.099790827423143], [0.14481562071106677, -0.08892234155661315, -0.045747318742075244], [0.21882706201844274, -0.09761110564412868, -0.021727219217625444], [0.20408663850108968, -0.09992825718754607, 0.003787270185720202], [0.13005038756437476, -0.09763896705279715, -0.021601669214734137], [0.14489961796366002, -0.09992176259571608, 0.003954915898645219], [0.5727917362033549, -0.097415764167384, -0.022586918596493498], [0.5433291216458614, -0.09741289566648054, -0.02259928666731281], [0.6022459170543911, -0.09740553634443318, -0.022630985163118848], [0.7056390975838636, -0.09993817015087263, 0.003515984484497712], [0.8680650796880692, 0.01906583266913889, -0.09816564584737576], [0.8679334411791562, -0.03142213533628004, -0.094934974645325], [0.6905974566301928, 0.0987175449263349, 0.015963906906426382], [0.8383632122971686, 0.09867670706561969, 0.016214422058336758], [0.867954538807146, 0.09867124573955076, 0.01624762334020524], [0.5285861526467955, -0.08852393184401397, -0.04651358393927915], [0.5138729515560108, -0.0974147394159827, -0.02259133782041669], [0.4991306679653406, -0.08853145616329926, -0.04649926095763051], [0.48441852774363847, -0.09741760589339346, -0.022578973891642443], [0.4696764561594782, -0.08853871813215591, -0.04648543203536621], [0.45496406270332956, -0.09742107968041268, -0.022563980896612212], [0.44022200626308156, -0.08854588591395006, -0.04647177732467034], [0.42550512797993445, -0.09742476170678215, -0.022548077664774766], [0.4107641321746767, -0.08855211936293816, -0.046459898367645504], [0.396047544575135, -0.09742851422450405, -0.02253185780191261], [0.38130074400785413, -0.08855801539395435, -0.0464486588556026], [0.36657184092817063, -0.09743323100970608, -0.022511452529973438], [0.35182073678177367, -0.08856234978217964, -0.046440394066575956], [0.33708566882326196, -0.0974378647892857, -0.022491387358384025], [0.2793340389455162, -0.06936168080949864, 0.07203441701909737], [0.6464553190167193, -0.054342620185598926, -0.08394569453738372], [0.6611964087236023, -0.03129597237777319, -0.09497663982753683], [0.38136031909290063, -0.09995731196327083, 0.002921606591817444], [0.5580653824556487, -0.09996174410779952, 0.0027658118024935013], [0.499163392310699, -0.09996098213349786, 0.00279321515578719], [0.4402853031488335, -0.09995892830572349, 0.0028657724911841384], [0.11527489848895878, -0.09992062515622001, 0.003983549722316935], [0.17430567662211238, -0.006685819436377395, -0.09977624876925449], [0.11518687189328332, -0.0889370456884613, -0.045718725968781675], [0.13012055439296566, -0.09561697694509001, 0.029281286171924284], [0.8827886441758029, 0.09956051761213992, -0.009365005755618829], [0.8087954654899485, 0.09868574145576059, 0.016159345077284983], [0.8235545291524474, 0.0913391231895298, 0.04070828631824113], [0.7940199495421826, 0.09135228299898572, 0.04067874618118436], [0.33824601106825747, -0.06937221385461076, 0.07202427330358945], [0.6759553569798401, -0.054333725756119215, -0.0839514517173993], [0.6907056826424822, -0.031275463475405656, -0.09498339530885683], [0.6908770923800083, -0.09756224384621302, -0.021945582145208035], [0.6761335548570545, -0.09993762814449206, 0.003531356800611795], [0.7204953916265785, -0.06938088809138133, 0.07201591746031719], [0.12997202686086706, -0.0743697585072036, -0.06685161942376724], [0.29394518515434576, -0.08536591406469995, 0.05208320953914284], [0.897553183333622, 0.09866607853371222, 0.016278972534510005], [0.8827175241462338, 0.09128547836143627, 0.04082843911201791], [0.7793419977744842, 0.019143002183357717, -0.09815062642392029], [0.8089830745963451, -0.09579380881169473, 0.028697494548278517], [0.8237622833345993, -0.0853755473374742, 0.05206741703624927], [0.8385381997761547, -0.0957950105773177, 0.028693482683208586], [0.8533208044367429, -0.08537167575624077, 0.05207376478200225], [0.8680991336973582, -0.09579622582647514, 0.028689425184255185], [0.8828831672999823, -0.08536783489309328, 0.052080061114264865], [0.897527945520402, -0.09577600809720085, 0.028756847410050267], [0.8828969894065074, -0.0999425192966485, 0.003390108647084956], [0.32239201628636005, -0.08858215752476013, -0.046402600878168256], [0.30760315786463466, -0.09744366245830433, -0.022466255734146037], [0.720207790444644, 0.06483607917059139, -0.076133322781715], [0.10092631340060251, -0.09557155586128963, 0.029429198260441963], [0.10063201548061218, -0.0742834580196473, -0.06694750080953951], [0.11512845404280868, -0.05486544252492502, -0.08360492339894911], [0.26457113252915004, -0.08533417895649106, 0.05213518870994481], [0.26301524583997665, -0.054727697859501497, -0.08369515569612808], [0.558011733730745, -0.05438221248690269, -0.083920051030903], [0.4549358812395379, -0.073901378943395, -0.06736902990443557], [0.396022772498245, -0.0739137199708689, -0.06735548975449568], [0.33707306294814315, -0.0739177671680645, -0.06735104822412048], [0.11538072716365921, -0.08502451588216486, 0.05263869013381222], [0.14494687762509673, -0.08505109719071301, 0.05259573049835789], [0.9120903265396947, -0.099948564823149, 0.0032069284046869345], [0.8976613275130194, -0.09750203425544417, -0.022211558163492056], [0.08806422084220177, -0.09990035146930713, 0.004463157661219504], [0.8087692327017469, 0.07800193089727268, 0.06257554455453898], [0.7792352614987568, 0.07804551469948927, 0.06252117749444423], [0.9124124259574106, 0.0995621261791259, -0.009347889103525608], [0.9124595450054869, -0.0853494077081886, 0.052110254306243796], [0.9123370019699265, 0.09127143903458962, 0.040859814201182995], [0.8974934425320827, 0.07789373401191206, 0.06271017622110062], [0.08584318235292668, -0.08498127050817884, 0.052708478092387934], [0.0854878119372445, -0.05487671023160598, -0.08359752791893045], [0.10022688163060628, -0.031762418861078154, -0.09482166813599845], [0.867920505104921, 0.07791811340791087, 0.0626798819634493], [0.6613697353862326, -0.0975653034515519, -0.021931975798057817], [0.6466390804919594, -0.09993707427568743, 0.0035469966472680514], [0.6613989106743059, -0.0957839051592645, 0.028730532755955288], [0.6319310208678611, -0.09577851333755305, 0.028748502271391044], [0.705493116024876, -0.054345066420196306, -0.08394411090591436], [0.720228181319695, -0.0312598964431825, -0.09498851969770612], [0.7054381947902206, -0.006152843060005258, -0.09981053312290715], [0.5138419902278772, -0.07387951690799047, -0.06739300395027623], [0.8976058292758048, 0.0938976989286514, -0.03439799610303394], [0.08551919201596948, -0.08895973981763437, -0.045674551903426445], [0.7349833560200216, 0.043410748749305804, -0.09008610821333467], [0.23363374066624165, -0.09992976408875585, 0.003747298915966143], [0.21890128935428918, -0.0957036251483522, 0.028996829714016778], [0.24831314487032158, -0.09758890031181748, -0.021826739012737337], [0.32235882232636265, -0.09995684934123258, 0.0029373916616837496], [0.2929489627097259, -0.09995400359864166, 0.0030326827402033076], [0.8680393350634681, -0.06935860182344035, 0.07203738163687971], [0.7644967750032868, 0.09136055926526643, 0.04066015507518065], [0.7495925941423995, 0.07828570009432569, 0.062220166833120094], [0.13021585947432243, -0.06889626222333968, 0.07247968716580405], [0.24984753412930258, -0.06933933884948577, 0.07205592333678189], [0.7054520048121337, 0.043406904311647246, -0.09008796067222023], [0.15976552424881799, -0.0689581531049237, 0.07242080585272369], [0.9254434520865229, 0.07799641291293194, 0.06258242223432568], [0.07056087902987564, -0.03177281122207685, -0.09481818637290143], [0.08538984134986531, -0.006517675207973954, -0.09978737349927276], [0.11502701120734632, -0.006576989598487036, -0.09978348163810177], [0.10021175031096849, 0.019171990108757666, -0.09814496826261496], [0.12980360927249118, 0.019050949493181646, -0.09816853530234747], [0.11504197946896351, 0.04357258713672834, -0.090007942150747], [0.14464778115120447, 0.04362910480843063, -0.08998056019838381], [0.12986420548372063, 0.0650922111246891, -0.07591445218730691], [0.10019033465642312, 0.06507394807742284, -0.0759301078730755], [0.11501903137339321, 0.08228295097491041, -0.056828830525187585], [0.14468058542170073, 0.08229767704900781, -0.05680750260605739], [0.12983921055610542, 0.09404924597822584, -0.03398145569170302], [0.15948140914033018, 0.09405464290482338, -0.03396651510011228], [0.14465509338375387, 0.09960073836177477, -0.008927088987418398], [0.17424976064006936, 0.09960273321694861, -0.00890480408057132], [0.15945535912573372, 0.09859807972121917, 0.016685882514512414], [0.18902883237516374, 0.0985957356430569, 0.016699727932048554], [0.12989836901042978, 0.09860082838037844, 0.016669632350569608], [0.17424251508064814, 0.09112601049239796, 0.04118313018384324], [0.20379790468521475, 0.09112160379267209, 0.04119287950910065], [0.21859235720667142, 0.09859222641434005, 0.01672043332762378], [0.23334473560620458, 0.09111547861728116, 0.041206426153499155], [0.24813796238346464, 0.09858766576991905, 0.01674730300790949], [0.26287914381391275, 0.09110823081091625, 0.041222448720385524], [0.27766481106829344, 0.09858279548027916, 0.016775948119061638], [0.2924130544655635, 0.09110271047633065, 0.041234647371668855], [0.30718460389966046, 0.09857813354790233, 0.016803320690028187], [0.32192009593930065, 0.09110174291330228, 0.04123678501239618], [0.33668804440284517, 0.09857348305006124, 0.016830580482540995], [0.35141370591241883, 0.09109628418593145, 0.04124884249910557], [0.36618613755209006, 0.0985688793765308, 0.016857521124261542], [0.38090771571733567, 0.091082320592269, 0.04127966661114324], [0.3956724744961089, 0.09856460349092684, 0.016882503922000972], [0.41039781272324577, 0.09106979142771779, 0.041307300678112335], [0.42514183086431584, 0.09855822355079948, 0.016919709527962942], [0.43987915293489144, 0.0910601003721775, 0.04132865979207364], [0.4546276911612116, 0.09855524808489739, 0.016937032648144987], [0.46936418861517243, 0.09105091540037502, 0.041348891215530266], [0.48412940258308096, 0.09855041750026299, 0.016965117462719292], [0.49884620696358944, 0.09104109921426042, 0.041370499801902244], [0.5136036127782491, 0.09855459553464312, 0.016940829348142974], [0.5283304688101547, 0.091032031792916, 0.041390448024315164], [0.4102361884553836, 0.09963758384478139, -0.008505991157658044], [0.10021159192561258, 0.09404073424801862, -0.03400500407430553], [0.543091221126385, 0.09854418109110498, 0.017001305040599286], [0.557805786642916, 0.09103852587519945, 0.041376162297519066], [0.18906457297769652, 0.09407313652336764, -0.03391526182496366], [0.4988862818944352, 0.09963440126316953, -0.008543189388613693], [0.35145957177385545, 0.0996230798335828, -0.008674212613925515], [0.2924512109263582, 0.09961696097736841, -0.008744202973025153], [0.18900428551555457, 0.07768478983429279, 0.0629688290219991], [0.45462194903592074, 0.07790206070568327, 0.06269983203971158], [0.5430506791076255, 0.07757344707958207, 0.06310594510972226], [0.5724905189462758, 0.07733453116742016, 0.06339850383972256], [0.587304156475632, 0.09103023610243076, 0.04139439714666359], [0.602115525154498, 0.07722605144548929, 0.06353059875476257], [0.15948194446146796, 0.07768843489015596, 0.06296433184206751], [0.36612663549500124, 0.07795850471703895, 0.06262963789040628], [0.30732865368740436, 0.0775339805200063, 0.0631544287023743], [0.24806405700533987, 0.07764966523030142, 0.0630121376373006], [0.23339035696883215, 0.09960943136437654, -0.008829563028007548], [0.6167935130943157, 0.09102073327363262, 0.041415288412978896], [0.6315080786587788, 0.07752692714985716, 0.06316308705803364], [0.17424116862911318, 0.05918580983602786, 0.08060421771876175], [0.6197948999031326, 0.058977311374388545, 0.0807568990430441], [0.07295751788005779, 0.01885972221659757, -0.0982054523838304], [0.6462911423806809, 0.09101907013212883, 0.041418943398916046], [0.6608712917548376, 0.07773177826255612, 0.06291081503319446], [0.17449118469387742, -0.08507148073300148, 0.052562754550104784], [0.18968731693937171, -0.06882071893514428, 0.07255142069766707], [0.7349683352154699, 0.09137951288562046, 0.040617540851050064], [0.7202103414004234, 0.078092068132224, 0.06246302021862283], [0.7644651476729035, 0.09954960051272978, -0.009480350086147093], [0.690680182226011, 0.06484829338187904, -0.07612291931775698], [0.7349396692334553, -0.006218671149454756, -0.09980645334413471], [0.30760694047391896, -0.0739517216530545, -0.06731376430232637], [0.15949799309059454, -0.0318199838879513, -0.09480236613803752], [0.868065942381871, -0.09751514715133208, -0.022153917848860227], [0.8829042369281009, -0.08865568916743816, -0.04626195821889292], [0.912509687921275, -0.08863529377026787, -0.04630102264808326], [0.8976606664844016, -0.07392343982867923, -0.06734482195310668], [0.9255074217922546, -0.07374004622788573, -0.0675455815158125], [0.9124711947588829, -0.05428784689631317, -0.08398112692362766], [0.8680875553120587, -0.07400318504296209, -0.06725718254206839], [0.6020762900204979, 0.09862528981280698, 0.016524291492824427], [0.661214439615719, -0.07383844054512011, -0.06743800633073874], [0.7056872155412329, -0.08877645193551865, -0.046029790155295625], [0.646684022936706, -0.08538778754082103, 0.05204734132387172], [0.6172120839565816, -0.08538283048610736, 0.05205547289364164], [0.602472776930744, -0.09577195102415373, 0.028770356220024423], [0.587775498760543, -0.0853721571553109, 0.05207297555017291], [0.6761986477794915, -0.08536506575489501, 0.052084599918425484], [0.8237580253561303, -0.09994060940080156, 0.003445953075191214], [0.32231438903994925, -0.05442825432894013, -0.08389019686890843], [0.3517859272838287, -0.05442612743157501, -0.08389157676907713], [0.9251775958150404, 0.09398531494410754, -0.0341578772006827], [0.9124389137272171, 0.0820213326844745, -0.05720577754617756], [0.9404851416567761, 0.09962604110608964, -0.00864013504105902], [0.9421339196048666, 0.08202935226158478, -0.05719427740206912], [0.9258357083834466, 0.06488230665483483, -0.07609393065907412], [0.8970827715564788, 0.06488317936812418, -0.07609318652207848], [0.9124512177831319, 0.043130004219168454, -0.09022085532765975], [0.20387251731749512, 0.059426958601402374, 0.08042659132020462], [0.7644531935432659, 0.059678548828952016, 0.08024008231345725], [0.8825406091389515, 0.05967191516382151, 0.08024501567500429], [0.8530647798538386, 0.05984378200063444, 0.08011692552676082], [0.5577722580415554, 0.05905428892227575, 0.08070062552350123], [0.5282901338003079, 0.05907355861328335, 0.08068652101040777], [0.14462026069382428, 0.059439778450638484, 0.08041711719366101], [0.12994859694318303, 0.07769793847499933, 0.06295260405046978], [0.11515390463281379, 0.059486015468243406, 0.0803829208458607], [0.10040559883888611, 0.07770699355783496, 0.06294142635977198], [0.08559121583020142, 0.05948418089750339, 0.08038427845638157], [0.07312320766441295, 0.07789738337481973, 0.06270564299452132], [0.0857125443348062, 0.09116128420776591, 0.041104990713913735], [0.9421542826042463, 0.04312797560627335, -0.09022182507633446], [0.925743193584824, 0.018461366992024966, -0.09828111684746857], [0.18899064466746487, 0.03682429455317357, 0.09297296021242472], [0.05605573809044827, 0.059148198414220976, 0.08063182141283894], [0.5367876665790663, 0.03623071847089279, 0.09320587448805419], [0.941956287947523, 0.09125681701195158, 0.04089246078248633], [0.9421914447056321, -0.08863282251462995, -0.04630575313165861], [0.587193627918796, 0.050935137543592156, 0.08605586420119983], [0.6151970130197862, 0.034205059976771555, 0.09396815349886077], [0.9421697858242822, -0.05426852804428043, -0.08399361204226875], [0.927300725796929, -0.031048894822275755, -0.09505769895340017], [0.9538646824351048, -0.030594816394101793, -0.0952048171565452], [0.05602615504805273, 0.09115927521659327, 0.04110944589732886], [0.07082869498653327, 0.09862185822214888, 0.016544759919997994], [0.04539174150984776, 0.09853453034886939, 0.017057148909701638], [0.0569797187723247, 0.09964535988947497, -0.008414407435881188], [0.5135352290434028, 0.036730238089968434, 0.09301015863793712], [0.4988125750753291, 0.059090676616223047, 0.08067398550361168], [0.46807548304821434, 0.05059173144348019, 0.08625819792663637], [0.6757675012951383, 0.09098363892788523, 0.04149671610429198], [0.5730173220644416, -0.09576529966979733, 0.028792488241795273], [0.55842447118608, -0.08541588911548224, 0.052001210434100845], [0.587719951169413, -0.09993447914384888, 0.0036193753946820156], [0.24843642880564887, -0.09571594201424803, 0.028956146917798038], [0.6904964165624851, 0.07749464513511171, 0.06320268962143227], [0.6757263983170427, 0.05896530400643617, 0.08076566673673015], [0.7052197234358699, 0.058944795490344204, 0.0807806355793361], [0.6904512546553758, 0.03657245733112818, 0.09307231255729496], [0.7349391812715735, 0.050886143937384824, 0.08608484393424752], [0.6424813012183475, 0.048795823714087735, 0.08728669765814072], [0.05634291540465751, -0.055116464708662716, -0.08343965075441497], [0.04560626267694145, -0.031241257683337034, -0.09499465152503765], [0.04458082478887464, -0.07510308247000715, -0.06602671431703461], [0.7054781111190427, 0.09137824965100198, 0.04062038270030399], [0.23437289800968508, -0.08520296395730587, 0.05234935465590798], [0.21939947490967998, -0.06890329307736524, 0.07247300327083671], [0.2630170402682017, -0.09994221433459814, 0.0033990872153041984], [0.27818794401883573, -0.09749254709063114, -0.022253162961275167], [0.6318805571158408, -0.09757905069790641, -0.021870730781009786], [0.6465546435110131, -0.08873774779780497, -0.0461043611361568], [0.20402674369836277, -0.08509077621076473, 0.052531512483932466], [0.20524477909741068, -0.04860641947854162, 0.0873923107914881], [0.18926092889723753, -0.09565732711597705, 0.029149198428549725], [0.6169736634389081, -0.08850561434521466, -0.04654842886044739], [0.6610849169115408, 0.0985863545128134, 0.016755020258832083], [0.29275901779994945, -0.054529505499086445, -0.0838244178627272], [0.27782490647793917, -0.07412619846358215, -0.06712158148716128], [0.27781178698041825, -0.03164434615456831, -0.09486113722937257], [0.45556218263849907, 0.025696357396768583, 0.09664210892016761], [0.4404440679959905, 0.047944615335794284, 0.08775712996846877], [0.8383408848586761, 0.07797017034836148, 0.06261511427640686], [0.8234258337694695, 0.05967290442662362, 0.080244280028492], [0.8364068403902202, 0.03768074927037067, 0.09262915920175172], [0.8106682072447592, 0.0373124201771627, 0.09277814020836406], [0.14527106785360416, -0.048929011186011076, 0.08721210847330318], [0.9123236309410845, 0.05971570745032586, 0.08021243222660122], [0.9357544713368717, 0.0605886038204328, 0.07955514494418718], [0.8973803665471297, 0.03704838979161211, 0.0928838888820272], [0.7497284109335715, -0.031311679740665746, -0.09497146261808323], [0.10061611616763468, -0.06886951884532808, 0.07250509895181854], [0.07104623107030575, -0.06883888000613726, 0.0725341891765575], [0.05781188078842986, -0.08515720675343262, 0.05242375547357451], [0.04515226240102037, -0.0686154590515651, 0.07274557566713587], [0.04360381945476443, -0.09603308108489401, 0.027886328860970155], [0.08595312073030069, -0.04842585814086596, 0.08749249261119907], [0.21853992026768074, 0.07767882725444411, 0.06297618435864652], [0.23327573516226166, 0.059510934970166525, 0.08036447361226606], [0.2627900318385172, 0.05913527327057478, 0.08064130117510783], [0.24905349958433876, 0.038844137911123365, 0.09214734369444204], [0.29442123307355444, 0.052063676827358046, 0.08537782824139074], [0.7940352921765833, 0.09955366031727948, -0.009437622445919848], [0.16145380963379116, 0.03732151905655148, 0.0927744804098167], [0.17448072123503897, -0.09992381532830825, 0.0039027080641712768], [0.752287247438204, 0.027697701155738292, 0.09608765451756754], [0.8531450606367772, 0.09131110214849088, 0.04077110035831584], [0.27774143892785175, 0.07738392673677055, 0.06333820239632733], [0.32468533955120193, 0.05883248320288589, 0.08086246916946177], [0.11506948799781111, 0.09959911741603124, -0.008945155669278684], [0.8384912216981032, -0.06937097427158236, 0.07202546722244471], [0.6314186457658005, 0.09864858708323769, 0.016384635073167376], [0.808961194197523, -0.06939123187156615, 0.07200595072177396], [0.7792668046295211, 0.09388435676647026, -0.034434394935095446], [0.7941274052055918, -0.0063990700847085, -0.09979504948669041], [0.7794110047530024, -0.03149633693043595, -0.09491038278273066], [0.7350558836381074, -0.054372154256907904, -0.08392656815015741], [0.7201391884854556, -0.07397848426245117, -0.0672843508271445], [0.7498598473011355, -0.0741677118104751, -0.06707570741183658], [0.17429846460199588, 0.08232236240187474, -0.056771724023270576], [0.20389249715887497, 0.08236973686001701, -0.056702966850170664], [0.18908903563117793, 0.06518094969702387, -0.07583827395579391], [0.6908774234700152, -0.09578708017948913, 0.028719945520284763], [0.7203970734742421, -0.09578607478187846, 0.028723298520197674], [0.7351919166100788, -0.08536717986227323, 0.05208113480294279], [0.7056870220749701, -0.08535191650914059, 0.052106145013968354], [0.6911402606609749, -0.06930907803758557, 0.07208503105069648], [0.23352306297917302, -0.08885370813708292, -0.045880481147107514], [0.14469969983745354, 0.0911219468902747, 0.041192120544176425], [0.8532529461082342, 0.04343269540748481, -0.09007552924985035], [0.3823700598927923, -0.048894865605612785, 0.08723125653920769], [0.3970931260151939, -0.06934594350225262, 0.0720495671033656], [0.42630031240924077, -0.06927404650048952, 0.07211869716965229], [0.4117681161827683, -0.08529799221209039, 0.05219437253752711], [0.3822996482332753, -0.08534333288972519, 0.052120202717118765], [0.4405855508667658, -0.08542761040661231, 0.05198195244713362], [0.39673490882676227, -0.09581404715540928, 0.028629850989849825], [0.7645472518723977, 0.04341667531762988, -0.09008325207475308], [0.7054362796229148, 0.08203387912356204, -0.05718778432445876], [0.6759151478005191, 0.08202961343040609, -0.057193902825896925], [0.5286209446119415, -0.09996154885503465, 0.002772859625463115], [0.5139066329571442, -0.09600821276846544, 0.02797182655825453], [0.48448898218569686, -0.09600542276115667, 0.027981400973710716], [0.49943221599642784, -0.08586351908117597, 0.051258717219576755], [0.5285231261566264, -0.08571152098605979, 0.051512475869989305], [0.5138091430362619, -0.0698204399629602, 0.07158984678974153], [0.4848042881182352, -0.06990830235899125, 0.0715040506634684], [0.46972485359669935, -0.09996004334639556, 0.0028266117856402314], [0.45533097449013593, -0.09595766816402135, 0.028144731665510018], [0.6317101129198253, -0.07383850087508753, -0.06743794027489047], [0.6760514553309327, -0.08865870988218018, -0.04625616890780527], [0.572680686918121, 0.06482437201186816, -0.07614329119014308], [0.7201400716089705, 0.09871094694654155, 0.016004654101762363], [0.7496833031170432, 0.09870277767122076, 0.016054958112233134], [0.7792426678382365, 0.09869387921703274, 0.016109568743258054], [0.6168437605487274, 0.09953893136303586, -0.009591722634898986], [0.5873489194530589, 0.0995364534948151, -0.00961740223108656], [0.5726285110731912, 0.09383524017951037, -0.03456801557008454], [0.557871417718957, 0.09953666500728055, -0.009615212906036494], [0.5431410338089676, 0.09383351434135596, -0.03457270001533786], [0.5283930296680879, 0.09952962321942051, -0.009687832667846282], [0.5136561012017992, 0.0938304499625102, -0.0345810158878085], [0.4838732801091821, 0.09415627040856281, -0.03368377566054017], [0.49865206875537577, 0.08234747808312437, -0.05673528754971946], [0.46904355858308083, 0.08275790346049905, -0.05613492152682432], [0.45421873127687057, 0.09437730187955817, -0.033059414543133436], [0.43915062914331976, 0.08312884865452265, -0.05558412112621258], [0.42503988605971277, 0.06558689319638791, -0.07548747870240204], [0.41017848364614073, 0.08257071441132197, -0.05640990269096291], [0.5727636905240453, 0.09868384891544275, 0.016170898652643487], [0.5873803653000489, 0.08201795133890406, -0.057210625395717904], [0.5579729468057694, -0.006287599357251066, -0.09980213471826489], [0.5727394520317901, -0.03135404339217239, -0.0949574850286262], [0.5431720061532368, 0.06482299406525786, -0.07614446427952291], [0.3956356836594935, 0.07764582057191824, 0.06301687510273327], [0.38272929743972894, 0.05958211576058894, 0.08031171447237186], [0.4084778606042421, 0.059191182941265255, 0.08060027209639968], [0.20382236647739646, 0.09960588002957886, -0.008869535699975551], [0.6611532548706297, 0.06485991890279316, -0.07611301412979972], [0.4695497679337848, -0.006338198648977799, -0.09979893405185296], [0.48430276569948694, -0.03138721958193308, -0.09494652414341202], [0.5137830026033888, -0.031383584941747235, -0.09494772559784745], [0.5432585098382063, -0.031368883876892066, -0.09495258355788988], [0.5285378725221618, -0.054391220956669775, -0.0839142126391157], [0.49906655260511457, -0.054399489194068666, -0.08390885278338873], [0.5284944747586674, -0.006306328017828637, -0.09980095303618873], [0.45482937834781645, -0.03140750886208869, -0.0949398145515243], [0.42536293294249694, -0.03142400667401509, -0.0949343552385092], [0.46958819580713484, -0.054408292724781517, -0.08390314465366891], [0.44010990220515595, -0.05442691570440845, -0.08389106535802977], [0.4107744586873228, -0.09995967701534537, 0.0028395371080216416], [0.42498086181861633, 0.0779138299549444, 0.06268520640272322], [0.8384565770016567, 0.06490996447374, -0.07607033923953414], [0.557891344560693, 0.08201637596450728, -0.057212883808182485], [0.5285209726693784, 0.082147840978422, -0.05702396182819893], [0.6759260737716616, 0.04342353353895953, -0.09007994635317483], [0.6611471477842897, 0.019263202349729704, -0.0981271065263486], [0.35184205498006543, -0.09995769031847639, 0.0029086330458773595], [0.33713505791025183, -0.09595945625630532, 0.028138634561652477], [0.3079120890045515, -0.09596322909563186, 0.028125765083625263], [0.38085806014112134, 0.09963034461019177, -0.00859036860992796], [0.3661203596244695, 0.09420519419237089, -0.03354670456509393], [0.33668927008620847, 0.09418163219346905, -0.03361279752377231], [0.35151458535732594, 0.08258779250005151, -0.056384896292965135], [0.32201268585658954, 0.08251639538795304, -0.05648933078182996], [0.5135790949748537, 0.07759112302201529, 0.06308421060917294], [0.48410108796965146, 0.07793707228113554, 0.06265630665978528], [0.32196492887385514, 0.09962036414024862, -0.008705345976138376], [0.4106047016805048, -0.006381541747038941, -0.09979617189517243], [0.2629219962719024, 0.0996131456193461, -0.008787560515806037], [0.27771916963716187, 0.09412887384617917, -0.03376025930661804], [0.558790382064746, -0.04891573380232725, 0.08721955621636619], [0.48441384525319536, 0.06495282983442838, -0.0760337418288735], [0.5433340534076663, -0.09601445943034022, 0.027950377104782622], [0.36672443395383225, -0.09591382866642129, 0.028293770878912185], [0.7351512888116913, -0.0887761978045174, -0.046030280287797515], [0.8976506493080572, -0.06934282536062854, 0.07205256810832886], [0.9271808797959965, -0.06930154369329175, 0.07209227449405914], [0.9414044623132086, -0.08544959518593069, 0.05194580524508757], [0.9523301639838258, -0.06891180853345412, 0.07246490629710745], [0.9538757399383628, -0.09622039202811505, 0.027232997594019093], [0.543302436473446, -0.07386603076982906, -0.06740778514615847], [0.6171732347686647, -0.09993699299680624, 0.0035492859502017113], [0.32334003388743376, -0.08537424403559705, 0.0520695540152815], [0.7942159934513615, -0.09994005986130869, 0.003461854260080687], [0.6759324877252006, -0.0061950977548271965, -0.0998079193441489], [0.48438845309248996, -0.07389340481400913, -0.06737777619507021], [0.44113312601568305, -0.04888049560690822, 0.08723930965581413], [0.39593937689270564, -0.03145393820872903, -0.09492444243271309], [0.41067282707908304, -0.0544301480411691, -0.0838889681913922], [0.30721283901646895, 0.0941548004002868, -0.033687884492531586], [0.4254773165452157, -0.07391038864121258, -0.06735914526554587], [0.15947570885003318, 0.06513683299553083, -0.07587616877065106], [0.21863488146348004, 0.09409465467954128, -0.03385551595734265], [0.23338471064043853, 0.0823612959030458, -0.05671522667829985], [0.2777715003080364, 0.0647807773923706, -0.07618038382969812], [0.33681940901288143, 0.06480006050878281, -0.07616398202600809], [0.085364025802054, 0.043554575730903315, -0.09001665919651214], [0.07286568681591755, 0.0652894262702425, -0.07574490621357033], [0.7939470130514953, 0.05987156048978859, 0.08009616872558627], [0.35165018840447443, -0.006429298089788582, -0.09979310660598079], [0.6906336965885886, -0.07391290638547537, -0.06735638254576883], [0.15969115785509969, -0.09563064459328607, 0.029236617702336973], [0.6464249363453476, -0.0062348585023857695, -0.09980544343599314], [0.36654450407810774, -0.07391442660274855, -0.0673547143115231], [0.27941663398618627, -0.025259720080991456, 0.09675715240451196], [0.7205868461813099, -0.025261490515347474, 0.09675669019216711], [0.22060319697288522, -0.02525549533585483, 0.09675825523096528], [0.4999006132032612, -0.048932214469707566, 0.08721031124294042], [0.3529543425523056, -0.048896549526121796, 0.08723031264669133], [0.8088271124860142, -0.025261377989559738, 0.0967567195706251], [0.29261852231564656, -0.0064921687516608295, -0.09978903619586654], [0.24817598009686218, 0.09409911068379972, -0.03384312882282024], [0.10294117647058837, 0.025263921915040805, 0.09675605536332452], [0.17435340051220097, -0.05490449199675414, -0.0835792842669663], [0.0854733943784492, 0.08231063476499464, -0.05678872603416685], [0.05563706250660977, 0.08228786063921252, -0.056821721123365684], [0.6764705882352945, -0.04888885400611051, 0.08723462588885912], [0.6176695093635965, -0.048877353580456154, 0.08724107007007122], [0.10393784885175798, -0.09774409807550975, -0.021120873358010755], [0.7941191466065999, -0.04888783596533244, 0.08723519642109338], [0.8676472569532367, -0.025261227367258676, 0.09675675889517828], [0.18911078149525576, 0.018927197079928064, -0.09819247023421684], [0.05803890249045006, -0.006266965405404869, -0.09980343252918437], [0.36764705882353005, 0.025263921915040805, 0.09675605536332452], [0.35302329838814134, 0.047857126009733235, 0.08780487167628294], [0.3088085677329904, 0.025255495335847603, 0.09675825523096714], [0.8089607371773909, -0.09754722605096877, -0.022012239544426108], [0.9246363322405238, 0.09871026123165358, 0.016008882771096574], [0.15958444689915768, -0.07435836833743248, -0.06686428836228436], [0.853319479849388, -0.09994159988707609, 0.0034171057946160125], [0.36766246569800975, -0.06936002848276335, 0.07203600800204198], [0.9257197896691108, -0.09749252422180187, -0.022253263150858908], [0.35285813802789107, -0.0853519758003833, 0.052106047892454745], [0.2628811223355019, 0.08211310742064955, -0.05707396595405705], [0.29250066731588914, 0.08253231047195977, -0.05646607590544996], [0.6316632943890041, 0.019242335024868235, -0.09813120065907034], [0.8680074653436679, 0.09390216559934848, -0.034385800786844174], [0.21857272642989262, 0.065159996371366, -0.07585627774207994], [0.14474927159063303, -0.05491340675280355, -0.08357342734865643], [0.9254514002072272, -0.02514606084032268, 0.09678675335093535], [0.15947795151827127, 0.019007439707265907, -0.09817696896815796], [0.12987006992307853, -0.03179084277676646, -0.09481214223686184], [0.8828001492232993, 0.08206060652269205, -0.057149425693771495], [0.14466975316031944, -0.006628883603202607, -0.099780047615619], [0.7058681874317341, -0.048891855808082356, 0.08723294352274077], [0.838493683740284, -0.09753842182149039, -0.022051219208311486], [0.2648347644672128, -0.04882339894995518, 0.08727127657467555], [0.867814564622377, 0.06489521618307784, -0.07608292131977842], [0.17414674769997876, 0.04349089556870946, -0.09004744306548412], [0.3812348604911501, -0.054433792891227205, -0.08388660317044068], [0.11516742549555781, 0.09111988460039797, 0.0411966822743065], [0.853324410327524, -0.08868601040724443, -0.046203804584104655], [0.8384788033927496, -0.07410764662952576, -0.06714206364890296], [0.8972186974971382, 0.01879758173818563, -0.09821736567835768], [0.8235532592365734, -0.04889131770385828, 0.08723324511435071], [0.8529868386893714, -0.04887489031427969, 0.08724245008461837], [0.8976430700233425, -0.031248432949889715, -0.09499229146713034], [0.36649605759840365, -0.0314483031018668, -0.09492630948274097], [0.3370076740674929, -0.03145089381521754, -0.09492545116155053], [0.10036608025151651, 0.0986085749927503, 0.016623746205327593], [0.08616181467761454, 0.09961679482874329, -0.008746095588779203], [0.24820072873121074, -0.03175182137108217, -0.09482521731912294], [0.6617353200797669, -0.0693318926880026, 0.07206308802916572], [0.6323122389934462, -0.0693429632996951, 0.0720524353566008], [0.6028821566566509, -0.06935134452501616, 0.07204436836125717], [0.5434965196638869, -0.06961448098739852, 0.07179013885524341], [0.573293472126069, -0.06946504245398326, 0.07193474735387834], [0.9681605200315825, 0.06603249664142243, 0.07509799855722214], [0.025766912303084925, 0.0679864001374614, 0.07333382164014764], [0.6906723575894276, 0.019281116699837956, -0.09812358808567505], [0.39550236137585665, 0.0645946537746927, -0.0763382650033886], [0.7497650685187439, 0.019221622648410742, -0.0981352598343842], [0.9723889251289503, -0.07893286658462816, -0.06139708928551333], [0.7202113558113172, 0.019252447545290208, -0.09812921717570076], [0.9717640257994258, 0.07821171527140107, -0.062313141425427175], [0.026983542686390975, 0.07819990059981519, -0.06232796760828177], [0.025441918055474036, 0.029521486189657463, -0.09554308898687476], [0.051547350811382606, 0.04337713381728996, -0.09010229887076646], [0.9742164296471715, 0.029463452144209725, -0.09556100139568373], [0.9723887975546825, 0.09719093779010271, 0.023535539328436644], [0.9685284228485401, 0.09970400313564175, -0.007688417179624242], [0.9709446618491513, -0.09989391244677714, -0.004605025089575489], [0.030064345808494472, -0.09993080151292759, -0.003719530747805236], [0.051538329543831134, -0.0974927912181828, -0.022252093395629505], [0.26307645811871766, -0.006529850820961373, -0.09978657749545272], [0.30744280182441835, -0.031537300295059155, -0.0948967791344852], [0.7645409746046026, -0.006311837517188325, -0.09980060474344137], [0.29280276703231056, -0.08867603410280261, -0.04622294858399436], [0.8824349575222783, -0.04885066950184614, 0.0872560146306339], [0.8827948710881844, -0.006366494755782319, -0.09979713294741786], [0.8827143965207456, 0.043298641535457816, -0.09014004460384921], [0.9258965031093196, -0.09582121666229658, 0.028605846209423948], [0.26296580220233157, -0.08879966036190788, -0.045985001028702864], [0.8532603153733294, -0.054613247502995045, -0.08376988239920485], [0.46921650264296055, 0.09963966512761226, -0.00848157610690938], [0.07405205978155724, 0.09414621427810352, -0.033711872346421465], [0.45519741747044073, -0.06937381635479813, 0.07202272977588908], [0.9117796369672574, -0.04880345012330112, 0.08728243383443465], [0.882808977034735, -0.05445038343781487, -0.08387583527736063], [0.47031719274877126, -0.08586007687550312, 0.051264482821274014], [0.39570615718322133, 0.09428246276504869, -0.03332892459947084], [0.42590365813112063, -0.09570652772074777, 0.02898724808666291], [0.38071836950315474, 0.08214603502922088, -0.05702656336285767], [0.27894401158476834, -0.095852537395982, 0.028500720600572026], [0.43961545441294464, 0.09964546548607603, -0.008413156842899961], [0.9411765179175979, -0.04872940805418515, 0.08732379280979906], [0.23499528644396064, -0.048739898554397525, 0.08731793795610977], [0.33665407072921366, 0.0779437344613336, 0.06264801878927309], [0.07250441195085068, -0.0743543614400629, -0.06686874408002956], [0.9123608405502863, -0.006382046241231927, -0.09979613963362899], [0.029198150390720448, 0.09967442486347643, -0.00806281763003458], [0.9399744269230423, -0.006020720800887585, -0.09981859005735233], [0.42482715611529753, 0.09432901366480066, -0.03319694535685253], [0.17501758531799388, -0.0488183249942632, 0.08727411497548683], [0.9414742781105554, -0.0999567129929202, 0.00294202781274725], [0.19057516254469084, -0.024961379550125742, 0.09683454719755015], [0.13205881155774743, -0.024772068272621312, 0.09688314937849922], [0.11565836453501802, -0.04897324358316028, 0.08718727781588582], [0.42647058823529505, 0.024283408491651934, 0.09700678363922582], [0.07407344674429447, -0.024647464617252885, 0.09691492396912495], [0.07342923138322656, -0.09555641589510354, 0.029478320530213393], [0.05732885668789787, -0.04862515507365031, 0.08738188767738689], [0.028352543953951967, -0.047879612022197655, 0.08779261217553462], [0.9701058434498081, -0.04853756353585182, 0.08743057203291732], [0.954573041656476, 0.02452613535345731, 0.09694569967060888], [0.05144024759920571, 0.026073660345145685, 0.0965409976963465], [0.060226009290292294, -0.08846739466156268, -0.046621026176987004], [0.6399249111545547, 0.023993166437599987, 0.09707897797307934], [0.0641144672568044, -0.09986586245361745, 0.005177790686689179], [0.9487709089990892, 0.07813271539738109, 0.06241216856216297], [0.9531859500752194, -0.09749234963982278, -0.0222540279883564], [0.9493472511204912, 0.06635980385634087, -0.07480893283658019], [0.9491062860896491, 0.017058285349942037, -0.09853433361483677], [0.045803544152518104, 0.07816006464776512, 0.06237791511630684], [0.07860330159819397, -0.09784572964729095, -0.020644931334088963], [0.9803522084827867, -0.09749279121818233, 0.022252093395631556], [0.019592358362825222, -0.09749279121818233, 0.022252093395631556], [0.046037115680089113, 0.06735720528312829, -0.0739121566215363], [0.9489994251649104, -0.07205842338879602, -0.0693367407564057], [0.04614235978445426, 0.016060654661753725, -0.09870185090379961], [0.9485529165170749, 0.09905529362961772, 0.013713088782262529], [0.9770043286338559, -0.06822609995148819, 0.07311086981707676], [0.981115455853061, -0.029475517441090626, -0.095557280578614], [0.9471872150295211, 0.09473808955209197, -0.032010847974082164], [0.018705649695964933, -0.07818314824680304, -0.06234898018587328], [0.020655537154336562, 0.0976594356345489, 0.021508943059606576], [0.017946639960017743, -0.06801727377709185, 0.07330518718298269], [0.9781755757050413, 0.02175500220631844, 0.09760491728905406], [0.025427630745390884, 0.02250295322206635, 0.09743519434108754], [0.017713750140518833, -0.029475517441090667, -0.095557280578614], [0.9763141173635809, -0.02204729538173799, 0.09753930882649517], [0.023039709761657028, -0.02183978167437412, 0.0975859822741754], [0.05083557582480841, 0.09510587375473384, -0.030901015798006273], [0.43965468629471577, 0.06617872168124384, 0.07496917230859941], [0.41232520804613804, 0.04022420032230046, 0.09155333805182336], [0.7809396966657556, 0.044640411101571874, 0.08948314755685931], [0.8086295904167684, 0.016247518698033658, 0.09867126297031495], [0.8380416973098583, 0.016215827463167156, 0.09867647612113432], [0.8676462777191554, 0.04565505222421392, 0.08896974882736433], [0.35092818391482566, 0.06660217990988988, 0.07459322778410019], [0.896865266695014, 0.016117731397167857, 0.09869254649976739], [0.13013924656068573, 0.04547426965358619, 0.08906228606695954], [0.9270353197835749, 0.04564726383849559, 0.08897374502660192], [0.16509878691469357, 0.016624869132476697, 0.09860838567955578], [0.10060369077614212, 0.045467245556238295, 0.08906587214825178], [0.19100964030276046, 0.016021296313789377, 0.09870824719559028], [0.21849772200617976, 0.04549797551639251, 0.08905017812396417], [0.07570335356635134, 0.045361085125001435, 0.08911998628973401], [0.24983252382363463, 0.015989765038168055, 0.09871335985581778], [0.38235294117647123, 0.04041702717383889, 0.09146837658135824], [0.5145331933483449, 0.015925686051367367, 0.09872371814206189], [0.5439449756454441, 0.015908773129912655, 0.09872644497550276], [0.6910034917967192, 0.01582048654865528, 0.0987406309751149], [0.32351726877503495, 0.040186365808478654, 0.09156995142025107], [0.7351054013044268, 0.06776250321076674, 0.07354075848541966], [0.5912538308495627, 0.021218627525756928, 0.09772292385066664], [0.27516012146384033, 0.044552910330458044, 0.08952674561875999], [0.6463903414950826, 0.06719802335825889, 0.07405690823105492], [0.4693410906618555, 0.06739095524637478, 0.07388138568666067], [0.9496706790641982, 0.04449641998026432, 0.08955483576524459], [0.9999999999999999, -2.50920862002394e-16, -0.07306820487327913], [0.9999999999999999, -0.011508248893123118, 0.07280417667649476], [0.9999999999999999, 0.07123623242397974, 0.016259205190912753], [1.0, -0.07286389135284624, -0.005460393788372083], [0.9999999999999999, 0.05855994900625907, -0.049174250944146826], [1.0, 0.049699000952664794, 0.05356278435360209], [1.0, -0.04116078541182028, -0.060371784035968094], [1.0, -0.04875854296352724, 0.05132560736237924], [1.0, 0.06944984514603658, 0.04009688679024144], [0.9999999999999998, 0.04665563482725371, 0.027552836632207693], [1.0, 0.022976518098237923, 0.04235001236537814], [1.0, 0.01985573963200126, 0.014479666682287853], [1.0, -0.003969118687826096, 0.029725171164527046], [1.0, -0.008513706565336081, 0.002292220138594798], [1.0, 0.01623453042698919, -0.014102429384138778], [0.9999999999999998, -0.012243143387389218, -0.026495107570484455], [0.9999999999999999, -0.03450550212999403, 0.021448820572495277], [0.9999999999999998, 0.048717406254833, -0.0034880048521444794], [0.9999999999999999, 0.013237939209728919, -0.043973699144657215], [0.9999999999999998, -0.0336930522090509, -0.008916522986870287], [1.0, 0.03915734447139096, -0.02818109576474569], [0.9999999999999998, 0.07828726642463171, -0.006766422180493856], [1.0, 0.028315887469779023, 0.06799443321897357], [0.9999999999999998, -0.037231622830931906, -0.03480413784791667], [0.9999999999999998, -0.016839190356466176, -0.05255732044986449], [0.9999999999999998, 0.026290050514930823, -0.06917579577250925], [0.9999999999999998, -0.06136973046791286, -0.0441803969696331], [1.0, -0.02194967942142288, 0.050199517822524145], [0.9999999999999998, -0.06724393895343414, 0.025594861434738964], [0.9999999999999998, -0.023637529718384297, -0.07663098922688141], [0.9999999999999998, -0.034187644013648155, 0.0713592355276166], [0.9999999999999998, -0.055992755495006485, -0.020042423486293506], [0.9999999999999998, 0.003315594733254227, 0.056195677226382044], [0.9999999999999999, -0.053411732523838254, 0.005654386985016351], [1.0, 0.00975048740202272, 0.0793532980042258], [0.9999999999999998, 0.06813621629229005, -0.026643644522860627], [1.0, -0.07540677636266058, -0.02851090800560852], [0.9999999999999998, 0.04694795383579438, -0.0656781606917031], [1.0, 0.03648978553636028, -0.05030998955692087], [0.26873484956229693, 8.678019529644268e-07, 2.4240411845442632e-05], [0.3687401665273464, 4.2675738132940525e-18, 6.76482817720072e-07], [0.7132177729366422, -1.721067164747017e-05, 5.776205234316087e-05], [0.5064582714200778, -5.580027912329954e-06, -6.147645290831012e-06], [0.8454968360563145, 5.6545921835682625e-05, -2.691232990403844e-05], [0.6095744446519211, -1.6618982545824613e-06, -8.853883966778173e-06], [0.15334132182535018, -1.2319046830022228e-05, -2.0460877770813188e-06], [0.9219427229563724, -0.019393836910254286, -0.008696595680282812], [0.07797145070964781, -0.004255908198889046, -0.021641671208288825], [0.43760016907868887, -0.008011534295762226, 0.025720063094603875], [0.7793814695249714, -0.014225914807665519, 0.025357466219631055], [0.21103072324634797, 0.028812538206096815, 0.017874133565885165], [0.21104647810581278, -0.021739483729006786, -0.025927321943246397], [0.7681683249135163, 0.021204441263570357, -0.028575021348572947], [0.42207252523896227, -2.6116260585477684e-05, -0.03650835314634295], [0.6617647058823534, -0.0005814005945286129, 0.03786617851391829], [0.5580342062526942, -0.027532220541827433, -0.025915311504916373], [0.6611794787726843, -0.002914611459696645, -0.03766803172194779], [0.8971776915532335, 0.034105736344788945, 0.016097302003348635], [0.5578848714085335, 0.035325748062242444, -0.013637649910971958], [0.3187463139547874, -0.006325724685629282, 0.03761771812317382], [0.5580176453116134, -0.008521369138748389, 0.03670962043835161], [0.31872860716085205, 0.004713335298362294, -0.03793645858738471], [0.10294117647058838, -0.0004517524971526343, 0.03837971120928194], [0.45951289654048283, 0.03889524282979026, -0.007292315072507637], [0.8013074300422406, -0.028810286004338277, -0.028551921999756657], [0.22610596852608117, -0.026944279190647256, 0.031157254419954587], [0.9431590974011214, 0.007815940751619118, 0.041704050039475714], [0.8035735709437392, 0.03878311397523361, 0.015381665537936977], [0.30900959497687097, 0.04148615003038075, 0.006022154071607174], [0.46425739269824523, -0.03701969660635152, -0.018217924530683643], [0.30761521878525944, -0.042125064603566215, -0.00619377579395721], [0.05843555708313715, 0.03518365228172822, 0.019310971911789362], [0.11158451478230841, 0.04104530461183039, -0.005107308717666831], [0.8864318010758004, 0.016202461162880582, -0.038489878717753556], [0.8860449981703394, -0.019078056696063696, 0.03725107526745426], [0.6507147607929815, 0.04171255418282753, -0.0011600536796726108], [0.23413879576048463, 0.029502815967426422, -0.033986430952436114], [0.40551481853474997, 0.04238751685148303, 0.011511760915372739], [0.11456823678207899, -0.042489545678866175, 0.000881928213329275], [0.6613862347038607, -0.04469321119953569, 0.0014262927474692911], [0.7473394638432855, 0.040127402223689955, 0.020386270257081472], [0.7486788283631676, -0.04187935047866109, -0.013034989687595559], [0.40446017111448557, -0.04397933686857277, -0.004996567605631252], [0.062030398248696425, -0.03684688879791782, 0.022380764510155114], [0.945012124481127, 0.025609346467334846, -0.035111865311243856], [0.8738688611132871, -0.03877862002672528, -0.025915256814316577], [0.18126720239218283, 0.038120439383567455, -0.026347162667962883], [0.17977485397879436, -0.04577303047226279, 0.010897135132809687], [0.17986902117940778, -0.004282581467938848, 0.046538727137563886], [0.8205814576289543, 0.028120474977303873, -0.038586424875354415], [0.12586235917798114, 0.00097282295997328, -0.04697809614730464], [0.47905926261282616, 0.006786356516091667, -0.045935174377492005], [0.8224938637908736, -0.04462707703647815, 0.017730327286237083], [0.5283130037215271, 0.036527494456473755, 0.032260336647995554], [0.39117465107503324, 0.005292033347195519, 0.047872906192766566], [0.4852941176470598, -0.001988017080359603, 0.048838816004337496], [0.5877583753626725, -0.046621160379362966, 0.014085317706036759], [0.528307337402484, -0.04657911403948473, 0.014056832216297263], [0.27896965031259335, 0.024557630731350175, 0.043136086190910104], [0.3516150867302508, -0.03599838770881495, -0.03412207508414087], [0.8237525442012666, 0.0026782102445101013, 0.047624855650862226], [0.7314465573052104, -0.016477443936689134, 0.046296887018420545], [0.5889270286845708, 0.009448834276771317, -0.04782476549828385], [0.6939026528084231, 0.03779912330428897, -0.031068168211834356], [0.25177691385146356, -0.04796508976564124, -0.008297603988705833], [0.7303568306376519, -0.008409918601763672, -0.04818014082516547], [0.26301120190690147, -0.017366109806382618, -0.047885081414833004], [0.048330099617200285, 0.03217683440172892, -0.038564849499533274], [0.35402772124147575, -0.046953690537114026, 0.016571782410204426], [0.25924527039973055, 0.050719820629441824, 0.0045295424503456255], [0.35120945970325174, 0.042400398506084465, -0.023847029120982875], [0.16255128048465062, 0.044156048410021034, 0.024319969840974322], [0.6955041925132074, 0.041884586090783944, 0.025482642744207754], [0.3558612329816083, 0.041650791096434846, 0.027461208358015902], [0.27801491770566755, -0.03594641026352741, 0.034223986118030035], [0.6169722056038242, -0.03600321566815076, -0.0359322063169593], [0.5305250122069757, 0.009545907804950798, -0.04903210459152301], [0.048511703756722827, -0.04481441066774208, -0.02513842675221958], [0.16281343487874597, -0.03275640350798182, -0.03776486347423559], [0.9548404726936062, -0.05293862563363779, -0.007371158504887479], [0.6144801641548403, -0.016693302299976766, 0.047875757287331025], [0.5979047533223413, 0.04734984991685315, 0.016369456829191324], [0.9459121886101157, 0.04819353220415773, 0.010632292399848496], [0.8511715459877561, 0.050337864810495625, 0.002442180072025553], [0.37403369429701694, 0.006093538376214174, -0.05016160722520735], [0.7088363579723463, -0.048995216339428015, 0.016045838588515993], [0.5086687654331401, 0.04877758159149358, -0.012520625402315615], [0.04874935533433605, -7.706652178763331e-05, 0.05199864647260615], [0.5100927136758464, -0.03432477884490585, -0.037421590343299754], [0.697944235301632, -0.04130319063670397, -0.031284809951562416], [0.2822771082770942, 0.0370957853303313, -0.036263281297801514], [0.9334678736871136, -0.03932530979038553, 0.034222990332817046], [0.14239945805783247, -0.03468342706871246, 0.04005693150530619], [0.9520931434459138, -0.024260125153542957, -0.0467850193903201], [0.454755370612947, 0.034729028276805685, 0.04073334257998006], [0.4812660235555792, -0.045217099689958684, 0.026707422178911103], [0.8412107435380008, -0.01356961695375251, -0.0504648176707788], [0.6299190375203314, 0.032043686165423864, -0.0423316176351166], [0.40067413471848445, 0.04176039630104629, -0.03519897364963755], [0.8600752188461137, 0.03145818862355089, 0.04397779532653011], [0.18582261372663084, 0.002844555460496614, -0.05534050969484763], [0.23526472670395812, 0.012545419610069379, 0.05430587283816505], [0.40571965703528146, -0.03747115791382207, 0.040317731389557195], [0.8975181846885757, -0.054033715515900624, 0.010112710990043176], [0.7358994467281488, 0.052471564430355666, -0.02181920572658875], [0.6347831599860396, 0.03653062488442009, 0.04173013286461572], [0.09310099420530683, 0.03223750161189938, -0.04552608619039481], [0.9071070320356133, -0.02190130353689514, -0.05167600582002382], [0.9100081605704898, 0.05179312627328978, -0.023726968253550966], [0.12021403753660798, 0.040999533571009376, 0.03896573878847966], [0.10170751080264749, -0.036768890721174556, -0.04195498497611768], [0.39447266656663954, -0.03330904552686794, -0.04702676039505618], [0.35699946229432195, -0.021986939387126047, 0.05266755231793938], [0.13935036772747614, 0.04221316487118946, -0.03930237291388225], [0.754254695814571, -0.04959002657179358, 0.029491737604735255], [0.7778950818339491, 0.023949924311526434, 0.049449723992107696], [0.7729109898541408, -0.011652268983781919, -0.05672261143629932], [0.047365086978587274, -0.01030448814278487, -0.05469258926202187], [0.6905917673731545, -0.030334061172973308, 0.050675081923830544], [0.30256818512560607, -0.033638622922830014, -0.04781183351632403], [0.43940928344437147, -0.055326474330880115, 0.0188037670785289], [0.7864561424122791, -0.0580804758478333, -0.0010634876407834652], [0.6999616237422, 0.011703904224560809, 0.056422510709620476], [0.8344887750870276, -0.054967736855539434, -0.021987419876080768], [0.5949963738112486, 0.052086836412507415, -0.027342035627298533], [0.7765224753200289, 0.058802385096112214, -0.01058770001875797], [0.5212430818319754, -0.025953021825960938, 0.051448266007728616], [0.9579576098898455, 0.00378989317611223, 0.0006373392816911506], [0.6281398418964814, -0.05191293300450343, 0.027552696414426675], [0.31923334062948877, 0.034416894415275665, 0.045647629972466595], [0.21914808198485797, 0.060011072236555156, -0.009176799448100926], [0.13999595714621937, 0.0033445470200620525, 0.058427178159780616], [0.8476977671631708, -0.03195737487042824, 0.049022377859782994], [0.44582869742521236, 0.03398684785946527, -0.04774038461092949], [0.48981641154646394, 0.05287303871162691, 0.025244474065069612], [0.5891298720508101, 0.020763366995561704, 0.052147169616754495], [0.042969736426716476, -0.0024106314858359846, 0.004011321494047508], [0.9029606252337219, 0.016487104336787444, 0.055207173918507144], [0.09967262740345438, -0.04224140983881122, 0.04010027151526302], [0.22654313242216922, -0.002021473075788547, -0.05942327295723597], [0.19308406346783616, -0.006681432561259846, 0.007759672973460686], [0.31762869346279404, -0.047633218672150604, 0.03617505818228197], [0.45143884523370914, -0.02262117017501113, -0.054734954720341455], [0.0731678450218915, 0.056477377223856685, -0.014265896266291376], [0.8577926258380927, 0.045847183020718586, -0.03799605472059752], [0.21250754169692102, -0.059134574521190586, -0.009559493099124431], [0.49658452402549996, -0.060625552659640626, -0.008863013029986834], [0.8048318851706578, 0.0019634145004341127, -0.0020574852623355608], [0.6572245446072695, -0.04384878845799869, -0.039520595141324034], [0.32929734966698776, -0.008444283902030883, -0.0012778299969274855], [0.6944022987418463, 0.007882010735652124, -0.05899281732135412], [0.8041251526580001, -0.03245994052811852, 0.051652223969511274], [0.8862337945653748, -0.0018578277559139328, 0.00028232744506459897], [0.35294117647058876, 0.017489316424618425, 0.05998985933397869], [0.627073765749397, -0.00465133419733542, -0.06019932648759304], [0.2875717580111127, -0.009219261133851808, 0.061637643248222934], [0.19021112259284578, 0.034319016166847495, 0.051974115664729106], [0.14899867426752286, -0.06000198267695353, -0.011209673532616109], [0.4558349629559832, -0.030088073761932465, 0.054443070288885814], [0.922351417336709, -0.052804929314834555, -0.03101178023482468], [0.6732575150742872, 0.007811361212376443, -0.0002875218739784067], [0.11270332781429597, 0.0006045790097308942, -0.0010735498167209973], [0.43035705215757347, -0.050574058926674464, -0.035009345542837335], [0.46621852883838827, -0.00040071691882180636, -0.0015730329029781068], [0.8581404584503163, -0.06077839411799131, 0.009684546813157701], [0.42828513527449247, 0.004349042319831744, 0.06249349237103971], [0.40854565918151897, 0.003920417820476683, 0.0009372453394975808], [0.08291163039960317, 0.03204358755908181, 0.051085712475778595], [0.752643575468811, -0.003943529471808107, -0.0020982399743777833], [0.8170234717642137, 0.060074399747631985, -0.015303584275538427], [0.7263832749721136, 0.030672197661077493, -0.05353905809137003], [0.23866322942673227, 0.048428875896919917, 0.038159848845551465], [0.23005561360769358, 0.0008100824128928899, -0.0008731165840700322], [0.23624657998500226, -0.04534747721866202, -0.043895061766317724], [0.08773603432770756, -0.004321776147200084, -0.06017050755095956], [0.738450576690003, 0.02184373525110881, 0.054650686778038145], [0.28839739944030196, 0.008571064641400188, -0.06212608315045253], [0.5594943304861066, 0.05782030751777438, 0.019301579672929222], [0.5301863324571819, 0.010905293613026449, 0.06214076886523798], [0.5699404783348337, 8.129876104468682e-05, -9.671115148108565e-05], [0.58515829379102, -0.056129303414621634, -0.024119011363583166], [0.15527826503688846, 0.062020691302707126, -0.009644484367483915], [0.7668164008522703, -0.011348076516907349, 0.06236022520166415], [0.5580195643529844, -0.047839090196584846, 0.03998361935854605], [0.5030717417873398, 0.03765642224694316, -0.04979608497144082], [0.5358436926236646, -0.059240675495602864, -0.021949561585026117], [0.43856103743037705, 0.06223472275665281, 0.015464605193698012], [0.3194652144508908, 0.042732335626415756, -0.04644168817220169], [0.07927809362646406, -0.060880729017406196, -0.0048467863895646736], [0.25203403490081316, -0.022710384107729555, 0.05877835502441536], [0.583874909944643, -0.028491296555939672, -0.055042915778931355], [0.37420055617075654, 0.06239918072399726, 0.0002311695738000882], [0.8083961580939043, 0.0016344002893395368, -0.0638028706850093], [0.19340557725599491, -0.04044499923141079, 0.04662922806576498], [0.5615923211674606, 0.03652468351449986, -0.052158947247537196], [0.34273268814288194, -0.012017037670226072, -0.06252098285616672], [0.08972328538505851, 0.05773996088997179, 0.02207184755385201], [0.8676470588235293, 0.0002038364676170478, 0.06468944587433939], [0.6199022552412674, -0.06324019508874713, -0.008555151405867377], [0.9286965586479901, 0.04360527819634482, 0.045037585137040995], [0.6525507174055882, -0.035075640460801846, 0.051876819559989205], [0.9181809749849644, 0.014122985118626303, -0.0605555415349237], [0.24775428346915432, -0.05786153920463705, 0.028036211511364092], [0.823483116180784, 0.04055115792862449, 0.04755187090793009], [0.03529642246289689, 0.03560408609850738, 0.04970490226136638], [0.7713076175616265, -0.04658432132566607, -0.04275998297359374], [0.6906274604359403, 0.06483253524560226, -0.004482759365767126], [0.2810330030126054, -0.06373898546650711, 0.009162786817761117], [0.6654675560937556, 0.032097772354434916, -0.055461462065048976], [0.37174555547738863, -0.06090616353523991, -0.013874777153994588], [0.2818212283075441, -0.057800480236854156, -0.02824244643181026], [0.03766209230627677, -0.06334330074140522, 0.007405412909819186], [0.91581762430461, -0.01873826658833458, 0.06069787049849601], [0.7341845516273918, -0.04561897868893567, -0.047325329802363265], [0.43103423409754094, 0.059152834095414844, -0.021296318796086112], [0.7892444837061877, 0.047250764938729164, -0.04483581245065931], [0.19450732203757992, 0.06198232076703291, 0.018436986872174033], [0.4168696648099224, 0.03881873943773039, 0.048544057716303074], [0.8562202065796799, 0.018175279240348452, -0.06286964105813712], [0.28553065885893836, 0.05748272467931445, 0.02888960119090646], [0.9655838387460868, 0.037922788352536256, 0.04092158988926644], [0.9236453737639215, 0.017979534047879164, -0.005154149668607767], [0.9611095108687171, -0.023608980595586797, 0.05792592709162741], [0.53967461328529, -0.025400834192099903, -0.058310778977368596], [0.9659792256084523, 0.05329256474723524, -0.02073588558771474], [0.33740975009604446, 0.06473597585277739, 0.002099132605471093], [0.962469571690468, 0.008055361646259262, -0.06403800753622488], [0.6384888343969759, -0.0184082014486951, 0.014766532403893032], [0.777144441698669, 0.058115274434809766, 0.03183801210221649], [0.036909890846704055, 0.061935759047813316, 5.947830090028652e-05], [0.19418417413234645, -0.03264685297612379, -0.0563793660209974], [0.5808885707620175, -0.024472422720082623, 0.060714213040396633], [0.0796131413411868, -0.018766632757581163, 0.060691165693890464], [0.20427943451451594, 0.034465382404517186, -0.05459886523527684], [0.6624773624273483, 0.05828639793022739, 0.029928637377417446], [0.8836947158649252, 0.06649395242523018, 0.006047925369110496], [0.28799274935823177, 0.06400487907162407, -0.012849887235202959], [0.6690034085143002, 0.03152893671998263, 0.054364802363601625], [0.40566853319069635, 0.018798406138483183, -0.06306372378423812], [0.254390554725034, 0.020787718491206905, -0.0626197891062913], [0.21098874636868564, -0.013205861460292807, 0.06357960926232421], [0.6815535032198448, -0.026187402821208818, -0.0600924935592894], [0.43270243665076796, -0.021395367096372946, -0.009042217006337496], [0.15793733608630212, 0.01153722826613977, -0.033983667446644376], [0.03539133239422099, -0.0354167625704576, 0.04927101846242213], [0.5047913036805356, -0.010754419927269436, -0.06435684578724575], [0.2544047439045616, 0.05891379608170438, -0.030113521795425254], [0.3358944749775635, -0.06226676334350674, -0.015355642926795332], [0.6219433466441704, 0.06364973648294917, -0.0056727361550593415], [0.8745136496066085, -0.012971468904260377, -0.06454032186888724], [0.15426998836900951, -0.011298716934982382, -0.06539061497049022], [0.9677052963996735, 0.00969339805051152, 0.06689630767726651], [0.66404639130545, 0.05809379431594921, -0.030444546605007037], [0.38679191134254126, -0.061758418924456354, 0.021190013543580695], [0.29696828925296737, 0.0108788196745087, 0.016890082526988634], [0.07720237513507631, 0.004764296292346459, 0.013431694903852117], [0.29393941441948385, -0.013155261673456459, -0.020608304719081077], [0.2505348488668627, 0.018902453305802487, 0.023343124296812814], [0.6850951324720131, -0.021952081866648487, 0.016113384908958743], [0.47893486331349255, 0.05822043908552676, -0.031194082794541063], [0.7592604891653638, 0.02067835079799934, -0.06311200404090012], [0.637737720157277, 0.006193457773249043, 0.06492598934129594], [0.8746161110802909, -0.056218656381284475, 0.039079108098100536], [0.5363787108157465, 0.05518321140311246, -0.034547165893503574], [0.9641526686913463, -0.027983231415166197, 0.017761990836776684], [0.20534216266523483, 0.012783528014142082, -0.022785060863505274], [0.9147456003004057, -0.0031358910791878945, 0.02256664613672541], [0.6773975442756898, -0.05680697496505458, 0.030840626224577408], [0.13376297015300698, -0.021512366065401058, -0.02053579445560917], [0.7233391415187238, 0.06393217318095167, 0.009395677102241786], [0.3451618511604406, 0.023384750100050908, -0.061463644465799654], [0.18116758977897873, -0.06050847758426885, -0.025842125228633602], [0.7745882869124802, 0.018730373483172275, 0.013695036264655826], [0.7202782741044783, -0.06297231545401503, -0.01440244276078032], [0.21273369040772905, -0.061153510377003145, 0.025638527524820796], [0.5580243729567519, -0.06438767643883055, 0.005521021884236815], [0.4786154114039117, -0.0442412267705503, -0.049452431813417984], [0.5381769797168182, 1.41097129470003e-06, -0.01578470733645769], [0.7337359337570211, 0.01762651485519766, -0.02200114536360584], [0.06834832660549488, -0.039016221923765006, -0.05408524472216216], [0.38598598263569744, 0.05680713706598222, 0.03666308238837268], [0.6871831478790343, -0.06764847112426459, -0.004110409532063271], [0.12981475866172507, 0.0637399498560227, 0.014228149994560558], [0.37802469342559614, -0.022880596812166205, 0.024749957567051395], [0.566229468788733, 0.023850948080662803, 0.025596411604168156], [0.11538590892776718, -0.021429241588917132, 0.06397819690567255], [0.15545713799931776, 0.03496062371152545, 0.057554049919542875], [0.43544648384987167, 0.024591188334166434, 0.013511923771410542], [0.787810375965309, -0.05693509816609138, 0.03347086256283519], [0.13342216224179854, -0.0511649854085987, -0.04109423966691016], [0.9158775362962279, 0.06379087191267234, 0.019499421581531118], [0.8645691596962849, -0.026711367585974352, 0.011090274560354621], [0.34930088999190073, 0.005699753942201895, 0.03263301958060083], [0.14491056939685681, -0.06482173220333022, 0.022954333613331004], [0.5600752563410597, 0.0018676616112851552, -0.06593530071567523], [0.48531973744475326, 0.018571354608789184, 0.020636500283603955], [0.49898230945066274, 0.030467702709982215, 0.050916318418472634], [0.525845128333942, 0.06583093395870863, 0.0129843231706336], [0.8838495963489863, 0.056291684555215674, 0.039220835347354925], [0.638837524892158, 0.01188075382778377, -0.01512813966456045], [0.9297924838729316, -0.06570265627557996, 0.012451628345067271], [0.43789188271693424, 0.006646916337478245, -0.06765584795252759], [0.8544699060082726, -0.0022964751627320332, 0.03305624747711288], [0.13252065640600452, 0.011739084545169405, 0.025076610739558983], [0.8245928547781869, 0.06585304039790853, 0.017700669085481218], [0.5252567949114223, 0.0005701830903095712, 0.02927638395431734], [0.8226908898028874, -0.04243683926433101, -0.051678514055893555], [0.6940632381442128, -0.007117426725351235, -0.027840014518403292], [0.16741472255619314, 0.03462062568057393, -0.057568278609395784], [0.45976973884695055, -0.06832811982554807, -0.005335744701030035], [0.030637309371161204, 0.004197087289166454, -0.027847822292823576], [0.8788517234547046, 0.03710801602920253, -0.012566985735067322], [0.5908845408407308, -0.017438489364416013, -0.02314627002704053], [0.38129792775779664, 0.03037485848066907, -0.009427738852995833], [0.26189890431499707, 0.011233500404385848, -0.030675169778821787], [0.8346904531745591, 0.025856991908970707, 0.019128922306135346], [0.32124677296442916, 0.008905317711859269, 0.0675767638279208], [0.5896113369284044, -0.013894137533821946, 0.024348519602806675], [0.9719505618929831, -0.06266977611559767, -0.03122292458704278], [0.7343225501881164, -0.026971916441058463, 0.014375805349983693], [0.3501258851947364, -0.0028139137499651073, -0.028036037141564905], [0.18069652404651132, 0.024311157791192903, 0.004236825204770158], [0.5580462567614881, -0.030199090103664873, 0.01031258475246547], [0.10606587615495952, 0.06065595418817592, -0.03225238052944445], [0.32600360984433585, -0.024074181648267197, 0.06499080675000543], [0.8643754441935392, -0.006515953369049336, -0.027097229891856332], [0.48761464576107777, 0.022516778874258937, -0.017073539423408408], [0.7236962512355208, 0.05032156992371961, 0.042855715611927615], [0.7248126514323625, -0.04932353637459637, 0.04551011788518828], [0.39026759168420067, -0.008570974063173165, -0.024499308807905556], [0.9673596233112444, 0.04327038407436684, -0.052582137484352476], [0.599777794762444, -0.04826079623031547, 0.04571579606200116], [0.9685942520364906, -0.02331796435539222, -0.01701340927321335], [0.33695604961245385, 0.024070099032962696, 0.00021341599359347649], [0.9604223501319725, -0.06102025057670106, 0.028782550341686024], [0.48922100649796074, -0.03506356063872608, 0.05811598045996374], [0.7771873613136645, -0.026229406106157118, -0.005673890201045114], [0.5630784068630547, 0.0053734667406446284, 0.06699836674509087], [0.5688789692208551, 0.06745218411172818, -0.01192450637420844], [0.7120199294126135, 0.034775170396423444, -0.00291713447719143], [0.7210010039428645, 0.020003987488302157, 0.025895552635214807], [0.14351754717055756, 0.032021591465798076, -0.0004458716164833249], [0.255555268927003, -0.013262151702617683, 0.026910770501650614], [0.46055994534437794, 0.013148945915733231, 0.06585294780437538], [0.27791063490283224, -0.03127339441669755, 0.0019130855153856082], [0.6710776529365329, -0.009942960203410641, 0.06855951194197171], [0.38803465726923536, -0.023278172019705216, 0.06473786768090965], [0.14939285306465033, -0.03232361235044034, 0.007481768284790397], [0.5099646937818653, -0.05573877476594348, 0.04069609520477904], [0.46931895490435077, 0.06871166206825814, 0.004148161214567644], [0.37097204458415906, 0.04255870785855716, -0.051205041648179836], [0.41344387542833344, -0.01588861380080605, -0.06805862190703453], [0.749920007765849, -0.07028161441600063, 0.003980483066354152], [0.6611722466786065, 0.000392371306528676, -0.07075216711471416], [0.613922523171242, 0.012407005928086029, 0.030973898119720084], [0.027660327079268354, 0.047738705980652656, -0.053897526449029245], [0.18061507570475221, -0.009512853097457662, -0.0226212170730713], [0.29849440126813453, 0.01863545431282125, -0.014778375102766922], [0.03789945158791003, 0.029045995644273792, -0.006503474895051327], [0.6421960148943391, -0.02265706704252935, -0.018300624537953454], [0.18747415588971017, 0.0684353657295883, -0.013170780973944477], [0.7966520855335184, 0.03246501963197705, -0.016268698569998283], [0.24327105537758084, -0.01984870495868879, -0.02219245636615259], [0.7564162470945314, 0.04967382841966388, -0.04755197621911645], [0.8030526334199726, -0.06174091856667205, -0.02933435866110694], [0.7953201026966568, 0.0032064005300014155, -0.03358962311964294], [0.7966367705929566, 0.002710300409569531, 0.06692390746493905], [0.855204416981039, -0.04803811331337227, -0.051497221105190394], [0.3171316048068211, -0.06852387112823687, 0.010850898619912936], [0.26467417407233407, 0.01251023434562082, 0.06987106676296735], [0.8934095089107101, -0.06483535869248971, -0.02076952347947358], [0.11148974063254101, 0.019961741622551613, 0.06334166222728678], [0.5898280470135375, 0.025719865502660796, -0.0076463545864837975], [0.827292032849336, -0.025822453052165663, -0.008732701802106975], [0.4244161746265404, 0.026973214843967162, -0.017566901609049196], [0.5580359536412614, -0.053878319809786725, -0.04572726042546671], [0.8890107348880897, 0.04752974340082718, -0.04902430783994963], [0.8667179180110817, 0.021187224349316844, 0.013485193856496923], [0.10778244148384881, -0.06446348930511368, -0.023894592965217863], [0.0861692974986689, -0.025353669189466195, 0.0026690598408838258], [0.49098527837623723, -0.029177832471644984, -0.00047589030078209647], [0.028236117086773427, -0.06704251570498673, -0.0211984086959653], [0.6033731906097357, 0.035651006140912926, -0.06123929477951284], [0.7495968572443255, 0.004626849376572744, 0.029249740739552763], [0.16426513989512642, -0.027759130670129344, 0.06401551050032124], [0.06267333752643364, 0.017894649139154284, -0.06584482150711403], [0.7228589854401778, -0.023471725695889605, -0.020329771595209517], [0.6304865297197221, 0.06523747507263175, 0.026119320339746403], [0.20988994387379392, 0.0009481040374555655, 0.03442362268841595], [0.12615965222008463, -0.027698337357109963, -0.06262059422864948], [0.39903074946837463, -0.06183521759230437, -0.03179569072430536], [0.5294947823490286, 0.027063656561807443, 0.0007783058316591929], [0.3754143754090852, -0.04839295334096675, 0.048497390771971655], [0.9058071196107608, -0.04754014834592011, 0.049295334064502656], [0.42508660632005874, -0.027851862617218413, 0.06447211498968033], [0.42601655565874064, -0.0682648144049427, -0.00796376120129936], [0.12985506704898972, 0.02681469847029366, -0.06636089613597479], [0.3818375216127188, 0.022857394529349335, 0.022179971618984374], [0.36635465025189706, -0.0347851018789189, -0.0628172998667323], [0.04417862008099481, 0.061875380263869684, 0.03209570770361841], [0.9371701965112832, 0.0675291766287702, -0.014334320182755898], [0.3172060957913487, 0.0618183858863098, 0.029296920044798305], [0.028783155658448027, -0.03528173229607414, -0.04818952575188982], [0.6132520291512377, -0.03238747938142587, -0.00040604185208138277], [0.3182481710189752, 0.06557198113308005, -0.02377060780644972], [0.8113803767558342, -0.01527026260739088, 0.024145696663809495], [0.3115585353973366, -0.01215408733304132, -0.06976395236006677], [0.6430443152586387, 0.015765692733553133, 0.016887447342956573], [0.11263101730196211, -0.06620949783618492, 0.022734949891271703], [0.08337150203849614, 0.025829333536462634, -0.0105555866253659], [0.7704173538751471, -0.04262911474514212, 0.056297380516973326], [0.9299655387678929, -0.003192118649478319, -0.035704257838642096], [0.23488840614923834, 0.03194676948816064, -0.002536756260942361], [0.32726057869188857, -0.05360029635234689, -0.04480973417740058], [0.03135911916402846, -0.0324401575596226, -0.00045633718651394813], [0.07919942074441691, -0.06380117956213105, 0.027365318138511632], [0.6502852018187362, -0.0674345581496693, -0.018608060660482605], [0.8522455844488789, 0.06036540424398629, 0.03278279863685367], [0.5524033345664663, 0.03266396711356543, 0.05342141610919656], [0.9714029245570505, 0.0070525622421941, -0.0291173465461835], [0.5063178112484594, -0.0028992355987345416, -0.03198942600225473], [0.45830324453216864, -0.028316105805130713, 0.012054687900270311], [0.45196946989954684, 0.008785056693335798, -0.028830927472210614], [0.8160006748088825, -0.06951418118087069, -0.0007674348375786733], [0.22109721806025545, 0.057691642034837065, -0.040838527095590674], [0.030298790506439986, 0.0163788774808156, -0.06238255941647173], [0.22500629891667634, -0.0320597741385895, 0.00021495342531422488], [0.8437930284796152, 0.026610763505450184, -0.017141532548898573], [0.7554584388528841, -0.016694401910035104, -0.030870455659200255], [0.7128221811961445, -0.029393432051441612, -0.064219844915222], [0.6479030256223095, -0.02818964555601965, -0.06571709162385013], [0.40459457849833624, 0.06849311458848466, -0.006476448966112773], [0.8877699608806299, -0.047128728939830555, -0.053301817056288815], [0.9245393160471076, 0.044295763971214576, -0.05142019381149925], [0.9322876558228708, -0.013142145845955152, -0.06915694837648181], [0.23652447627995493, 0.06953222440976813, 0.015097124885263127], [0.3758198751183334, -0.030303837090508677, -0.006384190869639291], [0.8385409676634726, -0.06054914156777526, 0.03961299113076556], [0.6915255771435115, 0.007747657866977449, 0.025890565828861702], [0.7976331480329508, -0.029169951567130363, -0.06551612306552138], [0.20740518246204723, -0.057691050853928096, -0.042840727487479476], [0.5496508999616465, -0.027554771874223893, 0.06556344456016332], [0.028509528243753298, 0.011294982173025941, 0.02948488128721639], [0.26593026528171865, -0.048007505580274286, -0.053310980194550245], [0.2976850488419576, -0.038417312501476085, 0.05817726658188816], [0.38104905518695786, 0.03404102869053799, 0.05950124830443309], [0.30358357456559343, -0.019123558906776437, 0.013981487000068689], [0.8795796579111131, 0.0660026298502503, -0.025237972412035], [0.04457223924738524, 0.06342079765561114, -0.03128383131259493], [0.8277696156085487, 0.00040942106600351026, -0.025857493872373724], [0.09848994834627614, 0.027280964803567603, 0.02032369847372327], [0.23319050529953433, -0.04748076024999021, 0.05395934408155376], [0.7542994681158198, 0.0685161310284426, 0.009195516293550459], [0.6599048700485954, 0.07214231260559044, -0.0008474278023689276], [0.16572615771993432, -0.05536191053130398, 0.04463105522820009], [0.12164633939054917, -0.019613764941622425, 0.021546465763304396], [0.10063526355262431, 0.07223004621718586, -0.0035662440890531543], [0.5216933642123919, -0.026157914605677804, -0.009161932142258493], [0.633549103366923, 0.06258571142549359, -0.0362085086205719], [0.5010532526351648, -0.019710508906651384, 0.02794750708861641], [0.6494774022528467, -0.07065047471914174, 0.0143131812157276], [0.7540512505564292, 0.049041865252955646, 0.0512990180529244], [0.32356035186929816, -0.025224276034287233, -0.02666146694345536], [0.6205156865957112, 0.03264360258376849, -2.5259981046208535e-06], [0.06503279056175222, -0.04538196464976519, 0.05248730749543556], [0.7103238326678821, -0.014809371813041051, 0.06920438825661276], [0.7090755884330247, 0.06495741972283944, -0.03143749485586701], [0.6652976700227331, 0.02635243836057625, -0.024484368391365873], [0.8857838460099399, -0.024847865446210895, 0.06779290536250535], [0.8268652860452806, -0.019951407361248674, 0.06848314274664814], [0.766607002072109, -0.06918512351629184, -0.02209868715327627], [0.37969780249558716, 0.06484670854362712, -0.030703919397090492], [0.6146601962922389, 0.0010533490024957086, -0.03194904224240018], [0.9307679846824802, 0.007328053146128137, 0.07092286384341864], [0.7950749119507844, 0.07156876590073649, 0.010570057524021471], [0.16330395113477314, 0.013402117945334711, 0.027345624264333162], [0.026178862260757472, 0.01276632904644861, 0.06604242111754244], [0.8864849533568857, 0.02074472072890336, -0.06917710960220802], [0.5600967554416357, 0.009961247233086855, -0.03573376043537427], [0.474150218473864, 0.033761382440996905, -0.060799768580813394], [0.8626938171967119, -0.06723961446849423, -0.020101358633481156], [0.9727530175082614, 0.03229918882416531, 0.0027021468812702875], [0.31531778468233723, 0.02188541004014311, -0.06863520286279387], [0.9716418396630587, 0.009669845160136874, 0.028389090991277736], [0.5804540163715725, 0.05165694105844492, 0.04413323368133896], [0.12578890428532882, 0.02001498216479435, -0.02268200709030056], [0.5065016735622992, -0.00688611080155234, 0.07066596213830634], [0.9719447989697841, 0.06519479653523597, 0.02779223856964815], [0.6954711069848508, 0.03834338299987047, -0.06161586292696699], [0.45853226012582043, -0.062389407538366214, -0.03528101063029403], [0.7892741248102841, 0.025300194642667417, -0.06602103929217022], [0.14346798962047413, 0.06061588977650665, 0.04155866519922577], [0.3457944090046093, -0.05617229002990134, 0.04524302872727445], [0.7997239908586954, 0.012451353881788203, 0.030955933483858663], [0.0702634862381213, 0.0529577200780572, -0.04477203547704746], [0.5319855283380811, 0.03814379577809941, -0.06006376733489013], [0.4749378565446172, -0.011064672568165318, -0.07022822827235312], [0.16407344574024274, 0.06000100700017004, -0.03873950804179196], [0.9714220909382821, -0.01992278887171203, -0.06904694305162497], [0.20985804577867892, 0.055880903101602, 0.0438235302482429], [0.45855419774203193, -0.058576586501431854, 0.042823015526778106], [0.8423534341277047, 0.019243668439303672, 0.06734626036040998], [0.7335539217536267, 0.008280401949685, -0.07325099368196428], [0.5987489719948352, -0.0073660103983981965, -0.0714047372022206], [0.2660311511679285, 0.05092271224660913, 0.05142919797456595], [0.18928616094979503, -0.07352892300625143, 0.0034655854015993443], [0.6402439947793129, 0.02230508493194124, -0.06919005185877303], [0.29346864609688394, 0.018968789704633223, 0.06827427015720712], [0.9292182235777907, -0.04198506321830059, -0.058959836607165354], [0.41329881395194057, -0.022699340626779682, 0.014843483896506561], [0.08410971069034988, 0.009376340747704832, 0.07134875170600667], [0.8299294711821958, 0.056551680056667795, -0.042337121391811935], [0.04437484974233822, -0.06215049375264334, 0.037282455905176724], [0.8498976054077831, 0.06945026617573287, -0.02089935442242761], [0.23679609924256032, -0.06814932836158358, -0.024528778422035092], [0.8956657214903955, -0.01772053641199773, -0.02384723818410089], [0.34077298179742105, -0.02094418358471088, 0.02345249993166196], [0.4990066881309402, 0.017756465709380102, -0.07197264597402618], [0.5997152098015116, -0.0017734319001280739, 0.07100572203972064], [0.4626505049094324, 0.06281963892947953, 0.03345679960457654], [0.74782401225701, -0.025820737881922223, -0.06543725013873725], [0.6974994043922255, 0.04198593817401545, 0.055805144336184186], [0.277350704363332, 0.027772664242098004, 0.0032616304934658907], [0.24165255585313572, -0.026639790634709483, -0.06631488391025077], [0.07692640396683784, -0.034360267190719614, -0.02472267729071619], [0.41437155321839325, 0.010565651085956453, 0.029601627148956512], [0.5285700154316422, -0.05257344466014241, -0.052347889819119676], [0.36764705882353016, -0.0039318403804613185, 0.07445375207164345], [0.8273816281871816, 0.024378312442965042, -0.06740405970188823], [0.37199298328762165, -0.056830001260502146, -0.04346522772436964], [0.672118965181851, -0.026304908032588413, -0.01997897180278286], [0.06436673765687585, 0.0697379557719485, 0.011245258123397342], [0.39689629902470946, -0.07383414695097891, -0.004210257064145519], [0.17145491870656812, -0.020037269911581362, 0.022930544223063964], [0.516703341370894, -0.07343300497270372, 0.008857565652170083], [0.38413284053876834, -0.01249191600729566, -0.07093506024194143], [0.6803421760312122, 0.0369873768536216, 3.3362319691605935e-05]], "u": [[0.0, 0.0, 0.0], [-3.629099200796908e-05, -0.07196837662075535, 9.294699937139568e-05], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-1.658773829319754e-05, -0.002045282209551893, -0.00010784584759278393], [-1.3053274258501292e-05, -0.004049889944855361, 2.088925009875676e-05], [-2.9185911684635174e-05, -0.006195617628100819, -3.168336113532642e-05], [-2.6261332078543908e-05, -0.008458851715551717, 3.123018423764453e-05], [-5.3451961656925424e-05, -0.010671568974731614, 0.00015244041651826942], [1.3846680066853498e-05, -0.012611995542101765, 1.0027665260371548e-06], [-2.3719133567548326e-05, -0.01462684472968059, -8.364033263439649e-06], [-1.1725039817035833e-05, -0.016851655888225743, 8.534554984055425e-05], [-8.157522193263858e-05, -0.01898736227805493, 9.70569603804707e-05], [-1.4779796487048923e-06, -0.021077540297236377, 4.3064390480776294e-05], [2.5903897815474607e-05, -0.023344428765306076, 3.835794033710318e-05], [-4.671600099503904e-05, -0.02527095120424239, 5.506146677435599e-06], [6.119382665741665e-06, -0.027720849201406404, 8.193286536033153e-05], [9.507362800981446e-06, -0.029512770771220165, 3.8403749839409705e-05], [8.385493090949882e-06, -0.031655056293462804, -0.00016127678376997562], [6.585858501987468e-06, -0.033812866865408873, -3.89896186059908e-05], [3.864065896615002e-06, -0.035866930519823995, 5.510379840572411e-05], [-4.488290229251781e-06, -0.03819069961254682, -3.3407882239399436e-05], [2.3472611141728537e-06, -0.04016125027097402, -0.0001295883386441753], [2.4711813813079674e-05, -0.04231810101965497, -3.5994708258557273e-06], [-5.036668020807024e-05, -0.04461143400180883, -9.549093829010557e-05], [-1.0953237353420958e-05, -0.04657316020861479, 0.0001127276758686627], [-3.693317333828203e-05, -0.04882648650441401, 2.555140966828692e-05], [-5.2769604375865966e-06, -0.05079177913110799, -5.048411886744727e-05], [-3.103966411918269e-05, -0.05318808044960985, 2.3156811208897453e-05], [-9.61203415708751e-07, -0.055322058154975755, -2.0963970506894137e-05], [-5.704202418839626e-05, -0.05709854066999469, -3.1074729752319995e-05], [-3.336926612235779e-05, -0.05936440164068158, 9.808445054574316e-05], [-6.910008589179015e-05, -0.061516143055316476, 0.0001258713034604798], [1.5065288770114778e-05, -0.06374268473073996, 5.305769960703709e-05], [-1.822283255471737e-05, -0.06550856445758128, -2.876868335364469e-05], [-9.569056228419933e-05, -0.06790017991104604, 1.0704822540971446e-05], [-5.557543514365937e-05, -0.06997220259092059, 0.00014028404120693526], [-2.1285452019483293e-05, -0.06871637662053123, -0.0212030169134831], [1.0774288467970225e-05, -0.05944918455228323, -0.04049777219640231], [-2.0813900691275315e-05, -0.04489175089973011, -0.05620925584442689], [1.568626522764594e-05, -0.026274926116030668, -0.06696559345920894], [8.051413003292228e-05, -0.005282820822534962, -0.0717048835875828], [1.8898114962052587e-05, 0.016131333988822653, -0.0701633534265952], [4.5543270932119276e-05, 0.036019686211808136, -0.0622449331355984], [8.685164894350357e-05, 0.052869572391273885, -0.04889900302321044], [-5.0664096846850595e-05, 0.06493773142162594, -0.03132787517112203], [-1.3551381277356107e-05, 0.07122542025997995, -0.010698412746739829], [1.9339140986847574e-06, 0.07129433520415288, 0.010729381648305267], [-6.447304600641296e-06, 0.06493446438411363, 0.03132385388641662], [3.7975707825015825e-05, 0.05291408007998837, 0.04901260750536241], [3.2481554850359386e-05, 0.03597399039660276, 0.06251688794966268], [2.5017875087333628e-05, 0.01600807104976023, 0.07034596105049522], [-8.417953279336426e-05, -0.005204846362260156, 0.07191983742138355], [-3.802799166470265e-05, -0.026277184253274, 0.06709675415676666], [2.040121415617987e-05, -0.0450339199726997, 0.05634893617454698], [-4.9530305209391006e-05, -0.0594543621597973, 0.040721056343997676], [-8.246015849926645e-05, -0.06879603888176124, 0.021399371441865076], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [4.731563010039143e-06, -0.033713406949360585, 0.008813684128083086], [-1.586766382407101e-05, -0.046164303011161215, 0.011999385368772287], [-4.561034951506891e-05, -0.023508900955286176, 0.0060454227291805405], [-2.8404017132922684e-06, -0.05226698740379729, -0.013564343789952008], [1.467407433005266e-05, -0.04403578719365704, -0.011464537618461914], [2.0337388519000197e-05, -0.03597465477385782, -0.009305208249650797], [2.4107147459283965e-05, -0.02769683537149435, -0.0071823851169922496], [-3.3594098145753085e-05, -0.017496241872707662, -0.0045382570996427354], [-7.172632963813513e-05, -0.05434601547518056, 0.014180652670117588], [2.830943205722634e-05, -0.015202229652303337, 0.0039533811146963095], [-1.2572035094134898e-05, -0.05878636606901048, -0.01528065928036384], [-3.906194013423358e-05, -0.011203991984862419, -0.0028321399948388263], [2.9097234119289604e-05, -0.03959815190900454, 0.010223162321158883], [-2.1321158401451347e-05, 0.07000603429374591, -0.0010038466498940458], [1.3779297708464863e-05, 0.002128076336057124, 1.3367355934012402e-06], [2.21018266905633e-05, 0.02571308126698557, 0.06542169911525605], [1.0470462398958715e-05, 0.0007309852149075504, 0.001758484056652698], [2.125606137982502e-05, 0.0008942004206125615, -0.0018257731881296453], [1.6833482791145854e-05, 0.02575003253426198, -0.06519796324028632], [9.493851258293287e-06, -0.06071854917392762, 0.015872982411019386], [4.5803872221218674e-05, -0.009187852147608207, 0.002442690183355656], [-2.0023442360578473e-05, -0.0009806326401503287, -0.0014854617836744604], [6.425717618600746e-06, -0.03520353370431198, -0.06049863247483676], [1.7758612480087042e-05, -0.03504074818865626, 0.060950808701811], [-4.278950231542467e-05, -0.0008568898834309386, 0.001712516235269017], [-1.0776503129323131e-05, -0.023725222117029335, -0.006116333633579257], [3.6775803378146884e-06, -0.03165955193245785, -0.008196913103831317], [2.2481929970037932e-05, -0.039975671479124154, -0.010448308290982249], [3.3289484265691565e-05, -0.048265117792201585, -0.012540613676628103], [-8.137686736533399e-05, -0.007033929530587408, -0.001726515220489002], [-3.710579092671987e-06, -0.0626370319350638, -0.016346028000788923], [9.185067093449948e-06, -0.02777213398944308, 0.007169169310643757], [-2.3505319827752616e-05, -0.01944041749421499, 0.005056252223675149], [2.765393583672127e-05, -0.050297825003564674, 0.013132083616673087], [2.3388535242548295e-05, 0.057875988377987686, -0.03903824752738176], [2.317028357335527e-05, 0.0015540249393265707, -0.0010723272447828707], [4.2447283873731535e-06, 0.0014310348116748591, 0.000871279128905053], [1.3656582932556287e-05, 0.05840077884583789, 0.039005478280076306], [-5.119488045355851e-05, -0.06436908490297157, 0.016881638378612826], [-3.04106154332603e-05, -0.0049695704303459095, 0.0012691975368184119], [-2.755992544836509e-05, -0.06643427564053726, -0.01713240202966116], [-1.8851026315426756e-05, -0.003108408890625598, -0.0007982988027740644], [-5.319720636311499e-05, -0.06320341513004904, 0.030458333056646674], [9.569525196654286e-06, -0.0014609864592218715, 0.0007658336689062861], [-7.91425346014918e-06, -0.02965239207398582, -0.0076175331094988285], [2.4277363435347923e-06, -0.03363612110258613, -0.008693284874215945], [4.599181644807524e-05, -0.03768198364858162, -0.009852109246610218], [-5.935759912311785e-05, -0.04216331799300132, -0.011093272660653453], [-8.717077666669535e-06, -0.04603604528136141, -0.012035497949561736], [-2.119625603862012e-05, -0.02553229554447403, -0.006595728420217845], [4.3344189075967e-06, -0.02139940199771843, -0.005682937781159271], [1.3461318486267058e-05, -0.05446673274708689, -0.014235219979167036], [-4.203651535263489e-05, -0.04808642238173233, -0.026963922823185237], [5.493563201180565e-06, -0.040615892618344744, -0.022754715355585802], [3.810841243177341e-05, -0.03313043654867742, -0.01858589959283188], [2.0480810648238055e-06, -0.02582529775036579, -0.014456204532353212], [-8.75527429576736e-06, -0.02023272255607423, -0.01137999328350481], [-3.966987265204699e-06, -0.02951015937020036, -0.016446557839749076], [-2.3343804425557314e-05, -0.037119908103228, -0.02071856298009912], [-4.917157047359358e-05, -0.01830567724516341, -0.010275539242760565], [2.661097731203762e-05, -0.04639917508032149, -0.026017969990586556], [5.667213161680731e-05, -0.039000458181611915, -0.037528561189494124], [2.4819245459875875e-05, -0.040603978599984984, -0.039098995956291224], [4.311547824773899e-06, -0.02873564107512453, -0.04720493731221815], [1.973514327890545e-05, -0.029879723710123377, -0.04898993560158287], [3.124837456801432e-05, -0.01618910102296108, -0.05378587791876599], [1.077776469320591e-05, -0.015552646133564446, -0.0519127768731848], [6.879460166212297e-05, -0.0020131213949290175, -0.05525169645752625], [-9.978375656011465e-06, -0.0017774798129175286, -0.05296394465186091], [-6.497434172373219e-07, 0.011805233473931231, -0.05271117372309894], [-2.181422314466298e-06, 0.011404300569097836, -0.05069496522611339], [-3.6322408830415947e-06, 0.01239219100357217, -0.055019669322380935], [5.1101712326334945e-05, 0.025342182884513686, -0.04910879274822313], [2.38577948802626e-05, 0.02632836871811066, -0.050852269285668196], [3.968364116716652e-05, 0.037803617621592865, -0.041900036265239866], [3.55319290933579e-05, 0.03900199750531061, -0.04320929974325459], [7.78033418758747e-05, 0.04809822169360472, -0.0313743457825717], [1.2773406676885102e-05, 0.04618327928640504, -0.030213557340106674], [4.017824522860186e-06, 0.04983296736237927, -0.03241835720243925], [4.722393582755999e-05, 0.05546002802025118, -0.018496336704838155], [4.761562125831351e-05, 0.027393578865194657, -0.0526439619670988], [5.677041546950522e-06, 0.05731856354387478, -0.019061795221218064], [5.8020815480617675e-05, 0.05943538920128553, -0.003925867948092677], [2.741778146681759e-05, 0.06122294987718231, -0.003870140078079886], [3.470377087744008e-05, 0.059481295807876415, 0.01155670810079591], [-4.120613118513791e-05, 0.057237863751405126, 0.011113430694220501], [3.750043743021738e-05, 0.053520166004428875, 0.02582340498657507], [-7.089725356979155e-06, 0.05164513926728399, 0.024922066834043206], [-2.427866240825385e-05, 0.044396707697775206, 0.03782565660883879], [3.0938783672031377e-06, 0.04274804463331756, 0.03642484667384792], [-3.524539676684267e-05, 0.032698104281690295, 0.047105256620723894], [1.46623356675807e-05, 0.03152849197725192, 0.04524729472614923], [-5.699161021524392e-05, 0.033935626212208234, 0.04870712874762242], [-3.179034949922615e-05, 0.020030805387963077, 0.05466123828814204], [-7.295332519785038e-05, 0.020885334019705045, 0.05667675654633624], [2.0729779835753425e-05, 0.04091779206767815, 0.03492866622407576], [5.675060570217596e-05, 0.03025483062161873, 0.04342399795504646], [-5.050853826032491e-05, 0.0056606105825307874, 0.05917518941257391], [-3.845907702814659e-05, 0.005834531901214235, 0.06147317683013872], [9.504237429539182e-06, 0.01860547784264501, 0.05076406298719667], [-2.1740600623716285e-05, 0.017889758004922766, 0.04887120283422057], [-3.705843736710164e-05, 0.03524541712414048, 0.05057845285669928], [-3.365870481904058e-05, 0.005014971617872758, 0.05269066328659533], [-8.242968112970939e-05, 0.0047771739434803945, 0.05064683868478509], [-3.147508733882286e-05, 0.01709136470451901, 0.046666326728706714], [-2.2734758126261743e-05, 0.004587449896537257, 0.04854406084111904], [-5.082550586931553e-06, 0.016325132651521395, 0.04471422413575634], [-1.5172220800800808e-05, 0.004424968606303666, 0.04621464304684898], [-8.736058418964576e-06, 0.015537060431431668, 0.04260841046036219], [-1.0064173920986608e-05, 0.026701412896730115, 0.03831894000438604], [-1.5365044327883286e-05, 0.025242522852990525, 0.03628151112645729], [2.553561468277848e-05, 0.03466703075915001, 0.029545753201901583], [2.801747779531566e-05, 0.032934995885782505, 0.02796705618791588], [3.263196001854212e-05, 0.03997874265611877, 0.019361741816352047], [-3.596466987763072e-05, 0.037928412924612395, 0.018321069566262935], [-3.4082741615479615e-05, 0.04259032217183504, 0.008324587198700143], [-3.758728484734809e-05, 0.04048031830001565, 0.007934883509482212], [-1.1045896873773799e-05, -0.016042717593368408, -0.015267857650258341], [-3.36896743410763e-05, 0.0361458307676197, 0.017351816007675668], [-1.0224416254515398e-05, 0.038185112658793235, 0.0075378380763707585], [-2.11790940417419e-05, 0.042006727692679866, -0.0025890733219664777], [3.203678798160748e-05, 0.034116039565545854, 0.01646198117700898], [-9.288222698117527e-06, 0.03641913626519208, 0.007071071047650728], [-1.308964982528945e-05, 0.032346945503604035, 0.015521703851181578], [-2.8251444657875615e-05, 0.034044331215854595, 0.006571894308531474], [2.2686026139904734e-05, 0.03045971891975072, 0.014704761904546372], [1.2022821755998635e-05, 0.03208772245481836, 0.0062334633091303], [1.1787269630029472e-05, 0.02846248955244868, 0.013715402787937456], [8.646161394411343e-06, 0.029965703825238575, 0.005954976202301336], [2.8304848936174056e-05, 0.026566176144650743, 0.012823231532629117], [8.881523317032261e-06, 0.02783050596736826, 0.005341308638325059], [2.2536521367348758e-05, 0.024485146069606164, 0.011846467934765187], [-2.012022185192337e-05, 0.02589169341024592, 0.005043911569480967], [-1.8342672425358157e-05, 0.02285152861508749, 0.010971592218397185], [-2.449115517945231e-06, 0.023785856603551786, 0.004592880204128275], [2.364112055330169e-05, 0.020833133183421025, 0.010054629627704096], [-1.1964687931985095e-06, 0.021593741339520127, 0.0042033034698220955], [-9.019901650758867e-06, 0.01893101084178032, 0.009025274921649378], [9.105266925280082e-06, 0.01955442584162885, 0.003906875375465677], [-2.4991358696093713e-05, 0.01697828475400845, 0.00821120220374882], [2.179059847783322e-05, 0.017182541269194208, 0.003345945308987251], [2.4370302090252358e-05, 0.014958164099594414, 0.0071462987696866345], [-1.7166304760144355e-05, 0.015328786794162119, 0.002977956569316723], [-4.127145665210039e-05, 0.016686306102414526, -0.0010932990955926439], [-9.482774386296573e-06, 0.027263496721626788, -0.001774748107840125], [-1.8457112675075626e-05, 0.013065052350236046, 0.006347728670695984], [-3.671177653411338e-05, 0.014562173225183014, -0.0008939906488793112], [8.041527360890838e-06, 0.014767776423181713, -0.004922494310298219], [-1.5586979451037936e-06, 0.014937924136924257, 0.040617575049919474], [-1.325826380275467e-05, 0.035748101445709536, -0.0022540051304456277], [-1.4948687500238122e-05, 0.012638702682118617, -0.004209587558727912], [-4.17115445907354e-05, 0.01234806639281067, -0.00799971823610187], [6.241259240623317e-06, 0.01379960650413484, -0.009184386403448538], [-2.1076323393462782e-05, 0.010548507568345324, -0.011629583552682477], [3.101313829152722e-05, 0.00888695385058921, -0.009795804240698454], [-4.22174330647033e-05, 0.024836027102837208, 0.021288758852557755], [3.519794379533983e-05, 0.019947242237579925, 0.017027792572077732], [-1.2215567571423343e-05, 0.01358973719417103, 0.011496616248016085], [-1.606434093726047e-05, 0.04428094171067452, -0.0028428857074350054], [-1.0878979521626124e-05, 0.041054479880459675, -0.013626886452790667], [4.247408812957337e-05, 0.006590366289014973, -0.012945470886400903], [-5.1008789606729085e-05, 0.005648960343022325, -0.011058001660538467], [-1.4746561258980619e-05, 0.011743708497856638, -0.01308648253780355], [-1.3053721509590341e-05, 0.04305615504887684, -0.014079136007212698], [-3.3789029706502718e-06, 0.0372428816507759, -0.02407902292420446], [3.213904764522453e-05, 0.03534671981138174, -0.023000489912898867], [7.641959142791164e-06, 0.029243897905620785, -0.03201087573040055], [1.0347110041065802e-05, 0.027880844745878614, -0.030546986895466092], [-3.7137070526201084e-05, 0.002983106973031625, -0.01328445402091049], [4.68069546023999e-06, 0.0024049270228520977, -0.011171328624849179], [-2.863514305657758e-05, 0.019675886052075084, -0.03734821515540873], [-2.1176260825357837e-06, 0.01853186425587367, -0.03553036651647202], [-1.5409364463340675e-06, 0.028112986046778626, 0.02396591363424319], [6.671935966735211e-06, 0.04197258348776315, 0.020116361949773984], [6.691011870580228e-06, 0.03156923088611384, -0.001973324382506111], [-2.396144765624656e-05, 0.01659034713499398, 0.014196367693079777], [-1.8339381468637347e-05, 0.02313264600750807, -0.0015690056318419016], [-3.1227479721725015e-05, 0.00476334777339562, -0.009285739239223828], [-6.009344926906355e-06, 0.0032845548320953387, -0.01517339239252053], [-1.1838029964770922e-05, -0.0005704876809072481, -0.014758363228446631], [9.000571782397739e-06, 0.002045779832154086, -0.008977548568510811], [-8.22127728368851e-06, -0.00041762125311681973, -0.010280200747740689], [-3.7876859336126707e-05, 0.009289462494290841, -0.040039016997583624], [-1.3533131003139676e-05, 0.008902600867894857, -0.038113265810235004], [1.5825790647593538e-06, 0.009886630798074874, -0.04217788250570148], [-2.666208578604941e-05, -0.0018075210546481275, -0.05088743611387334], [-1.323886853981457e-05, 0.06140531345640894, 0.011923575417498014], [5.107764679844915e-05, 0.059301734436221894, -0.01967461311681836], [-5.743989207812203e-05, -0.008005639491170672, 0.04918827618533724], [-5.05863852381245e-05, -0.009871505219865281, 0.05983245420853764], [1.2633715400125955e-05, -0.01019220967323967, 0.06169886191389627], [-5.7028555971090824e-05, 0.017652370925614096, -0.03365524604029851], [-1.689237417392813e-05, 0.008291364244329138, -0.03589668821322534], [-1.981619866400666e-05, 0.016729297308961652, -0.03174981740798049], [1.8911542553352897e-05, 0.007826321000981728, -0.03384675144574282], [3.741058947815589e-05, 0.01581600155938432, -0.0301335523317573], [3.42260557468302e-05, 0.007333566546157601, -0.0317879181898052], [1.4365385194882793e-05, 0.014662040907411038, -0.02793114955941265], [-9.50648943139073e-06, 0.006728022591261066, -0.02975817996272013], [-1.696061397988413e-05, 0.013726365760947849, -0.026195998276475282], [-5.9154832046127516e-05, 0.006280511798944694, -0.027549066612295836], [-1.728920509638835e-06, 0.012706981641646513, -0.024193466208429864], [4.87837417125845e-06, 0.005965729378458089, -0.025545695110789555], [-1.643892000595873e-05, 0.011769447995473564, -0.022335477602383372], [5.209996685472687e-05, 0.00539844885697193, -0.02351544708067352], [-2.3858059279363083e-05, -0.01428112578741809, -0.013814214198229613], [-4.5044868214479014e-05, 0.03902523331302799, -0.025274963979013], [1.9512761661652682e-05, 0.04526018810548753, -0.014970260238639739], [-3.961910540929281e-05, -0.0007689856698365102, -0.027237836943128632], [-2.629798864229375e-05, -0.0011308459233627121, -0.04010982175232012], [-6.4562129195489376e-06, -0.0009323246132300174, -0.03574335879870294], [-2.3541511007764886e-07, -0.0009079630788811321, -0.03161446590094599], [6.764497164986595e-06, -0.00024664663549534845, -0.008223202372019503], [3.7747907128250355e-06, 0.012376210778249429, -0.0008683167876615666], [-4.483380499803873e-05, 0.003693825413038505, -0.0072036367848379275], [-1.6897802710831318e-05, -0.0026887464112870735, -0.008700638114540901], [-4.782800939810183e-06, 0.005949984976684389, 0.06331590426782084], [-1.0101993223237656e-05, -0.009350173339498839, 0.05771906233090151], [-1.6176033649719044e-05, -0.024303668160552423, 0.05439241963434121], [-4.8475851778344796e-05, -0.023383072064329713, 0.052440645244276725], [-5.689796088007134e-06, -0.017467529190293166, -0.01672922001593358], [-1.508267946129528e-05, 0.040791026283910674, -0.026526263428478462], [1.0604586013276616e-05, 0.04736279572363644, -0.015556981137429187], [-3.0495016942794063e-05, 0.010996366704305656, -0.048709763724140556], [-2.400638430954816e-05, -0.0017010214747771235, -0.048613175973016065], [3.6559471251487324e-06, -0.03749838726487431, -0.0360378374017039], [-1.359404336950277e-05, 0.006147164975449029, -0.006882287782582334], [-5.320007064904035e-05, -0.011024069584670395, -0.017894455580571306], [-3.073296457580285e-05, -0.010428794250813233, 0.06385944272287178], [-2.2072921821076697e-05, -0.025940083205289195, 0.058152760244827476], [-1.2318194127871326e-05, 0.055052916666667326, 0.010711300883331137], [6.751531131116331e-07, -0.016666151022451576, -0.0559630079993245], [2.9267466975772912e-06, -0.03086452486688523, -0.050574705272702164], [-5.973050604532284e-05, -0.01737800299466838, -0.058011993541703916], [1.0944951048909314e-05, -0.03215236431918296, -0.052760823456202616], [1.0528723664298986e-05, -0.017997202335727883, -0.0600569284278739], [2.5315775730383745e-05, -0.0331479488874528, -0.054456605186203766], [4.500656047669769e-05, -0.01867628265771319, -0.062075055035711445], [3.774647505387123e-05, -0.0021564959019053946, -0.06355014279749771], [1.0787569209715232e-05, 0.010681963394157648, -0.020209577123743546], [-2.4595498721387952e-05, 0.004820504194924705, -0.021514656160232865], [-2.9205388420385715e-05, 0.03962445188654802, 0.03379350912749416], [-3.2651273409229304e-06, -0.00208557922623239, -0.006779140856147474], [-2.8870914728451343e-05, 0.0048117122486664105, -0.005201168224228632], [1.564299844762883e-05, 0.006776262640356655, -0.004415721445841843], [-2.8478071172809888e-05, -0.010010252543221337, -0.016303393048270946], [-1.81491827695226e-05, 0.015735148473545863, -0.01023501405594058], [-1.3608020494468328e-05, 0.03372676249167328, -0.02186625274761648], [-2.9117700973330155e-05, 0.021985474046489793, -0.024150399481472767], [2.501405842940582e-05, 0.019133528826364505, -0.0210000956429833], [-1.804255977361285e-05, 0.016310360453817428, -0.01797298615796282], [-2.8668332128071767e-05, -0.004464975177243502, -0.006944680566405425], [-1.4065536424741116e-06, -0.0053138366545565675, -0.00866410908778751], [6.563046964373477e-05, -0.002082543569442002, -0.06565022748580279], [-1.2259259485824637e-07, 0.01442148968880413, -0.06309251553268752], [-3.622553185831024e-05, -0.0003426509080702612, -0.0063185295433005354], [-6.585333154293535e-06, -0.03654714585706822, 0.045552099998770024], [-3.70601785106601e-05, -0.03527552208098535, 0.04387719152306606], [5.973969044604942e-06, 0.006210582488898701, 0.0654960598918537], [-1.684852505186649e-05, -0.03428604100743108, -0.056209738171555716], [-5.20565398789128e-05, -0.026814080378491575, 0.05991966322491386], [-3.4975711988858505e-05, -0.04063269063083037, 0.050516407006637315], [-1.8547403744330798e-05, -0.0033199586756913675, -0.0052311094788084185], [-1.131010749406008e-06, 0.005281068325957789, -0.0033287754997308448], [3.449544748317051e-05, 0.006751836206809912, -0.0022490505450287325], [-6.411392968292231e-05, -0.039089551650478074, 0.048782178406331464], [-9.21450670685178e-07, 0.010523177739820906, -0.04661298888430739], [-1.0817847437888604e-05, -0.001698608465555398, -0.046376289416178856], [-6.7182673430257535e-06, -0.013606984954563282, -0.045639078705343235], [-5.178516321920576e-05, -0.013090735998726845, -0.04346138878804886], [-2.8844711957868816e-06, 0.0425807753449182, -0.02749001634053741], [1.9639761655831446e-05, 0.04934215001299432, -0.016310689410175567], [2.6232931938259526e-05, 0.05073522864994503, -0.0031566780507067556], [-1.4282432507408868e-05, 0.024741855824388297, -0.0271291175386783], [-1.9946326979066187e-05, 0.022316014474639212, 0.06090175078646586], [1.845878676595076e-05, 0.0027289048117612475, -0.0053742542531947214], [-3.0723411375156044e-05, 0.04775089452960257, 0.023015583042822304], [1.5354661219956913e-05, -0.0006203004116346188, -0.01670551961588453], [-4.948548774935656e-05, -0.004532022014979489, -0.015087315933232894], [-3.5292466212410156e-05, 0.00387767253862346, -0.017528064873473356], [-2.185923637061475e-05, -0.0007399966759024499, -0.023157140452511323], [1.1361812883168292e-05, -0.0006015372273550797, -0.021069190375388392], [-1.4028188363992991e-05, -0.04513092379119983, -0.043431127487365044], [-4.284331666806278e-05, -0.022418200481934675, 0.05030020216586696], [-2.808332256760846e-05, -0.03354185946516447, 0.042156440702106786], [-3.2689699657805235e-05, -0.0067331204744369285, -0.006383459685802312], [-3.1977830527797913e-06, -0.013070916175524448, -0.012588026136264122], [4.466881207161335e-06, 0.04591861698816393, 0.022186390170472366], [4.577110130706448e-06, -0.008059420235837294, -0.007671838222794273], [-9.821366955230443e-06, -0.041604454442119194, 0.052080452425166054], [-5.2067535689604107e-05, 0.004713017444289708, -0.0015173560817807572], [-3.817376480957878e-05, 0.00597957240842948, -0.0003466536374443163], [1.0142016367746524e-05, 0.008260382246919188, -0.00045505138560779303], [-3.0707855220081265e-05, 0.006944661198721858, 0.0013861814142573136], [2.6157854424844977e-06, 0.008978321040066566, 0.0018202659911980036], [-1.5849863278785026e-05, 0.00712780664419569, 0.0034543599038968924], [-4.095636043231082e-05, 0.009332279785793698, 0.004586495215801943], [-4.8074078393689165e-05, 0.006953460648730675, 0.0059274719552178745], [2.6414897519758876e-05, 0.005464588710905172, 0.004602139939733131], [3.799378565611984e-05, 0.004848359995407052, 0.0069119326143461945], [-2.749453614602754e-06, 0.0057482491729236255, 0.008274299724740504], [4.3568980887845266e-05, 0.0030770779962224423, 0.008803629548008035], [-2.7021901467431655e-05, 0.003828247737339183, 0.010729554409181203], [4.356505309516189e-05, 0.0008377607069915845, 0.010308939933906353], [1.4023925708480058e-05, 0.001079515788568092, 0.012248859094261653], [1.874408313813237e-05, -0.0019339619815374582, 0.011319606201029744], [-6.535528000803652e-07, -0.0021927201617784405, 0.013310224361776226], [3.7727555722909394e-05, -0.0013967458310105074, 0.008996123235049945], [-1.4077169850648395e-05, -0.005194188106813545, 0.011282458286783125], [5.664102152703617e-05, -0.0059712975405598265, 0.013393314559608864], [-1.9810767779528934e-05, -0.002542859376020999, 0.015394544317562655], [2.7847701062878258e-05, -0.006891298982524313, 0.015198227511119143], [1.655895922974725e-06, -0.0029892210871151834, 0.017679073118998544], [4.845900989476776e-05, -0.00788477467081201, 0.01713063749828526], [6.380079048133041e-06, -0.003367191817316525, 0.019569094483169402], [-1.1383404151803535e-05, -0.008735090062745244, 0.019249612113943947], [4.794425214432483e-05, -0.003808414189938701, 0.021756745362708104], [2.155529654471628e-05, -0.009588668462257302, 0.02110925744652595], [-3.313326749372565e-05, -0.004212154070204141, 0.02376399414061393], [-1.6926021192023546e-05, -0.010438728227951746, 0.023016621637289948], [-7.704411725383907e-06, -0.004260372743063901, 0.025888984495473694], [-9.842754596886072e-06, -0.011326108520340716, 0.024866275152485205], [2.4621320485201206e-05, -0.004811604847157542, 0.02798749169252777], [-2.079567838884929e-05, -0.01215738773075281, 0.026984747894490357], [2.7796807586813516e-05, -0.005151425059667744, 0.03016393698924543], [4.4652282069380316e-05, -0.012942714550875459, 0.028744983003826878], [1.9895689631324088e-05, -0.005575451757040527, 0.03212697514167046], [2.9259769477368674e-06, -0.01404145276995263, 0.030784401978404444], [-3.211947359114751e-06, -0.006018150747281826, 0.034474468508793155], [1.1112836727838184e-05, -0.015022990516759215, 0.03260884127888901], [-4.695610393706509e-06, -0.006332397290155827, 0.036364141164804714], [1.5658014475443096e-05, -0.015801948446874096, 0.03462472589498358], [4.707058745998465e-05, 0.0024771851079027937, 0.02964034221956913], [2.1128651128903184e-05, 0.0024358654520267205, 0.0067866888751968515], [-1.676277368945442e-05, -0.006702686071507976, 0.038667627383497216], [-1.7064226928486222e-06, -0.01648027606451597, 0.03649351350050003], [3.8134824720539376e-05, 0.004587498369890519, 0.012749178608852111], [-3.593262974510308e-05, 0.0031106279317480987, 0.03581522497604363], [2.4412644896263452e-05, 0.0022176206585550967, 0.02523504579432309], [6.703842950096204e-05, 0.0018504634232305024, 0.02110561875561493], [1.2333157647073305e-05, -0.00842166775649135, 0.010367136256244523], [3.888474997852283e-05, -0.020448437589001743, 0.02540573555748261], [4.5850071111931844e-05, -0.02458138229249231, 0.030373921868591475], [-8.287597978191286e-06, -0.02597754649550787, 0.03165321810916693], [7.590145897438034e-05, -0.017495253127488775, 0.038400737517903065], [7.264318809713188e-06, -0.02765772191319661, 0.03357936227135549], [-6.222226138765049e-06, -0.007241865178425837, 0.009020310322194018], [4.4983892667103653e-05, -0.016401957382796446, 0.020394722197070343], [5.5601131938680676e-06, -0.013975713206580613, 0.01705534176158239], [-3.3132101867988522e-06, -0.011148576492385064, 0.013777874482533396], [3.912063233362856e-05, 0.0015372515541118182, 0.01674596901986616], [1.1516151571198473e-06, -0.018346183732083573, 0.040129073897651656], [2.5383457585620688e-05, -0.028753964917386427, 0.035254452576548044], [1.6324898692747022e-05, -0.010070841863048328, 0.007297728019478703], [1.2521511443316558e-06, -0.03591875598464358, 0.026215017287540075], [1.0845271015689747e-05, 0.005309336494366357, 0.0010498306899798682], [2.2297837280459965e-06, -0.01921373478390088, 0.042430618924541634], [2.6573244382109802e-05, -0.02995834957034202, 0.03714573908822391], [-4.99361343165158e-05, -0.006680353041972724, -0.010807457135350168], [-5.8872410380962436e-05, -0.009845762366745024, -0.009346251233740404], [-5.5125812558553894e-05, -0.021469861320692493, 0.04840345588328007], [-5.711438795692641e-05, -0.03244056805325128, 0.040312173140273876], [-5.568581103697817e-05, 0.005177617378487026, 0.05496314859997289], [-1.219020536287422e-05, 0.03785791092138098, 0.03228231592094917], [8.907601725949593e-06, 0.052900499433953856, -0.0032027322149999608], [5.5455209410035946e-05, 0.014792047184110046, -0.01622421271942231], [7.227147073141458e-05, 0.010822517019671223, -0.0035769333465682095], [3.2865424421784716e-05, 0.013892976618731838, -0.06110594226357608], [2.7604413775517886e-05, 0.029511891008127164, -0.05642568260372704], [-1.6166424636133464e-05, 0.030414641449177608, -0.0583528569359279], [4.182846209948277e-05, 0.043737333251374536, -0.04803922674856958], [3.0702492521217805e-05, 0.04514249897630974, -0.04921295335794283], [3.78315481219477e-05, 0.05534537129496162, -0.03558832576344153], [3.637065760986429e-05, 0.042214463147891866, -0.04626675672805627], [1.8210571128341262e-05, -0.007111317671248247, 0.04261875708753084], [-3.560681613526769e-05, 0.032156011542745576, -0.03513649565379925], [7.803487840052117e-06, 0.023380230137763733, -0.045178698431815476], [-1.1905763938163195e-05, -0.024241811803387272, -0.039771921355163435], [1.4060915849637398e-05, -0.023228373701448472, -0.03784740883627303], [8.435302780149028e-06, -0.012544167878146661, -0.041514201484063123], [2.453782212216226e-05, -0.022059890795875663, -0.03609874413217168], [-8.4761487341838e-07, -0.025398221852897043, -0.04164618968337889], [-2.0599160547130834e-05, -0.0020860745639393924, -0.05950416310454418], [-1.419327939054091e-05, 0.019347675183328594, -0.012630740442942264], [-8.513223665150795e-06, 0.021047119082085654, -0.013619076079119457], [-1.4821403620897326e-05, 0.022799963753627955, 0.06266131161585071], [-1.5291633857635538e-05, 0.037599078022449876, 0.053917886290402235], [-1.924678598413596e-05, 0.0058637196701729075, 0.06759216625111034], [2.1884531114483308e-05, 0.03894637302215497, 0.055796859014356465], [1.5567228632681077e-05, 0.050888801013447865, 0.0432729728887843], [-1.7136456399836347e-05, 0.04930813206455899, 0.042040826842174875], [-2.823088792571186e-05, 0.05934582102124642, 0.02842593782697434], [2.3091868776519447e-05, -0.011809929396369939, 0.00853263130448939], [-3.989749661909454e-05, -0.04431482750328942, 0.03291358605164375], [-8.381926076315948e-05, -0.05093612850849206, 0.03794349848738437], [4.42857560696494e-05, -0.04943473969993766, 0.036872889378358954], [3.3058854753209524e-05, -0.03244480801388317, 0.02369776812336155], [-1.8547370428437385e-05, -0.030612525162605313, 0.022438919100129455], [-5.356312169758351e-05, -0.008109588604507785, 0.006147437430107161], [-1.9095798821112555e-05, -0.005709143206521489, 0.007067107656421152], [3.201287852457591e-05, -0.006642755544361361, 0.004816445692691854], [-7.255129147105023e-07, -0.0045329144804615315, 0.005572765561307743], [1.984242381313697e-05, -0.00490833823684729, 0.0036488734193001883], [-5.721799486885821e-07, -0.0032722767742583946, 0.00408265601046051], [3.837750092768852e-05, -0.0025059985396695774, 0.005611962858582712], [1.928818468732331e-05, 0.06138719128326905, 0.029221350857592542], [-6.727003426525871e-06, 0.06564799020115843, 0.01246494952703457], [-1.5247591610296792e-06, -0.012398354410305004, 0.0049788957553418825], [-3.503359148247628e-05, -0.003189090576253267, 0.00236438135223292], [2.232716753701848e-05, -0.03594102146191216, 0.01392244518473769], [1.3592226836774707e-05, -0.027706674032363442, 0.06202995969386989], [6.284915424834507e-05, 0.03145991273111778, -0.06023121374963489], [-8.511523129692117e-06, -0.03630016362344209, 0.021503624153322912], [-1.1303482714445125e-05, -0.041660711446986624, 0.015120016867967411], [2.6492588404078682e-05, 0.057220165557935125, -0.036881317494611605], [5.700226344113189e-05, 0.06349099649583696, -0.020569082650738202], [4.89647381582199e-06, 0.06537945424167696, -0.02093618009447634], [8.995920886129004e-06, -0.001733699137069086, 0.0036633352889801846], [7.665976717262988e-07, -0.0008711574461618996, 0.005250194869398329], [-5.805496550884815e-07, -0.0005570243512370022, 0.0032021795524416288], [1.3166246682505835e-05, 0.00033895489685652674, 0.004059694973821036], [4.761300293202945e-06, -0.034397328676260955, 0.013653032860633097], [-2.886727859843972e-05, -0.028951878740236706, 0.0212091267897767], [-7.648586953474462e-06, -0.02899111152495433, 0.017004244862063145], [-1.940109640207565e-05, -0.020320947283419655, 0.044588811447847064], [5.024806486135325e-06, -0.011926086848451997, -0.039539820202189525], [4.5044295898922875e-06, -0.02092215739568594, -0.034286036673508574], [4.193516219535197e-06, -0.0015395955606646917, -0.0422484446303096], [-4.968296066492336e-05, -0.005189229701740838, -0.01721419835759799], [4.5623895999180585e-05, -0.03150124659612033, 0.03866451813112977], [-5.8207527455785144e-06, -0.03950887404172384, 0.028811920293965624], [4.1263452537035474e-05, -0.04123669843127927, 0.03008198491672593], [-1.4714314766825264e-05, -0.04647405294652635, 0.018197877990309953], [2.1656226094446514e-05, -0.04555546693432384, 0.026907771097799942], [6.949653301542351e-06, -0.04039509587064912, 0.02257164023037007], [2.346247609493969e-05, 0.003260797048364908, -0.0020875440175818147], [7.478716443934559e-05, 0.0031609703108896724, -0.0010011597251945452], [-1.3367298193920436e-05, 0.0020936457815967963, -0.002435368170764894], [-3.4204463197479206e-05, -0.020663247205489024, 0.04629237769128341], [-5.477549400654516e-05, -0.008847658404940699, -0.014255899335578123], [2.215778383628101e-05, -0.011287574686805154, -0.010741316420212865], [-1.4807484862980145e-05, -0.0006001552861925318, -0.018801071693259532], [6.860869344686368e-06, 0.004417435853785572, -0.019266984542516612], [4.558257361098606e-05, 0.009804102354096535, -0.04435543612424408], [6.045069139332124e-07, 0.021399129056482603, -0.04132955979924987], [-3.0511296021081342e-05, -0.007621850071959706, -0.012260051235104166], [-3.884240237116384e-05, -0.012867121709430444, -0.007170284286633286], [2.4841731569589238e-05, -0.003916355282758832, -0.01292255384939768], [1.679057509803308e-05, 0.02063155932642577, -0.03928460325714034], [-1.2994391573406264e-05, -0.007971005301507083, 0.04692555997027919], [1.1527253507610107e-05, 0.01746958306849671, -0.011501773892010401], [-3.276304546847169e-05, 0.013461656900170088, -0.014868242049744419], [-2.1794077177021448e-06, 0.01889785237899425, -0.00627458483253284], [-2.7775380891306957e-05, -0.03154183702055399, 0.008415318898609043], [-3.888417512467953e-05, -0.027741656167317164, 0.01504734018523157], [4.6153730895775506e-05, -0.037914906852432866, 0.04715966763527785], [2.0779047662442483e-05, -0.04762455927560261, 0.03555581419043172], [-1.6530929704692015e-05, -0.05589699556145858, 0.02277968727862827], [-1.8697353518172412e-05, -0.05411178690404261, 0.02181597507959735], [-2.2086607038370025e-05, -0.00900794600670444, -0.005025580642100384], [-1.1153268108585227e-05, -0.05262747237680615, 0.0391768804286141], [-3.744614336702077e-05, -0.05376536407824195, 0.04094174827400894], [-8.928272624659422e-05, -0.05994139806553349, 0.023904440257030972], [3.145999682575383e-05, 0.051360430020090435, -0.01688808277696747], [-1.83078588878823e-05, -0.00518174673961392, -0.004879070009477523], [-1.1458756596638252e-05, -0.003717477957121566, -0.0034886374809149565], [-2.8478051643340416e-05, -0.0022024487434860918, -0.0034715440306535023], [1.1300810062279225e-06, -0.0023086195869395404, -0.0020827790224807303], [-2.511545205041174e-05, -0.000885135598214982, -0.0030233098297121966], [-4.523300546903042e-05, -0.005401211490094676, -0.0030205447697023604], [3.6150219551235276e-05, -0.009938094355176416, 0.012251857394878033], [-8.073592271838105e-07, -0.01340814890100224, 0.009878971453073964], [3.395001247569404e-05, -0.015140525452219231, 0.011168574268279755], [-1.7325660251023713e-05, -0.016245773660509468, 0.006976508475324602], [2.6657061578035503e-05, -0.01811239922724673, 0.01106214027158294], [1.665095576930646e-05, 0.005466036295587467, 0.05710402422345314], [1.914268185754251e-05, -0.01076467975144395, 0.004284536253496868], [-4.699373378946014e-06, -0.00047846893808596905, -0.012214122977309816], [-4.171318999615028e-05, -0.05226026656091103, 0.015092762630672238], [-1.4601125579934819e-05, -0.025054195662124412, 0.05607771757872374], [-4.224087521653895e-06, -0.012784371472419655, 0.015509663543777889], [-3.924162249415012e-05, -0.018919572266951, 0.013907818698166282], [-3.0218325737039095e-05, 0.0007367506821394157, 0.008311249172994138], [5.3621241009529795e-06, -0.043560972759642144, -0.042035949212296086], [5.0689831436571225e-05, -0.007460229055110288, 0.04487108144978953], [-3.690555513645851e-05, -0.04206962510912174, -0.04052122386072262], [-1.7255036633673762e-05, 0.01932109340329377, 0.05284615544073716], [-3.3728976736779286e-06, 0.05708780543789145, -0.003616144829440248], [3.218588090815002e-05, 0.05328197775433916, -0.017556081766378007], [-4.283532109123933e-05, 0.04445026437514765, -0.02881222417132654], [5.578263767973842e-05, 0.034838584938648096, -0.038201019231007514], [3.646953215750325e-05, 0.03637972897813417, -0.04019595159212759], [-2.2018583041716335e-05, 0.0070467918763082605, 0.010293299286297684], [-9.939511044329136e-06, 0.008156446163342426, 0.011850852213162491], [3.1360388037896875e-06, 0.010133115819373002, 0.008745284558740346], [6.345113355866695e-06, -0.014326862195056477, -0.047756709681987086], [1.1028834682642785e-07, -0.014898944796586202, -0.04981402616292117], [2.5641808716666988e-05, -0.027737509750074177, -0.045341536821506254], [1.7901484092626032e-05, -0.026547715007414117, -0.04339665013119431], [-2.3883206503402186e-05, -0.03602195492041906, -0.034532097692032804], [-2.4098020008447436e-05, 0.00762500459270387, -0.014750766485173929], [-1.6532695189250473e-06, -0.004204832849397944, 0.009450351214221352], [-1.297731897851337e-05, 0.05546051627461631, 0.026784299107450126], [3.732332379758409e-05, -0.0239140284536683, -0.013497882250978125], [-1.560886115662824e-05, -0.020604209550003767, -0.01989435656941871], [-2.086532804501608e-05, -0.022137851932096837, -0.021269919858748272], [-3.7118933979246284e-05, -0.015475235385806677, -0.025257693200242588], [-3.314528998999623e-05, -0.014304455527975818, -0.023450333401192913], [1.0125950131780043e-05, -0.01636453416808029, -0.026982386337616668], [1.2662088233139314e-05, -0.008225386379204641, -0.027323227299765933], [1.5378078034867845e-07, 0.04953585282210303, 0.02388792651150157], [-2.1433266721332184e-05, 0.029140964597653606, 0.041680417881102445], [-2.54798406033963e-05, 0.027904183548570397, 0.039967400760524], [1.3486686995584221e-05, -0.0010970764861807163, -0.03802945698896174], [-3.125501501268798e-05, -0.010399075360783244, -0.035374869373064464], [1.0979997417099579e-05, -0.00973264640495115, -0.03339309245187618], [5.744510839780728e-06, -0.018326328419199973, -0.03061716692134785], [-1.8733506086252163e-06, -0.01960773640252538, -0.032606964536408], [3.2838956945446536e-05, -0.026388081143358957, -0.025745882040733133], [-5.517196112675189e-06, -0.02494518670084259, -0.024311344477815713], [1.029270742710925e-06, -0.0009934731526730065, -0.03386713202532786], [2.0089620792943232e-05, -0.009190374052280598, -0.031383140043388325], [-3.950747817788429e-06, 0.030660208887663704, -0.03352789910770729], [-1.5222523623260488e-05, 0.022586724697262986, -0.04328657660307471], [-1.8108022875152924e-05, 0.0314363744597029, 0.026777550497843607], [4.184257303037535e-06, -0.008247180984223597, 0.050962921348626], [-4.130099447480017e-05, -0.008670930614842589, 0.05317671464285658], [-1.0945851797337301e-05, -0.009124488205895205, 0.05541478274671859], [2.7467504011918098e-05, 0.004228928796244857, 0.04411005355244119], [3.582472992967166e-06, 0.004058105300583259, 0.04223460260628703], [6.260103694609666e-05, 0.014274470976348633, 0.038632083883348156], [-2.6308166856456616e-05, 0.0038217998068393343, 0.0396933951967849], [-5.530296858417389e-05, 0.013595676656871813, 0.036598785230176595], [1.378180625344868e-06, 0.0036767549431074575, 0.037889014209619036], [4.318582194914512e-05, 0.012676242789560387, 0.034673198608056295], [-1.0922190517533586e-05, 0.011602691494118161, 0.03279900334265984], [-1.3950608734003243e-05, 0.020388775314874763, 0.02971756500049448], [-1.8926585789135076e-05, 0.018732753241852165, 0.027730789156226687], [3.7301211390415244e-05, 0.010719178857439834, 0.030778149179143222], [-5.676728588563599e-05, 0.017557847949338734, 0.026378815714244327], [5.874577590269225e-06, 0.023068038804679454, 0.020018948482400906], [-4.744481872077123e-05, 0.0166335780661414, 0.024379856749555968], [-4.508625227497695e-05, -0.006717125706662646, 0.04081261454658596], [2.7618203139170248e-05, 0.02394635308774485, 0.034570323187663676], [-5.347798678407892e-07, 0.0399905259608226, -0.0024530869104975], [5.2429462926865075e-06, 0.03901787977684528, -0.012866069248428794], [5.555603432880804e-05, 0.0297900660760838, 0.025366273774130452], [-7.0544890387285926e-06, -0.018133981748454004, 0.022183400169057628], [-6.415877040073616e-05, -0.022069498350897682, 0.01649152775866799], [1.3693328054527664e-05, -0.023625757011455265, 0.017393720138720828], [1.8135538165061107e-05, 0.0012827311583189932, 0.014539967636367574], [-3.27767560698612e-05, 0.03622783598107914, 0.030943003247081907], [-3.598305141816482e-05, 0.03339241138336245, -0.002112293719820597], [-2.638860537532099e-05, 0.03305039294502903, -0.010894570782190034], [-9.343246714032598e-06, 0.035119896015602156, -0.011591486806291539], [-1.3983753440093128e-05, 0.037079609102896385, -0.012315470976216273], [-5.3054272151544524e-06, 0.031822410116957564, -0.020735342036705455], [-1.6010212625409684e-06, 0.030120226390112873, -0.01955863723846681], [-1.8286597577432596e-05, 0.037877396666102806, -0.002322919628859719], [-5.62587647733424e-05, 0.03089197234362187, -0.01025937981783249], [-7.476637576183822e-06, 0.029138463600461906, -0.009625384668347082], [-1.7006451812259924e-05, 0.028261025040382817, -0.018293730856278733], [-5.637599900896218e-05, 0.02639504552911329, -0.017190939678454767], [6.475820464138705e-07, -0.0008931982738426474, -0.029580008953588532], [3.56828186142091e-05, -0.01912088255382299, 0.023703346374149215], [-2.978255198862134e-05, 0.04607425316362761, 0.03946799566163869], [2.4132086674441186e-05, 0.02306091866372366, 0.033079381727202796], [1.531769346633416e-05, 0.021525627032573987, 0.03107664794696068], [-1.5464297790895756e-05, 0.043872702129504414, 0.021025569973908004], [-1.9686059139721238e-05, 0.04672074637811013, 0.009177811240301018], [5.8234236870267485e-06, -0.0006964355989770185, -0.025199645775937], [-1.4697308204809798e-05, -0.006800789178141792, -0.02336047260816901], [-2.2704439987536854e-05, -0.006057493546269521, -0.02109668863053559], [-9.224451299005914e-06, 0.0023082605428687833, 0.027254126540365686], [2.1886642807636055e-05, 0.008726969054724818, 0.024606794335068956], [6.741478238121541e-05, 0.008198169550243474, 0.022835907124757648], [1.0603256033564408e-05, 0.014153654894636422, 0.020795101971859083], [-1.355792690688334e-05, 0.013017075104040186, 0.01909243859685497], [3.1525507962121436e-07, -0.023373659697648853, 0.02863176031124924], [1.1365070531839335e-06, -0.02188383946572839, 0.027171626815148942], [-1.2789130163968133e-06, 0.0020679451915131927, 0.022809906253753093], [2.587048816958174e-06, 0.02945564098777404, -0.0017796417700655894], [-4.044751635576866e-05, 0.001647647392772268, 0.018817546717858503], [1.6711973021020178e-05, 0.006847033219883485, 0.018801670174415523], [2.802302305769084e-05, -0.035132168642369656, -0.01964806929542288], [3.60425184885501e-05, 0.02651546874135481, 0.022629867053146974], [-7.385965098907341e-06, -0.010921721031920758, -0.03743524641228949], [5.6481575875942995e-06, -0.007404833341906327, -0.025144458639134275], [6.726276386767915e-05, 0.02435052671701923, -0.04710628114777054], [-3.589948587261936e-05, -0.04645861234822067, -0.044731938153887166], [-1.205360454533147e-05, -0.04823863773019656, -0.046310046167939635], [3.0196037760750317e-05, -0.03517508510705016, -0.05768958633102864], [5.213081342880069e-06, -0.04960278888753923, -0.04717488095250177], [-1.563099316033635e-05, -0.018687138853563816, -0.06596345780271788], [2.0377085321301217e-05, 0.026392351498725538, -0.02878401286503352], [4.102228511392806e-06, -0.0015853173578823756, -0.044489614469599696], [5.21825417035863e-07, -0.012125202815962903, -0.019759883892272134], [-4.210224286025622e-06, -0.002054065477734962, -0.05737810872949069], [-1.9143587904498233e-05, 0.04871637511694126, -0.0030210126803929577], [2.9611971195999857e-05, 0.023454385736773428, -0.025816808797449048], [2.7320298308570377e-05, -0.027760204718188613, -0.01533810704790409], [-9.145450239224794e-06, 0.02705105455938257, -0.00894177511542071], [2.0744125413228498e-05, 0.024762858580451148, -0.01616287104557199], [-3.708822417828694e-06, 0.00732710799420465, 0.020652068957631418], [-1.2219077505673135e-05, 0.020440907075839652, -0.022419769987097996], [2.5977960476029113e-05, 0.008517796007490567, 0.0072456679970239815], [-1.5247482282328553e-05, 0.005248988601024785, 0.014612372859803439], [-2.940397339011601e-05, 0.009514481967184501, 0.013857485305868509], [-3.8222244244214325e-05, 0.01517912456369307, 0.012880175379727963], [-1.8415342629598785e-05, 0.018412898636178524, 0.015825530661680947], [-2.230579094626886e-05, 0.005549091644714335, 0.002671117091166002], [2.445522302923146e-05, 0.004173862909620313, 0.0034094867375734647], [-3.9830202330065764e-05, -0.04591553421221546, 0.03434548813343708], [1.6818516191295505e-05, 0.025291122507848793, -0.00161992435460931], [-5.760022154596116e-07, 0.03348902793933306, -0.03674359500405021], [-4.849180715694662e-05, -0.003282137850826759, -0.010977233421877654], [-3.9700721299343316e-05, 0.046370367369783755, -0.002873579606819994], [5.195656938740408e-05, 0.01761228705089895, -0.019433009072290452], [-4.0659133336661534e-05, -0.019191979600203052, -0.004965654632137504], [-1.4178417562281768e-05, -0.05044637571114567, -0.013177321348765331], [-2.5934348175633018e-05, -0.015479423649914326, -0.004010581350839716], [-5.1956010776462644e-05, -0.03139661940633703, -0.017625118280621715], [2.3190191240312174e-05, -0.022141658544547735, -0.012402413193389047], [1.1553383197054807e-05, -0.05643119688065888, -0.014696703766595709], [-2.0889028448399136e-05, 0.02089827228738943, -0.0012399469447357675], [-3.4441806515493595e-05, 0.005989199918155894, 0.016572417734608005], [2.464964481920184e-05, -0.0071922222850769905, 0.0018188416710572437], [-6.231686083424675e-06, 0.01020632076036291, -0.006690072668271911], [4.8456570864495254e-05, 0.003605637079445898, 0.0049679912776723085], [-2.7518622124692738e-05, 0.002268115794475382, 0.003330080205572055], [-2.7230250627903517e-05, -0.04254005613256254, -0.02370268403114353], [-1.625527633542592e-06, -0.038869611855294736, -0.021722691171426473], [7.474871726215316e-06, 0.0015859914107802136, -0.006962555996658304], [-3.5869772650637953e-06, -0.04993930224875539, -0.02795512122419108], [-3.4289198023419314e-05, -0.060379554056623354, -0.0157141608659893], [-8.807253718108503e-05, 0.013237564758095462, 0.0025577711447012704], [2.6766386373770046e-05, 0.004287537273309949, -0.00029417901914880796], [-1.4109235605491239e-05, -0.025560649019982413, 0.006738679788851443], [-6.229800674102686e-06, -0.022290598979172144, 0.012063330083120197], [-7.666796748145044e-06, -0.02148845970944461, 0.005778191202668524], [1.4233466721766143e-05, 0.012878342606409758, -0.05696863052009284], [-9.564622632302222e-07, -0.01073226728737385, 0.06588617054234806], [-2.7417564227352216e-05, 0.007646330735340981, -0.00862027822766541], [1.5152611173409497e-05, -0.002139950438645627, -0.061402874914304705], [-1.0198296388271547e-05, -0.018954479869498705, -0.018276112828999016], [2.630605350934787e-05, 0.014835043701280703, -0.06518015751476244], [-2.5467139731396184e-05, -0.013230162189241317, -0.02176245717070794], [4.238244657511567e-05, 0.010922251734931651, 0.015675267841611537], [-1.6820401107403902e-06, 0.011764273335200628, 0.01733572430384298], [-2.5636623080371278e-05, 0.044542625497516405, 0.00869625896123093], [-2.6627102565433944e-05, 0.021477021922228542, 0.058829065736697876], [1.4772616914559456e-05, 0.01184162128357253, 0.01010581075794113], [-3.0930987620873263e-05, 0.008749205621072268, -0.005787553831351809], [-9.351912959141802e-05, -0.06462144499540017, -0.01685738374965586], [-3.206844575264439e-05, 0.011170940739222044, 0.002204872514363772], [-3.5489086740021116e-05, 0.00892751815227986, -0.0029481756300085704], [1.3225683204318207e-05, 0.036321705727186085, 0.05216713232959332], [3.862811701084358e-05, 0.010061931774836452, -0.0006228171925165171], [-1.175164874620854e-05, -0.044480237955201535, -0.024869952697971213], [6.527290938276078e-05, 0.01347965131692423, -0.05901802695691477], [-1.1279835820348617e-05, -0.01660813189062312, -0.009389612957699441], [-1.333433384213012e-05, 0.04755346294894382, 0.04073435123981089], [-4.8232193326070635e-06, 0.011282480290059434, 0.005378310965329537], [2.973420437594669e-05, 0.022912937226983083, -0.014956514943541567], [1.7501399538338082e-06, -0.003313225084994504, 0.007408279259204775], [5.765284479192065e-05, 0.028459227274126545, -0.05450532733897416], [1.9202997202355094e-05, 0.04055313086401877, -0.044733705180751836], [2.2377524780795177e-05, 0.06373365390492258, 0.012191223164386733], [-1.5482233577484315e-05, -0.05191301660815573, -0.02910593610752032], [5.0378206135711674e-05, -0.05374654473470774, -0.03004759130937331], [3.569768066134962e-05, 0.06164977737513901, -0.02020452451249126], [-2.7520925487575384e-05, 0.024809647035781555, -0.008310363233160858], [-2.962881746072758e-06, 0.022921384787345664, -0.007606465382902383], [-3.0462564664077375e-05, -0.0012341605978719718, 0.007048831103095575], [6.088257474451688e-07, 0.0004348368765319485, 0.006017150360760834], [2.092253977107875e-05, 0.016867727002308545, -0.005684722557146718], [3.12491523216957e-05, -0.03449190535949869, -0.0330682001625993], [3.238285990354901e-05, -0.03277327797944208, -0.03151506271926838], [1.2118467250497485e-06, -0.031347818971129954, -0.030124374978593608], [-2.9710731826272747e-05, -0.027981451141923894, -0.0270559809624392], [-1.634600414174115e-05, -0.02976094475737012, -0.02874756755687716], [-2.19814016824507e-05, -0.05235864461236525, 0.046065739955521066], [-2.2156453154117903e-06, -0.0012802126821636185, 0.0012923564374446963], [6.193403762400655e-06, 0.0487755375485474, 0.009573201394588341], [4.039099383857263e-07, 0.021626836898556167, 0.018403016432453897], [-1.36381188259887e-05, 0.053051744022706154, 0.010366531095370893], [8.262306839455412e-05, 0.04299005143293351, -0.055311943868169795], [2.634063368146145e-05, 0.050827221309733925, 0.00997607223919574], [4.0678337534364864e-05, 0.0437369132393888, 0.05486511039923895], [-5.0097570692276766e-05, 0.0011723842308155852, 0.0015121031251668035], [-1.77264918464507e-05, 0.0017123774624488509, 0.00046161052247248264], [2.8346969417968674e-06, 0.003364589219439463, 0.0015261409863340737], [-7.1949852148932366e-06, 0.06711314323025096, 0.020794471408081307], [-7.338203204870143e-05, -0.016554943267009004, 0.06819172454855198], [-2.1987063858347854e-05, 0.005363692148360489, 0.06958792186384415], [7.578960190074903e-05, 0.0031915587572073118, -0.06971553831538321], [3.8912754809307515e-05, 6.533568407827937e-05, -0.0020990954721211725], [2.8122920822258243e-05, 0.0008167685234932254, -0.003589375306417121], [6.94485762116838e-06, 0.01885082852188576, -0.0012035075188237595], [-4.1257598667650326e-05, 0.020904448330780888, -0.006927382406490633], [2.2508280316141686e-05, 0.0549624183924791, -0.0034747994017460316], [-3.090947600153058e-05, 0.009831708639773316, -0.018825459098147493], [-3.2913026780445125e-05, -0.05549798067497916, -0.030988918954625168], [4.0635019994036686e-05, 0.0636003978962973, -0.0040947288435063175], [-7.898521803428042e-06, 0.057489698356006494, 0.027562808389514398], [5.03216642979528e-05, -0.0190590791846441, -0.06385748324907237], [4.9705063107518024e-05, 0.00870626396632531, -0.01661922409829798], [5.2175902284902895e-05, 0.05151189918128381, -0.033526431911268105], [-3.054766144748316e-05, 0.0028166190459411977, 0.03362368937884571], [1.2738803875361084e-05, 0.0017934062368914114, 0.004961025450945825], [-2.305304100169467e-05, -0.023612888915565986, -0.02253124155276681], [6.138450044451598e-06, -0.05733364573383621, -0.03203072273392835], [6.029265496764501e-05, 0.053432010639090324, -0.03456669111398602], [-8.874491126578418e-06, -0.017414893527927265, -0.029088886512465068], [-3.180605309432734e-05, 0.009530382723172155, 0.02687045061150088], [2.5837834731548026e-05, -0.008808084503931363, -0.029137221908867618], [-2.2377957158101694e-06, 0.015550775850932239, 0.022446950656895902], [4.739562205849331e-06, -0.005694753223473417, -0.01905048653619271], [7.153168208986339e-06, 0.0026034198225494236, 0.03142514568818505], [-2.2391952814475295e-05, -0.059045142100978554, -0.03303654140852192], [3.55805199691998e-05, -0.014671579673946066, -0.008238685092361985], [-8.344155234343038e-06, -0.0152738047315142, 0.018937576486740312], [-6.487270348804431e-06, 0.003491777101269426, -0.0038274063852824177], [4.4569912919354546e-05, 0.06559116681075595, -0.0041173675142808204], [-4.4718712532499596e-06, 0.00011072625637133814, 0.0021370144000102094], [-8.215427065683661e-06, 0.0678009623269844, -0.003965460496534925], [-5.160806704443057e-05, 0.010091245888855736, 0.028807748386235683], [3.341807197154538e-05, -0.010882295634740146, -0.006044054663354013], [3.7937019749672126e-05, -0.0019444933478148135, -0.06785197549026914], [2.7386838309777138e-05, -0.013044764118501967, -0.003300716607279173], [-6.447854775419343e-05, -0.00925888459132902, -0.0023790310390886995], [-3.055229042963217e-05, -0.007116452885584437, -0.004070725930916176], [-4.739336963527429e-06, -0.029723905772937764, 0.007444027941814037], [-2.6442974044267856e-05, -0.00500992565590792, -0.0013322385635418333], [6.863627538194366e-06, -0.0016109139530433047, -0.0047892590140693626], [1.1917013334501504e-05, -0.003389424954509077, -0.0019913053260941214], [7.092074783143305e-07, -0.0018019352094197222, -0.0009804940545109274], [-1.2618384668887421e-05, -0.06110044966191976, -0.03386699718403722], [-7.036064249182001e-05, -0.0665891221340575, 0.01688431488676348], [-4.807282748209266e-06, -0.0035539227012780046, 0.000911396569889681], [3.929553713226542e-05, 0.0020034000387916407, -0.003825269756156903], [-5.570738467009637e-05, -0.04476394851974353, 0.011053810088446227], [1.2891767844997135e-05, -0.0002994074227506684, -0.0044957819641915885], [-9.196442353618345e-06, -0.04259255997236261, 0.05354807219585521], [3.0069158539662616e-05, 0.015212525136289979, -0.06673027940396103], [3.239682777425453e-05, 0.051233363828152766, 0.04537867151303478], [-7.56408419641873e-06, 0.06734921029506966, 0.011712686135749611], [-7.29285551279224e-07, -0.002010439344982649, 0.0024763290834816866], [-1.1091527707448729e-05, 0.0011605865798780376, -0.005551424485603032], [3.2502783537591175e-05, -0.015659854816273078, -0.0687786584049592], [3.3140370228206737e-07, -0.00028282255943364395, -0.0013699696426911951], [3.399345564561346e-05, 0.0024777615794731086, 0.0021961459794081067], [2.03804215082486e-05, 0.047441662105473716, -0.04934704151416691], [-2.0858752423576694e-05, 0.0033106719271340295, 0.0005367995272020113], [-2.452090273799412e-05, -0.00938685773884982, 0.0676768460359341], [-1.4709675710107905e-08, -0.051308711713015744, -0.04787510460958951], [-3.154969549578575e-05, 0.06765198629057778, -0.020763562858335465], [1.5658199995819558e-06, 0.021855581056890155, 0.06484758646051315], [-8.24504359411476e-06, 0.0008158402838307874, -0.0010941820949123633], [-2.8235228134655693e-06, -0.0003917252139534931, 0.001456422485833796], [-3.684501773893547e-05, -0.0009748329328203605, -0.0008721694679828817], [-7.041183517502766e-05, -0.06877399018361752, 0.015432473734455446], [-1.041151675313556e-05, -0.0017159334380379067, 0.00036960022407406864], [1.22898647864648e-05, 0.0014190118392082953, -0.0004399582572234655], [-4.528869975201229e-05, -0.06855212492778774, -0.01541594806690301], [-9.70145710917718e-06, -0.0017335047002103104, -0.0004953712312165803], [-1.7897145179325184e-05, 0.0011108264221815958, 0.0035772405737289487], [-4.922280175047133e-06, -0.023670993500520977, 0.020839596472817665], [-1.897420333820382e-05, -0.027097470667598506, 0.01197265928753604], [-5.720159541044575e-05, -0.05039453465441953, 0.025317409968072517], [-9.627313208332946e-06, -0.05755203086528019, 0.009456629968804807], [-3.1878539028800404e-05, -0.05960045063731834, 0.009896482041083834], [-3.0867821151114635e-05, -0.055778077952751644, 0.02866611569046849], [8.557661727400476e-06, -0.01875404655404704, 0.016722772765251016], [-8.794418251888969e-05, -0.06367838963929351, 0.010408920784768039], [-1.4452072997022459e-05, -0.008250831543272035, 0.004278671518515103], [-7.22892485811527e-05, -0.05936177402391156, 0.03042136410638129], [-2.1890868523285872e-05, -0.01182650495323284, 0.0019474571841135782], [2.1876111231637855e-06, -0.006420971974154248, 0.0032827963556543217], [-2.1212171538645162e-05, -0.013330796407795786, 0.0021955782424754517], [-2.1381615703003668e-05, -0.014009091289174725, 0.007027532450000414], [-6.217287024154022e-07, -0.0047299379213035, 0.0024774144002893536], [-2.661980762889106e-05, -0.017468432756208276, 0.002941421091521271], [3.4628540287770796e-05, -0.02518427197973153, 0.011198364305350119], [6.781805803092129e-05, -0.036510790223986726, 0.0059209138251063494], [-2.329658258482304e-05, -0.03861661611566725, 0.006200459513894086], [-3.6292027412020676e-05, -0.049250459031281786, 0.007915956369854748], [-3.5859276955051995e-05, -0.021319710120441468, 0.009348545198681385], [-5.8978141020236805e-05, -0.03892315347927614, 0.03584471847774161], [-3.5285252293062525e-05, -0.04153803982655021, 0.008973793799445587], [1.946090268612667e-05, -0.01766735915825435, 0.008828768501432906], [4.58396889470419e-06, -0.03449945999640748, 0.03129696286065694], [-5.87859174788568e-05, -0.02494678592502132, 0.022708749322689726], [-4.1267896602829704e-05, -0.061276564255737034, 0.03034669123777564], [-4.579373214833529e-06, 0.0528587485689038, 8.360574104116701e-05], [-2.9996516592078592e-05, -0.05248917118023734, -0.008187551388198495], [-6.613217246727758e-06, -0.01159549465356544, 0.05160241890867295], [4.1876922176362863e-05, 0.003941871803695735, -0.05244699827306339], [1.019401052758406e-05, 0.03542642299535475, 0.04228863004983535], [-4.897368727220815e-05, -0.03875927505514717, 0.03596479804947949], [2.6542667297694072e-05, 0.043639752823246516, -0.029755212953831055], [1.0999620311270619e-05, -0.03698867106782208, -0.035078777697387674], [-2.355196063458415e-05, -0.028999614283978358, 0.05020170656952078], [-6.725201053947778e-05, -0.01987530725543499, 0.03364575175027112], [-4.07067049295e-06, -0.030708317170753296, 0.016668144086134817], [-4.576895327042555e-05, -0.010297278080706582, 0.014356889864580611], [4.5439522500414346e-06, -0.021450016628446665, -0.0029439260139190286], [-4.1144864655266255e-06, -0.0015885602784774626, -0.006066288718451453], [-2.937739866738851e-05, 0.010160386852063776, 0.011780997200649056], [2.5432352933349524e-05, 0.019237479344508562, -0.00881411691365094], [1.683229631140811e-05, -0.015510584550035416, -0.02499897239281277], [5.0721264558708854e-06, 0.002584554941041917, 0.035317972040484716], [-1.0758969036936922e-05, 0.0318795563588418, 0.009638571382335261], [8.332534542916552e-06, 0.0064393014151391875, -0.024395938941900393], [2.046149292518793e-05, 0.02044943129938573, 0.02831207430426425], [4.608804144267005e-06, 0.004942692365566777, 0.05658839852192499], [-2.7298838279704835e-05, -0.049016201991650576, 0.02058521407275145], [2.1616204547009513e-05, 0.02536419959799365, -0.026790522951408498], [-8.462741261416695e-06, 0.03791862739616719, -0.012138453913394152], [-1.907244263750441e-05, 0.04992478001435909, 0.01908192617430693], [2.633922897813034e-05, 0.032080661602057546, -0.04422970569268076], [-3.7310774621053953e-07, -0.036161572933513145, -0.015755966100556084], [-2.4210113015465107e-06, -0.01842828611217424, -0.04846854180089743], [-2.3252257155832626e-05, 0.05536827133857464, -0.01707183841148901], [1.8158614033624375e-06, -0.05141428850508899, -0.024542942098624062], [3.4942840240710036e-05, 0.014446282302560705, -0.0402626168546784], [-4.825822374622432e-05, -0.04056687597257283, 0.002369983293899594], [3.9688810797668874e-06, -0.004009173961585516, -0.038493485491587064], [-3.5806529516022476e-05, -0.05720843962706689, 0.007082980113518823], [1.545757257205666e-05, 0.019318695706073134, 0.049303392243917256], [3.431460553204426e-05, 0.020584669111231475, -0.05442873447041667], [-1.1613916128966102e-05, 0.04741442262671429, 0.03391947782481753], [4.637964452661444e-06, 0.0363886747473914, 0.02624583887198737], [1.1639315557969867e-05, -1.0247576331500589e-05, 3.6176347083840876e-05], [2.2674836546800337e-06, -5.2285912443835743e-05, 6.677718316029139e-05], [1.2124602963639934e-05, 4.1595439732605415e-05, -2.7216392440484567e-05], [-5.619696890389435e-06, -7.398491324109021e-05, -3.2421624233505476e-05], [1.1146381394783727e-05, 7.63191577175424e-05, 8.9720829103339e-07], [2.729559684586047e-06, 8.694505405432962e-06, -1.9224728158717395e-05], [-1.3694646505782668e-05, 1.0080325152107874e-05, 8.240539146698168e-06], [-1.8263022126673857e-05, 0.005764481684235665, -0.012810710632894448], [3.887406815479662e-05, 0.001203488467859985, -0.0003216320750152594], [-5.521139910866231e-06, -0.008114595997492287, -0.0025922748665841372], [9.700790582866734e-06, -0.014249027451975104, -0.008015189820601934], [7.6808891043325e-06, -0.0027377992624732844, 0.004331145549753063], [1.3895496110590528e-05, 0.003952785058393274, -0.0033734296131391226], [-6.819972620838073e-06, 0.015908572717108806, 0.011818983736840637], [-4.196048857739241e-05, 0.011004118498536768, 6.854246083353292e-05], [-3.2780002923205855e-05, -0.018074601080871545, -0.0002520566931297448], [1.076324623307979e-05, 0.01037644904615819, -0.011022063258262868], [2.9140697835621796e-05, 0.017904721492222983, -0.001391451900603843], [1.0091460956912562e-05, -0.010495316011617345, 0.021925083086184658], [-4.487417696118007e-06, 0.0054119260219073215, 0.01408054415804124], [-9.641683673157568e-06, -0.00858129867118133, -0.0014027674412256767], [7.575952587551512e-06, -0.014683717136349706, -0.0035114627142972662], [1.5907818526072603e-05, 0.008663358310819618, 0.0010278556035309674], [1.97377990321276e-05, -0.0028260742146381432, -0.00011347479322323122], [1.0711893525222509e-05, 0.002422948646191517, 0.012802015695478635], [-7.575333683635298e-06, 0.016455739654085845, -0.01647747962890354], [-1.5525613826948466e-05, -0.00496369511578985, -0.0043450581455417615], [-3.552569067890982e-05, -0.028374669720115785, 0.005330108848518358], [-1.986178736344851e-05, -0.008959896291929979, 0.02250766592267968], [-5.915899131031216e-06, -0.0013571137240303286, 0.00914695488306568], [2.9557142518767406e-06, 0.005992580584337908, -0.012364013488611245], [1.5029331984135602e-06, 0.0013126859689450673, -0.009301558017340976], [1.0347839782105442e-05, -0.0008205187665746485, 0.0013898721801249034], [-1.5096361059158723e-06, 0.00040692792641177413, 0.003264581443811614], [-2.236139304555553e-06, 0.024601551703332062, 0.010418577156402478], [-2.4506960073815518e-05, -0.023849207556249974, -0.012162757895955134], [8.722758682523395e-06, 0.0005324641636899497, 0.01965602385393908], [-6.207273242497968e-06, 0.005755680249982498, 0.00493121849938888], [-2.4322150198420397e-05, -0.003312447087592676, 0.01235418722099959], [6.18381502539374e-06, 4.1902569950368015e-05, -0.003433498314898428], [1.4024985937609934e-05, -0.0006701794502125497, -0.021297100691785132], [-3.754486163808364e-05, -0.011043875988733135, 0.02166690719163021], [3.886787092509252e-06, 0.0070137409450425825, -0.022543055806549438], [2.249098632496038e-05, 0.001323004969031862, -0.012671693379045602], [-3.275536403117809e-05, -0.0010042523644633046, -0.0016278095751630897], [-1.2465969136280506e-05, 0.02399287250621383, 0.017507711580642585], [7.831347735829647e-06, 0.01629329940688728, -0.02427944352920839], [2.276992497892649e-06, 0.003390987669585551, 0.004885181396267746], [-1.0731267818816931e-05, -0.001371184333069721, -0.005930637492871998], [-2.4139446397230308e-05, -0.005983335921619489, -0.0005163856797097087], [-2.5424527009043514e-05, 0.022825527179961853, 0.016604623252129858], [-8.11808575707466e-06, 0.004144799865962132, 0.00016971095167592613], [1.0193338501636337e-05, 0.01575512439602075, 0.0023430131736797773], [4.9723340801480276e-05, -0.010518446541916401, -0.02657194987419754], [-1.1965739143755743e-05, -0.012221332964874798, 0.013855799307564916], [1.4805932887836717e-05, -0.013402439809366416, 0.001579933418655949], [1.0531171709110753e-05, -0.016958112133304025, -0.0006577007999122205], [-1.7983202256122776e-05, -0.005937885486816427, -0.019693778238261427], [-2.280473662052212e-05, -0.005315247465795658, -0.01760582903364292], [-2.2614675491885705e-06, -0.00864747079191692, 0.004874442808991831], [1.1564739088352878e-06, 0.008612948418746746, -0.009133105660943261], [4.09239824911184e-06, -0.028284262170246106, 0.0016077356957394109], [1.2371973019832789e-06, -0.024399685051655726, -0.008609223870703538], [-9.53858429191958e-06, 0.020231010336119883, 0.004021814169138761], [1.6692553717146565e-05, 0.015523693005432042, 0.018940527193414505], [-6.1329822111628365e-06, 0.0014928588524387046, -0.008544142744752863], [9.97351277640339e-06, 0.025327456368517735, -0.00445077835011312], [-1.8815802840625915e-05, 0.008991773769583019, -0.0032743386833370925], [-3.1256602386346195e-05, 0.0013306583275322975, 0.001045582321255374], [5.454032029613661e-06, -0.0041162684964232065, -0.011917243960461815], [6.383282973663824e-06, -0.0008230738334826381, 0.009368554396777643], [2.2490568768489037e-06, 0.00603008917709296, 0.010767954777414133], [-1.4265910309601124e-05, -0.0028535846654343645, 0.00507607745957356], [-1.5537367501954453e-05, -0.012813632293697615, 0.021023046403884135], [-4.289616827567483e-06, -0.007034429071028681, 0.010667244356355937], [-2.4980762054140206e-06, -0.006873082584256636, -0.007218847032346493], [-9.81648798191675e-06, 0.015943571527379956, -0.015889934239973726], [1.796473014258985e-05, 0.018667733551283903, 0.0036008454104291925], [-7.200024494381261e-06, 0.0008960586455759703, -0.001488986401444919], [-6.6123517935703635e-06, 0.0043801160153962276, -0.0037547552514873], [2.3100501506851573e-05, 0.0051140701301219975, -0.036486189699668964], [-5.822729039817155e-07, -0.021248794046759584, -0.007373931940936235], [1.8423041524225328e-06, -0.007042330171756663, 0.020409414816095005], [-1.796217747792615e-05, -0.007222874566168306, 0.032992065792370906], [-3.480479725961698e-05, -0.0014129130924883152, 0.030877050470144964], [-1.5542674391036682e-05, 0.013410490408543358, 0.0016474771374729114], [6.443258711098074e-07, -0.008218884145040585, -0.02505328085468773], [2.3781688728136732e-05, 0.00454333816005669, 0.01779303903061256], [-6.713109716312327e-06, -0.0017505223308380952, -0.00015964720977863447], [3.258967454077825e-06, 0.01377358234860729, -0.012691486829287895], [1.0125718981608711e-05, 0.01573940115300548, -0.020781369072111016], [-5.282210715329793e-06, 0.007330160070669199, 0.007559776761276196], [1.4425643771524416e-05, -0.02302876703586784, -0.02650300640226846], [-8.609981034500975e-06, -0.003969855288387596, -0.0036278843786271817], [1.9442113018766632e-05, 0.032106465506498746, -0.01660729081554843], [-1.0384285683157971e-05, -0.013426573157390981, 0.011288775400885197], [-2.08359884380122e-05, -0.009258618313668409, -0.015482455730702862], [1.1784300594824308e-05, 0.030675373860077598, -0.008230081517845983], [-5.7798198218001504e-06, 0.01911400680558596, 0.01443712331373563], [-1.5345609731559726e-05, 0.010080686124895231, 0.011986679114442553], [9.633831604504105e-06, -0.027289433398817575, 0.019512047436032166], [-1.149548083475447e-06, 0.007328476420625507, 0.0003828528601023965], [1.3904023338148763e-06, -0.009127410401845806, 0.002150079726375414], [1.84913122715596e-05, -0.01170098420760881, -0.010911508310283636], [-4.67324456536833e-06, -0.006518335777021448, -0.03498915548492089], [-1.738060888076887e-05, 0.011591562825082238, 0.027841636555354182], [1.0109540535171767e-06, -0.019130980622387085, 0.016784841363811694], [1.7317707801640686e-05, 0.0031223822423006383, 0.0021154371466366867], [2.8789423848065882e-05, 0.0338693770161198, -0.014204657948482463], [-2.67296467890731e-06, 0.015682584902804088, 0.03405828476199844], [-2.3034149021577903e-06, -0.003302951939684778, 0.003561162630976749], [-2.2406569642904853e-05, 0.0030352078940343794, -0.002697757041491434], [-1.8842380570658954e-05, 0.01326411827423838, -0.009440600661952752], [-9.077102465527965e-06, -0.01344415906734193, -0.00556575774514401], [-3.178544908535377e-06, 0.003937203065227009, 0.0041434618827803525], [2.2828153552364053e-05, -0.016099171300598628, -0.026958944582214033], [5.665376355124786e-06, -0.02775425901578323, 0.01340578119368055], [1.167291804434364e-05, 0.03162230833794746, -0.006392187581283301], [-1.9148386820332625e-05, 0.0018684695315771594, -0.00030930172048796795], [-4.57876348072442e-06, -0.02534509621164512, -0.015088085743410909], [1.2129369199067608e-05, 0.01039750154595659, -0.007368136701815392], [1.0375722184676777e-05, -0.005968658716798024, -0.017485684132809574], [5.776758057401566e-06, 0.0005617181382467953, -0.03295621741571394], [3.7204476887468463e-07, -0.028509769618655395, 0.00585098302643888], [1.3696463799686497e-06, 0.013320915261003591, -0.03317328163571083], [-2.943437863408169e-06, 0.011729026878183545, 0.0223563217197403], [1.5172161740395095e-06, 0.005946486824627199, 0.03288927533083746], [-1.790610815218658e-05, -0.01927242407903563, -0.00966933192581799], [-5.075173986233055e-06, -0.0004766248655851666, 0.002655426528723336], [4.06220415484635e-06, -0.012482709950533948, -0.023483955679689243], [-2.9787362614243488e-06, -0.010478597840560542, 0.007906640533862058], [1.1775781922978898e-05, 0.0014649782912906281, 0.009426025962991172], [1.5523667685891866e-05, -0.0057749363522719786, 0.0004584465994087336], [-4.695305308604792e-06, -0.029902995535612768, -0.019473010492429405], [6.6694677733095034e-06, 0.01523868403382269, 0.010878883413129859], [-2.67085897227142e-06, -0.009043202024323035, 0.018572963592413307], [4.9853824478470864e-06, -0.022116465394343872, 0.00874686599396245], [2.2271052726787065e-05, -0.00015845032035414743, -0.00013705479601946023], [-3.356067065148668e-05, -0.035900899322549314, 0.010751523907255993], [5.3810675669543625e-06, -0.0028396481831915385, -0.002898332422542682], [1.0345017817591364e-05, 0.009628550387046853, -0.00034608917559085414], [1.0865815541903136e-05, -0.0011341143037102584, -0.0008402673944246208], [-2.1231665485973874e-05, -0.008282823572050738, -0.01082441984726161], [-1.3306517060801553e-05, 0.0177152667177875, -0.007310511912704497], [-9.668426244801787e-06, 0.0006617242306227513, 0.002908208213800103], [-3.074831303745494e-05, 0.023557903332144216, 0.028343294193002078], [-2.3487984589587646e-05, 0.0015191890604214409, -0.00900661223615448], [-2.1595249745770718e-05, 0.003148778758466301, -0.021679355214141157], [5.148781059844972e-06, 0.0012715631678009692, 0.0011537223161538705], [1.6559709527958141e-06, 0.018710818590591993, -0.020736553958429826], [-2.3532016129137252e-05, 0.00023439627292723335, -0.001865489656445712], [-1.0179892624152923e-05, 0.029575804557075123, 0.0039004802063614067], [1.1605383101632941e-05, -0.03004348968812159, -0.01877722148348026], [-9.399690138392947e-06, -0.00018861881886869216, -0.001188272622329459], [7.230889472833278e-06, -0.015289234653268983, 0.004469400065596359], [-2.2402494278513294e-05, 0.027168828861480736, -0.002087533061386426], [4.031156841104967e-06, -0.012743783690517372, -0.0018919883544582497], [-3.334396152262449e-06, -0.007095144141274097, 0.004675140948371757], [-1.4821386928866801e-05, 0.001113316765149389, -0.00639262103725611], [-1.7661221486446644e-05, -0.017806845726343164, -0.0098469423749555], [3.747018639587701e-05, 0.02052018700603161, -0.03502875252493701], [6.335570795415764e-06, 6.822644591789944e-05, 0.003742049486926967], [-5.139008841763212e-06, 0.0001335214969600395, 5.616786295166966e-05], [8.406045238846395e-06, 0.01083957313832735, -0.015552748842005618], [-7.618610333893384e-06, 0.000461147844380135, -7.765347304544995e-05], [-1.3975908629134153e-05, -0.005965757690055753, -0.03751557722792311], [3.0277056649990055e-06, -0.019354774422484008, 0.0013275864910731112], [8.81861770474848e-06, -0.00034889122329430865, 0.0011046830734623783], [6.967244945279954e-06, -0.00297376750527486, 0.0018610972848437963], [-2.1854874269468698e-05, 0.0010202917589838616, -0.0021302261320446164], [-1.1274720192035189e-05, 0.009133994112375431, 0.03546974278431954], [-4.594310547900178e-06, 0.028101337721896234, 0.016063523693075548], [2.6814995786978524e-05, -0.006642419030511902, 0.008200822117109364], [5.61471153828067e-06, 8.349280711716128e-05, 8.303847587880614e-05], [-1.7650483611445916e-07, 0.0074959880483058215, -0.0076822002758595576], [-1.0281571187233518e-07, 0.003803340598356514, -0.0003357265218194422], [-6.107016615291461e-06, -0.029155594267455384, 0.011685170092986969], [1.9344186835660443e-06, 0.012964656444161131, 0.0018136923440742417], [-2.1586050316687225e-06, -0.007801761294858499, 0.023156266180080383], [2.783288008324538e-05, -0.02362714477314673, 0.004179489026599273], [-3.568595954846157e-05, -2.557067287609188e-05, 9.022638667177624e-05], [-1.1201999131242184e-05, 0.010102993521581108, -0.02360343252344085], [3.7282587824134916e-06, 0.001100224169985558, 0.006903159752843486], [-2.256696338910964e-06, -0.03444556994186744, -0.006321389767763121], [-1.788176395166062e-05, -0.01609510849351243, -0.019152088815438298], [-1.5136907280951374e-05, 0.01797549987055884, 0.013518499565583238], [-4.628364402364541e-06, 0.008456463886638043, -0.022736938021967745], [-1.2221039746938783e-05, -0.004923793006291527, 0.019664736793098693], [4.025385066873479e-06, 0.010655013319043793, 0.009853849927101298], [-2.0103028969546733e-05, 0.0003396640208588525, -0.003325115986450129], [-1.9311619561573224e-05, -0.010523672722424113, -0.003955398791681154], [1.7264172135483892e-05, 0.02309288288869408, -0.011935429834832175], [-7.199749178265735e-06, -9.276988358308743e-06, 0.016824510793518817], [1.1514851292435214e-05, 0.037165422953627604, 0.000979189217461809], [8.201649120826472e-06, -0.0064875297561216615, -0.005512907507665737], [-9.452914551181507e-06, 0.02103962294221093, 0.014698422419265788], [-1.0423297417466518e-05, 0.015276317076870868, -0.0030998967523608784], [1.136723117802678e-06, -0.0014224307980465983, 0.0036662382303480835], [-2.8807341913690883e-05, -0.04044049127888907, 0.00010687220757619891], [8.532286398318634e-06, 0.0037670132691337305, -0.02823505189344808], [-2.5933994751565954e-05, -0.030111202281925677, 0.029226938551214134], [-1.6385476039539534e-05, -0.024442540804315637, -0.016465410026902157], [-1.4802314277268709e-05, 0.04018428913183655, 0.009474139487756167], [-9.164147001535887e-06, -0.004893234886742711, -0.010214626044771876], [-9.364505354321861e-06, -0.02824715058619537, 0.024116705145855517], [-1.2487694202733612e-05, -0.0011564435450961473, 0.0008707996872132483], [-3.3240591847320603e-06, 0.023749161011684772, -0.02584749762370302], [-3.736041641992138e-05, 0.002171631864256649, 0.032239015037521114], [-1.8183570017938946e-05, -0.0018576263025380313, -0.012920009035404691], [-2.046119286184047e-05, 0.026579564922837817, 0.015395233494100368], [-1.1951317672600942e-05, 0.0037569937568470925, -0.016270342221015918], [-8.233990042530312e-07, 0.005751846531392436, -0.011676383903301103], [-1.525917685322688e-05, -0.00030935828903185593, -0.001551273816724742], [-4.2337348146713245e-05, -0.04009384817534368, -0.012384448748933453], [2.1786374687597695e-05, 0.025027437815504153, -0.024165060132403448], [-9.407916131190137e-06, 0.006571756905318244, 0.018315569263098706], [9.415030814469407e-06, 0.025445528129510734, 0.026949702512400097], [-9.286556166436387e-06, -0.00252620357669113, 0.008640894473049065], [-5.4932528529567475e-06, -0.014565582247834722, 0.011617278147812445], [-4.837149931980079e-07, 0.038797077420875445, 0.01116627794231334], [1.2645974686632273e-06, -0.0059260929610154426, 0.01180130858863502], [-2.760617616101331e-05, -0.028509296143746896, 0.026483048780613527], [1.960673266975041e-05, 0.0034963486641739015, 0.011968372413873232], [-9.257345746919145e-06, -0.04016336050387852, -0.016330663131749266], [-6.0373955663513664e-06, 0.022459086913564165, -0.009781699433440502], [-7.959964214383229e-06, 0.014489519451434153, 0.03715028461406598], [-7.062835934712509e-06, -0.0005741813042887401, 0.015657065778989534], [-6.294333016519971e-06, 0.04451024770637679, 0.005726758299664464], [-1.6144805654911318e-05, -0.006859277213082085, -0.0084252788542828], [-2.773106868705095e-05, -0.017816799394079593, 0.032614407398761314], [5.804909841206607e-06, -2.9339732801082447e-05, 0.0015527279514437723], [-1.3921257570296801e-05, 0.007822659028509087, -0.004549798823436386], [-1.2240829660875904e-05, -0.0254075789679103, -0.010229493000952676], [-2.2333035861929685e-05, -0.0033684355776729415, -0.0010692613134205382], [5.232973329356633e-06, 0.007977872142146085, 0.005148552997077038], [-1.4760153093352099e-05, -0.014296662713163391, 0.02786913039335628], [-1.1420916215961013e-05, -0.0038754830386264604, 0.04242797326175887], [4.026857659139958e-07, 0.0027793283839025787, 0.013246959811131763], [6.074386523589443e-06, -0.026275487970807556, 0.015162615712626223], [-6.233213638608723e-06, 0.018380501116634185, 0.005449987929024597], [-2.561934642561476e-05, 0.011412479959496603, 0.0038112904907182422], [4.0297844327083496e-07, -0.009609710073381697, -0.001903367062083658], [1.4404350897543132e-05, 0.029483568549160233, -0.012887094460607661], [4.60833656783358e-06, 0.002834157374755348, -0.006667768047455656], [9.600104733840029e-06, 0.0038642701798310254, 0.0013750023427349827], [-3.6959775944122824e-06, -0.0011440172159423447, -0.0008836831118286893], [2.5715638903471e-06, 0.023330038076098167, -0.003923952122337755], [-2.210474814332186e-06, 0.005447014539480111, 0.010699628224361175], [-6.191268483054521e-06, 0.003695734073707104, -0.014996577183464924], [2.751980432912601e-06, 0.002529976162883736, 0.028523064910598285], [3.706662711582867e-05, 0.040751233987473094, -0.008218861156800808], [-8.36886992051145e-06, 0.007143419433422325, -0.0011278634120668732], [-3.584316260058439e-05, -0.046688510791733515, 0.006909151515863617], [-1.4494328576673855e-05, 0.014477137288596164, 0.02771527324876693], [-1.2803965746887517e-07, -0.0059115514381284885, -0.01718549132632488], [-4.0515397966515335e-06, -0.0036556323999083385, 0.002211771496430984], [1.7759077472611412e-05, -0.0007475522040907488, 0.0003077122030213216], [-5.516196610954819e-06, 0.0042637057502930824, -0.0028239997526831396], [1.59092744161657e-05, -0.004215516013297152, 0.0033328751698727473], [1.9808589977761934e-05, -0.007982027422471172, -0.010888719187221172], [-1.4021270608419912e-05, 0.010724715822899219, 0.020007777893905856], [8.326268744863819e-06, 0.03438503974774573, 0.011378563049122846], [-2.0239701213065603e-05, -0.02983350028831492, 0.002889283713213087], [3.427664770259507e-05, -0.024583986650943523, -0.03534505354369747], [3.6694486788243678e-06, 0.013336131483256554, 0.021327182093061097], [1.3611108675794035e-05, -0.012281414001889143, -0.019328637385969002], [-2.3204912317149073e-05, 0.0033268723122567207, 0.0019011194025120655], [-1.860060597355417e-05, -0.014923101385687164, -0.0020134008863510163], [-1.3346313373037948e-05, -0.014977075001940787, -0.027709760759912182], [1.7204509226151253e-05, 0.001897233286392856, -0.0020519951719226936], [-1.4994939427866385e-05, -0.004964514205354265, 0.033384121600708985], [-3.297685892241531e-05, 0.015162974682623731, 0.005832444632694799], [-1.0421329141160057e-05, 0.003355397724546491, -0.007842648719360287], [-1.9465266243414235e-05, -0.007550547768422849, 0.010459683450442186], [9.592034798447432e-06, 0.007491682322250639, -0.03275967338419084], [-1.0168960504595453e-06, -0.003988365046821064, -0.009323480322326324], [-5.747654243193581e-06, -0.0022378095755655257, -0.0258154708421677], [-1.1234148661527466e-05, 0.017072278009906634, -0.015210334087956079], [-5.275601506012717e-05, 0.00604182395342525, -3.0286948915465916e-05], [5.711749600610394e-06, 0.011635348836813459, 0.009273828720508399], [-7.078987096864383e-06, 0.0026468439975828296, -0.0017463261622980475], [-8.146565824127113e-06, -0.010203742207131734, 0.015765169757710206], [7.831085599764946e-06, 0.0020265898649640887, -0.03344107043096961], [2.314452621574689e-06, -0.001231018867023929, 0.005921727436497627], [-1.336696959421985e-05, -0.006715089223277571, -0.006155238375958522], [-2.7126134372557176e-06, -0.01036384338791274, 0.009673261661487732], [-9.418705161995116e-06, -0.005275995404080446, -0.001711334835791271], [3.7464909127546078e-06, -0.006344476663365765, 0.003909109875126106], [-7.770282810033056e-06, -0.004267177215600632, 0.00772335956525744], [7.20906717831215e-07, -0.018977082872926106, -0.032352456374906205], [-8.375323815313787e-06, 0.003817971706155333, -0.004836567460475445], [-6.752134996394262e-06, -0.01291220296479058, 0.04222455484055874], [8.01951048081784e-06, -0.0069302290190319344, -0.016641454551593243], [3.983002034299107e-06, -0.008231781355170397, 0.0014817782258794148], [-9.767170988725925e-06, -0.0023812323186010844, -0.006670159431866177], [-2.4920285911803366e-05, 0.02651415470677496, 0.0008360838703490654], [1.0035267854058425e-05, -0.007315973133968208, 0.006382835481958978], [6.173128570864134e-06, -0.018298325010272808, 0.0109946413169985], [1.489803060178474e-05, -0.004996451508395425, 0.02491798563504149], [-1.8319767799178547e-05, -0.024904615727853765, 0.03586580856414684], [9.7706362163593e-06, 0.0069276413636400165, 0.005428396051115633], [3.389673125239637e-05, -0.008351677483330391, -0.043975361603887965], [-3.289171025405169e-05, 0.021251502146392116, 0.0021094016601756437], [-2.395965041270083e-05, -0.020316767767971054, -0.0015710129925928383], [4.3549096859340074e-07, -0.002317856549355925, 0.0012434530756260805], [-3.6886560731430945e-05, -0.010589660028835997, 0.039165267713877065], [-5.6049432311462234e-06, -0.011136329650575892, 0.00021075760911255556], [1.5690173533956587e-05, 0.03072190549830729, -0.025224853913677108], [-1.1671437313307205e-05, 0.01392174201901444, -0.0036146185658820214], [2.722636961484815e-06, 0.006813949194407797, 0.004080473765503282], [1.1461627641177096e-05, 0.0018051704587461837, -0.022540085218713177], [-4.023663856587076e-06, 0.0005838924900544874, 9.722186542256226e-05], [-3.6519449059026035e-05, 0.008065445417902856, 0.023599415036924642], [3.958055952807182e-06, 0.009790858070015186, -0.00737144796264419], [-2.771072989155018e-05, 0.002494786204463238, 0.008288439247483705], [-9.304497892197016e-06, 0.005716111233663129, 0.002104336906381264], [1.0166308080721053e-06, -0.011403084314497564, 0.015572857079169547], [-1.408194557638913e-05, -0.015618005850604393, 0.002126955825370216], [4.330391837651504e-06, -0.01034234416068387, -0.005880388787624503], [3.586839669254083e-05, 0.021940976534139085, -0.043898570098137225], [-1.3309252599110786e-05, -0.0076996679620318425, -0.014157538841660502], [1.956647459071217e-05, 0.0070090526944435174, -0.0007240960690666478], [2.554883449024233e-06, -0.00041205115401782576, 0.0031107102079482763], [-7.858593912313965e-06, -0.0041807321561584815, -0.011991716129620012], [3.078573742909983e-05, 0.002478056103357853, 0.004555689879919974], [-1.8719936372447026e-05, -0.015275314374390598, -0.005730511724333294], [1.9702795103610032e-07, 0.016953782822488498, -0.004166520853613584], [2.7010707976445444e-05, 0.006091496973352192, 0.007890029993064323], [-2.413753623005305e-05, -0.022450681232762233, 0.02622036793169187], [1.0741396489523885e-05, -0.023915383749236446, -0.02578015695539525], [-1.733281214274237e-06, 0.006843276937460434, -0.00241155027077457], [-1.0150918715697509e-06, 0.03676030696954561, 0.030248237575033424], [-1.3805289255833796e-05, -0.019799392352177196, -0.020891677768992135], [1.2428303424531049e-05, 0.011874904684813163, -0.016210879638309885], [-2.2009859858363477e-06, -0.00014592367059641822, 0.005861319287448939], [-9.709564528142198e-07, -0.019941915449951077, -0.04229382040104049], [-1.088695893216011e-05, -0.02038769157834867, -0.012271731088431761], [6.5278193128693795e-06, 0.0031430184365645792, -0.01465727219212373], [-9.398396514403324e-06, -0.027102119514721693, 0.0021142177351425673], [1.78571380447695e-05, 0.004930197728262162, 0.02758754500353897], [-4.767295102988806e-06, 0.0014953449970596822, 0.017827724094359065], [-2.0097029670219756e-05, -0.013640304724219149, 0.010476357878868503], [-2.2287518880738532e-05, -8.679076377526558e-06, 0.0032977367546711757], [-1.3264292623320393e-05, -0.004891114157522528, -0.002401054215937172], [1.215419855903105e-06, -0.021749285236456157, 0.0044322364194251986], [2.3041463380994954e-05, -0.00038071612512169324, -0.006160143858070858], [-2.809723519843517e-06, -0.033250711028593366, -0.004837493932560396], [1.6259165663659387e-05, -0.01805298416488778, -0.0065669927146864305], [1.732099940924334e-05, -0.0008437822234745035, -0.0034350572136889433], [-1.0023051075117221e-05, -0.014886554632827337, -0.020440148997987257], [4.351040346471966e-06, -0.0014319735855331222, 0.023221667357441887], [7.371910044201434e-06, 0.013595253508945892, 0.011419336577325039], [3.405861562624381e-06, 0.02008183380398781, -0.004560453448954292], [3.359253687330641e-05, -0.00220051885277181, -0.03804537119448792], [-8.845691305924629e-06, 0.033643277712303375, 0.00014834033746249228], [1.6838799071152633e-06, -0.013670054536456476, 0.005505808157589375], [-1.443984727723807e-05, 0.0010541966951083635, 0.0008591256499488193], [5.650019773371228e-06, 0.0028287319467286383, -0.0011739005791192966], [-2.5929480236325693e-06, 0.003103154824714998, 0.003890831436995796], [1.4262352937223643e-05, 0.00010841271551760258, 0.0008483295001511794], [-4.538985443088831e-07, 0.00850428342280457, -0.010507687260076039], [7.409712501014564e-06, 0.001681173110610238, 0.009153763379057808], [1.789559424445182e-05, 0.009307416913630564, 0.01867756503270327], [2.1954215929277216e-05, 0.0038776875414171692, -0.0033260317743245052], [-7.6103177044164536e-06, 0.025883947472734297, 0.027031747382924985], [2.9970825640706e-05, 0.01705100427859048, -0.03590565262628802], [-2.2482913273909283e-05, 0.019156770249173248, 0.001849840585323077], [2.172984887488562e-06, -0.03851273429377954, 0.0015467963272766763], [2.8970971323033905e-05, 0.03183707669961411, -0.02955851588058395], [-3.22756151139456e-06, -0.0024293543651991018, -0.015561417263885559], [-1.3712396192088702e-05, -0.013173730487785014, 0.0024271411789823583], [3.129827348644925e-05, 0.013440671615547213, -0.04174360172909602], [4.931515818627595e-07, -0.005068465379529358, 0.0015958725408515945], [-2.3800016317197457e-05, 0.003207352827515015, 0.01093970275602902], [1.4045300573574804e-05, 0.005203280678311952, -0.015362395357546405], [-2.2653844308685107e-06, 0.005434769269743039, 0.00821150727214938], [1.7910222122483638e-05, 0.01826518106900754, -0.021575403330802795], [4.7124874670208363e-07, 0.0314081397525063, 0.030613112071030468], [-1.039136114381253e-06, -0.008263795331085592, 0.013331885006680158], [-2.654828717398993e-05, 0.001934636448487896, -0.004829746165296083], [-3.2713167185448675e-05, -0.00015234853873698494, -0.0014904075447297362], [2.066061154109589e-05, 6.581423728526125e-05, -0.0103350103983305], [3.3987920931365955e-05, 0.0004139273903687719, -0.0012890964269276824], [-2.491753379201453e-05, 0.02660182090459786, 0.015444947702102365], [-1.1437537351743214e-05, -0.015738430665198803, 0.0024347348681253342], [-4.670047763867082e-06, -0.007543101175991413, -0.0032588878111814044], [5.0169557591915045e-06, 0.0029360900094238447, 0.0008149263171674523], [-1.7049313881397417e-06, 0.010553895760796803, -0.012239748336046475], [-1.2917380517953132e-05, -0.011944340926124758, 0.0295772823384712], [-3.215436369911074e-05, -0.0051759790716190525, 0.00017581776751610304], [-1.4163307023377855e-05, 0.005537567698427396, -0.002362353824831178], [-5.420776938147177e-06, 0.0090588387836653, -0.01767049126591465], [-2.847335767172969e-05, -0.00034145112138366814, 0.010264488240630731], [-1.4195876082641583e-06, -0.013022059006585077, -0.01300857551577225], [5.433978712949867e-06, -0.03223140855582314, -0.030999875713262355], [7.792730778330547e-07, -0.019778232066869825, -0.008315989687509611], [1.733694235664456e-05, 0.0022795353051651844, -0.020938801634983444], [-1.7938056964831855e-06, 0.006049092808353234, 0.002542303900530932], [7.528594395038958e-07, -0.006042139711863673, 0.006279885425562405], [1.2329493352865659e-05, 0.016499115874488553, -0.009256223797101169], [1.2137068574699192e-05, -0.0009555485908105351, 0.0018900390804690195], [-8.363675884949163e-06, 0.009678111058527323, 0.04565615804435839], [1.4554468321511926e-05, -0.006687199777903358, 0.014071377546721914], [-5.935393353447609e-06, 0.0008830512858307423, -0.0007202095280793245], [6.02879172473302e-06, 0.000188940101569162, -0.014284719600535026], [2.997545558144776e-06, 0.005386642717543049, 0.015023557630823834], [1.2578710793445412e-05, -0.014087877554221116, -0.008914454437522555], [-1.3550177262542488e-05, 0.015599619370159181, -0.002727808908145396], [-1.222950852592588e-05, -0.0078074621974210424, 0.007178592117374181], [-2.9218805598927703e-05, -0.001775694565167171, -0.005309206920146582], [-7.715451830838928e-06, 0.000568997427071035, 0.0013939517331645489], [-8.591875803477647e-07, -0.03129382369445928, -0.023608020482001054], [1.2914446124968123e-05, 0.023996481496783264, -0.002028460529956762], [-8.738545618672823e-06, 0.0004411963160680766, 0.00536803252884064], [-7.404270222317457e-06, 0.010483366356098494, -0.012579230453322425], [1.1533246970334431e-05, -1.9868671946393696e-05, -0.0007587048319582875], [-1.809238770170214e-05, -0.0016065918059025392, -0.003608419285146327], [-5.144237709765863e-06, 0.008741541586574468, -0.03150792547188959], [-4.5819130605822127e-05, -0.02024202159885649, 0.03715044957092404], [1.035651837576136e-05, -0.021092329837809003, 0.012909954050828364], [4.190237125714011e-06, 0.020444074114794115, 0.005029852137742158], [1.2650457844938243e-05, 0.011678568757594513, -0.001123795092997963], [1.2743418167515473e-05, -0.004032798270032283, -0.009340056428746803], [2.8603435002647742e-06, 0.009340316668457247, 0.0028976333825394733], [-1.1943103458474876e-05, 0.00043456972797946105, -0.04088762740417979], [-4.217461439972294e-06, 0.006388645868588137, 0.009172906366406716], [9.158923120714681e-06, 0.0012906820479201403, 0.0003121549288284325], [-1.9374441904955338e-05, -8.575478412413047e-05, -0.00512242063862274], [-5.930497521337097e-06, 0.010410811707842133, 0.01621026154358891], [2.9145791746583526e-06, 0.016800450679802816, -0.009006315840234255], [-7.077560017172928e-06, 0.03300612046029195, -0.015165278742551478], [1.3520782794532654e-05, 0.030610835684124222, -0.013147695965876931], [-9.528710572092028e-08, 0.001872564609196745, 0.019900371001233534], [1.7891314031350073e-05, 0.034124815952618806, -0.030126881090493406], [-8.60898314849208e-06, 0.034429903160707244, 0.029477748814161348], [1.8128683040674005e-05, 0.04665293687157735, -0.00871912258634791], [-1.8727241230479987e-05, -0.0025837087146176963, 0.011788114777216823], [3.188452369002205e-05, 0.0017173478740070405, -0.008120999406858438], [2.4124989093743224e-05, -0.023953661457877945, -0.036589421467149705], [-2.6275090805733902e-05, -0.013007479053508852, 0.003979443071123709], [2.1634764825296455e-05, 0.03773528629754488, -0.01673469357617177], [9.864339086316377e-06, 0.006296747314398746, -0.008445051931189471], [2.9088437933941625e-06, -0.02593308113632095, -0.010902226231907421], [-1.2994984603791192e-05, -0.000634580160354276, 0.0001099740071338499], [-1.419741048356651e-05, 0.010128189533569108, -0.009163792554771606], [-3.7452058430826854e-05, -0.012501608525160468, -0.008205916595525574], [1.6073957132066524e-06, -0.016249941963849924, 0.009493022937143042], [2.5026220176010057e-05, -0.003131808780973569, -0.004059494213373945], [-3.215692447191258e-05, 0.016019168063813694, 0.0418323808895627], [8.847821693833423e-07, 0.0009768430261223328, 0.0019381691518683061], [-4.474006434353319e-06, 0.015485130324170633, 0.0002898841455551098], [-1.2425300538901959e-05, -0.0013756826588908313, 0.0019340571009439191], [8.846747472872184e-06, -0.009056860048390099, -0.00795597015611544], [-3.061225000457131e-05, -0.005052452830319037, 0.037243658296790626], [8.945302996119161e-06, 0.0003924254785978849, 0.0343448341778205], [-1.6990459144220906e-05, -0.005314589649079094, -0.006476645546224499], [2.096203460958366e-05, -0.0018290929774712624, -0.001777248608895097], [-2.0327251928836926e-05, 0.00013268456224892184, 0.005193457894582117], [-4.913095582430955e-06, 0.0032954049214684368, -0.009826270844587355], [4.693735664356433e-06, 0.016380952890082214, 0.02856941807105831], [-3.1810384312803e-05, -0.010072577183023129, -0.007034284383867827], [1.0620545922097575e-05, -0.0067191739863990225, -0.033062698898393125], [-3.016968642233631e-05, -0.027888745662920652, 0.02667834964242626], [2.0310435764621596e-06, 0.006287556362594559, -0.005812283421269127], [-2.6176040115419782e-06, 1.5086768962170468e-05, 0.014566008580534327], [-4.091380366203889e-06, -0.0023915538945066183, -0.001974818294323868], [-2.229571081766692e-05, -0.03552450743530655, -0.007578692299818772], [-1.2631605248231987e-05, 0.0160658900507407, 0.03319116703831747], [-1.616824490279082e-06, 0.011655255155018304, 0.012698651795918817], [-2.5293172724758104e-05, -0.04322695629038215, -0.015874649635311353], [-4.929610177407112e-06, -0.04078600464576202, -0.011803679078594665], [2.19222759434748e-05, 0.012182141865153937, -0.03827973754589518], [2.688874538738782e-06, 0.008238089666871095, 0.017745271625717908], [3.283218726240589e-06, 0.01421412732854781, 0.0004559920115453945], [-3.212221691121143e-05, -0.047593048578923054, 0.004980972273803214], [-3.727085221495049e-05, -0.006049498078254232, 0.04107928264593541], [-7.541901177684452e-06, -0.0031916583932579652, 0.0014433207469287447], [8.284311061900464e-06, -0.0010620297917402384, 0.00020580268510402944], [-1.6572106651130012e-05, 0.044344685506081484, 0.013289377988127793], [-2.6335635920776108e-05, 0.014324611344811155, 0.004099659208111685], [-1.891217371987658e-05, 0.02068069976096378, 0.011470732118560483], [-9.520071717431178e-06, 0.012491681869055693, -0.041772522495509674], [-2.05071132738266e-05, -0.0018455073328338396, 0.02264372464452738], [1.8020589837654078e-05, 0.015452050165009296, 0.005037415428856035], [-1.3918923257823586e-05, -0.019873706479009226, 0.006894068443261347], [4.2901804511607275e-07, -0.01843935221006242, 0.021603040140849763], [6.124904717663325e-06, 0.0020954682434500345, 0.0018595479918684984], [8.915522945230745e-06, -0.025749179840239313, -0.002375471017828855], [-2.1434866709859418e-05, -0.019448850026622184, 0.045759660738807446], [-1.7716881635752977e-05, 0.030846977233630803, 0.019299043160516442], [1.7202691973815407e-06, 0.011525851936675446, -0.020535432744420073], [7.899084474396023e-06, 0.03757441469519357, 0.01439367050217695], [-2.4076334395002024e-07, -0.004334440603978491, 0.006254326894372274], [3.5573443105903843e-06, -0.011209871285094687, -0.013886647456295404], [-2.0139332216221358e-05, -0.017832191160715292, 0.007232810074164442], [-6.12324658045075e-06, 0.002325388644031588, 0.002600255597534663], [1.8249657754965407e-05, 0.022982625471794516, 0.01465635395129282], [-1.637654496973088e-05, 0.02399325784006335, -0.0037635176974822326], [-2.6023362864884824e-06, 0.004480516535053191, 0.006998180671715763], [-3.3544215558343854e-06, 0.04843137328334502, -0.01396556916017278], [-4.743100434945248e-06, -0.006553370390468855, 0.008382720896980738], [-1.142986974666573e-05, -0.014136827053388035, -0.019104144977556258], [-1.6104028695299033e-05, -0.041016640009138065, 0.011759291801499774], [-1.0046710179939877e-05, 0.03871061073912629, 0.00447042868308377], [-8.795591712758084e-06, 0.030784926402495028, -0.0031352208129954333], [1.338856595403858e-05, -0.00987259157214583, 0.009713927325523473], [-1.2468846875976286e-05, -0.0004645627559722273, -0.009888654935361858], [-1.84073486395924e-05, 0.03191630993875909, 0.010245131349204082], [-2.159081199423459e-06, -0.014399220113281888, 0.004028775062232761], [1.5786047863836004e-05, 0.039591909107064956, -0.028009593718057817], [6.159460939685145e-06, -0.00439329168229119, -0.006694622235917817], [-1.857778013596402e-05, -0.004204146471556797, 0.0005375560398251966], [-1.615021043406701e-05, 0.025401610500833054, 0.03395441901926429], [-1.1428164653220081e-05, -0.001208094082934449, -0.0016935587744293277], [-2.422370866247513e-05, 0.01294905357095415, 0.04259214124962182], [-1.3332050389468552e-05, 0.004202160002209508, -0.011576723793390167], [-2.3196956289391967e-06, 0.015370411320196852, -0.011482102851249934], [-4.941819244904544e-06, -0.005794646699556326, -0.005172212455746644], [-1.986338736340819e-05, 0.025808282626618363, 0.006313628065475607], [-2.1957097826139757e-05, -0.030729156631767247, -0.0008739607128580309], [-9.156834195746188e-06, -0.011220826471642405, 0.020860868012486353], [1.0691853377427588e-05, 0.03530506334655585, -0.013883329085889375], [6.603867290939663e-06, -0.02802799632946002, 0.021203867081398833], [1.0811920905189965e-05, -0.0006199436766761629, 0.005375641628971718], [2.1578581111935283e-06, 0.01135971491628916, -0.004697635623778618], [2.347061141909477e-05, 0.0012900419610321523, -0.001711147146795473], [-2.3617450881125524e-05, -0.008689201596514508, 0.0030198572463460303], [3.5499808045178617e-06, 0.01974416846653185, -0.019923538768881782], [-2.6764720370901034e-06, -0.01961348055025692, -0.0009652393482320849], [-1.2582658706092229e-05, 0.04022379288157277, 0.014555615828532206], [-1.0869005727641379e-05, 0.01160169557606491, -0.015225910949830132], [1.165607316315029e-05, 0.00957061771305312, -0.012712739844371658], [7.2647010839806955e-06, -0.00043396890177992446, 0.003072727156866414], [7.351196713433934e-07, 0.0012071112465780374, -0.021131958763194868], [1.1318849250993878e-05, -0.002848007506251942, -0.0023254902943702213], [-3.171822346742128e-05, -0.0033211843639744153, -0.027222058135765014], [-1.0784925633044783e-05, 0.019550481750009167, -0.0034692458452667578], [-2.170879657980615e-05, -7.565727400242113e-05, 0.01817591036166389]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/sofa_scene.py new file mode 100644 index 0000000..4c2e073 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTorsion/sofa_scene.py @@ -0,0 +1,119 @@ +import json +import os +import sys + +import numpy as np + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.sofa.conventions import ELEMENTS +from common.sofa.prefabs.base import ScenePrefab + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.Engine.Select", + "Sofa.Component.IO.Mesh", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + element = ELEMENTS[case['element']] + boundary_kind_name, mapping = element.boundary_mappings[0] + boundary_kind = ELEMENTS[boundary_kind_name] + + length, radius = case['geometry']['length'], case['geometry']['radius'] + eps = 1e-6 * radius + left_box = [-eps, -radius - eps, -radius - eps, eps, radius + eps, radius + eps] + right_box = [length - eps, -radius - eps, -radius - eps, length + eps, radius + eps, radius + eps] + + with root.addChild('Beam') as mechanical: + loader = mechanical.addObject('MeshGmshLoader', name='loader', + filename=os.path.join(CASE_DIR, case['mesh']['file'])) + mechanical.addObject(element.container, name='topology', src='@loader') + mechanical.addObject('MechanicalObject', name='dofs', template='Vec3d', src='@loader') + ScenePrefab.add_force_field(mechanical, case['forceField'], case['material'], template=f'Vec3d,{element.cpp}') + ScenePrefab.add_solvers(mechanical, case['solvers']) + + # The left face is clamped. + mechanical.addObject('BoxROI', name='leftFace', box=left_box, position='@dofs.rest_position') + mechanical.addObject('FixedProjectiveConstraint', name='clamp', indices='@leftFace.indices') + + # The torque T as the traction (T / J) (0, -z, y), J = pi R^4 / 2: one value per node + loader.init() + y, z = loader.position.array()[:, 1], loader.position.array()[:, 2] + polar_moment = np.pi * radius ** 4 / 2 + traction = case['load']['magnitude'] / polar_moment * np.column_stack([np.zeros_like(y), -z, y]) + + with mechanical.addChild(boundary_kind_name) as boundary: + boundary.addObject(boundary_kind.container, name='topology') + boundary.addObject(boundary_kind.container.replace('Container', 'Modifier')) + boundary.addObject(mapping, input='@../topology', output='@topology') + + boundary.addObject('BoxROI', name='rightFace', box=right_box, position='@../dofs.rest_position', + **{boundary_kind.data_name: f'@topology.{boundary_kind.data_name}'}) + + with boundary.addChild('LoadedFace') as loaded_face: + loaded_face.addObject(boundary_kind.container, name='face', position='@../../dofs.rest_position', + **{boundary_kind.data_name: + f'@../rightFace.{boundary_kind.data_name}InROI'}) + loaded_face.addObject('NodalSourceDensity', name='loadDensity', template='Vec3d', + property=traction.tolist()) + loaded_face.addObject('VectorSourceTerm', name='traction', template=f'Vec3d,{boundary_kind.cpp}', + sourceDensity='@loadDensity') + loaded_face.addObject('FEMSourceTermIntegrator', name='load', template=f'Vec3d,{boundary_kind.cpp}', + topology='@face', quadratureDegree=2, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + + build(root, case[sys.argv[1]]) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :3].copy() + u = mechanical.dofs.position.array()[:, :3] - x0 + boundary_kind_name, _ = ELEMENTS[case['element']].boundary_mappings[0] + boundary = mechanical.getChild(boundary_kind_name).topology + faces = getattr(boundary, ELEMENTS[boundary_kind_name].data_name).array().copy() + return x0, u, faces + + +def main(case): + x, u, faces = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for sub_case in json.load(f).values(): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/beam_tet.msh b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/beam_tet.msh new file mode 100644 index 0000000..5e5492e --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/beam_tet.msh @@ -0,0 +1,8996 @@ +$MeshFormat +4.1 0 8 +$EndMeshFormat +$Entities +2 3 3 1 +1 0 0 0.1 0 +2 1 0 0.1 0 +1 -1e-07 -0.1000001 -0.1000001 1e-07 0.1000001 0.1000001 0 2 1 -1 +2 -9.999999994736442e-08 -1e-07 0.0999999 1.0000001 1e-07 0.1000001 0 2 1 -2 +3 0.9999999000000001 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 2 2 -2 +1 -1e-07 -0.1000001 -0.1000001 1e-07 0.1000001 0.1000001 0 1 1 +2 -9.999999994736442e-08 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 4 2 3 -2 -1 +3 0.9999999000000001 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 0 1 3 +1 -9.999999994736442e-08 -0.1000001 -0.1000001 1.0000001 0.1000001 0.1000001 1 1 3 -2 -1 3 +$EndEntities +$Nodes +9 1485 1 1485 +0 1 0 1 +1 +0 0 0.1 +0 2 0 1 +2 +1 0 0.1 +1 1 0 20 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +0 -0.02947551744109039 0.09555728057861408 +0 -0.05633200580636216 0.08262387743159953 +0 -0.07818314824680293 0.06234898018587343 +0 -0.09308737486442038 0.03653410243663962 +0 -0.09972037971811801 0.007473009358642549 +0 -0.09749279121818238 -0.02225209339563135 +0 -0.08660254037844392 -0.04999999999999991 +0 -0.06801727377709203 -0.07330518718298255 +0 -0.04338837391175594 -0.09009688679024186 +0 -0.01490422661761778 -0.09888308262251282 +0 0.0149042266176171 -0.09888308262251291 +0 0.0433883739117554 -0.09009688679024212 +0 0.06801727377709153 -0.07330518718298301 +0 0.08660254037844349 -0.05000000000000066 +0 0.09749279121818219 -0.02225209339563224 +0 0.09972037971811809 0.007473009358641551 +0 0.0930873748644207 0.03653410243663879 +0 0.07818314824680334 0.06234898018587292 +0 0.05633200580636256 0.08262387743159925 +0 0.02947551744109064 0.09555728057861401 +1 2 0 33 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +0.02941176470588239 0 0.1 +0.05882352941176477 0 0.1 +0.08823529411764718 0 0.1 +0.1176470588235296 0 0.1 +0.147058823529412 0 0.1 +0.1764705882352943 0 0.1 +0.2058823529411767 0 0.1 +0.235294117647059 0 0.1 +0.2647058823529415 0 0.1 +0.2941176470588239 0 0.1 +0.3235294117647065 0 0.1 +0.3529411764705889 0 0.1 +0.3823529411764713 0 0.1 +0.4117647058823538 0 0.1 +0.4411764705882362 0 0.1 +0.4705882352941187 0 0.1 +0.5000000000000011 0 0.1 +0.5294117647058832 0 0.1 +0.5588235294117656 0 0.1 +0.5882352941176479 0 0.1 +0.6176470588235301 0 0.1 +0.6470588235294124 0 0.1 +0.6764705882352946 0 0.1 +0.7058823529411768 0 0.1 +0.7352941176470592 0 0.1 +0.7647058823529413 0 0.1 +0.7941176470588236 0 0.1 +0.823529411764706 0 0.1 +0.8529411764705882 0 0.1 +0.8823529411764703 0 0.1 +0.9117647058823527 0 0.1 +0.9411764705882349 0 0.1 +0.9705882352941173 0 0.1 +1 3 0 20 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +1 -0.02947551744109039 0.09555728057861408 +1 -0.05633200580636216 0.08262387743159953 +1 -0.07818314824680293 0.06234898018587343 +1 -0.09308737486442038 0.03653410243663962 +1 -0.09972037971811801 0.007473009358642549 +1 -0.09749279121818238 -0.02225209339563135 +1 -0.08660254037844392 -0.04999999999999991 +1 -0.06801727377709203 -0.07330518718298255 +1 -0.04338837391175594 -0.09009688679024186 +1 -0.01490422661761778 -0.09888308262251282 +1 0.0149042266176171 -0.09888308262251291 +1 0.0433883739117554 -0.09009688679024212 +1 0.06801727377709153 -0.07330518718298301 +1 0.08660254037844349 -0.05000000000000066 +1 0.09749279121818219 -0.02225209339563224 +1 0.09972037971811809 0.007473009358641551 +1 0.0930873748644207 0.03653410243663879 +1 0.07818314824680334 0.06234898018587292 +1 0.05633200580636256 0.08262387743159925 +1 0.02947551744109064 0.09555728057861401 +2 1 0 39 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +0 -2.503541930082155e-16 -0.07306820487327914 +0 -0.01150824889312312 0.07280417667649478 +0 0.07123623242397975 0.01625920519091276 +0 -0.07286389135284624 -0.005460393788372082 +0 0.05855994900625908 -0.04917425094414683 +0 0.04969900095266479 0.05356278435360208 +0 -0.04116078541182028 -0.06037178403596809 +0 -0.04875854296352724 0.05132560736237923 +0 0.06944984514603657 0.04009688679024143 +0 0.04665563482725372 0.0275528366322077 +0 0.02297651809823792 0.04235001236537813 +0 0.01985573963200126 0.01447966668228785 +0 -0.003969118687826098 0.02972517116452704 +0 -0.008513706565336083 0.002292220138594796 +0 0.01623453042698919 -0.01410242938413878 +0 -0.01224314338738922 -0.02649510757048446 +0 -0.03450550212999404 0.02144882057249528 +0 0.04871740625483301 -0.003488004852144479 +0 0.01323793920972892 -0.04397369914465722 +0 -0.03369305220905091 -0.008916522986870287 +0 0.03915734447139095 -0.02818109576474569 +0 0.07828726642463173 -0.006766422180493857 +0 0.02831588746977902 0.06799443321897355 +0 -0.03723162283093191 -0.03480413784791668 +0 -0.01683919035646618 -0.0525573204498645 +0 0.02629005051493083 -0.06917579577250926 +0 -0.06136973046791287 -0.04418039696963311 +0 -0.02194967942142288 0.05019951782252414 +0 -0.06724393895343415 0.02559486143473897 +0 -0.0236375297183843 -0.07663098922688143 +0 -0.03418764401364816 0.07135923552761661 +0 -0.05599275549500649 -0.02004242348629351 +0 0.003315594733254228 0.05619567722638206 +0 -0.05341173252383826 0.005654386985016353 +0 0.009750487402022718 0.07935329800422579 +0 0.06813621629229007 -0.02664364452286063 +0 -0.07540677636266056 -0.02851090800560852 +0 0.04694795383579439 -0.06567816069170311 +0 0.03648978553636028 -0.05030998955692086 +2 2 0 794 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +0.4852941176470599 0.0252639219150482 0.0967560553633226 +0.6617647058823535 0.0252639219150482 0.0967560553633226 +0.3382352941176476 0.02526392191503892 0.09675605536332503 +0.7500032707586177 -0.02526361212528865 0.09675613625183144 +0.6323529411764712 -0.02526392191503734 0.09675605536332543 +0.5147085547247892 -0.02526239289697757 0.09675645459150897 +0.3970588235294126 -0.02526392191508832 0.09675605536331212 +0.2500233326303539 -0.02524719535683889 0.09676042128170802 +0.7794117647058825 0.0252639219150482 0.0967560553633226 +0.2205882352941179 0.02526392191504829 0.09675605536332257 +0.8382348892760625 -0.02526184063139512 0.09675659878227426 +0.1615518234361898 -0.02461911173251836 0.09692213027736121 +0.5664469667941777 0.02494621341809352 0.09683845535787389 +0.9706081396299115 -0.001479437582354865 -0.09998905572331362 +0.02946327025520788 -0.002147021015057625 -0.09997694884702624 +0.9742092960782426 0.09308737486442015 -0.03653410243664023 +0.02765550287383968 0.09253748638154967 -0.03790532435139569 +0.02987842527996892 -0.09169440260381675 -0.03990158557161812 +0.9742092960782459 -0.09308737486442047 -0.0365341024366394 +0.8676470588235292 0.02526392191499836 0.09675605536333562 +0.1323529411764708 0.02526392191499853 0.09675605536333558 +0.02809113892153562 -0.08638710675014011 0.05037129924212694 +0.9712891951134757 -0.08642270486913846 0.0503101985993078 +0.97420929607838 0.08660254037844423 0.0499999999999994 +0.02859149916209112 0.08847220778903959 0.0466118917115901 +0.3382427957239559 -0.02526153711169094 0.09675667802665955 +0.4558877422570792 -0.02526130027009747 0.09675673986169632 +0.5735376494773946 -0.02526050595988254 0.09675694723714023 +0.6911803774893994 -0.02525897337790453 0.09675734733804101 +0.1028971193780311 -0.02473973539476977 0.09689141082983969 +0.8970588235294115 -0.02526392191508811 0.09675605536331218 +0.3970588235294126 0.02526392191504081 0.09675605536332453 +0.2794117647058827 0.02526392191507338 0.09675605536331602 +0.720588235294118 0.02526392191505679 0.09675605536332035 +0.9710712117050965 -0.05602774337543642 -0.08283050146085223 +0.02579070392175642 -0.05633200580636233 -0.08262387743159941 +0.02416074464999332 0.05590550041305607 -0.08291305701495869 +0.972929636051732 0.05553625342671965 -0.08316083546551928 +0.9264705882352938 0.02526392191535628 0.09675605536324217 +0.07352941176470598 0.02526392191535637 0.09675605536324214 +0.9535053699285615 -0.02499832756202306 0.09682501546140748 +0.0462811721305656 -0.02485533505852341 0.09686182075063704 +0.9742092960782424 0.04338837391175607 0.0900968867902418 +0.02356276400527855 0.04470876263410964 0.08944901644918653 +0.4264827317564587 -0.0252573699432011 0.09675776590823232 +0.4853064430883126 -0.02525705588503405 0.09675784788853185 +0.5441233763386278 -0.02526260340305383 0.09675639962968864 +0.6029561381493567 -0.02525549533585457 0.09675825523096532 +0.6617663338377172 -0.02526221959040005 0.0967564998404056 +0.3676470588235301 -0.02526392191503751 0.09675605536332539 +0.3088242730465371 -0.025263459741801 0.09675617603995314 +0.7794117647058825 -0.02526392191508811 0.09675605536331218 +0.7647058823527656 -0.04892003708809009 0.08721714264581185 +0.647058823529397 -0.0488965219298583 0.08723032811564385 +0.5294117647058834 -0.04889152248704069 0.08723313033990696 +0.411786577440753 -0.04889193840125559 0.08723289723130735 +0.3235294029274697 -0.04890038427893734 0.08722816298290513 +0.4705362486353751 -0.04889959162440136 0.08722860734281374 +0.5882581438467583 -0.04888523094913425 0.08723665625784729 +0.2941130976955501 -0.04888567955268872 0.08723640487016779 +0.7352758896218003 -0.04890061314349439 0.0872280346803154 +0.7499691729251775 -0.06940458678045197 0.07199307837448481 +0.7794576446938972 -0.06940581405086461 0.07199189521006379 +0.7646864520108182 -0.08538329980434753 0.05205470309703927 +0.7942207358258061 -0.08537958062346852 0.05206080303415074 +0.779450307518349 -0.0957923044359633 0.0287025157581653 +0.749931846797614 -0.09578772617733888 0.0287177908930187 +0.7646820959833436 -0.09993942624315509 0.00348009801427567 +0.7351556822563751 -0.09993866994381846 0.003501749542802415 +0.7499011790856396 -0.0975581282284219 -0.02196387071002721 +0.7203818964725015 -0.09756306633479767 -0.02194192533375028 +0.77943194677792 -0.09755402144601646 -0.02198210407832156 +0.7646473829395952 -0.08878731296654814 -0.04600883671839827 +0.7941951279569172 -0.08877920342709816 -0.04602448303729138 +0.7794095362961146 -0.07419228947757325 -0.06704852110282504 +0.8089420231650305 -0.07416927554777701 -0.06707397829798026 +0.794177474057204 -0.05471902103436441 -0.08370082877152882 +0.7646075198063507 -0.05473966879987749 -0.08368732675668233 +0.8237280063393676 -0.05469487634297791 -0.08371660827951857 +0.8089494674980768 -0.03163965922143583 -0.09486270059592132 +0.823721348298858 -0.0887385730282121 -0.04610277276820417 +0.8385442778066193 -0.03162722056482763 -0.09486684836835124 +0.823735535400295 -0.006465131562135117 -0.09979079152849868 +0.8531666981811304 -0.006374425927100419 -0.09979662666693655 +0.8385172950436833 0.01912903591419769 -0.0981533493315095 +0.8089237399759499 0.01910896864608251 -0.09815725809782502 +0.8237102650353139 0.04344242997284002 -0.09007083478049314 +0.7941134198565937 0.04341870885270457 -0.09008227196049218 +0.8088795152793981 0.06488392656889537 -0.07609254939218553 +0.7793071215927916 0.06486368140610449 -0.07610980774149528 +0.7940682399441179 0.08207256486656292 -0.05713225092908403 +0.7645082689098337 0.082056373544065 -0.05715550332904847 +0.8236470050080795 0.08208491003858806 -0.05711451255116257 +0.8088270643730976 0.09389742533962184 -0.0343987429216555 +0.8384063553713287 0.09390598222534481 -0.03437537639493166 +0.7497508580280903 0.06485094996468783 -0.07612065612353559 +0.734959960872174 0.08204045296889755 -0.05717835321743808 +0.8236055956312013 0.0995579459250959 -0.009392305530362785 +0.8531841438442141 0.09955933751915556 -0.009377543001600477 +0.74970453319346 0.09387087578278748 -0.03447112820568081 +0.720171016917559 0.0938618553069501 -0.03449568260430809 +0.8532375461772759 0.08207455103541139 -0.05712939761922622 +0.7349135623252208 0.09954342923369497 -0.009544930402908222 +0.7053837047371949 0.09954073723095423 -0.009572963570291271 +0.6906375652493472 0.09385406959322322 -0.03451685994974651 +0.6758698116881143 0.0995418765393381 -0.009561109508167437 +0.6611208911483948 0.0938483806794162 -0.03453232462275572 +0.6463519579688209 0.09954045326324634 -0.009575915838575061 +0.6316146774055205 0.09384250039584739 -0.03454830125281681 +0.646393316231398 0.08202683352896563 -0.05719788965697389 +0.6168834114903214 0.08202132115761361 -0.0572057940733245 +0.6316474792124694 0.06485636876613343 -0.07611603924582067 +0.6021616185446172 0.0648399127088327 -0.0761300579266229 +0.6169141548506891 0.04345279775447335 -0.09006583351809296 +0.5874303927488627 0.0434344345748976 -0.09007469063593247 +0.6021684948905269 0.01922530196264306 -0.09813453910038603 +0.5726968946862562 0.01920351961894644 -0.09813880391692544 +0.3087966724917206 -0.06937343439242327 0.07202309768817322 +0.5579450391174698 0.0434158908506107 -0.09008363015358484 +0.5432212268990303 0.0191830455966763 -0.0981428079975086 +0.5874559111623764 -0.0062673785946992 -0.09980340658289528 +0.5284697037227307 0.04339841244981868 -0.09009205179612363 +0.5137470918489422 0.01916400058667624 -0.09814652862691514 +0.4989927750235865 0.04338021576781567 -0.09010081509030736 +0.4842710885296338 0.01914491834057856 -0.09815025268297876 +0.4695163925711805 0.04336228032501448 -0.0901094481451022 +0.4547951519288759 0.01912572968540531 -0.09815399362227095 +0.4400129512011533 0.04340073442516135 -0.0900909332361288 +0.4253174197991227 0.01910771503568914 -0.09815750213873059 +0.4104842288020282 0.0433849160528689 -0.09009855192557492 +0.3958352395594426 0.01908637325703355 -0.09816165420312148 +0.3810844259285288 0.04331057506229786 -0.09013431137903626 +0.3663570800788326 0.01906477048214109 -0.09816585214046319 +0.351600657423871 0.04329441760726022 -0.09014207343992126 +0.3368640805497553 0.01903836009456004 -0.09817097761003435 +0.3220957222319343 0.04328341497434693 -0.09014735707805571 +0.3073556912049312 0.01901011617650174 -0.09817645075554476 +0.2925692929608608 0.04327465264717495 -0.09015156370394445 +0.2778332543846004 0.01898086251674415 -0.0981821106827535 +0.2630277749720096 0.04326474847734422 -0.09015631724506133 +0.2482658452071974 0.01895207810719272 -0.0981876709949822 +0.2334605296544359 0.04327828201922606 -0.09014982143889325 +0.2186876783103647 0.01892188521122373 -0.09819349398026976 +0.2335111203721501 -0.006643769885723952 -0.09977905753065394 +0.381131726364985 -0.00640412052553972 -0.09979472551339756 +0.2039299528635202 0.04331340267218767 -0.09013295262531307 +0.2039159449354725 -0.006672452415807269 -0.09977714356884942 +0.2186463272119396 -0.03185463509320834 -0.09479072857130355 +0.6021210153787935 0.09383757430681548 -0.03456167889748534 +0.4990192282176508 -0.006322217139811736 -0.09979994774766704 +0.1890881546713715 -0.03185652830255081 -0.09479009233305336 +0.2039610509357996 -0.05488275473356383 -0.08359355975704993 +0.2335349508677297 -0.05486543324417416 -0.08360492948940912 +0.2187858865303565 -0.07431618810321809 -0.06691116637607739 +0.1892013599873119 -0.0743434856050043 -0.0668808354321215 +0.4551578116647176 0.06502288324598361 -0.07597384190877268 +0.3663271445349439 0.0647188075901912 -0.07623303709090837 +0.248248042490179 0.06474617706026244 -0.07620979304578347 +0.6169371207874019 -0.006250950988248995 -0.09980443683395297 +0.6022119266237482 -0.03132906236141391 -0.09496572987954466 +0.2040190895923339 -0.08888993675973363 -0.04581025150389984 +0.1744323278204606 -0.08890892987602546 -0.04577337859826375 +0.2483504354058064 -0.07428538109290499 -0.06694536694859381 +0.6316975128447124 -0.03131594187584865 -0.09497005730454453 +0.6169687239389076 -0.05435450638885873 -0.0839379987563649 +0.5874892418525229 -0.05436737909833649 -0.08392966156239262 +0.6022354784353683 -0.07384370441768762 -0.0674322424206194 +0.5727666248133966 -0.07385493378556887 -0.06741994330707524 +0.189260448403997 -0.09761942557533355 -0.02168980752201164 +0.1596589458307107 -0.0976299230796122 -0.02164250723620088 +0.5875091230565239 -0.08851022768227451 -0.0465396561615138 +0.5580461936567327 -0.08851666033774155 -0.04652742033094992 +0.5136655218419031 0.06482076074185811 -0.07614636548678333 +0.646413237381041 0.0434309002818821 -0.09007639480299606 +0.4400799400026612 -0.006361563742131583 -0.09979744739598703 +0.3073096728994886 0.06477385458724878 -0.07618627016667734 +0.3221475454061105 -0.006464577496209128 -0.09979082742314299 +0.1448156207110668 -0.08892234155661316 -0.04574731874207525 +0.2188270620184427 -0.09761110564412867 -0.02172721921762544 +0.2040866385010897 -0.09992825718754608 0.003787270185720204 +0.1300503875643748 -0.09763896705279716 -0.02160166921473414 +0.14489961796366 -0.09992176259571607 0.00395491589864522 +0.572791736203355 -0.09741576416738401 -0.0225869185964935 +0.5433291216458613 -0.09741289566648052 -0.02259928666731281 +0.6022459170543912 -0.09740553634443319 -0.02263098516311885 +0.7056390975838637 -0.09993817015087264 0.003515984484497714 +0.8680650796880691 0.01906583266913889 -0.09816564584737575 +0.8679334411791563 -0.03142213533628005 -0.09493497464532501 +0.6905974566301929 0.09871754492633492 0.01596390690642639 +0.8383632122971687 0.09867670706561971 0.01621442205833676 +0.8679545388071461 0.09867124573955077 0.01624762334020525 +0.5285861526467956 -0.08852393184401398 -0.04651358393927916 +0.5138729515560106 -0.09741473941598269 -0.02259133782041669 +0.4991306679653407 -0.08853145616329927 -0.04649926095763052 +0.4844185277436385 -0.09741760589339347 -0.02257897389164245 +0.4696764561594781 -0.0885387181321559 -0.0464854320353662 +0.4549640627033296 -0.09742107968041269 -0.02256398089661222 +0.4402220062630815 -0.08854588591395005 -0.04647177732467033 +0.4255051279799345 -0.09742476170678216 -0.02254807766477477 +0.4107641321746768 -0.08855211936293818 -0.04645989836764551 +0.3960475445751351 -0.09742851422450406 -0.02253185780191262 +0.3813007440078541 -0.08855801539395433 -0.04644865885560259 +0.3665718409281707 -0.09743323100970609 -0.02251145252997344 +0.3518207367817737 -0.08856234978217965 -0.04644039406657596 +0.337085668823262 -0.09743786478928572 -0.02249138735838403 +0.2793340389455163 -0.06936168080949866 0.07203441701909738 +0.6464553190167194 -0.05434262018559893 -0.08394569453738374 +0.6611964087236024 -0.0312959723777732 -0.09497663982753685 +0.3813603190929007 -0.09995731196327085 0.002921606591817446 +0.5580653824556486 -0.09996174410779951 0.002765811802493502 +0.4991633923106991 -0.09996098213349787 0.002793215155787192 +0.4402853031488336 -0.0999589283057235 0.002865772491184139 +0.1152748984889588 -0.09992062515622002 0.003983549722316935 +0.1743056766221124 -0.006685819436377395 -0.09977624876925451 +0.1151868718932833 -0.08893704568846128 -0.04571872596878167 +0.1301205543929657 -0.09561697694509003 0.02928128617192429 +0.8827886441758031 0.09956051761213994 -0.009365005755618831 +0.8087954654899486 0.0986857414557606 0.01615934507728499 +0.8235545291524475 0.09133912318952982 0.04070828631824114 +0.7940199495421827 0.09135228299898573 0.04067874618118437 +0.3382460110682575 -0.06937221385461077 0.07202427330358946 +0.6759553569798402 -0.05433372575611922 -0.08395145171739932 +0.6907056826424823 -0.03127546347540566 -0.09498339530885684 +0.6908770923800082 -0.09756224384621301 -0.02194558214520803 +0.6761335548570546 -0.09993762814449207 0.003531356800611797 +0.7204953916265786 -0.06938088809138135 0.0720159174603172 +0.1299720268608671 -0.07436975850720362 -0.06685161942376726 +0.2939451851543458 -0.08536591406469997 0.05208320953914285 +0.8975531833336222 0.09866607853371223 0.01627897253451001 +0.8827175241462337 0.09128547836143626 0.04082843911201791 +0.7793419977744843 0.01914300218335772 -0.09815062642392031 +0.8089830745963452 -0.09579380881169475 0.02869749454827852 +0.8237622833345994 -0.08537554733747421 0.05206741703624928 +0.8385381997761548 -0.09579501057731771 0.02869348268320859 +0.8533208044367427 -0.08537167575624076 0.05207376478200224 +0.8680991336973584 -0.09579622582647515 0.02868942518425519 +0.8828831672999824 -0.0853678348930933 0.05208006111426487 +0.8975279455204022 -0.09577600809720087 0.02875684741005027 +0.8828969894065075 -0.09994251929664852 0.003390108647084957 +0.3223920162863601 -0.08858215752476015 -0.04640260087816826 +0.3076031578646347 -0.09744366245830434 -0.02246625573414604 +0.7202077904446441 0.06483607917059141 -0.07613332278171502 +0.1009263134006025 -0.09557155586128961 0.02942919826044196 +0.1006320154806122 -0.07428345801964731 -0.06694750080953953 +0.1151284540428087 -0.05486544252492503 -0.08360492339894912 +0.2645711325291501 -0.08533417895649108 0.05213518870994482 +0.2630152458399766 -0.05472769785950149 -0.08369515569612807 +0.5580117337307451 -0.0543822124869027 -0.08392005103090301 +0.4549358812395378 -0.073901378943395 -0.06736902990443557 +0.3960227724982451 -0.07391371997086892 -0.06735548975449569 +0.3370730629481432 -0.07391776716806452 -0.0673510482241205 +0.1153807271636592 -0.08502451588216485 0.05263869013381221 +0.1449468776250967 -0.08505109719071299 0.05259573049835789 +0.9120903265396946 -0.09994856482314898 0.003206928404686933 +0.8976613275130196 -0.09750203425544418 -0.02221155816349206 +0.08806422084220178 -0.09990035146930715 0.004463157661219504 +0.8087692327017471 0.0780019308972727 0.06257554455453899 +0.7792352614987569 0.07804551469948928 0.06252117749444425 +0.9124124259574107 0.09956212617912591 -0.009347889103525612 +0.9124595450054868 -0.08534940770818859 0.05211025430624379 +0.9123370019699264 0.0912714390345896 0.04085981420118299 +0.897493442532083 0.07789373401191207 0.06271017622110063 +0.08584318235292666 -0.08498127050817883 0.05270847809238793 +0.08548781193724449 -0.05487671023160597 -0.08359752791893044 +0.1002268816306063 -0.03176241886107816 -0.09482166813599846 +0.8679205051049211 0.07791811340791088 0.06267988196344931 +0.6613697353862327 -0.09756530345155191 -0.02193197579805782 +0.6466390804919595 -0.09993707427568745 0.003546996647268051 +0.661398910674306 -0.09578390515926452 0.02873053275595529 +0.631931020867861 -0.09577851333755304 0.02874850227139104 +0.7054931160248761 -0.05434506642019631 -0.08394411090591437 +0.7202281813196951 -0.03125989644318251 -0.09498851969770614 +0.7054381947902207 -0.006152843060005261 -0.09981053312290716 +0.5138419902278774 -0.07387951690799048 -0.06739300395027624 +0.8976058292758049 0.09389769892865141 -0.03439799610303395 +0.08551919201596951 -0.08895973981763439 -0.04567455190342645 +0.7349833560200217 0.04341074874930581 -0.09008610821333468 +0.2336337406662417 -0.09992976408875587 0.003747298915966142 +0.2189012893542892 -0.09570362514835222 0.02899682971401678 +0.2483131448703216 -0.09758890031181749 -0.02182673901273734 +0.3223588223263627 -0.0999568493412326 0.00293739166168375 +0.292948962709726 -0.09995400359864168 0.003032682740203308 +0.8680393350634683 -0.06935860182344036 0.07203738163687973 +0.7644967750032869 0.09136055926526644 0.04066015507518066 +0.7495925941423994 0.07828570009432567 0.06222016683312009 +0.1302158594743224 -0.06889626222333967 0.07247968716580404 +0.2498475341293026 -0.06933933884948579 0.0720559233367819 +0.7054520048121338 0.04340690431164725 -0.09008796067222025 +0.159765524248818 -0.06895815310492372 0.0724208058527237 +0.9254434520865231 0.07799641291293195 0.0625824222343257 +0.07056087902987562 -0.03177281122207685 -0.09481818637290142 +0.0853898413498653 -0.006517675207973955 -0.09978737349927275 +0.1150270112073463 -0.006576989598487035 -0.09978348163810177 +0.1002117503109685 0.01917199010875767 -0.09814496826261497 +0.1298036092724912 0.01905094949318165 -0.09816853530234748 +0.1150419794689635 0.04357258713672833 -0.09000794215074699 +0.1446477811512045 0.04362910480843064 -0.08998056019838382 +0.1298642054837206 0.06509221112468909 -0.0759144521873069 +0.1001903346564231 0.06507394807742282 -0.0759301078730755 +0.1150190313733932 0.0822829509749104 -0.05682883052518758 +0.1446805854217007 0.0822976770490078 -0.05680750260605738 +0.1298392105561054 0.09404924597822582 -0.03398145569170302 +0.1594814091403302 0.09405464290482339 -0.03396651510011229 +0.1446550933837539 0.09960073836177478 -0.008927088987418402 +0.1742497606400694 0.09960273321694862 -0.008904804080571323 +0.1594553591257337 0.09859807972121916 0.01668588251451241 +0.1890288323751637 0.09859573564305689 0.01669972793204855 +0.1298983690104298 0.09860082838037845 0.01666963235056961 +0.1742425150806481 0.09112601049239795 0.04118313018384323 +0.2037979046852148 0.0911216037926721 0.04119287950910066 +0.2185923572066714 0.09859222641434004 0.01672043332762378 +0.2333447356062046 0.09111547861728117 0.04120642615349916 +0.2481379623834646 0.09858766576991904 0.01674730300790949 +0.2628791438139127 0.09110823081091624 0.04122244872038552 +0.2776648110682935 0.09858279548027918 0.01677594811906164 +0.2924130544655634 0.09110271047633063 0.04123464737166885 +0.3071846038996605 0.09857813354790235 0.01680332069002819 +0.3219200959393006 0.09110174291330227 0.04123678501239617 +0.3366880444028452 0.09857348305006125 0.016830580482541 +0.3514137059124188 0.09109628418593145 0.04124884249910557 +0.36618613755209 0.09856887937653079 0.01685752112426154 +0.3809077157173356 0.09108232059226899 0.04127966661114323 +0.3956724744961088 0.09856460349092683 0.01688250392200097 +0.4103978127232458 0.0910697914277178 0.04130730067811234 +0.4251418308643158 0.09855822355079946 0.01691970952796294 +0.4398791529348914 0.09106010037217749 0.04132865979207364 +0.4546276911612117 0.09855524808489741 0.01693703264814499 +0.4693641886151724 0.09105091540037501 0.04134889121553026 +0.4841294025830809 0.09855041750026297 0.01696511746271929 +0.4988462069635894 0.0910410992142604 0.04137049980190224 +0.5136036127782492 0.09855459553464313 0.01694082934814298 +0.5283304688101546 0.09103203179291598 0.04139044802431516 +0.4102361884553837 0.0996375838447814 -0.008505991157658047 +0.1002115919256126 0.09404073424801863 -0.03400500407430554 +0.5430912211263851 0.09854418109110499 0.01700130504059929 +0.5578057866429161 0.09103852587519946 0.04137616229751907 +0.1890645729776965 0.09407313652336763 -0.03391526182496366 +0.4988862818944353 0.09963440126316954 -0.008543189388613695 +0.3514595717738555 0.09962307983358282 -0.008674212613925517 +0.2924512109263581 0.0996169609773684 -0.008744202973025151 +0.1890042855155546 0.07768478983429281 0.06296882902199911 +0.4546219490359207 0.07790206070568326 0.06269983203971156 +0.5430506791076256 0.07757344707958208 0.06310594510972227 +0.5724905189462759 0.07733453116742017 0.06339850383972258 +0.5873041564756322 0.09103023610243077 0.0413943971466636 +0.6021155251544981 0.0772260514454893 0.06353059875476258 +0.159481944461468 0.07768843489015598 0.06296433184206753 +0.3661266354950013 0.07795850471703897 0.06262963789040629 +0.3073286536874044 0.07753398052000632 0.06315442870237431 +0.2480640570053399 0.07764966523030144 0.06301213763730061 +0.2333903569688322 0.09960943136437655 -0.008829563028007551 +0.6167935130943158 0.09102073327363264 0.0414152884129789 +0.6315080786587789 0.07752692714985718 0.06316308705803365 +0.1742411686291132 0.05918580983602787 0.08060421771876176 +0.6197948999031327 0.05897731137438855 0.08075689904304412 +0.07295751788005778 0.01885972221659757 -0.09820545238383038 +0.646291142380681 0.09101907013212884 0.04141894339891605 +0.6608712917548377 0.07773177826255613 0.06291081503319447 +0.1744911846938774 -0.08507148073300147 0.05256275455010478 +0.1896873169393717 -0.06882071893514428 0.07255142069766705 +0.73496833521547 0.09137951288562048 0.04061754085105007 +0.7202103414004235 0.07809206813222401 0.06246302021862284 +0.7644651476729036 0.09954960051272979 -0.009480350086147095 +0.6906801822260111 0.06484829338187906 -0.076122919317757 +0.7349396692334554 -0.006218671149454757 -0.09980645334413472 +0.307606940473919 -0.07395172165305451 -0.06731376430232638 +0.1594979930905945 -0.03181998388795129 -0.09480236613803751 +0.8680659423818711 -0.0975151471513321 -0.02215391784886023 +0.8829042369281008 -0.08865568916743814 -0.04626195821889291 +0.9125096879212748 -0.08863529377026785 -0.04630102264808326 +0.8976606664844017 -0.07392343982867924 -0.06734482195310669 +0.9255074217922548 -0.07374004622788574 -0.06754558151581251 +0.9124711947588831 -0.05428784689631318 -0.08398112692362768 +0.8680875553120588 -0.07400318504296211 -0.0672571825420684 +0.602076290020498 0.09862528981280699 0.01652429149282443 +0.6612144396157191 -0.07383844054512012 -0.06743800633073875 +0.7056872155412328 -0.08877645193551864 -0.04602979015529562 +0.6466840229367061 -0.08538778754082105 0.05204734132387173 +0.6172120839565814 -0.08538283048610734 0.05205547289364163 +0.6024727769307441 -0.09577195102415374 0.02877035622002443 +0.5877754987605429 -0.08537215715531088 0.0520729755501729 +0.6761986477794916 -0.08536506575489503 0.0520845999184255 +0.8237580253561302 -0.09994060940080154 0.003445953075191212 +0.3223143890399492 -0.05442825432894012 -0.08389019686890842 +0.3517859272838286 -0.054426127431575 -0.08389157676907712 +0.9251775958150403 0.09398531494410753 -0.0341578772006827 +0.9124389137272173 0.08202133268447451 -0.05720577754617757 +0.9404851416567763 0.09962604110608965 -0.008640135041059021 +0.9421339196048667 0.0820293522615848 -0.05719427740206913 +0.9258357083834465 0.06488230665483481 -0.0760939306590741 +0.8970827715564786 0.06488317936812417 -0.07609318652207848 +0.912451217783132 0.04313000421916846 -0.09022085532765976 +0.2038725173174951 0.05942695860140237 0.0804265913202046 +0.7644531935432658 0.05967854882895201 0.08024008231345724 +0.8825406091389516 0.05967191516382152 0.08024501567500431 +0.8530647798538387 0.05984378200063445 0.08011692552676083 +0.5577722580415555 0.05905428892227576 0.08070062552350124 +0.528290133800308 0.05907355861328337 0.08068652101040778 +0.1446202606938243 0.0594397784506385 0.08041711719366103 +0.129948596943183 0.07769793847499931 0.06295260405046976 +0.1151539046328138 0.05948601546824341 0.08038292084586071 +0.1004055988388861 0.07770699355783495 0.06294142635977197 +0.08559121583020143 0.0594841808975034 0.08038427845638159 +0.07312320766441294 0.07789738337481973 0.06270564299452132 +0.08571254433480618 0.0911612842077659 0.04110499071391373 +0.9421542826042462 0.04312797560627335 -0.09022182507633446 +0.9257431935848242 0.01846136699202497 -0.09828111684746858 +0.1889906446674649 0.03682429455317358 0.09297296021242474 +0.05605573809044826 0.05914819841422097 0.08063182141283892 +0.5367876665790662 0.03623071847089279 0.09320587448805417 +0.9419562879475231 0.0912568170119516 0.04089246078248634 +0.942191444705632 -0.08863282251462994 -0.04630575313165861 +0.5871936279187961 0.05093513754359216 0.08605586420119984 +0.6151970130197864 0.03420505997677156 0.09396815349886078 +0.9421697858242821 -0.05426852804428042 -0.08399361204226874 +0.9273007257969291 -0.03104889482227576 -0.09505769895340019 +0.9538646824351047 -0.03059481639410179 -0.09520481715654519 +0.05602615504805272 0.09115927521659326 0.04110944589732885 +0.07082869498653326 0.09862185822214886 0.01654475991999799 +0.04539174150984777 0.0985345303488694 0.01705714890970164 +0.05697971877232472 0.09964535988947498 -0.008414407435881191 +0.5135352290434029 0.03673023808996845 0.09301015863793713 +0.4988125750753292 0.05909067661622306 0.0806739855036117 +0.4680754830482144 0.0505917314434802 0.08625819792663639 +0.6757675012951384 0.09098363892788525 0.04149671610429199 +0.5730173220644414 -0.09576529966979731 0.02879248824179527 +0.5584244711860801 -0.08541588911548226 0.05200121043410086 +0.5877199511694131 -0.0999344791438489 0.003619375394682016 +0.2484364288056489 -0.09571594201424805 0.02895614691779804 +0.6904964165624852 0.07749464513511173 0.06320268962143229 +0.6757263983170428 0.05896530400643618 0.08076566673673016 +0.7052197234358698 0.0589447954903442 0.08078063557933608 +0.6904512546553759 0.03657245733112819 0.09307231255729498 +0.7349391812715736 0.05088614393738483 0.08608484393424753 +0.6424813012183476 0.04879582371408775 0.08728669765814073 +0.0563429154046575 -0.05511646470866271 -0.08343965075441495 +0.04560626267694144 -0.03124125768333703 -0.09499465152503764 +0.04458082478887465 -0.07510308247000716 -0.06602671431703462 +0.7054781111190428 0.091378249651002 0.040620382700304 +0.2343728980096851 -0.08520296395730588 0.05234935465590799 +0.21939947490968 -0.06890329307736526 0.07247300327083672 +0.2630170402682018 -0.09994221433459816 0.003399087215304199 +0.2781879440188358 -0.09749254709063115 -0.02225316296127517 +0.6318805571158409 -0.09757905069790643 -0.02187073078100979 +0.646554643511013 -0.08873774779780495 -0.04610436113615679 +0.2040267436983628 -0.08509077621076475 0.05253151248393248 +0.2052447790974107 -0.04860641947854163 0.08739231079148811 +0.1892609288972375 -0.09565732711597703 0.02914919842854972 +0.6169736634389082 -0.08850561434521467 -0.0465484288604474 +0.6610849169115409 0.09858635451281342 0.01675502025883209 +0.2927590177999495 -0.05452950549908645 -0.08382441786272721 +0.2778249064779391 -0.07412619846358215 -0.06712158148716128 +0.2778117869804183 -0.03164434615456832 -0.09486113722937259 +0.455562182638499 0.02569635739676858 0.0966421089201676 +0.4404440679959906 0.04794461533579429 0.08775712996846878 +0.8383408848586762 0.0779701703483615 0.06261511427640687 +0.8234258337694697 0.05967290442662363 0.08024428002849202 +0.8364068403902201 0.03768074927037066 0.0926291592017517 +0.8106682072447593 0.03731242017716271 0.09277814020836407 +0.1452710678536042 -0.04892901118601108 0.0872121084733032 +0.9123236309410846 0.05971570745032587 0.08021243222660124 +0.935754471336872 0.06058860382043282 0.07955514494418719 +0.8973803665471296 0.0370483897916121 0.09288388888202719 +0.7497284109335716 -0.03131167974066575 -0.09497146261808324 +0.1006161161676347 -0.06886951884532809 0.07250509895181856 +0.07104623107030576 -0.06883888000613728 0.07253418917655752 +0.05781188078842985 -0.08515720675343261 0.0524237554735745 +0.04515226240102038 -0.06861545905156512 0.07274557566713588 +0.04360381945476442 -0.096033081084894 0.02788632886097015 +0.0859531207303007 -0.04842585814086597 0.08749249261119908 +0.2185399202676807 0.0776788272544441 0.06297618435864652 +0.2332757351622617 0.05951093497016653 0.08036447361226608 +0.2627900318385171 0.05913527327057477 0.08064130117510782 +0.2490534995843388 0.03884413791112338 0.09214734369444205 +0.2944212330735545 0.05206367682735805 0.08537782824139076 +0.7940352921765834 0.0995536603172795 -0.009437622445919849 +0.1614538096337912 0.03732151905655149 0.09277448040981671 +0.174480721235039 -0.09992381532830827 0.003902708064171277 +0.7522872474382039 0.02769770115573829 0.09608765451756753 +0.8531450606367773 0.09131110214849089 0.04077110035831585 +0.2777414389278518 0.07738392673677057 0.06333820239632734 +0.3246853395512019 0.05883248320288588 0.08086246916946176 +0.1150694879978111 0.09959911741603122 -0.008945155669278683 +0.8384912216981033 -0.06937097427158237 0.07202546722244473 +0.6314186457658006 0.0986485870832377 0.01638463507316738 +0.8089611941975231 -0.06939123187156616 0.07200595072177397 +0.7792668046295212 0.09388435676647028 -0.03443439493509545 +0.7941274052055919 -0.0063990700847085 -0.09979504948669042 +0.7794110047530025 -0.03149633693043596 -0.09491038278273067 +0.7350558836381073 -0.0543721542569079 -0.08392656815015739 +0.7201391884854557 -0.07397848426245118 -0.06728435082714451 +0.7498598473011356 -0.07416771181047511 -0.06707570741183659 +0.1742984646019959 0.08232236240187475 -0.05677172402327059 +0.203892497158875 0.08236973686001703 -0.05670296685017068 +0.1890890356311779 0.06518094969702386 -0.0758382739557939 +0.6908774234700151 -0.09578708017948911 0.02871994552028476 +0.720397073474242 -0.09578607478187845 0.02872329852019767 +0.7351919166100787 -0.08536717986227321 0.05208113480294278 +0.70568702207497 -0.08535191650914058 0.05210614501396835 +0.6911402606609748 -0.06930907803758557 0.07208503105069647 +0.233523062979173 -0.0888537081370829 -0.04588048114710751 +0.1446996998374535 0.09112194689027468 0.04119212054417642 +0.8532529461082343 0.04343269540748482 -0.09007552924985036 +0.3823700598927924 -0.04889486560561279 0.0872312565392077 +0.397093126015194 -0.06934594350225264 0.07204956710336562 +0.4263003124092408 -0.06927404650048953 0.0721186971696523 +0.4117681161827684 -0.0852979922120904 0.05219437253752712 +0.3822996482332752 -0.08534333288972518 0.05212020271711876 +0.4405855508667659 -0.08542761040661233 0.05198195244713363 +0.3967349088267623 -0.0958140471554093 0.02862985098984983 +0.7645472518723978 0.04341667531762989 -0.0900832520747531 +0.7054362796229149 0.08203387912356205 -0.05718778432445877 +0.6759151478005192 0.0820296134304061 -0.05719390282589693 +0.5286209446119414 -0.09996154885503464 0.002772859625463116 +0.5139066329571441 -0.09600821276846543 0.02797182655825453 +0.4844889821856969 -0.09600542276115669 0.02798140097371072 +0.4994322159964278 -0.08586351908117595 0.05125871721957675 +0.5285231261566266 -0.0857115209860598 0.05151247586998932 +0.513809143036262 -0.06982043996296021 0.07158984678974155 +0.4848042881182353 -0.06990830235899126 0.07150405066346842 +0.4697248535966994 -0.09996004334639558 0.002826611785640232 +0.455330974490136 -0.09595766816402136 0.02814473166551002 +0.6317101129198254 -0.07383850087508755 -0.06743794027489049 +0.6760514553309326 -0.08865870988218016 -0.04625616890780526 +0.5726806869181211 0.06482437201186818 -0.0761432911901431 +0.7201400716089706 0.09871094694654156 0.01600465410176237 +0.7496833031170433 0.09870277767122078 0.01605495811223314 +0.7792426678382364 0.09869387921703272 0.01610956874325805 +0.6168437605487275 0.09953893136303588 -0.009591722634898988 +0.587348919453059 0.09953645349481512 -0.009617402231086562 +0.5726285110731911 0.09383524017951035 -0.03456801557008454 +0.5578714177189571 0.09953666500728056 -0.009615212906036496 +0.5431410338089677 0.09383351434135598 -0.03457270001533787 +0.528393029668088 0.09952962321942052 -0.009687832667846284 +0.5136561012017993 0.09383044996251022 -0.03458101588780851 +0.4838732801091822 0.09415627040856282 -0.03368377566054018 +0.4986520687553757 0.08234747808312437 -0.05673528754971946 +0.4690435585830808 0.08275790346049904 -0.05613492152682431 +0.4542187312768707 0.09437730187955819 -0.03305941454313344 +0.4391506291433197 0.08312884865452264 -0.05558412112621258 +0.4250398860597128 0.06558689319638793 -0.07548747870240205 +0.4101784836461408 0.08257071441132198 -0.05640990269096292 +0.5727636905240454 0.09868384891544277 0.01617089865264349 +0.587380365300049 0.08201795133890408 -0.05721062539571792 +0.5579729468057695 -0.006287599357251067 -0.09980213471826491 +0.5727394520317902 -0.0313540433921724 -0.09495748502862622 +0.5431720061532369 0.06482299406525788 -0.07614446427952293 +0.3956356836594934 0.07764582057191823 0.06301687510273325 +0.3827292974397289 0.05958211576058893 0.08031171447237184 +0.4084778606042422 0.05919118294126527 0.08060027209639969 +0.2038223664773965 0.09960588002957887 -0.008869535699975553 +0.6611532548706298 0.06485991890279318 -0.07611301412979973 +0.4695497679337849 -0.006338198648977802 -0.09979893405185297 +0.4843027656994869 -0.03138721958193307 -0.09494652414341201 +0.5137830026033889 -0.03138358494174724 -0.09494772559784746 +0.5432585098382064 -0.03136888387689207 -0.09495258355788989 +0.5285378725221619 -0.05439122095666978 -0.08391421263911572 +0.4990665526051146 -0.05439948919406867 -0.08390885278338875 +0.5284944747586675 -0.006306328017828638 -0.09980095303618874 +0.4548293783478164 -0.03140750886208869 -0.09493981455152428 +0.4253629329424969 -0.03142400667401509 -0.09493435523850918 +0.4695881958071348 -0.05440829272478151 -0.0839031446536689 +0.4401099022051559 -0.05442691570440844 -0.08389106535802976 +0.4107744586873229 -0.09995967701534539 0.002839537108021642 +0.4249808618186163 0.07791382995494439 0.06268520640272321 +0.8384565770016568 0.06490996447374002 -0.07607033923953416 +0.5578913445606931 0.0820163759645073 -0.05721288380818249 +0.5285209726693785 0.08214784097842201 -0.05702396182819894 +0.6759260737716617 0.04342353353895954 -0.09007994635317484 +0.6611471477842898 0.01926320234972971 -0.09812710652634861 +0.3518420549800655 -0.0999576903184764 0.00290863304587736 +0.3371350579102519 -0.09595945625630534 0.02813863456165248 +0.3079120890045516 -0.09596322909563187 0.02812576508362527 +0.3808580601411213 0.09963034461019175 -0.00859036860992796 +0.3661203596244694 0.09420519419237088 -0.03354670456509393 +0.3366892700862085 0.09418163219346906 -0.03361279752377232 +0.351514585357326 0.08258779250005152 -0.05638489629296514 +0.3220126858565896 0.08251639538795305 -0.05648933078182997 +0.5135790949748538 0.0775911230220153 0.06308421060917295 +0.4841010879696515 0.07793707228113556 0.06265630665978529 +0.3219649288738551 0.09962036414024861 -0.008705345976138376 +0.4106047016805047 -0.006381541747038941 -0.09979617189517241 +0.2629219962719023 0.09961314561934609 -0.008787560515806037 +0.2777191696371618 0.09412887384617916 -0.03376025930661804 +0.5587903820647458 -0.04891573380232724 0.08721955621636618 +0.4844138452531954 0.06495282983442839 -0.07603374182887351 +0.5433340534076662 -0.0960144594303402 0.02795037710478262 +0.3667244339538323 -0.0959138286664213 0.02829377087891219 +0.7351512888116912 -0.0887761978045174 -0.04603028028779751 +0.8976506493080573 -0.06934282536062855 0.07205256810832887 +0.9271808797959966 -0.06930154369329176 0.07209227449405915 +0.9414044623132087 -0.0854495951859307 0.05194580524508759 +0.9523301639838256 -0.06891180853345412 0.07246490629710743 +0.9538757399383631 -0.09622039202811507 0.0272329975940191 +0.5433024364734461 -0.07386603076982907 -0.06740778514615849 +0.6171732347686648 -0.09993699299680625 0.003549285950201713 +0.3233400338874338 -0.08537424403559707 0.05206955401528151 +0.7942159934513614 -0.09994005986130867 0.003461854260080685 +0.6759324877252008 -0.006195097754827197 -0.09980791934414891 +0.48438845309249 -0.07389340481400915 -0.06737777619507022 +0.4411331260156831 -0.04888049560690823 0.08723930965581414 +0.3959393768927056 -0.03145393820872903 -0.09492444243271307 +0.4106728270790831 -0.05443014804116911 -0.08388896819139222 +0.307212839016469 0.09415480040028681 -0.03368788449253159 +0.4254773165452158 -0.07391038864121259 -0.06735914526554589 +0.1594757088500332 0.06513683299553084 -0.07587616877065108 +0.21863488146348 0.09409465467954127 -0.03385551595734265 +0.2333847106404385 0.08236129590304579 -0.05671522667829984 +0.2777715003080363 0.06478077739237061 -0.07618038382969811 +0.3368194090128815 0.06480006050878283 -0.0761639820260081 +0.08536402580205399 0.04355457573090331 -0.09001665919651212 +0.07286568681591757 0.06528942627024252 -0.07574490621357034 +0.7939470130514954 0.0598715604897886 0.08009616872558628 +0.3516501884044744 -0.006429298089788583 -0.09979310660598077 +0.6906336965885888 -0.07391290638547539 -0.06735638254576884 +0.1596911578550997 -0.09563064459328609 0.02923661770233698 +0.6464249363453477 -0.00623485850238577 -0.09980544343599315 +0.3665445040781078 -0.07391442660274856 -0.06735471431152311 +0.2794166339861863 -0.02525972008099146 0.09675715240451198 +0.72058684618131 -0.02526149051534748 0.09675669019216712 +0.2206031969728852 -0.02525549533585483 0.09675825523096526 +0.4999006132032613 -0.04893221446970757 0.08721031124294043 +0.3529543425523057 -0.0488965495261218 0.08723031264669134 +0.8088271124860144 -0.02526137798955974 0.09675671957062511 +0.2926185223156465 -0.00649216875166083 -0.09978903619586653 +0.2481759800968622 0.09409911068379974 -0.03384312882282025 +0.1029411764705884 0.02526392191504081 0.09675605536332453 +0.174353400512201 -0.05490449199675415 -0.08357928426696631 +0.08547339437844918 0.08231063476499463 -0.05678872603416684 +0.05563706250660976 0.08228786063921251 -0.05682172112336568 +0.6764705882352946 -0.04888885400611052 0.08723462588885914 +0.6176695093635964 -0.04887735358045615 0.0872410700700712 +0.103937848851758 -0.09774409807550977 -0.02112087335801076 +0.7941191466066 -0.04888783596533245 0.0872351964210934 +0.8676472569532369 -0.02526122736725868 0.09675675889517829 +0.1891107814952558 0.01892719707992807 -0.09819247023421686 +0.05803890249045007 -0.00626696540540487 -0.09980343252918439 +0.3676470588235301 0.02526392191504081 0.09675605536332453 +0.3530232983881414 0.04785712600973324 0.08780487167628295 +0.3088085677329905 0.02525549533584761 0.09675825523096715 +0.808960737177391 -0.09754722605096879 -0.02201223954442611 +0.9246363322405237 0.09871026123165356 0.01600888277109657 +0.1595844468991577 -0.07435836833743249 -0.06686428836228438 +0.8533194798493879 -0.09994159988707607 0.003417105794616013 +0.3676624656980098 -0.06936002848276336 0.07203600800204199 +0.9257197896691109 -0.09749252422180188 -0.02225326315085891 +0.352858138027891 -0.08535197580038328 0.05210604789245474 +0.262881122335502 0.08211310742064956 -0.05707396595405707 +0.2925006673158892 0.08253231047195979 -0.05646607590544997 +0.6316632943890043 0.01924233502486824 -0.09813120065907036 +0.868007465343668 0.0939021655993485 -0.03438580078684418 +0.2185727264298926 0.06515999637136601 -0.07585627774207993 +0.144749271590633 -0.05491340675280354 -0.08357342734865641 +0.925451400207227 -0.02514606084032268 0.09678675335093534 +0.1594779515182713 0.01900743970726591 -0.09817696896815797 +0.1298700699230785 -0.03179084277676646 -0.09481214223686182 +0.8828001492232994 0.08206060652269206 -0.0571494256937715 +0.1446697531603194 -0.006628883603202608 -0.09978004761561898 +0.7058681874317342 -0.04889185580808236 0.08723294352274079 +0.8384936837402841 -0.0975384218214904 -0.02205121920831149 +0.2648347644672129 -0.04882339894995519 0.08727127657467557 +0.8678145646223769 0.06489521618307784 -0.07608292131977842 +0.1741467476999788 0.04349089556870947 -0.09004744306548414 +0.38123486049115 -0.0544337928912272 -0.08388660317044067 +0.1151674254955578 0.09111988460039797 0.0411966822743065 +0.8533244103275242 -0.08868601040724444 -0.04620380458410466 +0.8384788033927497 -0.07410764662952578 -0.06714206364890297 +0.8972186974971381 0.01879758173818563 -0.09821736567835766 +0.8235532592365735 -0.04889131770385829 0.08723324511435072 +0.8529868386893715 -0.0488748903142797 0.08724245008461838 +0.8976430700233426 -0.03124843294988972 -0.09499229146713035 +0.3664960575984036 -0.0314483031018668 -0.09492630948274096 +0.3370076740674928 -0.03145089381521754 -0.09492545116155052 +0.1003660802515165 0.09860857499275029 0.01662374620532759 +0.08616181467761455 0.0996167948287433 -0.008746095588779207 +0.2482007287312107 -0.03175182137108217 -0.09482521731912293 +0.661735320079767 -0.06933189268800262 0.07206308802916574 +0.6323122389934464 -0.06934296329969511 0.07205243535660082 +0.6028821566566508 -0.06935134452501616 0.07204436836125716 +0.543496519663887 -0.06961448098739853 0.07179013885524342 +0.5732934721260688 -0.06946504245398326 0.07193474735387832 +0.9681605200315824 0.06603249664142243 0.07509799855722213 +0.02576691230308493 0.06798640013746142 0.07333382164014765 +0.6906723575894277 0.01928111669983796 -0.09812358808567506 +0.3955023613758566 0.06459465377469269 -0.07633826500338858 +0.749765068518744 0.01922162264841075 -0.09813525983438422 +0.9723889251289501 -0.07893286658462814 -0.06139708928551332 +0.7202113558113173 0.01925244754529021 -0.09812921717570078 +0.971764025799426 0.07821171527140108 -0.06231314142542718 +0.02698354268639098 0.0781999005998152 -0.06232796760828178 +0.02544191805547403 0.02952148618965746 -0.09554308898687475 +0.0515473508113826 0.04337713381728996 -0.09010229887076646 +0.9742164296471714 0.02946345214420972 -0.09556100139568371 +0.9723887975546824 0.0971909377901027 0.02353553932843664 +0.9685284228485403 0.09970400313564176 -0.007688417179624241 +0.9709446618491515 -0.09989391244677716 -0.004605025089575491 +0.03006434580849448 -0.0999308015129276 -0.003719530747805236 +0.05153832954383115 -0.09749279121818281 -0.02225209339562951 +0.2630764581187176 -0.006529850820961372 -0.09978657749545272 +0.3074428018244183 -0.03153730029505915 -0.09489677913448519 +0.7645409746046027 -0.006311837517188325 -0.09980060474344138 +0.2928027670323106 -0.08867603410280263 -0.04622294858399437 +0.8824349575222784 -0.04885066950184615 0.08725601463063391 +0.8827948710881846 -0.006366494755782319 -0.09979713294741788 +0.8827143965207457 0.04329864153545782 -0.09014004460384922 +0.9258965031093197 -0.09582121666229659 0.02860584620942395 +0.2629658022023316 -0.0887996603619079 -0.04598500102870287 +0.8532603153733292 -0.05461324750299504 -0.08376988239920484 +0.4692165026429605 0.09963966512761224 -0.00848157610690938 +0.07405205978155725 0.09414621427810353 -0.03371187234642147 +0.4551974174704408 -0.06937381635479814 0.0720227297758891 +0.9117796369672573 -0.04880345012330112 0.08728243383443464 +0.8828089770347352 -0.05445038343781488 -0.08387583527736064 +0.4703171927487712 -0.08586007687550311 0.05126448282127401 +0.3957061571832213 0.09428246276504867 -0.03332892459947084 +0.4259036581311206 -0.09570652772074775 0.02898724808666291 +0.3807183695031547 0.08214603502922087 -0.05702656336285766 +0.2789440115847684 -0.09585253739598201 0.02850072060057203 +0.4396154544129446 0.09964546548607602 -0.008413156842899961 +0.941176517917598 -0.04872940805418516 0.08732379280979907 +0.2349952864439607 -0.04873989855439753 0.08731793795610979 +0.3366540707292137 0.07794373446133361 0.0626480187892731 +0.07250441195085067 -0.0743543614400629 -0.06686874408002956 +0.9123608405502864 -0.006382046241231929 -0.099796139633629 +0.02919815039072044 0.09967442486347641 -0.008062817630034578 +0.9399744269230424 -0.006020720800887585 -0.09981859005735234 +0.4248271561152975 0.09432901366480065 -0.03319694535685253 +0.1750175853179939 -0.04881832499426321 0.08727411497548684 +0.9414742781105553 -0.09995671299292019 0.00294202781274725 +0.1905751625446908 -0.02496137955012574 0.09683454719755014 +0.1320588115577474 -0.02477206827262131 0.09688314937849921 +0.115658364535018 -0.04897324358316027 0.08718727781588581 +0.426470588235295 0.02428340849165193 0.09700678363922581 +0.07407344674429446 -0.02464746461725288 0.09691492396912493 +0.07342923138322657 -0.09555641589510355 0.0294783205302134 +0.05732885668789788 -0.04862515507365032 0.0873818876773869 +0.02835254395395196 -0.04787961202219765 0.08779261217553461 +0.9701058434498083 -0.04853756353585183 0.08743057203291733 +0.9545730416564759 0.02452613535345731 0.09694569967060887 +0.0514402475992057 0.02607366034514568 0.0965409976963465 +0.06022600929029231 -0.0884673946615627 -0.04662102617698701 +0.6399249111545549 0.02399316643759999 0.09707897797307935 +0.06411446725680439 -0.09986586245361743 0.005177790686689179 +0.9487709089990894 0.07813271539738111 0.06241216856216299 +0.9531859500752193 -0.09749234963982277 -0.0222540279883564 +0.9493472511204915 0.06635980385634088 -0.0748089328365802 +0.9491062860896492 0.01705828534994204 -0.09853433361483678 +0.0458035441525181 0.07816006464776511 0.06237791511630683 +0.07860330159819398 -0.09784572964729096 -0.02064493133408897 +0.9803522084827868 -0.09749279121818234 0.02225209339563156 +0.01959235836282523 -0.09749279121818234 0.02225209339563156 +0.04603711568008912 0.0673572052831283 -0.07391215662153632 +0.9489994251649106 -0.07205842338879603 -0.06933674075640571 +0.04614235978445427 0.01606065466175373 -0.09870185090379963 +0.948552916517075 0.09905529362961774 0.01371308878226253 +0.9770043286338558 -0.06822609995148819 0.07311086981707675 +0.9811154558530613 -0.02947551744109063 -0.09555728057861401 +0.9471872150295213 0.09473808955209198 -0.03201084797408217 +0.01870564969596494 -0.07818314824680306 -0.06234898018587329 +0.02065553715433657 0.09765943563454892 0.02150894305960658 +0.01794663996001775 -0.06801727377709187 0.07330518718298271 +0.9781755757050412 0.02175500220631844 0.09760491728905404 +0.02542763074539088 0.02250295322206635 0.09743519434108752 +0.01771375014051884 -0.02947551744109067 -0.09555728057861401 +0.9763141173635808 -0.02204729538173799 0.09753930882649516 +0.02303970976165702 -0.02183978167437412 0.09758598227417539 +0.0508355758248084 0.09510587375473382 -0.03090101579800627 +0.4396546862947157 0.06617872168124382 0.07496917230859941 +0.412325208046138 0.04022420032230045 0.09155333805182335 +0.7809396966657557 0.04464041110157188 0.08948314755685932 +0.8086295904167685 0.01624751869803366 0.09867126297031496 +0.8380416973098584 0.01621582746316716 0.09867647612113434 +0.8676462777191555 0.04565505222421393 0.08896974882736434 +0.3509281839148257 0.0666021799098899 0.0745932277841002 +0.8968652666950141 0.01611773139716786 0.0986925464997674 +0.1301392465606857 0.04547426965358618 0.08906228606695953 +0.9270353197835751 0.0456472638384956 0.08897374502660194 +0.1650987869146936 0.0166248691324767 0.09860838567955579 +0.1006036907761421 0.04546724555623829 0.08906587214825176 +0.1910096403027605 0.01602129631378938 0.09870824719559029 +0.2184977220061798 0.04549797551639252 0.08905017812396418 +0.07570335356635133 0.04536108512500143 0.089119986289734 +0.2498325238236347 0.01598976503816806 0.09871335985581779 +0.3823529411764713 0.0404170271738389 0.09146837658135826 +0.514533193348345 0.01592568605136737 0.09872371814206191 +0.543944975645444 0.01590877312991265 0.09872644497550274 +0.691003491796719 0.01582048654865528 0.09874063097511489 +0.3235172687750349 0.04018636580847865 0.09156995142025105 +0.7351054013044269 0.06776250321076675 0.07354075848541967 +0.5912538308495628 0.02121862752575693 0.09772292385066665 +0.2751601214638404 0.04455291033045805 0.08952674561876001 +0.6463903414950827 0.0671980233582589 0.07405690823105493 +0.4693410906618556 0.0673909552463748 0.07388138568666068 +0.9496706790641984 0.04449641998026433 0.0895548357652446 +2 3 0 39 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +1 -2.503541930082155e-16 -0.07306820487327914 +1 -0.01150824889312312 0.07280417667649478 +1 0.07123623242397975 0.01625920519091276 +1 -0.07286389135284624 -0.005460393788372082 +1 0.05855994900625908 -0.04917425094414683 +1 0.04969900095266479 0.05356278435360208 +1 -0.04116078541182028 -0.06037178403596809 +1 -0.04875854296352724 0.05132560736237923 +1 0.06944984514603657 0.04009688679024143 +1 0.04665563482725372 0.0275528366322077 +1 0.02297651809823792 0.04235001236537813 +1 0.01985573963200126 0.01447966668228785 +1 -0.003969118687826098 0.02972517116452704 +1 -0.008513706565336083 0.002292220138594796 +1 0.01623453042698919 -0.01410242938413878 +1 -0.01224314338738922 -0.02649510757048446 +1 -0.03450550212999404 0.02144882057249528 +1 0.04871740625483301 -0.003488004852144479 +1 0.01323793920972892 -0.04397369914465722 +1 -0.03369305220905091 -0.008916522986870287 +1 0.03915734447139095 -0.02818109576474569 +1 0.07828726642463173 -0.006766422180493857 +1 0.02831588746977902 0.06799443321897355 +1 -0.03723162283093191 -0.03480413784791668 +1 -0.01683919035646618 -0.0525573204498645 +1 0.02629005051493083 -0.06917579577250926 +1 -0.06136973046791287 -0.04418039696963311 +1 -0.02194967942142288 0.05019951782252414 +1 -0.06724393895343415 0.02559486143473897 +1 -0.0236375297183843 -0.07663098922688143 +1 -0.03418764401364816 0.07135923552761661 +1 -0.05599275549500649 -0.02004242348629351 +1 0.003315594733254228 0.05619567722638206 +1 -0.05341173252383826 0.005654386985016353 +1 0.009750487402022718 0.07935329800422579 +1 0.06813621629229007 -0.02664364452286063 +1 -0.07540677636266056 -0.02851090800560852 +1 0.04694795383579439 -0.06567816069170311 +1 0.03648978553636028 -0.05030998955692086 +3 1 0 538 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402 +1403 +1404 +1405 +1406 +1407 +1408 +1409 +1410 +1411 +1412 +1413 +1414 +1415 +1416 +1417 +1418 +1419 +1420 +1421 +1422 +1423 +1424 +1425 +1426 +1427 +1428 +1429 +1430 +1431 +1432 +1433 +1434 +1435 +1436 +1437 +1438 +1439 +1440 +1441 +1442 +1443 +1444 +1445 +1446 +1447 +1448 +1449 +1450 +1451 +1452 +1453 +1454 +1455 +1456 +1457 +1458 +1459 +1460 +1461 +1462 +1463 +1464 +1465 +1466 +1467 +1468 +1469 +1470 +1471 +1472 +1473 +1474 +1475 +1476 +1477 +1478 +1479 +1480 +1481 +1482 +1483 +1484 +1485 +0.268734849562297 8.678019529639869e-07 2.424041184544146e-05 +0.3687401665273465 3.469446951953614e-18 6.764828177213689e-07 +0.7132177729366423 -1.721067164747042e-05 5.776205234316045e-05 +0.5064582714200779 -5.580027912330254e-06 -6.147645290831803e-06 +0.8454968360563146 5.65459218356823e-05 -2.691232990403858e-05 +0.609574444651921 -1.661898254581851e-06 -8.853883966777887e-06 +0.1533413218253502 -1.231904683002272e-05 -2.046087777082817e-06 +0.9219427229563725 -0.01939383691025429 -0.008696595680282814 +0.07797145070964782 -0.004255908198889047 -0.02164167120828883 +0.4376001690786889 -0.008011534295762228 0.02572006309460388 +0.7793814695249716 -0.01422591480766552 0.02535746621963106 +0.211030723246348 0.02881253820609682 0.01787413356588517 +0.2110464781058128 -0.02173948372900679 -0.0259273219432464 +0.7681683249135164 0.02120444126357036 -0.02857502134857295 +0.4220725252389623 -2.611626058547645e-05 -0.03650835314634296 +0.6617647058823535 -0.0005814005945286146 0.0378661785139183 +0.5580342062526941 -0.02753222054182743 -0.02591531150491637 +0.6611794787726845 -0.002914611459696645 -0.0376680317219478 +0.8971776915532333 0.03410573634478894 0.01609730200334863 +0.5578848714085336 0.03532574806224245 -0.01363764991097196 +0.3187463139547875 -0.006325724685629284 0.03761771812317383 +0.5580176453116135 -0.008521369138748389 0.03670962043835162 +0.3187286071608521 0.004713335298362297 -0.03793645858738472 +0.1029411764705884 -0.000451752497152634 0.03837971120928195 +0.4595128965404829 0.03889524282979027 -0.007292315072507637 +0.8013074300422407 -0.02881028600433828 -0.02855192199975666 +0.2261059685260812 -0.02694427919064726 0.03115725441995459 +0.9431590974011212 0.007815940751619115 0.04170405003947571 +0.8035735709437393 0.03878311397523362 0.01538166553793698 +0.309009594976871 0.04148615003038076 0.006022154071607177 +0.4642573926982453 -0.03701969660635153 -0.01821792453068365 +0.3076152187852595 -0.04212506460356622 -0.006193775793957211 +0.05843555708313716 0.03518365228172823 0.01931097191178937 +0.1115845147823084 0.04104530461183038 -0.005107308717666828 +0.8864318010758006 0.01620246116288059 -0.03848987871775356 +0.8860449981703395 -0.0190780566960637 0.03725107526745427 +0.6507147607929816 0.04171255418282754 -0.001160053679672611 +0.2341387957604846 0.02950281596742642 -0.03398643095243611 +0.40551481853475 0.04238751685148304 0.01151176091537274 +0.114568236782079 -0.04248954567886618 0.000881928213329274 +0.6613862347038606 -0.04469321119953568 0.00142629274746929 +0.7473394638432856 0.04012740222368996 0.02038627025708148 +0.7486788283631677 -0.0418793504786611 -0.01303498968759556 +0.4044601711144856 -0.04397933686857278 -0.004996567605631254 +0.06203039824869644 -0.03684688879791783 0.02238076451015512 +0.9450121244811271 0.02560934646733485 -0.03511186531124386 +0.8738688611132872 -0.03877862002672529 -0.02591525681431658 +0.1812672023921828 0.03812043938356745 -0.02634716266796288 +0.1797748539787944 -0.0457730304722628 0.01089713513280969 +0.1798690211794078 -0.004282581467938851 0.04653872713756389 +0.8205814576289544 0.02812047497730388 -0.03858642487535442 +0.1258623591779811 0.0009728229599732805 -0.04697809614730463 +0.4790592626128262 0.006786356516091668 -0.04593517437749201 +0.8224938637908735 -0.04462707703647815 0.01773032728623708 +0.5283130037215272 0.03652749445647376 0.03226033664799556 +0.3911746510750332 0.00529203334719552 0.04787290619276656 +0.4852941176470599 -0.001988017080359603 0.0488388160043375 +0.5877583753626726 -0.04662116037936297 0.01408531770603676 +0.5283073374024839 -0.04657911403948473 0.01405683221629726 +0.2789696503125934 0.02455763073135018 0.04313608619091011 +0.3516150867302509 -0.03599838770881496 -0.03412207508414088 +0.8237525442012668 0.0026782102445101 0.04762485565086223 +0.7314465573052102 -0.01647744393668913 0.04629688701842054 +0.5889270286845707 0.009448834276771316 -0.04782476549828384 +0.6939026528084232 0.03779912330428898 -0.03106816821183436 +0.2517769138514636 -0.04796508976564125 -0.008297603988705837 +0.7303568306376518 -0.008409918601763674 -0.04818014082516547 +0.2630112019069015 -0.01736610980638262 -0.04788508141483301 +0.04833009961720028 0.03217683440172892 -0.03856484949953327 +0.3540277212414758 -0.04695369053711403 0.01657178241020443 +0.2592452703997306 0.05071982062944183 0.004529542450345628 +0.3512094597032518 0.04240039850608447 -0.02384702912098288 +0.1625512804846506 0.04415604841002103 0.02431996984097432 +0.6955041925132073 0.04188458609078394 0.02548264274420775 +0.3558612329816084 0.04165079109643485 0.02746120835801591 +0.2780149177056676 -0.03594641026352742 0.03422398611803004 +0.6169722056038243 -0.03600321566815077 -0.03593220631695931 +0.5305250122069758 0.0095459078049508 -0.04903210459152302 +0.04851170375672282 -0.04481441066774208 -0.02513842675221958 +0.162813434878746 -0.03275640350798183 -0.0377648634742356 +0.9548404726936063 -0.0529386256336378 -0.007371158504887478 +0.6144801641548404 -0.01669330229997677 0.04787575728733103 +0.5979047533223412 0.04734984991685315 0.01636945682919132 +0.9459121886101159 0.04819353220415774 0.0106322923998485 +0.8511715459877562 0.05033786481049563 0.002442180072025555 +0.374033694297017 0.006093538376214177 -0.05016160722520736 +0.7088363579723462 -0.04899521633942801 0.01604583858851599 +0.50866876543314 0.04877758159149357 -0.01252062540231561 +0.04874935533433607 -7.70665217876334e-05 0.05199864647260616 +0.5100927136758463 -0.03432477884490585 -0.03742159034329975 +0.6979442353016321 -0.04130319063670398 -0.03128480995156242 +0.2822771082770941 0.0370957853303313 -0.03626328129780151 +0.9334678736871137 -0.03932530979038554 0.03422299033281705 +0.1423994580578325 -0.03468342706871247 0.0400569315053062 +0.9520931434459139 -0.02426012515354296 -0.04678501939032011 +0.4547553706129471 0.03472902827680569 0.04073334257998007 +0.4812660235555793 -0.04521709968995869 0.02670742217891111 +0.841210743538001 -0.01356961695375251 -0.05046481767077881 +0.6299190375203313 0.03204368616542386 -0.04233161763511659 +0.4006741347184844 0.04176039630104628 -0.03519897364963754 +0.8600752188461136 0.03145818862355088 0.0439777953265301 +0.1858226137266308 0.002844555460496615 -0.05534050969484762 +0.2352647267039581 0.01254541961006938 0.05430587283816504 +0.4057196570352815 -0.03747115791382208 0.0403177313895572 +0.8975181846885759 -0.05403371551590063 0.01011271099004318 +0.7358994467281487 0.05247156443035566 -0.02181920572658875 +0.6347831599860397 0.0365306248844201 0.04173013286461573 +0.09310099420530685 0.03223750161189939 -0.04552608619039482 +0.9071070320356132 -0.02190130353689514 -0.05167600582002382 +0.9100081605704899 0.05179312627328979 -0.02372696825355097 +0.120214037536608 0.04099953357100938 0.03896573878847967 +0.1017075108026475 -0.03676889072117456 -0.04195498497611769 +0.3944726665666396 -0.03330904552686795 -0.04702676039505619 +0.356999462294322 -0.02198693938712605 0.05266755231793939 +0.1393503677274761 0.04221316487118945 -0.03930237291388224 +0.7542546958145712 -0.04959002657179359 0.02949173760473526 +0.7778950818339492 0.02394992431152644 0.0494497239921077 +0.7729109898541409 -0.01165226898378192 -0.05672261143629933 +0.04736508697858727 -0.01030448814278487 -0.05469258926202186 +0.6905917673731546 -0.03033406117297331 0.05067508192383055 +0.3025681851256061 -0.03363862292283002 -0.04781183351632404 +0.4394092834443714 -0.05532647433088011 0.0188037670785289 +0.7864561424122792 -0.05808047584783331 -0.001063487640783466 +0.6999616237422001 0.01170390422456081 0.05642251070962048 +0.8344887750870277 -0.05496773685553945 -0.02198741987608077 +0.5949963738112485 0.05208683641250741 -0.02734203562729853 +0.7765224753200288 0.05880238509611221 -0.01058770001875797 +0.5212430818319755 -0.02595302182596094 0.05144826600772862 +0.9579576098898457 0.00378989317611223 0.0006373392816911507 +0.6281398418964813 -0.05191293300450342 0.02755269641442667 +0.3192333406294888 0.03441689441527567 0.0456476299724666 +0.219148081984858 0.06001107223655516 -0.009176799448100927 +0.1399959571462194 0.003344547020062053 0.05842717815978062 +0.8476977671631707 -0.03195737487042824 0.04902237785978299 +0.4458286974252125 0.03398684785946528 -0.0477403846109295 +0.4898164115464639 0.05287303871162691 0.02524447406506961 +0.58912987205081 0.0207633669955617 0.05214716961675449 +0.04296973642671647 -0.002410631485835985 0.004011321494047509 +0.9029606252337218 0.01648710433678744 0.05520717391850714 +0.09967262740345441 -0.04224140983881123 0.04010027151526303 +0.2265431324221692 -0.002021473075788547 -0.05942327295723596 +0.1930840634678362 -0.006681432561259849 0.007759672973460688 +0.3176286934627941 -0.04763321867215061 0.03617505818228198 +0.4514388452337091 -0.02262117017501113 -0.05473495472034145 +0.07316784502189151 0.05647737722385669 -0.01426589626629138 +0.8577926258380928 0.04584718302071859 -0.03799605472059753 +0.212507541696921 -0.05913457452119058 -0.00955949309912443 +0.4965845240254999 -0.06062555265964062 -0.008863013029986834 +0.8048318851706577 0.001963414500434111 -0.002057485262335561 +0.6572245446072694 -0.04384878845799868 -0.03952059514132403 +0.3292973496669878 -0.008444283902030884 -0.001277829996927486 +0.6944022987418462 0.007882010735652123 -0.05899281732135411 +0.804125152658 -0.03245994052811852 0.05165222396951127 +0.886233794565375 -0.001857827755913932 0.0002823274450645986 +0.3529411764705888 0.01748931642461843 0.0599898593339787 +0.6270737657493971 -0.004651334197335421 -0.06019932648759305 +0.2875717580111126 -0.009219261133851808 0.06163764324822293 +0.1902111225928458 0.0343190161668475 0.05197411566472911 +0.1489986742675229 -0.06000198267695354 -0.01120967353261611 +0.4558349629559833 -0.03008807376193247 0.05444307028888582 +0.9223514173367089 -0.05280492931483455 -0.03101178023482468 +0.6732575150742871 0.007811361212376444 -0.0002875218739784052 +0.112703327814296 0.000604579009730895 -0.001073549816720996 +0.4303570521575735 -0.05057405892667447 -0.03500934554283734 +0.4662185288383884 -0.000400716918821805 -0.001573032902978108 +0.8581404584503164 -0.06077839411799132 0.009684546813157703 +0.4282851352744925 0.004349042319831744 0.06249349237103972 +0.4085456591815189 0.003920417820476682 0.0009372453394975791 +0.08291163039960316 0.03204358755908181 0.05108571247577859 +0.7526435754688109 -0.003943529471808108 -0.002098239974377782 +0.8170234717642136 0.06007439974763198 -0.01530358427553843 +0.7263832749721135 0.03067219766107749 -0.05353905809137002 +0.2386632294267323 0.04842887589691992 0.03815984884555147 +0.2300556136076936 0.0008100824128928902 -0.0008731165840700321 +0.2362465799850023 -0.04534747721866203 -0.04389506176631773 +0.08773603432770759 -0.004321776147200085 -0.06017050755095957 +0.7384505766900029 0.02184373525110881 0.05465068677803814 +0.288397399440302 0.00857106464140019 -0.06212608315045254 +0.5594943304861065 0.05782030751777437 0.01930157967292922 +0.5301863324571821 0.01090529361302645 0.06214076886523799 +0.5699404783348339 8.129876104468585e-05 -9.671115148108414e-05 +0.5851582937910201 -0.05612930341462165 -0.02411901136358317 +0.1552782650368885 0.06202069130270713 -0.009644484367483917 +0.7668164008522704 -0.01134807651690735 0.06236022520166416 +0.5580195643529845 -0.04783909019658485 0.03998361935854606 +0.5030717417873399 0.03765642224694317 -0.04979608497144083 +0.5358436926236647 -0.05924067549560288 -0.02194956158502612 +0.438561037430377 0.0622347227566528 0.01546460519369801 +0.3194652144508909 0.04273233562641576 -0.0464416881722017 +0.07927809362646407 -0.0608807290174062 -0.004846786389564674 +0.2520340349008132 -0.02271038410772956 0.05877835502441537 +0.5838749099446431 -0.02849129655593968 -0.05504291577893136 +0.3742005561707566 0.06239918072399727 0.0002311695738000889 +0.8083961580939044 0.001634400289339536 -0.06380287068500931 +0.1934055772559949 -0.04044499923141079 0.04662922806576497 +0.5615923211674607 0.03652468351449987 -0.0521589472475372 +0.3427326881428819 -0.01201703767022607 -0.06252098285616672 +0.08972328538505854 0.0577399608899718 0.02207184755385202 +0.8676470588235292 0.0002038364676170469 0.06468944587433938 +0.6199022552412675 -0.06324019508874715 -0.008555151405867378 +0.9286965586479903 0.04360527819634483 0.045037585137041 +0.6525507174055883 -0.03507564046080185 0.05187681955998921 +0.9181809749849643 0.0141229851186263 -0.0605555415349237 +0.2477542834691543 -0.05786153920463704 0.02803621151136409 +0.8234831161807841 0.0405511579286245 0.0475518709079301 +0.0352964224628969 0.03560408609850739 0.04970490226136639 +0.7713076175616266 -0.04658432132566608 -0.04275998297359375 +0.6906274604359401 0.06483253524560226 -0.004482759365767127 +0.2810330030126055 -0.06373898546650712 0.009162786817761118 +0.6654675560937557 0.03209777235443492 -0.05546146206504898 +0.3717455554773886 -0.0609061635352399 -0.01387477715399459 +0.281821228307544 -0.05780048023685415 -0.02824244643181026 +0.03766209230627678 -0.06334330074140523 0.007405412909819187 +0.9158176243046099 -0.01873826658833458 0.060697870498496 +0.7341845516273919 -0.04561897868893568 -0.04732532980236327 +0.4310342340975409 0.05915283409541484 -0.02129631879608611 +0.7892444837061878 0.04725076493872918 -0.04483581245065932 +0.1945073220375799 0.0619823207670329 0.01843698687217403 +0.4168696648099225 0.0388187394377304 0.04854405771630308 +0.85622020657968 0.01817527924034846 -0.06286964105813714 +0.2855306588589384 0.05748272467931446 0.02888960119090647 +0.965583838746087 0.03792278835253626 0.04092158988926645 +0.9236453737639214 0.01797953404787916 -0.00515414966860777 +0.9611095108687173 -0.0236089805955868 0.05792592709162742 +0.5396746132852901 -0.02540083419209991 -0.0583107789773686 +0.9659792256084522 0.05329256474723523 -0.02073588558771474 +0.3374097500960444 0.06473597585277739 0.002099132605471092 +0.9624695716904679 0.00805536164625926 -0.06403800753622488 +0.6384888343969758 -0.0184082014486951 0.01476653240389303 +0.7771444416986691 0.05811527443480977 0.0318380121022165 +0.03690989084670405 0.06193575904781331 5.947830090028642e-05 +0.1941841741323465 -0.0326468529761238 -0.05637936602099741 +0.5808885707620174 -0.02447242272008262 0.06071421304039663 +0.07961314134118681 -0.01876663275758117 0.06069116569389047 +0.204279434514516 0.03446538240451719 -0.05459886523527685 +0.6624773624273484 0.0582863979302274 0.02992863737741745 +0.8836947158649253 0.06649395242523019 0.006047925369110497 +0.2879927493582318 0.06400487907162408 -0.01284988723520296 +0.6690034085143001 0.03152893671998263 0.05436480236360162 +0.4056685331906963 0.01879840613848318 -0.06306372378423811 +0.2543905547250341 0.02078771849120691 -0.06261978910629132 +0.2109887463686857 -0.01320586146029281 0.06357960926232423 +0.6815535032198449 -0.02618740282120882 -0.06009249355928941 +0.432702436650768 -0.02139536709637295 -0.009042217006337498 +0.1579373360863021 0.01153722826613977 -0.03398366744664437 +0.03539133239422098 -0.0354167625704576 0.04927101846242212 +0.5047913036805357 -0.01075441992726944 -0.06435684578724576 +0.2544047439045615 0.05891379608170437 -0.03011352179542525 +0.3358944749775634 -0.06226676334350673 -0.01535564292679533 +0.6219433466441705 0.06364973648294918 -0.005672736155059342 +0.8745136496066087 -0.01297146890426038 -0.06454032186888725 +0.1542699883690095 -0.01129871693498238 -0.06539061497049022 +0.9677052963996734 0.009693398050511517 0.06689630767726649 +0.6640463913054501 0.05809379431594922 -0.03044454660500704 +0.3867919113425412 -0.06175841892445635 0.02119001354358069 +0.2969682892529673 0.0108788196745087 0.01689008252698863 +0.07720237513507633 0.00476429629234646 0.01343169490385212 +0.2939394144194839 -0.01315526167345646 -0.02060830471908108 +0.2505348488668628 0.01890245330580249 0.02334312429681282 +0.6850951324720133 -0.02195208186664849 0.01611338490895875 +0.4789348633134925 0.05822043908552675 -0.03119408279454106 +0.7592604891653637 0.02067835079799934 -0.06311200404090012 +0.6377377201572771 0.006193457773249044 0.06492598934129595 +0.8746161110802911 -0.05621865638128448 0.03907910809810054 +0.5363787108157466 0.05518321140311247 -0.03454716589350358 +0.9641526686913465 -0.0279832314151662 0.01776199083677669 +0.2053421626652348 0.01278352801414208 -0.02278506086350527 +0.9147456003004056 -0.003135891079187894 0.02256664613672541 +0.6773975442756899 -0.05680697496505459 0.03084062622457741 +0.133762970153007 -0.02151236606540106 -0.02053579445560918 +0.7233391415187237 0.06393217318095167 0.009395677102241786 +0.3451618511604407 0.02338475010005091 -0.06146364446579966 +0.1811675897789787 -0.06050847758426884 -0.0258421252286336 +0.7745882869124803 0.01873037348317228 0.01369503626465583 +0.7202782741044782 -0.06297231545401503 -0.01440244276078032 +0.2127336904077291 -0.06115351037700316 0.0256385275248208 +0.5580243729567518 -0.06438767643883053 0.005521021884236815 +0.4786154114039116 -0.04424122677055029 -0.04945243181341798 +0.5381769797168181 1.410971294698221e-06 -0.01578470733645769 +0.733735933757021 0.01762651485519766 -0.02200114536360584 +0.06834832660549489 -0.03901622192376501 -0.05408524472216217 +0.3859859826356974 0.05680713706598221 0.03666308238837268 +0.6871831478790342 -0.06764847112426459 -0.004110409532063269 +0.1298147586617251 0.06373994985602272 0.01422814999456056 +0.3780246934255962 -0.02288059681216621 0.0247499575670514 +0.5662294687887331 0.02385094808066281 0.02559641160416816 +0.1153859089277672 -0.02142924158891714 0.06397819690567257 +0.1554571379993178 0.03496062371152546 0.05755404991954288 +0.4354464838498716 0.02459118833416643 0.01351192377141054 +0.7878103759653091 -0.05693509816609139 0.0334708625628352 +0.1334221622417985 -0.05116498540859869 -0.04109423966691016 +0.9158775362962278 0.06379087191267233 0.01949942158153111 +0.8645691596962848 -0.02671136758597435 0.01109027456035462 +0.3493008899919008 0.005699753942201896 0.03263301958060084 +0.1449105693968568 -0.06482173220333022 0.022954333613331 +0.5600752563410598 0.001867661611285156 -0.06593530071567524 +0.4853197374447532 0.01857135460878918 0.02063650028360395 +0.4989823094506627 0.03046770270998221 0.05091631841847263 +0.5258451283339419 0.06583093395870863 0.0129843231706336 +0.8838495963489862 0.05629168455521567 0.03922083534735492 +0.6388375248921581 0.01188075382778377 -0.01512813966456045 +0.9297924838729315 -0.06570265627557996 0.01245162834506727 +0.4378918827169343 0.006646916337478246 -0.0676558479525276 +0.8544699060082728 -0.002296475162732033 0.03305624747711289 +0.1325206564060045 0.0117390845451694 0.02507661073955898 +0.824592854778187 0.06585304039790854 0.01770066908548122 +0.5252567949114222 0.0005701830903095707 0.02927638395431734 +0.8226908898028875 -0.04243683926433102 -0.05167851405589356 +0.6940632381442127 -0.007117426725351236 -0.02784001451840329 +0.1674147225561931 0.03462062568057393 -0.05756827860939578 +0.4597697388469505 -0.06832811982554807 -0.005335744701030036 +0.03063730937116121 0.004197087289166455 -0.02784782229282358 +0.8788517234547045 0.03710801602920252 -0.01256698573506732 +0.5908845408407307 -0.01743848936441601 -0.02314627002704053 +0.3812979277577967 0.03037485848066908 -0.009427738852995835 +0.2618989043149971 0.01123350040438585 -0.03067516977882179 +0.8346904531745593 0.02585699190897071 0.01912892230613535 +0.3212467729644292 0.008905317711859271 0.06757676382792081 +0.5896113369284045 -0.01389413753382195 0.02434851960280668 +0.971950561892983 -0.06266977611559765 -0.03122292458704278 +0.7343225501881163 -0.02697191644105846 0.01437580534998369 +0.3501258851947365 -0.002813913749965106 -0.02803603714156491 +0.1806965240465113 0.0243111577911929 0.004236825204770159 +0.558046256761488 -0.03019909010366487 0.01031258475246547 +0.1060658761549595 0.06065595418817591 -0.03225238052944445 +0.3260036098443359 -0.0240741816482672 0.06499080675000544 +0.8643754441935391 -0.006515953369049338 -0.02709722989185633 +0.4876146457610778 0.02251677887425894 -0.01707353942340841 +0.7236962512355209 0.05032156992371962 0.04285571561192762 +0.7248126514323624 -0.04932353637459636 0.04551011788518827 +0.3902675916842007 -0.008570974063173168 -0.02449930880790556 +0.9673596233112446 0.04327038407436685 -0.05258213748435248 +0.5997777947624439 -0.04826079623031546 0.04571579606200115 +0.9685942520364905 -0.02331796435539222 -0.01701340927321335 +0.3369560496124539 0.0240700990329627 0.0002134159935934764 +0.9604223501319724 -0.06102025057670105 0.02878255034168602 +0.4892210064979607 -0.03506356063872607 0.05811598045996373 +0.7771873613136646 -0.02622940610615712 -0.005673890201045115 +0.5630784068630548 0.00537346674064463 0.06699836674509088 +0.568878969220855 0.06745218411172818 -0.01192450637420844 +0.7120199294126134 0.03477517039642344 -0.002917134477191431 +0.7210010039428646 0.02000398748830216 0.02589555263521481 +0.1435175471705576 0.03202159146579808 -0.0004458716164833248 +0.2555552689270029 -0.01326215170261768 0.02691077050165061 +0.4605599453443779 0.01314894591573323 0.06585294780437538 +0.2779106349028322 -0.03127339441669755 0.00191308551538561 +0.6710776529365328 -0.009942960203410643 0.0685595119419717 +0.3880346572692354 -0.02327817201970522 0.06473786768090967 +0.1493928530646503 -0.03232361235044034 0.007481768284790398 +0.5099646937818652 -0.05573877476594347 0.04069609520477904 +0.4693189549043507 0.06871166206825814 0.004148161214567642 +0.370972044584159 0.04255870785855715 -0.05120504164817983 +0.4134438754283334 -0.01588861380080605 -0.06805862190703452 +0.7499200077658489 -0.07028161441600063 0.00398048306635415 +0.6611722466786064 0.0003923713065286764 -0.07075216711471416 +0.6139225231712419 0.01240700592808603 0.03097389811972008 +0.02766032707926836 0.04773870598065266 -0.05389752644902925 +0.1806150757047522 -0.009512853097457658 -0.0226212170730713 +0.2984944012681345 0.01863545431282125 -0.01477837510276692 +0.03789945158791002 0.02904599564427379 -0.006503474895051329 +0.642196014894339 -0.02265706704252935 -0.01830062453795345 +0.1874741558897102 0.06843536572958832 -0.01317078097394448 +0.7966520855335183 0.03246501963197705 -0.01626869856999828 +0.2432710553775808 -0.01984870495868879 -0.02219245636615259 +0.7564162470945313 0.04967382841966388 -0.04755197621911644 +0.8030526334199725 -0.06174091856667204 -0.02933435866110694 +0.7953201026966567 0.003206400530001412 -0.03358962311964294 +0.7966367705929565 0.002710300409569533 0.06692390746493904 +0.8552044169810389 -0.04803811331337227 -0.05149722110519039 +0.3171316048068212 -0.06852387112823688 0.01085089861991294 +0.264674174072334 0.01251023434562082 0.06987106676296735 +0.89340950891071 -0.06483535869248971 -0.02076952347947358 +0.111489740632541 0.01996174162255161 0.06334166222728677 +0.5898280470135376 0.0257198655026608 -0.007646354586483797 +0.8272920328493358 -0.02582245305216566 -0.008732701802106974 +0.4244161746265405 0.02697321484396717 -0.0175669016090492 +0.5580359536412612 -0.05387831980978672 -0.0457272604254667 +0.8890107348880896 0.04752974340082718 -0.04902430783994963 +0.8667179180110816 0.02118722434931684 0.01348519385649692 +0.1077824414838488 -0.06446348930511367 -0.02389459296521786 +0.08616929749866889 -0.02535366918946619 0.002669059840883826 +0.4909852783762372 -0.02917783247164498 -0.0004758903007820963 +0.02823611708677342 -0.06704251570498673 -0.0211984086959653 +0.6033731906097358 0.03565100614091293 -0.06123929477951285 +0.7495968572443253 0.004626849376572744 0.02924974073955276 +0.1642651398951264 -0.02775913067012934 0.06401551050032123 +0.06267333752643363 0.01789464913915428 -0.06584482150711402 +0.7228589854401779 -0.02347172569588961 -0.02032977159520952 +0.6304865297197222 0.06523747507263176 0.02611932033974641 +0.2098899438737939 0.0009481040374555647 0.03442362268841594 +0.1261596522200846 -0.02769833735710996 -0.06262059422864948 +0.3990307494683747 -0.06183521759230438 -0.03179569072430537 +0.5294947823490285 0.02706365656180744 0.0007783058316591929 +0.3754143754090851 -0.04839295334096675 0.04849739077197165 +0.9058071196107607 -0.0475401483459201 0.04929533406450265 +0.4250866063200587 -0.02785186261721841 0.06447211498968033 +0.4260165556587407 -0.06826481440494271 -0.007963761201299364 +0.1298550670489897 0.02681469847029366 -0.06636089613597479 +0.3818375216127187 0.02285739452934933 0.02217997161898437 +0.3663546502518971 -0.03478510187891891 -0.06281729986673232 +0.0441786200809948 0.06187538026386968 0.0320957077036184 +0.9371701965112831 0.06752917662877019 -0.0143343201827559 +0.3172060957913486 0.06181838588630979 0.0292969200447983 +0.02878315565844802 -0.03528173229607414 -0.04818952575188981 +0.6132520291512376 -0.03238747938142586 -0.000406041852081384 +0.3182481710189751 0.06557198113308005 -0.02377060780644972 +0.8113803767558341 -0.01527026260739088 0.02414569666380949 +0.3115585353973365 -0.01215408733304132 -0.06976395236006677 +0.6430443152586386 0.01576569273355313 0.01688744734295657 +0.1126310173019621 -0.06620949783618492 0.0227349498912717 +0.08337150203849612 0.02582933353646263 -0.0105555866253659 +0.770417353875147 -0.04262911474514211 0.05629738051697332 +0.9299655387678931 -0.003192118649478319 -0.0357042578386421 +0.2348884061492383 0.03194676948816064 -0.002536756260942359 +0.3272605786918886 -0.0536002963523469 -0.04480973417740059 +0.03135911916402847 -0.03244015755962261 -0.0004563371865139478 +0.0791994207444169 -0.06380117956213105 0.02736531813851163 +0.6502852018187363 -0.06743455814966931 -0.01860806066048261 +0.8522455844488788 0.06036540424398628 0.03278279863685367 +0.5524033345664664 0.03266396711356544 0.05342141610919657 +0.9714029245570504 0.007052562242194099 -0.0291173465461835 +0.5063178112484593 -0.002899235598734543 -0.03198942600225473 +0.4583032445321686 -0.02831610580513071 0.01205468790027031 +0.4519694698995468 0.008785056693335798 -0.02883092747221061 +0.8160006748088826 -0.0695141811808707 -0.0007674348375786731 +0.2210972180602555 0.05769164203483707 -0.04083852709559069 +0.03029879050643998 0.0163788774808156 -0.06238255941647172 +0.2250062989166763 -0.03205977413858949 0.0002149534253142252 +0.8437930284796151 0.02661076350545018 -0.01714153254889857 +0.755458438852884 -0.0166944019100351 -0.03087045565920025 +0.7128221811961444 -0.02939343205144161 -0.06421984491522199 +0.6479030256223094 -0.02818964555601965 -0.06571709162385013 +0.4045945784983362 0.06849311458848464 -0.006476448966112772 +0.8877699608806301 -0.04712872893983056 -0.05330181705628882 +0.9245393160471075 0.04429576397121457 -0.05142019381149925 +0.9322876558228707 -0.01314214584595515 -0.06915694837648181 +0.236524476279955 0.06953222440976814 0.01509712488526313 +0.3758198751183335 -0.03030383709050868 -0.006384190869639292 +0.8385409676634725 -0.06054914156777525 0.03961299113076555 +0.6915255771435114 0.007747657866977449 0.0258905658288617 +0.7976331480329507 -0.02916995156713036 -0.06551612306552136 +0.2074051824620472 -0.05769105085392809 -0.04284072748747947 +0.5496508999616464 -0.02755477187422389 0.0655634445601633 +0.02850952824375329 0.01129498217302594 0.02948488128721639 +0.2659302652817186 -0.04800750558027428 -0.05331098019455024 +0.2976850488419577 -0.03841731250147609 0.05817726658188817 +0.3810490551869578 0.03404102869053799 0.05950124830443308 +0.3035835745655935 -0.01912355890677644 0.01398148700006869 +0.879579657911113 0.06600262985025028 -0.025237972412035 +0.04457223924738523 0.06342079765561112 -0.03128383131259493 +0.8277696156085486 0.0004094210660035094 -0.02585749387237372 +0.09848994834627613 0.0272809648035676 0.02032369847372327 +0.2331905052995343 -0.04748076024999021 0.05395934408155376 +0.7542994681158199 0.06851613102844262 0.009195516293550463 +0.6599048700485955 0.07214231260559045 -0.0008474278023689295 +0.1657261577199343 -0.05536191053130397 0.04463105522820009 +0.1216463393905492 -0.01961376494162243 0.0215464657633044 +0.1006352635526243 0.07223004621718584 -0.003566244089053152 +0.5216933642123918 -0.0261579146056778 -0.009161932142258491 +0.6335491033669229 0.06258571142549359 -0.0362085086205719 +0.5010532526351646 -0.01971050890665138 0.02794750708861641 +0.6494774022528466 -0.07065047471914174 0.0143131812157276 +0.7540512505564293 0.04904186525295565 0.05129901805292442 +0.3235603518692981 -0.02522427603428723 -0.02666146694345536 +0.6205156865957111 0.03264360258376849 -2.525998104620838e-06 +0.06503279056175221 -0.04538196464976518 0.05248730749543555 +0.710323832667882 -0.01480937181304105 0.06920438825661275 +0.7090755884330245 0.06495741972283943 -0.03143749485586701 +0.665297670022733 0.02635243836057625 -0.02448436839136587 +0.8857838460099398 -0.02484786544621089 0.06779290536250533 +0.8268652860452805 -0.01995140736124867 0.06848314274664813 +0.7666070020721089 -0.06918512351629184 -0.02209868715327627 +0.3796978024955871 0.06484670854362712 -0.03070391939709049 +0.6146601962922388 0.001053349002495709 -0.03194904224240018 +0.9307679846824801 0.007328053146128135 0.07092286384341863 +0.7950749119507843 0.07156876590073649 0.01057005752402147 +0.1633039511347731 0.01340211794533471 0.02734562426433316 +0.02617886226075748 0.01276632904644861 0.06604242111754245 +0.8864849533568856 0.02074472072890336 -0.06917710960220802 +0.5600967554416356 0.009961247233086855 -0.03573376043537427 +0.4741502184738641 0.03376138244099691 -0.06079976858081341 +0.862693817196712 -0.06723961446849425 -0.02010135863348116 +0.9727530175082613 0.03229918882416531 0.002702146881270285 +0.3153177846823372 0.02188541004014311 -0.06863520286279387 +0.9716418396630586 0.009669845160136872 0.02838909099127773 +0.5804540163715723 0.05165694105844491 0.04413323368133895 +0.1257889042853288 0.02001498216479435 -0.02268200709030056 +0.5065016735622991 -0.006886110801552338 0.07066596213830634 +0.971944798969784 0.06519479653523597 0.02779223856964814 +0.6954711069848509 0.03834338299987048 -0.061615862926967 +0.4585322601258204 -0.06238940753836621 -0.03528101063029402 +0.7892741248102842 0.02530019464266742 -0.06602103929217024 +0.1434679896204741 0.06061588977650664 0.04155866519922576 +0.3457944090046092 -0.05617229002990133 0.04524302872727445 +0.7997239908586953 0.0124513538817882 0.03095593348385866 +0.07026348623812129 0.05295772007805719 -0.04477203547704745 +0.531985528338081 0.03814379577809941 -0.06006376733489012 +0.4749378565446173 -0.01106467256816532 -0.07022822827235313 +0.1640734457402427 0.06000100700017003 -0.03873950804179195 +0.971422090938282 -0.01992278887171203 -0.06904694305162497 +0.2098580457786789 0.055880903101602 0.04382353024824289 +0.4585541977420319 -0.05857658650143185 0.0428230155267781 +0.8423534341277046 0.01924366843930367 0.06734626036040997 +0.7335539217536265 0.008280401949685001 -0.07325099368196428 +0.5987489719948351 -0.007366010398398196 -0.0714047372022206 +0.2660311511679286 0.05092271224660914 0.05142919797456596 +0.189286160949795 -0.07352892300625143 0.003465585401599344 +0.6402439947793128 0.02230508493194124 -0.06919005185877303 +0.2934686460968839 0.01896878970463322 0.06827427015720711 +0.9292182235777906 -0.04198506321830058 -0.05895983660716535 +0.4132988139519405 -0.02269934062677968 0.01484348389650656 +0.08410971069034986 0.009376340747704832 0.07134875170600666 +0.829929471182196 0.0565516800566678 -0.04233712139181194 +0.04437484974233821 -0.06215049375264333 0.03728245590517672 +0.849897605407783 0.06945026617573286 -0.02089935442242761 +0.2367960992425603 -0.06814932836158358 -0.02452877842203509 +0.8956657214903954 -0.01772053641199773 -0.02384723818410089 +0.340772981797421 -0.02094418358471088 0.02345249993166196 +0.4990066881309401 0.0177564657093801 -0.07197264597402618 +0.5997152098015115 -0.001773431900128074 0.07100572203972064 +0.4626505049094323 0.06281963892947953 0.03345679960457653 +0.7478240122570099 -0.02582073788192222 -0.06543725013873725 +0.6974994043922254 0.04198593817401544 0.05580514433618418 +0.2773507043633319 0.027772664242098 0.003261630493465889 +0.2416525558531357 -0.02663979063470948 -0.06631488391025075 +0.07692640396683782 -0.03436026719071961 -0.02472267729071619 +0.4143715532183932 0.01056565108595645 0.02960162714895651 +0.5285700154316421 -0.0525734446601424 -0.05234788981911967 +0.3676470588235301 -0.003931840380461321 0.07445375207164344 +0.8273816281871815 0.02437831244296504 -0.06740405970188823 +0.3719929832876216 -0.05683000126050214 -0.04346522772436964 +0.6721189651818509 -0.02630490803258841 -0.01997897180278286 +0.06436673765687584 0.06973795577194848 0.01124525812339734 +0.3968962990247094 -0.0738341469509789 -0.004210257064145521 +0.1714549187065681 -0.02003726991158136 0.02293054422306396 +0.5167033413708939 -0.07343300497270371 0.008857565652170081 +0.3841328405387683 -0.01249191600729566 -0.07093506024194142 +0.6803421760312121 0.0369873768536216 3.336231969160467e-05 +$EndNodes +$Elements +1 5995 1 5995 +3 1 4 5995 +1 1054 1084 469 1433 +2 355 1159 1196 1362 +3 1004 1107 160 1292 +4 1015 1068 567 1355 +5 997 1105 894 1189 +6 124 1105 1050 1189 +7 38 160 1107 1292 +8 723 1188 1039 1195 +9 620 1051 1343 1449 +10 1015 567 1125 1355 +11 1024 1103 279 1452 +12 620 1069 1051 1449 +13 1078 1453 1007 1456 +14 355 1159 979 1196 +15 956 1059 999 1110 +16 1193 1363 88 1391 +17 1130 416 1272 1405 +18 621 1051 620 1069 +19 999 1110 1059 1217 +20 1094 1151 392 1463 +21 1025 1340 1035 1369 +22 28 1080 997 1333 +23 563 637 1024 1365 +24 401 320 1023 1138 +25 855 1026 1137 1473 +26 1085 1363 1193 1391 +27 141 38 160 1107 +28 644 1197 1030 1287 +29 1307 1348 85 1391 +30 489 1030 644 1197 +31 855 1228 1026 1473 +32 997 892 1105 1235 +33 980 1348 1307 1391 +34 961 1053 989 1074 +35 894 1105 124 1189 +36 1130 1231 416 1405 +37 252 1125 1039 1188 +38 723 272 1188 1195 +39 1035 1133 1025 1369 +40 966 983 1086 1326 +41 1000 978 1225 1369 +42 792 746 1149 1280 +43 1104 1203 1023 1291 +44 644 1030 489 1287 +45 1078 1168 1007 1453 +46 957 1043 1004 1244 +47 982 1170 1150 1382 +48 1135 1166 438 1229 +49 1051 1069 621 1202 +50 1038 1097 638 1230 +51 1029 1149 746 1280 +52 455 461 1020 1105 +53 1005 1077 494 1147 +54 557 1013 556 1156 +55 1013 1156 557 1159 +56 966 1215 983 1326 +57 982 1057 1170 1382 +58 1000 1112 978 1369 +59 542 1005 494 1147 +60 892 894 997 1105 +61 452 1035 1246 1298 +62 252 1039 723 1188 +63 394 556 557 1013 +64 38 1107 141 1292 +65 966 1086 983 1215 +66 355 979 1159 1317 +67 637 1097 1024 1365 +68 983 1251 1086 1326 +69 1054 1336 1030 1433 +70 1007 1203 1104 1291 +71 371 1152 1177 1253 +72 727 1152 1064 1177 +73 1024 279 1139 1452 +74 611 1034 1277 1301 +75 1010 1131 175 1359 +76 355 1196 979 1317 +77 85 1307 1178 1348 +78 855 1137 390 1473 +79 455 1105 1020 1165 +80 394 1013 557 1159 +81 256 985 1188 1373 +82 1186 1387 1356 1485 +83 1023 1090 342 1156 +84 855 390 1228 1473 +85 401 1138 1023 1400 +86 677 717 1111 1300 +87 256 985 1182 1188 +88 989 1053 961 1227 +89 1025 1212 1035 1340 +90 621 1069 830 1202 +91 256 1182 985 1373 +92 597 416 1231 1405 +93 509 1086 1048 1247 +94 455 1020 423 1165 +95 355 354 1159 1362 +96 956 1026 1085 1259 +97 1017 1098 1008 1411 +98 160 1107 1004 1284 +99 975 1148 1170 1215 +100 401 1023 320 1151 +101 681 1143 1073 1287 +102 1013 1159 394 1463 +103 1086 1251 1048 1326 +104 303 1155 1021 1183 +105 279 1103 1024 1379 +106 431 1185 1174 1350 +107 146 1166 1114 1394 +108 689 690 1019 1174 +109 950 1268 1010 1387 +110 1228 1327 1059 1473 +111 118 175 1010 1131 +112 390 1327 1228 1473 +113 677 1111 1091 1300 +114 623 621 620 1069 +115 657 489 1030 1287 +116 423 455 461 1020 +117 360 1023 342 1156 +118 407 1123 999 1345 +119 392 1151 1094 1223 +120 528 1084 1054 1210 +121 1130 1272 1231 1405 +122 859 760 1028 1108 +123 1010 1268 1207 1387 +124 1002 1083 693 1246 +125 1150 1170 993 1382 +126 254 252 723 1188 +127 1083 1246 1035 1298 +128 146 1114 1003 1394 +129 1048 1086 887 1146 +130 1186 1356 1183 1485 +131 1112 1329 978 1369 +132 612 611 1277 1301 +133 1037 1095 308 1475 +134 950 1207 1268 1387 +135 966 1170 1148 1215 +136 303 1021 539 1183 +137 1044 1095 630 1258 +138 961 1074 989 1221 +139 887 1048 509 1086 +140 975 1148 1031 1170 +141 567 1068 1015 1392 +142 308 1095 1037 1225 +143 727 371 1152 1177 +144 1153 85 1348 1391 +145 146 36 35 1003 +146 608 1182 1373 1446 +147 401 1023 1151 1400 +148 542 1129 1005 1147 +149 146 36 1003 1114 +150 1004 1043 957 1292 +151 638 1230 1097 1365 +152 983 1052 1101 1215 +153 1017 1008 1196 1411 +154 434 1140 1022 1174 +155 1024 1147 563 1365 +156 256 1188 272 1373 +157 407 408 1123 1345 +158 1095 1134 308 1475 +159 1174 1185 431 1353 +160 400 1087 1041 1357 +161 830 1069 1344 1481 +162 957 1112 1004 1370 +163 119 746 1029 1149 +164 955 1101 1052 1215 +165 1047 1082 655 1163 +166 681 658 1073 1143 +167 1025 1133 1035 1212 +168 996 960 1220 1305 +169 956 1066 1026 1259 +170 830 1202 1069 1481 +171 1023 1203 1104 1395 +172 983 1215 1101 1326 +173 612 1277 1063 1301 +174 957 1004 1112 1244 +175 390 1137 1327 1473 +176 757 1027 269 1179 +177 648 1246 1212 1287 +178 1008 1098 1017 1385 +179 995 1373 1182 1446 +180 1013 1159 1015 1293 +181 1037 1225 978 1369 +182 1045 1141 196 1388 +183 982 1150 1170 1360 +184 1022 1140 434 1229 +185 553 539 303 1021 +186 986 1166 1135 1229 +187 257 1049 1088 1182 +188 989 961 1221 1227 +189 1021 1387 1186 1485 +190 999 1199 407 1345 +191 888 1078 1022 1102 +192 567 813 1015 1125 +193 1019 689 1174 1420 +194 757 269 1027 1220 +195 655 1082 1047 1187 +196 269 1179 1027 1220 +197 36 35 1003 1295 +198 1013 1293 1015 1311 +199 401 775 320 1138 +200 197 1045 198 1477 +201 1039 252 1136 1431 +202 355 1159 1156 1317 +203 772 407 1199 1345 +204 457 1126 1002 1246 +205 1035 1275 1133 1369 +206 452 445 443 1246 +207 608 1373 1309 1446 +208 327 1106 1327 1357 +209 1020 1105 461 1235 +210 355 354 816 1159 +211 390 1059 1228 1327 +212 320 1023 360 1151 +213 28 997 894 1189 +214 1010 175 1277 1359 +215 28 892 894 997 +216 997 1080 892 1235 +217 892 997 28 1080 +218 146 883 1114 1166 +219 1173 1349 1031 1436 +220 1045 1167 198 1477 +221 701 1006 632 1132 +222 495 1005 540 1132 +223 908 1148 1200 1422 +224 685 1017 702 1158 +225 1309 1373 995 1446 +226 980 1153 1348 1391 +227 290 1039 252 1136 +228 908 1148 1169 1200 +229 1079 1214 959 1270 +230 757 742 1027 1179 +231 993 1170 1150 1360 +232 1050 1105 895 1448 +233 371 1177 334 1253 +234 408 1055 1123 1345 +235 256 1182 1088 1188 +236 257 1049 261 1088 +237 966 1101 1215 1326 +238 1159 1205 1015 1293 +239 194 196 1141 1388 +240 92 88 1193 1363 +241 400 1041 1242 1357 +242 760 1028 1108 1249 +243 1035 1133 651 1212 +244 638 1038 729 1097 +245 435 1140 434 1174 +246 412 1272 413 1345 +247 423 1020 420 1165 +248 1035 1340 1275 1369 +249 196 1255 1045 1388 +250 47 1010 1124 1131 +251 983 1040 1052 1215 +252 693 1083 1002 1245 +253 999 1055 956 1434 +254 342 1090 1023 1393 +255 1044 1258 630 1449 +256 836 1022 1078 1350 +257 354 816 1159 1362 +258 757 269 742 1179 +259 995 1214 1079 1270 +260 657 1030 1126 1287 +261 1036 1193 880 1425 +262 878 1066 105 1351 +263 407 1199 999 1338 +264 760 859 1028 1249 +265 681 1073 658 1287 +266 274 279 278 1452 +267 434 1140 435 1229 +268 512 693 1002 1245 +269 512 1002 1127 1245 +270 979 1196 1159 1362 +271 1017 1196 685 1317 +272 1036 1116 971 1204 +273 702 1158 1017 1202 +274 494 1077 1005 1280 +275 1003 1114 36 1295 +276 1114 1166 1003 1394 +277 509 575 1086 1247 +278 750 1049 257 1182 +279 586 1120 895 1448 +280 231 229 1143 1331 +281 256 257 1088 1182 +282 854 1116 1036 1153 +283 1036 1085 992 1193 +284 1050 895 1120 1448 +285 844 997 28 1189 +286 691 1019 1136 1299 +287 792 1149 1077 1280 +288 1086 1146 1048 1251 +289 413 1272 1055 1345 +290 279 1103 278 1452 +291 231 1143 1011 1331 +292 971 992 1181 1204 +293 623 1069 620 1449 +294 77 880 1193 1425 +295 1021 1186 1183 1485 +296 1036 1116 854 1459 +297 888 836 1022 1078 +298 320 342 360 1023 +299 657 1030 459 1126 +300 47 118 1010 1131 +301 742 767 1027 1199 +302 611 1222 1034 1301 +303 1001 1070 1237 1354 +304 963 1356 1186 1387 +305 563 1024 281 1129 +306 1036 1181 992 1204 +307 955 1052 1040 1215 +308 1034 1207 1010 1268 +309 1013 1151 556 1156 +310 649 1035 651 1212 +311 575 1148 1086 1247 +312 512 1127 1002 1367 +313 717 1060 1111 1300 +314 915 149 1267 1447 +315 1034 1067 1010 1207 +316 28 27 1080 1333 +317 869 1031 1349 1436 +318 355 1196 354 1362 +319 119 1149 1029 1210 +320 956 1059 1110 1328 +321 1042 1267 149 1447 +322 1039 1125 252 1431 +323 1085 1193 1036 1391 +324 983 1146 1086 1251 +325 1328 1363 1085 1473 +326 208 1118 1074 1164 +327 1059 1217 1110 1328 +328 542 1005 1129 1224 +329 971 992 1087 1181 +330 459 657 489 1030 +331 955 1213 1076 1215 +332 1051 1069 957 1107 +333 118 175 1131 1359 +334 686 1017 685 1317 +335 601 208 1074 1164 +336 630 1095 1044 1483 +337 883 1166 146 1394 +338 586 1050 895 1120 +339 636 630 1258 1449 +340 281 1024 279 1139 +341 971 1087 992 1328 +342 1062 1130 416 1272 +343 608 609 1182 1446 +344 648 1212 647 1287 +345 957 1236 1043 1244 +346 844 28 997 1333 +347 975 1200 1148 1422 +348 518 1145 1116 1348 +349 693 457 512 1002 +350 750 261 257 1049 +351 491 1038 638 1230 +352 1015 1125 813 1188 +353 252 290 723 1039 +354 654 1163 1082 1208 +355 231 1011 1143 1243 +356 691 1136 724 1299 +357 401 320 360 1151 +358 437 438 1229 1380 +359 996 960 1094 1220 +360 975 1169 1148 1200 +361 1028 1040 955 1249 +362 47 1010 118 1414 +363 434 1022 836 1350 +364 971 1116 1036 1459 +365 878 129 105 1066 +366 360 1151 1023 1156 +367 656 1047 655 1163 +368 281 1129 1024 1139 +369 156 880 1036 1193 +370 971 992 1204 1328 +371 1001 1251 1240 1354 +372 563 559 637 1365 +373 651 1133 1035 1208 +374 327 1106 295 1327 +375 327 1242 1106 1357 +376 1030 1336 466 1433 +377 1025 967 1212 1340 +378 942 1028 912 1283 +379 1178 1307 980 1348 +380 453 689 1140 1174 +381 308 1095 1225 1438 +382 246 1033 247 1187 +383 1140 1174 689 1420 +384 1001 1237 346 1386 +385 261 1088 1049 1179 +386 679 1166 1135 1468 +387 278 1103 279 1379 +388 693 1083 444 1246 +389 772 409 407 1345 +390 1002 1126 457 1367 +391 985 1214 1088 1311 +392 956 1055 999 1123 +393 1023 1291 1203 1395 +394 843 1028 859 1249 +395 408 1123 1055 1334 +396 400 1242 366 1357 +397 1012 1099 1227 1256 +398 1067 1010 1207 1387 +399 955 1040 1213 1215 +400 679 438 1135 1166 +401 992 1193 1085 1363 +402 689 453 690 1174 +403 196 1045 197 1141 +404 952 1240 1251 1354 +405 981 1231 1130 1272 +406 439 1135 438 1380 +407 1010 47 1124 1414 +408 118 1010 175 1414 +409 1012 1099 1119 1227 +410 460 1336 1054 1433 +411 494 540 495 1005 +412 1030 1084 1054 1433 +413 420 1130 1020 1231 +414 961 1096 1117 1314 +415 1076 1213 975 1215 +416 952 1322 1240 1354 +417 334 1253 1177 1423 +418 412 1062 1272 1345 +419 813 1015 1188 1472 +420 1006 1132 701 1224 +421 1001 1240 1322 1354 +422 1038 1207 1034 1335 +423 327 296 1106 1242 +424 689 690 691 1019 +425 1043 907 1245 1468 +426 1108 1267 867 1457 +427 957 1112 1236 1244 +428 971 1036 1181 1459 +429 1096 1285 1117 1314 +430 976 1177 1152 1253 +431 1057 993 1170 1382 +432 983 1052 1040 1342 +433 286 1134 297 1324 +434 400 366 1087 1357 +435 495 1005 1132 1280 +436 1174 1185 977 1350 +437 1031 1076 975 1170 +438 400 1041 1087 1234 +439 469 1054 528 1084 +440 978 1329 1037 1369 +441 1059 1123 379 1228 +442 342 1156 1090 1317 +443 695 1174 431 1353 +444 996 974 1089 1142 +445 989 1221 1117 1227 +446 573 1064 1152 1315 +447 1031 1148 966 1170 +448 407 999 1123 1338 +449 420 1231 1020 1440 +450 194 196 197 1141 +451 247 1033 1144 1484 +452 149 1042 867 1267 +453 105 129 76 1066 +454 494 542 540 1005 +455 996 1089 974 1375 +456 297 1134 1129 1324 +457 834 1161 1040 1342 +458 681 1212 1143 1287 +459 705 834 1040 1342 +460 612 181 611 1301 +461 1107 1114 141 1292 +462 589 1168 1078 1453 +463 35 1003 1295 1476 +464 1129 1134 297 1224 +465 757 292 1220 1238 +466 540 1132 1005 1224 +467 956 999 1059 1123 +468 809 1349 1173 1436 +469 423 420 1020 1440 +470 729 1097 1038 1190 +471 1000 978 1091 1225 +472 999 956 1110 1434 +473 378 1059 379 1228 +474 1024 1129 563 1147 +475 979 1017 1098 1465 +476 1168 1185 431 1350 +477 632 1006 701 1483 +478 279 1024 637 1379 +479 955 1040 1028 1213 +480 199 197 198 1477 +481 1085 1328 992 1363 +482 146 1003 35 1476 +483 300 1034 611 1222 +484 971 1181 1036 1204 +485 320 342 1023 1393 +486 1051 1107 957 1343 +487 1059 987 1217 1328 +488 1037 1134 1095 1475 +489 691 1136 1019 1353 +490 1017 1158 685 1196 +491 461 1020 1235 1440 +492 1006 632 1132 1297 +493 156 1036 880 1425 +494 955 1042 1028 1108 +495 648 1035 1212 1246 +496 689 1019 691 1420 +497 459 1030 466 1433 +498 247 1144 728 1484 +499 1112 1004 1370 1408 +500 434 1174 1022 1350 +501 247 1144 1033 1219 +502 573 1064 727 1152 +503 956 1085 1026 1473 +504 494 1005 495 1280 +505 499 1144 498 1362 +506 1010 1063 958 1131 +507 992 1363 1328 1473 +508 237 673 234 1025 +509 52 1086 53 1417 +510 1083 1245 694 1468 +511 247 1033 246 1299 +512 1034 1207 1038 1230 +513 695 431 1185 1353 +514 1060 1111 962 1191 +515 651 1035 649 1208 +516 681 658 645 1287 +517 498 1144 1355 1362 +518 895 1050 124 1105 +519 697 465 1195 1384 +520 757 742 767 1027 +521 1105 1165 455 1448 +522 262 1088 261 1179 +523 347 346 1237 1386 +524 562 1403 1223 1454 +525 961 1117 1096 1221 +526 274 1139 279 1452 +527 282 1129 281 1139 +528 1040 1161 834 1171 +529 639 1073 1143 1331 +530 1015 1125 1068 1355 +531 452 1208 1035 1298 +532 199 198 1167 1477 +533 975 1213 1040 1215 +534 257 256 1088 1188 +535 869 1349 809 1436 +536 639 658 1073 1331 +537 742 1027 1179 1199 +538 983 1101 1052 1240 +539 1018 1263 1039 1471 +540 697 1195 1018 1384 +541 197 1141 1045 1477 +542 970 1282 1136 1306 +543 907 694 1245 1468 +544 1081 1240 1001 1251 +545 690 1019 1174 1353 +546 1117 1221 961 1227 +547 408 410 1055 1345 +548 957 1004 1107 1370 +549 960 996 1089 1305 +550 649 648 1035 1212 +551 686 702 685 1017 +552 423 1020 461 1440 +553 611 183 1222 1301 +554 196 1198 1045 1316 +555 1026 1085 1363 1473 +556 844 997 1189 1333 +557 492 1077 1149 1216 +558 1027 757 1220 1238 +559 512 1002 457 1367 +560 772 1199 407 1338 +561 635 630 1095 1258 +562 992 1085 1036 1204 +563 960 1089 996 1375 +564 600 1237 1100 1386 +565 528 1084 1210 1467 +566 29 894 124 1189 +567 719 717 1060 1111 +568 1024 1097 637 1379 +569 1081 1251 1001 1354 +570 492 1077 1216 1409 +571 783 1386 1100 1418 +572 1038 1230 1207 1479 +573 1042 867 1267 1457 +574 639 1073 658 1143 +575 760 843 859 1249 +576 1052 1101 955 1464 +577 1025 1226 1340 1369 +578 996 1027 1296 1305 +579 1128 1254 1233 1340 +580 308 1095 307 1134 +581 374 1249 1052 1342 +582 612 1063 181 1301 +583 652 654 1082 1208 +584 1060 1191 962 1278 +585 760 1249 1108 1319 +586 242 1082 655 1187 +587 242 655 244 1187 +588 258 1188 1088 1472 +589 553 544 539 1021 +590 630 1044 1297 1483 +591 813 1188 258 1472 +592 1018 1195 1263 1361 +593 783 1081 1386 1418 +594 763 1039 1185 1195 +595 134 887 1086 1146 +596 673 1025 237 1466 +597 1000 978 1112 1371 +598 859 1028 526 1108 +599 1038 1256 1207 1335 +600 1001 346 1237 1372 +601 1025 1226 967 1340 +602 677 363 1091 1111 +603 991 1191 1060 1278 +604 1004 957 1107 1292 +605 996 1220 1027 1305 +606 818 1198 838 1426 +607 1018 1195 1039 1263 +608 1100 1386 1081 1418 +609 691 1019 690 1353 +610 491 1162 1038 1222 +611 77 880 106 1193 +612 1052 1211 352 1342 +613 141 1114 37 1292 +614 1085 1259 1026 1363 +615 308 310 1095 1438 +616 1014 1227 1099 1256 +617 812 1137 1026 1330 +618 1039 1136 763 1353 +619 462 836 434 1022 +620 460 1054 469 1433 +621 719 677 717 1111 +622 429 1018 697 1185 +623 767 1027 1199 1338 +624 719 1111 1060 1339 +625 141 1114 1107 1343 +626 613 1216 614 1277 +627 196 302 1198 1316 +628 352 1052 374 1249 +629 719 1060 364 1339 +630 542 540 1005 1224 +631 1042 1267 1108 1457 +632 717 364 719 1060 +633 657 644 489 1287 +634 266 1179 1122 1472 +635 119 168 746 1149 +636 231 230 1331 1452 +637 985 1121 1214 1311 +638 991 1111 1060 1191 +639 1039 763 1185 1353 +640 309 308 310 1095 +641 973 1285 1070 1322 +642 655 1047 799 1187 +643 614 1216 1067 1277 +644 1356 1387 1109 1485 +645 649 1035 452 1208 +646 231 1331 1011 1452 +647 812 1160 1137 1330 +648 887 509 577 1086 +649 605 1038 491 1162 +650 1016 1055 956 1334 +651 567 565 1068 1392 +652 1212 1246 967 1287 +653 1136 1282 1019 1353 +654 267 266 1122 1472 +655 499 1347 1144 1362 +656 673 1194 1025 1466 +657 956 1026 1066 1473 +658 1091 1111 363 1438 +659 247 1219 1033 1299 +660 350 1052 353 1113 +661 1050 1189 1105 1337 +662 455 468 461 1105 +663 265 1179 1049 1199 +664 1079 1270 1165 1309 +665 246 1033 1187 1299 +666 1016 1259 956 1307 +667 1028 1042 955 1281 +668 347 1237 600 1386 +669 1063 958 1131 1359 +670 995 1270 1079 1309 +671 1014 1119 1099 1227 +672 960 996 1094 1375 +673 539 1021 544 1183 +674 436 434 435 1229 +675 190 1154 1313 1388 +676 794 1075 1132 1297 +677 1106 1220 292 1238 +678 542 494 710 1147 +679 1156 1159 979 1317 +680 355 1156 396 1317 +681 515 516 1058 1116 +682 214 206 1074 1312 +683 1114 1343 1003 1474 +684 601 214 206 1074 +685 1052 1240 1101 1464 +686 960 1088 1214 1311 +687 429 1168 1018 1185 +688 245 246 247 1187 +689 989 1227 1117 1289 +690 52 889 53 1086 +691 888 1102 1022 1394 +692 1051 1003 1343 1474 +693 734 118 175 1414 +694 100 105 1066 1351 +695 1015 1293 1205 1311 +696 644 1073 1197 1287 +697 870 1171 916 1283 +698 1052 1108 955 1249 +699 1112 1244 1004 1408 +700 1028 955 1108 1249 +701 350 1052 1113 1211 +702 1128 1254 1226 1271 +703 706 374 1040 1249 +704 309 1095 310 1438 +705 1019 1174 1140 1420 +706 605 729 1038 1378 +707 767 757 1027 1238 +708 350 352 1052 1211 +709 562 473 1223 1403 +710 746 162 1029 1180 +711 373 1184 1057 1239 +712 977 1185 1174 1353 +713 956 1055 1358 1434 +714 1026 1363 992 1473 +715 958 1063 1010 1268 +716 1128 1226 1254 1340 +717 653 1163 654 1208 +718 966 1086 1048 1326 +719 1108 1319 1052 1464 +720 751 1066 405 1123 +721 600 1100 783 1386 +722 214 1074 1053 1312 +723 1079 1214 995 1373 +724 355 557 1156 1159 +725 1054 1210 1084 1303 +726 1007 1291 1104 1318 +727 265 1049 328 1199 +728 1040 1052 955 1249 +729 1063 1277 1034 1301 +730 1149 1210 119 1294 +731 351 352 1211 1342 +732 290 763 1039 1136 +733 468 461 1105 1235 +734 586 588 1050 1120 +735 988 1176 1149 1207 +736 416 1130 1062 1446 +737 956 1016 1307 1358 +738 812 855 1026 1137 +739 672 669 1194 1475 +740 749 1146 1081 1418 +741 1000 1091 978 1371 +742 1086 1161 53 1417 +743 959 1165 1079 1270 +744 1063 1131 1010 1359 +745 1091 1111 962 1300 +746 601 205 208 1164 +747 980 1116 1036 1204 +748 600 783 598 1386 +749 981 1130 1062 1272 +750 119 746 162 1029 +751 969 1006 1075 1254 +752 567 1015 813 1472 +753 1053 1074 214 1401 +754 429 431 1168 1185 +755 637 281 563 1024 +756 374 1052 352 1342 +757 428 1384 1168 1453 +758 1077 1149 1029 1280 +759 955 1108 1052 1464 +760 234 1025 673 1243 +761 446 693 444 1246 +762 1233 1303 1266 1321 +763 1015 1159 1013 1392 +764 459 489 466 1030 +765 637 559 1097 1365 +766 809 1173 930 1436 +767 653 1163 1208 1298 +768 611 300 610 1034 +769 327 296 295 1106 +770 958 1268 1010 1332 +771 785 1056 838 1198 +772 1060 962 1111 1300 +773 304 1032 305 1366 +774 1050 1120 588 1453 +775 306 308 1134 1475 +776 1110 1217 987 1328 +777 627 1415 1012 1437 +778 650 649 452 1208 +779 589 1453 1078 1456 +780 993 1279 1175 1382 +781 950 1010 1289 1387 +782 190 189 1154 1388 +783 1019 1136 970 1282 +784 767 1238 1027 1338 +785 685 702 323 1158 +786 256 766 1182 1373 +787 1047 1187 962 1278 +788 586 588 1120 1453 +789 956 1328 1085 1473 +790 672 1194 1037 1475 +791 760 368 1249 1319 +792 355 557 396 1156 +793 996 974 1223 1375 +794 427 429 428 1384 +795 196 822 302 1316 +796 100 105 76 1066 +797 632 1297 1006 1483 +798 350 352 353 1052 +799 346 1372 1001 1386 +800 694 1083 693 1245 +801 1033 1187 1047 1278 +802 1207 1256 1038 1479 +803 1043 1166 1114 1292 +804 459 1126 1030 1433 +805 627 1012 1201 1437 +806 374 1040 1249 1342 +807 1000 1225 1194 1369 +808 1104 1203 968 1395 +809 1041 1252 1424 1482 +810 1058 1116 516 1145 +811 256 272 766 1373 +812 769 1199 1049 1257 +813 400 367 366 1242 +814 1017 1385 1098 1465 +815 729 638 491 1038 +816 673 1025 1172 1243 +817 627 1201 1012 1415 +818 959 1214 1079 1361 +819 969 1006 1254 1271 +820 1079 1195 465 1384 +821 1191 1323 1236 1371 +822 300 611 183 1222 +823 648 646 1246 1287 +824 648 452 1035 1246 +825 746 1180 1029 1280 +826 742 481 767 1199 +827 290 763 723 1039 +828 1135 1166 1043 1468 +829 512 1127 536 1245 +830 156 850 1193 1413 +831 1223 1403 996 1454 +832 211 1119 1053 1415 +833 421 1165 420 1309 +834 969 1075 1006 1132 +835 702 323 1158 1202 +836 491 1222 1038 1230 +837 542 299 1129 1147 +838 1016 956 1066 1334 +839 882 1043 1166 1468 +840 1011 1073 1321 1421 +841 156 1181 850 1413 +842 959 1105 1050 1448 +843 648 452 649 1035 +844 300 610 1034 1230 +845 654 655 1082 1163 +846 457 1367 1126 1433 +847 197 196 198 1045 +848 666 226 1157 1407 +849 987 1327 1106 1357 +850 237 1025 234 1444 +851 466 1030 489 1336 +852 673 1172 1025 1194 +853 1128 969 1254 1271 +854 1083 1244 1035 1340 +855 976 1310 1118 1376 +856 1002 1244 1083 1340 +857 769 1199 1257 1345 +858 156 1036 24 1181 +859 408 1055 725 1334 +860 966 1148 1086 1215 +861 892 28 27 1080 +862 281 279 280 1139 +863 206 601 1074 1164 +864 336 1097 729 1190 +865 206 1164 1074 1312 +866 763 762 1039 1195 +867 1191 1236 1112 1371 +868 1231 1272 981 1405 +869 988 1207 1149 1216 +870 1051 1343 957 1474 +871 994 1072 1240 1322 +872 985 1088 1263 1311 +873 956 1259 1085 1307 +874 624 1202 830 1481 +875 1018 1361 1263 1471 +876 1053 1119 211 1312 +877 392 543 556 1151 +878 1007 1206 1291 1318 +879 247 728 1144 1219 +880 975 1076 1031 1432 +881 1041 1252 1080 1424 +882 1162 1222 703 1419 +883 261 1049 265 1179 +884 1116 1153 523 1348 +885 977 1078 1203 1282 +886 637 279 281 1024 +887 305 1184 1032 1462 +888 969 1132 1006 1271 +889 390 837 855 1228 +890 1013 1291 1293 1311 +891 163 1149 119 1294 +892 774 1372 1113 1429 +893 1046 1157 226 1407 +894 1046 1321 1073 1421 +895 758 1113 774 1372 +896 439 438 437 1380 +897 1054 1084 1030 1303 +898 1168 1384 1018 1453 +899 1037 1194 1225 1369 +900 190 1154 189 1313 +901 30 1050 1138 1189 +902 613 611 610 1034 +903 379 1123 1059 1338 +904 749 1081 125 1418 +905 1137 1160 1026 1330 +906 882 1166 679 1468 +907 783 1081 598 1386 +908 305 213 1184 1462 +909 1136 1219 724 1299 +910 916 1171 1213 1283 +911 108 103 1036 1425 +912 635 630 325 1095 +913 1038 1162 605 1378 +914 1242 1403 730 1454 +915 351 374 352 1342 +916 499 787 498 1144 +917 1012 1109 1256 1288 +918 370 327 1327 1357 +919 979 1090 1017 1465 +920 1057 1170 1031 1239 +921 1028 1108 1042 1267 +922 706 1040 374 1342 +923 959 1337 1105 1424 +924 985 1214 1079 1373 +925 993 1175 1150 1382 +926 52 1146 1086 1417 +927 1262 1278 1047 1323 +928 794 1132 1075 1390 +929 276 757 292 1220 +930 1008 1269 1098 1385 +931 727 1177 1064 1410 +932 567 739 813 1125 +933 976 1118 1264 1376 +934 562 730 1403 1454 +935 739 1125 567 1355 +936 1008 1278 1060 1347 +937 306 308 307 1134 +938 266 1122 1179 1389 +939 498 1355 1068 1362 +940 1052 994 1240 1464 +941 538 1043 1245 1292 +942 290 1136 252 1431 +943 624 621 830 1202 +944 672 1037 1194 1225 +945 338 491 638 1230 +946 373 1239 1057 1349 +947 912 1028 810 1283 +948 538 1043 907 1245 +949 94 114 96 1304 +950 118 167 175 1359 +951 370 1327 1137 1357 +952 462 1022 1229 1394 +953 103 108 1036 1391 +954 714 308 388 1225 +955 336 490 729 1097 +956 613 1034 610 1216 +957 244 655 799 1187 +958 679 1135 440 1468 +959 928 940 942 1028 +960 1041 1424 1080 1482 +961 119 1029 162 1467 +962 985 1263 1195 1361 +963 1013 1291 1311 1375 +964 953 1266 1303 1321 +965 1027 1106 996 1296 +966 763 1185 698 1195 +967 1073 1143 1011 1321 +968 784 397 1081 1417 +969 749 125 1146 1418 +970 605 729 491 1038 +971 36 1295 1114 1343 +972 515 517 516 1116 +973 950 1256 1109 1288 +974 1116 1145 980 1348 +975 146 1394 1003 1476 +976 1128 969 1233 1254 +977 1021 1276 553 1470 +978 1016 1066 956 1259 +979 1226 1271 1254 1406 +980 1044 1107 1004 1370 +981 518 1116 523 1348 +982 1114 1166 569 1292 +983 1129 1139 282 1324 +984 608 607 609 1446 +985 729 1190 1038 1378 +986 996 974 1142 1223 +987 948 1293 1291 1311 +988 621 619 1051 1341 +989 560 1223 473 1403 +990 962 1047 1278 1323 +991 774 1113 758 1429 +992 680 1167 1093 1477 +993 1064 1152 976 1177 +994 397 1211 1081 1417 +995 1043 569 1166 1292 +996 996 1142 1089 1482 +997 1033 1262 1019 1269 +998 775 1138 1104 1393 +999 956 1055 1016 1358 +1000 286 298 297 1134 +1001 1120 1018 1384 1453 +1002 1067 1071 1010 1387 +1003 1085 956 1307 1358 +1004 1012 1256 1227 1288 +1005 742 1179 481 1199 +1006 950 1034 1207 1335 +1007 230 1331 1103 1455 +1008 1030 1197 1073 1287 +1009 1015 1159 1068 1205 +1010 96 1178 1307 1397 +1011 695 431 454 1185 +1012 180 1063 1237 1301 +1013 648 647 646 1287 +1014 590 1074 208 1118 +1015 544 1021 553 1470 +1016 356 1119 211 1415 +1017 1017 1090 979 1317 +1018 405 1123 1066 1228 +1019 358 1059 390 1327 +1020 379 1123 405 1228 +1021 686 702 1017 1441 +1022 957 1343 1114 1474 +1023 1027 1220 960 1305 +1024 297 1134 298 1224 +1025 1057 1184 373 1396 +1026 1007 1078 968 1203 +1027 994 1072 1113 1240 +1028 203 1460 1164 1477 +1029 644 1073 263 1197 +1030 160 1284 1004 1435 +1031 967 1246 1212 1340 +1032 712 346 1070 1237 +1033 1011 1321 1143 1427 +1034 972 1035 1083 1275 +1035 1031 993 1170 1349 +1036 1047 1163 656 1380 +1037 99 107 1330 1363 +1038 415 416 1062 1446 +1039 592 1106 1242 1454 +1040 982 1360 1170 1464 +1041 574 1041 400 1234 +1042 180 1237 1070 1301 +1043 342 687 1156 1317 +1044 37 1114 141 1343 +1045 791 1149 1067 1216 +1046 966 1170 1057 1239 +1047 779 1058 516 1145 +1048 1055 1272 1062 1345 +1049 166 1100 1131 1315 +1050 490 638 729 1097 +1051 1028 1249 843 1283 +1052 960 1027 1179 1220 +1053 1103 1331 230 1452 +1054 1115 1236 1191 1323 +1055 509 575 577 1086 +1056 1233 1266 1128 1321 +1057 982 1101 1170 1260 +1058 950 1207 1256 1335 +1059 727 372 371 1177 +1060 1027 996 1106 1220 +1061 1059 1328 956 1473 +1062 681 639 658 1143 +1063 372 1177 727 1410 +1064 1227 1256 950 1288 +1065 1042 1267 932 1281 +1066 621 1051 1202 1341 +1067 119 1210 1029 1467 +1068 462 1022 434 1229 +1069 400 1087 846 1234 +1070 706 705 1040 1342 +1071 611 1034 613 1277 +1072 763 762 723 1039 +1073 520 1150 1175 1382 +1074 29 28 894 1189 +1075 749 784 125 1081 +1076 791 1067 614 1216 +1077 1070 973 1322 1372 +1078 613 1034 1216 1277 +1079 669 1172 1194 1475 +1080 108 1036 1391 1425 +1081 1015 1013 1311 1392 +1082 166 738 1100 1315 +1083 834 707 1040 1171 +1084 560 1142 1223 1403 +1085 834 1161 768 1171 +1086 462 888 1022 1394 +1087 593 1124 1064 1131 +1088 196 198 1045 1198 +1089 567 1068 565 1355 +1090 1175 1279 520 1382 +1091 750 769 1049 1257 +1092 707 1171 870 1283 +1093 30 1138 735 1189 +1094 1007 1206 1203 1291 +1095 1010 1067 1034 1277 +1096 723 1039 762 1195 +1097 972 1083 1035 1298 +1098 1208 1275 1082 1428 +1099 1207 1230 988 1479 +1100 1019 970 1219 1269 +1101 134 887 577 1086 +1102 859 526 760 1108 +1103 1070 1237 346 1372 +1104 1088 1122 960 1179 +1105 672 671 669 1475 +1106 993 1031 1170 1430 +1107 400 1041 367 1242 +1108 691 692 1136 1353 +1109 701 1006 1224 1483 +1110 560 562 473 1223 +1111 680 617 1093 1167 +1112 968 1078 1007 1456 +1113 656 655 654 1163 +1114 712 180 346 1237 +1115 190 191 189 1388 +1116 948 1203 1291 1395 +1117 542 1129 297 1224 +1118 475 1276 1401 1410 +1119 166 1131 1100 1359 +1120 901 1186 1071 1294 +1121 723 762 272 1195 +1122 590 601 208 1074 +1123 1047 1262 1033 1278 +1124 1047 1380 656 1420 +1125 653 833 1163 1298 +1126 493 1077 494 1280 +1127 957 1069 1051 1458 +1128 477 214 1074 1401 +1129 697 1185 1018 1195 +1130 1125 1263 1205 1306 +1131 1164 1460 998 1477 +1132 712 1070 180 1237 +1133 1149 1176 963 1207 +1134 34 1273 1265 1476 +1135 1063 958 1237 1285 +1136 1252 1041 1404 1482 +1137 328 1049 769 1199 +1138 972 1082 1208 1275 +1139 231 1011 1243 1452 +1140 1013 1151 1291 1375 +1141 978 1069 1191 1344 +1142 994 1240 1274 1322 +1143 345 1065 602 1439 +1144 96 1307 1016 1397 +1145 526 867 1108 1267 +1146 858 1169 1148 1436 +1147 328 265 261 1049 +1148 1126 967 1246 1287 +1149 832 360 342 1156 +1150 1057 1170 993 1349 +1151 346 712 1070 1372 +1152 575 376 1148 1247 +1153 359 379 378 1059 +1154 415 1062 416 1272 +1155 180 181 1063 1301 +1156 1036 1193 103 1391 +1157 959 1270 1337 1424 +1158 226 1157 1046 1455 +1159 1089 1142 974 1337 +1160 733 1104 775 1138 +1161 967 1143 1073 1321 +1162 30 1138 1050 1318 +1163 818 785 838 1198 +1164 984 1183 1356 1485 +1165 262 1179 266 1472 +1166 706 374 705 1342 +1167 1091 363 1225 1438 +1168 967 1143 1321 1427 +1169 190 1313 1255 1388 +1170 175 176 1277 1359 +1171 775 1104 733 1393 +1172 1010 1131 958 1332 +1173 774 1072 1372 1429 +1174 241 1428 1250 1445 +1175 928 1028 942 1213 +1176 589 463 1078 1168 +1177 516 1116 518 1145 +1178 462 888 836 1022 +1179 1029 1280 1266 1352 +1180 959 1050 1120 1448 +1181 1185 1306 1039 1353 +1182 1021 1218 553 1276 +1183 1029 1077 1280 1352 +1184 247 246 1219 1299 +1185 363 676 677 1091 +1186 1122 1179 1088 1472 +1187 262 1088 1179 1472 +1188 982 1170 1101 1464 +1189 254 723 272 1188 +1190 676 1091 363 1225 +1191 1070 1313 973 1372 +1192 214 217 1053 1401 +1193 544 1183 1021 1470 +1194 1007 968 1104 1203 +1195 265 481 1179 1199 +1196 707 1040 1171 1283 +1197 993 1170 1076 1430 +1198 515 1116 1058 1320 +1199 175 1010 1277 1414 +1200 408 410 725 1055 +1201 1050 1105 959 1337 +1202 652 653 654 1208 +1203 942 1213 1028 1283 +1204 745 1067 791 1149 +1205 854 1153 1036 1425 +1206 680 1093 1460 1477 +1207 1113 1372 1072 1429 +1208 912 942 940 1028 +1209 30 122 735 1138 +1210 166 1100 748 1359 +1211 686 1017 1317 1441 +1212 989 1289 1117 1332 +1213 652 654 270 1082 +1214 96 1016 1304 1397 +1215 492 1149 791 1216 +1216 749 1081 1146 1417 +1217 813 255 258 1188 +1218 1045 1255 196 1316 +1219 838 1150 1056 1383 +1220 956 1358 1110 1434 +1221 982 1167 1274 1376 +1222 977 1022 1078 1282 +1223 237 1025 1444 1466 +1224 1115 1278 1262 1323 +1225 826 1161 834 1342 +1226 1049 1182 750 1257 +1227 96 111 1178 1397 +1228 596 902 1078 1102 +1229 1044 1370 1004 1408 +1230 525 1148 1031 1436 +1231 633 1075 794 1297 +1232 970 1269 1019 1282 +1233 1055 1123 956 1334 +1234 963 1176 1029 1303 +1235 975 1086 1148 1215 +1236 1313 1322 973 1372 +1237 393 1151 392 1223 +1238 652 1082 270 1208 +1239 480 1159 816 1362 +1240 1088 1182 985 1188 +1241 1031 1239 869 1349 +1242 1172 1226 1037 1406 +1243 1105 1189 997 1337 +1244 1274 1376 1167 1398 +1245 1036 1116 980 1153 +1246 972 1083 1043 1244 +1247 1063 1237 1070 1285 +1248 948 1263 1205 1311 +1249 968 1098 1203 1282 +1250 379 1059 359 1338 +1251 242 1082 1187 1250 +1252 573 1315 1152 1450 +1253 1020 1270 1130 1309 +1254 1152 1315 1009 1450 +1255 285 563 281 1129 +1256 1001 1070 1322 1372 +1257 977 1078 1022 1350 +1258 631 630 1044 1297 +1259 982 1170 1057 1260 +1260 682 651 1133 1212 +1261 388 672 1225 1475 +1262 794 1132 632 1297 +1263 964 1226 1172 1406 +1264 1020 1165 1270 1309 +1265 518 1145 1348 1480 +1266 1032 1184 305 1366 +1267 1254 1271 1006 1406 +1268 608 1309 451 1446 +1269 705 826 834 1342 +1270 300 1034 1222 1230 +1271 957 1114 1107 1292 +1272 959 1105 1270 1424 +1273 1194 1225 1000 1445 +1274 977 1306 1185 1353 +1275 948 1203 1206 1291 +1276 620 1343 1107 1449 +1277 605 385 729 1378 +1278 87 1307 85 1391 +1279 672 1194 668 1225 +1280 859 526 1028 1267 +1281 419 420 1130 1309 +1282 705 834 707 1040 +1283 1007 1018 1206 1453 +1284 1104 1291 1138 1318 +1285 419 421 420 1309 +1286 91 1351 1259 1363 +1287 180 181 178 1063 +1288 679 662 438 1229 +1289 495 540 541 1132 +1290 962 1111 1091 1191 +1291 791 745 614 1067 +1292 1013 1291 1151 1293 +1293 480 1068 566 1159 +1294 400 579 846 1087 +1295 892 522 894 1105 +1296 155 834 768 1171 +1297 1136 1039 1306 1353 +1298 1025 1212 967 1427 +1299 1068 1355 1144 1362 +1300 1259 1351 1026 1363 +1301 621 622 619 1341 +1302 999 1123 1055 1345 +1303 1068 1159 480 1362 +1304 77 1193 103 1425 +1305 460 467 1054 1336 +1306 1164 1439 203 1477 +1307 1043 1114 957 1292 +1308 1285 1322 1096 1354 +1309 955 1213 1028 1281 +1310 1177 1253 976 1423 +1311 1205 1293 948 1311 +1312 440 679 438 1135 +1313 821 394 1159 1463 +1314 980 1204 1036 1391 +1315 378 379 405 1228 +1316 407 1123 379 1338 +1317 1050 1291 1206 1318 +1318 1046 1412 1321 1421 +1319 362 1139 660 1172 +1320 541 701 632 1132 +1321 592 1106 296 1242 +1322 634 631 1044 1297 +1323 1050 588 1318 1453 +1324 1096 1221 1117 1285 +1325 428 1120 1384 1453 +1326 498 1144 787 1355 +1327 660 1172 1139 1243 +1328 1032 1253 304 1462 +1329 1113 1240 1072 1322 +1330 1035 1212 1246 1340 +1331 492 1077 792 1149 +1332 751 1066 1123 1334 +1333 982 1093 1167 1376 +1334 267 1122 266 1389 +1335 988 1149 1077 1216 +1336 1018 1007 1168 1453 +1337 526 1108 1028 1267 +1338 995 1214 1182 1373 +1339 814 567 565 1355 +1340 950 1268 1034 1335 +1341 630 828 631 1044 +1342 963 1029 1210 1303 +1343 627 1201 1157 1437 +1344 996 1403 1242 1454 +1345 1037 1226 1172 1369 +1346 544 553 1276 1470 +1347 646 449 1246 1287 +1348 522 124 894 1105 +1349 460 466 1336 1433 +1350 954 1252 1404 1482 +1351 1043 1083 972 1468 +1352 702 1202 1017 1441 +1353 750 769 328 1049 +1354 1109 1207 1176 1479 +1355 1030 1197 489 1336 +1356 28 126 27 1333 +1357 231 230 229 1331 +1358 844 1189 1142 1333 +1359 978 1258 1069 1344 +1360 1000 1082 1275 1428 +1361 1029 1180 162 1467 +1362 740 697 465 1195 +1363 779 1058 1145 1231 +1364 475 1401 398 1410 +1365 633 169 794 1075 +1366 472 1183 544 1186 +1367 815 602 345 1065 +1368 968 1007 1104 1456 +1369 980 1153 1116 1348 +1370 621 1202 622 1341 +1371 1030 1303 1233 1321 +1372 630 325 1095 1483 +1373 1019 970 1136 1219 +1374 166 738 748 1100 +1375 1073 1331 225 1407 +1376 1205 1263 1015 1311 +1377 1052 1249 368 1319 +1378 178 180 1063 1237 +1379 1068 1125 1015 1205 +1380 1000 1275 1082 1371 +1381 679 438 1166 1229 +1382 389 1057 373 1396 +1383 1046 1073 1321 1412 +1384 1065 1141 602 1439 +1385 1037 1225 672 1475 +1386 703 1162 491 1222 +1387 367 1041 400 1403 +1388 854 523 1116 1153 +1389 99 1351 91 1363 +1390 634 631 828 1044 +1391 1041 1080 997 1482 +1392 544 1186 1183 1470 +1393 985 1263 1121 1311 +1394 567 1392 1015 1472 +1395 961 1014 1209 1377 +1396 961 1209 1014 1227 +1397 1126 1246 449 1287 +1398 413 1055 410 1345 +1399 958 1063 1268 1285 +1400 669 671 1172 1475 +1401 1002 1083 1035 1340 +1402 1043 1245 1083 1468 +1403 608 451 607 1446 +1404 348 1113 758 1372 +1405 989 1074 1053 1401 +1406 348 1113 1372 1386 +1407 989 1288 1227 1289 +1408 1033 1300 1278 1484 +1409 627 626 1415 1437 +1410 972 1083 1244 1275 +1411 729 385 1190 1378 +1412 376 1239 1148 1247 +1413 518 1348 532 1480 +1414 627 478 626 1437 +1415 978 1091 1191 1371 +1416 679 1166 662 1229 +1417 972 1082 1275 1371 +1418 988 1077 1149 1176 +1419 829 656 1380 1420 +1420 1020 1105 959 1165 +1421 680 617 1167 1477 +1422 950 1117 1227 1289 +1423 1100 1237 1001 1386 +1424 1025 967 1226 1427 +1425 1080 1424 997 1482 +1426 1023 1104 968 1395 +1427 1027 960 1179 1305 +1428 680 617 776 1093 +1429 609 1257 1182 1446 +1430 1032 1264 1118 1376 +1431 230 1103 764 1455 +1432 198 1167 1045 1198 +1433 957 1114 1043 1474 +1434 954 1404 1296 1482 +1435 746 173 1180 1280 +1436 99 1330 1026 1363 +1437 677 1091 675 1300 +1438 864 912 810 1283 +1439 892 522 1105 1235 +1440 121 1295 36 1343 +1441 280 282 281 1139 +1442 978 1191 1111 1344 +1443 1157 1201 666 1407 +1444 606 1162 703 1419 +1445 437 1229 1140 1380 +1446 125 1081 784 1418 +1447 821 394 557 1159 +1448 996 1305 1296 1482 +1449 525 858 1148 1436 +1450 916 1171 936 1213 +1451 964 1172 1037 1406 +1452 384 1147 1077 1409 +1453 763 698 762 1195 +1454 1065 1154 192 1388 +1455 103 1193 1036 1425 +1456 746 173 162 1180 +1457 784 1081 749 1417 +1458 1093 1167 776 1325 +1459 843 810 1028 1283 +1460 134 1086 889 1146 +1461 974 1291 1151 1375 +1462 959 1105 1020 1270 +1463 400 366 579 1087 +1464 1010 1268 950 1289 +1465 40 1127 1390 1435 +1466 527 469 1084 1433 +1467 129 76 1066 1374 +1468 975 1031 1169 1432 +1469 304 1253 1032 1366 +1470 713 387 1099 1190 +1471 1142 1337 1089 1482 +1472 1097 1230 1038 1479 +1473 776 1325 1167 1426 +1474 270 1208 1082 1428 +1475 1156 1293 1023 1395 +1476 997 1105 1337 1424 +1477 1019 1262 1022 1282 +1478 668 1225 1194 1445 +1479 457 1126 450 1433 +1480 932 933 1042 1281 +1481 392 1094 294 1223 +1482 34 140 1265 1273 +1483 620 715 1107 1343 +1484 192 1154 1065 1469 +1485 34 140 1273 1476 +1486 828 634 1044 1449 +1487 510 509 1048 1247 +1488 1048 1146 887 1450 +1489 239 1428 241 1445 +1490 348 758 497 1372 +1491 1016 1259 96 1304 +1492 957 1112 1191 1236 +1493 566 1159 1068 1392 +1494 262 261 265 1179 +1495 161 40 1390 1435 +1496 1005 1266 1261 1271 +1497 1019 1140 1022 1262 +1498 168 792 746 1149 +1499 114 1304 94 1374 +1500 510 1048 380 1247 +1501 784 817 397 1417 +1502 217 1053 1218 1415 +1503 1020 1165 959 1270 +1504 510 380 509 1247 +1505 1012 1109 1288 1485 +1506 1244 1275 1035 1340 +1507 122 1138 30 1318 +1508 1115 1346 1232 1474 +1509 1262 1269 1033 1278 +1510 1121 1311 1291 1375 +1511 415 414 1062 1272 +1512 356 211 1119 1312 +1513 977 1185 1168 1350 +1514 990 1222 1162 1419 +1515 948 1291 1121 1311 +1516 1026 1351 99 1363 +1517 1026 1259 1066 1351 +1518 979 1293 1156 1395 +1519 1036 1204 1085 1391 +1520 99 95 107 1363 +1521 367 1242 1041 1403 +1522 955 1076 1213 1281 +1523 968 1241 1098 1282 +1524 1025 1133 1212 1444 +1525 841 656 1163 1380 +1526 525 1031 1148 1239 +1527 24 1181 1036 1459 +1528 387 1099 1378 1451 +1529 639 227 658 1331 +1530 335 1090 171 1273 +1531 682 649 651 1212 +1532 1173 1279 993 1382 +1533 953 1128 1266 1321 +1534 415 416 414 1272 +1535 610 1216 1034 1230 +1536 1033 1019 1262 1299 +1537 500 1349 1057 1382 +1538 346 348 1372 1386 +1539 815 1065 345 1209 +1540 1081 1001 1240 1386 +1541 742 265 481 1179 +1542 501 500 1057 1382 +1543 617 776 1093 1167 +1544 1048 1152 510 1366 +1545 966 1148 1031 1239 +1546 740 465 1079 1195 +1547 1032 1184 1247 1326 +1548 975 1170 1076 1215 +1549 1025 1143 1212 1427 +1550 1155 1183 303 1402 +1551 1074 1177 989 1221 +1552 29 844 28 1189 +1553 949 1019 1269 1282 +1554 1045 1141 973 1398 +1555 1017 979 1196 1317 +1556 1048 1086 966 1247 +1557 1023 968 1104 1393 +1558 842 844 1142 1333 +1559 777 750 1182 1257 +1560 1002 1254 1244 1340 +1561 1173 993 1349 1382 +1562 1018 1168 1007 1471 +1563 794 1075 169 1390 +1564 932 1042 933 1447 +1565 345 1209 1065 1439 +1566 1261 1266 1128 1271 +1567 1098 1385 949 1465 +1568 456 882 679 1468 +1569 1176 1207 988 1479 +1570 1018 1007 1206 1471 +1571 769 772 1199 1345 +1572 289 675 1091 1300 +1573 1019 1219 1033 1269 +1574 1113 1240 1001 1386 +1575 1099 1157 798 1302 +1576 949 1019 1262 1269 +1577 908 1169 157 1200 +1578 1266 1280 1005 1352 +1579 930 1173 926 1436 +1580 1217 1296 1027 1305 +1581 576 1148 858 1169 +1582 99 1026 1330 1351 +1583 463 1168 589 1453 +1584 180 1070 182 1301 +1585 233 234 1243 1444 +1586 1045 1274 1167 1398 +1587 949 1098 1269 1385 +1588 347 179 600 1237 +1589 387 1099 1190 1378 +1590 267 262 266 1472 +1591 605 491 703 1162 +1592 1010 1071 1067 1414 +1593 503 1173 1349 1382 +1594 84 797 81 1348 +1595 146 883 847 1114 +1596 1125 1205 970 1306 +1597 503 1279 1173 1382 +1598 1035 1083 1002 1246 +1599 1172 1226 1025 1369 +1600 376 404 1148 1239 +1601 949 1269 1262 1278 +1602 561 1142 844 1189 +1603 123 1131 1064 1315 +1604 650 1208 452 1298 +1605 684 798 683 1302 +1606 407 409 408 1345 +1607 520 1150 861 1175 +1608 1040 975 1171 1213 +1609 27 845 1080 1333 +1610 845 1234 1080 1333 +1611 393 543 392 1151 +1612 1192 1257 1199 1345 +1613 299 563 1129 1147 +1614 1167 1376 998 1398 +1615 1135 1163 833 1298 +1616 232 171 335 1090 +1617 988 1230 1097 1479 +1618 1099 802 1437 1451 +1619 88 103 1193 1391 +1620 961 1227 1014 1377 +1621 47 1124 593 1131 +1622 257 1088 255 1188 +1623 954 1296 1217 1305 +1624 1121 1291 1206 1337 +1625 475 1276 1218 1401 +1626 412 414 413 1272 +1627 561 842 844 1142 +1628 1029 963 1149 1176 +1629 798 1157 683 1302 +1630 368 353 1052 1319 +1631 289 1091 1250 1300 +1632 769 409 772 1345 +1633 574 1041 1234 1333 +1634 606 1154 1162 1419 +1635 620 715 825 1107 +1636 1027 1192 1199 1217 +1637 941 1171 1200 1432 +1638 429 454 431 1185 +1639 1274 1326 1260 1376 +1640 217 1218 218 1415 +1641 282 285 281 1129 +1642 1151 1291 1023 1293 +1643 1065 1209 815 1451 +1644 806 866 1304 1443 +1645 972 1043 1236 1244 +1646 799 1187 1047 1299 +1647 899 1245 1127 1435 +1648 184 703 1222 1419 +1649 773 614 1067 1277 +1650 163 168 119 1149 +1651 966 1031 1170 1239 +1652 548 1276 1124 1470 +1653 713 337 387 1190 +1654 891 1148 908 1422 +1655 1076 1170 1031 1430 +1656 985 1079 1214 1361 +1657 1232 1346 1003 1474 +1658 970 1125 1068 1205 +1659 957 1107 1069 1370 +1660 1094 1223 1151 1375 +1661 841 829 656 1380 +1662 371 334 333 1253 +1663 85 93 1178 1307 +1664 1034 1222 1268 1301 +1665 956 1123 1066 1334 +1666 575 891 1086 1148 +1667 1125 1039 1263 1306 +1668 761 1341 1202 1441 +1669 936 1171 941 1432 +1670 977 1022 1174 1350 +1671 884 727 573 1064 +1672 684 683 1157 1302 +1673 619 620 621 1051 +1674 869 1031 525 1239 +1675 963 1176 1303 1356 +1676 702 761 1202 1441 +1677 623 830 621 1069 +1678 806 1304 1016 1443 +1679 1008 1158 1017 1196 +1680 948 1291 1293 1395 +1681 990 1268 1222 1301 +1682 1016 1334 806 1443 +1683 1109 1356 963 1387 +1684 50 1418 1315 1450 +1685 403 400 1041 1403 +1686 593 1064 123 1131 +1687 592 1242 730 1454 +1688 1065 1451 815 1469 +1689 1118 1253 976 1264 +1690 861 1175 1150 1383 +1691 655 656 799 1047 +1692 141 160 172 1107 +1693 473 562 730 1403 +1694 574 400 846 1234 +1695 365 1347 1362 1478 +1696 1078 1102 902 1265 +1697 1040 1161 983 1342 +1698 175 1277 773 1414 +1699 999 1199 1192 1217 +1700 1152 1315 1064 1442 +1701 1084 1303 1210 1467 +1702 1259 1304 1016 1374 +1703 1032 1253 1118 1264 +1704 996 1223 1142 1403 +1705 233 1243 1143 1444 +1706 1033 1187 1300 1484 +1707 603 1065 192 1388 +1708 1183 1186 1054 1356 +1709 1076 1430 1031 1432 +1710 1035 1244 1083 1275 +1711 1016 1304 806 1334 +1712 740 1195 1079 1373 +1713 52 889 1086 1146 +1714 888 596 836 1078 +1715 620 1107 825 1449 +1716 1019 949 1262 1282 +1717 983 1161 1040 1215 +1718 1097 1230 988 1365 +1719 908 1148 576 1169 +1720 1015 1205 1125 1263 +1721 1086 1148 966 1247 +1722 878 551 1066 1351 +1723 403 400 574 1041 +1724 993 1031 1173 1349 +1725 234 1025 1243 1444 +1726 779 514 516 1058 +1727 412 1062 414 1272 +1728 292 1106 284 1220 +1729 47 593 48 1131 +1730 972 1208 1163 1298 +1731 40 1127 1286 1390 +1732 636 630 635 1258 +1733 740 1079 721 1373 +1734 891 1086 1148 1422 +1735 1275 1340 951 1369 +1736 1091 1000 1225 1445 +1737 957 1458 1051 1474 +1738 682 651 287 1133 +1739 1068 1159 1015 1392 +1740 335 1090 1273 1441 +1741 911 930 926 1436 +1742 950 1207 1034 1268 +1743 1045 1255 1072 1322 +1744 212 304 1253 1462 +1745 835 735 1138 1189 +1746 990 1063 1070 1285 +1747 992 1137 1026 1473 +1748 666 226 288 1157 +1749 985 1182 1214 1373 +1750 1193 1363 992 1461 +1751 81 85 84 1348 +1752 750 257 260 1182 +1753 855 812 1026 1330 +1754 847 1114 883 1166 +1755 896 854 523 1116 +1756 34 140 33 1265 +1757 977 1174 1022 1282 +1758 1047 1187 1082 1323 +1759 1085 1307 1204 1358 +1760 1061 1102 1003 1241 +1761 1017 1158 1008 1385 +1762 798 1157 1099 1437 +1763 1119 1437 802 1451 +1764 155 1200 1171 1422 +1765 1032 1326 1247 1366 +1766 23 156 880 1425 +1767 423 616 420 1440 +1768 619 170 620 1051 +1769 467 1183 1054 1336 +1770 233 231 229 1143 +1771 171 1273 1090 1393 +1772 798 683 1157 1437 +1773 1019 1219 1136 1299 +1774 960 1214 1121 1311 +1775 255 1088 258 1188 +1776 124 1050 30 1189 +1777 1082 1187 962 1323 +1778 1176 1308 1109 1479 +1779 1037 1095 978 1225 +1780 192 1065 603 1469 +1781 928 940 1028 1281 +1782 1031 993 1173 1430 +1783 1000 1275 1112 1369 +1784 1061 1003 1232 1241 +1785 989 1053 1227 1288 +1786 976 1177 1074 1221 +1787 230 273 764 1103 +1788 606 703 187 1419 +1789 674 289 675 1091 +1790 226 288 1157 1455 +1791 1029 1149 963 1210 +1792 1019 1299 691 1420 +1793 835 1189 1138 1400 +1794 951 1329 1112 1369 +1795 1265 1273 1102 1476 +1796 1278 1300 1060 1484 +1797 94 96 1259 1304 +1798 967 1212 1143 1427 +1799 54 1200 155 1422 +1800 1022 1140 1019 1174 +1801 828 1044 630 1449 +1802 232 171 1090 1393 +1803 570 510 1152 1366 +1804 979 1395 1090 1465 +1805 371 333 1152 1253 +1806 172 1107 160 1284 +1807 1023 968 1393 1395 +1808 1096 1310 1376 1398 +1809 951 1275 1244 1340 +1810 701 1132 541 1224 +1811 569 1114 847 1166 +1812 347 346 179 1237 +1813 276 292 284 1220 +1814 279 637 321 1379 +1815 342 1090 687 1317 +1816 734 47 118 1414 +1817 577 889 134 1086 +1818 899 536 1127 1245 +1819 977 1174 1282 1353 +1820 1251 1264 952 1354 +1821 433 1174 434 1350 +1822 848 156 24 1181 +1823 433 435 434 1174 +1824 1260 1274 1101 1326 +1825 1051 1003 1295 1343 +1826 359 1059 358 1238 +1827 988 1147 1077 1352 +1828 799 246 1187 1299 +1829 975 1161 1040 1171 +1830 459 466 460 1433 +1831 972 1236 1112 1244 +1832 570 1152 333 1253 +1833 1031 1170 1057 1349 +1834 225 1331 226 1407 +1835 644 263 643 1197 +1836 620 1051 170 1343 +1837 31 122 30 1318 +1838 421 423 420 1165 +1839 274 280 279 1139 +1840 868 1066 751 1334 +1841 846 579 584 1087 +1842 966 1247 1184 1326 +1843 161 1390 120 1435 +1844 350 351 352 1211 +1845 980 1085 1204 1391 +1846 1052 1319 994 1464 +1847 1179 1220 269 1389 +1848 869 525 1031 1436 +1849 979 1159 1068 1362 +1850 1026 1137 992 1160 +1851 966 1170 1101 1260 +1852 1078 1168 463 1350 +1853 241 242 1250 1428 +1854 678 830 1344 1481 +1855 125 51 1146 1418 +1856 528 1054 549 1210 +1857 515 513 1058 1440 +1858 573 884 1064 1315 +1859 588 895 586 1050 +1860 972 1035 1208 1298 +1861 540 541 1132 1224 +1862 596 753 902 1102 +1863 906 1054 1183 1186 +1864 670 1172 660 1243 +1865 217 215 1053 1415 +1866 906 1054 467 1183 +1867 491 338 1222 1230 +1868 96 1259 1016 1307 +1869 813 1125 253 1188 +1870 196 302 198 1198 +1871 456 679 440 1468 +1872 1042 1281 933 1368 +1873 1076 1281 955 1360 +1874 964 1134 1129 1224 +1875 1034 1268 1063 1301 +1876 230 273 1103 1452 +1877 352 374 820 1249 +1878 1022 1174 1019 1282 +1879 480 565 566 1068 +1880 960 1088 1049 1214 +1881 331 373 1184 1396 +1882 1244 1254 951 1340 +1883 1102 1273 1061 1476 +1884 1073 1143 967 1287 +1885 682 1133 287 1212 +1886 387 1190 337 1378 +1887 940 1267 1028 1281 +1888 224 666 1201 1407 +1889 695 1185 454 1353 +1890 1085 1204 956 1358 +1891 403 1041 574 1403 +1892 955 1042 1108 1360 +1893 677 675 717 1300 +1894 978 1095 1037 1329 +1895 356 1119 1415 1437 +1896 365 1347 499 1362 +1897 914 931 157 1169 +1898 383 1216 339 1409 +1899 513 1235 1058 1440 +1900 1089 1337 1270 1424 +1901 677 719 363 1111 +1902 846 1087 584 1234 +1903 996 1089 1305 1482 +1904 309 1258 1095 1438 +1905 444 693 694 1083 +1906 1077 1005 1280 1352 +1907 371 333 570 1152 +1908 720 1062 412 1345 +1909 997 1080 1041 1333 +1910 247 246 248 1219 +1911 1108 1249 1052 1319 +1912 170 1051 619 1295 +1913 1044 1095 1006 1483 +1914 1019 1282 1174 1353 +1915 1216 1230 339 1409 +1916 1066 1123 956 1228 +1917 957 1043 1236 1474 +1918 1052 994 1113 1240 +1919 964 1224 1129 1271 +1920 1022 1241 1078 1282 +1921 992 1181 1036 1413 +1922 720 1257 1062 1345 +1923 967 1126 1233 1321 +1924 665 1079 425 1165 +1925 948 1263 1361 1471 +1926 988 1216 1077 1409 +1927 1082 1163 972 1208 +1928 885 50 1315 1450 +1929 406 751 405 1123 +1930 833 1163 1135 1380 +1931 978 1091 1111 1191 +1932 630 1297 629 1483 +1933 622 1202 761 1341 +1934 27 126 845 1333 +1935 1122 1311 1013 1392 +1936 565 566 1068 1392 +1937 362 1139 1172 1324 +1938 1099 1437 1119 1451 +1939 1296 1404 1041 1482 +1940 295 1106 292 1238 +1941 1030 1233 1126 1321 +1942 636 1258 1069 1449 +1943 489 644 643 1197 +1944 1138 1291 1050 1318 +1945 1015 1263 1088 1311 +1946 543 556 1151 1156 +1947 833 1135 439 1380 +1948 1001 1240 1113 1322 +1949 649 647 648 1212 +1950 952 1326 1274 1376 +1951 1009 1264 1251 1354 +1952 399 475 398 1410 +1953 1029 1176 1077 1352 +1954 962 1191 1091 1371 +1955 1035 1246 1002 1340 +1956 1062 1130 981 1290 +1957 801 149 867 1267 +1958 961 1074 1221 1310 +1959 990 1268 1063 1285 +1960 94 1304 1259 1374 +1961 961 1221 1096 1310 +1962 1027 1220 1106 1238 +1963 1057 1239 1031 1349 +1964 880 851 106 1193 +1965 1022 1282 1262 1346 +1966 469 460 467 1054 +1967 214 477 217 1401 +1968 146 847 36 1114 +1969 967 1126 1246 1340 +1970 1025 1212 1143 1444 +1971 157 1169 931 1200 +1972 666 1157 627 1201 +1973 161 120 40 1435 +1974 958 1315 1100 1442 +1975 95 99 91 1363 +1976 291 1144 249 1431 +1977 857 1137 812 1160 +1978 648 646 449 1246 +1979 958 1100 1354 1442 +1980 37 141 159 1343 +1981 1074 1118 590 1423 +1982 1023 1293 1291 1395 +1983 1068 1362 1144 1411 +1984 352 368 353 1052 +1985 989 1401 1276 1410 +1986 976 1152 1064 1442 +1987 705 707 706 1040 +1988 1315 1418 1009 1450 +1989 295 1106 1238 1327 +1990 1082 1250 242 1428 +1991 827 1198 302 1316 +1992 1087 1181 584 1234 +1993 973 1096 1285 1322 +1994 958 1268 1117 1285 +1995 383 610 339 1216 +1996 647 1212 681 1287 +1997 165 1104 32 1265 +1998 1064 1124 593 1410 +1999 1168 1203 1007 1471 +2000 868 1066 1334 1374 +2001 318 1362 1196 1478 +2002 974 1291 1121 1337 +2003 483 1381 488 1429 +2004 1120 1206 1018 1453 +2005 257 255 256 1188 +2006 925 916 1213 1283 +2007 297 542 299 1129 +2008 1090 1156 979 1317 +2009 1132 1266 1180 1280 +2010 1063 1010 1277 1359 +2011 509 376 575 1247 +2012 1049 1088 960 1179 +2013 392 294 393 1223 +2014 551 1228 1066 1351 +2015 488 1381 1316 1429 +2016 691 692 724 1136 +2017 988 1308 1147 1352 +2018 721 740 465 1079 +2019 957 1191 1115 1236 +2020 960 1220 1179 1389 +2021 1072 1255 1045 1316 +2022 706 1040 707 1283 +2023 1262 1282 949 1346 +2024 1143 1212 967 1287 +2025 574 1234 845 1333 +2026 949 1232 1115 1346 +2027 339 1216 610 1230 +2028 1148 1169 1031 1436 +2029 376 375 404 1239 +2030 954 1424 1252 1482 +2031 516 517 518 1116 +2032 995 1130 1270 1309 +2033 368 1052 352 1249 +2034 484 1319 1108 1381 +2035 960 1122 1088 1311 +2036 952 1274 1240 1322 +2037 495 1132 795 1280 +2038 298 1134 628 1224 +2039 552 1330 1026 1351 +2040 402 802 1119 1437 +2041 631 629 630 1297 +2042 756 869 1239 1349 +2043 1044 1258 978 1329 +2044 1250 1428 1000 1445 +2045 1005 1266 1132 1280 +2046 1108 1381 1319 1464 +2047 994 1113 1072 1429 +2048 913 944 803 1173 +2049 510 380 1048 1366 +2050 1010 1034 1268 1277 +2051 710 1147 384 1409 +2052 929 1279 947 1368 +2053 284 1106 592 1454 +2054 260 777 750 1182 +2055 1044 1095 1258 1329 +2056 1034 1222 1038 1335 +2057 706 1249 1040 1283 +2058 1006 1095 1044 1329 +2059 1033 1262 1047 1299 +2060 510 1152 1048 1450 +2061 1010 1071 1289 1387 +2062 912 1028 940 1267 +2063 937 942 912 1283 +2064 358 1059 378 1228 +2065 928 1028 1213 1281 +2066 564 303 1183 1402 +2067 996 1242 1106 1454 +2068 365 499 1347 1478 +2069 1072 1322 1313 1372 +2070 484 1108 485 1381 +2071 1104 1265 165 1273 +2072 1042 955 1281 1360 +2073 570 1152 1253 1366 +2074 1084 1180 969 1266 +2075 493 384 494 1077 +2076 417 1130 416 1446 +2077 773 1277 1067 1414 +2078 1031 1148 975 1169 +2079 1198 1274 1045 1316 +2080 53 1161 1086 1422 +2081 959 1384 1165 1448 +2082 749 125 51 1146 +2083 994 1274 1198 1316 +2084 1144 1347 1008 1362 +2085 1033 1269 1144 1347 +2086 737 1061 1295 1341 +2087 398 1401 1177 1410 +2088 737 1295 618 1341 +2089 518 523 862 1348 +2090 785 838 1056 1383 +2091 1054 1186 549 1210 +2092 990 1070 1063 1301 +2093 1112 1370 1329 1408 +2094 779 1145 788 1231 +2095 1296 1305 954 1482 +2096 1044 1006 1297 1483 +2097 522 895 124 1105 +2098 1040 1161 975 1215 +2099 1159 1392 821 1463 +2100 514 1058 779 1440 +2101 1096 1264 952 1376 +2102 1009 1315 1152 1442 +2103 412 413 410 1345 +2104 1010 1268 1289 1332 +2105 702 761 622 1202 +2106 360 832 1151 1156 +2107 812 863 855 1137 +2108 1019 1033 1219 1299 +2109 802 402 798 1437 +2110 948 1263 1121 1361 +2111 1141 1314 973 1398 +2112 1232 1458 1115 1474 +2113 33 1265 140 1273 +2114 1027 1217 1199 1338 +2115 1050 1206 1120 1453 +2116 673 1172 670 1243 +2117 978 1191 1069 1370 +2118 1198 1316 827 1381 +2119 634 1044 1284 1297 +2120 284 1220 1106 1454 +2121 980 1204 1307 1358 +2122 217 218 215 1415 +2123 892 591 522 1235 +2124 124 30 29 1189 +2125 818 838 782 1426 +2126 995 1062 1192 1290 +2127 1144 1269 1008 1347 +2128 895 1105 507 1448 +2129 145 52 53 1417 +2130 1103 1308 1024 1379 +2131 263 1073 644 1287 +2132 1039 1125 970 1306 +2133 720 411 1257 1345 +2134 411 720 412 1345 +2135 1139 1421 1024 1452 +2136 246 248 1219 1299 +2137 551 550 1228 1351 +2138 638 381 1230 1365 +2139 802 798 1099 1437 +2140 755 186 712 1070 +2141 579 1087 377 1413 +2142 755 186 1070 1313 +2143 492 792 791 1149 +2144 26 144 25 1459 +2145 217 1218 1053 1401 +2146 1081 1146 1009 1418 +2147 982 1056 1198 1426 +2148 420 616 1231 1440 +2149 24 1036 854 1459 +2150 267 266 268 1389 +2151 925 916 936 1213 +2152 1058 1231 779 1440 +2153 1006 1254 1406 1408 +2154 1046 1103 965 1421 +2155 964 1139 1243 1427 +2156 752 1394 146 1476 +2157 628 1224 1134 1483 +2158 997 1337 1142 1482 +2159 1046 965 1248 1421 +2160 987 1087 1328 1364 +2161 26 1320 1234 1459 +2162 992 1036 1193 1413 +2163 998 1376 1310 1398 +2164 673 670 659 1243 +2165 901 547 1071 1186 +2166 933 1042 1368 1447 +2167 1009 1146 1081 1251 +2168 1319 1381 994 1464 +2169 959 1079 1165 1384 +2170 567 813 790 1472 +2171 365 732 499 1478 +2172 1052 1113 994 1429 +2173 1051 1458 1003 1474 +2174 1261 1321 1011 1427 +2175 212 1253 1118 1462 +2176 328 261 750 1049 +2177 1014 1209 1119 1227 +2178 773 340 614 1277 +2179 77 106 103 1193 +2180 593 123 48 1131 +2181 986 1135 1236 1323 +2182 93 96 111 1178 +2183 1160 992 1363 1461 +2184 1149 1207 1067 1216 +2185 1029 1266 1176 1352 +2186 986 1163 1135 1323 +2187 747 370 327 1327 +2188 1068 1125 970 1355 +2189 108 77 103 1425 +2190 225 227 226 1331 +2191 666 224 226 1407 +2192 1053 1074 961 1312 +2193 552 1026 855 1228 +2194 1142 1189 561 1400 +2195 242 1187 243 1250 +2196 969 1233 1254 1367 +2197 1084 1233 1030 1303 +2198 978 1258 1095 1329 +2199 1050 1206 1291 1337 +2200 912 810 1028 1267 +2201 1045 973 1255 1322 +2202 1067 1149 963 1207 +2203 1199 1217 999 1338 +2204 291 1355 1144 1431 +2205 180 712 182 1070 +2206 1024 1308 1147 1365 +2207 983 1101 1251 1326 +2208 289 1091 674 1445 +2209 1052 994 1319 1429 +2210 995 1130 1062 1290 +2211 1084 1266 1233 1303 +2212 1041 1333 574 1403 +2213 1108 1360 1042 1457 +2214 231 1143 233 1243 +2215 678 624 830 1481 +2216 380 1247 1048 1366 +2217 982 1150 1056 1426 +2218 521 861 1150 1383 +2219 134 887 1146 1450 +2220 285 299 563 1129 +2221 1232 1241 1003 1346 +2222 1032 1247 1184 1366 +2223 1004 1107 1044 1284 +2224 964 1134 1037 1475 +2225 952 1264 1096 1354 +2226 1114 1166 1043 1474 +2227 1043 972 1135 1468 +2228 567 361 1392 1472 +2229 1005 1129 1224 1271 +2230 331 389 373 1396 +2231 1041 987 1242 1357 +2232 634 1284 1044 1449 +2233 564 303 539 1183 +2234 1176 1266 1029 1303 +2235 1182 1257 995 1446 +2236 267 268 1122 1389 +2237 988 1077 1176 1352 +2238 1128 1321 1261 1427 +2239 493 792 1077 1280 +2240 998 1439 1164 1477 +2241 96 1178 93 1307 +2242 177 1100 600 1237 +2243 295 292 329 1238 +2244 1099 1256 1012 1416 +2245 1127 1004 1245 1254 +2246 1011 1143 1073 1331 +2247 978 1111 1258 1344 +2248 758 774 497 1372 +2249 1026 1228 552 1351 +2250 799 1047 656 1420 +2251 327 330 296 1242 +2252 569 847 1114 1292 +2253 968 1241 1078 1265 +2254 832 342 687 1156 +2255 573 885 1315 1450 +2256 26 1234 144 1459 +2257 838 1150 782 1426 +2258 953 1266 1176 1303 +2259 859 843 810 1028 +2260 592 296 730 1242 +2261 148 1071 1124 1414 +2262 711 687 342 1090 +2263 965 1308 1103 1379 +2264 217 215 214 1053 +2265 415 414 412 1062 +2266 256 260 257 1182 +2267 1001 1113 1072 1322 +2268 755 1070 712 1372 +2269 721 1309 451 1373 +2270 524 1127 512 1367 +2271 958 1131 1100 1315 +2272 289 1250 1091 1445 +2273 36 121 35 1295 +2274 737 1061 164 1295 +2275 964 1172 1226 1427 +2276 977 1203 1168 1471 +2277 212 213 304 1462 +2278 580 579 377 1413 +2279 1226 1369 1037 1406 +2280 1067 1216 1034 1277 +2281 1056 1360 1108 1457 +2282 1046 984 1407 1412 +2283 265 328 481 1199 +2284 608 451 1309 1373 +2285 226 1331 1046 1407 +2286 601 477 214 1074 +2287 685 1158 317 1196 +2288 569 847 883 1166 +2289 963 1303 1210 1356 +2290 801 915 149 1267 +2291 330 1242 327 1357 +2292 964 1139 1172 1243 +2293 1103 1024 1421 1452 +2294 737 1273 1061 1441 +2295 359 358 341 1238 +2296 51 1146 1418 1450 +2297 1025 1226 1172 1427 +2298 751 868 129 1066 +2299 996 1223 1094 1375 +2300 795 1132 699 1180 +2301 714 388 672 1225 +2302 493 494 495 1280 +2303 584 1087 579 1413 +2304 1114 1295 1003 1343 +2305 964 1037 1172 1475 +2306 34 1265 1102 1476 +2307 1088 1182 1049 1214 +2308 145 53 1161 1417 +2309 100 1066 76 1374 +2310 652 1208 270 1428 +2311 673 669 1172 1194 +2312 973 1322 1045 1398 +2313 555 1223 1142 1400 +2314 1078 1241 1102 1265 +2315 819 1325 776 1426 +2316 755 1313 1070 1372 +2317 670 362 660 1172 +2318 797 1153 81 1348 +2319 1261 1266 1005 1352 +2320 1008 1060 1278 1385 +2321 1012 1256 1109 1416 +2322 1059 1238 359 1338 +2323 515 1058 514 1440 +2324 283 1094 275 1220 +2325 987 1328 1137 1364 +2326 873 1330 552 1351 +2327 1018 1195 1079 1384 +2328 1043 1004 1244 1245 +2329 318 1196 1158 1478 +2330 963 1176 1109 1207 +2331 901 46 1294 1414 +2332 1041 987 1357 1404 +2333 781 1072 780 1316 +2334 1132 1180 795 1280 +2335 1044 978 1258 1370 +2336 560 1142 555 1223 +2337 971 1087 1328 1404 +2338 358 1238 1059 1327 +2339 329 295 1238 1327 +2340 686 761 702 1441 +2341 524 536 512 1127 +2342 962 1278 1115 1323 +2343 906 1183 472 1186 +2344 228 1331 230 1455 +2345 1165 1384 424 1448 +2346 1002 1245 1244 1254 +2347 956 1066 1228 1473 +2348 803 913 1173 1279 +2349 1002 1233 1254 1340 +2350 949 1115 1232 1385 +2351 1232 1385 1115 1458 +2352 1129 1134 964 1324 +2353 263 1197 1073 1407 +2354 753 1102 888 1394 +2355 318 317 1158 1196 +2356 992 1026 1160 1363 +2357 1075 120 1390 1435 +2358 1004 1245 1043 1292 +2359 1002 1254 1233 1367 +2360 1065 1209 1014 1377 +2361 890 1058 1235 1320 +2362 1173 1279 929 1368 +2363 1144 1219 249 1431 +2364 958 1221 1096 1285 +2365 195 1072 781 1255 +2366 1009 1251 1081 1354 +2367 780 781 195 1072 +2368 485 1381 1108 1457 +2369 1106 1242 987 1357 +2370 1115 1278 1191 1458 +2371 962 1060 1278 1300 +2372 506 1382 1325 1426 +2373 1070 1237 1063 1301 +2374 959 1120 1384 1448 +2375 987 1328 1059 1473 +2376 1004 1254 1127 1435 +2377 359 378 358 1059 +2378 1180 1266 1084 1467 +2379 232 1090 342 1393 +2380 962 1323 1191 1371 +2381 890 1058 513 1235 +2382 103 88 108 1391 +2383 785 487 530 1056 +2384 970 1136 1039 1306 +2385 1020 1270 1105 1424 +2386 1428 1445 239 1466 +2387 955 1108 1056 1360 +2388 85 1178 78 1348 +2389 287 1212 1133 1444 +2390 85 78 84 1348 +2391 1079 995 1309 1373 +2392 1134 1271 964 1406 +2393 1137 1160 857 1364 +2394 1006 1132 1075 1297 +2395 968 1265 1078 1456 +2396 1058 1020 1235 1252 +2397 1076 1170 955 1215 +2398 961 1209 1065 1377 +2399 1191 1278 991 1458 +2400 1088 1311 1122 1472 +2401 1001 1100 1081 1354 +2402 855 863 390 1137 +2403 949 1282 1241 1346 +2404 1013 1392 1159 1463 +2405 211 214 1053 1312 +2406 901 1294 1071 1414 +2407 100 1259 1066 1374 +2408 1173 1430 926 1436 +2409 699 1180 1132 1390 +2410 960 1094 1220 1389 +2411 1100 1237 958 1354 +2412 1147 1308 988 1365 +2413 967 1128 1233 1340 +2414 964 1261 1139 1427 +2415 1081 1009 1354 1418 +2416 627 219 1201 1415 +2417 184 1222 1301 1419 +2418 1171 1213 975 1432 +2419 1003 1051 1232 1458 +2420 788 1231 1145 1405 +2421 1081 1354 1100 1418 +2422 408 470 1123 1334 +2423 1024 1097 1308 1365 +2424 389 500 373 1057 +2425 551 129 878 1066 +2426 1075 1254 1006 1408 +2427 1012 1119 1053 1227 +2428 515 513 890 1058 +2429 1192 1270 995 1290 +2430 868 129 1066 1374 +2431 1080 1252 1041 1404 +2432 501 1325 1057 1396 +2433 647 681 645 1287 +2434 799 656 831 1420 +2435 515 514 513 1440 +2436 625 204 1312 1439 +2437 1192 1199 999 1345 +2438 751 1123 406 1334 +2439 501 1057 389 1396 +2440 950 1289 1268 1332 +2441 81 1153 85 1348 +2442 992 1328 1137 1473 +2443 827 302 822 1316 +2444 92 88 103 1193 +2445 228 230 764 1455 +2446 736 1075 633 1284 +2447 606 187 1154 1419 +2448 951 1244 1112 1408 +2449 177 1100 1237 1359 +2450 750 777 769 1257 +2451 203 1439 202 1477 +2452 972 1208 1035 1275 +2453 1001 1372 1113 1386 +2454 853 908 1200 1422 +2455 424 1165 425 1384 +2456 1037 1134 964 1406 +2457 906 467 472 1183 +2458 963 1071 1067 1387 +2459 951 1112 1275 1369 +2460 584 1181 1087 1413 +2461 510 509 887 1048 +2462 935 915 801 1267 +2463 638 1097 559 1365 +2464 802 1099 387 1451 +2465 305 1184 344 1366 +2466 206 205 601 1164 +2467 449 657 1126 1287 +2468 660 1243 1139 1452 +2469 1083 1298 972 1468 +2470 1088 1188 1015 1472 +2471 1281 1360 1076 1368 +2472 1057 982 1325 1382 +2473 982 1274 1260 1376 +2474 653 823 833 1298 +2475 932 933 915 1447 +2476 540 701 541 1224 +2477 92 1160 109 1363 +2478 760 369 368 1319 +2479 891 577 575 1086 +2480 619 1295 1051 1341 +2481 487 530 1056 1457 +2482 755 774 195 1072 +2483 835 561 1189 1400 +2484 1067 1071 963 1294 +2485 670 660 659 1243 +2486 208 205 207 1460 +2487 873 102 1330 1351 +2488 598 1081 397 1386 +2489 981 1058 1252 1290 +2490 335 1273 737 1441 +2491 257 258 255 1088 +2492 1092 1307 1016 1358 +2493 490 1097 336 1379 +2494 698 1185 697 1195 +2495 711 686 1317 1441 +2496 1047 962 1187 1323 +2497 1090 1393 968 1395 +2498 1057 1170 966 1260 +2499 140 164 737 1061 +2500 192 1162 1154 1469 +2501 638 490 559 1097 +2502 1192 995 1270 1305 +2503 665 1079 1165 1309 +2504 242 244 243 1187 +2505 387 1378 386 1451 +2506 755 1072 195 1313 +2507 514 515 516 1058 +2508 1176 1248 1109 1308 +2509 1043 1135 972 1236 +2510 755 774 1072 1372 +2511 854 1036 24 1425 +2512 1100 1354 1009 1418 +2513 356 1119 210 1312 +2514 633 1284 1075 1297 +2515 612 611 613 1277 +2516 515 893 1116 1320 +2517 1079 425 1165 1384 +2518 1003 1241 1102 1346 +2519 1154 973 1313 1388 +2520 420 418 1130 1231 +2521 606 1154 192 1162 +2522 867 486 1108 1457 +2523 592 284 296 1106 +2524 757 276 269 1220 +2525 942 925 1213 1283 +2526 973 1285 1314 1377 +2527 1081 1211 397 1386 +2528 980 1204 1085 1307 +2529 989 1117 1221 1332 +2530 1031 1430 1173 1436 +2531 48 1131 123 1315 +2532 737 164 618 1295 +2533 713 1190 1099 1302 +2534 26 1080 1234 1320 +2535 176 1063 612 1277 +2536 1087 1364 377 1413 +2537 725 1334 1055 1443 +2538 987 1041 1242 1296 +2539 985 1182 1088 1214 +2540 1072 1313 755 1372 +2541 1067 1149 745 1294 +2542 973 1314 1065 1377 +2543 148 1124 47 1414 +2544 1063 1277 176 1359 +2545 799 1299 1047 1420 +2546 343 1184 373 1239 +2547 989 1177 1074 1401 +2548 354 480 816 1362 +2549 969 1254 1127 1367 +2550 687 1090 711 1317 +2551 1037 1194 1172 1475 +2552 816 480 566 1159 +2553 1094 275 1220 1389 +2554 356 210 211 1312 +2555 650 452 823 1298 +2556 969 1180 1084 1286 +2557 1034 1268 1222 1335 +2558 956 1228 1123 1473 +2559 1098 1269 1008 1411 +2560 717 716 778 1060 +2561 1226 951 1340 1369 +2562 961 1119 1227 1312 +2563 965 1256 1099 1416 +2564 1241 1282 1022 1346 +2565 131 97 111 1178 +2566 237 234 236 1444 +2567 706 820 374 1249 +2568 336 729 385 1190 +2569 426 428 1120 1384 +2570 391 1119 1209 1312 +2571 80 1304 804 1397 +2572 1339 1385 1060 1478 +2573 1094 1122 960 1375 +2574 263 1073 225 1407 +2575 845 26 1080 1234 +2576 978 1225 1095 1438 +2577 608 721 451 1373 +2578 711 1317 1090 1441 +2579 373 1057 500 1349 +2580 979 1098 1395 1465 +2581 625 1312 1209 1439 +2582 1192 1217 1027 1305 +2583 1055 1345 1062 1434 +2584 937 912 864 1283 +2585 997 1337 1089 1424 +2586 961 1119 1209 1227 +2587 691 690 692 1353 +2588 677 674 675 1091 +2589 1006 1271 1134 1406 +2590 449 646 657 1287 +2591 1039 1185 1018 1471 +2592 92 104 1160 1461 +2593 961 1310 1096 1314 +2594 543 1151 832 1156 +2595 961 1209 1119 1312 +2596 148 1124 1071 1470 +2597 602 1141 1065 1388 +2598 1098 1306 1205 1395 +2599 275 283 293 1094 +2600 1003 1458 1232 1474 +2601 884 1064 593 1410 +2602 1098 1203 1306 1395 +2603 1057 1184 966 1239 +2604 148 548 1124 1470 +2605 1197 1407 984 1412 +2606 201 203 202 1477 +2607 1227 1288 950 1289 +2608 370 1357 1137 1364 +2609 978 1191 1112 1371 +2610 410 413 725 1055 +2611 552 855 1026 1330 +2612 1056 1198 785 1381 +2613 939 916 852 1171 +2614 1041 1357 1087 1404 +2615 1046 1331 226 1455 +2616 1173 1368 929 1430 +2617 27 845 26 1080 +2618 1064 1131 958 1315 +2619 843 708 810 1283 +2620 975 1213 1076 1432 +2621 395 685 1196 1317 +2622 1028 1267 1042 1281 +2623 1139 1261 1011 1427 +2624 874 78 1178 1348 +2625 1027 1192 1049 1199 +2626 1244 1245 1004 1254 +2627 176 178 612 1063 +2628 1158 1385 1339 1478 +2629 277 821 1392 1463 +2630 506 1150 1382 1426 +2631 970 1098 1282 1306 +2632 413 1055 1272 1443 +2633 583 1364 1160 1461 +2634 965 1103 1046 1455 +2635 1247 1326 1048 1366 +2636 987 1059 1217 1238 +2637 249 1144 728 1219 +2638 962 1115 1191 1323 +2639 515 893 517 1116 +2640 219 1155 220 1201 +2641 1013 1122 1392 1463 +2642 140 164 1061 1476 +2643 1100 1315 738 1418 +2644 1049 1192 1027 1305 +2645 169 633 736 1075 +2646 386 1451 1378 1469 +2647 405 751 551 1066 +2648 952 1101 1274 1326 +2649 1085 1204 992 1328 +2650 1205 1306 1203 1395 +2651 998 1167 1093 1376 +2652 1097 1190 336 1379 +2653 386 479 1451 1469 +2654 407 408 406 1123 +2655 1089 1121 974 1375 +2656 1050 1291 974 1337 +2657 1029 1149 1077 1176 +2658 312 314 313 1111 +2659 954 1217 1192 1305 +2660 127 1084 1286 1367 +2661 520 521 861 1150 +2662 692 763 1136 1353 +2663 1120 1361 959 1384 +2664 1058 1020 1252 1290 +2665 835 735 122 1138 +2666 1079 1309 721 1373 +2667 576 858 796 1169 +2668 1069 1258 1044 1449 +2669 660 235 1243 1452 +2670 1013 1375 1122 1463 +2671 1122 1375 1094 1463 +2672 38 141 37 1292 +2673 1014 1227 1256 1335 +2674 1051 1295 170 1343 +2675 1203 1282 1098 1306 +2676 321 490 336 1379 +2677 366 377 1087 1357 +2678 973 1154 1070 1285 +2679 247 249 728 1219 +2680 307 1134 1095 1483 +2681 558 563 1147 1365 +2682 1061 1441 1273 1465 +2683 969 1180 1132 1266 +2684 598 784 397 1081 +2685 156 848 850 1181 +2686 961 1314 1065 1439 +2687 1214 1270 995 1305 +2688 924 933 1281 1368 +2689 708 843 1249 1283 +2690 1184 1239 344 1247 +2691 92 1193 104 1461 +2692 951 1112 1329 1408 +2693 959 1120 1050 1206 +2694 1029 1084 1266 1467 +2695 486 485 1108 1457 +2696 1184 1247 344 1366 +2697 490 637 559 1097 +2698 542 710 299 1147 +2699 982 1056 1150 1360 +2700 901 116 1186 1294 +2701 1273 1441 1090 1465 +2702 998 1398 1141 1477 +2703 636 828 630 1449 +2704 387 386 479 1451 +2705 982 1056 1360 1464 +2706 571 1152 510 1450 +2707 1064 1315 958 1442 +2708 205 1164 203 1460 +2709 483 1319 1381 1429 +2710 215 211 214 1053 +2711 111 131 1178 1397 +2712 1141 1398 1045 1477 +2713 1079 959 1361 1384 +2714 92 89 88 1363 +2715 783 784 598 1081 +2716 1134 1224 964 1271 +2717 1087 987 1357 1364 +2718 405 1066 551 1228 +2719 716 1060 717 1300 +2720 961 1065 1209 1439 +2721 1091 1225 676 1445 +2722 1031 1430 1169 1432 +2723 1041 997 1333 1482 +2724 936 941 921 1432 +2725 356 1415 626 1437 +2726 1008 1060 1385 1478 +2727 833 439 447 1380 +2728 135 1235 1080 1320 +2729 1008 1362 1347 1478 +2730 1061 1273 140 1476 +2731 955 1170 1360 1464 +2732 808 930 911 1436 +2733 994 1381 1198 1464 +2734 344 1184 343 1239 +2735 303 640 553 1218 +2736 528 469 549 1054 +2737 1038 1222 1034 1230 +2738 222 221 1402 1407 +2739 1058 1231 1020 1290 +2740 781 1255 1072 1316 +2741 85 87 93 1307 +2742 905 1318 1453 1456 +2743 1096 1376 952 1398 +2744 635 1095 309 1258 +2745 974 1121 1089 1337 +2746 1014 1335 1256 1378 +2747 38 1292 115 1435 +2748 313 1111 314 1344 +2749 1127 1245 1004 1435 +2750 988 1308 1176 1479 +2751 426 428 464 1120 +2752 978 1044 1329 1370 +2753 496 492 791 1216 +2754 651 649 650 1208 +2755 1045 1322 1274 1398 +2756 1018 1185 1039 1195 +2757 407 406 379 1123 +2758 959 1121 1206 1337 +2759 376 375 1239 1247 +2760 785 1056 530 1383 +2761 1015 1188 1088 1263 +2762 953 1176 1266 1352 +2763 259 247 728 1484 +2764 1081 1100 1001 1386 +2765 213 331 1184 1462 +2766 338 638 381 1230 +2767 362 280 1139 1324 +2768 746 792 793 1280 +2769 1222 1268 990 1335 +2770 1046 984 1201 1407 +2771 575 376 404 1148 +2772 203 680 1460 1477 +2773 1057 1349 993 1382 +2774 787 1144 499 1347 +2775 366 377 579 1087 +2776 218 1218 1155 1415 +2777 967 1233 1126 1340 +2778 570 1253 333 1366 +2779 724 1219 248 1299 +2780 981 1252 1058 1399 +2781 956 1204 1085 1328 +2782 45 901 46 1294 +2783 181 612 178 1063 +2784 475 553 1218 1276 +2785 932 1267 940 1281 +2786 815 603 602 1065 +2787 1080 1234 1041 1333 +2788 1256 1335 1038 1378 +2789 891 153 1086 1422 +2790 1044 1006 1329 1408 +2791 335 171 737 1273 +2792 635 325 309 1095 +2793 1144 1362 1008 1411 +2794 914 157 796 1169 +2795 982 1101 1260 1274 +2796 837 358 378 1228 +2797 998 1118 1310 1376 +2798 527 469 528 1084 +2799 927 929 947 1368 +2800 177 748 600 1100 +2801 159 121 36 1343 +2802 222 1402 1197 1407 +2803 959 1121 1089 1214 +2804 984 1046 1201 1416 +2805 294 1223 1094 1454 +2806 1226 1254 951 1406 +2807 1026 1228 1066 1473 +2808 1203 1206 1007 1471 +2809 973 1065 1154 1377 +2810 415 417 416 1446 +2811 358 329 1238 1327 +2812 109 1330 107 1363 +2813 1055 999 1345 1434 +2814 43 1210 119 1467 +2815 391 1209 210 1312 +2816 1043 1166 1135 1236 +2817 1015 1311 1122 1392 +2818 140 1061 737 1273 +2819 948 1206 1203 1471 +2820 272 1195 722 1373 +2821 640 1155 218 1218 +2822 1077 1147 988 1409 +2823 712 186 182 1070 +2824 262 258 261 1088 +2825 429 431 430 1168 +2826 974 1138 1050 1189 +2827 453 1140 435 1174 +2828 1126 1233 1002 1340 +2829 1092 535 1397 1480 +2830 1155 1201 219 1415 +2831 1059 1238 987 1327 +2832 694 693 537 1245 +2833 802 798 387 1099 +2834 221 219 220 1201 +2835 718 1185 763 1353 +2836 835 561 735 1189 +2837 50 51 1418 1450 +2838 1218 1276 989 1401 +2839 433 434 432 1350 +2840 771 1325 501 1396 +2841 964 1243 1172 1427 +2842 331 1396 1184 1462 +2843 674 1091 676 1445 +2844 958 1117 1221 1285 +2845 512 537 693 1245 +2846 365 1362 318 1478 +2847 277 1392 1122 1463 +2848 639 1143 229 1331 +2849 403 574 1333 1403 +2850 954 1270 1192 1290 +2851 882 1043 569 1166 +2852 1084 1367 527 1433 +2853 980 1036 1153 1391 +2854 1023 1138 1104 1291 +2855 319 685 317 1196 +2856 1161 1171 975 1422 +2857 1012 1227 1053 1288 +2858 487 1056 785 1381 +2859 362 282 280 1324 +2860 810 859 1028 1267 +2861 311 312 1344 1438 +2862 899 115 1245 1435 +2863 446 449 450 1246 +2864 1023 1393 1090 1395 +2865 628 1134 307 1483 +2866 792 492 493 1077 +2867 270 654 655 1082 +2868 1104 1138 1023 1393 +2869 436 462 434 1229 +2870 313 312 1111 1344 +2871 628 298 307 1134 +2872 1210 1303 1054 1356 +2873 1056 1381 1108 1464 +2874 1255 1313 973 1388 +2875 1070 1154 973 1313 +2876 1178 1397 535 1480 +2877 1003 1102 1061 1476 +2878 120 1075 736 1435 +2879 1001 1237 1100 1354 +2880 1130 995 1270 1290 +2881 1158 1202 323 1481 +2882 778 1060 716 1484 +2883 228 226 1331 1455 +2884 976 1221 1074 1310 +2885 449 1126 450 1246 +2886 163 745 1149 1294 +2887 37 159 1114 1343 +2888 519 516 518 1145 +2889 1069 991 1191 1344 +2890 508 372 727 1410 +2891 523 1153 862 1348 +2892 775 733 174 1393 +2893 752 146 35 1476 +2894 987 1041 1296 1404 +2895 244 799 246 1187 +2896 204 1164 1312 1439 +2897 182 1070 186 1419 +2898 1050 1138 974 1291 +2899 413 1272 743 1443 +2900 1030 1287 1073 1321 +2901 982 1260 1093 1376 +2902 1139 1261 1024 1421 +2903 988 1176 1308 1352 +2904 156 851 880 1193 +2905 771 501 389 1396 +2906 1046 1331 1103 1421 +2907 1014 1378 1099 1451 +2908 602 1065 603 1388 +2909 1008 1278 1269 1385 +2910 391 210 1119 1312 +2911 271 691 724 1299 +2912 1121 1263 985 1361 +2913 720 415 412 1062 +2914 1198 1381 1056 1464 +2915 282 1139 280 1324 +2916 1115 1385 1278 1458 +2917 747 1137 370 1327 +2918 748 1100 177 1359 +2919 222 223 221 1407 +2920 1055 1016 1358 1443 +2921 981 1231 1058 1290 +2922 950 1288 1109 1387 +2923 240 242 241 1428 +2924 1041 1234 1080 1404 +2925 1068 1159 979 1205 +2926 1112 1236 972 1371 +2927 348 350 1113 1386 +2928 973 1313 1072 1322 +2929 1099 1014 1256 1378 +2930 467 471 1183 1336 +2931 1046 1331 1073 1407 +2932 379 406 405 1123 +2933 1068 1144 1355 1411 +2934 1062 1272 1055 1434 +2935 980 1307 1092 1358 +2936 1029 1266 1180 1467 +2937 958 1117 1268 1332 +2938 245 247 259 1484 +2939 769 1257 411 1345 +2940 1103 1331 1011 1421 +2941 355 395 1196 1317 +2942 353 758 1113 1429 +2943 1135 1166 986 1236 +2944 1097 1024 1308 1379 +2945 100 1066 1259 1351 +2946 1230 1365 339 1409 +2947 467 471 472 1183 +2948 728 1144 786 1484 +2949 426 424 1384 1448 +2950 1096 1354 1264 1442 +2951 669 670 673 1172 +2952 543 832 556 1156 +2953 969 1233 1084 1266 +2954 965 1103 1308 1421 +2955 1020 1235 1252 1424 +2956 464 1120 428 1453 +2957 303 218 640 1155 +2958 1196 1362 1008 1478 +2959 1049 1199 1192 1257 +2960 1061 1341 737 1441 +2961 770 772 407 1338 +2962 1032 1260 1184 1326 +2963 908 576 796 1169 +2964 84 139 797 1348 +2965 303 1155 640 1218 +2966 326 1069 636 1258 +2967 1088 1188 985 1263 +2968 495 541 795 1132 +2969 827 785 1198 1381 +2970 515 1058 890 1320 +2971 959 1270 1089 1337 +2972 89 1259 1085 1363 +2973 544 553 476 1276 +2974 994 1198 1274 1464 +2975 983 1052 1211 1240 +2976 530 1383 1056 1457 +2977 135 892 1080 1235 +2978 34 117 1102 1265 +2979 538 569 1043 1292 +2980 1023 1156 1151 1293 +2981 188 1154 187 1419 +2982 836 1078 463 1350 +2983 195 1072 1255 1313 +2984 78 139 84 1348 +2985 950 1117 1289 1332 +2986 117 902 1102 1265 +2987 1075 1390 1127 1435 +2988 1148 1239 966 1247 +2989 1142 1189 997 1333 +2990 188 189 187 1154 +2991 448 824 1272 1405 +2992 955 1101 1170 1464 +2993 824 1272 1092 1443 +2994 779 516 519 1145 +2995 552 1228 550 1351 +2996 392 293 294 1094 +2997 1004 1284 1044 1408 +2998 457 450 458 1433 +2999 1083 1244 1002 1245 +3000 1080 1234 971 1404 +3001 965 1046 1157 1455 +3002 979 1205 1159 1293 +3003 948 1361 1206 1471 +3004 1052 1249 1040 1342 +3005 1000 1250 1091 1371 +3006 933 1368 1175 1447 +3007 216 776 771 1093 +3008 900 1286 1127 1367 +3009 1005 1129 1261 1352 +3010 364 717 778 1060 +3011 1201 1402 221 1407 +3012 760 1108 484 1319 +3013 1054 1336 984 1412 +3014 969 1266 1132 1271 +3015 1005 1132 1266 1271 +3016 1092 1397 1178 1480 +3017 144 1234 1181 1459 +3018 198 301 1167 1198 +3019 188 1313 1154 1419 +3020 45 46 143 1294 +3021 318 319 317 1196 +3022 1092 1145 980 1358 +3023 169 1075 120 1390 +3024 1184 1260 966 1326 +3025 1151 1156 1013 1293 +3026 991 1060 1339 1385 +3027 963 1210 1054 1356 +3028 959 1206 1050 1337 +3029 954 1192 1270 1305 +3030 665 425 421 1165 +3031 176 178 1063 1359 +3032 1075 1284 736 1435 +3033 271 724 248 1299 +3034 1000 1250 1082 1428 +3035 672 669 668 1194 +3036 47 48 118 1131 +3037 477 1401 1074 1423 +3038 408 725 470 1334 +3039 33 165 32 1265 +3040 1107 1114 957 1343 +3041 661 1143 681 1212 +3042 991 1278 1385 1458 +3043 169 736 120 1075 +3044 1049 1179 1027 1199 +3045 541 632 794 1132 +3046 783 784 1081 1418 +3047 293 1094 392 1463 +3048 950 1256 1227 1335 +3049 555 1142 561 1400 +3050 1137 1357 987 1364 +3051 143 1067 745 1294 +3052 46 143 1294 1414 +3053 935 932 915 1267 +3054 975 1161 1086 1215 +3055 1092 1272 824 1405 +3056 477 642 1401 1423 +3057 150 105 82 1351 +3058 1080 1235 997 1424 +3059 1012 1157 1099 1416 +3060 914 138 917 1436 +3061 215 211 1053 1415 +3062 163 745 168 1149 +3063 431 1174 433 1350 +3064 475 399 1276 1410 +3065 682 1212 287 1444 +3066 997 1235 1105 1424 +3067 263 658 225 1073 +3068 771 1093 776 1325 +3069 54 155 768 1422 +3070 324 298 628 1224 +3071 949 1241 1232 1346 +3072 1109 1387 1288 1485 +3073 368 369 353 1319 +3074 1014 1209 1065 1451 +3075 1060 1111 991 1339 +3076 1011 1243 1139 1427 +3077 991 1232 1202 1458 +3078 1011 1421 1139 1452 +3079 982 1198 1056 1464 +3080 1063 1237 958 1359 +3081 172 1284 634 1449 +3082 131 839 97 1178 +3083 1202 1232 1051 1458 +3084 83 104 1193 1461 +3085 1009 1418 1146 1450 +3086 222 1197 223 1407 +3087 932 924 933 1281 +3088 700 1208 652 1428 +3089 1070 1285 1154 1419 +3090 676 674 677 1091 +3091 569 568 847 1292 +3092 170 619 618 1295 +3093 463 595 1168 1453 +3094 157 908 796 1169 +3095 1107 1284 172 1449 +3096 878 105 150 1351 +3097 430 1168 431 1350 +3098 965 1099 1157 1416 +3099 970 1098 1269 1282 +3100 987 1217 1106 1238 +3101 87 1085 1307 1391 +3102 1078 1265 902 1456 +3103 1011 1321 1261 1421 +3104 899 115 536 1245 +3105 720 415 1062 1446 +3106 1064 958 1131 1332 +3107 891 153 577 1086 +3108 91 1259 89 1363 +3109 1071 1124 1010 1289 +3110 799 831 1299 1420 +3111 700 1133 651 1208 +3112 1168 1185 977 1471 +3113 1028 1213 1040 1283 +3114 955 1170 1076 1360 +3115 1076 1170 993 1360 +3116 1040 1213 1171 1283 +3117 773 745 143 1067 +3118 203 201 680 1477 +3119 986 1323 1047 1380 +3120 728 249 291 1144 +3121 668 676 1225 1445 +3122 993 1368 1173 1430 +3123 798 713 387 1099 +3124 1022 1102 1078 1241 +3125 981 1130 1231 1290 +3126 1075 1132 969 1390 +3127 1150 1325 982 1382 +3128 450 1126 459 1433 +3129 358 329 341 1238 +3130 982 1274 1198 1464 +3131 910 939 879 1171 +3132 1059 1123 999 1338 +3133 950 1207 1109 1256 +3134 905 1318 587 1453 +3135 220 1201 1155 1402 +3136 37 1114 847 1292 +3137 1006 1044 1297 1408 +3138 970 1355 1144 1411 +3139 420 422 418 1231 +3140 1089 954 1305 1482 +3141 857 1160 583 1364 +3142 1058 1235 1080 1252 +3143 1053 1119 1012 1415 +3144 545 472 544 1186 +3145 188 189 1154 1313 +3146 613 614 340 1277 +3147 1100 1131 958 1359 +3148 443 1298 1083 1468 +3149 1109 1248 1176 1356 +3150 1137 1327 987 1357 +3151 372 334 371 1177 +3152 1014 1451 1065 1469 +3153 498 565 480 1068 +3154 1006 1224 1134 1271 +3155 373 756 1239 1349 +3156 1010 1124 1071 1414 +3157 173 795 1180 1280 +3158 205 203 207 1460 +3159 950 1268 1117 1332 +3160 1013 1311 1122 1375 +3161 434 836 432 1350 +3162 667 239 241 1445 +3163 993 1076 1368 1430 +3164 1102 1241 1022 1346 +3165 833 447 1163 1380 +3166 503 1349 500 1382 +3167 40 1127 900 1286 +3168 1087 1357 377 1364 +3169 1133 1275 1208 1428 +3170 258 257 261 1088 +3171 306 388 308 1475 +3172 344 1239 375 1247 +3173 973 1154 1285 1377 +3174 667 241 1250 1445 +3175 1009 1152 1048 1264 +3176 743 1272 824 1443 +3177 531 529 1447 1457 +3178 1028 1040 1249 1283 +3179 40 900 41 1286 +3180 1030 1336 1054 1412 +3181 30 1050 897 1318 +3182 92 104 109 1160 +3183 498 1068 480 1362 +3184 437 438 436 1229 +3185 1140 1229 986 1380 +3186 837 552 855 1228 +3187 263 223 1197 1407 +3188 1154 1285 990 1419 +3189 993 1279 1173 1368 +3190 1111 1339 314 1344 +3191 987 1059 1327 1473 +3192 830 1069 326 1344 +3193 87 1085 90 1307 +3194 484 486 485 1108 +3195 278 1103 273 1452 +3196 1027 1217 1106 1296 +3197 870 916 137 1283 +3198 545 1186 544 1470 +3199 216 1093 771 1396 +3200 733 1104 165 1393 +3201 492 1216 383 1409 +3202 959 1214 1089 1270 +3203 636 326 830 1069 +3204 571 570 510 1152 +3205 453 689 688 1140 +3206 454 429 697 1185 +3207 346 347 348 1386 +3208 1018 1185 1168 1471 +3209 1122 1311 960 1375 +3210 481 767 1199 1338 +3211 1082 1163 1047 1323 +3212 344 343 375 1239 +3213 364 1060 778 1478 +3214 348 349 350 1386 +3215 993 1076 1360 1368 +3216 37 847 568 1292 +3217 1157 1201 1012 1437 +3218 1046 1248 1412 1421 +3219 967 1226 1128 1340 +3220 696 1187 245 1484 +3221 549 1054 906 1186 +3222 1130 1270 1020 1290 +3223 313 311 312 1344 +3224 450 657 459 1126 +3225 542 297 324 1224 +3226 231 1243 235 1452 +3227 243 1187 696 1250 +3228 603 1065 815 1469 +3229 960 1122 1094 1389 +3230 538 1245 115 1292 +3231 1099 1256 1190 1378 +3232 424 455 423 1165 +3233 1103 1024 1308 1421 +3234 1022 1102 1346 1394 +3235 1042 1360 1281 1368 +3236 724 1136 250 1219 +3237 969 1127 1075 1390 +3238 1082 1250 1000 1371 +3239 1093 1167 998 1477 +3240 1054 1303 1030 1412 +3241 955 1056 1108 1464 +3242 1062 1130 995 1446 +3243 778 1347 1060 1484 +3244 231 233 234 1243 +3245 501 503 500 1382 +3246 1102 1003 1346 1394 +3247 948 1121 1206 1361 +3248 791 614 496 1216 +3249 989 1064 1124 1332 +3250 965 1157 1046 1416 +3251 391 625 210 1209 +3252 992 1160 1137 1364 +3253 282 285 1129 1324 +3254 1118 1253 212 1423 +3255 780 483 488 1429 +3256 560 474 555 1142 +3257 1087 1181 992 1413 +3258 275 1094 293 1389 +3259 696 1250 1187 1300 +3260 505 1325 506 1382 +3261 984 1183 1054 1356 +3262 1104 1273 165 1393 +3263 1080 1235 1058 1320 +3264 962 1187 1082 1250 +3265 309 307 308 1095 +3266 941 1171 910 1200 +3267 981 1252 1110 1290 +3268 928 932 940 1281 +3269 1100 958 1237 1359 +3270 159 36 1114 1343 +3271 1166 1236 1043 1474 +3272 1049 1182 995 1214 +3273 1043 1244 1083 1245 +3274 727 371 571 1152 +3275 971 1204 1110 1328 +3276 175 167 176 1359 +3277 1003 1166 1346 1394 +3278 444 1083 694 1468 +3279 949 1278 1115 1385 +3280 739 253 813 1125 +3281 672 668 676 1225 +3282 875 83 1193 1461 +3283 1236 1323 972 1371 +3284 457 458 1367 1433 +3285 662 1229 664 1394 +3286 580 584 579 1413 +3287 543 360 832 1151 +3288 662 1166 664 1229 +3289 841 833 447 1163 +3290 90 1085 1259 1307 +3291 907 538 882 1043 +3292 573 727 571 1152 +3293 1069 1258 978 1370 +3294 1091 1250 1000 1445 +3295 290 692 763 1136 +3296 780 488 1316 1429 +3297 836 596 463 1078 +3298 537 907 694 1245 +3299 182 1301 1070 1419 +3300 599 489 1197 1336 +3301 1210 1303 1029 1467 +3302 1011 1331 1103 1452 +3303 659 660 235 1243 +3304 520 1279 860 1382 +3305 444 694 442 1468 +3306 971 1328 1110 1404 +3307 989 1218 1053 1288 +3308 263 644 645 1287 +3309 312 1111 1344 1438 +3310 977 1168 1078 1350 +3311 1044 1258 1069 1370 +3312 1057 966 1184 1260 +3313 1011 1261 1139 1421 +3314 1064 1131 1124 1332 +3315 1059 956 1123 1473 +3316 870 852 916 1171 +3317 680 776 216 1093 +3318 964 1261 1128 1271 +3319 184 1222 183 1301 +3320 324 297 298 1224 +3321 849 857 583 1364 +3322 54 55 155 1200 +3323 613 496 614 1216 +3324 664 1229 1166 1394 +3325 957 1370 1069 1458 +3326 116 1210 1186 1294 +3327 293 1389 1094 1463 +3328 1229 1346 1166 1394 +3329 1039 1306 1185 1471 +3330 39 38 115 1435 +3331 1086 1146 983 1417 +3332 142 1180 1286 1467 +3333 418 422 597 1231 +3334 1202 1341 1017 1441 +3335 1042 1175 1360 1368 +3336 439 440 438 1135 +3337 965 1097 1308 1379 +3338 441 1135 833 1298 +3339 124 895 588 1050 +3340 1144 1347 786 1484 +3341 963 1186 1054 1210 +3342 39 160 38 1435 +3343 1093 998 1460 1477 +3344 503 803 1173 1279 +3345 983 1211 1052 1342 +3346 987 1327 1137 1473 +3347 567 790 361 1472 +3348 402 802 391 1119 +3349 716 1060 1300 1484 +3350 1076 1213 922 1432 +3351 1172 1194 1037 1369 +3352 713 1099 798 1302 +3353 389 501 500 1057 +3354 991 1069 1191 1458 +3355 910 1171 879 1200 +3356 1006 1134 1095 1406 +3357 186 1070 1313 1419 +3358 1029 1266 1084 1303 +3359 780 1316 1072 1429 +3360 255 813 253 1188 +3361 1025 1194 1172 1369 +3362 1121 1263 948 1311 +3363 1004 1075 1254 1435 +3364 665 465 425 1079 +3365 1088 1015 1311 1472 +3366 1095 1134 1037 1406 +3367 590 1118 212 1423 +3368 311 1344 1258 1438 +3369 667 1250 289 1445 +3370 695 433 431 1174 +3371 618 1295 619 1341 +3372 1145 980 1358 1399 +3373 284 283 1220 1454 +3374 184 185 183 1222 +3375 1002 1246 1126 1340 +3376 1004 1244 1254 1408 +3377 701 1224 628 1483 +3378 980 1178 1092 1307 +3379 382 339 1365 1409 +3380 999 1110 1217 1434 +3381 963 1054 1186 1356 +3382 339 1230 381 1365 +3383 558 559 563 1365 +3384 486 526 867 1108 +3385 949 1385 1232 1465 +3386 357 1357 370 1364 +3387 773 1067 143 1414 +3388 525 1148 404 1239 +3389 1047 1187 1033 1299 +3390 604 1162 192 1469 +3391 1150 1175 993 1360 +3392 1074 1164 961 1312 +3393 1012 1416 1109 1485 +3394 479 815 1451 1469 +3395 914 1169 796 1436 +3396 123 1064 884 1315 +3397 1072 1113 1001 1372 +3398 809 930 808 1436 +3399 984 1046 1248 1412 +3400 175 340 773 1277 +3401 1002 1127 1254 1367 +3402 994 1316 1198 1381 +3403 961 1227 1053 1312 +3404 977 1185 1306 1471 +3405 166 1131 49 1315 +3406 998 1314 1164 1439 +3407 413 726 1055 1443 +3408 355 395 319 1196 +3409 1060 991 1278 1385 +3410 1133 1025 1369 1466 +3411 806 1334 1304 1374 +3412 1027 1238 1217 1338 +3413 606 192 604 1162 +3414 1009 1048 1251 1264 +3415 711 342 232 1090 +3416 1092 1016 1307 1397 +3417 971 1204 1116 1399 +3418 954 1192 1217 1434 +3419 1071 1276 1124 1289 +3420 382 339 381 1365 +3421 609 777 1182 1257 +3422 178 1237 1063 1359 +3423 980 1116 1204 1399 +3424 395 686 685 1317 +3425 783 748 738 1100 +3426 106 875 83 1193 +3427 990 1162 1154 1419 +3428 403 367 400 1403 +3429 989 1124 1064 1410 +3430 317 685 323 1158 +3431 417 418 416 1130 +3432 844 126 28 1333 +3433 496 383 492 1216 +3434 608 1182 766 1373 +3435 965 1109 1248 1308 +3436 1049 1179 960 1305 +3437 1175 1368 1042 1447 +3438 1009 1264 1354 1442 +3439 987 1238 1106 1327 +3440 356 391 210 1119 +3441 1093 1325 771 1396 +3442 738 783 1100 1418 +3443 594 305 344 1366 +3444 1303 1321 1030 1412 +3445 889 1086 153 1422 +3446 1124 1276 1071 1470 +3447 1069 1370 1107 1449 +3448 1071 1276 1289 1470 +3449 887 510 1048 1450 +3450 1092 1358 1016 1443 +3451 300 1222 338 1230 +3452 696 1300 1187 1484 +3453 1007 1453 1318 1456 +3454 889 53 1086 1422 +3455 92 83 104 1193 +3456 953 1266 1261 1352 +3457 565 567 361 1392 +3458 981 1110 1252 1399 +3459 468 1105 522 1235 +3460 981 1145 1058 1231 +3461 963 1109 1176 1356 +3462 547 1071 1186 1470 +3463 700 1133 1208 1428 +3464 1004 1254 1075 1408 +3465 756 869 525 1239 +3466 960 1179 1122 1389 +3467 766 608 609 1182 +3468 983 1101 1240 1251 +3469 477 1074 590 1423 +3470 355 816 557 1159 +3471 1090 1317 1017 1441 +3472 968 1104 1265 1456 +3473 700 652 270 1428 +3474 1054 984 1356 1412 +3475 195 1255 190 1313 +3476 100 94 1259 1374 +3477 505 506 1325 1426 +3478 981 1055 1272 1434 +3479 986 1229 1140 1346 +3480 951 1406 1254 1408 +3481 1079 1195 1018 1361 +3482 1325 1382 1150 1426 +3483 300 185 338 1222 +3484 97 874 78 1178 +3485 117 902 753 1102 +3486 455 1165 424 1448 +3487 983 1086 1161 1215 +3488 1046 1201 1157 1407 +3489 554 1223 555 1400 +3490 492 384 493 1077 +3491 220 221 1201 1402 +3492 789 535 1092 1480 +3493 982 1167 1198 1274 +3494 815 1209 800 1451 +3495 184 703 185 1222 +3496 304 305 594 1366 +3497 320 232 342 1393 +3498 1064 1177 976 1221 +3499 989 1177 1064 1221 +3500 977 1282 1203 1306 +3501 721 1079 665 1309 +3502 841 1163 447 1380 +3503 773 614 745 1067 +3504 725 726 1334 1443 +3505 493 793 792 1280 +3506 1086 983 1161 1417 +3507 1094 1220 283 1454 +3508 127 527 1084 1367 +3509 1111 978 1258 1438 +3510 697 427 465 1384 +3511 969 1075 1127 1254 +3512 1027 1179 1049 1305 +3513 848 1181 24 1459 +3514 1109 1256 1207 1479 +3515 960 1214 1049 1305 +3516 978 1111 1091 1438 +3517 586 895 507 1448 +3518 825 172 634 1449 +3519 720 1062 1257 1446 +3520 986 1047 1262 1380 +3521 780 195 774 1072 +3522 1140 1229 1022 1346 +3523 232 335 711 1090 +3524 971 1252 1080 1404 +3525 599 1336 1197 1402 +3526 1059 999 1217 1338 +3527 648 445 452 1246 +3528 970 1205 1098 1306 +3529 1111 1191 991 1344 +3530 981 1358 1055 1434 +3531 1087 992 1328 1364 +3532 48 49 166 1131 +3533 258 1088 262 1472 +3534 954 1110 1217 1404 +3535 897 30 124 1050 +3536 1059 1123 1228 1473 +3537 963 1067 1207 1387 +3538 1376 1460 1118 1462 +3539 1047 1323 1163 1380 +3540 665 1165 421 1309 +3541 518 517 523 1116 +3542 869 809 808 1436 +3543 26 135 1080 1320 +3544 962 1191 1115 1278 +3545 1167 1198 301 1426 +3546 1048 1152 1009 1450 +3547 979 1362 1068 1411 +3548 718 698 763 1185 +3549 927 1175 933 1368 +3550 980 1348 1145 1480 +3551 426 424 425 1384 +3552 966 1101 1170 1215 +3553 250 1219 1136 1431 +3554 274 278 273 1452 +3555 312 363 719 1111 +3556 234 673 659 1243 +3557 972 1163 1135 1298 +3558 961 1164 1314 1439 +3559 626 356 211 1415 +3560 990 1301 1222 1419 +3561 135 591 892 1235 +3562 589 1078 902 1456 +3563 904 1084 528 1467 +3564 965 1109 1308 1479 +3565 981 1145 1092 1358 +3566 99 107 102 1330 +3567 1010 1124 1131 1332 +3568 1057 1325 501 1382 +3569 993 1360 1175 1368 +3570 305 213 331 1184 +3571 1000 1133 1369 1466 +3572 465 425 1079 1384 +3573 144 1181 25 1459 +3574 135 892 27 1080 +3575 554 560 555 1223 +3576 1113 1211 1052 1240 +3577 283 293 1094 1454 +3578 551 751 129 1066 +3579 863 390 1137 1327 +3580 156 850 851 1193 +3581 958 1285 1096 1354 +3582 879 1171 155 1200 +3583 1296 1403 996 1482 +3584 972 1298 1135 1468 +3585 554 1151 393 1223 +3586 984 1197 1402 1407 +3587 1038 1190 1256 1378 +3588 952 1240 1101 1251 +3589 1074 1118 976 1310 +3590 1070 990 1285 1419 +3591 986 1166 1229 1346 +3592 135 890 1235 1320 +3593 198 818 301 1198 +3594 122 733 775 1138 +3595 973 1314 1141 1388 +3596 1086 1161 975 1422 +3597 1183 1336 564 1402 +3598 795 794 699 1132 +3599 976 1118 1074 1423 +3600 842 1142 474 1403 +3601 1175 1360 1150 1383 +3602 948 1205 1203 1395 +3603 982 1167 1093 1325 +3604 368 352 820 1249 +3605 1117 1268 990 1285 +3606 1003 1346 1166 1474 +3607 1069 1370 1191 1458 +3608 109 107 95 1363 +3609 974 1189 1050 1337 +3610 586 587 588 1453 +3611 48 49 1131 1315 +3612 764 273 731 1103 +3613 109 1160 1330 1363 +3614 363 1111 312 1438 +3615 1063 1268 1034 1277 +3616 1092 1307 1178 1397 +3617 350 353 758 1113 +3618 881 1092 535 1397 +3619 318 1158 317 1478 +3620 185 491 338 1222 +3621 900 1127 524 1367 +3622 1047 986 1262 1323 +3623 910 941 936 1171 +3624 983 1146 1081 1417 +3625 1054 1183 984 1336 +3626 32 1265 1104 1456 +3627 576 908 891 1148 +3628 1001 1237 1070 1372 +3629 952 1251 1101 1326 +3630 173 795 699 1180 +3631 1055 1272 1092 1358 +3632 1121 1291 974 1375 +3633 599 1197 222 1402 +3634 1069 1258 326 1344 +3635 633 794 632 1297 +3636 302 827 785 1198 +3637 726 806 1334 1443 +3638 869 502 809 1349 +3639 740 698 697 1195 +3640 733 165 174 1393 +3641 1053 1227 1119 1312 +3642 492 384 1077 1409 +3643 550 551 150 1351 +3644 954 1217 1296 1404 +3645 353 1319 482 1429 +3646 796 1169 858 1436 +3647 1005 1077 1147 1352 +3648 1175 1383 840 1447 +3649 1058 1235 1020 1440 +3650 382 1147 710 1409 +3651 354 355 319 1196 +3652 995 1182 1049 1257 +3653 362 280 660 1139 +3654 680 1093 216 1460 +3655 636 830 623 1069 +3656 632 701 629 1483 +3657 1022 1262 1140 1346 +3658 1063 1268 990 1301 +3659 842 1333 1142 1403 +3660 959 1121 1214 1361 +3661 788 1405 1145 1480 +3662 275 1389 293 1463 +3663 318 354 1196 1362 +3664 1089 1121 960 1214 +3665 55 879 155 1200 +3666 1074 1177 976 1423 +3667 1020 1231 1058 1440 +3668 1058 1145 981 1399 +3669 788 1145 533 1480 +3670 851 875 106 1193 +3671 983 1211 1081 1240 +3672 1304 1334 1016 1374 +3673 875 136 83 1461 +3674 572 571 510 1450 +3675 89 90 87 1085 +3676 978 1095 1258 1438 +3677 1103 1331 1046 1455 +3678 1087 1357 987 1404 +3679 89 90 1085 1259 +3680 319 395 685 1196 +3681 564 1183 471 1336 +3682 314 1111 719 1339 +3683 785 530 838 1383 +3684 1071 1186 963 1294 +3685 809 872 1173 1349 +3686 1105 959 1165 1448 +3687 985 1195 1079 1361 +3688 161 169 120 1390 +3689 986 1163 1323 1380 +3690 643 263 223 1197 +3691 953 1128 1261 1266 +3692 984 1402 1201 1407 +3693 826 768 834 1161 +3694 1147 1308 1024 1352 +3695 332 212 1253 1423 +3696 584 1181 144 1234 +3697 1003 1232 1051 1295 +3698 1218 1276 1021 1289 +3699 1081 1211 983 1417 +3700 1186 1210 963 1294 +3701 335 711 1090 1441 +3702 810 912 945 1267 +3703 1041 1403 1296 1482 +3704 996 1296 1242 1403 +3705 788 533 1405 1480 +3706 292 295 284 1106 +3707 715 141 1107 1343 +3708 165 1265 33 1273 +3709 499 498 365 1362 +3710 498 787 814 1355 +3711 965 1046 1248 1416 +3712 260 609 777 1182 +3713 210 1209 625 1312 +3714 901 45 116 1294 +3715 1218 1021 1288 1289 +3716 960 1121 1089 1375 +3717 382 1365 1147 1409 +3718 538 569 882 1043 +3719 961 1065 1314 1377 +3720 849 1364 583 1461 +3721 699 1132 794 1390 +3722 878 150 551 1351 +3723 905 588 587 1318 +3724 27 26 135 1080 +3725 211 206 214 1312 +3726 1024 1352 1308 1421 +3727 527 460 469 1433 +3728 503 1173 872 1349 +3729 520 1175 807 1279 +3730 1032 1376 1118 1462 +3731 188 190 189 1313 +3732 802 391 1119 1451 +3733 764 1103 731 1455 +3734 1068 1355 970 1411 +3735 433 453 435 1174 +3736 922 1213 1076 1281 +3737 602 1141 200 1439 +3738 788 779 519 1145 +3739 521 840 861 1383 +3740 974 1151 1223 1375 +3741 789 535 824 1092 +3742 32 1104 31 1318 +3743 963 1210 1149 1294 +3744 164 1295 1061 1476 +3745 874 139 78 1348 +3746 667 289 674 1445 +3747 477 601 590 1074 +3748 315 316 1158 1339 +3749 301 1198 818 1426 +3750 270 1082 242 1428 +3751 984 1248 1046 1416 +3752 632 629 1297 1483 +3753 667 241 289 1250 +3754 558 1147 382 1365 +3755 1049 1192 995 1257 +3756 825 1107 172 1449 +3757 270 655 242 1082 +3758 577 153 889 1086 +3759 951 1254 1226 1340 +3760 236 237 1444 1466 +3761 175 773 734 1414 +3762 273 278 731 1103 +3763 780 1072 774 1429 +3764 1021 1071 1186 1387 +3765 746 793 173 1280 +3766 965 1308 1248 1421 +3767 503 860 1279 1382 +3768 1202 1232 991 1385 +3769 1074 1164 1118 1310 +3770 986 1135 1163 1380 +3771 143 1067 1294 1414 +3772 1021 1186 1071 1470 +3773 89 1085 87 1391 +3774 1048 1247 966 1326 +3775 998 1310 1164 1314 +3776 737 1341 759 1441 +3777 751 406 470 1334 +3778 190 1255 191 1388 +3779 725 413 726 1055 +3780 975 1148 1086 1422 +3781 481 770 767 1338 +3782 317 315 316 1158 +3783 525 858 404 1148 +3784 1081 1146 983 1251 +3785 884 123 593 1064 +3786 974 1142 1189 1337 +3787 544 1276 476 1470 +3788 1117 1335 1227 1377 +3789 997 1189 1142 1337 +3790 1133 1000 1275 1428 +3791 510 570 380 1366 +3792 469 467 906 1054 +3793 968 1273 1090 1465 +3794 953 1321 1303 1412 +3795 487 1381 485 1457 +3796 1045 1198 1167 1274 +3797 406 408 470 1123 +3798 989 1276 1218 1289 +3799 874 84 78 139 +3800 989 1221 1064 1332 +3801 32 733 31 1104 +3802 623 636 1069 1449 +3803 589 905 1453 1456 +3804 989 1218 1288 1289 +3805 586 585 1120 1448 +3806 52 134 889 1146 +3807 1125 1188 1015 1263 +3808 353 482 758 1429 +3809 1096 1322 952 1354 +3810 925 928 942 1213 +3811 1262 1380 1047 1420 +3812 505 819 506 1426 +3813 953 1308 1352 1421 +3814 964 1324 1134 1475 +3815 590 208 212 1118 +3816 1055 981 1272 1358 +3817 586 1120 464 1453 +3818 1012 1415 1119 1437 +3819 1115 1262 986 1323 +3820 690 453 695 1174 +3821 1005 1147 1129 1352 +3822 726 866 806 1443 +3823 1120 1206 959 1361 +3824 1119 1209 1014 1451 +3825 100 1259 91 1351 +3826 41 1286 142 1390 +3827 177 600 179 1237 +3828 964 1271 1226 1406 +3829 953 1261 1321 1421 +3830 50 738 1315 1418 +3831 272 762 722 1195 +3832 311 1258 309 1438 +3833 731 1103 278 1379 +3834 840 1175 861 1383 +3835 195 781 190 1255 +3836 1232 1385 1017 1465 +3837 85 1153 86 1391 +3838 986 1166 1346 1474 +3839 1002 1127 1245 1254 +3840 688 1140 689 1420 +3841 959 1089 1121 1337 +3842 99 1330 102 1351 +3843 554 543 393 1151 +3844 561 555 474 1142 +3845 641 475 1218 1401 +3846 725 1055 726 1443 +3847 975 1200 1171 1432 +3848 972 1163 1082 1323 +3849 96 90 1259 1307 +3850 208 209 1118 1460 +3851 365 318 732 1478 +3852 964 1172 1139 1324 +3853 345 602 200 1439 +3854 973 1154 1065 1388 +3855 690 1174 695 1353 +3856 987 1137 1328 1473 +3857 982 1167 1325 1426 +3858 922 1281 1076 1368 +3859 1084 1030 1233 1433 +3860 589 596 902 1078 +3861 1146 1251 1009 1450 +3862 970 1144 1219 1269 +3863 814 739 567 1355 +3864 953 1321 1412 1421 +3865 1018 1361 1120 1384 +3866 843 760 368 1249 +3867 256 254 272 1188 +3868 681 661 639 1143 +3869 1062 1257 1192 1345 +3870 987 1328 1087 1404 +3871 973 1065 1314 1388 +3872 1060 1347 778 1478 +3873 142 1286 42 1467 +3874 102 873 82 1351 +3875 420 616 422 1231 +3876 955 1170 1101 1215 +3877 34 33 117 1265 +3878 231 235 230 1452 +3879 948 1203 1205 1306 +3880 839 1178 131 1397 +3881 948 1205 1263 1306 +3882 1096 1264 976 1442 +3883 958 1064 1221 1332 +3884 224 666 627 1201 +3885 346 348 497 1372 +3886 1024 1129 1147 1352 +3887 37 159 36 1114 +3888 999 1217 1192 1434 +3889 994 1316 1381 1429 +3890 419 420 418 1130 +3891 968 1241 1061 1465 +3892 203 1164 202 1439 +3893 974 1189 1142 1400 +3894 939 936 916 1171 +3895 1039 1188 1125 1263 +3896 987 1242 1106 1296 +3897 639 233 229 1143 +3898 1024 1261 1129 1352 +3899 166 49 738 1315 +3900 294 1094 293 1454 +3901 770 1199 772 1338 +3902 306 1134 286 1324 +3903 788 519 533 1145 +3904 426 1384 1120 1448 +3905 1092 1272 981 1358 +3906 870 707 852 1171 +3907 897 1050 588 1318 +3908 1106 1220 996 1454 +3909 481 1199 770 1338 +3910 1095 1134 1006 1483 +3911 578 603 815 1469 +3912 130 803 944 1173 +3913 789 1092 824 1405 +3914 475 553 640 1218 +3915 897 124 588 1050 +3916 472 539 544 1183 +3917 1124 1276 548 1410 +3918 256 766 260 1182 +3919 856 528 549 1210 +3920 901 116 547 1186 +3921 839 874 97 1178 +3922 437 1140 688 1380 +3923 964 1128 1261 1427 +3924 1140 1380 1262 1420 +3925 1058 1252 1080 1320 +3926 1062 1192 999 1345 +3927 422 779 788 1231 +3928 998 1164 1118 1460 +3929 973 1285 1096 1314 +3930 251 252 253 1125 +3931 1154 1313 1070 1419 +3932 1099 1119 1014 1451 +3933 487 785 827 1381 +3934 267 1122 1392 1472 +3935 989 1053 1218 1401 +3936 1138 1189 974 1400 +3937 561 474 842 1142 +3938 1072 1255 973 1322 +3939 1003 1061 1232 1295 +3940 203 204 202 1164 +3941 609 720 1257 1446 +3942 599 564 1336 1402 +3943 954 1217 1110 1434 +3944 1112 1275 1000 1371 +3945 468 522 591 1235 +3946 921 922 1213 1432 +3947 382 558 710 1147 +3948 506 1150 520 1382 +3949 1018 1206 1120 1361 +3950 1084 1286 1180 1467 +3951 596 589 463 1078 +3952 969 1286 1127 1390 +3953 396 1156 687 1317 +3954 883 664 1166 1394 +3955 1012 1119 1099 1437 +3956 557 556 396 1156 +3957 1118 1253 1032 1462 +3958 904 1286 1084 1467 +3959 1143 1212 661 1444 +3960 1133 1275 1000 1369 +3961 267 1122 277 1392 +3962 315 313 1339 1481 +3963 800 815 345 1209 +3964 970 1219 1144 1431 +3965 991 1339 1158 1385 +3966 1164 1310 961 1314 +3967 585 464 586 1120 +3968 969 1084 1233 1286 +3969 573 123 884 1315 +3970 512 536 537 1245 +3971 1038 1335 1162 1378 +3972 50 51 125 1418 +3973 760 484 369 1319 +3974 1234 1320 971 1459 +3975 251 252 1125 1431 +3976 397 1211 349 1386 +3977 181 183 611 1301 +3978 656 654 841 1163 +3979 180 182 181 1301 +3980 487 1056 1381 1457 +3981 997 1089 1337 1482 +3982 767 341 757 1238 +3983 300 183 185 1222 +3984 477 590 642 1423 +3985 1142 1403 1333 1482 +3986 367 330 366 1242 +3987 1021 1183 1155 1485 +3988 613 610 496 1216 +3989 1227 1335 1014 1377 +3990 366 1242 330 1357 +3991 701 324 628 1224 +3992 756 502 869 1349 +3993 968 1273 1104 1393 +3994 599 489 643 1197 +3995 964 1172 1324 1475 +3996 1024 1261 1352 1421 +3997 322 1190 713 1302 +3998 318 317 316 1478 +3999 537 538 907 1245 +4000 930 130 944 1173 +4001 406 1123 470 1334 +4002 994 1381 1319 1429 +4003 986 1140 1262 1346 +4004 1041 1242 1296 1403 +4005 981 1272 1062 1434 +4006 1073 1287 967 1321 +4007 1081 983 1240 1251 +4008 950 1227 1117 1335 +4009 969 1127 1286 1367 +4010 1129 1139 964 1261 +4011 1024 1139 1129 1261 +4012 314 719 364 1339 +4013 313 1344 1339 1481 +4014 549 1186 116 1210 +4015 602 194 197 1141 +4016 783 600 748 1100 +4017 978 1091 1225 1438 +4018 364 1339 1060 1478 +4019 954 1270 1089 1305 +4020 1093 1396 216 1462 +4021 1080 1252 1235 1424 +4022 989 1064 1177 1410 +4023 313 314 1339 1344 +4024 251 1125 739 1355 +4025 426 1120 585 1448 +4026 528 1210 43 1467 +4027 331 373 343 1184 +4028 789 1092 1405 1480 +4029 1171 1200 975 1422 +4030 437 435 688 1140 +4031 522 507 895 1105 +4032 463 589 595 1453 +4033 925 936 921 1213 +4034 923 929 1368 1430 +4035 238 1444 1133 1466 +4036 239 240 241 1428 +4037 666 683 478 1437 +4038 1194 1369 1025 1466 +4039 1157 1201 1046 1416 +4040 810 945 133 1267 +4041 640 641 475 1218 +4042 1041 1087 1234 1404 +4043 1067 1277 1010 1414 +4044 1172 1243 1025 1427 +4045 1106 1217 1027 1238 +4046 934 807 1175 1279 +4047 951 1254 1244 1408 +4048 1095 1329 1006 1406 +4049 142 1286 1180 1390 +4050 998 1118 1164 1310 +4051 362 1324 1172 1475 +4052 968 1090 1273 1393 +4053 542 324 540 1224 +4054 1218 1288 1155 1415 +4055 666 1157 683 1437 +4056 446 444 445 1246 +4057 970 1144 1355 1431 +4058 507 468 455 1105 +4059 284 592 283 1454 +4060 311 309 310 1438 +4061 1102 1394 752 1476 +4062 708 864 810 1283 +4063 283 294 293 1454 +4064 295 296 284 1106 +4065 505 1325 819 1426 +4066 548 593 1124 1410 +4067 972 1244 1112 1275 +4068 1134 1324 306 1475 +4069 642 1177 398 1401 +4070 824 535 881 1092 +4071 1147 1365 988 1409 +4072 963 1149 1067 1294 +4073 1152 1264 1253 1366 +4074 884 593 508 1410 +4075 355 396 395 1317 +4076 119 162 43 1467 +4077 962 1091 1250 1371 +4078 426 464 585 1120 +4079 1048 1009 1251 1450 +4080 665 721 465 1079 +4081 356 626 478 1437 +4082 968 1265 1104 1273 +4083 1073 1197 1030 1412 +4084 668 674 676 1445 +4085 954 1110 1252 1290 +4086 1160 1364 992 1461 +4087 931 1169 919 1200 +4088 317 1158 316 1478 +4089 981 1062 1290 1434 +4090 318 354 319 1196 +4091 1053 1288 1218 1415 +4092 236 1444 238 1466 +4093 1000 1445 1428 1466 +4094 1093 1460 1376 1462 +4095 297 299 285 1129 +4096 419 1130 417 1309 +4097 1012 1201 1155 1415 +4098 758 348 350 1113 +4099 981 1145 1358 1399 +4100 602 194 1141 1388 +4101 866 1397 1304 1443 +4102 743 448 824 1272 +4103 790 813 258 1472 +4104 1183 1186 1021 1470 +4105 212 1118 209 1462 +4106 1067 1207 1034 1216 +4107 980 1092 1178 1480 +4108 980 1145 1092 1480 +4109 312 719 314 1111 +4110 918 919 1169 1432 +4111 1158 1196 1008 1478 +4112 320 775 174 1393 +4113 733 32 165 1104 +4114 669 671 670 1172 +4115 615 1122 268 1389 +4116 954 1110 1290 1434 +4117 332 1253 334 1423 +4118 1079 1195 985 1373 +4119 965 1302 1103 1455 +4120 982 1325 1150 1426 +4121 350 349 351 1211 +4122 968 1203 1098 1395 +4123 963 1186 1071 1387 +4124 160 736 1284 1435 +4125 952 1274 1322 1398 +4126 422 1231 788 1405 +4127 1103 1302 731 1455 +4128 782 838 521 1150 +4129 722 1195 740 1373 +4130 391 1209 1119 1451 +4131 641 1218 217 1401 +4132 1096 1314 1310 1398 +4133 961 1117 1227 1377 +4134 1055 1334 1016 1443 +4135 1092 1145 981 1405 +4136 161 41 142 1390 +4137 1177 1401 989 1410 +4138 745 791 168 1149 +4139 1003 1166 1114 1474 +4140 915 938 871 1447 +4141 202 1164 204 1439 +4142 334 332 333 1253 +4143 167 166 748 1359 +4144 402 391 356 1119 +4145 288 684 683 1157 +4146 138 914 796 1436 +4147 1181 1234 971 1459 +4148 150 552 550 1351 +4149 964 1139 1129 1324 +4150 1177 1401 642 1423 +4151 660 1139 274 1452 +4152 178 177 1237 1359 +4153 981 1290 1110 1434 +4154 1038 1222 1162 1335 +4155 587 1318 588 1453 +4156 747 327 295 1327 +4157 953 1248 1176 1308 +4158 1059 1217 1238 1338 +4159 1262 1299 1019 1420 +4160 881 535 1178 1397 +4161 987 1106 1217 1296 +4162 1143 1243 1025 1444 +4163 962 1250 1091 1300 +4164 919 1200 1169 1432 +4165 200 1141 197 1477 +4166 653 833 841 1163 +4167 475 476 553 1276 +4168 980 1145 1116 1399 +4169 964 1128 1226 1271 +4170 78 85 93 1178 +4171 1137 1328 992 1364 +4172 453 688 435 1140 +4173 865 1160 104 1461 +4174 287 1133 238 1444 +4175 824 1092 1397 1443 +4176 605 1162 604 1378 +4177 30 735 29 1189 +4178 32 1104 1318 1456 +4179 208 209 212 1118 +4180 1044 1329 1370 1408 +4181 262 265 266 1179 +4182 786 1144 787 1347 +4183 460 466 467 1336 +4184 998 1310 1314 1398 +4185 972 1323 1082 1371 +4186 240 270 242 1428 +4187 322 337 713 1190 +4188 943 910 55 1200 +4189 217 640 218 1218 +4190 752 34 117 1102 +4191 1008 1385 1158 1478 +4192 1378 1451 1014 1469 +4193 722 740 721 1373 +4194 362 1172 671 1475 +4195 248 724 250 1219 +4196 660 280 274 1139 +4197 50 886 51 1450 +4198 1001 1322 1072 1372 +4199 547 148 1071 1470 +4200 160 120 736 1435 +4201 949 1269 1098 1282 +4202 309 325 307 1095 +4203 953 1261 1128 1321 +4204 417 1309 1130 1446 +4205 821 277 615 1463 +4206 700 287 651 1133 +4207 640 217 641 1218 +4208 288 684 1157 1455 +4209 615 1122 1389 1463 +4210 961 1164 1074 1310 +4211 949 1262 1115 1278 +4212 1183 1402 1155 1485 +4213 185 703 491 1222 +4214 985 1214 1121 1361 +4215 1263 1306 1039 1471 +4216 315 1339 1158 1481 +4217 831 691 1299 1420 +4218 1041 1333 1403 1482 +4219 343 373 756 1239 +4220 243 245 696 1187 +4221 1037 1369 1329 1406 +4222 356 402 1119 1437 +4223 1064 1221 976 1442 +4224 507 1105 455 1448 +4225 371 570 571 1152 +4226 971 1252 1058 1320 +4227 1061 1241 1232 1465 +4228 299 558 563 1147 +4229 46 148 47 1414 +4230 967 1233 1128 1321 +4231 168 791 792 1149 +4232 1089 1270 1214 1305 +4233 862 1153 797 1348 +4234 995 1192 1062 1257 +4235 1125 1355 251 1431 +4236 770 407 379 1338 +4237 737 618 759 1341 +4238 275 269 1220 1389 +4239 1037 1329 1095 1406 +4240 430 428 429 1168 +4241 1073 1030 1321 1412 +4242 501 1325 505 1382 +4243 1141 1314 1065 1388 +4244 621 624 622 1202 +4245 554 1151 1223 1400 +4246 913 929 1173 1279 +4247 1017 1232 1202 1385 +4248 276 275 269 1220 +4249 718 695 454 1353 +4250 998 1141 1314 1439 +4251 812 857 863 1137 +4252 922 928 1213 1281 +4253 1162 1335 1014 1378 +4254 1006 1406 1329 1408 +4255 942 937 925 1283 +4256 984 1356 1109 1485 +4257 898 146 752 1394 +4258 193 1255 781 1316 +4259 731 1302 1103 1379 +4260 49 50 738 1315 +4261 718 454 1185 1353 +4262 979 1196 1362 1411 +4263 1162 1222 990 1335 +4264 1033 1219 1144 1269 +4265 1042 1360 1175 1383 +4266 979 1098 1205 1395 +4267 357 327 370 1357 +4268 852 879 939 1171 +4269 627 626 219 1415 +4270 982 1260 1057 1325 +4271 315 313 314 1339 +4272 525 404 375 1239 +4273 910 936 939 1171 +4274 1061 1017 1232 1341 +4275 709 306 1324 1475 +4276 948 1206 1121 1291 +4277 385 605 604 1378 +4278 803 946 913 1279 +4279 441 439 833 1135 +4280 615 277 268 1122 +4281 838 521 1150 1383 +4282 959 1206 1121 1361 +4283 1107 1370 1044 1449 +4284 1118 1376 998 1460 +4285 1020 1105 1235 1424 +4286 1066 1228 1026 1351 +4287 970 1144 1269 1411 +4288 1053 1012 1288 1415 +4289 824 1092 881 1397 +4290 969 1286 1233 1367 +4291 1101 1240 952 1274 +4292 23 880 77 1425 +4293 369 482 353 1319 +4294 144 848 25 1181 +4295 1047 1299 1262 1420 +4296 328 769 772 1199 +4297 786 728 787 1144 +4298 617 1167 301 1426 +4299 180 179 346 1237 +4300 1062 1192 1290 1434 +4301 393 562 1223 1454 +4302 31 30 897 1318 +4303 1017 1202 1158 1385 +4304 597 1231 422 1405 +4305 941 1200 919 1432 +4306 1085 980 1307 1391 +4307 202 1439 200 1477 +4308 609 607 720 1446 +4309 193 781 822 1316 +4310 236 234 233 1444 +4311 128 1175 840 1447 +4312 965 1157 1302 1455 +4313 173 793 795 1280 +4314 603 192 191 1388 +4315 1288 1387 1021 1485 +4316 450 449 657 1126 +4317 584 850 1181 1413 +4318 282 286 285 1324 +4319 709 306 286 1324 +4320 826 1342 817 1417 +4321 923 1076 920 1430 +4322 1002 1233 1126 1367 +4323 1127 1254 1075 1435 +4324 809 130 930 1173 +4325 189 606 187 1154 +4326 958 1221 1064 1442 +4327 617 301 819 1426 +4328 920 1076 922 1432 +4329 976 1096 1221 1310 +4330 1141 1065 1314 1439 +4331 204 1164 206 1312 +4332 1106 1242 996 1296 +4333 965 1157 1099 1302 +4334 554 401 360 1151 +4335 448 789 824 1405 +4336 599 564 471 1336 +4337 393 1223 294 1454 +4338 949 1232 1241 1465 +4339 519 533 1145 1480 +4340 832 687 396 1156 +4341 969 1128 1233 1266 +4342 223 222 643 1197 +4343 1258 1344 1111 1438 +4344 1156 1159 1013 1293 +4345 1000 1369 1194 1466 +4346 267 1392 361 1472 +4347 979 1159 1156 1293 +4348 1006 1297 1075 1408 +4349 82 873 150 1351 +4350 479 578 815 1469 +4351 377 1364 581 1413 +4352 981 1110 1358 1434 +4353 1035 1208 1133 1275 +4354 782 1150 506 1426 +4355 948 1293 1205 1395 +4356 971 1116 1320 1399 +4357 1066 1259 1016 1374 +4358 721 665 451 1309 +4359 44 1210 116 1294 +4360 953 1352 1261 1421 +4361 979 1205 1098 1411 +4362 965 1190 1099 1256 +4363 506 521 520 1150 +4364 277 1122 615 1463 +4365 806 1304 151 1374 +4366 306 298 286 1134 +4367 377 581 580 1413 +4368 967 1321 1128 1427 +4369 1269 1278 949 1385 +4370 976 1253 1152 1264 +4371 970 1098 1205 1411 +4372 971 1080 1252 1320 +4373 971 1234 1087 1404 +4374 486 487 485 1457 +4375 923 922 1076 1368 +4376 340 175 176 1277 +4377 520 861 807 1175 +4378 199 198 301 1167 +4379 55 910 879 1200 +4380 853 908 157 1200 +4381 968 1061 1273 1465 +4382 987 1217 1110 1404 +4383 1062 999 1192 1434 +4384 881 1178 839 1397 +4385 548 546 1276 1470 +4386 971 1320 1058 1399 +4387 562 592 730 1454 +4388 306 307 298 1134 +4389 784 749 817 1417 +4390 145 53 768 1161 +4391 307 1095 325 1483 +4392 1055 1358 1092 1443 +4393 948 1306 1263 1471 +4394 968 1090 1395 1465 +4395 909 933 927 1175 +4396 1008 1269 1144 1411 +4397 1134 1224 1006 1483 +4398 1142 1333 997 1482 +4399 662 664 663 1394 +4400 405 551 550 1228 +4401 83 136 104 1461 +4402 170 1295 121 1343 +4403 946 152 934 1279 +4404 1097 965 1190 1379 +4405 373 502 756 1349 +4406 1097 988 1308 1365 +4407 971 1181 1087 1234 +4408 955 1360 1056 1464 +4409 856 549 116 1210 +4410 1058 1320 1116 1399 +4411 34 1102 752 1476 +4412 715 141 172 1107 +4413 949 1098 1241 1282 +4414 1084 1233 1286 1367 +4415 370 1137 857 1364 +4416 1142 1223 974 1400 +4417 582 875 1193 1461 +4418 854 158 1153 1425 +4419 845 574 846 1234 +4420 954 1252 1110 1404 +4421 209 1118 1460 1462 +4422 1122 1311 1015 1472 +4423 957 1191 1112 1370 +4424 1175 1279 993 1368 +4425 48 123 49 1315 +4426 990 1285 1154 1377 +4427 462 663 888 1394 +4428 957 1191 1370 1458 +4429 526 484 760 1108 +4430 401 1151 554 1400 +4431 1076 920 1430 1432 +4432 678 830 326 1344 +4433 789 1405 533 1480 +4434 1117 1268 950 1335 +4435 696 245 259 1484 +4436 643 222 599 1197 +4437 863 370 747 1137 +4438 777 411 769 1257 +4439 1176 1248 953 1356 +4440 1061 1017 1341 1441 +4441 451 1309 417 1446 +4442 965 1109 1256 1416 +4443 991 1385 1232 1458 +4444 221 627 219 1201 +4445 1152 1264 1009 1442 +4446 189 192 606 1154 +4447 201 202 200 1477 +4448 966 1260 1101 1326 +4449 527 528 904 1084 +4450 393 294 562 1454 +4451 1066 1016 1334 1374 +4452 1058 1252 971 1399 +4453 765 216 1396 1462 +4454 1115 1262 949 1346 +4455 469 906 549 1054 +4456 566 821 1159 1392 +4457 1197 1336 984 1402 +4458 688 1380 1140 1420 +4459 700 651 652 1208 +4460 376 344 375 1247 +4461 918 1430 1169 1436 +4462 236 287 238 1444 +4463 1033 1347 1144 1484 +4464 304 594 1253 1366 +4465 250 1136 290 1431 +4466 432 431 433 1350 +4467 954 1089 1270 1424 +4468 707 870 137 1283 +4469 826 1161 1342 1417 +4470 380 344 1247 1366 +4471 206 204 205 1164 +4472 1010 1268 1063 1277 +4473 684 1302 1157 1455 +4474 188 186 1313 1419 +4475 317 315 1158 1481 +4476 634 1284 633 1297 +4477 1154 1162 990 1377 +4478 512 457 511 1367 +4479 267 277 361 1392 +4480 165 1273 171 1393 +4481 881 535 839 1178 +4482 825 715 172 1107 +4483 200 197 199 1477 +4484 768 1161 53 1422 +4485 1084 1029 1303 1467 +4486 956 1204 1110 1358 +4487 753 752 1102 1394 +4488 679 664 662 1166 +4489 826 704 817 1342 +4490 127 1084 904 1286 +4491 193 191 190 1255 +4492 208 207 209 1460 +4493 1092 1272 1055 1443 +4494 641 398 475 1401 +4495 231 659 235 1243 +4496 984 1336 1197 1412 +4497 584 850 848 1181 +4498 1071 1289 1021 1470 +4499 511 457 458 1367 +4500 739 251 253 1125 +4501 210 625 204 1312 +4502 953 1248 1308 1421 +4503 846 584 144 1234 +4504 990 1070 1301 1419 +4505 351 704 374 1342 +4506 266 742 269 1179 +4507 50 885 886 1450 +4508 715 159 141 1343 +4509 1108 1381 1056 1457 +4510 1158 1202 991 1385 +4511 351 1211 704 1342 +4512 1124 1010 1289 1332 +4513 1116 1145 1058 1399 +4514 1054 1356 1303 1412 +4515 649 682 647 1212 +4516 653 841 654 1163 +4517 986 1262 1140 1380 +4518 600 598 347 1386 +4519 1176 953 1303 1356 +4520 922 920 923 1076 +4521 289 1250 696 1300 +4522 960 1089 1214 1305 +4523 616 779 1231 1440 +4524 724 290 250 1136 +4525 332 590 212 1423 +4526 534 874 1178 1348 +4527 130 503 803 1173 +4528 949 1241 1098 1465 +4529 1032 1253 1264 1366 +4530 950 1289 1288 1387 +4531 162 1180 142 1467 +4532 1112 1191 978 1370 +4533 1071 1294 1067 1414 +4534 151 1304 101 1374 +4535 682 661 681 1212 +4536 996 1220 1094 1454 +4537 101 151 113 1304 +4538 986 1262 1115 1346 +4539 425 424 421 1165 +4540 639 229 227 1331 +4541 1099 1157 1012 1437 +4542 1017 1061 1232 1465 +4543 598 397 349 1386 +4544 615 1389 275 1463 +4545 476 475 399 1276 +4546 953 1412 1248 1421 +4547 382 710 384 1409 +4548 909 933 1175 1447 +4549 228 288 226 1455 +4550 863 1137 747 1327 +4551 971 1234 1080 1320 +4552 988 1230 1216 1409 +4553 1180 1266 1029 1280 +4554 1061 1017 1441 1465 +4555 506 782 521 1150 +4556 264 239 1445 1466 +4557 531 529 149 1447 +4558 271 831 691 1299 +4559 25 848 24 1459 +4560 380 594 344 1366 +4561 581 1364 849 1461 +4562 511 527 1367 1433 +4563 1152 1048 1264 1366 +4564 787 1144 291 1355 +4565 954 1290 1192 1434 +4566 419 418 417 1130 +4567 954 1089 1424 1482 +4568 23 854 24 1425 +4569 1099 1190 965 1302 +4570 775 835 122 1138 +4571 1060 1008 1347 1478 +4572 413 414 743 1272 +4573 990 1268 1117 1335 +4574 511 1367 458 1433 +4575 333 304 594 1253 +4576 998 1314 1141 1398 +4577 670 671 362 1172 +4578 996 1403 1142 1482 +4579 1020 1231 1130 1290 +4580 970 1205 1068 1411 +4581 126 574 845 1333 +4582 925 937 916 1283 +4583 964 1226 1128 1427 +4584 333 1253 594 1366 +4585 979 1068 1205 1411 +4586 823 441 833 1298 +4587 250 290 252 1431 +4588 1162 1377 1154 1469 +4589 95 91 89 1363 +4590 266 1179 269 1389 +4591 956 1110 1204 1328 +4592 953 1308 1176 1352 +4593 995 1257 1062 1446 +4594 218 1155 219 1415 +4595 692 718 763 1353 +4596 322 336 1190 1379 +4597 238 1133 700 1428 +4598 986 1236 1166 1474 +4599 1056 1383 1360 1457 +4600 1042 1360 1383 1457 +4601 1003 1061 1295 1476 +4602 1097 1190 965 1479 +4603 924 1281 922 1368 +4604 517 896 523 1116 +4605 728 291 787 1144 +4606 853 1200 54 1422 +4607 967 1128 1226 1427 +4608 531 840 1383 1447 +4609 871 64 938 915 +4610 615 275 293 1463 +4611 725 726 806 1334 +4612 982 1198 1167 1426 +4613 137 916 937 1283 +4614 1094 1223 996 1454 +4615 341 292 757 1238 +4616 272 722 766 1373 +4617 913 929 944 1173 +4618 174 165 171 1393 +4619 918 920 919 1432 +4620 913 947 929 1279 +4621 439 437 447 1380 +4622 1252 1290 1020 1424 +4623 322 1190 1302 1379 +4624 1206 1361 1018 1471 +4625 220 1155 303 1402 +4626 383 496 610 1216 +4627 973 1096 1322 1398 +4628 268 277 267 1122 +4629 582 1193 850 1413 +4630 398 642 334 1177 +4631 708 1249 706 1283 +4632 1126 1233 1030 1433 +4633 193 191 1255 1388 +4634 680 201 617 1477 +4635 337 336 385 1190 +4636 987 1296 1217 1404 +4637 682 661 1212 1444 +4638 326 1258 311 1344 +4639 1071 1021 1289 1387 +4640 789 788 533 1405 +4641 862 532 518 1348 +4642 765 216 771 1396 +4643 23 77 110 1425 +4644 872 503 130 1173 +4645 741 1320 26 1459 +4646 962 1250 1082 1371 +4647 1110 1204 971 1399 +4648 552 132 855 1330 +4649 988 1365 1230 1409 +4650 623 620 825 1449 +4651 153 891 908 1422 +4652 403 842 474 1403 +4653 972 1275 1112 1371 +4654 903 548 1276 1410 +4655 976 1264 1152 1442 +4656 1038 1190 1097 1479 +4657 1116 1320 893 1459 +4658 984 1336 1183 1402 +4659 334 1177 642 1423 +4660 358 390 329 1327 +4661 278 279 321 1379 +4662 136 865 104 1461 +4663 246 271 248 1299 +4664 1032 1260 1093 1462 +4665 454 697 698 1185 +4666 1096 1221 958 1442 +4667 687 711 686 1317 +4668 816 566 821 1159 +4669 950 1109 1207 1387 +4670 1288 1289 1021 1387 +4671 987 1110 1328 1404 +4672 142 41 42 1286 +4673 800 1209 391 1451 +4674 150 873 552 1351 +4675 688 829 1380 1420 +4676 1204 1358 980 1399 +4677 973 1314 1096 1398 +4678 37 36 847 1114 +4679 1094 1389 1122 1463 +4680 259 728 786 1484 +4681 357 377 1357 1364 +4682 143 745 163 1294 +4683 684 713 798 1302 +4684 1101 1274 982 1464 +4685 441 440 1135 1468 +4686 337 1190 385 1378 +4687 263 225 223 1407 +4688 806 151 805 1374 +4689 918 926 1430 1436 +4690 749 1146 52 1417 +4691 366 357 377 1357 +4692 849 370 857 1364 +4693 826 145 1161 1417 +4694 730 1242 367 1403 +4695 1089 997 1424 1482 +4696 586 507 585 1448 +4697 245 244 246 1187 +4698 452 443 823 1298 +4699 834 852 707 1171 +4700 1145 1231 981 1405 +4701 316 1158 1339 1478 +4702 1184 1396 1032 1462 +4703 909 934 807 1175 +4704 973 1255 1072 1313 +4705 796 858 138 1436 +4706 573 885 123 1315 +4707 923 1368 1076 1430 +4708 111 97 93 1178 +4709 1018 1079 1361 1384 +4710 289 243 696 1250 +4711 984 1402 1183 1485 +4712 709 1324 362 1475 +4713 1110 981 1358 1399 +4714 317 1158 323 1481 +4715 1022 1346 1229 1394 +4716 81 158 98 1153 +4717 795 541 794 1132 +4718 1136 1219 970 1431 +4719 1003 1394 1102 1476 +4720 300 339 610 1230 +4721 178 177 179 1237 +4722 599 466 489 1336 +4723 578 192 603 1469 +4724 1190 1256 965 1479 +4725 735 561 844 1189 +4726 873 132 552 1330 +4727 583 1160 865 1461 +4728 1062 1345 999 1434 +4729 1072 1316 994 1429 +4730 148 546 548 1470 +4731 986 1236 1115 1323 +4732 238 287 700 1133 +4733 714 1225 363 1438 +4734 597 422 788 1405 +4735 138 73 914 917 +4736 1009 1315 1100 1418 +4737 1032 1396 1260 1462 +4738 1140 1262 1019 1420 +4739 284 283 276 1220 +4740 962 1082 1323 1371 +4741 976 1221 1096 1442 +4742 971 1252 1110 1399 +4743 386 578 479 1469 +4744 1260 1396 1093 1462 +4745 43 44 119 1210 +4746 673 264 669 1194 +4747 1038 1256 1190 1479 +4748 1139 1243 1011 1452 +4749 899 39 115 1435 +4750 1132 1180 969 1390 +4751 1169 1430 1031 1436 +4752 805 151 101 1374 +4753 755 188 186 1313 +4754 1155 1201 1012 1485 +4755 820 706 708 1249 +4756 326 636 635 1258 +4757 1030 1197 1336 1412 +4758 811 1160 812 1330 +4759 520 807 152 1279 +4760 184 187 703 1419 +4761 1057 1260 1184 1396 +4762 605 703 606 1162 +4763 176 177 178 1359 +4764 616 779 422 1231 +4765 868 1334 806 1374 +4766 853 153 908 1422 +4767 1115 986 1346 1474 +4768 387 337 386 1378 +4769 1021 1155 1218 1288 +4770 682 287 661 1444 +4771 25 1181 848 1459 +4772 935 915 63 801 +4773 1202 1232 1017 1341 +4774 463 1168 430 1350 +4775 965 1256 1109 1479 +4776 1329 1369 951 1406 +4777 1092 981 1272 1405 +4778 1155 1402 1201 1485 +4779 1126 1367 1233 1433 +4780 634 736 633 1284 +4781 1032 1184 1260 1396 +4782 630 629 325 1483 +4783 129 805 76 1374 +4784 893 896 1116 1459 +4785 922 928 925 1213 +4786 1141 1439 998 1477 +4787 1112 1244 951 1275 +4788 424 423 421 1165 +4789 216 1460 1093 1462 +4790 495 795 793 1280 +4791 968 1098 1241 1465 +4792 332 212 304 1253 +4793 403 1333 842 1403 +4794 1132 1224 1006 1271 +4795 1005 1224 1132 1271 +4796 1103 1302 965 1379 +4797 990 1335 1117 1377 +4798 329 292 341 1238 +4799 79 865 811 1160 +4800 963 1207 1109 1387 +4801 473 730 367 1403 +4802 990 1162 1335 1377 +4803 357 370 849 1364 +4804 889 153 53 1422 +4805 1014 1335 1162 1377 +4806 914 919 931 1169 +4807 233 1143 661 1444 +4808 1201 1402 984 1485 +4809 144 584 848 1181 +4810 481 772 770 1199 +4811 1155 1288 1012 1415 +4812 661 233 639 1143 +4813 291 251 1355 1431 +4814 807 128 909 1175 +4815 335 737 759 1441 +4816 664 569 883 1166 +4817 109 1160 79 1330 +4818 883 146 898 1394 +4819 200 1439 1141 1477 +4820 982 1093 1260 1325 +4821 158 523 854 1153 +4822 305 343 344 1184 +4823 984 1248 1109 1356 +4824 247 248 249 1219 +4825 526 486 484 1108 +4826 468 513 461 1235 +4827 408 409 410 1345 +4828 313 326 311 1344 +4829 906 472 545 1186 +4830 668 669 264 1194 +4831 811 857 812 1160 +4832 547 148 901 1071 +4833 264 239 667 1445 +4834 749 51 52 1146 +4835 145 768 826 1161 +4836 202 204 625 1439 +4837 724 692 290 1136 +4838 769 411 409 1345 +4839 441 1135 1298 1468 +4840 702 624 323 1202 +4841 1069 1044 1370 1449 +4842 288 683 666 1157 +4843 938 65 871 1447 +4844 1110 1358 1204 1399 +4845 1115 1191 957 1458 +4846 504 505 506 1382 +4847 178 179 180 1237 +4848 797 158 81 1153 +4849 255 253 254 1188 +4850 540 324 701 1224 +4851 1090 1441 1017 1465 +4852 570 333 594 1366 +4853 152 946 803 1279 +4854 79 104 865 1160 +4855 1004 1075 1284 1408 +4856 786 787 499 1347 +4857 538 568 569 1292 +4858 809 872 130 1173 +4859 800 625 391 1209 +4860 938 909 65 1447 +4861 741 26 25 1459 +4862 1048 1251 1146 1450 +4863 94 96 90 1259 +4864 650 653 652 1208 +4865 48 166 118 1131 +4866 602 197 200 1141 +4867 100 76 94 1374 +4868 686 711 761 1441 +4869 127 527 904 1084 +4870 754 902 1265 1456 +4871 1021 1289 1276 1470 +4872 386 1378 604 1469 +4873 958 1221 1117 1332 +4874 264 1445 1194 1466 +4875 1004 1284 1075 1435 +4876 783 125 784 1418 +4877 816 821 557 1159 +4878 111 80 16 131 +4879 966 1239 1184 1247 +4880 1133 1444 1025 1466 +4881 264 668 1194 1445 +4882 338 381 339 1230 +4883 983 1211 1342 1417 +4884 220 219 218 1155 +4885 1065 1377 1014 1469 +4886 351 397 704 1211 +4887 797 862 523 1153 +4888 759 622 761 1341 +4889 165 33 140 1273 +4890 241 242 243 1250 +4891 504 501 505 1382 +4892 441 440 439 1135 +4893 925 921 922 1213 +4894 581 1413 1364 1461 +4895 162 173 142 1180 +4896 291 249 251 1431 +4897 1065 1154 1377 1469 +4898 1232 1295 1061 1341 +4899 1051 1295 1232 1341 +4900 752 117 753 1102 +4901 840 128 861 1175 +4902 586 464 587 1453 +4903 1143 1025 1243 1427 +4904 1074 1401 1177 1423 +4905 461 1235 513 1440 +4906 862 797 139 1348 +4907 1051 1232 1202 1341 +4908 68 913 803 946 +4909 965 1302 1190 1379 +4910 1032 1093 1376 1462 +4911 451 419 417 1309 +4912 248 250 249 1219 +4913 249 1219 250 1431 +4914 45 44 116 1294 +4915 142 1180 699 1390 +4916 423 461 616 1440 +4917 818 302 785 1198 +4918 976 1253 1118 1423 +4919 672 388 671 1475 +4920 965 1248 1109 1416 +4921 109 79 107 1330 +4922 479 815 800 1451 +4923 157 931 876 1200 +4924 954 1270 1290 1424 +4925 171 140 737 1273 +4926 969 1128 1266 1271 +4927 804 16 80 131 +4928 276 283 275 1220 +4929 709 362 671 1475 +4930 1115 1236 986 1474 +4931 934 152 807 1279 +4932 1133 1428 238 1466 +4933 76 805 101 1374 +4934 538 537 115 1245 +4935 984 1109 1248 1416 +4936 507 522 468 1105 +4937 1304 1397 1016 1443 +4938 801 915 63 149 +4939 978 1329 1112 1370 +4940 946 934 947 1279 +4941 647 682 681 1212 +4942 55 54 853 1200 +4943 173 699 142 1180 +4944 1169 1200 975 1432 +4945 340 176 612 1277 +4946 224 1201 221 1407 +4947 413 743 726 1443 +4948 100 82 105 1351 +4949 87 85 86 1391 +4950 827 1316 488 1381 +4951 227 228 226 1331 +4952 676 363 714 1225 +4953 793 493 495 1280 +4954 1093 1260 1032 1376 +4955 850 582 851 1193 +4956 318 365 354 1362 +4957 148 593 47 1124 +4958 1187 1250 962 1300 +4959 604 1378 1162 1469 +4960 718 454 698 1185 +4961 471 564 539 1183 +4962 51 134 1146 1450 +4963 203 205 204 1164 +4964 81 86 85 1153 +4965 453 433 695 1174 +4966 482 774 758 1429 +4967 952 1322 1096 1398 +4968 159 170 121 1343 +4969 974 1223 1151 1400 +4970 970 1355 1125 1431 +4971 35 1295 121 1476 +4972 266 265 742 1179 +4973 112 132 102 1330 +4974 732 364 778 1478 +4975 665 421 419 1309 +4976 646 647 645 1287 +4977 638 559 381 1365 +4978 799 831 271 1299 +4979 915 871 149 1447 +4980 426 585 424 1448 +4981 310 714 363 1438 +4982 931 157 74 914 +4983 432 430 431 1350 +4984 1087 992 1364 1413 +4985 291 251 739 1355 +4986 438 662 436 1229 +4987 236 238 237 1466 +4988 519 532 533 1480 +4989 299 710 558 1147 +4990 904 42 1286 1467 +4991 841 447 829 1380 +4992 340 612 613 1277 +4993 951 1329 1406 1408 +4994 663 753 888 1394 +4995 198 302 818 1198 +4996 827 822 488 1316 +4997 930 944 926 1173 +4998 632 629 631 1297 +4999 154 24 854 1459 +5000 952 1376 1274 1398 +5001 766 609 260 1182 +5002 61 810 912 945 +5003 482 1319 483 1429 +5004 625 1209 345 1439 +5005 878 12 105 129 +5006 735 844 29 1189 +5007 426 427 428 1384 +5008 240 239 238 1466 +5009 740 762 698 1195 +5010 1044 1284 1107 1449 +5011 564 220 303 1402 +5012 731 1302 684 1455 +5013 1032 1326 1264 1376 +5014 164 121 1295 1476 +5015 970 1269 1098 1411 +5016 105 82 11 150 +5017 761 759 1341 1441 +5018 641 642 398 1401 +5019 776 819 505 1325 +5020 764 731 684 1455 +5021 548 508 593 1410 +5022 714 672 676 1225 +5023 556 832 396 1156 +5024 581 849 583 1461 +5025 323 1202 624 1481 +5026 32 754 1265 1456 +5027 485 488 483 1381 +5028 799 271 246 1299 +5029 835 555 561 1400 +5030 394 293 392 1463 +5031 528 856 43 1210 +5032 199 1167 617 1477 +5033 127 511 527 1367 +5034 96 93 90 1307 +5035 918 911 926 1436 +5036 838 840 521 1383 +5037 240 1428 239 1466 +5038 240 238 1428 1466 +5039 804 1304 866 1397 +5040 953 1303 1356 1412 +5041 1011 1103 1421 1452 +5042 322 336 337 1190 +5043 945 935 62 1267 +5044 941 931 919 1200 +5045 934 909 927 1175 +5046 620 170 715 1343 +5047 1008 1362 1196 1411 +5048 164 35 121 1476 +5049 140 34 164 1476 +5050 91 100 94 1259 +5051 1096 958 1354 1442 +5052 289 696 675 1300 +5053 1032 1260 1326 1376 +5054 866 744 1397 1443 +5055 231 234 659 1243 +5056 450 459 458 1433 +5057 256 255 254 1188 +5058 607 451 417 1446 +5059 32 1318 147 1456 +5060 699 794 169 1390 +5061 216 209 1460 1462 +5062 957 1236 1115 1474 +5063 991 1202 1158 1481 +5064 1116 971 1320 1459 +5065 560 393 562 1223 +5066 1264 1326 952 1376 +5067 771 505 501 1325 +5068 33 32 754 1265 +5069 909 1175 128 1447 +5070 83 92 103 1193 +5071 397 351 349 1211 +5072 1020 1290 1270 1424 +5073 554 393 560 1223 +5074 899 1127 40 1435 +5075 235 660 274 1452 +5076 824 1397 744 1443 +5077 79 1160 811 1330 +5078 1014 1377 1162 1469 +5079 554 360 543 1151 +5080 552 837 550 1228 +5081 531 128 840 1447 +5082 76 105 12 129 +5083 675 716 717 1300 +5084 641 217 477 1401 +5085 38 37 568 1292 +5086 576 404 858 1148 +5087 221 224 627 1201 +5088 1124 1276 989 1289 +5089 810 133 859 1267 +5090 989 1124 1289 1332 +5091 87 90 93 1307 +5092 32 31 147 1318 +5093 575 576 891 1148 +5094 868 806 805 1374 +5095 311 635 309 1258 +5096 809 502 872 1349 +5097 378 405 550 1228 +5098 537 536 115 1245 +5099 573 886 885 1450 +5100 755 497 774 1372 +5101 1201 1416 1012 1485 +5102 914 918 1169 1436 +5103 158 98 1153 1425 +5104 1048 1251 1264 1326 +5105 100 91 99 1351 +5106 1093 998 1376 1460 +5107 199 301 617 1167 +5108 49 885 50 1315 +5109 1016 1397 1092 1443 +5110 801 867 526 1267 +5111 11 105 150 878 +5112 1233 1367 1084 1433 +5113 971 1110 1252 1404 +5114 322 321 336 1379 +5115 609 720 777 1257 +5116 731 322 1302 1379 +5117 953 1356 1248 1412 +5118 656 829 831 1420 +5119 369 483 482 1319 +5120 503 860 803 1279 +5121 504 520 860 1382 +5122 170 618 121 1295 +5123 1284 1297 1044 1408 +5124 42 162 142 1467 +5125 899 900 40 1127 +5126 702 622 624 1202 +5127 800 345 625 1209 +5128 646 644 657 1287 +5129 991 1339 1111 1344 +5130 428 1168 595 1453 +5131 108 1391 86 1425 +5132 534 1178 535 1480 +5133 770 379 359 1338 +5134 195 190 188 1313 +5135 914 157 74 796 +5136 1075 1297 1284 1408 +5137 61 810 945 133 +5138 243 244 245 1187 +5139 220 218 303 1155 +5140 988 1097 1308 1479 +5141 447 437 688 1380 +5142 762 740 722 1195 +5143 664 882 569 1166 +5144 317 323 315 1481 +5145 79 109 104 1160 +5146 102 112 873 132 +5147 137 706 707 1283 +5148 79 8 112 1330 +5149 1011 1143 1243 1427 +5150 931 943 876 1200 +5151 78 93 97 1178 +5152 380 376 509 1247 +5153 583 865 136 1461 +5154 1012 1201 1157 1416 +5155 103 106 83 1193 +5156 845 144 26 1234 +5157 789 533 535 1480 +5158 1117 1285 990 1377 +5159 346 497 712 1372 +5160 834 155 852 1171 +5161 328 772 481 1199 +5162 863 747 390 1327 +5163 768 53 54 1422 +5164 875 851 582 1193 +5165 1042 1383 1175 1447 +5166 536 524 899 1127 +5167 683 798 402 1437 +5168 842 403 574 1333 +5169 855 132 812 1330 +5170 1057 1325 1260 1396 +5171 759 618 619 1341 +5172 182 184 1301 1419 +5173 152 860 520 1279 +5174 1180 1286 969 1390 +5175 883 898 664 1394 +5176 51 134 52 1146 +5177 899 524 900 1127 +5178 86 1391 1153 1425 +5179 441 442 440 1468 +5180 591 135 890 1235 +5181 914 917 918 1436 +5182 910 55 2 943 +5183 874 839 534 1178 +5184 566 277 821 1392 +5185 777 720 411 1257 +5186 903 548 546 1276 +5187 634 633 631 1297 +5188 152 67 946 934 +5189 808 71 911 930 +5190 927 933 924 1368 +5191 923 924 922 1368 +5192 960 1311 1121 1375 +5193 605 606 604 1162 +5194 983 1342 1161 1417 +5195 316 1339 364 1478 +5196 896 517 893 1116 +5197 506 520 504 1382 +5198 641 477 642 1401 +5199 1193 1413 582 1461 +5200 488 781 780 1316 +5201 965 1308 1097 1479 +5202 1012 1288 1155 1485 +5203 912 940 945 1267 +5204 954 1290 1252 1424 +5205 13 76 129 805 +5206 915 871 64 149 +5207 524 512 511 1367 +5208 602 603 194 1388 +5209 101 14 113 151 +5210 968 1395 1098 1465 +5211 882 664 679 1166 +5212 989 1276 1124 1410 +5213 599 222 564 1402 +5214 1203 1306 948 1471 +5215 781 193 190 1255 +5216 534 1348 1178 1480 +5217 82 102 10 873 +5218 398 334 372 1177 +5219 414 416 448 1272 +5220 207 203 680 1460 +5221 218 219 215 1415 +5222 952 1264 1251 1326 +5223 445 648 449 1246 +5224 430 595 428 1168 +5225 150 82 10 873 +5226 45 163 44 1294 +5227 152 68 803 946 +5228 223 224 221 1407 +5229 266 269 268 1389 +5230 887 572 510 1450 +5231 386 604 578 1469 +5232 232 174 171 1393 +5233 582 136 875 1461 +5234 212 209 213 1462 +5235 172 160 736 1284 +5236 870 58 137 916 +5237 749 52 145 1417 +5238 575 404 576 1148 +5239 790 258 262 1472 +5240 89 91 90 1259 +5241 1130 1309 995 1446 +5242 903 476 399 1276 +5243 651 650 652 1208 +5244 102 112 9 873 +5245 369 484 483 1319 +5246 753 898 752 1394 +5247 399 903 1276 1410 +5248 616 514 779 1440 +5249 1026 1330 1160 1363 +5250 1104 1007 1318 1456 +5251 46 47 734 1414 +5252 984 1416 1201 1485 +5253 549 906 545 1186 +5254 820 843 368 1249 +5255 1260 1325 1093 1396 +5256 471 539 472 1183 +5257 943 55 876 1200 +5258 188 187 186 1419 +5259 911 917 72 1436 +5260 979 1205 1293 1395 +5261 447 688 829 1380 +5262 207 216 209 1460 +5263 157 876 853 1200 +5264 730 296 330 1242 +5265 151 806 866 1304 +5266 881 839 131 1397 +5267 782 301 818 1426 +5268 86 81 98 1153 +5269 926 1173 929 1430 +5270 844 842 126 1333 +5271 864 137 937 1283 +5272 1155 1288 1021 1485 +5273 945 62 133 1267 +5274 704 705 374 1342 +5275 211 210 206 1312 +5276 17 97 111 131 +5277 980 1178 1348 1480 +5278 1145 1405 1092 1480 +5279 704 826 705 1342 +5280 535 534 839 1178 +5281 305 331 343 1184 +5282 525 375 756 1239 +5283 943 941 910 1200 +5284 731 278 322 1379 +5285 229 230 228 1331 +5286 678 1344 313 1481 +5287 696 716 1300 1484 +5288 76 13 101 805 +5289 387 479 802 1451 +5290 365 498 480 1362 +5291 565 361 566 1392 +5292 857 370 863 1137 +5293 492 383 384 1409 +5294 869 808 525 1436 +5295 382 383 339 1409 +5296 547 546 148 1470 +5297 787 291 814 1355 +5298 148 548 593 1124 +5299 19 84 78 874 +5300 873 102 132 1330 +5301 858 525 138 1436 +5302 210 204 206 1312 +5303 81 84 20 797 +5304 114 101 1304 1374 +5305 523 158 797 1153 +5306 96 114 80 1304 +5307 796 73 914 138 +5308 913 946 947 1279 +5309 589 905 587 1453 +5310 1150 1360 1056 1383 +5311 573 572 886 1450 +5312 463 595 430 1168 +5313 831 689 691 1420 +5314 829 688 689 1420 +5315 615 268 275 1389 +5316 470 868 751 1334 +5317 113 15 80 1304 +5318 147 1318 905 1456 +5319 98 86 1153 1425 +5320 875 5 83 136 +5321 622 759 619 1341 +5322 755 195 188 1313 +5323 836 463 432 1350 +5324 694 907 456 1468 +5325 859 133 526 1267 +5326 767 770 359 1338 +5327 570 594 380 1366 +5328 193 194 191 1388 +5329 731 322 713 1302 +5330 914 918 919 1169 +5331 315 678 313 1481 +5332 396 687 395 1317 +5333 114 101 113 1304 +5334 807 66 909 128 +5335 662 462 436 1229 +5336 868 805 129 1374 +5337 89 87 88 1391 +5338 127 524 511 1367 +5339 951 1369 1226 1406 +5340 589 902 754 1456 +5341 584 580 850 1413 +5342 547 1186 545 1470 +5343 837 378 550 1228 +5344 128 871 65 1447 +5345 182 186 184 1419 +5346 17 97 131 839 +5347 320 174 232 1393 +5348 225 226 224 1407 +5349 300 338 339 1230 +5350 128 65 909 1447 +5351 780 482 483 1429 +5352 1133 1000 1428 1466 +5353 445 449 446 1246 +5354 381 558 382 1365 +5355 734 773 143 1414 +5356 1194 1445 1000 1466 +5357 804 866 744 1397 +5358 71 808 809 930 +5359 123 885 49 1315 +5360 240 238 700 1428 +5361 1015 1392 1122 1472 +5362 215 626 211 1415 +5363 375 343 756 1239 +5364 741 893 1320 1459 +5365 984 1109 1416 1485 +5366 373 500 502 1349 +5367 236 233 661 1444 +5368 811 583 857 1160 +5369 66 909 934 807 +5370 26 741 135 1320 +5371 826 817 145 1417 +5372 164 121 618 1295 +5373 172 736 634 1284 +5374 771 776 505 1325 +5375 487 827 485 1381 +5376 167 748 177 1359 +5377 743 824 744 1443 +5378 957 1115 1458 1474 +5379 241 243 289 1250 +5380 538 115 568 1292 +5381 482 780 774 1429 +5382 500 503 872 1349 +5383 414 448 743 1272 +5384 330 327 357 1357 +5385 904 528 43 1467 +5386 879 852 155 1171 +5387 696 259 716 1484 +5388 497 755 712 1372 +5389 267 361 790 1472 +5390 314 364 316 1339 +5391 202 625 345 1439 +5392 332 304 333 1253 +5393 581 582 1413 1461 +5394 628 307 325 1483 +5395 623 828 636 1449 +5396 311 326 635 1258 +5397 465 427 425 1384 +5398 220 222 221 1402 +5399 411 412 410 1345 +5400 854 877 158 1425 +5401 15 113 151 1304 +5402 977 1306 1203 1471 +5403 819 782 506 1426 +5404 199 617 201 1477 +5405 143 163 45 1294 +5406 139 20 84 797 +5407 471 467 466 1336 +5408 694 456 442 1468 +5409 931 941 943 1200 +5410 718 690 695 1353 +5411 923 929 927 1368 +5412 1364 1413 992 1461 +5413 432 463 430 1350 +5414 1153 1391 1036 1425 +5415 604 192 578 1469 +5416 207 680 216 1460 +5417 89 92 95 1363 +5418 43 856 44 1210 +5419 92 109 95 1363 +5420 315 314 316 1339 +5421 14 101 805 151 +5422 941 919 921 1432 +5423 581 582 580 1413 +5424 709 282 362 1324 +5425 856 116 44 1210 +5426 394 821 615 1463 +5427 935 940 932 1267 +5428 515 890 893 1320 +5429 161 142 699 1390 +5430 1162 1378 1014 1469 +5431 23 1 110 77 +5432 19 84 874 139 +5433 824 881 744 1397 +5434 380 344 376 1247 +5435 182 184 183 1301 +5436 345 200 202 1439 +5437 992 1413 1193 1461 +5438 591 890 513 1235 +5439 264 667 668 1445 +5440 501 504 503 1382 +5441 730 330 367 1242 +5442 386 385 604 1378 +5443 240 700 270 1428 +5444 132 112 8 1330 +5445 991 1158 1339 1481 +5446 893 154 896 1459 +5447 585 507 455 1448 +5448 917 138 72 1436 +5449 861 128 807 1175 +5450 823 443 441 1298 +5451 209 216 765 1462 +5452 329 747 295 1327 +5453 88 86 108 1391 +5454 403 474 473 1403 +5455 924 932 928 1281 +5456 802 800 391 1451 +5457 534 139 874 1348 +5458 377 849 581 1364 +5459 937 137 58 916 +5460 112 102 107 1330 +5461 165 140 171 1273 +5462 718 692 690 1353 +5463 738 50 125 1418 +5464 720 607 415 1446 +5465 828 825 634 1449 +5466 160 39 120 1435 +5467 929 926 944 1173 +5468 820 708 843 1249 +5469 313 678 326 1344 +5470 98 81 21 158 +5471 33 754 117 1265 +5472 701 628 629 1483 +5473 356 478 402 1437 +5474 646 645 644 1287 +5475 82 99 102 1351 +5476 116 549 545 1186 +5477 765 389 331 1396 +5478 357 849 377 1364 +5479 547 116 545 1186 +5480 18 97 839 874 +5481 104 83 5 136 +5482 230 235 273 1452 +5483 110 98 877 1425 +5484 468 591 513 1235 +5485 668 667 674 1445 +5486 365 480 354 1362 +5487 845 846 144 1234 +5488 873 112 9 132 +5489 860 503 504 1382 +5490 311 310 312 1438 +5491 337 385 386 1378 +5492 797 21 81 158 +5493 39 40 120 1435 +5494 476 1276 546 1470 +5495 316 364 732 1478 +5496 921 920 922 1432 +5497 390 747 329 1327 +5498 15 804 80 1304 +5499 687 686 395 1317 +5500 470 725 806 1334 +5501 935 801 62 1267 +5502 585 455 424 1448 +5503 898 663 664 1394 +5504 79 811 8 1330 +5505 318 316 732 1478 +5506 461 513 514 1440 +5507 176 167 177 1359 +5508 544 476 546 1470 +5509 722 721 608 1373 +5510 633 632 631 1297 +5511 854 23 877 1425 +5512 910 2 55 879 +5513 984 1248 1356 1412 +5514 323 624 678 1481 +5515 665 419 451 1309 +5516 991 1339 1344 1481 +5517 903 546 476 1276 +5518 97 18 78 874 +5519 267 790 262 1472 +5520 114 94 101 1374 +5521 147 588 905 1318 +5522 442 456 440 1468 +5523 675 696 716 1300 +5524 851 4 106 875 +5525 182 183 181 1301 +5526 251 250 252 1431 +5527 366 330 357 1357 +5528 765 771 389 1396 +5529 38 568 115 1292 +5530 922 924 928 1281 +5531 532 1348 534 1480 +5532 464 428 595 1453 +5533 887 134 572 1450 +5534 734 143 46 1414 +5535 911 72 808 1436 +5536 741 154 893 1459 +5537 51 886 134 1450 +5538 170 159 715 1343 +5539 811 865 583 1160 +5540 597 789 448 1405 +5541 347 349 348 1386 +5542 487 529 530 1457 +5543 127 904 42 1286 +5544 41 127 42 1286 +5545 153 853 54 1422 +5546 228 764 288 1455 +5547 381 559 558 1365 +5548 291 739 814 1355 +5549 753 663 898 1394 +5550 473 367 403 1403 +5551 934 152 67 807 +5552 555 401 554 1400 +5553 117 754 902 1265 +5554 201 200 199 1477 +5555 488 822 781 1316 +5556 722 608 766 1373 +5557 15 151 804 1304 +5558 4 83 106 875 +5559 709 286 282 1324 +5560 738 125 783 1418 +5561 39 899 40 1435 +5562 110 877 23 1425 +5563 607 417 415 1446 +5564 249 250 251 1431 +5565 485 827 488 1381 +5566 427 426 425 1384 +5567 842 574 126 1333 +5568 471 466 599 1336 +5569 332 334 642 1423 +5570 923 926 929 1430 +5571 287 236 661 1444 +5572 864 708 137 1283 +5573 589 587 595 1453 +5574 526 133 801 1267 +5575 684 731 713 1302 +5576 310 363 312 1438 +5577 264 237 239 1466 +5578 227 229 228 1331 +5579 110 98 22 877 +5580 35 34 752 1476 +5581 110 77 108 1425 +5582 161 699 169 1390 +5583 25 24 154 1459 +5584 716 259 786 1484 +5585 761 335 759 1441 +5586 133 62 801 1267 +5587 938 915 933 1447 +5588 868 470 806 1334 +5589 838 530 840 1383 +5590 335 761 711 1441 +5591 810 864 60 912 +5592 388 306 709 1475 +5593 235 274 273 1452 +5594 811 79 7 865 +5595 860 152 803 1279 +5596 269 275 268 1389 +5597 603 191 194 1388 +5598 278 321 322 1379 +5599 288 764 684 1455 +5600 332 642 590 1423 +5601 135 741 890 1320 +5602 876 55 853 1200 +5603 566 361 277 1392 +5604 136 6 104 865 +5605 527 458 460 1433 +5606 532 139 534 1348 +5607 219 626 215 1415 +5608 778 786 499 1347 +5609 132 8 811 1330 +5610 75 876 157 931 +5611 91 94 90 1259 +5612 683 402 478 1437 +5613 409 411 410 1345 +5614 77 23 1 880 +5615 372 508 399 1410 +5616 347 598 349 1386 +5617 890 741 893 1320 +5618 394 615 293 1463 +5619 749 145 817 1417 +5620 137 59 864 937 +5621 383 382 384 1409 +5622 138 525 808 1436 +5623 511 458 527 1433 +5624 158 877 98 1425 +5625 209 765 213 1462 +5626 53 153 54 1422 +5627 592 294 283 1454 +5628 137 708 706 1283 +5629 94 76 101 1374 +5630 866 726 744 1443 +5631 918 926 920 1430 +5632 225 224 223 1407 +5633 782 819 301 1426 +5634 531 149 871 1447 +5635 64 63 915 149 +5636 580 582 850 1413 +5637 555 835 401 1400 +5638 944 930 70 130 +5639 106 77 3 880 +5640 184 186 187 1419 +5641 876 75 943 931 +5642 829 689 831 1420 +5643 597 788 789 1405 +5644 147 897 588 1318 +5645 592 562 294 1454 +5646 138 808 72 1436 +5647 98 108 86 1425 +5648 220 564 222 1402 +5649 930 809 70 130 +5650 530 531 840 1383 +5651 754 32 147 1456 +5652 910 939 56 879 +5653 458 459 460 1433 +5654 74 73 914 796 +5655 623 825 828 1449 +5656 744 131 804 1397 +5657 533 532 534 1480 +5658 909 938 933 1447 +5659 487 486 529 1457 +5660 82 10 11 150 +5661 616 461 514 1440 +5662 867 529 486 1457 +5663 82 100 99 1351 +5664 104 7 79 865 +5665 60 864 937 912 +5666 3 106 880 851 +5667 943 55 2 876 +5668 802 479 800 1451 +5669 66 65 909 128 +5670 76 12 13 129 +5671 628 325 629 1483 +5672 582 581 136 1461 +5673 927 924 923 1368 +5674 903 508 548 1410 +5675 15 16 80 804 +5676 671 388 709 1475 +5677 239 237 238 1466 +5678 589 147 905 1456 +5679 104 5 6 136 +5680 811 812 132 1330 +5681 58 59 137 937 +5682 900 127 41 1286 +5683 940 935 945 1267 +5684 17 111 16 131 +5685 939 852 56 879 +5686 69 68 913 803 +5687 74 75 157 931 +5688 35 164 34 1476 +5689 128 531 871 1447 +5690 911 918 917 1436 +5691 533 534 535 1480 +5692 572 134 886 1450 +5693 726 743 744 1443 +5694 112 107 79 1330 +5695 872 502 500 1349 +5696 315 323 678 1481 +5697 926 923 920 1430 +5698 139 532 862 1348 +5699 31 897 147 1318 +5700 162 42 43 1467 +5701 754 147 589 1456 +5702 42 904 43 1467 +5703 921 919 920 1432 +5704 72 71 911 808 +5705 114 113 80 1304 +5706 88 87 86 1391 +5707 158 22 98 877 +5708 866 804 151 1304 +5709 63 62 935 801 +5710 852 56 57 939 +5711 101 13 14 805 +5712 881 131 744 1397 +5713 581 583 136 1461 +5714 110 108 98 1425 +5715 20 21 81 797 +5716 106 3 4 851 +5717 741 25 154 1459 +5718 97 17 18 839 +5719 67 68 152 946 +5720 8 9 112 132 +5721 70 71 809 930 +5722 23 110 1 877 +5723 84 19 20 139 +5724 79 7 8 811 +5725 67 66 934 807 +5726 60 61 810 912 +5727 399 508 903 1410 +5728 22 1 110 877 +5729 15 113 14 151 +5730 464 595 587 1453 +5731 56 2 910 879 +5732 57 58 870 916 +5733 19 78 18 874 +5734 22 98 21 158 +5735 1 3 77 880 +5736 545 544 546 1470 +5737 547 545 546 1470 +5738 62 61 945 133 +5739 2 75 943 876 +5740 70 69 944 130 +5741 104 6 7 865 +5742 59 60 864 937 +5743 102 9 10 873 +5744 72 73 138 917 +5745 83 4 5 875 +5746 105 11 12 878 +5747 65 64 938 871 +5748 1292 160 1435 38 +5749 1292 1435 160 1004 +5750 1246 1298 443 452 +5751 443 1298 1246 1083 +5752 1135 1229 1380 986 +5753 1380 1229 1135 438 +5754 1138 320 1393 775 +5755 1138 1393 320 1023 +5756 416 1231 418 597 +5757 418 1231 416 1130 +5758 1411 1017 979 1196 +5759 1411 979 1017 1098 +5760 1481 1069 991 1202 +5761 1481 991 1069 1344 +5762 1449 1051 1107 1069 +5763 1449 1107 1051 1343 +5764 303 1021 1218 553 +5765 1218 1021 303 1155 +5766 1267 1447 932 915 +5767 932 1447 1267 1042 +5768 1246 443 444 445 +5769 1246 444 443 1083 +5770 457 1246 693 446 +5771 693 1246 457 1002 +5772 1188 1373 1195 272 +5773 1195 1373 1188 985 +5774 394 1013 1151 556 +5775 1151 1013 394 1463 +5776 1151 392 394 556 +5777 394 392 1151 1463 +5778 1354 1070 1322 1001 +5779 1354 1322 1070 1285 +5780 297 1324 285 286 +5781 285 1324 297 1129 +5782 1384 1168 429 428 +5783 1384 429 1168 1018 +5784 247 1187 1484 245 +5785 1484 1187 247 1033 +5786 1147 384 494 710 +5787 1147 494 384 1077 +5788 1391 1363 89 1085 +5789 1391 89 1363 88 +5790 1225 1475 308 388 +5791 308 1475 1225 1037 +5792 1388 196 193 194 +5793 1388 193 196 1255 +5794 1228 358 390 837 +5795 1228 390 358 1059 +5796 1384 429 697 427 +5797 1384 697 429 1018 +5798 1237 1285 1354 1070 +5799 1354 1285 1237 958 +5800 1188 252 253 254 +5801 1188 253 252 1125 +5802 1376 976 1096 1264 +5803 1376 1096 976 1310 +5804 1462 305 304 1032 +5805 1462 304 305 213 +5806 1102 596 888 1078 +5807 1102 888 596 753 +5808 1282 968 1078 1203 +5809 1282 1078 968 1241 +5810 1353 1306 1282 977 +5811 1353 1282 1306 1136 +5812 1426 1056 838 1150 +5813 1426 838 1056 1198 +5814 1117 1314 1377 961 +5815 1377 1314 1117 1285 +5816 1287 658 263 1073 +5817 1287 263 658 645 +5818 1271 1129 1261 1005 +5819 1271 1261 1129 964 +5820 768 1171 1422 155 +5821 1422 1171 768 1161 +5822 1363 1461 92 1160 +5823 92 1461 1363 1193 +5824 1164 208 1460 205 +5825 1164 1460 208 1118 +5826 1459 896 854 154 +5827 1459 854 896 1116 +5828 1203 1168 1078 977 +5829 1203 1078 1168 1007 +5830 1156 1395 1090 979 +5831 1090 1395 1156 1023 +5832 1480 518 519 532 +5833 1480 519 518 1145 +5834 119 1294 44 163 +5835 44 1294 119 1210 +5836 1425 156 24 23 +5837 1425 24 156 1036 +5838 974 1400 1291 1138 +5839 974 1291 1400 1151 +5840 1023 1291 1400 1138 +5841 1023 1400 1291 1151 +5842 1309 1020 420 1130 +5843 1309 420 1020 1165 +5844 1466 673 264 237 +5845 1466 264 673 1194 +5846 1240 1386 1211 1081 +5847 1211 1386 1240 1113 +5848 1321 1126 1287 967 +5849 1321 1287 1126 1030 +5850 435 1229 437 436 +5851 437 1229 435 1140 +5852 1318 1206 1453 1007 +5853 1318 1453 1206 1050 +5854 1388 189 192 191 +5855 1388 192 189 1154 +5856 1432 936 1213 921 +5857 1432 1213 936 1171 +5858 1278 1187 1300 1033 +5859 1278 1300 1187 962 +5860 565 1355 498 814 +5861 498 1355 565 1068 +5862 1359 118 166 1131 +5863 1359 166 118 167 +5864 1331 658 225 227 +5865 1331 225 658 1073 +5866 1347 1269 1278 1033 +5867 1347 1278 1269 1008 +5868 1431 1039 970 1136 +5869 1431 970 1039 1125 +5870 1403 560 474 473 +5871 1403 474 560 1142 +5872 1292 1435 1245 115 +5873 1245 1435 1292 1004 +5874 1442 1100 1009 1315 +5875 1442 1009 1100 1354 +5876 1381 484 483 485 +5877 1381 483 484 1319 +5878 1318 122 1104 31 +5879 1318 1104 122 1138 +5880 733 1104 122 31 +5881 733 122 1104 1138 +5882 1316 1274 1072 994 +5883 1316 1072 1274 1045 +5884 1322 1072 1274 994 +5885 1322 1274 1072 1045 +5886 1323 1135 972 1163 +5887 1323 972 1135 1236 +5888 1478 499 778 732 +5889 1478 778 499 1347 +5890 450 1246 457 446 +5891 457 1246 450 1126 +5892 1457 867 149 1042 +5893 149 867 1457 529 +5894 149 1447 1457 1042 +5895 1457 1447 149 529 +5896 1417 397 1342 817 +5897 1417 1342 397 1211 +5898 704 1342 397 817 +5899 704 397 1342 1211 +5900 1265 1241 1273 968 +5901 1265 1273 1241 1102 +5902 1061 1273 1241 968 +5903 1061 1241 1273 1102 +5904 1230 1207 1216 1034 +5905 1230 1216 1207 988 +5906 1468 882 907 456 +5907 1468 907 882 1043 +5908 1429 1052 353 1319 +5909 1429 353 1052 1113 +5910 1397 80 96 111 +5911 1397 96 80 1304 +5912 1414 901 148 1071 +5913 1414 148 901 46 +5914 947 1368 1175 927 +5915 1175 1368 947 1279 +5916 1175 934 947 927 +5917 947 934 1175 1279 +5918 1477 1398 1167 998 +5919 1477 1167 1398 1045 +5920 1386 350 1211 349 +5921 1386 1211 350 1113 +5922 1413 1036 156 1181 +5923 1413 156 1036 1193 +5924 1195 1263 1188 1039 +5925 1188 1263 1195 985 +5926 1388 1045 973 1255 +5927 1388 973 1045 1141 +5928 1407 1412 1073 1046 +5929 1073 1412 1407 1197 +5930 1305 995 1049 1192 +5931 1305 1049 995 1214 +5932 401 1138 835 775 +5933 401 835 1138 1400 +5934 1405 416 448 597 +5935 1405 448 416 1272 +5936 852 916 57 870 +5937 57 916 852 939 +5938 1379 490 637 321 +5939 1379 637 490 1097 +5940 1463 1375 1151 1013 +5941 1463 1151 1375 1094 +5942 1447 1457 1383 531 +5943 1383 1457 1447 1042 +5944 1298 650 653 823 +5945 1298 653 650 1208 +5946 1278 1484 1347 1033 +5947 1347 1484 1278 1060 +5948 1390 41 40 161 +5949 1390 40 41 1286 +5950 1240 1464 1274 1101 +5951 1274 1464 1240 994 +5952 1468 444 443 442 +5953 1468 443 444 1083 +5954 1367 900 127 524 +5955 1367 127 900 1286 +5956 1202 1458 1069 991 +5957 1069 1458 1202 1051 +5958 1462 331 765 213 +5959 1462 765 331 1396 +5960 131 80 1397 111 +5961 131 1397 80 804 +5962 1238 359 767 341 +5963 1238 767 359 1338 +5964 1421 1331 1073 1046 +5965 1421 1073 1331 1011 +5966 1437 666 627 478 +5967 1437 627 666 1157 +5968 1366 1326 1264 1032 +5969 1366 1264 1326 1048 +5970 1438 714 308 310 +5971 1438 308 714 1225 +5972 1316 193 196 822 +5973 1316 196 193 1255 +5974 803 944 69 130 +5975 803 69 944 913 +5976 1426 617 776 819 +5977 1426 776 617 1167 +5978 1410 884 727 508 +5979 1410 727 884 1064 +5980 1468 443 441 442 +5981 1468 441 443 1298 +5982 1450 571 573 572 +5983 1450 573 571 1152 +5984 398 1410 372 399 +5985 372 1410 398 1177 +5986 1394 662 462 663 +5987 1394 462 662 1229 +5988 1312 1439 961 1209 +5989 961 1439 1312 1164 +5990 1432 918 1430 1169 +5991 1432 1430 918 920 +5992 1484 778 786 716 +5993 1484 786 778 1347 +5994 531 1457 530 529 +5995 530 1457 531 1383 +$EndElements diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/case.json b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/case.json new file mode 100644 index 0000000..2cd59fd --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/case.json @@ -0,0 +1,19 @@ +{ + "tet": { + "geometry": { "type": "Cylinder", "length": 1.0, "radius": 0.1 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "file": "beam_tet.msh", "size": 0.03 }, + "load": { "type": "transverseTraction", "magnitude": 2.0 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/fenics_scene.py new file mode 100644 index 0000000..2d2d3c4 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/fenics_scene.py @@ -0,0 +1,84 @@ +import json +import os + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem +from dolfinx.io import gmshio +from mpi4py import MPI + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + domain = gmshio.read_from_msh(os.path.join(CASE_DIR, case['mesh']['file']), MPI.COMM_WORLD, gdim=3)[0] + V = fem.functionspace(domain, ("Lagrange", 1, (3,))) + + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - 2 * poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(3) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + right_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[0], case['geometry']['length'])) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, right_facets, + np.full_like(right_facets, 1, dtype=np.int32)) + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags) + + traction = fem.Constant(domain, default_scalar_type((0.0, -case['load']['magnitude'], 0.0))) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + clamped = fem.locate_dofs_geometrical(V, lambda x: np.isclose(x[0], 0.0)) + bc = fem.dirichletbc(np.zeros(3, dtype=default_scalar_type), clamped, V) + + return V, a, L, [bc] + + +def solve(case): + V, a, L, bcs = build(case) + + problem = LinearProblem(a, L, bcs=bcs, petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + # dolfinx renumbers the nodes it reads: put them back in the mesh file's order, which is SOFA's + domain = V.mesh + file_index = np.empty(V.dofmap.index_map.size_local, dtype=np.int64) + file_index[V.dofmap.list.ravel()] = np.asarray(domain.geometry.input_global_indices)[domain.geometry.dofmap.ravel()] + + x, u = np.empty((len(file_index), 3)), np.empty((len(file_index), 3)) + x[file_index] = V.tabulate_dof_coordinates()[:, :3] + u[file_index] = solution.x.array.reshape(-1, 3) + return x, u + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for sub_case in json.load(f).values(): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/mesh.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/mesh.py new file mode 100644 index 0000000..af0f9e1 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/mesh.py @@ -0,0 +1,31 @@ +"""Writes the cylinder meshes of case.json with gmsh: `python mesh.py`.""" + +import json +import os + +import gmsh + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) + + +def write(case): + gmsh.initialize() + gmsh.model.add(case['element']) + length, radius = case['geometry']['length'], case['geometry']['radius'] + size = case['mesh']['size'] + + disk = gmsh.model.occ.addDisk(0, 0, 0, radius, radius, zAxis=[1, 0, 0]) + gmsh.model.occ.extrude([(2, disk)], length, 0, 0) + gmsh.model.occ.synchronize() + gmsh.model.addPhysicalGroup(3, [tag for _, tag in gmsh.model.getEntities(3)]) + + gmsh.option.setNumber('Mesh.MeshSizeMax', size) + gmsh.model.mesh.generate(3) + gmsh.write(os.path.join(CASE_DIR, case['mesh']['file'])) + gmsh.finalize() + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for case in json.load(f).values(): + write(case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/reference_solution.json new file mode 100644 index 0000000..34b5f91 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/reference_solution.json @@ -0,0 +1 @@ +{"tet": {"fenics": {"x": [[1.2701714604616472e-18, -2.952064939143235e-19, 0.10000000000000002], [0.9999999999999999, -2.422618889939055e-19, 0.09999999999999999], [-8.276072663456242e-19, -0.029475517441090386, 0.09555728057861407], [8.373393036153253e-20, -0.05633200580636215, 0.08262387743159952], [1.3106528439152314e-19, -0.07818314824680292, 0.062348980185873426], [9.141238551761612e-20, -0.09308737486442037, 0.03653410243663961], [1.3606380143606146e-18, -0.09972037971811802, 0.007473009358642548], [1.2246361148826323e-18, -0.0974927912181824, -0.02225209339563135], [1.3940425546391227e-19, -0.0866025403784439, -0.049999999999999906], [1.1373548099965328e-18, -0.06801727377709203, -0.07330518718298257], [-1.0816503924012673e-18, -0.043388373911755936, -0.09009688679024185], [-4.635785018431321e-19, -0.014904226617617781, -0.09888308262251283], [-1.1780568292455269e-18, 0.014904226617617098, -0.0988830826225129], [-3.8014795069391887e-19, 0.04338837391175541, -0.09009688679024214], [3.0615554682668055e-19, 0.06801727377709152, -0.073305187182983], [1.2903273018850735e-19, 0.08660254037844348, -0.050000000000000655], [1.3623028583338903e-19, 0.09749279121818218, -0.022252093395632236], [9.637287612135032e-20, 0.09972037971811808, 0.00747300935864155], [2.286237344324274e-19, 0.09308737486442069, 0.036534102436638786], [1.2022110240273052e-19, 0.07818314824680332, 0.06234898018587291], [-3.7073925406904015e-19, 0.056332005806362564, 0.08262387743159925], [1.1863811091305906e-19, 0.029475517441090632, 0.095557280578614], [0.029411764705882394, 1.87994906967695e-20, 0.10000000000000002], [0.058823529411764754, -1.5094958152185287e-18, 0.09999999999999999], [0.08823529411764719, 1.2549009603521568e-18, 0.10000000000000002], [0.11764705882352962, -1.4277495178280731e-18, 0.10000000000000002], [0.14705882352941202, -9.2986986204805e-19, 0.10000000000000002], [0.17647058823529432, -1.1778523635749064e-18, 0.10000000000000002], [0.20588235294117674, -1.1941790694360141e-18, 0.10000000000000002], [0.23529411764705901, -1.5983383537148134e-18, 0.10000000000000002], [0.26470588235294157, -1.257139220518591e-18, 0.10000000000000002], [0.2941176470588238, -1.5111754032095107e-18, 0.09999999999999999], [0.32352941176470645, -1.5116934750489912e-18, 0.09999999999999999], [0.35294117647058887, -1.5715880126414966e-18, 0.09999999999999999], [0.38235294117647123, -4.339671681119395e-19, 0.09999999999999999], [0.41176470588235375, -1.4726691289239154e-18, 0.09999999999999999], [0.4411764705882361, -1.5184803383578934e-18, 0.09999999999999999], [0.47058823529411875, -1.2937013851085852e-18, 0.10000000000000002], [0.500000000000001, 1.1753216448095972e-18, 0.09999999999999999], [0.5294117647058831, 2.5071071290422413e-20, 0.09999999999999999], [0.5588235294117655, 2.5071071290422413e-20, 0.09999999999999999], [0.5882352941176477, -8.274330100624452e-21, 0.09999999999999999], [0.61764705882353, 6.855166411745742e-20, 0.09999999999999999], [0.6470588235294122, -1.5996341923040502e-18, 0.09999999999999999], [0.6764705882352945, -1.1005265445442547e-19, 0.09999999999999999], [0.7058823529411767, -1.6391604165011703e-19, 0.09999999999999999], [0.7352941176470591, -1.2560504297394158e-19, 0.09999999999999999], [0.7647058823529412, 2.999868734662428e-20, 0.09999999999999999], [0.7941176470588235, 2.999868734662428e-20, 0.09999999999999999], [0.8235294117647058, 2.12996607636e-19, 0.09999999999999999], [0.8529411764705881, 2.2561434298182798e-21, 0.09999999999999999], [0.8823529411764702, 1.8248585525949642e-19, 0.09999999999999999], [0.9117647058823526, 8.110981882818643e-20, 0.09999999999999999], [0.9411764705882347, -1.4626568944618657e-18, 0.09999999999999999], [0.9705882352941171, 1.0150266812156259e-19, 0.09999999999999999], [0.9999999999999999, -0.029475517441090386, 0.09555728057861407], [1.0, -0.05633200580636217, 0.08262387743159955], [0.9999999999999998, -0.07818314824680292, 0.06234898018587342], [0.9999999999999998, -0.09308737486442037, 0.03653410243663961], [0.9999999999999998, -0.099720379718118, 0.007473009358642546], [0.9999999999999998, -0.09749279121818237, -0.022252093395631348], [0.9999999999999998, -0.0866025403784439, -0.049999999999999906], [0.9999999999999999, -0.06801727377709202, -0.07330518718298254], [0.9999999999999998, -0.043388373911755936, -0.09009688679024185], [0.9999999999999998, -0.014904226617617778, -0.0988830826225128], [0.9999999999999999, 0.014904226617617096, -0.0988830826225129], [0.9999999999999999, 0.043388373911755394, -0.09009688679024211], [0.9999999999999998, 0.06801727377709152, -0.073305187182983], [0.9999999999999998, 0.08660254037844348, -0.050000000000000655], [1.0, 0.0974927912181822, -0.02225209339563224], [0.9999999999999998, 0.09972037971811808, 0.00747300935864155], [0.9999999999999999, 0.09308737486442069, 0.036534102436638786], [0.9999999999999998, 0.07818314824680332, 0.06234898018587291], [0.9999999999999999, 0.05633200580636255, 0.08262387743159924], [0.9999999999999998, 0.029475517441090636, 0.095557280578614], [2.152565832239851e-18, -2.52118677002983e-16, -0.07306820487327914], [2.897581025623416e-19, -0.011508248893123116, 0.07280417667649476], [1.3537990147782153e-18, 0.07123623242397975, 0.01625920519091276], [1.6463957697377853e-18, -0.07286389135284624, -0.005460393788372081], [2.0390455281883777e-18, 0.058559949006259084, -0.04917425094414683], [4.889866106855485e-19, 0.04969900095266478, 0.05356278435360207], [1.3429403815193348e-19, -0.04116078541182027, -0.060371784035968074], [1.6512591597656474e-19, -0.048758542963527225, 0.051325607362379226], [-6.951115179423921e-19, 0.06944984514603657, 0.04009688679024144], [-2.583114342431216e-18, 0.046655634827253704, 0.027552836632207693], [1.5107728305327313e-18, 0.022976518098237923, 0.04235001236537814], [-1.562045384430632e-18, 0.019855739632001258, 0.014479666682287848], [3.2568221964772303e-18, -0.003969118687826101, 0.029725171164527043], [-1.7896843779311632e-18, -0.008513706565336081, 0.002292220138594795], [-1.0983356726907806e-18, 0.016234530426989188, -0.014102429384138776], [1.4294499332826666e-19, -0.01224314338738922, -0.026495107570484455], [-1.1618561640675625e-18, -0.03450550212999403, 0.021448820572495277], [-5.963143546393702e-19, 0.04871740625483301, -0.003488004852144479], [3.391059757516847e-19, 0.013237939209728919, -0.043973699144657215], [3.470952548085387e-19, -0.0336930522090509, -0.008916522986870285], [-1.974865163853407e-18, 0.039157344471390944, -0.028181095764745683], [4.085334126057872e-19, 0.07828726642463171, -0.006766422180493857], [-2.0479049973673905e-18, 0.028315887469779012, 0.06799443321897354], [3.797318622550732e-18, -0.03723162283093192, -0.03480413784791669], [-2.011184026741183e-18, -0.016839190356466176, -0.05255732044986449], [2.3999226756187173e-18, 0.026290050514930836, -0.06917579577250928], [-4.44270331961537e-19, -0.06136973046791288, -0.04418039696963311], [4.222174226474465e-18, -0.021949679421422882, 0.050199517822524145], [1.2664145866819168e-18, -0.06724393895343415, 0.025594861434738974], [-2.777743834044394e-18, -0.023637529718384297, -0.07663098922688141], [2.2959918509592292e-18, -0.03418764401364817, 0.07135923552761662], [1.0740113579437536e-18, -0.0559927554950065, -0.02004242348629351], [-1.1226501121554046e-18, 0.003315594733254227, 0.05619567722638205], [-1.0517677282655212e-18, -0.053411732523838254, 0.005654386985016353], [-1.1673483681150847e-18, 0.009750487402022716, 0.07935329800422578], [-2.061283856147982e-18, 0.06813621629229005, -0.026643644522860627], [3.1252862058317907e-19, -0.07540677636266055, -0.028510908005608515], [1.2905523856234862e-19, 0.04694795383579438, -0.0656781606917031], [1.2905523856234862e-19, 0.03648978553636027, -0.050309989556920856], [0.48529411764705976, 0.02526392191504819, 0.09675605536332259], [0.6617647058823534, 0.02526392191504819, 0.09675605536332259], [0.3382352941176475, 0.025263921915038914, 0.09675605536332502], [0.7500032707586178, -0.02526361212528865, 0.09675613625183145], [0.6323529411764711, -0.025263921915037336, 0.09675605536332542], [0.5147085547247893, -0.025262392896977574, 0.09675645459150899], [0.39705882352941263, -0.025263921915088323, 0.09675605536331214], [0.250023332630354, -0.025247195356838892, 0.09676042128170803], [0.7794117647058826, 0.025263921915048202, 0.09675605536332262], [0.22058823529411792, 0.02526392191504829, 0.09675605536332259], [0.8382348892760624, -0.025261840631395117, 0.09675659878227424], [0.16155182343618982, -0.024619111732518364, 0.09692213027736123], [0.5664469667941776, 0.024946213418093516, 0.09683845535787387], [0.9706081396299117, -0.0014794375823548643, -0.09998905572331364], [0.029463270255207886, -0.0021470210150576247, -0.09997694884702625], [0.9742092960782424, 0.09308737486442013, -0.03653410243664022], [0.027655502873839673, 0.09253748638154966, -0.037905324351395674], [0.029878425279968913, -0.09169440260381674, -0.03990158557161811], [0.9742092960782457, -0.09308737486442045, -0.03653410243663939], [0.8676470588235293, 0.025263921914998363, 0.09675605536333563], [0.13235294117647078, 0.025263921914998527, 0.09675605536333556], [0.028091138921535627, -0.08638710675014012, 0.050371299242126945], [0.9712891951134758, -0.08642270486913847, 0.050310198599307805], [0.9742092960783801, 0.08660254037844424, 0.049999999999999406], [0.028591499162091114, 0.08847220778903958, 0.046611891711590095], [0.3382427957239558, -0.025261537111690935, 0.09675667802665953], [0.4558877422570791, -0.025261300270097462, 0.0967567398616963], [0.5735376494773947, -0.025260505959882544, 0.09675694723714025], [0.6911803774893995, -0.025258973377904535, 0.09675734733804102], [0.10289711937803107, -0.024739735394769768, 0.09689141082983968], [0.8970588235294114, -0.025263921915088108, 0.09675605536331217], [0.3970588235294125, 0.025263921915040805, 0.09675605536332452], [0.27941176470588275, 0.02526392191507338, 0.09675605536331604], [0.7205882352941179, 0.025263921915056785, 0.09675605536332034], [0.9710712117050966, -0.05602774337543643, -0.08283050146085223], [0.025790703921756426, -0.056332005806362336, -0.08262387743159942], [0.024160744649993314, 0.055905500413056065, -0.08291305701495867], [0.9729296360517319, 0.05553625342671964, -0.08316083546551926], [0.9264705882352937, 0.025263921915356275, 0.09675605536324215], [0.07352941176470597, 0.025263921915356362, 0.09675605536324212], [0.9535053699285616, -0.02499832756202306, 0.0968250154614075], [0.046281172130565595, -0.024855335058523404, 0.09686182075063703], [0.9742092960782425, 0.04338837391175607, 0.09009688679024182], [0.02356276400527854, 0.04470876263410963, 0.08944901644918651], [0.42648273175645857, -0.025257369943201095, 0.0967577659082323], [0.48530644308831256, -0.025257055885034043, 0.09675784788853184], [0.5441233763386277, -0.025262603403053824, 0.09675639962968863], [0.6029561381493568, -0.025255495335854573, 0.09675825523096533], [0.6617663338377171, -0.025262219590400047, 0.09675649984040559], [0.36764705882353005, -0.025263921915037506, 0.09675605536332538], [0.30882427304653703, -0.025263459741800994, 0.09675617603995312], [0.7794117647058824, -0.025263921915088108, 0.09675605536331217], [0.7647058823527655, -0.04892003708809008, 0.08721714264581183], [0.6470588235293971, -0.04889652192985831, 0.08723032811564387], [0.5294117647058835, -0.0488915224870407, 0.08723313033990697], [0.4117865774407529, -0.04889193840125558, 0.08723289723130734], [0.3235294029274696, -0.04890038427893733, 0.08722816298290512], [0.470536248635375, -0.048899591624401356, 0.08722860734281372], [0.5882581438467585, -0.04888523094913426, 0.08723665625784731], [0.29411309769555005, -0.048885679552688716, 0.08723640487016777], [0.7352758896218002, -0.048900613143494386, 0.08722803468031538], [0.7499691729251774, -0.06940458678045196, 0.07199307837448479], [0.7794576446938971, -0.0694058140508646, 0.07199189521006377], [0.7646864520108181, -0.08538329980434751, 0.052054703097039266], [0.794220735825806, -0.08537958062346851, 0.05206080303415073], [0.7794503075183489, -0.09579230443596329, 0.028702515758165296], [0.7499318467976139, -0.09578772617733887, 0.028717790893018694], [0.7646820959833437, -0.0999394262431551, 0.003480098014275672], [0.735155682256375, -0.09993866994381845, 0.003501749542802413], [0.7499011790856395, -0.09755812822842189, -0.021963870710027207], [0.7203818964725016, -0.09756306633479768, -0.021941925333750282], [0.7794319467779199, -0.09755402144601645, -0.021982104078321556], [0.7646473829395953, -0.08878731296654815, -0.046008836718398276], [0.7941951279569173, -0.08877920342709818, -0.04602448303729139], [0.7794095362961148, -0.07419228947757327, -0.06704852110282504], [0.8089420231650306, -0.07416927554777702, -0.06707397829798026], [0.7941774740572038, -0.0547190210343644, -0.0837008287715288], [0.7646075198063508, -0.05473966879987749, -0.08368732675668233], [0.8237280063393677, -0.05469487634297792, -0.08371660827951859], [0.8089494674980767, -0.03163965922143582, -0.0948627005959213], [0.8237213482988579, -0.08873857302821209, -0.04610277276820416], [0.8385442778066192, -0.03162722056482762, -0.09486684836835123], [0.8237355354002949, -0.006465131562135116, -0.09979079152849867], [0.8531666981811303, -0.006374425927100418, -0.09979662666693653], [0.8385172950436832, 0.019129035914197685, -0.09815334933150949], [0.8089237399759498, 0.019108968646082507, -0.09815725809782501], [0.8237102650353137, 0.043442429972840015, -0.09007083478049313], [0.7941134198565938, 0.043418708852704574, -0.09008227196049219], [0.8088795152793979, 0.06488392656889536, -0.07609254939218552], [0.7793071215927917, 0.0648636814061045, -0.0761098077414953], [0.7940682399441178, 0.0820725648665629, -0.057132250929084014], [0.7645082689098336, 0.08205637354406499, -0.057155503329048465], [0.8236470050080794, 0.08208491003858805, -0.057114512551162566], [0.8088270643730975, 0.09389742533962182, -0.03439874292165549], [0.8384063553713286, 0.0939059822253448, -0.034375376394931656], [0.7497508580280902, 0.06485094996468782, -0.07612065612353558], [0.7349599608721739, 0.08204045296889753, -0.057178353217438076], [0.8236055956312012, 0.09955794592509588, -0.009392305530362783], [0.853184143844214, 0.09955933751915555, -0.009377543001600475], [0.7497045331934599, 0.09387087578278747, -0.0344711282056808], [0.7201710169175589, 0.09386185530695008, -0.03449568260430808], [0.8532375461772758, 0.08207455103541138, -0.05712939761922621], [0.7349135623252209, 0.09954342923369498, -0.009544930402908224], [0.705383704737195, 0.09954073723095425, -0.009572963570291271], [0.690637565249347, 0.0938540695932232, -0.0345168599497465], [0.6758698116881142, 0.09954187653933809, -0.009561109508167435], [0.6611208911483947, 0.09384838067941619, -0.03453232462275571], [0.6463519579688208, 0.09954045326324633, -0.009575915838575057], [0.6316146774055204, 0.09384250039584738, -0.034548301252816806], [0.6463933162313978, 0.08202683352896561, -0.05719788965697387], [0.6168834114903213, 0.0820213211576136, -0.05720579407332449], [0.6316474792124696, 0.06485636876613343, -0.07611603924582067], [0.6021616185446171, 0.06483991270883269, -0.07613005792662289], [0.616914154850689, 0.043452797754473346, -0.09006583351809294], [0.5874303927488626, 0.043434434574897596, -0.09007469063593246], [0.6021684948905268, 0.019225301962643056, -0.09813453910038601], [0.5726968946862561, 0.019203519618946435, -0.09813880391692542], [0.30879667249172055, -0.06937343439242326, 0.07202309768817321], [0.5579450391174697, 0.04341589085061069, -0.09008363015358482], [0.5432212268990302, 0.019183045596676298, -0.09814280799750859], [0.5874559111623763, -0.006267378594699199, -0.09980340658289527], [0.5284697037227306, 0.04339841244981867, -0.09009205179612362], [0.5137470918489421, 0.019164000586676236, -0.09814652862691513], [0.4989927750235866, 0.04338021576781568, -0.09010081509030737], [0.48427108852963385, 0.01914491834057856, -0.09815025268297878], [0.46951639257118044, 0.04336228032501447, -0.09010944814510219], [0.45479515192887593, 0.019125729685405313, -0.09815399362227097], [0.44001295120115336, 0.04340073442516135, -0.0900909332361288], [0.42531741979912274, 0.019107715035689143, -0.0981575021387306], [0.4104842288020281, 0.04338491605286889, -0.09009855192557491], [0.39583523955944266, 0.019086373257033554, -0.09816165420312149], [0.38108442592852887, 0.04331057506229786, -0.09013431137903627], [0.36635708007883266, 0.019064770482141093, -0.09816585214046321], [0.35160065742387103, 0.04329441760726023, -0.09014207343992127], [0.33686408054975525, 0.019038360094560038, -0.09817097761003434], [0.32209572223193433, 0.043283414974346936, -0.09014735707805573], [0.3073556912049313, 0.01901011617650174, -0.09817645075554478], [0.29256929296086076, 0.04327465264717494, -0.09015156370394443], [0.27783325438460044, 0.018980862516744152, -0.09818211068275351], [0.2630277749720095, 0.04326474847734421, -0.09015631724506132], [0.24826584520719738, 0.018952078107192717, -0.09818767099498218], [0.23346052965443587, 0.04327828201922605, -0.09014982143889323], [0.21868767831036467, 0.018921885211223722, -0.09819349398026975], [0.23351112037215013, -0.0066437698857239515, -0.09977905753065396], [0.38113172636498505, -0.0064041205255397195, -0.09979472551339758], [0.20392995286352017, 0.04331340267218766, -0.09013295262531305], [0.20391594493547252, -0.006672452415807271, -0.09977714356884944], [0.21864632721193963, -0.03185463509320834, -0.09479072857130356], [0.6021210153787934, 0.09383757430681547, -0.034561678897485335], [0.4990192282176507, -0.006322217139811733, -0.09979994774766703], [0.18908815467137152, -0.03185652830255081, -0.09479009233305337], [0.20396105093579955, -0.05488275473356382, -0.08359355975704992], [0.23353495086772968, -0.05486543324417415, -0.0836049294894091], [0.21878588653035647, -0.07431618810321808, -0.06691116637607737], [0.18920135998731188, -0.07434348560500428, -0.06688083543212149], [0.4551578116647175, 0.0650228832459836, -0.07597384190877267], [0.36632714453494386, 0.06471880759019119, -0.07623303709090835], [0.24824804249017896, 0.06474617706026242, -0.07620979304578346], [0.6169371207874018, -0.006250950988248994, -0.09980443683395296], [0.6022119266237481, -0.031329062361413904, -0.09496572987954464], [0.20401908959233386, -0.08888993675973361, -0.045810251503899835], [0.17443232782046056, -0.08890892987602544, -0.04577337859826374], [0.24835043540580634, -0.07428538109290497, -0.06694536694859379], [0.6316975128447123, -0.031315941875848644, -0.09497005730454451], [0.6169687239389074, -0.05435450638885872, -0.08393799875636489], [0.587489241852523, -0.0543673790983365, -0.08392966156239264], [0.6022354784353682, -0.0738437044176876, -0.06743224242061939], [0.5727666248133965, -0.07385493378556886, -0.06741994330707522], [0.18926044840399697, -0.09761942557533354, -0.021689807522011637], [0.15965894583071066, -0.09762992307961219, -0.021642507236200877], [0.5875091230565238, -0.0885102276822745, -0.046539656161513794], [0.5580461936567328, -0.08851666033774157, -0.04652742033094993], [0.513665521841903, 0.0648207607418581, -0.07614636548678332], [0.6464132373810408, 0.043430900281882096, -0.09007639480299605], [0.4400799400026611, -0.006361563742131581, -0.09979744739598702], [0.3073096728994885, 0.06477385458724877, -0.07618627016667733], [0.32214754540611057, -0.006464577496209127, -0.099790827423143], [0.14481562071106677, -0.08892234155661315, -0.045747318742075244], [0.21882706201844274, -0.09761110564412868, -0.021727219217625444], [0.20408663850108968, -0.09992825718754607, 0.003787270185720202], [0.13005038756437476, -0.09763896705279715, -0.021601669214734137], [0.14489961796366002, -0.09992176259571608, 0.003954915898645219], [0.5727917362033549, -0.097415764167384, -0.022586918596493498], [0.5433291216458614, -0.09741289566648054, -0.02259928666731281], [0.6022459170543911, -0.09740553634443318, -0.022630985163118848], [0.7056390975838636, -0.09993817015087263, 0.003515984484497712], [0.8680650796880692, 0.01906583266913889, -0.09816564584737576], [0.8679334411791562, -0.03142213533628004, -0.094934974645325], [0.6905974566301928, 0.0987175449263349, 0.015963906906426382], [0.8383632122971686, 0.09867670706561969, 0.016214422058336758], [0.867954538807146, 0.09867124573955076, 0.01624762334020524], [0.5285861526467955, -0.08852393184401397, -0.04651358393927915], [0.5138729515560108, -0.0974147394159827, -0.02259133782041669], [0.4991306679653406, -0.08853145616329926, -0.04649926095763051], [0.48441852774363847, -0.09741760589339346, -0.022578973891642443], [0.4696764561594782, -0.08853871813215591, -0.04648543203536621], [0.45496406270332956, -0.09742107968041268, -0.022563980896612212], [0.44022200626308156, -0.08854588591395006, -0.04647177732467034], [0.42550512797993445, -0.09742476170678215, -0.022548077664774766], [0.4107641321746767, -0.08855211936293816, -0.046459898367645504], [0.396047544575135, -0.09742851422450405, -0.02253185780191261], [0.38130074400785413, -0.08855801539395435, -0.0464486588556026], [0.36657184092817063, -0.09743323100970608, -0.022511452529973438], [0.35182073678177367, -0.08856234978217964, -0.046440394066575956], [0.33708566882326196, -0.0974378647892857, -0.022491387358384025], [0.2793340389455162, -0.06936168080949864, 0.07203441701909737], [0.6464553190167193, -0.054342620185598926, -0.08394569453738372], [0.6611964087236023, -0.03129597237777319, -0.09497663982753683], [0.38136031909290063, -0.09995731196327083, 0.002921606591817444], [0.5580653824556487, -0.09996174410779952, 0.0027658118024935013], [0.499163392310699, -0.09996098213349786, 0.00279321515578719], [0.4402853031488335, -0.09995892830572349, 0.0028657724911841384], [0.11527489848895878, -0.09992062515622001, 0.003983549722316935], [0.17430567662211238, -0.006685819436377395, -0.09977624876925449], [0.11518687189328332, -0.0889370456884613, -0.045718725968781675], [0.13012055439296566, -0.09561697694509001, 0.029281286171924284], [0.8827886441758029, 0.09956051761213992, -0.009365005755618829], [0.8087954654899485, 0.09868574145576059, 0.016159345077284983], [0.8235545291524474, 0.0913391231895298, 0.04070828631824113], [0.7940199495421826, 0.09135228299898572, 0.04067874618118436], [0.33824601106825747, -0.06937221385461076, 0.07202427330358945], [0.6759553569798401, -0.054333725756119215, -0.0839514517173993], [0.6907056826424822, -0.031275463475405656, -0.09498339530885683], [0.6908770923800083, -0.09756224384621302, -0.021945582145208035], [0.6761335548570545, -0.09993762814449206, 0.003531356800611795], [0.7204953916265785, -0.06938088809138133, 0.07201591746031719], [0.12997202686086706, -0.0743697585072036, -0.06685161942376724], [0.29394518515434576, -0.08536591406469995, 0.05208320953914284], [0.897553183333622, 0.09866607853371222, 0.016278972534510005], [0.8827175241462338, 0.09128547836143627, 0.04082843911201791], [0.7793419977744842, 0.019143002183357717, -0.09815062642392029], [0.8089830745963451, -0.09579380881169473, 0.028697494548278517], [0.8237622833345993, -0.0853755473374742, 0.05206741703624927], [0.8385381997761547, -0.0957950105773177, 0.028693482683208586], [0.8533208044367429, -0.08537167575624077, 0.05207376478200225], [0.8680991336973582, -0.09579622582647514, 0.028689425184255185], [0.8828831672999823, -0.08536783489309328, 0.052080061114264865], [0.897527945520402, -0.09577600809720085, 0.028756847410050267], [0.8828969894065074, -0.0999425192966485, 0.003390108647084956], [0.32239201628636005, -0.08858215752476013, -0.046402600878168256], [0.30760315786463466, -0.09744366245830433, -0.022466255734146037], [0.720207790444644, 0.06483607917059139, -0.076133322781715], [0.10092631340060251, -0.09557155586128963, 0.029429198260441963], [0.10063201548061218, -0.0742834580196473, -0.06694750080953951], [0.11512845404280868, -0.05486544252492502, -0.08360492339894911], [0.26457113252915004, -0.08533417895649106, 0.05213518870994481], [0.26301524583997665, -0.054727697859501497, -0.08369515569612808], [0.558011733730745, -0.05438221248690269, -0.083920051030903], [0.4549358812395379, -0.073901378943395, -0.06736902990443557], [0.396022772498245, -0.0739137199708689, -0.06735548975449568], [0.33707306294814315, -0.0739177671680645, -0.06735104822412048], [0.11538072716365921, -0.08502451588216486, 0.05263869013381222], [0.14494687762509673, -0.08505109719071301, 0.05259573049835789], [0.9120903265396947, -0.099948564823149, 0.0032069284046869345], [0.8976613275130194, -0.09750203425544417, -0.022211558163492056], [0.08806422084220177, -0.09990035146930713, 0.004463157661219504], [0.8087692327017469, 0.07800193089727268, 0.06257554455453898], [0.7792352614987568, 0.07804551469948927, 0.06252117749444423], [0.9124124259574106, 0.0995621261791259, -0.009347889103525608], [0.9124595450054869, -0.0853494077081886, 0.052110254306243796], [0.9123370019699265, 0.09127143903458962, 0.040859814201182995], [0.8974934425320827, 0.07789373401191206, 0.06271017622110062], [0.08584318235292668, -0.08498127050817884, 0.052708478092387934], [0.0854878119372445, -0.05487671023160598, -0.08359752791893045], [0.10022688163060628, -0.031762418861078154, -0.09482166813599845], [0.867920505104921, 0.07791811340791087, 0.0626798819634493], [0.6613697353862326, -0.0975653034515519, -0.021931975798057817], [0.6466390804919594, -0.09993707427568743, 0.0035469966472680514], [0.6613989106743059, -0.0957839051592645, 0.028730532755955288], [0.6319310208678611, -0.09577851333755305, 0.028748502271391044], [0.705493116024876, -0.054345066420196306, -0.08394411090591436], [0.720228181319695, -0.0312598964431825, -0.09498851969770612], [0.7054381947902206, -0.006152843060005258, -0.09981053312290715], [0.5138419902278772, -0.07387951690799047, -0.06739300395027623], [0.8976058292758048, 0.0938976989286514, -0.03439799610303394], [0.08551919201596948, -0.08895973981763437, -0.045674551903426445], [0.7349833560200216, 0.043410748749305804, -0.09008610821333467], [0.23363374066624165, -0.09992976408875585, 0.003747298915966143], [0.21890128935428918, -0.0957036251483522, 0.028996829714016778], [0.24831314487032158, -0.09758890031181748, -0.021826739012737337], [0.32235882232636265, -0.09995684934123258, 0.0029373916616837496], [0.2929489627097259, -0.09995400359864166, 0.0030326827402033076], [0.8680393350634681, -0.06935860182344035, 0.07203738163687971], [0.7644967750032868, 0.09136055926526643, 0.04066015507518065], [0.7495925941423995, 0.07828570009432569, 0.062220166833120094], [0.13021585947432243, -0.06889626222333968, 0.07247968716580405], [0.24984753412930258, -0.06933933884948577, 0.07205592333678189], [0.7054520048121337, 0.043406904311647246, -0.09008796067222023], [0.15976552424881799, -0.0689581531049237, 0.07242080585272369], [0.9254434520865229, 0.07799641291293194, 0.06258242223432568], [0.07056087902987564, -0.03177281122207685, -0.09481818637290143], [0.08538984134986531, -0.006517675207973954, -0.09978737349927276], [0.11502701120734632, -0.006576989598487036, -0.09978348163810177], [0.10021175031096849, 0.019171990108757666, -0.09814496826261496], [0.12980360927249118, 0.019050949493181646, -0.09816853530234747], [0.11504197946896351, 0.04357258713672834, -0.090007942150747], [0.14464778115120447, 0.04362910480843063, -0.08998056019838381], [0.12986420548372063, 0.0650922111246891, -0.07591445218730691], [0.10019033465642312, 0.06507394807742284, -0.0759301078730755], [0.11501903137339321, 0.08228295097491041, -0.056828830525187585], [0.14468058542170073, 0.08229767704900781, -0.05680750260605739], [0.12983921055610542, 0.09404924597822584, -0.03398145569170302], [0.15948140914033018, 0.09405464290482338, -0.03396651510011228], [0.14465509338375387, 0.09960073836177477, -0.008927088987418398], [0.17424976064006936, 0.09960273321694861, -0.00890480408057132], [0.15945535912573372, 0.09859807972121917, 0.016685882514512414], [0.18902883237516374, 0.0985957356430569, 0.016699727932048554], [0.12989836901042978, 0.09860082838037844, 0.016669632350569608], [0.17424251508064814, 0.09112601049239796, 0.04118313018384324], [0.20379790468521475, 0.09112160379267209, 0.04119287950910065], [0.21859235720667142, 0.09859222641434005, 0.01672043332762378], [0.23334473560620458, 0.09111547861728116, 0.041206426153499155], [0.24813796238346464, 0.09858766576991905, 0.01674730300790949], [0.26287914381391275, 0.09110823081091625, 0.041222448720385524], [0.27766481106829344, 0.09858279548027916, 0.016775948119061638], [0.2924130544655635, 0.09110271047633065, 0.041234647371668855], [0.30718460389966046, 0.09857813354790233, 0.016803320690028187], [0.32192009593930065, 0.09110174291330228, 0.04123678501239618], [0.33668804440284517, 0.09857348305006124, 0.016830580482540995], [0.35141370591241883, 0.09109628418593145, 0.04124884249910557], [0.36618613755209006, 0.0985688793765308, 0.016857521124261542], [0.38090771571733567, 0.091082320592269, 0.04127966661114324], [0.3956724744961089, 0.09856460349092684, 0.016882503922000972], [0.41039781272324577, 0.09106979142771779, 0.041307300678112335], [0.42514183086431584, 0.09855822355079948, 0.016919709527962942], [0.43987915293489144, 0.0910601003721775, 0.04132865979207364], [0.4546276911612116, 0.09855524808489739, 0.016937032648144987], [0.46936418861517243, 0.09105091540037502, 0.041348891215530266], [0.48412940258308096, 0.09855041750026299, 0.016965117462719292], [0.49884620696358944, 0.09104109921426042, 0.041370499801902244], [0.5136036127782491, 0.09855459553464312, 0.016940829348142974], [0.5283304688101547, 0.091032031792916, 0.041390448024315164], [0.4102361884553836, 0.09963758384478139, -0.008505991157658044], [0.10021159192561258, 0.09404073424801862, -0.03400500407430553], [0.543091221126385, 0.09854418109110498, 0.017001305040599286], [0.557805786642916, 0.09103852587519945, 0.041376162297519066], [0.18906457297769652, 0.09407313652336764, -0.03391526182496366], [0.4988862818944352, 0.09963440126316953, -0.008543189388613693], [0.35145957177385545, 0.0996230798335828, -0.008674212613925515], [0.2924512109263582, 0.09961696097736841, -0.008744202973025153], [0.18900428551555457, 0.07768478983429279, 0.0629688290219991], [0.45462194903592074, 0.07790206070568327, 0.06269983203971158], [0.5430506791076255, 0.07757344707958207, 0.06310594510972226], [0.5724905189462758, 0.07733453116742016, 0.06339850383972256], [0.587304156475632, 0.09103023610243076, 0.04139439714666359], [0.602115525154498, 0.07722605144548929, 0.06353059875476257], [0.15948194446146796, 0.07768843489015596, 0.06296433184206751], [0.36612663549500124, 0.07795850471703895, 0.06262963789040628], [0.30732865368740436, 0.0775339805200063, 0.0631544287023743], [0.24806405700533987, 0.07764966523030142, 0.0630121376373006], [0.23339035696883215, 0.09960943136437654, -0.008829563028007548], [0.6167935130943157, 0.09102073327363262, 0.041415288412978896], [0.6315080786587788, 0.07752692714985716, 0.06316308705803364], [0.17424116862911318, 0.05918580983602786, 0.08060421771876175], [0.6197948999031326, 0.058977311374388545, 0.0807568990430441], [0.07295751788005779, 0.01885972221659757, -0.0982054523838304], [0.6462911423806809, 0.09101907013212883, 0.041418943398916046], [0.6608712917548376, 0.07773177826255612, 0.06291081503319446], [0.17449118469387742, -0.08507148073300148, 0.052562754550104784], [0.18968731693937171, -0.06882071893514428, 0.07255142069766707], [0.7349683352154699, 0.09137951288562046, 0.040617540851050064], [0.7202103414004234, 0.078092068132224, 0.06246302021862283], [0.7644651476729035, 0.09954960051272978, -0.009480350086147093], [0.690680182226011, 0.06484829338187904, -0.07612291931775698], [0.7349396692334553, -0.006218671149454756, -0.09980645334413471], [0.30760694047391896, -0.0739517216530545, -0.06731376430232637], [0.15949799309059454, -0.0318199838879513, -0.09480236613803752], [0.868065942381871, -0.09751514715133208, -0.022153917848860227], [0.8829042369281009, -0.08865568916743816, -0.04626195821889292], [0.912509687921275, -0.08863529377026787, -0.04630102264808326], [0.8976606664844016, -0.07392343982867923, -0.06734482195310668], [0.9255074217922546, -0.07374004622788573, -0.0675455815158125], [0.9124711947588829, -0.05428784689631317, -0.08398112692362766], [0.8680875553120587, -0.07400318504296209, -0.06725718254206839], [0.6020762900204979, 0.09862528981280698, 0.016524291492824427], [0.661214439615719, -0.07383844054512011, -0.06743800633073874], [0.7056872155412329, -0.08877645193551865, -0.046029790155295625], [0.646684022936706, -0.08538778754082103, 0.05204734132387172], [0.6172120839565816, -0.08538283048610736, 0.05205547289364164], [0.602472776930744, -0.09577195102415373, 0.028770356220024423], [0.587775498760543, -0.0853721571553109, 0.05207297555017291], [0.6761986477794915, -0.08536506575489501, 0.052084599918425484], [0.8237580253561303, -0.09994060940080156, 0.003445953075191214], [0.32231438903994925, -0.05442825432894013, -0.08389019686890843], [0.3517859272838287, -0.05442612743157501, -0.08389157676907713], [0.9251775958150404, 0.09398531494410754, -0.0341578772006827], [0.9124389137272171, 0.0820213326844745, -0.05720577754617756], [0.9404851416567761, 0.09962604110608964, -0.00864013504105902], [0.9421339196048666, 0.08202935226158478, -0.05719427740206912], [0.9258357083834466, 0.06488230665483483, -0.07609393065907412], [0.8970827715564788, 0.06488317936812418, -0.07609318652207848], [0.9124512177831319, 0.043130004219168454, -0.09022085532765975], [0.20387251731749512, 0.059426958601402374, 0.08042659132020462], [0.7644531935432659, 0.059678548828952016, 0.08024008231345725], [0.8825406091389515, 0.05967191516382151, 0.08024501567500429], [0.8530647798538386, 0.05984378200063444, 0.08011692552676082], [0.5577722580415554, 0.05905428892227575, 0.08070062552350123], [0.5282901338003079, 0.05907355861328335, 0.08068652101040777], [0.14462026069382428, 0.059439778450638484, 0.08041711719366101], [0.12994859694318303, 0.07769793847499933, 0.06295260405046978], [0.11515390463281379, 0.059486015468243406, 0.0803829208458607], [0.10040559883888611, 0.07770699355783496, 0.06294142635977198], [0.08559121583020142, 0.05948418089750339, 0.08038427845638157], [0.07312320766441295, 0.07789738337481973, 0.06270564299452132], [0.0857125443348062, 0.09116128420776591, 0.041104990713913735], [0.9421542826042463, 0.04312797560627335, -0.09022182507633446], [0.925743193584824, 0.018461366992024966, -0.09828111684746857], [0.18899064466746487, 0.03682429455317357, 0.09297296021242472], [0.05605573809044827, 0.059148198414220976, 0.08063182141283894], [0.5367876665790663, 0.03623071847089279, 0.09320587448805419], [0.941956287947523, 0.09125681701195158, 0.04089246078248633], [0.9421914447056321, -0.08863282251462995, -0.04630575313165861], [0.587193627918796, 0.050935137543592156, 0.08605586420119983], [0.6151970130197862, 0.034205059976771555, 0.09396815349886077], [0.9421697858242822, -0.05426852804428043, -0.08399361204226875], [0.927300725796929, -0.031048894822275755, -0.09505769895340017], [0.9538646824351048, -0.030594816394101793, -0.0952048171565452], [0.05602615504805273, 0.09115927521659327, 0.04110944589732886], [0.07082869498653327, 0.09862185822214888, 0.016544759919997994], [0.04539174150984776, 0.09853453034886939, 0.017057148909701638], [0.0569797187723247, 0.09964535988947497, -0.008414407435881188], [0.5135352290434028, 0.036730238089968434, 0.09301015863793712], [0.4988125750753291, 0.059090676616223047, 0.08067398550361168], [0.46807548304821434, 0.05059173144348019, 0.08625819792663637], [0.6757675012951383, 0.09098363892788523, 0.04149671610429198], [0.5730173220644416, -0.09576529966979733, 0.028792488241795273], [0.55842447118608, -0.08541588911548224, 0.052001210434100845], [0.587719951169413, -0.09993447914384888, 0.0036193753946820156], [0.24843642880564887, -0.09571594201424803, 0.028956146917798038], [0.6904964165624851, 0.07749464513511171, 0.06320268962143227], [0.6757263983170427, 0.05896530400643617, 0.08076566673673015], [0.7052197234358699, 0.058944795490344204, 0.0807806355793361], [0.6904512546553758, 0.03657245733112818, 0.09307231255729496], [0.7349391812715735, 0.050886143937384824, 0.08608484393424752], [0.6424813012183475, 0.048795823714087735, 0.08728669765814072], [0.05634291540465751, -0.055116464708662716, -0.08343965075441497], [0.04560626267694145, -0.031241257683337034, -0.09499465152503765], [0.04458082478887464, -0.07510308247000715, -0.06602671431703461], [0.7054781111190427, 0.09137824965100198, 0.04062038270030399], [0.23437289800968508, -0.08520296395730587, 0.05234935465590798], [0.21939947490967998, -0.06890329307736524, 0.07247300327083671], [0.2630170402682017, -0.09994221433459814, 0.0033990872153041984], [0.27818794401883573, -0.09749254709063114, -0.022253162961275167], [0.6318805571158408, -0.09757905069790641, -0.021870730781009786], [0.6465546435110131, -0.08873774779780497, -0.0461043611361568], [0.20402674369836277, -0.08509077621076473, 0.052531512483932466], [0.20524477909741068, -0.04860641947854162, 0.0873923107914881], [0.18926092889723753, -0.09565732711597705, 0.029149198428549725], [0.6169736634389081, -0.08850561434521466, -0.04654842886044739], [0.6610849169115408, 0.0985863545128134, 0.016755020258832083], [0.29275901779994945, -0.054529505499086445, -0.0838244178627272], [0.27782490647793917, -0.07412619846358215, -0.06712158148716128], [0.27781178698041825, -0.03164434615456831, -0.09486113722937257], [0.45556218263849907, 0.025696357396768583, 0.09664210892016761], [0.4404440679959905, 0.047944615335794284, 0.08775712996846877], [0.8383408848586761, 0.07797017034836148, 0.06261511427640686], [0.8234258337694695, 0.05967290442662362, 0.080244280028492], [0.8364068403902202, 0.03768074927037067, 0.09262915920175172], [0.8106682072447592, 0.0373124201771627, 0.09277814020836406], [0.14527106785360416, -0.048929011186011076, 0.08721210847330318], [0.9123236309410845, 0.05971570745032586, 0.08021243222660122], [0.9357544713368717, 0.0605886038204328, 0.07955514494418718], [0.8973803665471297, 0.03704838979161211, 0.0928838888820272], [0.7497284109335715, -0.031311679740665746, -0.09497146261808323], [0.10061611616763468, -0.06886951884532808, 0.07250509895181854], [0.07104623107030575, -0.06883888000613726, 0.0725341891765575], [0.05781188078842986, -0.08515720675343262, 0.05242375547357451], [0.04515226240102037, -0.0686154590515651, 0.07274557566713587], [0.04360381945476443, -0.09603308108489401, 0.027886328860970155], [0.08595312073030069, -0.04842585814086596, 0.08749249261119907], [0.21853992026768074, 0.07767882725444411, 0.06297618435864652], [0.23327573516226166, 0.059510934970166525, 0.08036447361226606], [0.2627900318385172, 0.05913527327057478, 0.08064130117510783], [0.24905349958433876, 0.038844137911123365, 0.09214734369444204], [0.29442123307355444, 0.052063676827358046, 0.08537782824139074], [0.7940352921765833, 0.09955366031727948, -0.009437622445919848], [0.16145380963379116, 0.03732151905655148, 0.0927744804098167], [0.17448072123503897, -0.09992381532830825, 0.0039027080641712768], [0.752287247438204, 0.027697701155738292, 0.09608765451756754], [0.8531450606367772, 0.09131110214849088, 0.04077110035831584], [0.27774143892785175, 0.07738392673677055, 0.06333820239632733], [0.32468533955120193, 0.05883248320288589, 0.08086246916946177], [0.11506948799781111, 0.09959911741603124, -0.008945155669278684], [0.8384912216981032, -0.06937097427158236, 0.07202546722244471], [0.6314186457658005, 0.09864858708323769, 0.016384635073167376], [0.808961194197523, -0.06939123187156615, 0.07200595072177396], [0.7792668046295211, 0.09388435676647026, -0.034434394935095446], [0.7941274052055918, -0.0063990700847085, -0.09979504948669041], [0.7794110047530024, -0.03149633693043595, -0.09491038278273066], [0.7350558836381074, -0.054372154256907904, -0.08392656815015741], [0.7201391884854556, -0.07397848426245117, -0.0672843508271445], [0.7498598473011355, -0.0741677118104751, -0.06707570741183658], [0.17429846460199588, 0.08232236240187474, -0.056771724023270576], [0.20389249715887497, 0.08236973686001701, -0.056702966850170664], [0.18908903563117793, 0.06518094969702387, -0.07583827395579391], [0.6908774234700152, -0.09578708017948913, 0.028719945520284763], [0.7203970734742421, -0.09578607478187846, 0.028723298520197674], [0.7351919166100788, -0.08536717986227323, 0.05208113480294279], [0.7056870220749701, -0.08535191650914059, 0.052106145013968354], [0.6911402606609749, -0.06930907803758557, 0.07208503105069648], [0.23352306297917302, -0.08885370813708292, -0.045880481147107514], [0.14469969983745354, 0.0911219468902747, 0.041192120544176425], [0.8532529461082342, 0.04343269540748481, -0.09007552924985035], [0.3823700598927923, -0.048894865605612785, 0.08723125653920769], [0.3970931260151939, -0.06934594350225262, 0.0720495671033656], [0.42630031240924077, -0.06927404650048952, 0.07211869716965229], [0.4117681161827683, -0.08529799221209039, 0.05219437253752711], [0.3822996482332753, -0.08534333288972519, 0.052120202717118765], [0.4405855508667658, -0.08542761040661231, 0.05198195244713362], [0.39673490882676227, -0.09581404715540928, 0.028629850989849825], [0.7645472518723977, 0.04341667531762988, -0.09008325207475308], [0.7054362796229148, 0.08203387912356204, -0.05718778432445876], [0.6759151478005191, 0.08202961343040609, -0.057193902825896925], [0.5286209446119415, -0.09996154885503465, 0.002772859625463115], [0.5139066329571442, -0.09600821276846544, 0.02797182655825453], [0.48448898218569686, -0.09600542276115667, 0.027981400973710716], [0.49943221599642784, -0.08586351908117597, 0.051258717219576755], [0.5285231261566264, -0.08571152098605979, 0.051512475869989305], [0.5138091430362619, -0.0698204399629602, 0.07158984678974153], [0.4848042881182352, -0.06990830235899125, 0.0715040506634684], [0.46972485359669935, -0.09996004334639556, 0.0028266117856402314], [0.45533097449013593, -0.09595766816402135, 0.028144731665510018], [0.6317101129198253, -0.07383850087508753, -0.06743794027489047], [0.6760514553309327, -0.08865870988218018, -0.04625616890780527], [0.572680686918121, 0.06482437201186816, -0.07614329119014308], [0.7201400716089705, 0.09871094694654155, 0.016004654101762363], [0.7496833031170432, 0.09870277767122076, 0.016054958112233134], [0.7792426678382365, 0.09869387921703274, 0.016109568743258054], [0.6168437605487274, 0.09953893136303586, -0.009591722634898986], [0.5873489194530589, 0.0995364534948151, -0.00961740223108656], [0.5726285110731912, 0.09383524017951037, -0.03456801557008454], [0.557871417718957, 0.09953666500728055, -0.009615212906036494], [0.5431410338089676, 0.09383351434135596, -0.03457270001533786], [0.5283930296680879, 0.09952962321942051, -0.009687832667846282], [0.5136561012017992, 0.0938304499625102, -0.0345810158878085], [0.4838732801091821, 0.09415627040856281, -0.03368377566054017], [0.49865206875537577, 0.08234747808312437, -0.05673528754971946], [0.46904355858308083, 0.08275790346049905, -0.05613492152682432], [0.45421873127687057, 0.09437730187955817, -0.033059414543133436], [0.43915062914331976, 0.08312884865452265, -0.05558412112621258], [0.42503988605971277, 0.06558689319638791, -0.07548747870240204], [0.41017848364614073, 0.08257071441132197, -0.05640990269096291], [0.5727636905240453, 0.09868384891544275, 0.016170898652643487], [0.5873803653000489, 0.08201795133890406, -0.057210625395717904], [0.5579729468057694, -0.006287599357251066, -0.09980213471826489], [0.5727394520317901, -0.03135404339217239, -0.0949574850286262], [0.5431720061532368, 0.06482299406525786, -0.07614446427952291], [0.3956356836594935, 0.07764582057191824, 0.06301687510273327], [0.38272929743972894, 0.05958211576058894, 0.08031171447237186], [0.4084778606042421, 0.059191182941265255, 0.08060027209639968], [0.20382236647739646, 0.09960588002957886, -0.008869535699975551], [0.6611532548706297, 0.06485991890279316, -0.07611301412979972], [0.4695497679337848, -0.006338198648977799, -0.09979893405185296], [0.48430276569948694, -0.03138721958193308, -0.09494652414341202], [0.5137830026033888, -0.031383584941747235, -0.09494772559784745], [0.5432585098382063, -0.031368883876892066, -0.09495258355788988], [0.5285378725221618, -0.054391220956669775, -0.0839142126391157], [0.49906655260511457, -0.054399489194068666, -0.08390885278338873], [0.5284944747586674, -0.006306328017828637, -0.09980095303618873], [0.45482937834781645, -0.03140750886208869, -0.0949398145515243], [0.42536293294249694, -0.03142400667401509, -0.0949343552385092], [0.46958819580713484, -0.054408292724781517, -0.08390314465366891], [0.44010990220515595, -0.05442691570440845, -0.08389106535802977], [0.4107744586873228, -0.09995967701534537, 0.0028395371080216416], [0.42498086181861633, 0.0779138299549444, 0.06268520640272322], [0.8384565770016567, 0.06490996447374, -0.07607033923953414], [0.557891344560693, 0.08201637596450728, -0.057212883808182485], [0.5285209726693784, 0.082147840978422, -0.05702396182819893], [0.6759260737716616, 0.04342353353895953, -0.09007994635317483], [0.6611471477842897, 0.019263202349729704, -0.0981271065263486], [0.35184205498006543, -0.09995769031847639, 0.0029086330458773595], [0.33713505791025183, -0.09595945625630532, 0.028138634561652477], [0.3079120890045515, -0.09596322909563186, 0.028125765083625263], [0.38085806014112134, 0.09963034461019177, -0.00859036860992796], [0.3661203596244695, 0.09420519419237089, -0.03354670456509393], [0.33668927008620847, 0.09418163219346905, -0.03361279752377231], [0.35151458535732594, 0.08258779250005151, -0.056384896292965135], [0.32201268585658954, 0.08251639538795304, -0.05648933078182996], [0.5135790949748537, 0.07759112302201529, 0.06308421060917294], [0.48410108796965146, 0.07793707228113554, 0.06265630665978528], [0.32196492887385514, 0.09962036414024862, -0.008705345976138376], [0.4106047016805048, -0.006381541747038941, -0.09979617189517243], [0.2629219962719024, 0.0996131456193461, -0.008787560515806037], [0.27771916963716187, 0.09412887384617917, -0.03376025930661804], [0.558790382064746, -0.04891573380232725, 0.08721955621636619], [0.48441384525319536, 0.06495282983442838, -0.0760337418288735], [0.5433340534076663, -0.09601445943034022, 0.027950377104782622], [0.36672443395383225, -0.09591382866642129, 0.028293770878912185], [0.7351512888116913, -0.0887761978045174, -0.046030280287797515], [0.8976506493080572, -0.06934282536062854, 0.07205256810832886], [0.9271808797959965, -0.06930154369329175, 0.07209227449405914], [0.9414044623132086, -0.08544959518593069, 0.05194580524508757], [0.9523301639838258, -0.06891180853345412, 0.07246490629710745], [0.9538757399383628, -0.09622039202811505, 0.027232997594019093], [0.543302436473446, -0.07386603076982906, -0.06740778514615847], [0.6171732347686647, -0.09993699299680624, 0.0035492859502017113], [0.32334003388743376, -0.08537424403559705, 0.0520695540152815], [0.7942159934513615, -0.09994005986130869, 0.003461854260080687], [0.6759324877252006, -0.0061950977548271965, -0.0998079193441489], [0.48438845309248996, -0.07389340481400913, -0.06737777619507021], [0.44113312601568305, -0.04888049560690822, 0.08723930965581413], [0.39593937689270564, -0.03145393820872903, -0.09492444243271309], [0.41067282707908304, -0.0544301480411691, -0.0838889681913922], [0.30721283901646895, 0.0941548004002868, -0.033687884492531586], [0.4254773165452157, -0.07391038864121258, -0.06735914526554587], [0.15947570885003318, 0.06513683299553083, -0.07587616877065106], [0.21863488146348004, 0.09409465467954128, -0.03385551595734265], [0.23338471064043853, 0.0823612959030458, -0.05671522667829985], [0.2777715003080364, 0.0647807773923706, -0.07618038382969812], [0.33681940901288143, 0.06480006050878281, -0.07616398202600809], [0.085364025802054, 0.043554575730903315, -0.09001665919651214], [0.07286568681591755, 0.0652894262702425, -0.07574490621357033], [0.7939470130514953, 0.05987156048978859, 0.08009616872558627], [0.35165018840447443, -0.006429298089788582, -0.09979310660598079], [0.6906336965885886, -0.07391290638547537, -0.06735638254576883], [0.15969115785509969, -0.09563064459328607, 0.029236617702336973], [0.6464249363453476, -0.0062348585023857695, -0.09980544343599314], [0.36654450407810774, -0.07391442660274855, -0.0673547143115231], [0.27941663398618627, -0.025259720080991456, 0.09675715240451196], [0.7205868461813099, -0.025261490515347474, 0.09675669019216711], [0.22060319697288522, -0.02525549533585483, 0.09675825523096528], [0.4999006132032612, -0.048932214469707566, 0.08721031124294042], [0.3529543425523056, -0.048896549526121796, 0.08723031264669133], [0.8088271124860142, -0.025261377989559738, 0.0967567195706251], [0.29261852231564656, -0.0064921687516608295, -0.09978903619586654], [0.24817598009686218, 0.09409911068379972, -0.03384312882282024], [0.10294117647058837, 0.025263921915040805, 0.09675605536332452], [0.17435340051220097, -0.05490449199675414, -0.0835792842669663], [0.0854733943784492, 0.08231063476499464, -0.05678872603416685], [0.05563706250660977, 0.08228786063921252, -0.056821721123365684], [0.6764705882352945, -0.04888885400611051, 0.08723462588885912], [0.6176695093635965, -0.048877353580456154, 0.08724107007007122], [0.10393784885175798, -0.09774409807550975, -0.021120873358010755], [0.7941191466065999, -0.04888783596533244, 0.08723519642109338], [0.8676472569532367, -0.025261227367258676, 0.09675675889517828], [0.18911078149525576, 0.018927197079928064, -0.09819247023421684], [0.05803890249045006, -0.006266965405404869, -0.09980343252918437], [0.36764705882353005, 0.025263921915040805, 0.09675605536332452], [0.35302329838814134, 0.047857126009733235, 0.08780487167628294], [0.3088085677329904, 0.025255495335847603, 0.09675825523096714], [0.8089607371773909, -0.09754722605096877, -0.022012239544426108], [0.9246363322405238, 0.09871026123165358, 0.016008882771096574], [0.15958444689915768, -0.07435836833743248, -0.06686428836228436], [0.853319479849388, -0.09994159988707609, 0.0034171057946160125], [0.36766246569800975, -0.06936002848276335, 0.07203600800204198], [0.9257197896691108, -0.09749252422180187, -0.022253263150858908], [0.35285813802789107, -0.0853519758003833, 0.052106047892454745], [0.2628811223355019, 0.08211310742064955, -0.05707396595405705], [0.29250066731588914, 0.08253231047195977, -0.05646607590544996], [0.6316632943890041, 0.019242335024868235, -0.09813120065907034], [0.8680074653436679, 0.09390216559934848, -0.034385800786844174], [0.21857272642989262, 0.065159996371366, -0.07585627774207994], [0.14474927159063303, -0.05491340675280355, -0.08357342734865643], [0.9254514002072272, -0.02514606084032268, 0.09678675335093535], [0.15947795151827127, 0.019007439707265907, -0.09817696896815796], [0.12987006992307853, -0.03179084277676646, -0.09481214223686184], [0.8828001492232993, 0.08206060652269205, -0.057149425693771495], [0.14466975316031944, -0.006628883603202607, -0.099780047615619], [0.7058681874317341, -0.048891855808082356, 0.08723294352274077], [0.838493683740284, -0.09753842182149039, -0.022051219208311486], [0.2648347644672128, -0.04882339894995518, 0.08727127657467555], [0.867814564622377, 0.06489521618307784, -0.07608292131977842], [0.17414674769997876, 0.04349089556870946, -0.09004744306548412], [0.3812348604911501, -0.054433792891227205, -0.08388660317044068], [0.11516742549555781, 0.09111988460039797, 0.0411966822743065], [0.853324410327524, -0.08868601040724443, -0.046203804584104655], [0.8384788033927496, -0.07410764662952576, -0.06714206364890296], [0.8972186974971382, 0.01879758173818563, -0.09821736567835768], [0.8235532592365734, -0.04889131770385828, 0.08723324511435071], [0.8529868386893714, -0.04887489031427969, 0.08724245008461837], [0.8976430700233425, -0.031248432949889715, -0.09499229146713034], [0.36649605759840365, -0.0314483031018668, -0.09492630948274097], [0.3370076740674929, -0.03145089381521754, -0.09492545116155053], [0.10036608025151651, 0.0986085749927503, 0.016623746205327593], [0.08616181467761454, 0.09961679482874329, -0.008746095588779203], [0.24820072873121074, -0.03175182137108217, -0.09482521731912294], [0.6617353200797669, -0.0693318926880026, 0.07206308802916572], [0.6323122389934462, -0.0693429632996951, 0.0720524353566008], [0.6028821566566509, -0.06935134452501616, 0.07204436836125717], [0.5434965196638869, -0.06961448098739852, 0.07179013885524341], [0.573293472126069, -0.06946504245398326, 0.07193474735387834], [0.9681605200315825, 0.06603249664142243, 0.07509799855722214], [0.025766912303084925, 0.0679864001374614, 0.07333382164014764], [0.6906723575894276, 0.019281116699837956, -0.09812358808567505], [0.39550236137585665, 0.0645946537746927, -0.0763382650033886], [0.7497650685187439, 0.019221622648410742, -0.0981352598343842], [0.9723889251289503, -0.07893286658462816, -0.06139708928551333], [0.7202113558113172, 0.019252447545290208, -0.09812921717570076], [0.9717640257994258, 0.07821171527140107, -0.062313141425427175], [0.026983542686390975, 0.07819990059981519, -0.06232796760828177], [0.025441918055474036, 0.029521486189657463, -0.09554308898687476], [0.051547350811382606, 0.04337713381728996, -0.09010229887076646], [0.9742164296471715, 0.029463452144209725, -0.09556100139568373], [0.9723887975546825, 0.09719093779010271, 0.023535539328436644], [0.9685284228485401, 0.09970400313564175, -0.007688417179624242], [0.9709446618491513, -0.09989391244677714, -0.004605025089575489], [0.030064345808494472, -0.09993080151292759, -0.003719530747805236], [0.051538329543831134, -0.0974927912181828, -0.022252093395629505], [0.26307645811871766, -0.006529850820961373, -0.09978657749545272], [0.30744280182441835, -0.031537300295059155, -0.0948967791344852], [0.7645409746046026, -0.006311837517188325, -0.09980060474344137], [0.29280276703231056, -0.08867603410280261, -0.04622294858399436], [0.8824349575222783, -0.04885066950184614, 0.0872560146306339], [0.8827948710881844, -0.006366494755782319, -0.09979713294741786], [0.8827143965207456, 0.043298641535457816, -0.09014004460384921], [0.9258965031093196, -0.09582121666229658, 0.028605846209423948], [0.26296580220233157, -0.08879966036190788, -0.045985001028702864], [0.8532603153733294, -0.054613247502995045, -0.08376988239920485], [0.46921650264296055, 0.09963966512761226, -0.00848157610690938], [0.07405205978155724, 0.09414621427810352, -0.033711872346421465], [0.45519741747044073, -0.06937381635479813, 0.07202272977588908], [0.9117796369672574, -0.04880345012330112, 0.08728243383443465], [0.882808977034735, -0.05445038343781487, -0.08387583527736063], [0.47031719274877126, -0.08586007687550312, 0.051264482821274014], [0.39570615718322133, 0.09428246276504869, -0.03332892459947084], [0.42590365813112063, -0.09570652772074777, 0.02898724808666291], [0.38071836950315474, 0.08214603502922088, -0.05702656336285767], [0.27894401158476834, -0.095852537395982, 0.028500720600572026], [0.43961545441294464, 0.09964546548607603, -0.008413156842899961], [0.9411765179175979, -0.04872940805418515, 0.08732379280979906], [0.23499528644396064, -0.048739898554397525, 0.08731793795610977], [0.33665407072921366, 0.0779437344613336, 0.06264801878927309], [0.07250441195085068, -0.0743543614400629, -0.06686874408002956], [0.9123608405502863, -0.006382046241231927, -0.09979613963362899], [0.029198150390720448, 0.09967442486347643, -0.00806281763003458], [0.9399744269230423, -0.006020720800887585, -0.09981859005735233], [0.42482715611529753, 0.09432901366480066, -0.03319694535685253], [0.17501758531799388, -0.0488183249942632, 0.08727411497548683], [0.9414742781105554, -0.0999567129929202, 0.00294202781274725], [0.19057516254469084, -0.024961379550125742, 0.09683454719755015], [0.13205881155774743, -0.024772068272621312, 0.09688314937849922], [0.11565836453501802, -0.04897324358316028, 0.08718727781588582], [0.42647058823529505, 0.024283408491651934, 0.09700678363922582], [0.07407344674429447, -0.024647464617252885, 0.09691492396912495], [0.07342923138322656, -0.09555641589510354, 0.029478320530213393], [0.05732885668789787, -0.04862515507365031, 0.08738188767738689], [0.028352543953951967, -0.047879612022197655, 0.08779261217553462], [0.9701058434498081, -0.04853756353585182, 0.08743057203291732], [0.954573041656476, 0.02452613535345731, 0.09694569967060888], [0.05144024759920571, 0.026073660345145685, 0.0965409976963465], [0.060226009290292294, -0.08846739466156268, -0.046621026176987004], [0.6399249111545547, 0.023993166437599987, 0.09707897797307934], [0.0641144672568044, -0.09986586245361745, 0.005177790686689179], [0.9487709089990892, 0.07813271539738109, 0.06241216856216297], [0.9531859500752194, -0.09749234963982278, -0.0222540279883564], [0.9493472511204912, 0.06635980385634087, -0.07480893283658019], [0.9491062860896491, 0.017058285349942037, -0.09853433361483677], [0.045803544152518104, 0.07816006464776512, 0.06237791511630684], [0.07860330159819397, -0.09784572964729095, -0.020644931334088963], [0.9803522084827867, -0.09749279121818233, 0.022252093395631556], [0.019592358362825222, -0.09749279121818233, 0.022252093395631556], [0.046037115680089113, 0.06735720528312829, -0.0739121566215363], [0.9489994251649104, -0.07205842338879602, -0.0693367407564057], [0.04614235978445426, 0.016060654661753725, -0.09870185090379961], [0.9485529165170749, 0.09905529362961772, 0.013713088782262529], [0.9770043286338559, -0.06822609995148819, 0.07311086981707676], [0.981115455853061, -0.029475517441090626, -0.095557280578614], [0.9471872150295211, 0.09473808955209197, -0.032010847974082164], [0.018705649695964933, -0.07818314824680304, -0.06234898018587328], [0.020655537154336562, 0.0976594356345489, 0.021508943059606576], [0.017946639960017743, -0.06801727377709185, 0.07330518718298269], [0.9781755757050413, 0.02175500220631844, 0.09760491728905406], [0.025427630745390884, 0.02250295322206635, 0.09743519434108754], [0.017713750140518833, -0.029475517441090667, -0.095557280578614], [0.9763141173635809, -0.02204729538173799, 0.09753930882649517], [0.023039709761657028, -0.02183978167437412, 0.0975859822741754], [0.05083557582480841, 0.09510587375473384, -0.030901015798006273], [0.43965468629471577, 0.06617872168124384, 0.07496917230859941], [0.41232520804613804, 0.04022420032230046, 0.09155333805182336], [0.7809396966657556, 0.044640411101571874, 0.08948314755685931], [0.8086295904167684, 0.016247518698033658, 0.09867126297031495], [0.8380416973098583, 0.016215827463167156, 0.09867647612113432], [0.8676462777191554, 0.04565505222421392, 0.08896974882736433], [0.35092818391482566, 0.06660217990988988, 0.07459322778410019], [0.896865266695014, 0.016117731397167857, 0.09869254649976739], [0.13013924656068573, 0.04547426965358619, 0.08906228606695954], [0.9270353197835749, 0.04564726383849559, 0.08897374502660192], [0.16509878691469357, 0.016624869132476697, 0.09860838567955578], [0.10060369077614212, 0.045467245556238295, 0.08906587214825178], [0.19100964030276046, 0.016021296313789377, 0.09870824719559028], [0.21849772200617976, 0.04549797551639251, 0.08905017812396417], [0.07570335356635134, 0.045361085125001435, 0.08911998628973401], [0.24983252382363463, 0.015989765038168055, 0.09871335985581778], [0.38235294117647123, 0.04041702717383889, 0.09146837658135824], [0.5145331933483449, 0.015925686051367367, 0.09872371814206189], [0.5439449756454441, 0.015908773129912655, 0.09872644497550276], [0.6910034917967192, 0.01582048654865528, 0.0987406309751149], [0.32351726877503495, 0.040186365808478654, 0.09156995142025107], [0.7351054013044268, 0.06776250321076674, 0.07354075848541966], [0.5912538308495627, 0.021218627525756928, 0.09772292385066664], [0.27516012146384033, 0.044552910330458044, 0.08952674561875999], [0.6463903414950826, 0.06719802335825889, 0.07405690823105492], [0.4693410906618555, 0.06739095524637478, 0.07388138568666067], [0.9496706790641982, 0.04449641998026432, 0.08955483576524459], [0.9999999999999999, -2.50920862002394e-16, -0.07306820487327913], [0.9999999999999999, -0.011508248893123118, 0.07280417667649476], [0.9999999999999999, 0.07123623242397974, 0.016259205190912753], [1.0, -0.07286389135284624, -0.005460393788372083], [0.9999999999999999, 0.05855994900625907, -0.049174250944146826], [1.0, 0.049699000952664794, 0.05356278435360209], [1.0, -0.04116078541182028, -0.060371784035968094], [1.0, -0.04875854296352724, 0.05132560736237924], [1.0, 0.06944984514603658, 0.04009688679024144], [0.9999999999999998, 0.04665563482725371, 0.027552836632207693], [1.0, 0.022976518098237923, 0.04235001236537814], [1.0, 0.01985573963200126, 0.014479666682287853], [1.0, -0.003969118687826096, 0.029725171164527046], [1.0, -0.008513706565336081, 0.002292220138594798], [1.0, 0.01623453042698919, -0.014102429384138778], [0.9999999999999998, -0.012243143387389218, -0.026495107570484455], [0.9999999999999999, -0.03450550212999403, 0.021448820572495277], [0.9999999999999998, 0.048717406254833, -0.0034880048521444794], [0.9999999999999999, 0.013237939209728919, -0.043973699144657215], [0.9999999999999998, -0.0336930522090509, -0.008916522986870287], [1.0, 0.03915734447139096, -0.02818109576474569], [0.9999999999999998, 0.07828726642463171, -0.006766422180493856], [1.0, 0.028315887469779023, 0.06799443321897357], [0.9999999999999998, -0.037231622830931906, -0.03480413784791667], [0.9999999999999998, -0.016839190356466176, -0.05255732044986449], [0.9999999999999998, 0.026290050514930823, -0.06917579577250925], [0.9999999999999998, -0.06136973046791286, -0.0441803969696331], [1.0, -0.02194967942142288, 0.050199517822524145], [0.9999999999999998, -0.06724393895343414, 0.025594861434738964], [0.9999999999999998, -0.023637529718384297, -0.07663098922688141], [0.9999999999999998, -0.034187644013648155, 0.0713592355276166], [0.9999999999999998, -0.055992755495006485, -0.020042423486293506], [0.9999999999999998, 0.003315594733254227, 0.056195677226382044], [0.9999999999999999, -0.053411732523838254, 0.005654386985016351], [1.0, 0.00975048740202272, 0.0793532980042258], [0.9999999999999998, 0.06813621629229005, -0.026643644522860627], [1.0, -0.07540677636266058, -0.02851090800560852], [0.9999999999999998, 0.04694795383579438, -0.0656781606917031], [1.0, 0.03648978553636028, -0.05030998955692087], [0.26873484956229693, 8.678019529644268e-07, 2.4240411845442632e-05], [0.3687401665273464, 4.2675738132940525e-18, 6.76482817720072e-07], [0.7132177729366422, -1.721067164747017e-05, 5.776205234316087e-05], [0.5064582714200778, -5.580027912329954e-06, -6.147645290831012e-06], [0.8454968360563145, 5.6545921835682625e-05, -2.691232990403844e-05], [0.6095744446519211, -1.6618982545824613e-06, -8.853883966778173e-06], [0.15334132182535018, -1.2319046830022228e-05, -2.0460877770813188e-06], [0.9219427229563724, -0.019393836910254286, -0.008696595680282812], [0.07797145070964781, -0.004255908198889046, -0.021641671208288825], [0.43760016907868887, -0.008011534295762226, 0.025720063094603875], [0.7793814695249714, -0.014225914807665519, 0.025357466219631055], [0.21103072324634797, 0.028812538206096815, 0.017874133565885165], [0.21104647810581278, -0.021739483729006786, -0.025927321943246397], [0.7681683249135163, 0.021204441263570357, -0.028575021348572947], [0.42207252523896227, -2.6116260585477684e-05, -0.03650835314634295], [0.6617647058823534, -0.0005814005945286129, 0.03786617851391829], [0.5580342062526942, -0.027532220541827433, -0.025915311504916373], [0.6611794787726843, -0.002914611459696645, -0.03766803172194779], [0.8971776915532335, 0.034105736344788945, 0.016097302003348635], [0.5578848714085335, 0.035325748062242444, -0.013637649910971958], [0.3187463139547874, -0.006325724685629282, 0.03761771812317382], [0.5580176453116134, -0.008521369138748389, 0.03670962043835161], [0.31872860716085205, 0.004713335298362294, -0.03793645858738471], [0.10294117647058838, -0.0004517524971526343, 0.03837971120928194], [0.45951289654048283, 0.03889524282979026, -0.007292315072507637], [0.8013074300422406, -0.028810286004338277, -0.028551921999756657], [0.22610596852608117, -0.026944279190647256, 0.031157254419954587], [0.9431590974011214, 0.007815940751619118, 0.041704050039475714], [0.8035735709437392, 0.03878311397523361, 0.015381665537936977], [0.30900959497687097, 0.04148615003038075, 0.006022154071607174], [0.46425739269824523, -0.03701969660635152, -0.018217924530683643], [0.30761521878525944, -0.042125064603566215, -0.00619377579395721], [0.05843555708313715, 0.03518365228172822, 0.019310971911789362], [0.11158451478230841, 0.04104530461183039, -0.005107308717666831], [0.8864318010758004, 0.016202461162880582, -0.038489878717753556], [0.8860449981703394, -0.019078056696063696, 0.03725107526745426], [0.6507147607929815, 0.04171255418282753, -0.0011600536796726108], [0.23413879576048463, 0.029502815967426422, -0.033986430952436114], [0.40551481853474997, 0.04238751685148303, 0.011511760915372739], [0.11456823678207899, -0.042489545678866175, 0.000881928213329275], [0.6613862347038607, -0.04469321119953569, 0.0014262927474692911], [0.7473394638432855, 0.040127402223689955, 0.020386270257081472], [0.7486788283631676, -0.04187935047866109, -0.013034989687595559], [0.40446017111448557, -0.04397933686857277, -0.004996567605631252], [0.062030398248696425, -0.03684688879791782, 0.022380764510155114], [0.945012124481127, 0.025609346467334846, -0.035111865311243856], [0.8738688611132871, -0.03877862002672528, -0.025915256814316577], [0.18126720239218283, 0.038120439383567455, -0.026347162667962883], [0.17977485397879436, -0.04577303047226279, 0.010897135132809687], [0.17986902117940778, -0.004282581467938848, 0.046538727137563886], [0.8205814576289543, 0.028120474977303873, -0.038586424875354415], [0.12586235917798114, 0.00097282295997328, -0.04697809614730464], [0.47905926261282616, 0.006786356516091667, -0.045935174377492005], [0.8224938637908736, -0.04462707703647815, 0.017730327286237083], [0.5283130037215271, 0.036527494456473755, 0.032260336647995554], [0.39117465107503324, 0.005292033347195519, 0.047872906192766566], [0.4852941176470598, -0.001988017080359603, 0.048838816004337496], [0.5877583753626725, -0.046621160379362966, 0.014085317706036759], [0.528307337402484, -0.04657911403948473, 0.014056832216297263], [0.27896965031259335, 0.024557630731350175, 0.043136086190910104], [0.3516150867302508, -0.03599838770881495, -0.03412207508414087], [0.8237525442012666, 0.0026782102445101013, 0.047624855650862226], [0.7314465573052104, -0.016477443936689134, 0.046296887018420545], [0.5889270286845708, 0.009448834276771317, -0.04782476549828385], [0.6939026528084231, 0.03779912330428897, -0.031068168211834356], [0.25177691385146356, -0.04796508976564124, -0.008297603988705833], [0.7303568306376519, -0.008409918601763672, -0.04818014082516547], [0.26301120190690147, -0.017366109806382618, -0.047885081414833004], [0.048330099617200285, 0.03217683440172892, -0.038564849499533274], [0.35402772124147575, -0.046953690537114026, 0.016571782410204426], [0.25924527039973055, 0.050719820629441824, 0.0045295424503456255], [0.35120945970325174, 0.042400398506084465, -0.023847029120982875], [0.16255128048465062, 0.044156048410021034, 0.024319969840974322], [0.6955041925132074, 0.041884586090783944, 0.025482642744207754], [0.3558612329816083, 0.041650791096434846, 0.027461208358015902], [0.27801491770566755, -0.03594641026352741, 0.034223986118030035], [0.6169722056038242, -0.03600321566815076, -0.0359322063169593], [0.5305250122069757, 0.009545907804950798, -0.04903210459152301], [0.048511703756722827, -0.04481441066774208, -0.02513842675221958], [0.16281343487874597, -0.03275640350798182, -0.03776486347423559], [0.9548404726936062, -0.05293862563363779, -0.007371158504887479], [0.6144801641548403, -0.016693302299976766, 0.047875757287331025], [0.5979047533223413, 0.04734984991685315, 0.016369456829191324], [0.9459121886101157, 0.04819353220415773, 0.010632292399848496], [0.8511715459877561, 0.050337864810495625, 0.002442180072025553], [0.37403369429701694, 0.006093538376214174, -0.05016160722520735], [0.7088363579723463, -0.048995216339428015, 0.016045838588515993], [0.5086687654331401, 0.04877758159149358, -0.012520625402315615], [0.04874935533433605, -7.706652178763331e-05, 0.05199864647260615], [0.5100927136758464, -0.03432477884490585, -0.037421590343299754], [0.697944235301632, -0.04130319063670397, -0.031284809951562416], [0.2822771082770942, 0.0370957853303313, -0.036263281297801514], [0.9334678736871136, -0.03932530979038553, 0.034222990332817046], [0.14239945805783247, -0.03468342706871246, 0.04005693150530619], [0.9520931434459138, -0.024260125153542957, -0.0467850193903201], [0.454755370612947, 0.034729028276805685, 0.04073334257998006], [0.4812660235555792, -0.045217099689958684, 0.026707422178911103], [0.8412107435380008, -0.01356961695375251, -0.0504648176707788], [0.6299190375203314, 0.032043686165423864, -0.0423316176351166], [0.40067413471848445, 0.04176039630104629, -0.03519897364963755], [0.8600752188461137, 0.03145818862355089, 0.04397779532653011], [0.18582261372663084, 0.002844555460496614, -0.05534050969484763], [0.23526472670395812, 0.012545419610069379, 0.05430587283816505], [0.40571965703528146, -0.03747115791382207, 0.040317731389557195], [0.8975181846885757, -0.054033715515900624, 0.010112710990043176], [0.7358994467281488, 0.052471564430355666, -0.02181920572658875], [0.6347831599860396, 0.03653062488442009, 0.04173013286461572], [0.09310099420530683, 0.03223750161189938, -0.04552608619039481], [0.9071070320356133, -0.02190130353689514, -0.05167600582002382], [0.9100081605704898, 0.05179312627328978, -0.023726968253550966], [0.12021403753660798, 0.040999533571009376, 0.03896573878847966], [0.10170751080264749, -0.036768890721174556, -0.04195498497611768], [0.39447266656663954, -0.03330904552686794, -0.04702676039505618], [0.35699946229432195, -0.021986939387126047, 0.05266755231793938], [0.13935036772747614, 0.04221316487118946, -0.03930237291388225], [0.754254695814571, -0.04959002657179358, 0.029491737604735255], [0.7778950818339491, 0.023949924311526434, 0.049449723992107696], [0.7729109898541408, -0.011652268983781919, -0.05672261143629932], [0.047365086978587274, -0.01030448814278487, -0.05469258926202187], [0.6905917673731545, -0.030334061172973308, 0.050675081923830544], [0.30256818512560607, -0.033638622922830014, -0.04781183351632403], [0.43940928344437147, -0.055326474330880115, 0.0188037670785289], [0.7864561424122791, -0.0580804758478333, -0.0010634876407834652], [0.6999616237422, 0.011703904224560809, 0.056422510709620476], [0.8344887750870276, -0.054967736855539434, -0.021987419876080768], [0.5949963738112486, 0.052086836412507415, -0.027342035627298533], [0.7765224753200289, 0.058802385096112214, -0.01058770001875797], [0.5212430818319754, -0.025953021825960938, 0.051448266007728616], [0.9579576098898455, 0.00378989317611223, 0.0006373392816911506], [0.6281398418964814, -0.05191293300450343, 0.027552696414426675], [0.31923334062948877, 0.034416894415275665, 0.045647629972466595], [0.21914808198485797, 0.060011072236555156, -0.009176799448100926], [0.13999595714621937, 0.0033445470200620525, 0.058427178159780616], [0.8476977671631708, -0.03195737487042824, 0.049022377859782994], [0.44582869742521236, 0.03398684785946527, -0.04774038461092949], [0.48981641154646394, 0.05287303871162691, 0.025244474065069612], [0.5891298720508101, 0.020763366995561704, 0.052147169616754495], [0.042969736426716476, -0.0024106314858359846, 0.004011321494047508], [0.9029606252337219, 0.016487104336787444, 0.055207173918507144], [0.09967262740345438, -0.04224140983881122, 0.04010027151526302], [0.22654313242216922, -0.002021473075788547, -0.05942327295723597], [0.19308406346783616, -0.006681432561259846, 0.007759672973460686], [0.31762869346279404, -0.047633218672150604, 0.03617505818228197], [0.45143884523370914, -0.02262117017501113, -0.054734954720341455], [0.0731678450218915, 0.056477377223856685, -0.014265896266291376], [0.8577926258380927, 0.045847183020718586, -0.03799605472059752], [0.21250754169692102, -0.059134574521190586, -0.009559493099124431], [0.49658452402549996, -0.060625552659640626, -0.008863013029986834], [0.8048318851706578, 0.0019634145004341127, -0.0020574852623355608], [0.6572245446072695, -0.04384878845799869, -0.039520595141324034], [0.32929734966698776, -0.008444283902030883, -0.0012778299969274855], [0.6944022987418463, 0.007882010735652124, -0.05899281732135412], [0.8041251526580001, -0.03245994052811852, 0.051652223969511274], [0.8862337945653748, -0.0018578277559139328, 0.00028232744506459897], [0.35294117647058876, 0.017489316424618425, 0.05998985933397869], [0.627073765749397, -0.00465133419733542, -0.06019932648759304], [0.2875717580111127, -0.009219261133851808, 0.061637643248222934], [0.19021112259284578, 0.034319016166847495, 0.051974115664729106], [0.14899867426752286, -0.06000198267695353, -0.011209673532616109], [0.4558349629559832, -0.030088073761932465, 0.054443070288885814], [0.922351417336709, -0.052804929314834555, -0.03101178023482468], [0.6732575150742872, 0.007811361212376443, -0.0002875218739784067], [0.11270332781429597, 0.0006045790097308942, -0.0010735498167209973], [0.43035705215757347, -0.050574058926674464, -0.035009345542837335], [0.46621852883838827, -0.00040071691882180636, -0.0015730329029781068], [0.8581404584503163, -0.06077839411799131, 0.009684546813157701], [0.42828513527449247, 0.004349042319831744, 0.06249349237103971], [0.40854565918151897, 0.003920417820476683, 0.0009372453394975808], [0.08291163039960317, 0.03204358755908181, 0.051085712475778595], [0.752643575468811, -0.003943529471808107, -0.0020982399743777833], [0.8170234717642137, 0.060074399747631985, -0.015303584275538427], [0.7263832749721136, 0.030672197661077493, -0.05353905809137003], [0.23866322942673227, 0.048428875896919917, 0.038159848845551465], [0.23005561360769358, 0.0008100824128928899, -0.0008731165840700322], [0.23624657998500226, -0.04534747721866202, -0.043895061766317724], [0.08773603432770756, -0.004321776147200084, -0.06017050755095956], [0.738450576690003, 0.02184373525110881, 0.054650686778038145], [0.28839739944030196, 0.008571064641400188, -0.06212608315045253], [0.5594943304861066, 0.05782030751777438, 0.019301579672929222], [0.5301863324571819, 0.010905293613026449, 0.06214076886523798], [0.5699404783348337, 8.129876104468682e-05, -9.671115148108565e-05], [0.58515829379102, -0.056129303414621634, -0.024119011363583166], [0.15527826503688846, 0.062020691302707126, -0.009644484367483915], [0.7668164008522703, -0.011348076516907349, 0.06236022520166415], [0.5580195643529844, -0.047839090196584846, 0.03998361935854605], [0.5030717417873398, 0.03765642224694316, -0.04979608497144082], [0.5358436926236646, -0.059240675495602864, -0.021949561585026117], [0.43856103743037705, 0.06223472275665281, 0.015464605193698012], [0.3194652144508908, 0.042732335626415756, -0.04644168817220169], [0.07927809362646406, -0.060880729017406196, -0.0048467863895646736], [0.25203403490081316, -0.022710384107729555, 0.05877835502441536], [0.583874909944643, -0.028491296555939672, -0.055042915778931355], [0.37420055617075654, 0.06239918072399726, 0.0002311695738000882], [0.8083961580939043, 0.0016344002893395368, -0.0638028706850093], [0.19340557725599491, -0.04044499923141079, 0.04662922806576498], [0.5615923211674606, 0.03652468351449986, -0.052158947247537196], [0.34273268814288194, -0.012017037670226072, -0.06252098285616672], [0.08972328538505851, 0.05773996088997179, 0.02207184755385201], [0.8676470588235293, 0.0002038364676170478, 0.06468944587433939], [0.6199022552412674, -0.06324019508874713, -0.008555151405867377], [0.9286965586479901, 0.04360527819634482, 0.045037585137040995], [0.6525507174055882, -0.035075640460801846, 0.051876819559989205], [0.9181809749849644, 0.014122985118626303, -0.0605555415349237], [0.24775428346915432, -0.05786153920463705, 0.028036211511364092], [0.823483116180784, 0.04055115792862449, 0.04755187090793009], [0.03529642246289689, 0.03560408609850738, 0.04970490226136638], [0.7713076175616265, -0.04658432132566607, -0.04275998297359374], [0.6906274604359403, 0.06483253524560226, -0.004482759365767126], [0.2810330030126054, -0.06373898546650711, 0.009162786817761117], [0.6654675560937556, 0.032097772354434916, -0.055461462065048976], [0.37174555547738863, -0.06090616353523991, -0.013874777153994588], [0.2818212283075441, -0.057800480236854156, -0.02824244643181026], [0.03766209230627677, -0.06334330074140522, 0.007405412909819186], [0.91581762430461, -0.01873826658833458, 0.06069787049849601], [0.7341845516273918, -0.04561897868893567, -0.047325329802363265], [0.43103423409754094, 0.059152834095414844, -0.021296318796086112], [0.7892444837061877, 0.047250764938729164, -0.04483581245065931], [0.19450732203757992, 0.06198232076703291, 0.018436986872174033], [0.4168696648099224, 0.03881873943773039, 0.048544057716303074], [0.8562202065796799, 0.018175279240348452, -0.06286964105813712], [0.28553065885893836, 0.05748272467931445, 0.02888960119090646], [0.9655838387460868, 0.037922788352536256, 0.04092158988926644], [0.9236453737639215, 0.017979534047879164, -0.005154149668607767], [0.9611095108687171, -0.023608980595586797, 0.05792592709162741], [0.53967461328529, -0.025400834192099903, -0.058310778977368596], [0.9659792256084523, 0.05329256474723524, -0.02073588558771474], [0.33740975009604446, 0.06473597585277739, 0.002099132605471093], [0.962469571690468, 0.008055361646259262, -0.06403800753622488], [0.6384888343969759, -0.0184082014486951, 0.014766532403893032], [0.777144441698669, 0.058115274434809766, 0.03183801210221649], [0.036909890846704055, 0.061935759047813316, 5.947830090028652e-05], [0.19418417413234645, -0.03264685297612379, -0.0563793660209974], [0.5808885707620175, -0.024472422720082623, 0.060714213040396633], [0.0796131413411868, -0.018766632757581163, 0.060691165693890464], [0.20427943451451594, 0.034465382404517186, -0.05459886523527684], [0.6624773624273483, 0.05828639793022739, 0.029928637377417446], [0.8836947158649252, 0.06649395242523018, 0.006047925369110496], [0.28799274935823177, 0.06400487907162407, -0.012849887235202959], [0.6690034085143002, 0.03152893671998263, 0.054364802363601625], [0.40566853319069635, 0.018798406138483183, -0.06306372378423812], [0.254390554725034, 0.020787718491206905, -0.0626197891062913], [0.21098874636868564, -0.013205861460292807, 0.06357960926232421], [0.6815535032198448, -0.026187402821208818, -0.0600924935592894], [0.43270243665076796, -0.021395367096372946, -0.009042217006337496], [0.15793733608630212, 0.01153722826613977, -0.033983667446644376], [0.03539133239422099, -0.0354167625704576, 0.04927101846242213], [0.5047913036805356, -0.010754419927269436, -0.06435684578724575], [0.2544047439045616, 0.05891379608170438, -0.030113521795425254], [0.3358944749775635, -0.06226676334350674, -0.015355642926795332], [0.6219433466441704, 0.06364973648294917, -0.0056727361550593415], [0.8745136496066085, -0.012971468904260377, -0.06454032186888724], [0.15426998836900951, -0.011298716934982382, -0.06539061497049022], [0.9677052963996735, 0.00969339805051152, 0.06689630767726651], [0.66404639130545, 0.05809379431594921, -0.030444546605007037], [0.38679191134254126, -0.061758418924456354, 0.021190013543580695], [0.29696828925296737, 0.0108788196745087, 0.016890082526988634], [0.07720237513507631, 0.004764296292346459, 0.013431694903852117], [0.29393941441948385, -0.013155261673456459, -0.020608304719081077], [0.2505348488668627, 0.018902453305802487, 0.023343124296812814], [0.6850951324720131, -0.021952081866648487, 0.016113384908958743], [0.47893486331349255, 0.05822043908552676, -0.031194082794541063], [0.7592604891653638, 0.02067835079799934, -0.06311200404090012], [0.637737720157277, 0.006193457773249043, 0.06492598934129594], [0.8746161110802909, -0.056218656381284475, 0.039079108098100536], [0.5363787108157465, 0.05518321140311246, -0.034547165893503574], [0.9641526686913463, -0.027983231415166197, 0.017761990836776684], [0.20534216266523483, 0.012783528014142082, -0.022785060863505274], [0.9147456003004057, -0.0031358910791878945, 0.02256664613672541], [0.6773975442756898, -0.05680697496505458, 0.030840626224577408], [0.13376297015300698, -0.021512366065401058, -0.02053579445560917], [0.7233391415187238, 0.06393217318095167, 0.009395677102241786], [0.3451618511604406, 0.023384750100050908, -0.061463644465799654], [0.18116758977897873, -0.06050847758426885, -0.025842125228633602], [0.7745882869124802, 0.018730373483172275, 0.013695036264655826], [0.7202782741044783, -0.06297231545401503, -0.01440244276078032], [0.21273369040772905, -0.061153510377003145, 0.025638527524820796], [0.5580243729567519, -0.06438767643883055, 0.005521021884236815], [0.4786154114039117, -0.0442412267705503, -0.049452431813417984], [0.5381769797168182, 1.41097129470003e-06, -0.01578470733645769], [0.7337359337570211, 0.01762651485519766, -0.02200114536360584], [0.06834832660549488, -0.039016221923765006, -0.05408524472216216], [0.38598598263569744, 0.05680713706598222, 0.03666308238837268], [0.6871831478790343, -0.06764847112426459, -0.004110409532063271], [0.12981475866172507, 0.0637399498560227, 0.014228149994560558], [0.37802469342559614, -0.022880596812166205, 0.024749957567051395], [0.566229468788733, 0.023850948080662803, 0.025596411604168156], [0.11538590892776718, -0.021429241588917132, 0.06397819690567255], [0.15545713799931776, 0.03496062371152545, 0.057554049919542875], [0.43544648384987167, 0.024591188334166434, 0.013511923771410542], [0.787810375965309, -0.05693509816609138, 0.03347086256283519], [0.13342216224179854, -0.0511649854085987, -0.04109423966691016], [0.9158775362962279, 0.06379087191267234, 0.019499421581531118], [0.8645691596962849, -0.026711367585974352, 0.011090274560354621], [0.34930088999190073, 0.005699753942201895, 0.03263301958060083], [0.14491056939685681, -0.06482173220333022, 0.022954333613331004], [0.5600752563410597, 0.0018676616112851552, -0.06593530071567523], [0.48531973744475326, 0.018571354608789184, 0.020636500283603955], [0.49898230945066274, 0.030467702709982215, 0.050916318418472634], [0.525845128333942, 0.06583093395870863, 0.0129843231706336], [0.8838495963489863, 0.056291684555215674, 0.039220835347354925], [0.638837524892158, 0.01188075382778377, -0.01512813966456045], [0.9297924838729316, -0.06570265627557996, 0.012451628345067271], [0.43789188271693424, 0.006646916337478245, -0.06765584795252759], [0.8544699060082726, -0.0022964751627320332, 0.03305624747711288], [0.13252065640600452, 0.011739084545169405, 0.025076610739558983], [0.8245928547781869, 0.06585304039790853, 0.017700669085481218], [0.5252567949114223, 0.0005701830903095712, 0.02927638395431734], [0.8226908898028874, -0.04243683926433101, -0.051678514055893555], [0.6940632381442128, -0.007117426725351235, -0.027840014518403292], [0.16741472255619314, 0.03462062568057393, -0.057568278609395784], [0.45976973884695055, -0.06832811982554807, -0.005335744701030035], [0.030637309371161204, 0.004197087289166454, -0.027847822292823576], [0.8788517234547046, 0.03710801602920253, -0.012566985735067322], [0.5908845408407308, -0.017438489364416013, -0.02314627002704053], [0.38129792775779664, 0.03037485848066907, -0.009427738852995833], [0.26189890431499707, 0.011233500404385848, -0.030675169778821787], [0.8346904531745591, 0.025856991908970707, 0.019128922306135346], [0.32124677296442916, 0.008905317711859269, 0.0675767638279208], [0.5896113369284044, -0.013894137533821946, 0.024348519602806675], [0.9719505618929831, -0.06266977611559767, -0.03122292458704278], [0.7343225501881164, -0.026971916441058463, 0.014375805349983693], [0.3501258851947364, -0.0028139137499651073, -0.028036037141564905], [0.18069652404651132, 0.024311157791192903, 0.004236825204770158], [0.5580462567614881, -0.030199090103664873, 0.01031258475246547], [0.10606587615495952, 0.06065595418817592, -0.03225238052944445], [0.32600360984433585, -0.024074181648267197, 0.06499080675000543], [0.8643754441935392, -0.006515953369049336, -0.027097229891856332], [0.48761464576107777, 0.022516778874258937, -0.017073539423408408], [0.7236962512355208, 0.05032156992371961, 0.042855715611927615], [0.7248126514323625, -0.04932353637459637, 0.04551011788518828], [0.39026759168420067, -0.008570974063173165, -0.024499308807905556], [0.9673596233112444, 0.04327038407436684, -0.052582137484352476], [0.599777794762444, -0.04826079623031547, 0.04571579606200116], [0.9685942520364906, -0.02331796435539222, -0.01701340927321335], [0.33695604961245385, 0.024070099032962696, 0.00021341599359347649], [0.9604223501319725, -0.06102025057670106, 0.028782550341686024], [0.48922100649796074, -0.03506356063872608, 0.05811598045996374], [0.7771873613136645, -0.026229406106157118, -0.005673890201045114], [0.5630784068630547, 0.0053734667406446284, 0.06699836674509087], [0.5688789692208551, 0.06745218411172818, -0.01192450637420844], [0.7120199294126135, 0.034775170396423444, -0.00291713447719143], [0.7210010039428645, 0.020003987488302157, 0.025895552635214807], [0.14351754717055756, 0.032021591465798076, -0.0004458716164833249], [0.255555268927003, -0.013262151702617683, 0.026910770501650614], [0.46055994534437794, 0.013148945915733231, 0.06585294780437538], [0.27791063490283224, -0.03127339441669755, 0.0019130855153856082], [0.6710776529365329, -0.009942960203410641, 0.06855951194197171], [0.38803465726923536, -0.023278172019705216, 0.06473786768090965], [0.14939285306465033, -0.03232361235044034, 0.007481768284790397], [0.5099646937818653, -0.05573877476594348, 0.04069609520477904], [0.46931895490435077, 0.06871166206825814, 0.004148161214567644], [0.37097204458415906, 0.04255870785855716, -0.051205041648179836], [0.41344387542833344, -0.01588861380080605, -0.06805862190703453], [0.749920007765849, -0.07028161441600063, 0.003980483066354152], [0.6611722466786065, 0.000392371306528676, -0.07075216711471416], [0.613922523171242, 0.012407005928086029, 0.030973898119720084], [0.027660327079268354, 0.047738705980652656, -0.053897526449029245], [0.18061507570475221, -0.009512853097457662, -0.0226212170730713], [0.29849440126813453, 0.01863545431282125, -0.014778375102766922], [0.03789945158791003, 0.029045995644273792, -0.006503474895051327], [0.6421960148943391, -0.02265706704252935, -0.018300624537953454], [0.18747415588971017, 0.0684353657295883, -0.013170780973944477], [0.7966520855335184, 0.03246501963197705, -0.016268698569998283], [0.24327105537758084, -0.01984870495868879, -0.02219245636615259], [0.7564162470945314, 0.04967382841966388, -0.04755197621911645], [0.8030526334199726, -0.06174091856667205, -0.02933435866110694], [0.7953201026966568, 0.0032064005300014155, -0.03358962311964294], [0.7966367705929566, 0.002710300409569531, 0.06692390746493905], [0.855204416981039, -0.04803811331337227, -0.051497221105190394], [0.3171316048068211, -0.06852387112823687, 0.010850898619912936], [0.26467417407233407, 0.01251023434562082, 0.06987106676296735], [0.8934095089107101, -0.06483535869248971, -0.02076952347947358], [0.11148974063254101, 0.019961741622551613, 0.06334166222728678], [0.5898280470135375, 0.025719865502660796, -0.0076463545864837975], [0.827292032849336, -0.025822453052165663, -0.008732701802106975], [0.4244161746265404, 0.026973214843967162, -0.017566901609049196], [0.5580359536412614, -0.053878319809786725, -0.04572726042546671], [0.8890107348880897, 0.04752974340082718, -0.04902430783994963], [0.8667179180110817, 0.021187224349316844, 0.013485193856496923], [0.10778244148384881, -0.06446348930511368, -0.023894592965217863], [0.0861692974986689, -0.025353669189466195, 0.0026690598408838258], [0.49098527837623723, -0.029177832471644984, -0.00047589030078209647], [0.028236117086773427, -0.06704251570498673, -0.0211984086959653], [0.6033731906097357, 0.035651006140912926, -0.06123929477951284], [0.7495968572443255, 0.004626849376572744, 0.029249740739552763], [0.16426513989512642, -0.027759130670129344, 0.06401551050032124], [0.06267333752643364, 0.017894649139154284, -0.06584482150711403], [0.7228589854401778, -0.023471725695889605, -0.020329771595209517], [0.6304865297197221, 0.06523747507263175, 0.026119320339746403], [0.20988994387379392, 0.0009481040374555655, 0.03442362268841595], [0.12615965222008463, -0.027698337357109963, -0.06262059422864948], [0.39903074946837463, -0.06183521759230437, -0.03179569072430536], [0.5294947823490286, 0.027063656561807443, 0.0007783058316591929], [0.3754143754090852, -0.04839295334096675, 0.048497390771971655], [0.9058071196107608, -0.04754014834592011, 0.049295334064502656], [0.42508660632005874, -0.027851862617218413, 0.06447211498968033], [0.42601655565874064, -0.0682648144049427, -0.00796376120129936], [0.12985506704898972, 0.02681469847029366, -0.06636089613597479], [0.3818375216127188, 0.022857394529349335, 0.022179971618984374], [0.36635465025189706, -0.0347851018789189, -0.0628172998667323], [0.04417862008099481, 0.061875380263869684, 0.03209570770361841], [0.9371701965112832, 0.0675291766287702, -0.014334320182755898], [0.3172060957913487, 0.0618183858863098, 0.029296920044798305], [0.028783155658448027, -0.03528173229607414, -0.04818952575188982], [0.6132520291512377, -0.03238747938142587, -0.00040604185208138277], [0.3182481710189752, 0.06557198113308005, -0.02377060780644972], [0.8113803767558342, -0.01527026260739088, 0.024145696663809495], [0.3115585353973366, -0.01215408733304132, -0.06976395236006677], [0.6430443152586387, 0.015765692733553133, 0.016887447342956573], [0.11263101730196211, -0.06620949783618492, 0.022734949891271703], [0.08337150203849614, 0.025829333536462634, -0.0105555866253659], [0.7704173538751471, -0.04262911474514212, 0.056297380516973326], [0.9299655387678929, -0.003192118649478319, -0.035704257838642096], [0.23488840614923834, 0.03194676948816064, -0.002536756260942361], [0.32726057869188857, -0.05360029635234689, -0.04480973417740058], [0.03135911916402846, -0.0324401575596226, -0.00045633718651394813], [0.07919942074441691, -0.06380117956213105, 0.027365318138511632], [0.6502852018187362, -0.0674345581496693, -0.018608060660482605], [0.8522455844488789, 0.06036540424398629, 0.03278279863685367], [0.5524033345664663, 0.03266396711356543, 0.05342141610919656], [0.9714029245570505, 0.0070525622421941, -0.0291173465461835], [0.5063178112484594, -0.0028992355987345416, -0.03198942600225473], [0.45830324453216864, -0.028316105805130713, 0.012054687900270311], [0.45196946989954684, 0.008785056693335798, -0.028830927472210614], [0.8160006748088825, -0.06951418118087069, -0.0007674348375786733], [0.22109721806025545, 0.057691642034837065, -0.040838527095590674], [0.030298790506439986, 0.0163788774808156, -0.06238255941647173], [0.22500629891667634, -0.0320597741385895, 0.00021495342531422488], [0.8437930284796152, 0.026610763505450184, -0.017141532548898573], [0.7554584388528841, -0.016694401910035104, -0.030870455659200255], [0.7128221811961445, -0.029393432051441612, -0.064219844915222], [0.6479030256223095, -0.02818964555601965, -0.06571709162385013], [0.40459457849833624, 0.06849311458848466, -0.006476448966112773], [0.8877699608806299, -0.047128728939830555, -0.053301817056288815], [0.9245393160471076, 0.044295763971214576, -0.05142019381149925], [0.9322876558228708, -0.013142145845955152, -0.06915694837648181], [0.23652447627995493, 0.06953222440976813, 0.015097124885263127], [0.3758198751183334, -0.030303837090508677, -0.006384190869639291], [0.8385409676634726, -0.06054914156777526, 0.03961299113076556], [0.6915255771435115, 0.007747657866977449, 0.025890565828861702], [0.7976331480329508, -0.029169951567130363, -0.06551612306552138], [0.20740518246204723, -0.057691050853928096, -0.042840727487479476], [0.5496508999616465, -0.027554771874223893, 0.06556344456016332], [0.028509528243753298, 0.011294982173025941, 0.02948488128721639], [0.26593026528171865, -0.048007505580274286, -0.053310980194550245], [0.2976850488419576, -0.038417312501476085, 0.05817726658188816], [0.38104905518695786, 0.03404102869053799, 0.05950124830443309], [0.30358357456559343, -0.019123558906776437, 0.013981487000068689], [0.8795796579111131, 0.0660026298502503, -0.025237972412035], [0.04457223924738524, 0.06342079765561114, -0.03128383131259493], [0.8277696156085487, 0.00040942106600351026, -0.025857493872373724], [0.09848994834627614, 0.027280964803567603, 0.02032369847372327], [0.23319050529953433, -0.04748076024999021, 0.05395934408155376], [0.7542994681158198, 0.0685161310284426, 0.009195516293550459], [0.6599048700485954, 0.07214231260559044, -0.0008474278023689276], [0.16572615771993432, -0.05536191053130398, 0.04463105522820009], [0.12164633939054917, -0.019613764941622425, 0.021546465763304396], [0.10063526355262431, 0.07223004621718586, -0.0035662440890531543], [0.5216933642123919, -0.026157914605677804, -0.009161932142258493], [0.633549103366923, 0.06258571142549359, -0.0362085086205719], [0.5010532526351648, -0.019710508906651384, 0.02794750708861641], [0.6494774022528467, -0.07065047471914174, 0.0143131812157276], [0.7540512505564292, 0.049041865252955646, 0.0512990180529244], [0.32356035186929816, -0.025224276034287233, -0.02666146694345536], [0.6205156865957112, 0.03264360258376849, -2.5259981046208535e-06], [0.06503279056175222, -0.04538196464976519, 0.05248730749543556], [0.7103238326678821, -0.014809371813041051, 0.06920438825661276], [0.7090755884330247, 0.06495741972283944, -0.03143749485586701], [0.6652976700227331, 0.02635243836057625, -0.024484368391365873], [0.8857838460099399, -0.024847865446210895, 0.06779290536250535], [0.8268652860452806, -0.019951407361248674, 0.06848314274664814], [0.766607002072109, -0.06918512351629184, -0.02209868715327627], [0.37969780249558716, 0.06484670854362712, -0.030703919397090492], [0.6146601962922389, 0.0010533490024957086, -0.03194904224240018], [0.9307679846824802, 0.007328053146128137, 0.07092286384341864], [0.7950749119507844, 0.07156876590073649, 0.010570057524021471], [0.16330395113477314, 0.013402117945334711, 0.027345624264333162], [0.026178862260757472, 0.01276632904644861, 0.06604242111754244], [0.8864849533568857, 0.02074472072890336, -0.06917710960220802], [0.5600967554416357, 0.009961247233086855, -0.03573376043537427], [0.474150218473864, 0.033761382440996905, -0.060799768580813394], [0.8626938171967119, -0.06723961446849423, -0.020101358633481156], [0.9727530175082614, 0.03229918882416531, 0.0027021468812702875], [0.31531778468233723, 0.02188541004014311, -0.06863520286279387], [0.9716418396630587, 0.009669845160136874, 0.028389090991277736], [0.5804540163715725, 0.05165694105844492, 0.04413323368133896], [0.12578890428532882, 0.02001498216479435, -0.02268200709030056], [0.5065016735622992, -0.00688611080155234, 0.07066596213830634], [0.9719447989697841, 0.06519479653523597, 0.02779223856964815], [0.6954711069848508, 0.03834338299987047, -0.06161586292696699], [0.45853226012582043, -0.062389407538366214, -0.03528101063029403], [0.7892741248102841, 0.025300194642667417, -0.06602103929217022], [0.14346798962047413, 0.06061588977650665, 0.04155866519922577], [0.3457944090046093, -0.05617229002990134, 0.04524302872727445], [0.7997239908586954, 0.012451353881788203, 0.030955933483858663], [0.0702634862381213, 0.0529577200780572, -0.04477203547704746], [0.5319855283380811, 0.03814379577809941, -0.06006376733489013], [0.4749378565446172, -0.011064672568165318, -0.07022822827235312], [0.16407344574024274, 0.06000100700017004, -0.03873950804179196], [0.9714220909382821, -0.01992278887171203, -0.06904694305162497], [0.20985804577867892, 0.055880903101602, 0.0438235302482429], [0.45855419774203193, -0.058576586501431854, 0.042823015526778106], [0.8423534341277047, 0.019243668439303672, 0.06734626036040998], [0.7335539217536267, 0.008280401949685, -0.07325099368196428], [0.5987489719948352, -0.0073660103983981965, -0.0714047372022206], [0.2660311511679285, 0.05092271224660913, 0.05142919797456595], [0.18928616094979503, -0.07352892300625143, 0.0034655854015993443], [0.6402439947793129, 0.02230508493194124, -0.06919005185877303], [0.29346864609688394, 0.018968789704633223, 0.06827427015720712], [0.9292182235777907, -0.04198506321830059, -0.058959836607165354], [0.41329881395194057, -0.022699340626779682, 0.014843483896506561], [0.08410971069034988, 0.009376340747704832, 0.07134875170600667], [0.8299294711821958, 0.056551680056667795, -0.042337121391811935], [0.04437484974233822, -0.06215049375264334, 0.037282455905176724], [0.8498976054077831, 0.06945026617573287, -0.02089935442242761], [0.23679609924256032, -0.06814932836158358, -0.024528778422035092], [0.8956657214903955, -0.01772053641199773, -0.02384723818410089], [0.34077298179742105, -0.02094418358471088, 0.02345249993166196], [0.4990066881309402, 0.017756465709380102, -0.07197264597402618], [0.5997152098015116, -0.0017734319001280739, 0.07100572203972064], [0.4626505049094324, 0.06281963892947953, 0.03345679960457654], [0.74782401225701, -0.025820737881922223, -0.06543725013873725], [0.6974994043922255, 0.04198593817401545, 0.055805144336184186], [0.277350704363332, 0.027772664242098004, 0.0032616304934658907], [0.24165255585313572, -0.026639790634709483, -0.06631488391025077], [0.07692640396683784, -0.034360267190719614, -0.02472267729071619], [0.41437155321839325, 0.010565651085956453, 0.029601627148956512], [0.5285700154316422, -0.05257344466014241, -0.052347889819119676], [0.36764705882353016, -0.0039318403804613185, 0.07445375207164345], [0.8273816281871816, 0.024378312442965042, -0.06740405970188823], [0.37199298328762165, -0.056830001260502146, -0.04346522772436964], [0.672118965181851, -0.026304908032588413, -0.01997897180278286], [0.06436673765687585, 0.0697379557719485, 0.011245258123397342], [0.39689629902470946, -0.07383414695097891, -0.004210257064145519], [0.17145491870656812, -0.020037269911581362, 0.022930544223063964], [0.516703341370894, -0.07343300497270372, 0.008857565652170083], [0.38413284053876834, -0.01249191600729566, -0.07093506024194143], [0.6803421760312122, 0.0369873768536216, 3.3362319691605935e-05]], "u": [[0.0, 0.0, 0.0], [-2.633139369992335e-05, -0.24677737109094725, 4.7315293107092095e-05], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [-5.030393489782022e-05, 9.049328537957243e-06, 7.902228271715279e-05], [6.162937561315923e-05, -0.0007638761299791347, -1.099081541248468e-05], [-1.155938149546623e-05, -0.0022571229533377033, 6.683145386376622e-05], [1.550165558873841e-05, -0.004367096993534069, -1.7932083770559253e-05], [7.809887642837426e-05, -0.007100560162239425, 1.582051259166252e-05], [2.3222265814429552e-05, -0.010314389969846391, -3.356482068501746e-05], [7.901405729503787e-06, -0.01408665533112387, -7.97201223394579e-05], [4.125146430656885e-05, -0.018386894819262308, -2.01821938440795e-05], [7.461122132504226e-05, -0.023250240876173122, 1.204035433866354e-05], [4.885375260583571e-05, -0.028481021299158953, -7.096314082864558e-05], [3.703266949290279e-05, -0.03422955799043909, -6.782977109304989e-06], [-1.819425091988389e-05, -0.040335437659520613, -4.6179946084100127e-05], [2.8072860212989024e-05, -0.046936110285242305, -4.741631556798776e-05], [1.7280511560079298e-05, -0.053881680015958604, -6.678716991193256e-05], [-8.25292128994263e-05, -0.061192448788013526, -4.164290824025536e-05], [-4.1986168690358646e-05, -0.06885880250151347, -4.494790550449589e-06], [5.041272030258602e-06, -0.07684979186750551, -7.116467333249748e-05], [-1.8566571573104474e-05, -0.0852081291575644, -5.623415624560483e-05], [-5.68713113913443e-05, -0.09384519514160057, -4.821453195236529e-05], [-1.483039674459776e-05, -0.10278466973495744, -4.835070862043223e-05], [-4.029867740192441e-05, -0.11198675798572491, -5.1736278993631895e-05], [5.331611487066558e-07, -0.12138729323876069, -3.072729434363191e-05], [-6.44183804410703e-06, -0.1310244771848066, -5.347397451945025e-05], [-2.935530672394706e-05, -0.14088270889846288, -4.208792598094509e-05], [-1.5855764405231536e-05, -0.15097299334621225, 2.8712086188579824e-06], [-1.8548822662258217e-05, -0.16116547980512239, -2.2483734757520175e-05], [-2.5708339955960665e-05, -0.17154377755473868, 2.1964269224083595e-06], [-2.130550058456218e-05, -0.18206562043799338, 2.931452090267933e-08], [-2.3965232266416795e-05, -0.1926828631364376, 1.9854350391471334e-05], [-1.839532453906726e-05, -0.20339903527340952, 1.0786176784674715e-05], [-3.267637337005113e-05, -0.21418102649028017, 2.141576679132839e-05], [-3.0802821168426627e-05, -0.22502850855028259, 2.9894824753070813e-05], [-2.7754455158979035e-05, -0.23589957914968498, 3.914208322982592e-05], [-0.010783621537360587, -0.2467902950813987, 8.242431384152643e-05], [-0.02058624878210642, -0.24681781379561646, 0.00010724080735910409], [-0.028559351347224825, -0.24685578913819675, 0.00011015441002211861], [-0.03400451762170898, -0.24689131497586123, 9.248175898567646e-05], [-0.03640876154738098, -0.2469026786285407, 6.433750577821346e-05], [-0.03559102125536327, -0.24690163238963272, 2.2879735050424606e-05], [-0.03160943697464253, -0.24687824511031115, 3.338183775723333e-07], [-0.0248196156021879, -0.24684686822563948, -9.937429178942309e-06], [-0.015819798804464668, -0.24681464460184988, 5.382809810639121e-07], [-0.005417076230137285, -0.24679637958500417, 2.8510440472928036e-05], [0.005472255365162744, -0.24679249949739276, 6.343129187911532e-05], [0.01586839475695165, -0.24681119976791074, 9.217724365479661e-05], [0.024853542565703036, -0.24684660564457858, 0.00010504361765245279], [0.03163138350624625, -0.24688441470199243, 9.224473636077417e-05], [0.035605276798138484, -0.24690053380952637, 6.764758829420287e-05], [0.0364140514934138, -0.24690669690795425, 2.781150753304887e-05], [0.03398553314373637, -0.24689071457880288, -1.26445811927278e-06], [0.02853911595462428, -0.2468600199651815, -1.919310683886601e-05], [0.020539898770066716, -0.24682066592878202, -1.4942462463278822e-05], [0.010736679233693626, -0.2467892131153499, 8.893309291591935e-06], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.006713017740708614, -0.0728923453876322, -0.00029953793837660824], [0.008111803602582126, -0.12621943236699995, -0.00019606336092140272], [0.005118388293240515, -0.03729738736669261, -0.00039280201047009315], [-0.008626426756310713, -0.15608882238789057, 0.00011733684742869762], [-0.007954981862366404, -0.11667220165924191, 0.00014277705454944658], [-0.007016408101377065, -0.08108980346709738, 0.000223457833807444], [-0.005771517385759376, -0.05040777913850411, 0.00022703058521068048], [-0.003980132465105089, -0.02080029755676484, 0.0003572944319631279], [0.008726239656160829, -0.1663725687785226, -0.0001262766613923865], [0.0035256865990856484, -0.016277990042379682, -0.0004180640454746612], [-0.008994239047830095, -0.18740237994572087, 9.505373553304028e-05], [-0.0025481391580095642, -0.008678906579854578, 0.00036442084601845805], [0.007390277119485845, -0.09621021533582186, -0.0002851538763251115], [-0.0005106770231262998, -0.23591543272755328, 3.621172158962998e-05], [-4.064279383483232e-05, -1.2110303215298297e-05, -2.6253778708105347e-05], [0.033957671796391926, -0.23732926035374474, 6.83329933479305e-05], [0.001551030692497032, -0.0009337992662434905, 0.00035009539871174236], [-0.001705933111478787, -0.00098837135133316, -0.0004901568551252105], [-0.03393940698007311, -0.2373350445628603, 1.11347106258128e-05], [0.009040346050548325, -0.19804530311392235, -5.2812755273056324e-05], [0.0022119138729164243, -0.005792253507755765, -0.0004273641808364742], [-0.0013219264647145448, -0.000762887010213503, 0.0004636601074828586], [-0.0315231298432853, -0.23623201069185007, 8.748310311945333e-05], [0.0315759492911371, -0.23731699372298193, -1.3054360783906523e-05], [0.0015523691892035878, -0.0009170895854028605, -0.00048059940236541747], [-0.005077786248654937, -0.03730774524623193, 0.00023873481435821963], [-0.006411841295299001, -0.0650224912270967, 0.00018061714808114183], [-0.007533686327016264, -0.0983240687086682, 0.00016212456846915422], [-0.00833642453596841, -0.13598583359947006, 0.00012155832882696451], [-0.0015997518285025556, -0.0033363910026421723, 0.000407710013182718], [-0.009143286992297451, -0.20879993423857088, 6.938222091158618e-05], [0.005791270095176283, -0.05041587918274107, -0.00032463740445490253], [0.004386479900648567, -0.025906147628640273, -0.0004171758110367153], [0.008465397862001576, -0.14594846793514016, -0.0001622543914731979], [-0.02040137779874387, -0.23612062102906017, -1.9705526620624228e-06], [-0.0009057104553473141, -0.0003104176470710723, -0.0005777193428443537], [0.000862099397343116, -0.00026748150660703353, 0.00043648613874095843], [0.020270972509574325, -0.23680753258709947, 8.06477618725349e-05], [0.009141743398030481, -0.21961008255896164, -1.7589981537063152e-05], [0.001247037483406518, -0.0015302086676126, -0.0004648187032255955], [-0.009122252194810021, -0.2295843537468374, 6.379126440998674e-05], [-0.000720134415773578, -0.0004206390315155836, 0.0003603247857930849], [0.01579257291009367, -0.23725939962723694, -2.487429459546122e-06], [0.0006642411266860878, -0.00013953759739037425, -0.00042620954298627854], [-0.006112066145191146, -0.05760071820652048, 0.0001972202287017826], [-0.006686949636572352, -0.07289127742468182, 0.0001835206275539625], [-0.0072685976919379695, -0.08952689099631794, 0.00016925461301284448], [-0.0077840521029654275, -0.10745529369528595, 0.0001631996420512327], [-0.008151429458822254, -0.1262411767946395, 0.00015551342074850906], [-0.005438415652061655, -0.04365163378315604, 0.00028926964516364206], [-0.004768657475338467, -0.03139006641903518, 0.00029682412749465893], [-0.008782326015582877, -0.16637333964649717, 0.0001036133769941596], [-0.016860780645542573, -0.1612807830487855, 0.00019648627029468814], [-0.01558310922135888, -0.12154422384356287, 0.00029928486607059667], [-0.013817464460438597, -0.08545265391982108, 0.0003689449262146996], [-0.01158931105264696, -0.05417473944406385, 0.0004377352535632523], [-0.009605704942400754, -0.03454236594756903, 0.0005723396566983224], [-0.01274789856117081, -0.0691003784523452, 0.0003948246163135479], [-0.014780328000644287, -0.10301923792608925, 0.0003239699884435286], [-0.008846014176905994, -0.02885125463476723, 0.0005987086324882572], [-0.016596941903644573, -0.1510573800674931, 0.00018852691822079947], [-0.023724708951372117, -0.15628581637343888, 0.00023813143199479344], [-0.024100916307264287, -0.16657071256264225, 0.0002218665696260938], [-0.02941248925311923, -0.16152412638734706, 0.0001975381619371956], [-0.029824345304823335, -0.17190963874243403, 0.00019876143901719997], [-0.03320970366992145, -0.16677665379899279, 0.00011730790956461542], [-0.03274088298833987, -0.15652118886829863, 0.00014594779171264814], [-0.03442519050539043, -0.16165333513415933, 1.9549123748160877e-05], [-0.03385596275023717, -0.15146012793470034, -7.248578089480573e-07], [-0.03331628504072316, -0.15650778208743005, -0.00011173288321894735], [-0.03276694281853668, -0.14641977407141554, -0.00016025658048486236], [-0.0338616483275706, -0.16679537715014328, -0.00011135284255996929], [-0.030565040917321883, -0.16155622358536914, -0.00021385502560642623], [-0.030965007984210407, -0.1719288650144382, -0.00018572001245859742], [-0.025735118435403673, -0.16662559282735098, -0.00023811077238875407], [-0.026014829390183833, -0.17706064535646387, -0.00020283645384369135], [-0.01909121723583064, -0.17172261463651603, -0.00020554152650237095], [-0.01882132399488429, -0.16128863126762374, -0.00022218822476294988], [-0.019288690326597097, -0.1822459198950841, -0.0001624066852739337], [-0.011085415559938782, -0.17689765020774212, -0.00011869910309684948], [-0.03133010729396504, -0.1824299207233773, -0.00013912323351986846], [-0.011192076007333766, -0.18749557905269354, -9.11458419377214e-05], [-0.0022732433408785254, -0.18215905081831482, -2.834624248954143e-05], [-0.0022416050121265504, -0.19276703501833173, -1.1644543757119608e-05], [0.006810154214044918, -0.18748697239899798, 6.22658542304253e-05], [0.006726605657170403, -0.17685333033949643, 7.017019379206535e-05], [0.015373086801661651, -0.1822039141915052, 0.00015945593913907014], [0.015189930922087383, -0.17165219203784463, 0.00016117313473919674], [0.02280349835870982, -0.17698049723491735, 0.00018468042936185307], [0.022509510166864338, -0.16651630657729322, 0.0002184427510394173], [0.02866896571525926, -0.17182712116895796, 0.0001921415490536922], [0.028267178605123813, -0.16144796125501878, 0.00022333579609677413], [0.029004449617756646, -0.18237407914360465, 0.00018263323485270445], [0.032955297007961404, -0.17714960016733075, 0.00013779534662869224], [0.03331640151207, -0.18773030353815853, 0.00010013414283011694], [0.022157429401712714, -0.15616129879961976, 0.0002471736473047393], [0.027783026390178704, -0.15120816454727531, 0.0002466571750066529], [0.03516204965960103, -0.18245617483325352, 3.1011502376988817e-05], [0.035541499705200284, -0.1930754930947805, 1.5614950977934973e-05], [0.03207335364473138, -0.15639555308716885, 0.0001480903899378602], [0.03155576667944791, -0.14628534317769834, 0.00015211583593161525], [0.02930883751166597, -0.19299583592660466, 0.00014525010172578446], [0.033703871927059384, -0.1513677310892187, 3.17116201697607e-05], [0.03312945489286033, -0.1413648179703527, 1.3281287234273217e-06], [0.030900252464543858, -0.13633073859533004, 0.00017826600384638995], [0.03243207492716537, -0.13149712821698917, 2.484900965946143e-05], [0.030242444794868914, -0.12658115219267452, 0.00020388551020689735], [0.0316636868758273, -0.121883141698991, 4.786629339005675e-05], [0.0294851469644075, -0.11711595635470572, 0.00020137012405021607], [0.026137449035492376, -0.12165935539912433, 0.0003087293870713468], [0.0253819491668508, -0.11226256712201621, 0.00031957810329082966], [0.020422939473975825, -0.11669383926317892, 0.0003165797695282759], [0.019841588182053387, -0.10745670959443639, 0.00040028486635915395], [0.013518460493413003, -0.11185658547352641, 0.0002722190039290596], [0.01311194331651658, -0.10268956157058887, 0.00027943649089599815], [0.005911130284324118, -0.10709836106381422, 0.00010140428887372303], [0.00573610133110824, -0.0980421736191482, 0.00013152430623869193], [-0.01300411125379231, -0.031987797110274004, 0.0006801374032420775], [0.012669395306698942, -0.09374534558396246, 0.00031418354756175624], [0.005528561287197033, -0.08925648804520082, 0.00011690637984359551], [-0.001873295104372481, -0.10251647355324198, -9.818103824133176e-05], [0.012234673124334464, -0.08508390174246817, 0.00034207321072577583], [0.005318847514524474, -0.08077345389235072, 0.00013429908874971024], [0.011799314274671105, -0.07678181153181603, 0.00038378354263047984], [0.005074533738103112, -0.07257173304045199, 0.00016570785273896399], [0.01134020389759602, -0.06872954036701903, 0.0004067519433740378], [0.0048805684772016324, -0.06469546830023995, 0.0001427209465334233], [0.010812574290524065, -0.061056286502010886, 0.00038462494547214575], [0.004654748761582701, -0.057183373575034606, 0.0001680398377888638], [0.010248859904503048, -0.05377179904591463, 0.0004746007690465771], [0.004337568912632127, -0.050043273216315555, 0.00018840413286544625], [0.00961552177235503, -0.046753176356061604, 0.0003909241466317423], [0.004125230970418142, -0.04330891495475948, 0.0002057341139675844], [0.009060677103232807, -0.04031786710355721, 0.000490675289555446], [0.0038558873499743187, -0.036953314436506506, 0.00018771329049668188], [0.008421531756323417, -0.03412033635136229, 0.00048620983024952303], [0.003565031422660617, -0.03099595887982623, 0.00021697892768940085], [0.007758857930011189, -0.028441764972718827, 0.0005152541906717428], [0.003295721566418455, -0.025556010311894223, 0.00023542545661579776], [0.007113823680503801, -0.023203207426618484, 0.0006215578957657287], [0.0029548220703265477, -0.020458362489045378, 0.00023505995277010917], [0.006311266041487351, -0.018463925171918836, 0.0005503723942959336], [0.0026220356907847896, -0.01596004237005574, 0.000267108471201326], [-0.0009676575667757531, -0.01810013249496596, -9.926092564983442e-05], [-0.0014314691217171178, -0.046572014026597476, -0.00011404906283414466], [0.005615573873665737, -0.014085116400198192, 0.0006445579049576656], [-0.0008531475015284699, -0.013850394137194043, -0.00013999050485631918], [-0.004415454243225441, -0.016096829787457363, -0.0005101566085976106], [0.02873231350377031, -0.1077689286965653, 0.00021339283957665418], [-0.001710112868650505, -0.07659087799730918, -0.0001457514328669461], [-0.0038512786158882294, -0.012011799227880393, -0.0005070027366355862], [-0.007170258334795003, -0.01430814512642164, -0.000801120276999515], [-0.008075837232238856, -0.01864067636241756, -0.0008182794467424151], [-0.010338176829265426, -0.0168275586811777, -0.0008650456505611037], [-0.008913011203400982, -0.012802450487028242, -0.000819017081956836], [0.01659254167264018, -0.06527211677577022, 0.0005136187001448645], [0.014018543554916373, -0.043810787957969756, 0.0006694869177196638], [0.010098275292724496, -0.02114278233163865, 0.0007020785063631991], [-0.0019429619404338846, -0.11173011454171429, -9.437889043693481e-05], [-0.009602521498725916, -0.1072021573693562, -0.00032845305983533876], [-0.011664907965197844, -0.015137122093085428, -0.0006573100263871183], [-0.010065515071178394, -0.011425368787104689, -0.0008253700365475831], [-0.011545705073044395, -0.021326456850971995, -0.0008088163403220604], [-0.009816650089475019, -0.11647171227200123, -0.00027091269212241965], [-0.01685863887636637, -0.11193328555507674, -0.0004018815001400333], [-0.016420426408601738, -0.10279435678907924, -0.00046544847966553866], [-0.022604200959426432, -0.10752328932829275, -0.000467671118303142], [-0.022009039248913342, -0.09854413796425106, -0.0005028833771640156], [-0.011936301586822552, -0.013473836792155493, -0.00045785164362499895], [-0.010203930305286942, -0.009992042557691334, -0.0003802051522196228], [-0.02668407815371321, -0.10317503271242848, -0.0004390502306397767], [-0.025843820950531088, -0.09437701786243541, -0.00042843394802191307], [0.01799730446222193, -0.08114974600801718, 0.0004557451464758103], [0.01383066512881119, -0.12130765399155642, 0.00025627958138684187], [-0.0015822621183484932, -0.060858068877618354, -0.00017475441798162316], [0.01210413977128585, -0.03155362234419138, 0.0006088092086892151], [-0.0012585184273650474, -0.033893367139948546, -0.00016114934674102836], [-0.008448688008969118, -0.008179879960758292, -0.0007379915011494007], [-0.013521695649106748, -0.01748414904045586, -0.0004009875604158743], [-0.013223998471438965, -0.015542564944442712, -9.794712526904925e-06], [-0.00831114384934437, -0.0070897620304594235, -0.00038533971285753895], [-0.009389896099794423, -0.008722796457890043, 2.489014683815423e-05], [-0.028890826169775022, -0.09887661058925194, -0.00027583414433206364], [-0.0280291074410871, -0.09020611630750323, -0.0002618304915911264], [-0.029795919896874933, -0.1078835043153782, -0.00023411959973194312], [-0.0332500546431064, -0.1414317801965824, -2.2129902547483478e-05], [0.006857253809945888, -0.19820170185512148, 5.8416303045939225e-05], [-0.011235303538962908, -0.19816938830789818, -7.99283117901117e-05], [0.03247617040028132, -0.13635716174929607, -0.00016233750628432786], [0.035047968815715216, -0.18774238488400774, -6.162106774241296e-05], [0.0353189355619097, -0.19841884130884865, -3.3869360019373644e-05], [-0.024978898182064724, -0.08573212702303663, -0.0005009383771792488], [-0.026994671565593015, -0.08168462993172226, -0.0002947489758101352], [-0.024083817793317534, -0.07737472129092719, -0.00048437845833172803], [-0.025898389404367585, -0.07359674579618045, -0.0002918596834120093], [-0.02318584312378161, -0.06950218533252518, -0.00048654670655366006], [-0.02483209781489444, -0.06579060416925898, -0.00028853201745877605], [-0.021980659880195683, -0.061812540917719025, -0.0005478990803747544], [-0.0236353062921627, -0.05828505590884051, -0.0003714649758405687], [-0.02099615269054689, -0.05452961979923278, -0.0005812050650102987], [-0.022370317715942258, -0.05124479898549514, -0.00036279172395229894], [-0.01973424021965661, -0.0476224719997886, -0.0005783600829325141], [-0.021066573471018882, -0.04450252732439379, -0.0003356890340453413], [-0.018519146386189362, -0.04110308630682673, -0.0005854942718597088], [-0.0196788442980797, -0.038318488962947046, -0.00036492487509423403], [-0.01191287481321233, -0.02654112357104765, 0.0007015467095381647], [-0.017297301005463193, -0.12140428314835998, -0.0004215509148422773], [-0.01006967727961503, -0.12604876047479216, -0.0002494275981869246], [-0.022271171818500964, -0.04794718024753331, -3.90155892059637e-05], [-0.029212500353191558, -0.09458217177777381, -4.5370903239387704e-05], [-0.02714038119118515, -0.07768754465211383, -1.1791053067797223e-05], [-0.0249070621358829, -0.06208680366888039, -3.8952237236289996e-05], [-0.007587539241656494, -0.005889860784523584, 5.24362776710693e-05], [-0.0007861752729199658, -0.010074796216744583, -0.00015134750786305502], [-0.006722897640973382, -0.005553009023165863, -0.0007528090273694149], [-0.008103063853672383, -0.007016902147178993, 0.00045800757616901736], [0.03580650454770929, -0.20381172273841314, 3.9311595255180837e-05], [0.03466595248965533, -0.17717678784835902, -6.455495938058652e-05], [0.03224936093434288, -0.18237150893083523, -0.0001497188875048548], [0.031875096304813645, -0.1718742612970947, -0.000164519961555203], [-0.013991439543560446, -0.03783206166167505, 0.0006293608503109773], [-0.017700305550996668, -0.13104858768143107, -0.00036589928526301345], [-0.0102778535277483, -0.13584247514919348, -0.0002204341391800263], [-0.03215825129086777, -0.13642887012202598, -0.00020036161594614603], [-0.03252995065684185, -0.1315909771430328, -2.7609773179719026e-05], [-0.023303585431733925, -0.14616096800125564, 0.0002933603028525977], [-0.006347173579762143, -0.006400628655118846, -0.0009795799974996046], [-0.015370221240850735, -0.029484903455393025, 0.0005666671477126502], [0.03559889498716619, -0.20917681356658557, -1.88540966507487e-05], [0.03282216957970443, -0.20372627930810364, -7.585460450463134e-05], [0.006637262009768894, -0.16634026102835303, 6.969390697404701e-05], [-0.03364696151830444, -0.17719980038630703, 9.566051863592013e-05], [-0.030159109662114526, -0.1824184589002505, 0.0001590406050007427], [-0.03402296928769749, -0.18779332904989177, 7.737241304906143e-05], [-0.030494026618884368, -0.1930446112210793, 0.0001429537864844688], [-0.03433774724372647, -0.1984448778769385, 8.512697711899655e-05], [-0.030732855859423976, -0.20377881813296614, 0.00013492336671221998], [-0.0345666177713496, -0.20915395289510522, 9.125196086425311e-05], [-0.03593600882305706, -0.20384499481845605, 2.8302834660889108e-05], [-0.01718485533532949, -0.03505903598545463, -0.0005793210494252661], [-0.018246946189137525, -0.032354973507452894, -0.000365059160807893], [0.021824211577707933, -0.14600376391868872, 0.0002554698095957494], [-0.006290273915952068, -0.00467856378321838, 0.00046561203693973845], [-0.004850526650188729, -0.003988078728969769, -0.0008337108799769938], [-0.0041786038212326005, -0.004664445018568504, -0.0008069918878949959], [-0.01420010791899761, -0.024328713750847816, 0.0006175614184935912], [-0.008942242056415814, -0.023332201490017992, -0.0007741761858240019], [-0.015914242112692028, -0.09384772306531203, -0.0004728216538572303], [-0.018805268767604542, -0.0652782696750417, -0.0006285307368359485], [-0.017027581482743564, -0.050743832618765486, -0.0006833439450788232], [-0.015031963440389005, -0.037667663275164597, -0.0007382508299107224], [-0.006370704495859705, -0.00540742760322126, 0.0007698756743233262], [-0.007953838729744147, -0.008053973568388361, 0.0007629268002569084], [-0.03615341586637975, -0.2144957550661752, 4.265794209262429e-05], [-0.03518578307800071, -0.2092201250930828, -2.179099292569328e-05], [-0.005894554068769889, -0.00395600047007823, 2.080889609152687e-05], [0.027389694970593417, -0.17701360798343205, -0.00019988733318958442], [0.027039856981245444, -0.1665547249042766, -0.0002425581592310525], [0.036024631528045636, -0.21460787357358072, 3.9855695243381885e-05], [-0.03089819995423442, -0.21458440174136262, 0.00010305201070211339], [0.03300719598822534, -0.21455613040441945, -6.025068863931151e-05], [0.02810449809673796, -0.20907668612632974, -9.044633290220765e-05], [-0.004825085410152574, -0.003335342694670826, 0.0007677932043027154], [-0.0031126243461749924, -0.00263952865327669, -0.0007816192949361657], [-0.0020849359608640485, -0.0032237660028830066, -0.0005515036190353266], [0.027890472632317198, -0.19829183666642974, -0.00012672023034236238], [-0.03147190033083552, -0.12671127745336272, -0.00019887102936118895], [-0.03179670654843839, -0.12200292930565423, -4.358067747396863e-05], [-0.030862220201149246, -0.12670143674639672, 0.00014145445467578878], [-0.03003565577034878, -0.11725657559160772, 0.00014791014986531486], [-0.018031401944475663, -0.14094416855091305, -0.00030239512815110177], [-0.01049163241044553, -0.14582148031139391, -0.00019573555076418523], [-0.002028696502761251, -0.14073825467528775, -6.233098267447121e-05], [-0.020428111496600006, -0.08129095395044858, -0.0005356178846427904], [0.03390423811230377, -0.20918382191873372, 8.557283489282073e-05], [-0.004934120470388093, -0.0034730727786870742, -0.0006683342368158089], [0.014733555692105622, -0.1509530533954686, 0.0002023114409949664], [-0.014783832254311988, -0.01967852857906936, -1.608585563125706e-05], [-0.013388961411893767, -0.01738909940502079, 0.000315173061502974], [-0.01530608229385343, -0.02196693711117216, -0.00037866799121141087], [-0.01955473997475049, -0.03542120720924818, -7.859852090097675e-05], [-0.018016705008084773, -0.02967848510382986, 1.081881787687724e-05], [-0.024871941711972607, -0.19829861300768073, 0.00015139381435106883], [0.03139234389511371, -0.16151507301054085, -0.00020348643065363882], [0.026691352186154527, -0.15621624479723767, -0.0002738867094310437], [-0.005842480644532061, -0.006267238169679, 0.0008495755982013155], [-0.010968781879041923, -0.021510883819299498, 0.0006965376377333217], [0.014472399432917948, -0.14085445858099702, 0.00020687643895700656], [-0.0070646063225456735, -0.009177943401247352, 0.0008241511332357023], [0.02827335312514669, -0.21933274775226685, -6.14785779165408e-05], [-0.001468034982132895, -0.001449333160817326, -0.0004905856163061293], [-0.00035436742247516316, -0.0020492479724044245, -0.00010144628262128941], [-0.0004932583191099017, -0.004175941888006078, -0.00012035072116852224], [0.0012912705592368575, -0.003123616697788917, 0.0003806253332214617], [0.0016282623757052262, -0.005428204057914568, 0.0002799950426119174], [0.0032023016809643793, -0.004531300228715745, 0.0006686541765968642], [0.004150696396183527, -0.007154962099783514, 0.0006520386558522091], [0.005462413165294947, -0.0062807280647129435, 0.0008523879362298183], [0.004265683767289894, -0.003727080173283126, 0.0008442122368388636], [0.006306191653465316, -0.005358840064775741, 0.0008378092616057227], [0.007638636001858897, -0.00797701097331096, 0.0007645177054308287], [0.008053102412001908, -0.0069884981964517595, 0.0005617439409886866], [0.009755851882269649, -0.009921712673057985, 0.00048810023821041737], [0.00943267366263749, -0.008524081430263031, 0.00018206645493187994], [0.011192379772762018, -0.011725190369469845, 9.762896801167674e-05], [0.010282040774967622, -0.0099274796018, -0.0002674550446871375], [0.011986650509979156, -0.013604839039967315, -0.00029739515595945905], [0.008341542828613673, -0.007251918719182978, -0.0002488541324394855], [0.010308199816528781, -0.011379685361633324, -0.0006194944992191861], [0.011974474332789165, -0.015222452149369743, -0.0005870850594323803], [0.013722649718689252, -0.01745579052061752, -0.00027093584115702753], [0.013471409111660716, -0.019438058115827373, -0.0006671723257418779], [0.015475968152750569, -0.022013694278902464, -0.0002904071925510084], [0.014900023823566179, -0.024099243610811436, -0.0005644656640399156], [0.016966083853784956, -0.02691515661081272, -0.00025840913968861996], [0.016383742914996776, -0.029354423966686985, -0.0005699879712728692], [0.01842218432031431, -0.03235067936065779, -0.0002431086964758377], [0.017782612581059683, -0.035091268305508835, -0.0006211923124898458], [0.01983695467366543, -0.038254999701295325, -0.00033792856881697094], [0.01907471374997076, -0.041062915795212325, -0.0005469652445937883], [0.021312448893867457, -0.04444258326530417, -0.00029259821900946907], [0.02029183094556376, -0.047658338596325296, -0.0005531330300060379], [0.02258506490231781, -0.051166545109615, -0.00024538004721036405], [0.021532884104535622, -0.05450966850947545, -0.000511929354690493], [0.02393157162610571, -0.05826632035158939, -0.0002344289820540484], [0.022625114461852253, -0.061798913329505045, -0.0004900117509233163], [0.025136879509502018, -0.06571974244407607, -0.00023281432497779595], [0.02375445192033592, -0.06945689071327002, -0.00047139220486367816], [0.026278882470067263, -0.07349602174305483, -0.0002360795998391846], [0.02474041716689678, -0.07737080133196149, -0.00041045011600640525], [0.02731398820032303, -0.08172226434610957, -0.00020931380560578361], [0.02572326108089904, -0.08569424884772232, -0.0004382691378398102], [0.023645001515059993, -0.054689010352346655, 0.00011198592593272252], [0.006206807344976527, -0.004721179851585782, 0.0006083744606640152], [0.028444401950465277, -0.09010103376040303, -0.00019691583217943325], [0.02663150153687801, -0.09428435443865166, -0.0003864755251537779], [0.011513278100255665, -0.013316109814502345, 0.0005996679269774797], [0.027112851120761054, -0.07758499861808359, 3.860089737150376e-05], [0.02085795531056352, -0.0412874590456437, 7.054527716018442e-05], [0.017968582051289175, -0.02963114069319586, 9.380063366238884e-05], [0.009382454373150294, -0.012918959262917728, -0.0007930320859732054], [0.019811978527489595, -0.06529875258676368, -0.000626904104995171], [0.022259783188417624, -0.08973309839263609, -0.0004784378053818688], [0.022886777210232648, -0.09847645705247844, -0.0005042700372577358], [0.02744048642258066, -0.10321802467290427, -0.00033511741918856945], [0.023670410046980155, -0.10755889767455971, -0.0004094121103766372], [0.008192686616805318, -0.009372731595684669, -0.0008695500064076905], [0.016835916684210788, -0.04403080263815217, -0.000681952435041284], [0.014551170286537397, -0.03180597489206927, -0.0007284274680268789], [0.012087568520325082, -0.02134617738731747, -0.0007576886679850718], [0.014809708697609327, -0.019636286845626027, 0.000171322359704427], [0.02813296372955965, -0.1123420739296971, -0.0003184498972259672], [0.02435586502862893, -0.11683674528603566, -0.000405213756481664], [0.006660393292724199, -0.010657708236977993, -0.0008046865343973169], [0.018319051572902707, -0.1129058398500053, -0.0003987937467655623], [0.0009416787119133678, -0.0014625009527446595, 0.00030102966811082715], [0.028976141774268237, -0.1217540138370249, -0.0003038256465557113], [0.02505107977250506, -0.12632901818636857, -0.0003917709925402652], [-0.009767988738769492, -0.01132868041364214, 0.0007035693296978418], [-0.00842946408004218, -0.012789656976669282, 0.0007967800393627059], [0.03091477127187013, -0.1513046182689559, -0.00023975199543943286], [0.026155843110313312, -0.14613143773677198, -0.0003416985733134312], [0.034287201611635336, -0.1615896264040392, 3.0011590000288366e-05], [0.021372191862500552, -0.13606537842298203, 0.00031308796444230074], [-0.002069799301359502, -0.15082998249058555, -6.79203191121838e-05], [-0.013837888849477563, -0.03186237699388326, -0.0007470056157338849], [-0.0033130444402199796, -0.008574283103185882, -0.0005713977852212663], [-0.03494729256688266, -0.19844644486317303, -4.050346122136566e-05], [-0.03188301753381902, -0.20380044247172283, -7.357595023755964e-05], [-0.03206648478444558, -0.21460806961872464, -5.4536604739497114e-05], [-0.026684445614134144, -0.20913080730636163, -7.954559569799683e-05], [-0.026730008078012468, -0.21935039768669387, -5.406612276193334e-05], [-0.019622969263849314, -0.2145116265071866, -5.799674358373697e-05], [-0.026502440377238923, -0.19834535245468915, -0.0001194803258738069], [0.030143965792838675, -0.10786671595009108, -0.0001438910087026782], [-0.02374709869510105, -0.12638739062935309, -0.0004421917494868555], [-0.029508847425247727, -0.14131410334616198, -0.0002884468723813044], [-0.027189059934561534, -0.121787053357052, 0.00026881003429445033], [-0.02650072894582433, -0.11240269841930718, 0.0003014546941524341], [-0.029294852492861873, -0.10791749247355965, 0.00018293932381660446], [-0.025764334976809668, -0.1032338259447222, 0.0003291433800771746], [-0.027829444199503464, -0.1314406723400783, 0.000287929074756924], [-0.03531793653726993, -0.18254090446948426, 1.2604133353586327e-05], [-0.010641329416623518, -0.0343330589645362, -0.0006688950212168358], [-0.011339805579596723, -0.04049808161275225, -0.000651231665652852], [0.03409668934435286, -0.21926892078746454, 7.354174843910884e-05], [0.02969824348599966, -0.21456342342630977, 0.00011171586594536996], [0.03620836699104397, -0.22491639849978665, 3.602580589803211e-05], [0.029842867379247108, -0.2254760128474775, 8.899924604710406e-05], [0.023551871332489593, -0.21944434806016583, 0.00011371066799696148], [0.0234223593439824, -0.20888546201059835, 0.00012279393770048844], [0.015642021964744443, -0.21448295878221732, 9.108708501197171e-05], [0.007710177913809656, -0.014422432066229205, -0.000813643689482349], [0.020528747522390766, -0.16125064388695598, -0.0002611864561604638], [0.02143692068316733, -0.20354973538886337, -0.00010564849861227609], [0.02133694173056115, -0.19284393474296535, -0.00013708073028422698], [0.017260546816345514, -0.0938827094637397, -0.0004957156138915423], [0.016648879512882662, -0.08519821764610792, -0.00048080951450462647], [0.005623342624088254, -0.007399600195311941, -0.0008784156871204696], [0.006551990774733196, -0.0065010184435751375, -0.0009032652581625834], [0.004495021294338258, -0.004795083766980373, -0.0008749105345225429], [0.0051048969400209, -0.004112000873935173, -0.0009064754460317706], [0.0033930248380680005, -0.0027303220283013624, -0.0009190447316239207], [0.003782077314829913, -0.0025101959762836375, -0.0008585744100220661], [0.00516923226960613, -0.0035942844906201843, -0.000675660674803073], [0.015699758328096086, -0.22542219434732327, 7.774557726578304e-05], [0.006724793538615218, -0.21935182636261216, 5.176982642867831e-05], [0.0044860614549983675, -0.01206153886538078, -0.0005801644489579303], [0.002227017898070675, -0.001222297093788259, -0.000761980256995975], [0.010309835752766653, -0.08745806225194047, -0.0003610324777814395], [0.033156626135420496, -0.2254270562204858, -2.109668283384553e-05], [-0.032214887455166485, -0.22551518862122413, -1.4759911824632698e-05], [0.015362671445883524, -0.10264168145553693, -0.00043289323243236795], [0.010589222864184792, -0.11130796810584813, -0.000296902840809567], [-0.019713337834446582, -0.22544453665813327, -2.1620508279377818e-05], [-0.011239256098266804, -0.21993577758825258, -2.266358140689869e-05], [-0.011113361524098921, -0.22973791851974293, -1.7809524324999049e-06], [0.003370793176659846, -0.0020049530386491874, -0.0006293503711570309], [0.004772898426058626, -0.0030327178208784554, -0.00029496808800721604], [0.002882272088783399, -0.0017887333533051235, -0.00022051383536795353], [0.003728944829314474, -0.0022935639948478493, 0.0001537615933896356], [0.010183124236430911, -0.0808004051632812, -0.0003792764889250896], [0.016009822826492277, -0.07693815601763297, -0.0005950706130321574], [0.013102605358608712, -0.06845992711689759, -0.0005133078583116712], [0.029676776618648804, -0.13135474705062594, -0.00028435819665352736], [-0.028441201909074447, -0.09891394101771299, 0.00018791650103352713], [-0.02498806676123272, -0.09445258200071469, 0.0003509847836751739], [-0.03014314586746431, -0.10342840590676358, -2.696483219539062e-05], [-0.015052416453267305, -0.02194503995470433, 0.00032228544346467574], [0.025509328762123924, -0.13609466780892496, -0.0003141467982041153], [0.01918514013402424, -0.1310310756787334, -0.00035173415240724083], [0.01961879871427187, -0.1409026306359484, -0.00031868873464037086], [0.012019650174228713, -0.1357862568780783, -0.00024325177490559286], [0.017212845507197108, -0.15096923252658384, -0.00026484815625915046], [0.01544650786085553, -0.12008305765377951, -0.00034237942829565537], [-0.0019591662875589597, -0.001164075533963064, -0.0007273706045576169], [-0.0009426090167460009, -0.0005144177347359533, -0.0004838166298280736], [-0.002197587874182798, -0.001137352749532231, -0.0007612782855486534], [0.0303354727664116, -0.14127692665941083, -0.0002812934695984066], [-0.012645800521856716, -0.01941937810670613, 0.0005991926788431511], [-0.009576781974975997, -0.016777205903942407, 0.0007722624730305246], [-0.016336494736075787, -0.024448690641667475, 3.117312283849656e-05], [-0.016721860387336095, -0.02700496562182735, -0.00032718259250298453], [-0.0306843935864048, -0.11721289048292217, -0.0002181120902022586], [-0.028277708398896127, -0.12180402479284821, -0.0003895684285961181], [-0.011056369180137311, -0.015056833094631602, 0.0007377854890968033], [-0.006396092423690314, -0.014443950335943204, 0.000650195118192607], [-0.01165650794153851, -0.01339963238507307, 0.0004985502120202312], [-0.02746434648270712, -0.11232585980569086, -0.0003663673740444668], [0.031741123376923516, -0.12666212544398428, -0.00015784497306380531], [-0.009894051092234667, -0.028629451142754028, -0.0007050077709139824], [-0.01283143711326745, -0.026291189046506153, -0.0008012612971172283], [-0.005456855841880999, -0.025636980253237514, -0.0005008158875741339], [0.00652587699489731, -0.06495240586498278, -0.0003478423578589608], [0.011889705944406845, -0.06125326882067732, -0.0005024391070477949], [0.02765963773805888, -0.18761013144902364, -0.00016416587979893523], [0.021074342513638194, -0.1821553725581844, -0.00018365030484388236], [0.013350032901427122, -0.186751450865663, -0.0001267094668197641], [0.013088413883336762, -0.1775008461440187, -0.0001395223236621178], [-0.004600931432722362, -0.007340595959239414, 0.0007300358210605651], [0.021582464264433956, -0.21446100700974186, -7.24429346293343e-05], [0.021993529273386055, -0.22307727992317336, -4.090293013728402e-05], [0.013347407126609286, -0.20892383743167797, -6.985645045149925e-05], [-0.010669487074796447, -0.1559922249529849, -0.00018123914948602312], [-0.004559196320786653, -0.0038733566343402167, 0.0008895053037230145], [-0.0032302447960967373, -0.002145119605769289, 0.0009116825955411515], [-0.0032675564994397678, -0.0019406773749910092, 0.0006727183746338634], [-0.001968968024225564, -0.0009707373598165507, 0.0007374273399626254], [-0.002726388062663404, -0.001659734496946471, 0.0003570726213975757], [-0.002761369903715401, -0.002537298487049711, 0.0007526497115039106], [0.010868401767810168, -0.016864731848113174, -0.0007962780491836354], [0.008770505306998331, -0.01865137452506049, -0.0007073699420235555], [0.009728945272217937, -0.023370230404091932, -0.0007287427424718401], [0.006114293739185417, -0.020857769731228066, -0.0006046864707171052], [0.009476460495696162, -0.029050837041378348, -0.0007032201639468186], [0.03475276017832962, -0.17195856244508853, 6.298227233442463e-05], [0.003904987284731632, -0.008807646795526817, -0.0006103332640101089], [-0.01110223029111832, -0.011763433980970343, 5.001928977191431e-06], [0.009460693514830238, -0.1568757630882186, -0.00014865875120432457], [0.032553130002473125, -0.19302105034220743, -0.0001106462096127878], [0.013403655854809862, -0.026418214206283895, -0.0007693775610243622], [0.01164133565299606, -0.03486518956659374, -0.0007285355387317992], [0.007662996189076008, -0.005893386048349702, 0.00013928779663621265], [-0.024663210661336622, -0.1876114511353534, 0.0001824731058500885], [0.03098290719899814, -0.11711833752084144, -0.00011034329685549637], [-0.02439195921256795, -0.1770407381538713, 0.00019106035557591306], [0.032568099232001164, -0.16672862510089953, 0.00015394279638378532], [-0.002209098662586652, -0.1715642096463969, -3.8126406221176726e-05], [-0.010883695363743702, -0.16639682684285254, -0.00014649153317769118], [-0.018398043212374822, -0.1510214766678636, -0.00027822628040028916], [-0.02475349906177862, -0.14608901965103843, -0.0003010503981381855], [-0.025318342819344787, -0.15627904251623823, -0.00026365021002955173], [0.009300452995326247, -0.011195345028643175, 0.0008430732480126166], [0.010640976474075334, -0.014969869370063905, 0.0007270746423160346], [0.007821953792680903, -0.012565429972719377, 0.0007917869545288715], [-0.03156345676065297, -0.13641842449142105, 0.0001405707858219201], [-0.03216550037346018, -0.14637779265139264, 0.00011858051355296147], [-0.02895050284330203, -0.15132375302591547, 0.00022425695567282846], [-0.028399692381612295, -0.14129869284411026, 0.00023193663746688066], [-0.022822677778070406, -0.1362594066328553, 0.0002777093085696992], [-0.01310088704045221, -0.019355036328738976, -0.0007232505477455232], [0.008606939400002778, -0.008347678279407368, -0.000678008002663964], [0.01552900652643631, -0.19286556897734608, 0.00011825076352920484], [-0.010968154125707232, -0.047248822786989796, 0.0005422010888194049], [-0.01600096785779111, -0.050952463782369256, 0.0005331540678227611], [-0.016863508730932102, -0.05801839405347319, 0.000489687319191606], [-0.02020313741897462, -0.05469548782832337, 0.0004363931730940461], [-0.019133095201183458, -0.047885221209816906, 0.0005286183763562287], [-0.02122671351125772, -0.061843430730265984, 0.0004796227438883349], [-0.022071994692584196, -0.05144363065806083, 0.00030521791540330035], [0.014951891676228969, -0.1612167061345085, 0.0001824183632479639], [0.027255358322982117, -0.14117428744401708, 0.0002850140605130948], [0.026717546947245357, -0.13129511534163008, 0.00027937886960297263], [-0.02825091681871383, -0.08594966947629604, -3.8227397791608076e-05], [-0.02655268692337448, -0.08173829652152459, 0.0002221250450896004], [-0.025546963572380146, -0.07356316152171766, 0.00022399584524946948], [-0.023281634632887845, -0.07749518688374293, 0.00037245293803872884], [-0.024214728879907985, -0.0856541108283031, 0.00036615508496717843], [-0.019354596996110498, -0.08122413700469529, 0.0004620678114249968], [-0.018628260192100055, -0.07326391479869965, 0.0004512235914927668], [-0.02611110623563179, -0.06969545649617086, -1.8077238844618847e-05], [-0.0244826824986285, -0.06583851486760492, 0.0002446652888783718], [-0.0232120408537084, -0.11683429604942458, -0.0004366963736741205], [-0.02890937365543987, -0.1313986903118584, -0.00032615202920578874], [0.0193011060488905, -0.09842031003887862, 0.00038857998097509825], [0.03306354334392329, -0.14634252525792507, -0.00012218364573371587], [0.03366164844741212, -0.1564381656421881, -0.00011124685937426756], [0.03418690455929184, -0.16674774050414326, -7.553486403910769e-05], [0.030889130986780755, -0.11252804502056872, 6.525447180354866e-05], [0.03008228995567942, -0.1033525407531788, 3.731520262310232e-05], [0.02788509670443195, -0.0987694983339849, 0.0003043213497534419], [0.02900172502993183, -0.09449775110740007, 1.5202979677395202e-05], [0.02695364347965324, -0.09004562960048175, 0.00026301365400838807], [0.028076737438164814, -0.08583407000052212, 9.04293320478721e-05], [0.0260053123079983, -0.08154122657882769, 0.00028870567916344], [0.025071949916040497, -0.07343894208756821, 0.00028646499440977165], [0.022432672006174013, -0.0772039200952796, 0.0004168077188870365], [0.02148756540803307, -0.06914654347623314, 0.0005012745097248138], [0.024043160148227286, -0.06551551508902677, 0.0003128993448757929], [0.020691743385141573, -0.06142640361935318, 0.0004628781405247536], [0.01588340295533803, -0.05759465437207076, 0.0005257864944160759], [0.019491031104968103, -0.054236870019224726, 0.0004953033156549069], [0.029383335088660034, -0.09889478736227085, -0.0002111558868647528], [0.02470062798190726, -0.10307485271537122, 0.0004000152279681014], [-0.0018182253450950909, -0.09356397520366838, -0.0001368465907000418], [-0.009316444545574766, -0.09809754198105464, -0.00031615568965046595], [0.018651943317493522, -0.08957365436545903, 0.0004404090926136085], [0.017837277768757133, -0.05067334994961957, -0.0006883808476332669], [0.013360455942217365, -0.047420159527793486, -0.0007240351688351723], [0.01394855727107079, -0.05345881865046105, -0.0006484222083019379], [0.01301786788699316, -0.01544621038593093, 0.00013996280521521396], [0.02091673302001495, -0.1262945930409713, 0.00031466253679955723], [-0.0016331319726651423, -0.06854356880314497, -0.00012002494467565877], [-0.008340190195376957, -0.0726451328735496, -0.00038122906376459725], [-0.008689672337355542, -0.08082189265844332, -0.00033952541416876496], [-0.009044411103093878, -0.08930735912753376, -0.0003332629188154933], [-0.015402023495069911, -0.08521541525555078, -0.0004924179423875582], [-0.014808641152016357, -0.0769539828352694, -0.0005034891535245723], [-0.0017478625181776228, -0.08492039380635849, -9.214180760064799e-05], [-0.008012141646053867, -0.06475884928168678, -0.00042254194886877264], [-0.007660475083591133, -0.057281799871478474, -0.0004267166479669822], [-0.014164811086169002, -0.06885693723553922, -0.0005684490923372262], [-0.013545690992869515, -0.061177580339466256, -0.0006128166330140899], [-0.023684725795331082, -0.05477869830532223, -3.396774016938389e-05], [0.018844041869976583, -0.05780882576468581, -0.0005977292874793411], [0.023083755244197222, -0.1875761346193739, 0.0001565218262121623], [0.02404040215642607, -0.09414242974462282, 0.00037114556750713837], [0.023158056753689545, -0.08559250927537171, 0.00044058701995238663], [0.014122071900766468, -0.13097319939877988, 0.00022499350329806213], [0.006241742741743815, -0.12600588330872048, 0.00010922215935866445], [-0.02090801254090736, -0.04137670359202715, -3.229008616255479e-05], [-0.01948543158506503, -0.038238406947148675, 0.00023896166504519864], [-0.017985275386902685, -0.03236305085050106, 0.00032447551187155573], [0.02218731521511441, -0.047775077555432546, 4.2150907231960415e-05], [0.02026702696024399, -0.04436956534972162, 0.0003435741524650297], [0.019090025840649717, -0.03810057807908158, 0.00042387748003804997], [0.017237840994543556, -0.040935458530705994, 0.0005666226812781317], [0.01608158164212899, -0.03492920691105865, 0.0006605552274657434], [0.021487863949560707, -0.08127893305842747, -0.0005212299996409465], [0.020777787129962956, -0.07318672460785228, -0.0005588762058669749], [0.01930021756239005, -0.03521668530479863, 4.043278797088677e-05], [-0.0014936387405216618, -0.053521685316913224, -0.00012025065012487093], [0.01632417545470494, -0.024399473347994586, 6.867504055474271e-05], [0.0161433841449614, -0.02677849422788481, 0.0004322034494550543], [-0.01431305992712263, -0.0940444475890454, 0.0003419107781584199], [0.017275449935588574, -0.07300944030878029, 0.0005098207444890239], [-0.027605447500430945, -0.09010873481813522, 0.00018348337700488948], [-0.020692576328176445, -0.044546528105389206, 0.0002942234986475177], [-0.030032810179504925, -0.1513582926462849, -0.00022164792971281956], [-0.02503499130674623, -0.20911702668714044, 0.0001385214776239397], [-0.0251641839077155, -0.21994701595177946, 0.00010859273038204114], [-0.031056265609413033, -0.22521088821566124, 9.849651204225354e-05], [-0.025099169938125516, -0.22920128620075067, 9.740040290053299e-05], [-0.03503616142557722, -0.2298339399890732, 6.543698971366199e-05], [-0.021228281349208577, -0.08974219151606037, -0.0005389180533830511], [-0.03103990624998108, -0.11262250299540799, 9.363923505884698e-06], [-0.016605416156922088, -0.03514245240320795, 0.0005610429303536884], [-0.03488707578464362, -0.17201431514553728, 1.4119225612621806e-05], [-0.0019913685792957653, -0.13085771142711738, -5.6145322336252306e-05], [-0.019692458008142025, -0.07318306269565919, -0.0006060580458269448], [-0.012153719397862339, -0.06147827224478889, 0.0004212337182702489], [-0.007232051266547303, -0.05014419825839519, -0.0004331817365904874], [-0.012944888650223313, -0.053944121886955514, -0.0006155116201299668], [0.017613904135822964, -0.032222100978595306, 0.00038987430379661706], [-0.017870069124905658, -0.05780477985173251, -0.0006708245128454583], [0.006617183217000685, -0.009035650774742774, 0.0008549775500252549], [0.013054166454074945, -0.01734363910934014, 0.00047011660150321965], [0.012230427643708209, -0.019147959632897178, 0.0006332965503163107], [0.01109358457771178, -0.026080091337041866, 0.0007146644583122772], [0.013139149972023244, -0.03748097213293917, 0.0005925457299153313], [0.0024285723486535764, -0.002405902135581941, 0.0007051550713322475], [0.0030861022146472924, -0.0020658791409496977, 0.0008146354277674843], [0.02088571625632744, -0.17163275812088688, -0.000205133439793285], [-0.0013158159670640108, -0.04003173332708731, -8.466390105453755e-05], [-0.024316001060340167, -0.13608574044175842, -0.000361542814209306], [-0.010014299756168884, -0.009970605250842162, 0.00037497331881908893], [-0.00196840342053062, -0.12115870685451849, -9.526925829467619e-05], [-0.016009151874171044, -0.04403832513756554, -0.0007472038605949324], [-0.004313768889451371, -0.02596665822920083, 0.0003661058372234912], [-0.008512948785515914, -0.14593243697040134, 0.00012035981384654338], [-0.003546897009917662, -0.01626148375795958, 0.0003453309729965357], [-0.013343904125779673, -0.07710280281840123, 0.00037816675165172744], [-0.01029114539147883, -0.04060104188500721, 0.00048386536139563465], [-0.008887887387393219, -0.17681618337825358, 9.923128638612266e-05], [-0.0011168198208108167, -0.02818508107142677, -0.0001674050294315512], [0.01451584962375028, -0.02179764658492292, 0.00043333222427883403], [0.0017254452480355259, -0.003342989804799949, -0.00043496629895352747], [-0.006083212851883882, -0.010637397257068696, -0.0008178915246656674], [0.004641831247889146, -0.0032536596356448296, 0.0008070609680366673], [0.003040544889405012, -0.001771501974215404, 0.0007735080963112677], [-0.01592848328098096, -0.13120095928467512, 0.0002498316156290134], [-0.015172878449047932, -0.11214097317258379, 0.00026752363304098864], [-0.006511097827804784, -0.005010923812775412, -0.00032775679599041704], [-0.01708997049055136, -0.17164695519360246, 0.00017966009286408401], [-0.00906340999954461, -0.19804226646235154, 9.024219269149589e-05], [0.002302398825622546, -0.011943141198816338, 0.0003563299411919474], [-0.00028696799847291644, -0.0007353279629749445, -0.00014944990803489897], [0.005508155481567323, -0.04363722685992408, -0.0003819338707789034], [0.010040900996442167, -0.040660075858710544, -0.0006307053343286543], [0.004851674052713697, -0.03139892217802698, -0.00039164662534546817], [-0.03426916552974799, -0.1772218526245765, -7.890613068454993e-05], [0.035794344767185224, -0.21909498848931866, -1.1964362910300001e-06], [-0.007835698642747933, -0.0092792475790079, -0.0008959770076706943], [-0.035650143825862346, -0.19314024337985855, 1.6208459633517378e-05], [-0.015053234835115826, -0.0441754317427226, 0.0005715445162610218], [-0.03536713207930444, -0.21947743226938374, -3.2052829675708606e-06], [-0.018018554158945793, -0.041277088949207334, 0.0004922886373894892], [0.013572234141582644, -0.023908414389588167, 0.0007015688374234795], [0.014869787237042244, -0.029110750751342566, 0.0006279194608173557], [0.006049893280092388, -0.11644101390142089, 9.521079715920572e-05], [0.03365978827536702, -0.19840593984445679, 9.837043383904703e-05], [0.00897339168914705, -0.016541457025009684, 0.0007596303402708305], [-0.0052577269590896305, -0.007355242763930855, -0.0008407215215958691], [-0.009154721915656484, -0.21923751140207012, 6.578005329122902e-05], [0.0019604972759046163, -0.008440611010860502, 0.00027424731493991614], [-0.0027317410372939602, -0.005571725518485157, -0.0005354145806713586], [0.02952290081286576, -0.20372663280470343, 0.00013390399317713615], [-0.0006068373212414275, -0.006868747110157476, -0.00015299858927327788], [-0.016290102690787348, -0.1410466615155561, 0.00022600634258512444], [-0.03463006841734978, -0.18779179520739542, -5.20973382056593e-05], [-0.00813169971471669, -0.023615666411656862, 0.0005887592414787384], [0.023267788873479366, -0.19820593809472553, 0.00014213859740175167], [0.004873988830877174, -0.010343369880838003, 0.0006705560928500578], [-0.012190505318722388, -0.04697400748521971, -0.0006247770219100952], [0.006894976913296057, -0.00563223826217663, -0.0007012131650418947], [-0.03162800259991019, -0.19306537903996931, -0.00010520383811741102], [-0.02628676581806406, -0.18763994829112865, -0.00016091439752941562], [0.006811293597062229, -0.20886272115604523, 5.322902802294131e-05], [-0.01730520137525477, -0.18216168644222525, 0.00015200460877874165], [-0.017452056357421274, -0.1927588919572743, 0.0001393289821903115], [-0.011259554484778413, -0.20902211603004886, -3.8871376137081254e-05], [-0.006815510726687927, -0.043408430108103815, -0.0004161326593307374], [-0.006369000283560959, -0.03706080500298788, -0.0004657352285648758], [0.006531979231222314, -0.004731001808372625, -0.00033683822234698116], [0.005531484392404255, -0.003844669921372508, 0.00013872624398302837], [-0.0049834123112143715, -0.020552200444810112, -0.0005249318359784979], [-0.02237474718940364, -0.1264905068121632, 0.0003184701426287447], [-0.021823795591316246, -0.11701293437734986, 0.0003388797741622138], [-0.021252207434435115, -0.1077115237608281, 0.00038695550293985895], [-0.019970295351652546, -0.08974975234537655, 0.00040304354372773375], [-0.020667924110370887, -0.0986288663588837, 0.0003720931149109831], [0.024048549124885764, -0.23504589915192683, -1.9479517731440555e-05], [0.0011882527360141041, -0.0005125650830071185, -0.000537990910524666], [0.006377317564051032, -0.1357705478942766, 0.00010394053442159987], [0.014891674929134865, -0.05047063537390262, 0.0005736020128968262], [0.006579998698558409, -0.1559820932405507, 7.540678100918695e-05], [-0.02876794030530109, -0.23663792948676451, -4.295494491497539e-06], [0.006482336559373607, -0.14579875086303593, 9.497151333830316e-05], [0.028525695677458378, -0.23640598140121882, 8.207628270815974e-05], [0.0014045194401468642, -0.0006926727187707718, 0.0005190828472795659], [0.00040368466505082384, -4.2905513918802754e-05, 0.00027286891437768295], [0.0014094054995837703, -0.0008923805222384136, 0.0005486500573153476], [0.010770740223914829, -0.23725822613943096, 6.38470983555091e-05], [0.0354397602650246, -0.2366667130704412, 1.2223795398387745e-05], [0.03633592911790246, -0.23524278187319025, 4.420137389885601e-05], [-0.0364060239637015, -0.23613265540145623, 3.80955771326311e-05], [-0.0020132410702001793, -0.001252181262388731, -1.6832884414178764e-05], [-0.0033218072923181722, -0.0019698862919704753, -0.00028528209873967495], [-0.0010619635735142569, -0.022918162548246038, -0.00015018543438074326], [-0.005912404816778287, -0.031147877229380727, -0.0005335318328884999], [-0.002142907118634576, -0.16112428167524304, -3.862061969060935e-05], [-0.01606801578823816, -0.029351672541147972, -0.0006549709524513631], [-0.017591488480291385, -0.2034931675779631, 0.00013041999710576118], [-0.0022663844418451947, -0.2035704409558412, 3.199477309852729e-06], [0.015601378142549435, -0.2035916946150699, 0.00011848668945998378], [-0.0347575487059341, -0.2195539016583536, 8.909100159640244e-05], [-0.014571448369934611, -0.024106309404203396, -0.0006163525822473811], [-0.019459071544324226, -0.19288587323259965, -0.00013323219199209955], [0.025987212408431392, -0.0696054747357192, 5.782335715385289e-05], [0.004583689315354672, -0.0029422046911843965, 0.000527255137441479], [-0.017602998078336988, -0.06533681962571988, 0.0005101264519403235], [-0.017683537255193466, -0.21423653483459057, 0.00010596335761091622], [-0.01954987959639904, -0.20363819527659902, -9.636949682348296e-05], [-0.022444026741701036, -0.06961020131014234, 0.0003881807021747872], [0.021663294943545516, -0.05105463333547642, 0.0003686757604009043], [-0.023209401890736933, -0.058388440916478164, 0.000273373116824899], [0.01826117868033824, -0.04737526885501127, 0.0005981701184788947], [-0.016490081105243918, -0.027054156976409914, 0.0004289123158985245], [0.02477289448432863, -0.061881841637259516, 3.7915272666749204e-05], [-0.017737443322852764, -0.22505563371726514, 9.425344369982088e-05], [-0.007221440257060708, -0.018677068760486134, 0.0006111160554261157], [0.01575949606045485, -0.03768591623834465, -0.0007034112748176458], [-0.003549954919335376, -0.002414535966872798, -0.0008381291070808967], [-0.002279561427793043, -0.2144140612775773, 9.571775160708203e-06], [0.0020207396255089967, -0.0012234345183558188, 8.250579662605027e-05], [-0.00215498776047155, -0.22459732417352687, 2.1089859426601033e-05], [0.02286782208490744, -0.05809647739534391, 0.0003050640063968016], [-0.005475937432762579, -0.010547078131506597, 0.0006936777997861365], [-0.03634077559225795, -0.22527886958401336, 3.707990460059694e-05], [-0.0029902592622235527, -0.012231073019279982, 0.0003179682162112947], [-0.0021464028684794485, -0.005754886259207832, 0.0004063539889402517], [-0.0037307826882008732, -0.004674437247437042, 0.0008011049774152358], [0.00589412645691822, -0.0575560485513728, -0.0003468743097716403], [-0.0012152786260638028, -0.0015579120015226907, 0.0003976750534774514], [-0.004481051406423989, -0.0030281786909835398, 0.0004958311364283403], [-0.001863303577669466, -0.0010556098795666444, 0.0006571659541715142], [-0.0009129114112060134, -0.00021018727061960282, 0.000541441798011601], [-0.01772137390636609, -0.23574336509956081, 8.262320603234777e-05], [0.008905234220602949, -0.2299840967477334, 3.872132958663549e-06], [0.0008802805203550335, -0.0006108833622526477, -0.00036244199047170755], [-0.003610861085127597, -0.0020724477308573285, -0.0005871956557358961], [0.007565636306333433, -0.11914307997869852, -0.00022887740868533503], [-0.004287560426194019, -0.0026205258650144145, 6.033868971488742e-05], [0.028415248083830374, -0.22790725205447404, -2.9874338400107753e-05], [-0.03547256344659316, -0.22958467040073394, 9.634272712003277e-06], [0.024165100636467964, -0.22810963340336773, 8.961940237745245e-05], [0.006232529558210759, -0.2279663907068547, 5.078445127716634e-05], [0.002264113763582109, -0.0012304455540439537, -0.0007473936567703249], [-0.00507817662930533, -0.0033047962699172106, -0.00041275814356354337], [-0.035574426107946915, -0.23960535501339245, 6.698430376218101e-05], [-0.0011985749286974156, -0.000692447131395403, 0.0002198751220151039], [0.0020610541038929564, -0.001079481386855994, 0.0007131682914841407], [-0.026197056188715366, -0.2279930641371574, -2.0196980041190547e-05], [0.00044110465558747336, -0.00042500036550472575, 0.00019644273119694963], [0.03602398493478507, -0.22787306175135016, 1.3280402413856096e-05], [-0.024893339724919576, -0.23831463743714823, 9.25975370727664e-05], [-0.010730791479913241, -0.23981565318388115, 1.4848351372453681e-05], [0.034478363273535144, -0.22736517752433757, 6.74467481737421e-05], [-0.001019597108155812, -0.0005420724864077547, -0.00044107155283222734], [0.0012728856911990022, -0.0007571149747192222, -0.00022951990953479304], [-0.0007583380766664553, -0.00030676839421196506, 0.0003923583735956464], [0.007911249805591743, -0.2387124745023028, 1.9450118988019563e-05], [0.0003576116006237088, 1.4957974332791616e-06, -0.00022148575857157006], [-0.0004089710985390207, -2.2983347289554814e-05, -0.00028752282820235556], [-0.00806178947106722, -0.23802161677778116, 6.282383706926681e-05], [-0.0003748932629878338, -6.728573814470276e-06, 0.00022262206033036094], [0.0032002766819588554, -0.001925238202516557, 0.00035797905919387465], [0.016462997288908238, -0.06127295251529435, -0.0005963745896905774], [0.00955256864647488, -0.054182681712115155, -0.00045642543059800955], [0.015491304248825909, -0.16696875095525476, -0.0001899903364907386], [0.005677703968531358, -0.17673539275330352, -6.907553772727824e-05], [0.005738397269330274, -0.18729084444905422, -4.5909939069043986e-05], [0.016343286741972687, -0.19808289056473904, -9.533671021017448e-05], [0.013906024675945412, -0.04047560696583896, -0.0007099663244461692], [0.005789025070540495, -0.20870648693103913, -1.476815896855448e-05], [0.0038713665667738473, -0.005817854315244336, -0.0007591526132820715], [0.01653728455913353, -0.2198410052987739, -3.8843396036573355e-05], [0.001776978877768948, -0.009060272085883458, -0.00029433771037107624], [0.00300687500124487, -0.003431886399448504, -0.0007555783642671109], [0.0019688971440756267, -0.012195644841946672, -0.00024740262603022535], [0.006318075537627269, -0.016244406489605533, -0.0006758256292106397], [0.002346038835107266, -0.0019296706103171528, -0.000746381936693224], [0.002554524362408778, -0.020810250094568813, -0.000271921151340465], [0.009057769247508255, -0.04705298825224174, -0.0005514913523604388], [0.004394443112800791, -0.08097297555184027, -0.00022088141831783532], [0.004576631403236501, -0.08947704817222998, -0.00020488859748380407], [0.005202071167330018, -0.135895607594727, -0.00013434868007006754], [0.007884671658036075, -0.034389274300266864, -0.0005530520044948334], [0.02292690999265058, -0.15112820498233748, -0.00030214521317191125], [0.0064283458551507, -0.10375577970097484, -0.00023637078074487136], [0.007634881203781309, -0.02537932623918832, -0.0006127716648482323], [0.021393391829750318, -0.12149043683489552, -0.0003908440688073233], [0.01752609251964321, -0.06900268341526189, -0.0005780191088595052], [0.016163355720876047, -0.22819081452836543, -2.1280071908428854e-05], [1.9384237011169486e-05, -0.2468140088547251, 4.607445655871725e-05], [-0.004208964572381878, -0.24680615517326862, 5.9531946837815234e-05], [0.025941912426443274, -0.24688482428129468, 2.326853478174729e-05], [-0.026528860530207914, -0.2468821628421676, 4.459704007849034e-05], [0.021338188062021358, -0.24685989506001776, 8.279688394254004e-05], [0.01808261288992814, -0.24684562906995314, 5.180337497666954e-06], [-0.014974510084085015, -0.24683675137191655, 1.486419219554702e-05], [-0.017759311037010155, -0.24684006058974237, 8.333775410024967e-05], [0.025301315050086395, -0.24687424669701663, 1.4386060681894087e-06], [0.016951309915639232, -0.24685086447702712, 2.3598427792700468e-05], [0.00834116983320052, -0.24682877962269367, 2.864958528849051e-05], [0.0072053742550878, -0.2468316764400659, 3.6786660859484456e-05], [-0.0014526901350217993, -0.24682302543280868, 4.999503721913596e-05], [-0.0030899081528725884, -0.24683128617829214, 4.590879810920209e-05], [0.005896909152054852, -0.24683141708094694, 5.096893126029148e-05], [-0.00444027201994677, -0.24682750141944884, 4.004736851496912e-05], [-0.012542455335707898, -0.24684468294064413, 5.877559414482887e-05], [0.017706787054804978, -0.24686068252691873, 4.3254201421893544e-05], [0.0048239031286409, -0.24683080489036763, 5.5971170767881176e-05], [-0.012240029673327471, -0.24684798742704253, 4.297694094596791e-05], [0.014235137517599175, -0.24684548489694083, 6.174025386377523e-05], [0.028527062388557782, -0.24688782145995034, 4.579979881166037e-05], [0.010295945236668016, -0.2468159339846773, 1.60546648770961e-05], [-0.01352764513273659, -0.24684426652878352, 3.0510630261517466e-05], [-0.006113223657445201, -0.2468248675563357, 3.3680819621410404e-05], [0.00959073829167868, -0.24682064581184002, 7.063548391094796e-05], [-0.022343314690087428, -0.24686463155336605, 9.821801243519847e-06], [-0.007991012344547932, -0.246825253337066, 6.346013043439095e-05], [-0.024485677068055274, -0.2468777103398544, 7.507444292237955e-05], [-0.008591405513059711, -0.24681803776519892, 2.197947803556676e-05], [-0.012472177293900214, -0.24681763861285022, 8.126722217847316e-05], [-0.020361312168908432, -0.2468633344925316, 3.2557746753877105e-05], [0.0011900676120986946, -0.24681653808033485, 4.309139752311691e-05], [-0.019423221226562655, -0.24686442875990375, 5.436606804564929e-05], [0.003532887913198496, -0.24680150232543874, 3.530500189969794e-05], [0.024818054251935156, -0.2468797237208189, 6.610648220713656e-05], [-0.027477026125283143, -0.24688201109140934, 1.9497503086253835e-05], [0.017122750069660537, -0.24683776912291844, 8.647758197308912e-05], [0.013279766522770358, -0.24683641887967914, 7.103606549744152e-05], [2.0041565661878053e-05, -0.02455316505236332, -2.1988623159644366e-05], [5.1887941030774056e-05, -0.04443151635066614, -8.814129667483235e-05], [-8.90015653424484e-06, -0.14367445238545418, -3.59335228682139e-05], [-9.994382615747134e-06, -0.07912939222468421, -4.972911487430323e-05], [2.185835364782858e-05, -0.19013328449803607, 7.27660043868652e-06], [-1.0563159928352322e-06, -0.1097530806168416, -3.519769169249805e-05], [2.1003935311028336e-05, -0.008498429482584615, -3.4977590042218644e-05], [-0.0069924469719445615, -0.21802551148559995, 2.1277811426990913e-05], [-0.0002756729127538831, -0.0021891982929309554, 1.4485720609426658e-06], [-0.002035297431680752, -0.060761007496239576, -3.9781781268756894e-05], [-0.004915005535914441, -0.16652301067639663, 1.2434414508942388e-06], [0.003818265157075787, -0.015478300143305116, -9.404538612739882e-05], [-0.0029571511461969654, -0.01551366460142652, -0.00013883034327818173], [0.0072984696816136415, -0.16260428059151572, 2.5268584516465993e-05], [5.623031803159585e-05, -0.05678850542979695, -5.7206856851514926e-05], [-0.0001832560613898633, -0.12641353841183162, -3.491385835599724e-05], [-0.00801504938491799, -0.09399908879607079, -0.00011521539955745808], [-0.0009296178455344032, -0.1262483945462067, -5.056324777374401e-05], [0.012249417916115165, -0.20894966835117565, 3.829781069417188e-06], [0.010243993454907622, -0.09402307355445019, 1.636150016434144e-06], [-0.001212951938564237, -0.033651622482294044, -9.54287680790116e-06], [-0.0025131619144987097, -0.09394921516149078, -1.1830578508192641e-05], [0.0008466008369183082, -0.03367084482070083, 4.979800479808052e-06], [-0.00011273528630652556, -0.0036830752093258323, 4.290624078509972e-05], [0.009920896416960187, -0.06649989087937484, -1.4284061903805232e-05], [-0.010019448798175113, -0.17429829801279512, -5.227082128696648e-05], [-0.003811065628479166, -0.017673132160829375, 0.00012384552164239375], [0.002820465685822126, -0.22582483169052378, 2.5293043648547677e-05], [0.013538739306945598, -0.17513200585180946, -2.8322372715737648e-05], [0.007705086278157005, -0.032088261623411746, -9.344525624746405e-05], [-0.00955020415610678, -0.06771736411760228, -0.0001544586306355458], [-0.007846802262206812, -0.031831000988172924, -8.114183106054905e-05], [0.001227670276636483, -0.0014638881824025106, -0.00011244452983104755], [0.002915731932794821, -0.0048068305948603335, -6.437701283762708e-06], [0.0058232982660512385, -0.2049835923487926, 3.0446820646540566e-05], [-0.006856684737626122, -0.20485092279857656, 3.0846886060463495e-05], [0.0132871978688005, -0.12298904224777583, -2.4488661835128073e-05], [0.004301740190141346, -0.018999991521196576, 9.503011780082163e-05], [0.009857189493023446, -0.05301528910795457, -0.00013890301842348773], [-0.003141917447049384, -0.004973909332009295, -8.745679765959618e-06], [-0.0143509799729522, -0.1264473343169288, -2.1867506249104844e-05], [0.013642105895384286, -0.15539985698191497, -5.498810844597786e-05], [-0.014230714317947542, -0.15587569630686066, -4.929615929292689e-05], [-0.010195074656218413, -0.05276638961648502, -7.899904484000306e-05], [-0.0013919800433396356, -0.0015630965889911641, 0.00015587285090789735], [0.009284605155093625, -0.2265170906206992, 4.6503701259505e-05], [-0.013852056355062675, -0.20043183040705972, -1.0260203613571824e-05], [0.004401231060606962, -0.011692882806742647, 0.00016827604278117978], [-0.005305476680141116, -0.011615032726119323, 6.0935328739342834e-05], [-0.00047967191592440157, -0.011343152650369594, -3.589190042722062e-06], [0.00989509868225413, -0.181158426759629, 4.195443464530573e-05], [5.5891107005535465e-05, -0.005635444783712273, 3.5534498905939336e-06], [0.0017705467108084661, -0.07150375748245394, -9.439321976917893e-06], [-0.01571160224382886, -0.18190366231142283, 3.857249984882944e-05], [0.010245934072353276, -0.08535864718036691, -0.00018568604809940183], [0.0012381605791309724, -0.04936315471093665, -7.256636153812349e-05], [-0.0005245355872013303, -0.0731589639327385, -4.2107548029877116e-05], [-0.013995945255508272, -0.10310124432511111, -1.9496718544735337e-06], [-0.013061434846504546, -0.08543070858164142, 4.959310807404825e-06], [0.004211353682511684, -0.026266707838756044, -0.00019821491028321393], [-0.007523930392589823, -0.04065076756098402, -0.00023238966935631755], [0.0009239352614692517, -0.18225771787963302, 1.5252389409004278e-06], [-0.005551424572826702, -0.14982834490562635, 2.120295533428719e-05], [0.002839850596351616, -0.1032797962488673, -1.6829682081146644e-05], [0.012434504291102731, -0.13717250356072047, 2.9553225746653975e-05], [-0.007485496741379619, -0.021928598297399286, -9.774227507041363e-05], [-0.0028289260162900785, -0.1494347991994116, -4.584681740787227e-05], [-0.0028429027189870843, -0.023438160209096417, -0.00022843934049076334], [0.0008472097565566753, -0.000926772060697087, 0.00014691665974350237], [-0.009837583895014584, -0.04128400312311008, 5.001560532353315e-05], [0.008126741593301474, -0.023211717728945324, -7.108436872965607e-05], [0.008821764526587268, -0.04064908058772692, 0.00010761012027070418], [0.004575575073705655, -0.009556302063675876, -0.00023907321763805267], [0.013784136667403569, -0.1377299077622132, -8.771328087628629e-05], [0.00875705785993718, -0.04164022736841022, -0.00022273372463053694], [-0.00616735513648709, -0.026190468922226484, 0.00012140775653253121], [-0.011088153762661767, -0.11210439588343561, -0.00017283654996152418], [0.0026817380643260574, -0.085877571794491, 7.320091846350604e-06], [-0.001217293944426301, -0.0010635610575848468, -0.0001788516323588413], [-0.0034064035272155136, -0.009486017365615069, -0.00025040525703598786], [-0.0191983267360868, -0.23016157887434682, 3.430567627469689e-05], [-0.0051447421822610456, -0.11125314063678071, 2.3080838292960756e-05], [0.014372479186813517, -0.10626422053365041, -0.00011813775715413416], [0.017452697070915724, -0.2268644947587598, 2.103641655171523e-05], [0.017882841401363328, -0.19222572375948466, 1.1148686951134645e-06], [0.0013497462794222314, -0.045390254612395084, -6.212170181053755e-06], [-0.016276240630190484, -0.14223118848736432, 1.9150283168256592e-05], [0.01336470040036171, -0.07987652792743176, 1.6685258070780173e-05], [-6.422567601927874e-05, -0.0007668667020844715, 4.1181276154668066e-05], [-0.009452553884971104, -0.08015309217735847, -0.00016240616524785433], [-0.013614056264692252, -0.13853677583107327, -0.00011312264256155231], [0.006445576688873452, -0.026925088570577457, 0.000160742703465755], [-0.01423716659278232, -0.2222605416586696, 5.1195214702931866e-05], [-0.0032593647926023967, -0.007288837940448927, 0.0002108279489707158], [-0.008779939417065494, -0.22912226349849182, 2.0629226742330287e-05], [0.008782769281168215, -0.06518673119905952, -0.0002196286188837163], [-0.011875056746517345, -0.07228683411203204, 6.90953127811196e-05], [-0.004795768410935462, -0.18855080189986875, -2.138782672698165e-05], [0.010000126967556432, -0.11618227476146206, 6.884886207460784e-05], [0.009621403988247141, -0.05174213549641494, 0.0001425037289534041], [0.011188952519910821, -0.19539150775149144, -3.799709046699438e-05], [0.0003409323452246644, -0.011946343886885655, -2.4906828060902723e-05], [0.0018799570110415622, -0.018837284695212026, -0.00011545094935754994], [-0.008742283693635049, -0.05289299884576583, 0.00013908337142693144], [-0.01943396618896752, -0.20908754175671393, 3.4566892564555e-05], [0.01772645924166629, -0.15148270749888326, 4.3999400145417096e-05], [0.01150004238728201, -0.11773600809775592, -0.0001537461021948628], [0.0019165156678830075, -0.003213840236508024, 0.00028334936911245736], [-0.007875101424798957, -0.21255506165584728, -6.060924740493023e-09], [0.01868742057610646, -0.2136558154854225, 4.401533459135227e-05], [0.0032313885028344546, -0.005395815056065496, -0.0003026134475750696], [-0.0024430617735703305, -0.00388179410088169, -0.0002458153269909809], [-0.00760505358796789, -0.05015243514112089, -0.0002682835213416297], [-0.004626879231174518, -0.04166589340792649, 0.0001156861250189613], [0.0037668236822628975, -0.007048336883131301, 0.0002714122673304031], [-0.01693403724155631, -0.1578056654917926, 6.167093213567457e-05], [0.008250239644363144, -0.16598241755697804, -6.673101530550282e-05], [-0.0039869767776897725, -0.16421325254701405, -4.840009991920172e-05], [-0.0002587734527786195, -0.0007126127709154003, -0.00011321440436118557], [-0.009968973263653546, -0.13598738012043074, 6.0179823422043286e-05], [-0.006226382572025071, -0.0306065524832012, -0.00026929397200124434], [-0.013697582206215662, -0.061405032913192235, 7.955448432671108e-05], [-0.02014417053127013, -0.1691112344710387, -8.092577096951242e-06], [0.0038364850661741323, -0.13908037285627362, -7.267355881560542e-05], [-0.019439581189545224, -0.1862185423354074, -3.285219574100376e-05], [0.01579814624470954, -0.10533080562906229, 9.549080256137507e-05], [0.020287885815012705, -0.1656330367169169, 7.839533592236462e-06], [-0.0072291587418877815, -0.08322264034818425, 6.242771031543712e-05], [0.0013660958289626452, -0.2313037520928341, 3.59009199509831e-05], [-0.01622304675523442, -0.11571487024019807, 6.831694374556252e-05], [0.006604374139029209, -0.03385910335046907, -0.00025889447390540674], [0.00831114817743024, -0.01691495361875722, 4.0843591430053195e-05], [0.00035667751329044673, -0.006878879058257036, -3.7475566710563184e-05], [-0.011358464728474172, -0.1909096581251419, 5.702788443644089e-05], [0.008477076535430849, -0.06277160912484794, 0.00013967808756658263], [0.014115737477417647, -0.07466097413896504, -0.00015128821053986345], [0.006225368440264257, -0.10330713216507369, -0.0001283455447894093], [-0.00010907098069934885, -0.0007183590729095637, 3.8939375372142686e-05], [0.00592360968104413, -0.21101654878252074, -1.2443034388203106e-06], [-0.0026348771552003524, -0.0037864834673783567, 0.0002800241345842227], [-0.0002985622553454529, -0.017521997214453425, -5.083401740699277e-05], [-0.0007381452845862668, -0.013142451243371637, 6.043863133787229e-06], [-0.009139817060715328, -0.03373026824090075, 0.0001889418918697434], [-0.005701501243988825, -0.06418932418367056, -0.00020608641566693912], [0.0025699292821408813, -0.0023140830243059177, 0.00015898828151373462], [0.016341592271056853, -0.19459883098676237, 5.7290448940040134e-05], [-0.00798030919138509, -0.016043522084293615, -0.000140718018668145], [-0.016383704967523702, -0.07662201694223908, -0.00012977314931627196], [0.0006838696314957732, -0.17554709796018966, -7.504526749550226e-06], [-0.014022265831562587, -0.12502603418504685, -0.00016053813974440425], [-0.0016063466143910726, -0.03594154101050876, -3.484573143827853e-05], [0.002599440101807078, -0.13720006086887132, 4.3942725556421384e-07], [-0.011349573349738809, -0.1752545408210801, 6.615493873929309e-05], [-0.0006676066701477115, -0.20493535045756975, 1.813164560443916e-05], [0.003697778600675632, -0.04070934503011115, -0.00019344756951620055], [-0.001440338902832457, -0.11515894741903077, -7.559661311528639e-05], [-0.001604488535488577, -0.02773388662815046, 4.145013282094302e-05], [0.004150984614228945, -0.012678834977582442, -0.0003403112473966788], [-0.0057787348063044535, -0.008291619500253766, -0.00016128937926522926], [-0.007675768743432908, -0.0653410375321219, 0.00011840821475486002], [-0.019075760941829716, -0.2181844710108929, -1.364255212429076e-06], [0.0025090608038117407, -0.13027908722114281, -3.770724113193232e-05], [4.704683094123768e-05, -0.00468005203799722, -5.42273048885178e-08], [-0.012323763955999155, -0.059062301019593075, -0.0002897845771518924], [-8.514457089248157e-05, -0.06821154290699859, -6.0019373299030545e-05], [-0.021646543925062003, -0.1947677561457964, 2.6850628713085366e-05], [0.0010832394114787059, -0.05818425816465911, -9.870037484460448e-05], [0.000882374047491254, -0.05359136823798862, -6.318838642094985e-05], [0.0016544906324478554, -0.002490841323499505, -0.0003014236543277614], [-0.0013403246874009282, -0.15719279975784156, -2.5433204571837404e-05], [0.021116019485215073, -0.17997804100962064, 2.9728263956604838e-05], [0.010312678947340975, -0.1481093030692607, 7.367078764859736e-05], [0.007230024620517505, -0.01975441605423461, -0.0002472628960480765], [7.430175134490046e-05, -0.01833083265859131, -3.509945170134421e-05], [-0.006727021072018446, -0.019266725778057825, -0.00034341458727602816], [-0.00033070251883930897, -0.0025792369049196014, -6.611179038482973e-05], [0.007383548347757558, -0.15220821855879565, -8.276298167954574e-05], [0.001506426116898183, -0.027863115075858612, 2.797394514599265e-05], [0.01685193154258693, -0.09459646455837763, -0.0001370615670583697], [0.0030811910493962376, -0.08566641990786615, -0.00011057594778757301], [2.4669474067067934e-05, -0.0975580637362826, -5.05187416143764e-05], [-0.016822768640505973, -0.10230848704862865, -0.00016666405851922892], [0.006263517888439378, -0.008931672185649138, 9.823823886771066e-05], [-0.003928683076738179, -0.16203618826070762, 2.5831091017658065e-05], [-0.013938161310372527, -0.09403002672425038, 0.0001242654861501911], [0.010221968741157026, -0.0781220770555551, 0.00014303573662545864], [-0.01679921984665685, -0.0876444195061906, -0.00017804569166483396], [0.015392980011444327, -0.06124071091186372, -0.0001628788029333255], [0.00826087813671849, -0.03398718446498885, 0.000208945889323988], [-0.002982869885711254, -0.002710899217199169, -5.631179316641926e-05], [-0.0034792959834129603, -0.021530973038193065, 0.0001886825996086004], [-0.00851922698215333, -0.10170205684651974, -0.00017345370742135254], [0.013699359077766827, -0.045848159099145365, -4.9361721569108504e-05], [0.000594961394968505, -0.17674685355776854, -1.7187083230894998e-06], [-0.004928480406110987, -0.013210681926339127, 0.0002668525815393301], [0.010664264733056627, -0.09502853278435149, 0.00013351473929852368], [-0.002547739036478164, -0.03844621371954297, -0.00015255151853309606], [0.0032892337932169547, -0.0033674572465422635, -0.0002338586536914527], [5.095308937903431e-05, -0.1980981208992568, 8.69316398689189e-06], [-0.01962409164225426, -0.11320026226377154, -9.865434567823927e-05], [0.015763352064356008, -0.220498467489203, -6.829954907456858e-06], [-0.01119695445160636, -0.12344888369721564, 9.710903353932504e-05], [0.005119238486340781, -0.21661722781733364, 3.5534003803413404e-05], [-0.00896032045742672, -0.021270103891719717, 0.00021916755222829536], [0.014271335931598347, -0.18219505329712232, -7.115418350781555e-05], [0.0007237247169923075, -0.0005084578039621733, -0.00017598674854921325], [-0.016025946767290664, -0.16372833008263107, -0.00010911982271189347], [0.021269637313413, -0.13621897929838442, -1.7221477748760562e-05], [-0.011085907759962384, -0.02704755021183219, 4.5304526419084266e-05], [0.010348580192601242, -0.127639076990616, 0.00010117487685868542], [-0.01327639161051501, -0.045261796466846, -0.00016869215856720474], [-0.009999605643623987, -0.027024093787065977, -0.00030108358760227847], [-0.001300358106738691, -0.0008110405962178027, 4.519577403076587e-05], [-0.006782478196651758, -0.21573816539616344, 4.198645100198861e-05], [-0.015404893880575478, -0.1508118390487516, -0.00014254071678973713], [0.01442104020405692, -0.059294353251977475, 9.495019318528659e-05], [0.01642532549477991, -0.17003887259101674, 8.039920039743678e-05], [0.007718622561730298, -0.013618786818672821, -0.00023754266094009352], [0.00925514478111813, -0.05557889134045938, -0.0003104589875800302], [0.006487423651135937, -0.19396005004456315, 3.933754263482489e-05], [0.010069152234722297, -0.02775982868117246, -0.0002919468998461433], [0.013752359827717341, -0.23411325574472003, 1.7123142043414284e-05], [0.00647985493992414, -0.21865646020057083, 2.7083989775734698e-05], [-0.008582781635648157, -0.23243818924668147, 5.459434572162111e-05], [-0.007232484746540039, -0.08849743491788953, -0.00018188088431319132], [0.01934393046926756, -0.23427099577531274, 4.658925606456365e-05], [0.013018259115378577, -0.03791629571357385, -5.353556418632078e-05], [0.0029457989771329144, -0.23293870516776718, 4.012433504104364e-05], [-0.005793190299372315, -0.11894107301914314, -3.292565906272094e-05], [0.02006992071258312, -0.16581578710327402, -9.450909043791256e-05], [0.00126040499723168, -0.0008134284088595411, -2.7837244449496762e-05], [-0.004104465815620989, -0.013092733768576547, -0.0003723085309421841], [-0.007323617531186398, -0.10077492464696793, 6.831339815062709e-05], [-0.0009561642388465697, -0.002269522504172146, 0.00017741889161771514], [0.004517966772826173, -0.01443307199588871, 0.0002958754133849771], [0.01874020091965219, -0.12681860091575314, -0.0001573433232727693], [0.023863311623920854, -0.2040566699898977, -2.1562436180262744e-06], [0.011293428066369312, -0.028292920189584136, 5.811275144561506e-05], [0.010167072241416907, -0.1288127547659618, -0.00014695402551926054], [0.0043561117933190365, -0.05270323248548481, 9.107543920916922e-05], [0.003317287827091566, -0.021824084380046054, 0.00018967390851923067], [-0.0016929051120673692, -0.01517205145833303, 9.779942784562699e-05], [-0.008537881410468717, -0.13294169564559075, -0.0001458001879556819], [-0.005246573441928672, -0.05958045837075814, -7.77742164222307e-05], [0.0012078595272663457, -0.00889026859889817, 5.961695243703192e-05], [-0.0007268452572629794, -0.0005654812654047397, 0.00019544233989858765], [-0.0029306515957157973, -0.07844106728008315, -0.00013119851767206004], [0.009305575039593854, -0.022394554637821584, 0.0002306622231699239], [-0.012485531177489207, -0.037538721048686455, -0.00020518305925016492], [0.01979904508186581, -0.11381435679206217, -7.1824943540586154e-06], [-0.004633118996795848, -0.20060365888993134, -4.31078489501278e-06], [-0.0011052098430736185, -0.008195501401081, -0.00015602327107386627], [0.0035093694471949994, -0.23486737021664778, 2.840643257277458e-05], [0.018685035152296168, -0.12734081941430647, 9.803443892357623e-05], [-0.013912362880946327, -0.04865938498257626, 0.00010249997872448753], [0.0019081217260181072, -0.02962973296680466, -7.924428617238631e-05], [0.0002518714131899862, -0.002272750040693831, -3.1946899449207384e-05], [-0.002376336546857739, -0.029025446177874115, -5.9872724522441925e-05], [0.0029059108431613774, -0.02148643150598279, -8.23413886461599e-05], [-0.007180178641205284, -0.13418231305189135, -2.2987624839920876e-06], [0.015320751148974236, -0.07169529014035578, 0.00016180124860240566], [0.007100318715414482, -0.15944848930893069, 4.794060562767539e-05], [0.0019379601087200834, -0.11857583114380922, -7.142979951012401e-05], [-0.02013299461462243, -0.2007280622155305, 8.126226708860507e-05], [0.01569868794967316, -0.08775540279439714, 0.00012047883125714391], [-0.01014440444691461, -0.23358833503722382, 4.456107550228424e-05], [0.0016420125696798241, -0.01471107754575276, 1.5633042764050094e-05], [-0.0011371276682857047, -0.21536537362847355, 2.718020943100866e-05], [-0.018480206400037034, -0.131703565843925, 8.190861989094171e-05], [-0.001830873185205814, -0.006474599513608818, -0.00010168972454596494], [0.0214410858657319, -0.1472406882854542, -6.432722359038038e-05], [0.004808731188630645, -0.0390835515368995, 0.00013506088508186028], [-0.007067183585455167, -0.011889529853872299, -0.0003120840501175977], [0.006447870997469246, -0.16486620258940726, -2.1346300096136318e-05], [-0.021088284904544632, -0.14617874776040338, -7.846537757017856e-05], [-0.00825796902794514, -0.016076151134450788, 0.00022496298589523518], [-0.018750261021079254, -0.09422299125637607, -3.162536328204181e-05], [-0.011648754266243566, -0.07144604178695427, -0.00030703294403599954], [-3.2760982948554465e-05, -0.08816636981676193, -6.424193474641667e-05], [0.005935767123450535, -0.15066609851385854, -6.372551581090893e-06], [-0.0016331084262738624, -0.0017362821863539859, -0.0003823977221951739], [0.012769983017765399, -0.04838254210767885, -0.0003496057124641412], [-0.02213712201636787, -0.1350522905752894, -5.562946874611577e-05], [0.005377110035421018, -0.006641650558567213, -0.00020565044120170965], [-0.005036507162466807, -0.04645639916647186, 1.0198613071408608e-05], [0.006985367560445749, -0.09644573599437473, -0.00010530448120633932], [-0.0015775562363376991, -0.004588796518170298, 0.00023318251680270113], [0.003498100745277028, -0.008529396267471546, -0.00035468586762985575], [0.006036357103689269, -0.06027344229938946, -8.908454747020391e-05], [-0.01977198758162034, -0.16956230156177077, 8.51562084153881e-05], [-0.004404271368817091, -0.006554430288493265, -0.00040346112748500994], [0.023037012018288974, -0.215830518402143, 4.260334029868321e-06], [-0.009533407403438738, -0.19705145235476965, 2.4497995768238444e-05], [0.0012196758940374427, -0.0400643482774572, -5.826169376773268e-05], [-0.006082683674895936, -0.00793720817285037, 0.00022976616727889964], [0.0005703956730363141, -0.09444939680765993, -4.714262680302074e-05], [0.0048624154512456035, -0.07325650139104156, -0.00010988941208672209], [0.008259444198784093, -0.07697808338282942, -0.0002173271062238357], [0.01848319284581849, -0.08481744846804609, -0.0001067719277184624], [0.020193344326919275, -0.2040799440145333, -4.447023853314414e-05], [0.003744894241124217, -0.11908130017343578, -3.3454855000761145e-05], [-0.023781575613123992, -0.22094207277842134, 4.6311587470044885e-05], [0.0016451233977178921, -0.060578373187775314, -5.370873034140437e-06], [-0.0008508117689681552, -0.19336101602316996, 1.601247399685829e-05], [0.0010538423325518543, -0.0063560181568421414, -6.905036125252213e-05], [0.023208958665671204, -0.18269441772421252, -3.846735811604389e-05], [0.00014840149780884419, -0.08440924195364363, -5.3334003399111065e-05], [-0.014941680251178684, -0.1819441911539137, -7.347823060452788e-05], [-0.0023370642036419508, -0.13717732814948647, -4.206980866585639e-05], [0.0036708483130681807, -0.009848987380489019, 0.00034850507261465093], [-0.017488967366016007, -0.0667793326263083, -9.483341970748906e-05], [5.73019307151786e-05, -0.0003884904847655585, -8.82420477260895e-06], [0.013290369725629074, -0.2022469497929357, 2.1694948546399642e-05], [-0.005234606452187881, -0.10396388698243446, -9.955235600903e-05], [0.0066848803416066855, -0.0472414026586867, -7.693720946581143e-07], [0.0018055343572653977, -0.023328503489483045, 1.783200125608763e-05], [0.00911893440640505, -0.18624411376989555, -1.8858154789910417e-05], [0.001785568748281614, -0.03407140491859625, -0.00015030654918587915], [-0.004183702157081309, -0.10354019489959473, -2.1251877370324684e-05], [-0.02277833015355413, -0.23648196022934387, 2.149633984731846e-05], [-0.009064360729736036, -0.15086471316402528, 1.9806996664483674e-06], [-0.0005699402499072721, -0.040285061714169866, -6.15927439267623e-05], [0.002789363459745649, -0.011697399876885806, -5.41492852412933e-05], [-0.008740587467534922, -0.09403072985342249, -1.611825383438946e-05], [0.004134055467530686, -0.00448134149461956, 0.0003691173517476869], [-0.0047623779994051966, -0.035066150993730505, 0.0001719306272539955], [-0.002324737212316056, -0.19696061061581216, 6.430065245503647e-06], [0.006000213083866412, -0.07395648354869405, -1.3565042340527273e-06], [0.016877995483229682, -0.14725962291913441, -0.00015628897651577718], [-0.016579542201933275, -0.14762761760272083, 0.00011150113674774913], [-0.0019343675479873911, -0.049237037546837, -0.00010602548680708974], [0.01573104166553211, -0.23476737115887103, 6.018597952848708e-05], [-0.014698694339728905, -0.10673113417745116, 0.00012731240794725557], [-0.008445660443001195, -0.23523249736429563, 3.531713750108804e-05], [0.004847195595390633, -0.037606659426966886, -5.679698744740359e-05], [-0.02217017303671245, -0.23221647333200846, 6.256817993203859e-05], [-0.00936850299577614, -0.07424679126162921, 0.00016802592884903954], [-0.009034255068774023, -0.16580136995550182, -2.210720322609538e-05], [0.0015498536949551784, -0.09533124477439951, -9.936975858730833e-05], [0.019899516766625512, -0.0974714727460287, 3.876997850458261e-05], [0.011557320113361559, -0.14329738746055554, -2.2224290296562978e-05], [0.00670975870129458, -0.14631587502060275, -4.622701796455326e-05], [0.0029500748985796968, -0.007587771347450137, -3.316837896089389e-05], [-0.0021163412124389214, -0.02226578496792461, 3.971256234000763e-05], [0.0034006863151657464, -0.06643998684943668, -0.00013711812027878962], [-0.005284308304806084, -0.02630022478650845, -3.974476375287106e-05], [-0.0032401375544913965, -0.129402847828598, 6.979238774931435e-06], [-0.005292453264164952, -0.048535103103595316, 0.00017550814260496785], [-0.003129657170185478, -0.00815839981126862, 2.9365852242446174e-05], [-0.015347535351164718, -0.080186392593005, 0.00018293749215921414], [0.017870927003141683, -0.06924865050264141, -8.549858962245419e-05], [0.009318277584630184, -0.04482952406614471, 0.00025681720837546343], [-0.0036849635474096383, -0.0545130961277309, -0.00018950366216507385], [-0.023957543688424943, -0.15638982275016278, 9.002360645165674e-06], [0.00011980196798867254, -0.1261185541376879, -3.661974713091775e-05], [0.0038206376744921895, -0.11110403435854212, -6.208674369184927e-05], [0.000739840878153109, -0.00032985893090413995, 0.0001997701288634631], [-0.0010537751013939517, -0.011586502931735194, -4.7725142258533696e-05], [0.0032839366123943383, -0.029926868369503607, -7.474692297108522e-06], [0.0006428289706887473, -0.0006353780713487634, 3.930517327115508e-05], [-0.007149808430783663, -0.12015935179726105, -6.934430667848144e-05], [0.008241972570169119, -0.012875121895295652, 0.00012329341961931162], [0.011308396899561264, -0.17266671321249147, 1.8348620751227294e-05], [-0.0029227647728862958, -0.020303913586910503, -8.993561062283279e-05], [0.016994832884571837, -0.15854040203000394, 0.00010391382206097842], [-0.021601509385794547, -0.17500331929740193, -7.260442982323827e-05], [0.0011241549001093647, -0.17215721122006436, -4.169673536849117e-06], [0.0009220717648264838, -0.17254614009167898, -1.1056763703576485e-05], [-0.017100220942158156, -0.1936486449148071, -6.206465818351112e-05], [-0.013155772648923508, -0.03390519408132485, 1.5701218930189476e-05], [0.002089487347361176, -0.023603362086060252, -0.00017539479429108882], [-0.02331346124498499, -0.20759573478252957, -9.585765239628343e-06], [0.0014585953866193967, -0.004374498368872392, -0.00021742930099121616], [0.007748755404422952, -0.10367622610188461, -2.7506029705492017e-05], [-0.009088999162651356, -0.18358274506496028, -5.2771472150972035e-06], [0.0064734115335198916, -0.05747738560869291, 3.072169823354189e-05], [-0.015688683151827542, -0.09406160349570265, -0.0002869011831787042], [0.017098050690927354, -0.2059500568435596, 7.003913631949093e-05], [0.007550993568626871, -0.19782564074693507, 2.056612555023683e-06], [-0.004405948379552066, -0.004660132080875742, -0.00032510795574602284], [-0.0013791151199201877, -0.0027539341394993873, -1.4685024535744914e-05], [-0.007819835427466932, -0.07490073564142656, -5.5975498521281065e-05], [-0.0010449794699451563, -0.0005873809241526606, -0.00012432753085997797], [0.010906650981467295, -0.10772782755093278, 0.00014563427238699188], [0.0015598775636906164, -0.15612717620325858, -2.8717833075371612e-05], [-0.0029427590727757872, -0.009390490332287033, 0.0002947206466447012], [0.0007171085954466542, -0.001229138063293001, 0.0002052653590047439], [-0.00785770886333388, -0.1469577742833703, -5.319483959787298e-05], [0.02042222833167455, -0.11653497272936135, -0.00017246394657709178], [0.00014322488020268833, -0.015170741288762174, -3.62766469686265e-05], [-0.0022321969370440436, -0.005554635908765699, -0.00032276021391777375], [-0.014217567514836018, -0.05150569371897917, -0.00031112696910617427], [0.0075971325675473, -0.08566535718247638, -5.436253783744152e-05], [-0.010610190648446226, -0.045881412344830265, 0.0002566900658341423], [-0.017157737855088565, -0.21209385070435674, 7.457562728946212e-05], [-0.006681814328952554, -0.05751604276640436, 0.00016866620347567507], [-0.016552295177400287, -0.058176503190960835, -0.00012278665976681987], [0.0022918213411978524, -0.005858461758975281, 0.00031593794813395917], [0.005057384501615287, -0.04733983991088358, -0.00011229535342275393], [-0.007577506275781978, -0.04366202548341911, -0.00032205343713049314], [0.001591622897304075, -0.0010258814097072872, -0.00029056970673260827], [0.02447134527754342, -0.22365281210790836, 4.372301853532001e-05], [0.011854464078115865, -0.03381205127606445, -0.00029789548262668347], [-0.0005537457055101257, -0.0004659636158949708, -0.00017542800942734943], [-0.009970435829693808, -0.11099679606483158, -5.61290497500141e-05], [0.012626951225375686, -0.03406186357854554, 0.00019163038631046022], [-0.0053636964840757285, -0.17787297901584065, 1.4028604729798233e-05], [-0.002298011406386753, -0.032118839389439, -0.0001747708982496748], [0.004936668580805708, -0.12042133778042453, -5.683055745100676e-05], [-0.004836764767149472, -0.005138079424297299, 0.0002461336664198399], [0.0012413752470241252, -0.002674347101444225, -8.18422537208427e-06], [-0.014681783470886004, -0.1633559084962163, 9.831866184441887e-05], [-0.0011363723192301528, -0.22096159646215877, 2.3993172345666708e-05], [0.004681502442111138, -0.019121442268186337, -2.238406809929413e-05], [-0.010585885369231569, -0.03561168755486114, -0.00042403802272911705], [-0.0005847959643752251, -0.0004311319078052964, 8.61137361672133e-06], [-0.0032162069176400513, -0.0027436383588714673, 0.00026965916041634904], [-0.021462540185490032, -0.12292930623110676, -0.00013802085703785446], [0.0214803242880932, -0.1926137828402294, -5.9340089146688984e-05], [0.00943082065845722, -0.09225334209793773, -0.00020534968665070764], [0.002564717952448381, -0.23626400991499638, 4.342310456743185e-05], [-0.0008325187303545666, -0.07903770468945215, -5.02421661261825e-05], [-0.007219341287975378, -0.0661486568020673, -1.2984447490708737e-05], [0.0022290476162314396, -0.06442349543458151, -6.320829431611662e-06], [-0.024424886540592616, -0.17964340295720388, -1.0460544936184316e-05], [0.008110569099347759, -0.017047233968813153, 0.0003310866015413688], [0.00024695345473505533, -0.0003153092896293182, 8.96748374406553e-05], [-0.004483265492113935, -0.017602535034487696, -4.120559698171391e-05], [0.009432372825554614, -0.18951675283974498, 1.9743161191488543e-05], [-0.00567815590401143, -0.1581611436532398, -5.0421603561360854e-05], [-0.009793062688617722, -0.1434323550526577, -0.00013871160295767982], [-0.008952245742248925, -0.12185718889250384, -0.00017855529520855313], [0.0159448525783437, -0.052945941887670205, 1.2081175241413855e-05], [-0.0169180333672281, -0.2054840558516646, -4.3999044993305776e-05], [0.016029854102943088, -0.21897497245200592, 5.990521691049423e-05], [-0.004739400599075967, -0.22179649978745264, 1.280147416520472e-05], [0.010367143472411473, -0.019672210132912905, -0.0002012714642515678], [-0.006635391405465332, -0.046018709246371, -7.792282523304661e-05], [-0.0214657707561511, -0.18766564049120965, 9.377514907039615e-05], [0.0025723264606546275, -0.13629349311205494, -5.1086870259189505e-05], [-0.01014694767207669, -0.17293585723001623, -8.732807145655363e-05], [-0.007543091565079472, -0.01521311702457654, -0.000456530629594347], [-0.007974733185043896, -0.09138764071650042, 0.00011684776774413202], [0.000127124507014847, -0.00029368950645064794, 4.0815258814065605e-06], [-0.007927859905191608, -0.02407384508656054, -0.0004229295941637282], [-0.0069854074992466335, -0.029744467862618647, 0.00025265926100055734], [0.0076406242431777925, -0.04694961461378183, -0.0003345015853383453], [-0.003430646797492074, -0.030930610997661864, -1.0900284754252454e-05], [0.02366975999610649, -0.20255629264811692, 5.221975285260687e-05], [0.0016526706837128714, -0.0010953417274726072, 0.0002814515184077147], [0.00015352066274601473, -0.18373739178583426, 4.6287833978324203e-07], [0.0017343997322311988, -0.0036549036918083313, -0.00014126644653736473], [-0.006965289247493452, -0.018721792381111095, 0.0003763064359371898], [0.02339174618867332, -0.1579119416940276, -4.985760638043768e-05], [0.02318239879563584, -0.1260868048264827, -1.7549317200105796e-05], [-0.005898492112857696, -0.009897022853665704, 0.0003939025368851725], [-0.0016382943194276774, -0.005372926028853866, 8.584011969875292e-05], [0.0047477562582492715, -0.004237273309537923, 3.772603409729461e-05], [-0.007276204006352378, -0.08351977112440005, -8.33640485983003e-05], [0.01966270292872442, -0.11746688554547863, 0.00014951540397300402], [-0.0053067708609603305, -0.07759761081254168, -2.0514668381176337e-05], [-0.022509388645320587, -0.12268811323673968, 3.107651525655538e-05], [0.016752391458120863, -0.15768127892861905, -0.000145480320558137], [-0.004896728182503574, -0.03479901259076686, -0.0001714789993123178], [0.010106899176274555, -0.11328246057248367, -4.088695146534767e-05], [-0.001744085592372935, -0.001674313721967723, 0.00038895170325080027], [-0.004944004133284966, -0.14252681561869798, 2.802422709224853e-05], [0.021603973892904152, -0.14237998494557497, 9.761914778766308e-05], [0.008507882839224842, -0.12766032453614187, 1.3581184266949358e-05], [-0.008950488926467968, -0.2047162209881548, 5.628930768460759e-05], [-0.00704191070604787, -0.1833529702760669, 6.060081930566368e-05], [-0.023794813646661604, -0.16216859159861477, -7.892399098235225e-05], [0.014404416618393203, -0.04704128878114244, 0.00021813513276487372], [0.0003323086877201807, -0.11133687457481521, -3.232435178948439e-05], [0.0026358556314776097, -0.22122678594028775, 1.8875180539013672e-05], [0.024936825141423178, -0.17220826067130604, -4.209343697345528e-05], [0.001329030170329357, -0.009500469432280442, -0.00013053282420115667], [0.00020864729297839364, -0.00025235646149812197, -2.5266379922335503e-05], [0.007477996872293626, -0.20497555719781857, 4.571812634547143e-05], [0.002941173367479321, -0.09455200890137751, -5.647818796180236e-06], [0.008824243507253488, -0.07018825540431477, 0.00019608286873247385], [-0.024000765035634215, -0.19641982546242792, -3.17764878681496e-05], [0.011708700248768775, -0.23677018159671503, 3.538203689534572e-05], [0.004209826046075282, -0.0328654639718163, 0.00016778540128337184], [0.0034998875569743453, -0.2363493973707663, 3.2265099204266475e-05], [0.015438950044916454, -0.10077866884706685, -0.0002445004481637129], [0.0016572287241226416, -0.005773038530617095, 4.4205677870030596e-05], [-0.0018454181445882716, -0.07889268138974787, -9.047536893100045e-06], [0.023701154890428438, -0.23647921794884424, 1.251521659186309e-05], [0.01267843621785791, -0.1375849363765024, 0.00012390655691529252], [-0.015938115985902404, -0.06632135724773425, -0.0003261264571759548], [0.008800156320888583, -0.16996204252763933, 6.379966141628774e-05], [0.005680571735030459, -0.007660170852930661, -0.0005002296373690768], [-0.011531251891634883, -0.039468636704241555, 0.0003032739084493955], [0.004337401790419328, -0.17371609364882454, -2.539458058093306e-05], [0.002325948564175215, -0.002079700340368611, 0.0004016735755226147], [0.010821104088545955, -0.08629350255109412, 0.00018916093713245834], [-0.002883900105725622, -0.07025445375362792, -0.00015231050799326088], [0.006368431401886027, -0.009763858526968221, 0.00040000350652698416], [-0.00722606831828323, -0.2362494585781009, 2.1132757111542283e-05], [0.007451068266917487, -0.01550862202632819, -0.0004196405835819302], [-0.014895016477696275, -0.06624148205280592, 0.0002270710691951648], [0.006816288651538122, -0.18893475500851684, -3.032863562989858e-05], [0.002822230594682464, -0.1504533660537888, 1.2194714836680731e-05], [-0.0022184925878415943, -0.10620381714400268, -9.98858475323192e-05], [0.008403983420108762, -0.02405496447963097, -0.00040262164358189565], [-0.00889560903900647, -0.013110626490928175, -3.059609469774387e-06], [0.007057116961235985, -0.11935691749613689, 8.243645510985374e-05], [0.0034629447987082024, -0.028787486335283337, -0.00022720789561020934], [-0.01519437223272712, -0.22068187593563515, -9.737945990060424e-06], [-0.0053220990077604115, -0.054794006752785056, -5.294884586312693e-06], [0.0005374806840803679, -0.0023342128328732266, -0.00011075306809594146], [0.02000021906167237, -0.1845639940525424, 7.53595562830431e-05], [-0.0015149221596496983, -0.0009772452641489836, 0.00026104220147417855], [0.02470181594236578, -0.191795189730525, 4.9795477676722985e-05], [-0.010165063515651423, -0.01966799913085664, -0.0002904887428611217], [-0.0063588887392219285, -0.20837453879432677, 9.698822143695703e-06], [-0.0042996144113482335, -0.03831886026574821, 3.791044560330238e-05], [0.004819312312844409, -0.07679370712272496, 7.711678765329648e-05], [-0.0006034922688562092, -0.10654156331156799, -4.194371924876998e-05], [0.01614035302755197, -0.0673792078374102, -0.00028495825975647325], [-0.00876841656455384, -0.15544858017210714, -0.00011329322966901918], [0.013865200802805207, -0.13831417331214937, -0.00017446606897262272], [0.0045962658997517735, -0.026170087703000285, -6.245071974701246e-05], [-0.004096928454542623, -0.019826054785029284, -0.00030890846882841835], [-0.0015702834190457259, -0.0022982042006360415, -0.00016151757562404766], [0.002446422629953554, -0.05494246096560998, -0.00012319809849600322], [-0.014800873532418891, -0.08538979989468598, -0.0003179988601560586], [-0.000846725816451589, -0.04371050181034212, -2.605215252375498e-06], [0.008628416574395168, -0.18354349984718782, 6.109210228036071e-05], [-0.012418765616209873, -0.04521400983552198, -0.00039251493724686134], [-0.008486553707432907, -0.12992683318754977, -7.726413912495634e-05], [0.0027459531706635724, -0.0021598463411103817, -0.00010689846342741601], [-0.01700358102831324, -0.051178066100786505, -8.037751262594403e-05], [-0.0020898864302037086, -0.010469404528391837, 8.80114536326756e-05], [-0.020362880394330252, -0.08230091424324658, -6.461417366828473e-06], [-0.0028123628946291894, -0.0475869105715964, -0.0001693205272767648], [0.012048221009920632, -0.13270391392945327, -3.867601528240621e-05]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/sofa_scene.py new file mode 100644 index 0000000..879cb9b --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction/sofa_scene.py @@ -0,0 +1,110 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.sofa.conventions import ELEMENTS +from common.sofa.prefabs.base import ScenePrefab + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.Engine.Select", + "Sofa.Component.IO.Mesh", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + element = ELEMENTS[case['element']] + boundary_kind_name, mapping = element.boundary_mappings[0] + boundary_kind = ELEMENTS[boundary_kind_name] + + length, radius = case['geometry']['length'], case['geometry']['radius'] + eps = 1e-6 * radius + left_box = [-eps, -radius - eps, -radius - eps, eps, radius + eps, radius + eps] + right_box = [length - eps, -radius - eps, -radius - eps, length + eps, radius + eps, radius + eps] + + with root.addChild('Beam') as mechanical: + mechanical.addObject('MeshGmshLoader', name='loader', filename=os.path.join(CASE_DIR, case['mesh']['file'])) + mechanical.addObject(element.container, name='topology', src='@loader') + mechanical.addObject('MechanicalObject', name='dofs', template='Vec3d', src='@loader') + ScenePrefab.add_force_field(mechanical, case['forceField'], case['material'], template=f'Vec3d,{element.cpp}') + ScenePrefab.add_solvers(mechanical, case['solvers']) + + # The left face is clamped. + mechanical.addObject('BoxROI', name='leftFace', box=left_box, position='@dofs.rest_position') + mechanical.addObject('FixedProjectiveConstraint', name='clamp', indices='@leftFace.indices') + + with mechanical.addChild(boundary_kind_name) as boundary: + boundary.addObject(boundary_kind.container, name='topology') + boundary.addObject(boundary_kind.container.replace('Container', 'Modifier')) + boundary.addObject(mapping, input='@../topology', output='@topology') + + boundary.addObject('BoxROI', name='rightFace', box=right_box, position='@../dofs.rest_position', + **{boundary_kind.data_name: f'@topology.{boundary_kind.data_name}'}) + + with boundary.addChild('LoadedFace') as loaded_face: + loaded_face.addObject(boundary_kind.container, name='face', position='@../../dofs.rest_position', + **{boundary_kind.data_name: + f'@../rightFace.{boundary_kind.data_name}InROI'}) + loaded_face.addObject('NodalSourceDensity', name='loadDensity', template='Vec3d', + property=[[0.0, -case['load']['magnitude'], 0.0]]) + loaded_face.addObject('VectorSourceTerm', name='traction', template=f'Vec3d,{boundary_kind.cpp}', + sourceDensity='@loadDensity') + loaded_face.addObject('FEMSourceTermIntegrator', name='load', template=f'Vec3d,{boundary_kind.cpp}', + topology='@face', quadratureDegree=1, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + + build(root, case[sys.argv[1]]) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :3].copy() + u = mechanical.dofs.position.array()[:, :3] - x0 + boundary_kind_name, _ = ELEMENTS[case['element']].boundary_mappings[0] + boundary = mechanical.getChild(boundary_kind_name).topology + faces = getattr(boundary, ELEMENTS[boundary_kind_name].data_name).array().copy() + return x0, u, faces + + +def main(case): + x, u, faces = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + for sub_case in json.load(f).values(): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/case.json b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/case.json new file mode 100644 index 0000000..0877dc7 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/case.json @@ -0,0 +1,38 @@ +{ + "hexa": { + "geometry": { "type": "Beam3D", "length": 1.0, "width": 0.2, "height": 0.2 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [11, 5, 5] }, + "load": { "type": "distributedTransverseTraction", "magnitude": 1.0 }, + "tolerance": { "rms": 1e-10 } + }, + "tet": { + "geometry": { "type": "Beam3D", "length": 1.0, "width": 0.2, "height": 0.2 }, + "element": "tet", + "swapping": true, + "gridMapping": { "swapping": true }, + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [11, 5, 5] }, + "load": { "type": "distributedTransverseTraction", "magnitude": 1.0 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/fenics_scene.py new file mode 100644 index 0000000..11f9404 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/fenics_scene.py @@ -0,0 +1,90 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import LinearProblem + +from common.fenics import BeamMesh +from common.geometry import Beam3D + +PETSC_OPTIONS = {'ksp_type': 'preonly', 'pc_type': 'lu'} + + +def build(case): + geometry = Beam3D(length=case['geometry']['length'], width=case['geometry']['width'], + height=case['geometry']['height']) + grid = BeamMesh(geometry, case['mesh']['resolution'], element=case['element'], + swapping=case.get('swapping', True)) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1, (3,))) + + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - 2 * poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(3) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + + top_facets = dmesh.locate_entities_boundary( + domain, domain.topology.dim - 1, lambda x: np.isclose(x[1], geometry.width)) + facet_tags = dmesh.meshtags(domain, domain.topology.dim - 1, top_facets, + np.full_like(top_facets, 1, dtype=np.int32)) + ds = ufl.Measure('ds', domain=domain, subdomain_data=facet_tags) + + traction = fem.Constant(domain, default_scalar_type((0.0, -case['load']['magnitude'], 0.0))) + + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.dot(traction, v) * ds(1) + + clamped = fem.locate_dofs_geometrical(V, lambda x: np.isclose(x[0], 0.0)) + bc = fem.dirichletbc(np.zeros(3, dtype=default_scalar_type), clamped, V) + + return grid, V, a, L, bc + + +def solve(case): + grid, V, a, L, bc = build(case) + + problem = LinearProblem(a, L, bcs=[bc], petsc_options=PETSC_OPTIONS) + solution = problem.solve() + + coords = V.tabulate_dof_coordinates()[:, :3] + values = solution.x.array.reshape(-1, 3) + return coords[grid.inverse], values[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/reference_solution.json new file mode 100644 index 0000000..55f3837 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/reference_solution.json @@ -0,0 +1 @@ +{"hexa": {"fenics": {"x": [[-1.510554047423433e-19, 9.013887592422957e-19, -1.1802794119298727e-18], [0.1, 9.013887592422957e-19, -1.1802794119298727e-18], [0.2, 9.013887592422957e-19, -1.1802794119298727e-18], [0.30000000000000004, 9.013887592422957e-19, -1.1802794119298727e-18], [0.4, 9.013887592422957e-19, -1.1802794119298727e-18], [0.5, 9.013887592422957e-19, -1.1802794119298727e-18], [0.6000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [0.7000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [0.8, 9.013887592422957e-19, -1.1802794119298727e-18], [0.9000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [1.0, 1.180279411929873e-18, 2.568058192711319e-18], [-1.510554047423433e-19, 0.05000000000000001, -1.1802794119298727e-18], [0.1, 0.05000000000000001, -1.1802794119298727e-18], [0.2, 0.05000000000000001, -1.1802794119298727e-18], [0.30000000000000004, 0.05000000000000001, -1.1802794119298727e-18], [0.4, 0.05000000000000001, -1.1802794119298727e-18], [0.5, 0.05000000000000001, -1.1802794119298727e-18], [0.6000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [0.7000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [0.8, 0.05000000000000001, -1.1802794119298727e-18], [0.9000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [1.0, 0.05, 2.568058192711319e-18], [-1.510554047423433e-19, 0.10000000000000002, -1.1802794119298727e-18], [0.1, 0.10000000000000002, -1.1802794119298727e-18], [0.2, 0.10000000000000002, -1.1802794119298727e-18], [0.30000000000000004, 0.10000000000000002, -1.1802794119298727e-18], [0.4, 0.10000000000000002, -1.1802794119298727e-18], [0.5, 0.10000000000000002, -1.1802794119298727e-18], [0.6000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [0.7000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [0.8, 0.10000000000000002, -1.1802794119298727e-18], [0.9000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [1.0, 0.1, 2.568058192711319e-18], [-1.510554047423433e-19, 0.15000000000000002, -1.1802794119298727e-18], [0.1, 0.15000000000000002, -1.1802794119298727e-18], [0.2, 0.15000000000000002, -1.1802794119298727e-18], [0.30000000000000004, 0.15000000000000002, -1.1802794119298727e-18], [0.4, 0.15000000000000002, -1.1802794119298727e-18], [0.5, 0.15000000000000002, -1.1802794119298727e-18], [0.6000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [0.7000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [0.8, 0.15000000000000002, -1.1802794119298727e-18], [0.9000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [1.0, 0.15000000000000002, 2.568058192711319e-18], [-8.17561727994633e-18, 0.2, -2.9830569304144645e-18], [0.09999999999999999, 0.2, -2.9830569304144645e-18], [0.2, 0.2, -2.9830569304144645e-18], [0.30000000000000004, 0.2, -2.9830569304144645e-18], [0.4, 0.2, -2.9830569304144645e-18], [0.5, 0.2, -2.9830569304144645e-18], [0.6000000000000001, 0.2, -2.9830569304144645e-18], [0.7000000000000001, 0.2, -2.9830569304144645e-18], [0.8, 0.2, -2.9830569304144645e-18], [0.9, 0.2, -2.9830569304144645e-18], [1.0000000000000002, 0.20000000000000004, 6.452503882368078e-18], [-1.510554047423433e-19, 9.013887592422957e-19, 0.05], [0.1, 9.013887592422957e-19, 0.05], [0.2, 9.013887592422957e-19, 0.05], [0.30000000000000004, 9.013887592422957e-19, 0.05], [0.4, 9.013887592422957e-19, 0.05], [0.5, 9.013887592422957e-19, 0.05], [0.6000000000000001, 9.013887592422957e-19, 0.05], [0.7000000000000001, 9.013887592422957e-19, 0.05], [0.8, 9.013887592422957e-19, 0.05], [0.9000000000000001, 9.013887592422957e-19, 0.05], [1.0, 1.180279411929873e-18, 0.05], [-1.510554047423433e-19, 0.05000000000000001, 0.05], [0.1, 0.05000000000000001, 0.05], [0.2, 0.05000000000000001, 0.05], [0.30000000000000004, 0.05000000000000001, 0.05], [0.4, 0.05000000000000001, 0.05], [0.5, 0.05000000000000001, 0.05], [0.6000000000000001, 0.05000000000000001, 0.05], [0.7000000000000001, 0.05000000000000001, 0.05], [0.8, 0.05000000000000001, 0.05], [0.9000000000000001, 0.05000000000000001, 0.05], [1.0, 0.05, 0.05], [-1.510554047423433e-19, 0.10000000000000002, 0.05], [0.1, 0.10000000000000002, 0.05], [0.2, 0.10000000000000002, 0.05], [0.30000000000000004, 0.10000000000000002, 0.05], [0.4, 0.10000000000000002, 0.05], [0.5, 0.10000000000000002, 0.05], [0.6000000000000001, 0.10000000000000002, 0.05], [0.7000000000000001, 0.10000000000000002, 0.05], [0.8, 0.10000000000000002, 0.05], [0.9000000000000001, 0.10000000000000002, 0.05], [1.0, 0.1, 0.05], [-1.510554047423433e-19, 0.15000000000000002, 0.05], [0.1, 0.15000000000000002, 0.05], [0.2, 0.15000000000000002, 0.05], [0.30000000000000004, 0.15000000000000002, 0.05], [0.4, 0.15000000000000002, 0.05], [0.5, 0.15000000000000002, 0.05], [0.6000000000000001, 0.15000000000000002, 0.05], [0.7000000000000001, 0.15000000000000002, 0.05], [0.8, 0.15000000000000002, 0.05], [0.9000000000000001, 0.15000000000000002, 0.05], [1.0, 0.15000000000000002, 0.05], [-8.17561727994633e-18, 0.2, 0.049999999999999996], [0.09999999999999999, 0.2, 0.049999999999999996], [0.2, 0.2, 0.049999999999999996], [0.30000000000000004, 0.2, 0.049999999999999996], [0.4, 0.2, 0.049999999999999996], [0.5, 0.2, 0.049999999999999996], [0.6000000000000001, 0.2, 0.049999999999999996], [0.7000000000000001, 0.2, 0.049999999999999996], [0.8, 0.2, 0.049999999999999996], [0.9, 0.2, 0.049999999999999996], [1.0000000000000002, 0.20000000000000004, 0.050000000000000024], [-1.510554047423433e-19, 9.013887592422957e-19, 0.1], [0.1, 9.013887592422957e-19, 0.1], [0.2, 9.013887592422957e-19, 0.1], [0.30000000000000004, 9.013887592422957e-19, 0.1], [0.4, 9.013887592422957e-19, 0.1], [0.5, 9.013887592422957e-19, 0.1], [0.6000000000000001, 9.013887592422957e-19, 0.1], [0.7000000000000001, 9.013887592422957e-19, 0.1], [0.8, 9.013887592422957e-19, 0.1], [0.9000000000000001, 9.013887592422957e-19, 0.1], [1.0, 1.180279411929873e-18, 0.1], [-1.510554047423433e-19, 0.05000000000000001, 0.1], [0.1, 0.05000000000000001, 0.1], [0.2, 0.05000000000000001, 0.1], [0.30000000000000004, 0.05000000000000001, 0.1], [0.4, 0.05000000000000001, 0.1], [0.5, 0.05000000000000001, 0.1], [0.6000000000000001, 0.05000000000000001, 0.1], [0.7000000000000001, 0.05000000000000001, 0.1], [0.8, 0.05000000000000001, 0.1], [0.9000000000000001, 0.05000000000000001, 0.1], [1.0, 0.05, 0.1], [-1.510554047423433e-19, 0.10000000000000002, 0.1], [0.1, 0.10000000000000002, 0.1], [0.2, 0.10000000000000002, 0.1], [0.30000000000000004, 0.10000000000000002, 0.1], [0.4, 0.10000000000000002, 0.1], [0.5, 0.10000000000000002, 0.1], [0.6000000000000001, 0.10000000000000002, 0.1], [0.7000000000000001, 0.10000000000000002, 0.1], [0.8, 0.10000000000000002, 0.1], [0.9000000000000001, 0.10000000000000002, 0.1], [1.0, 0.1, 0.1], [-1.510554047423433e-19, 0.15000000000000002, 0.1], [0.1, 0.15000000000000002, 0.1], [0.2, 0.15000000000000002, 0.1], [0.30000000000000004, 0.15000000000000002, 0.1], [0.4, 0.15000000000000002, 0.1], [0.5, 0.15000000000000002, 0.1], [0.6000000000000001, 0.15000000000000002, 0.1], [0.7000000000000001, 0.15000000000000002, 0.1], [0.8, 0.15000000000000002, 0.1], [0.9000000000000001, 0.15000000000000002, 0.1], [1.0, 0.15000000000000002, 0.1], [-8.17561727994633e-18, 0.2, 0.1], [0.09999999999999999, 0.2, 0.1], [0.2, 0.2, 0.1], [0.30000000000000004, 0.2, 0.1], [0.4, 0.2, 0.1], [0.5, 0.2, 0.1], [0.6000000000000001, 0.2, 0.1], [0.7000000000000001, 0.2, 0.1], [0.8, 0.2, 0.1], [0.9, 0.2, 0.1], [1.0000000000000002, 0.20000000000000004, 0.10000000000000003], [-1.510554047423433e-19, 9.013887592422957e-19, 0.15000000000000002], [0.1, 9.013887592422957e-19, 0.15000000000000002], [0.2, 9.013887592422957e-19, 0.15000000000000002], [0.30000000000000004, 9.013887592422957e-19, 0.15000000000000002], [0.4, 9.013887592422957e-19, 0.15000000000000002], [0.5, 9.013887592422957e-19, 0.15000000000000002], [0.6000000000000001, 9.013887592422957e-19, 0.15000000000000002], [0.7000000000000001, 9.013887592422957e-19, 0.15000000000000002], [0.8, 9.013887592422957e-19, 0.15000000000000002], [0.9000000000000001, 9.013887592422957e-19, 0.15000000000000002], [1.0, 1.180279411929873e-18, 0.15000000000000002], [-1.510554047423433e-19, 0.05000000000000001, 0.15000000000000002], [0.1, 0.05000000000000001, 0.15000000000000002], [0.2, 0.05000000000000001, 0.15000000000000002], [0.30000000000000004, 0.05000000000000001, 0.15000000000000002], [0.4, 0.05000000000000001, 0.15000000000000002], [0.5, 0.05000000000000001, 0.15000000000000002], [0.6000000000000001, 0.05000000000000001, 0.15000000000000002], [0.7000000000000001, 0.05000000000000001, 0.15000000000000002], [0.8, 0.05000000000000001, 0.15000000000000002], [0.9000000000000001, 0.05000000000000001, 0.15000000000000002], [1.0, 0.05, 0.15000000000000002], [-1.510554047423433e-19, 0.10000000000000002, 0.15000000000000002], [0.1, 0.10000000000000002, 0.15000000000000002], [0.2, 0.10000000000000002, 0.15000000000000002], [0.30000000000000004, 0.10000000000000002, 0.15000000000000002], [0.4, 0.10000000000000002, 0.15000000000000002], [0.5, 0.10000000000000002, 0.15000000000000002], [0.6000000000000001, 0.10000000000000002, 0.15000000000000002], [0.7000000000000001, 0.10000000000000002, 0.15000000000000002], [0.8, 0.10000000000000002, 0.15000000000000002], [0.9000000000000001, 0.10000000000000002, 0.15000000000000002], [1.0, 0.1, 0.15000000000000002], [-1.510554047423433e-19, 0.15000000000000002, 0.15000000000000002], [0.1, 0.15000000000000002, 0.15000000000000002], [0.2, 0.15000000000000002, 0.15000000000000002], [0.30000000000000004, 0.15000000000000002, 0.15000000000000002], [0.4, 0.15000000000000002, 0.15000000000000002], [0.5, 0.15000000000000002, 0.15000000000000002], [0.6000000000000001, 0.15000000000000002, 0.15000000000000002], [0.7000000000000001, 0.15000000000000002, 0.15000000000000002], [0.8, 0.15000000000000002, 0.15000000000000002], [0.9000000000000001, 0.15000000000000002, 0.15000000000000002], [1.0, 0.15000000000000002, 0.15000000000000002], [-8.17561727994633e-18, 0.2, 0.15000000000000002], [0.09999999999999999, 0.2, 0.15000000000000002], [0.2, 0.2, 0.15000000000000002], [0.30000000000000004, 0.2, 0.15000000000000002], [0.4, 0.2, 0.15000000000000002], [0.5, 0.2, 0.15000000000000002], [0.6000000000000001, 0.2, 0.15000000000000002], [0.7000000000000001, 0.2, 0.15000000000000002], [0.8, 0.2, 0.15000000000000002], [0.9, 0.2, 0.15000000000000002], [1.0000000000000002, 0.20000000000000004, 0.15000000000000005], [7.089949308649572e-18, 1.180279411929873e-18, 0.20000000000000004], [0.10000000000000003, 1.180279411929873e-18, 0.20000000000000004], [0.20000000000000007, 1.180279411929873e-18, 0.20000000000000004], [0.3000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.4000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.5000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.6000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.7000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.8000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.9000000000000002, 1.180279411929873e-18, 0.20000000000000004], [1.0000000000000002, 1.0615840224712416e-17, 0.20000000000000007], [7.089949308649572e-18, 0.05000000000000001, 0.20000000000000004], [0.10000000000000003, 0.05000000000000001, 0.20000000000000004], [0.20000000000000007, 0.05000000000000001, 0.20000000000000004], [0.3000000000000001, 0.05000000000000001, 0.20000000000000004], [0.4000000000000001, 0.05000000000000001, 0.20000000000000004], [0.5000000000000001, 0.05000000000000001, 0.20000000000000004], [0.6000000000000002, 0.05000000000000001, 0.20000000000000004], [0.7000000000000002, 0.05000000000000001, 0.20000000000000004], [0.8000000000000002, 0.05000000000000001, 0.20000000000000004], [0.9000000000000002, 0.05000000000000001, 0.20000000000000004], [1.0000000000000002, 0.05000000000000003, 0.20000000000000007], [7.089949308649572e-18, 0.10000000000000002, 0.20000000000000004], [0.10000000000000003, 0.10000000000000002, 0.20000000000000004], [0.20000000000000007, 0.10000000000000002, 0.20000000000000004], [0.3000000000000001, 0.10000000000000002, 0.20000000000000004], [0.4000000000000001, 0.10000000000000002, 0.20000000000000004], [0.5000000000000001, 0.10000000000000002, 0.20000000000000004], [0.6000000000000002, 0.10000000000000002, 0.20000000000000004], [0.7000000000000002, 0.10000000000000002, 0.20000000000000004], [0.8000000000000002, 0.10000000000000002, 0.20000000000000004], [0.9000000000000002, 0.10000000000000002, 0.20000000000000004], [1.0000000000000002, 0.10000000000000006, 0.20000000000000007], [7.089949308649572e-18, 0.15000000000000005, 0.20000000000000004], [0.10000000000000003, 0.15000000000000005, 0.20000000000000004], [0.20000000000000007, 0.15000000000000005, 0.20000000000000004], [0.3000000000000001, 0.15000000000000005, 0.20000000000000004], [0.4000000000000001, 0.15000000000000005, 0.20000000000000004], [0.5000000000000001, 0.15000000000000005, 0.20000000000000004], [0.6000000000000002, 0.15000000000000005, 0.20000000000000004], [0.7000000000000002, 0.15000000000000005, 0.20000000000000004], [0.8000000000000002, 0.15000000000000005, 0.20000000000000004], [0.9000000000000002, 0.15000000000000005, 0.20000000000000004], [1.0000000000000002, 0.15000000000000008, 0.20000000000000007], [3.3155635334012356e-17, 0.2000000000000001, 0.2000000000000001], [0.10000000000000009, 0.2000000000000001, 0.2000000000000001], [0.20000000000000015, 0.2000000000000001, 0.2000000000000001], [0.30000000000000027, 0.2000000000000001, 0.2000000000000001], [0.4000000000000003, 0.2000000000000001, 0.2000000000000001], [0.5000000000000003, 0.2000000000000001, 0.2000000000000001], [0.6000000000000004, 0.2000000000000001, 0.2000000000000001], [0.7000000000000005, 0.2000000000000001, 0.2000000000000001], [0.8000000000000005, 0.2000000000000001, 0.2000000000000001], [0.9000000000000006, 0.2000000000000001, 0.2000000000000001], [1.0000000000000004, 0.20000000000000007, 0.2000000000000001]], "u": [[0.0, 0.0, 0.0], [-0.005730546562100645, -0.004169561789942139, -0.001728289820929479], [-0.010474736752991045, -0.013173872408483844, -0.0013386747905435813], [-0.014303472896340355, -0.026663218737080784, -0.0010240992997578794], [-0.01718959319510028, -0.04334824801814095, -0.000747525987099853], [-0.019255148592476734, -0.06238708015866013, -0.0005228399804500264], [-0.020643096390756167, -0.08302980344810684, -0.00033685960545830427], [-0.02148850512781639, -0.10466737472446114, -0.00019233149707122588], [-0.02192713579767139, -0.12682457345077539, -8.906516414820556e-05], [-0.022093602930818298, -0.14916061208850456, -2.8794539400146035e-05], [-0.022126397484571205, -0.1714792383751897, -5.323610356282246e-06], [0.0, 0.0, 0.0], [-0.0026392211950564317, -0.0034286237616016585, -0.0008570799721453471], [-0.00506766299619012, -0.012728899877638268, -0.000680896236429372], [-0.006976382472988823, -0.02628779703635595, -0.000511814970069702], [-0.008437111831007465, -0.043078782422791055, -0.00037888190259649214], [-0.009484433291979509, -0.06219959790654492, -0.000266936886968325], [-0.010192546793515807, -0.08291079498131095, -0.00017511720101814738], [-0.010629521951871473, -0.1046011937590478, -0.00010361788571481992], [-0.010863394537685894, -0.1267960500830749, -5.2665762136438464e-05], [-0.010960846372275618, -0.14915622148166477, -2.2483839915896976e-05], [-0.010982297844542535, -0.17148081673914012, -8.879757272529481e-06], [0.0, 0.0, 0.0], [2.208248091084393e-06, -0.003222668776342732, -1.3405848130715918e-05], [2.209276328992468e-05, -0.012579519011767359, -1.535827796741469e-05], [3.904463807589851e-05, -0.0261833078285039, -1.5127041773386556e-05], [5.3672619571981526e-05, -0.04300145449292688, -1.4996525288483628e-05], [6.858232221241911e-05, -0.062151771527071804, -1.4984534665807876e-05], [8.359113531559162e-05, -0.0828852727923439, -1.5001786257905357e-05], [9.859821345547538e-05, -0.10459339012284577, -1.5000460921764945e-05], [0.00011359778376157347, -0.12680056134582723, -1.5000044016988797e-05], [0.00012859740976141663, -0.1491696826060653, -1.4999941302997032e-05], [0.00014359737995549366, -0.17149559895237362, -1.5000028344828172e-05], [0.0, 0.0, 0.0], [0.0026464610779819557, -0.003477251560979724, 0.0008287683628060325], [0.005114572253142313, -0.01278272554434302, 0.0006498877724387501], [0.007053967204678792, -0.02633788089149011, 0.00048138335462385014], [0.008544398939442442, -0.04312862080923625, 0.00034899587649551343], [0.009621599123761421, -0.06224957858286457, 0.00023695137249968228], [0.010359736260692132, -0.08296080357723881, 0.00014511576185968205], [0.010826717959985918, -0.10465119509303744, 7.361575097780348e-05], [0.01109058984190022, -0.12684604972698324, 2.2666021449794885e-05], [0.011218041179840705, -0.1492062213722363, -7.516081952730858e-06], [0.01126949264846341, -0.1715308167751666, -2.1120271879186087e-05], [0.0, 0.0, 0.0], [0.005756764232099537, -0.0042732327469440345, 0.0016979935993786865], [0.010522104107270476, -0.013277688531767131, 0.0013052916207567638], [0.014380280423526924, -0.026763606854990296, 0.0009939921518385363], [0.017296784915090097, -0.043447991307253526, 0.0007176940792092565], [0.019392356458468162, -0.06248705764577161, 0.0004928661927039521], [0.02081029176089, -0.08312981432654111, 0.00030684890583307855], [0.021685699476877925, -0.10476737683171526, 0.0001623299418382608], [0.022154330649082475, -0.12692457292391082, 5.906553469562653e-05], [0.022350797822078192, -0.14926061193577525, -1.2052943667088239e-06], [0.02241359235766434, -0.17157923842606168, -2.467644180063504e-05], [0.0, 0.0, 0.0], [-0.00557037677917199, -0.0047619514141968725, -0.0007882290087185297], [-0.010554842764172127, -0.013687527367693464, -0.0006965795398199098], [-0.014371697223239655, -0.027039331116945127, -0.0005067866164887503], [-0.017244265760566854, -0.04362517692983635, -0.00037391188902713993], [-0.01930021121067156, -0.06257820817589373, -0.0002611786000898495], [-0.02067941745008807, -0.08315119367524698, -0.00016859436664823683], [-0.021515731644063174, -0.10473426766566733, -9.643876147427063e-05], [-0.021945031196832485, -0.12685259829453902, -4.5029201360244036e-05], [-0.022102994559888813, -0.14916596918695324, -1.504516133048454e-05], [-0.0221320921528375, -0.17147771695922667, -2.9823645260769363e-06], [0.0, 0.0, 0.0], [-0.0025094447450930042, -0.003988852756017435, -0.0003994410699448973], [-0.005129342415931719, -0.013227812257276556, -0.0003558580410773026], [-0.007031659068380116, -0.026668185907569482, -0.00025460233627494174], [-0.008479579822676168, -0.04335533236620857, -0.000189686930538237], [-0.009520098824881596, -0.062391612106907655, -0.00013361562765093992], [-0.01022112792158063, -0.08303319910355918, -8.75549231772798e-05], [-0.01065097619341542, -0.10466946864802412, -5.168386524241706e-05], [-0.010877505069593655, -0.12682575252887932, -2.612981231199485e-05], [-0.010968202392013378, -0.14916275194955958, -1.121101009218618e-05], [-0.010986632261900461, -0.17147957124789606, -4.472957985381756e-06], [0.0, 0.0, 0.0], [5.066096452758101e-06, -0.003774015089448507, -6.339528351503261e-06], [2.2436641208371264e-05, -0.013072268106205731, -7.85685330110885e-06], [3.889702027457979e-05, -0.026563834036717644, -7.574717148262168e-06], [5.362932144470794e-05, -0.04327760663858852, -7.4849938708155355e-06], [6.85907127134573e-05, -0.062343670134191405, -7.49207967521184e-06], [8.359463324097126e-05, -0.0830078875858424, -7.5011495990803335e-06], [9.85977145148643e-05, -0.10466209394395883, -7.500477450474042e-06], [0.00011359759078756835, -0.126830919787315, -7.499952872012767e-06], [0.00012859742358468012, -0.1491766305374348, -7.499968508109675e-06], [0.00014359741794727968, -0.17149430169566623, -7.5000136276525065e-06], [0.0, 0.0, 0.0], [0.0025225320636843513, -0.0040365758099657175, 0.00038624875547806786], [0.005176775835222186, -0.013280829268233705, 0.00033982139421965895], [0.007108846566217117, -0.02671824395854276, 0.00023943155757259632], [0.008586795269286384, -0.04340522694439165, 0.00017474731459071277], [0.009657289545973233, -0.06244159553478878, 0.00011863072193510727], [0.010388322558665508, -0.08308320495813208, 7.255159646096722e-05], [0.010848171186614944, -0.10471946961065132, 3.668284153149407e-05], [0.011104699936904489, -0.12687575232544335, 1.1129941241957267e-05], [0.011225397263557127, -0.14921275186773647, -3.7889096810786103e-06], [0.011273827128978816, -0.17152957128574667, -1.0527072924263387e-05], [0.0, 0.0, 0.0], [0.005602489173845503, -0.00486426299821809, 0.0007740965263891114], [0.010602670557512133, -0.013789646939023329, 0.0006796801227266358], [0.014448070404906825, -0.027139841553913854, 0.0004916066046530045], [0.017351400961522552, -0.04372499917368147, 0.00035903014722401166], [0.019437441796224433, -0.06267819090285626, 0.00024619526616636916], [0.020846618465472488, -0.0832511980698229, 0.00015358842020583296], [0.02171292474566733, -0.10483426966674589, 8.14373693037505e-05], [0.022172225685312318, -0.12695259800009007, 3.0029487302925252e-05], [0.022360189497508492, -0.149265969093431, 4.526654545313663e-08], [0.02241928709929324, -0.17157771700136887, -1.2017663440217614e-05], [0.0, 0.0, 0.0], [-0.005589744123705234, -0.00493481213383544, -1.2471505649406473e-15], [-0.010531224080958856, -0.013855720778448544, -3.229525750574374e-15], [-0.014385094413586368, -0.02716633433703754, -5.7934830939686194e-15], [-0.017248862333452228, -0.04371672745450105, -8.853329086973548e-15], [-0.01930461160030831, -0.06264229193851978, -1.2281557771822877e-14], [-0.020682876692472235, -0.08319198340107423, -1.5827782957633372e-14], [-0.021518327348771675, -0.10475713753886627, -1.9537737109327048e-14], [-0.021946697968703445, -0.1268626594999958, -2.3433271727856542e-14], [-0.022104424918569572, -0.14916834053566866, -2.7203896850370286e-14], [-0.02213374435135213, -0.17147785465403123, -3.066385200289278e-14], [0.0, 0.0, 0.0], [-0.0024977785167980713, -0.004138186331796925, -8.315945606177078e-16], [-0.005124961552434615, -0.013399245528018819, -2.3268505617675906e-15], [-0.007049478093900461, -0.02679361993400987, -4.3833170402130044e-15], [-0.008490214032223053, -0.04344871859808615, -6.9213258985945164e-15], [-0.009529054417619023, -0.06245596638186072, -9.821208040670987e-15], [-0.010228378277114538, -0.08307462614205055, -1.3015994515699266e-14], [-0.010656389208623888, -0.10469284946789274, -1.6386632304735848e-14], [-0.010881056521256082, -0.1268363221618378, -1.992951201387866e-14], [-0.010970265083174773, -0.14916546696047103, -2.3490363729344137e-14], [-0.010988080098349885, -0.17148008570812706, -2.706554042788777e-14], [0.0, 0.0, 0.0], [5.540780974447245e-06, -0.003920740215231421, -3.7404398102851466e-16], [2.282283546241018e-05, -0.013240052908018085, -1.3832807281942687e-15], [3.882059657774936e-05, -0.02669091632864697, -2.9338705920848035e-15], [5.3605019898635344e-05, -0.04337161710753754, -4.9473343078497315e-15], [6.859346044546401e-05, -0.0624085119227623, -7.373895077496591e-15], [8.359633248156292e-05, -0.08304967104345277, -1.017697461876845e-14], [9.859773755535611e-05, -0.10468575832359076, -1.3204510333111672e-14], [0.00011359744026766798, -0.12684170507545234, -1.6431365622640257e-14], [0.00012859743237973208, -0.14917945377836486, -1.995447291177334e-14], [0.00014359743043669863, -0.17149509882282904, -2.339772199609919e-14], [0.0, 0.0, 0.0], [0.0025118159125854366, -0.004185770551885282, 1.193374027523879e-16], [0.00517319165625231, -0.01345209229733256, -3.965768045607983e-16], [0.007126501243425089, -0.02684364359694813, -1.4342906973286988e-15], [0.00859738663500417, -0.04349863191901115, -2.9534981699551516e-15], [0.009666247642522444, -0.06250595104685454, -4.897663928714752e-15], [0.010395577531845123, -0.08312463123126279, -7.319966988526705e-15], [0.010853583853019084, -0.10474285026516407, -9.979156215558935e-15], [0.011108251198562435, -0.12688632200258917, -1.3022415888142073e-14], [0.01122745994267433, -0.14921546689258428, -1.631343733063012e-14], [0.011275275004724791, -0.17153008574428671, -1.9781679771063237e-14], [0.0, 0.0, 0.0], [0.005622672068191976, -0.005036625271452477, 6.639178859977834e-16], [0.010579965072399701, -0.013957609689556116, 6.39871790421664e-16], [0.014461409028951383, -0.027266754120244128, 1.0428662296455286e-16], [0.017355926425978663, -0.043816597416563074, -9.276808351104947e-16], [0.019441844853216813, -0.06274227282375328, -2.3865689989772038e-15], [0.020850081592226167, -0.08329198734392297, -4.403881518937611e-15], [0.02171552072798736, -0.10485713895853384, -6.734162821604419e-15], [0.022173892163748557, -0.1269626593789702, -9.527274410337733e-15], [0.022361619851269124, -0.14926834044066317, -1.2724202693743045e-14], [0.02242093932634143, -0.17157785470897485, -1.625421439060489e-14], [0.0, 0.0, 0.0], [-0.005570376779171701, -0.004761951414197613, 0.000788229008716012], [-0.01055484276417123, -0.01368752736769523, 0.0006965795398133922], [-0.014371697223238271, -0.02703933111694789, 0.0005067866164771258], [-0.017244265760565036, -0.04362517692984021, 0.0003739118890093922], [-0.0193002112106693, -0.06257820817589871, 0.0002611786000652548], [-0.020679417450085447, -0.08315119367525256, 0.0001685943666165268], [-0.021515731644060287, -0.10473426766567388, 9.64387614351405e-05], [-0.021945031196829383, -0.12685259829454598, 4.502920131332084e-05], [-0.022102994559885403, -0.14916596918696085, 1.5045161276115717e-05], [-0.02213209215283387, -0.17147771695923386, 2.9823644647336867e-06], [0.0, 0.0, 0.0], [-0.0025094447450924326, -0.003988852756018275, 0.0003994410699431937], [-0.005129342415930519, -0.013227812257278386, 0.00035585804107259153], [-0.007031659068378396, -0.02666818590757233, 0.0002546023362661449], [-0.008479579822673992, -0.043355332366212536, 0.0001896869305243728], [-0.009520098824879078, -0.06239161210691261, 0.00013361562763122386], [-0.010221127921577804, -0.08303319910356484, 8.755492315124022e-05], [-0.01065097619341231, -0.10466946864803062, 5.168386520965254e-05], [-0.010877505069590352, -0.1268257525288864, 2.612981227209871e-05], [-0.010968202392009931, -0.14916275194956724, 1.1211010045116784e-05], [-0.010986632261897035, -0.17147957124790325, 4.472957931259453e-06], [0.0, 0.0, 0.0], [5.066096453324514e-06, -0.0037740150894494595, 6.3395283507014176e-06], [2.2436641209568636e-05, -0.01307226810620762, 7.856853298295762e-06], [3.8897020276307804e-05, -0.026563834036720593, 7.574717142369161e-06], [5.3629321446888216e-05, -0.04327760663859255, 7.484993860874709e-06], [6.859071271600325e-05, -0.06234367013419625, 7.492079660430643e-06], [8.35946332438193e-05, -0.08300788758584816, 7.501149578709826e-06], [9.859771451801244e-05, -0.10466209394396546, 7.500477424102138e-06], [0.00011359759079090101, -0.12683091978732194, 7.499952839022186e-06], [0.00012859742358808362, -0.14917663053744212, 7.499968468198435e-06], [0.00014359741795064935, -0.1714943016956734, 7.5000135807205225e-06], [0.0, 0.0, 0.0], [0.002522532063684922, -0.00403657580996674, -0.0003862487554778988], [0.005176775835223392, -0.013280829268235725, -0.0003398213942204813], [0.007108846566218855, -0.026718243958545822, -0.00023943155757550293], [0.008586795269288548, -0.043405226944395706, -0.0001747473145966549], [0.009657289545975792, -0.06244159553479381, -0.00011863072194492422], [0.010388322558668393, -0.08308320495813791, -7.25515964756045e-05], [0.010848171186618063, -0.10471946961065791, -3.668284155147169e-05], [0.01110469993690778, -0.12687575232545023, -1.112994126795581e-05], [0.011225397263560503, -0.14921275186774371, 3.7889096483552936e-06], [0.011273827128982119, -0.1715295712857534, 1.0527072884670143e-05], [0.0, 0.0, 0.0], [0.005602489173846413, -0.00486426299821922, -0.0007740965263878667], [0.010602670557513651, -0.013789646939025449, -0.0006796801227253901], [0.014448070404908848, -0.027139841553916973, -0.0004916066046528416], [0.017351400961525036, -0.04372499917368555, -0.0003590301472258868], [0.019437441796227244, -0.06267819090286138, -0.00024619526617114204], [0.020846618465475603, -0.08325119806982878, -0.00015358842021464866], [0.02171292474567064, -0.10483426966675245, -8.143736931724999e-05], [0.02217222568531572, -0.12695259800009723, -3.0029487321826145e-05], [0.02236018949751175, -0.149265969093438, -4.526657081682029e-08], [0.022419287099296456, -0.17157771700137578, 1.2017663407810012e-05], [0.0, 0.0, 0.0], [-0.005730546562099373, -0.004169561789943589, 0.0017282898209268224], [-0.010474736752988613, -0.01317387240848738, 0.001338674790536937], [-0.014303472896336905, -0.02666321873708636, 0.0010240992997461453], [-0.017189593195095967, -0.04334824801814872, 0.0007475259870820085], [-0.019255148592471648, -0.062387080158670005, 0.0005228399804253661], [-0.02064309639075048, -0.08302980344811821, 0.00033685960542649226], [-0.021488505127810253, -0.10466737472447413, 0.0001923314970320097], [-0.021927135797664796, -0.12682457345078976, 8.906516410118879e-05], [-0.022093602930811376, -0.14916061208851952, 2.8794539345768106e-05], [-0.02212639748456407, -0.17147923837520423, 5.323610294868636e-06], [0.0, 0.0, 0.0], [-0.0026392211950548934, -0.0034286237616033624, 0.0008570799721434623], [-0.00506766299618737, -0.012728899877641963, 0.0006808962364245393], [-0.006976382472985055, -0.026287797036361686, 0.0005118149700607911], [-0.00843711183100278, -0.04307878242279894, 0.0003788819025825547], [-0.009484433291974147, -0.06219959790655495, 0.0002669368869484822], [-0.010192546793509892, -0.08291079498132237, 0.00017511720099207083], [-0.010629521951865053, -0.10460119375906088, 0.00010361788568201228], [-0.010863394537679108, -0.1267960500830893, 5.266576209652092e-05], [-0.01096084637226866, -0.1491562214816797, 2.2483839868753426e-05], [-0.010982297844535619, -0.17148081673915463, 8.879757218395672e-06], [0.0, 0.0, 0.0], [2.2082480923171857e-06, -0.003222668776344645, 1.340584812973e-05], [2.2092763292360305e-05, -0.012579519011771241, 1.5358277964482636e-05], [3.904463807938622e-05, -0.026183307828509795, 1.5127041767398984e-05], [5.367261957637426e-05, -0.043001454492934924, 1.499652527844912e-05], [6.85823222175449e-05, -0.06215177152708181, 1.4984534650927845e-05], [8.359113532132571e-05, -0.0828852727923555, 1.500178623749964e-05], [9.859821346173264e-05, -0.10459339012285883, 1.50004608953494e-05], [0.00011359778376826122, -0.12680056134584167, 1.500004398394014e-05], [0.00012859740976826496, -0.14916968260608024, 1.4999941262998967e-05], [0.00014359737996235967, -0.17149559895238797, 1.500002829782853e-05], [0.0, 0.0, 0.0], [0.002646461077982875, -0.0034772515609817877, -0.0008287683628060424], [0.005114572253144451, -0.012782725544347081, -0.0006498877724396847], [0.007053967204681996, -0.026337880891496197, -0.0004813833546268614], [0.008544398939446515, -0.043128620809244386, -0.0003489958765015571], [0.009621599123766322, -0.062249578582874665, -0.00023695137250957248], [0.010359736260697689, -0.08296080357725047, -0.0001451157618743707], [0.010826717959991985, -0.1046511950930506, -7.361575099786376e-05], [0.011090589841906749, -0.12684604972699787, -2.2666021475758153e-05], [0.011218041179847467, -0.14920622137225117, 7.516081919923781e-06], [0.011269492648470186, -0.17153081677518098, 2.112027183953236e-05], [0.0, 0.0, 0.0], [0.005756764232100808, -0.0042732327469462775, -0.0016979935993776513], [0.010522104107272919, -0.01327768853177137, -0.0013052916207556239], [0.014380280423530428, -0.026763606854996555, -0.0009939921518384793], [0.017296784915094465, -0.04344799130726177, -0.0007176940792112236], [0.019392356458473297, -0.062487057645781934, -0.0004928661927086876], [0.020810291760895765, -0.08312981432655285, -0.00030684890584197746], [0.02168569947688424, -0.10476737683172856, -0.0001623299418517812], [0.022154330649089067, -0.12692457292392556, -5.906553471438286e-05], [0.02235079782208486, -0.14926061193579013, 1.205294341453577e-06], [0.02241359235767086, -0.17157923842607584, 2.4676441768304452e-05]]}}, "tet": {"fenics": {"x": [[4.665716287175671e-19, -2.8407483086153776e-18, -3.074034122974161e-18], [0.09999999999999998, 5.534199685153879e-19, 5.534199685153879e-19], [0.19999999999999998, -2.8407483086153776e-18, -3.074034122974161e-18], [0.3, 5.534199685153879e-19, 5.534199685153879e-19], [0.39999999999999997, -2.8407483086153776e-18, -3.074034122974161e-18], [0.4999999999999999, 5.534199685153879e-19, 5.534199685153879e-19], [0.6, -2.8407483086153776e-18, -3.074034122974161e-18], [0.7, 5.534199685153879e-19, 5.534199685153879e-19], [0.7999999999999999, -2.8407483086153776e-18, -3.074034122974161e-18], [0.8999999999999999, 5.534199685153879e-19, 5.534199685153879e-19], [0.9999999999999999, -1.923661031636234e-18, -2.477081000151622e-18], [2.7755575615628915e-18, 0.05000000000000001, 1.3877787807814458e-18], [0.09999999999999998, 0.049999999999999996, 2.3328581435878354e-19], [0.20000000000000004, 0.05000000000000001, 1.3877787807814458e-18], [0.3, 0.049999999999999996, 2.3328581435878354e-19], [0.4000000000000001, 0.05000000000000001, 1.3877787807814458e-18], [0.4999999999999999, 0.049999999999999996, 2.3328581435878354e-19], [0.6000000000000002, 0.05000000000000001, 1.3877787807814458e-18], [0.7, 0.049999999999999996, 2.3328581435878354e-19], [0.8000000000000002, 0.05000000000000001, 1.3877787807814458e-18], [0.8999999999999998, 0.049999999999999996, 2.3328581435878354e-19], [1.0, 0.05000000000000001, -7.867057828741714e-19], [4.665716287175671e-19, 0.09999999999999998, -3.074034122974161e-18], [0.09999999999999998, 0.09999999999999999, 5.534199685153879e-19], [0.19999999999999998, 0.09999999999999998, -3.074034122974161e-18], [0.3, 0.09999999999999999, 5.534199685153879e-19], [0.39999999999999997, 0.09999999999999998, -3.074034122974161e-18], [0.4999999999999999, 0.09999999999999999, 5.534199685153879e-19], [0.6, 0.09999999999999998, -3.074034122974161e-18], [0.7, 0.09999999999999999, 5.534199685153879e-19], [0.7999999999999999, 0.09999999999999998, -3.074034122974161e-18], [0.8999999999999999, 0.09999999999999999, 5.534199685153879e-19], [0.9999999999999999, 0.09999999999999998, -2.477081000151622e-18], [2.7755575615628915e-18, 0.15000000000000005, 1.3877787807814458e-18], [0.09999999999999998, 0.15, 2.3328581435878354e-19], [0.20000000000000004, 0.15000000000000005, 1.3877787807814458e-18], [0.3, 0.15, 2.3328581435878354e-19], [0.4000000000000001, 0.15000000000000005, 1.3877787807814458e-18], [0.4999999999999999, 0.15, 2.3328581435878354e-19], [0.6000000000000002, 0.15000000000000005, 1.3877787807814458e-18], [0.7, 0.15, 2.3328581435878354e-19], [0.8000000000000002, 0.15000000000000005, 1.3877787807814458e-18], [0.8999999999999998, 0.15, 2.3328581435878354e-19], [1.0, 0.15000000000000005, -7.867057828741714e-19], [-6.148068245948322e-18, 0.19999999999999998, 2.3328581435878354e-19], [0.09999999999999998, 0.19999999999999998, -2.477081000151622e-18], [0.19999999999999996, 0.19999999999999998, 2.3328581435878354e-19], [0.3, 0.19999999999999998, -2.477081000151622e-18], [0.3999999999999999, 0.19999999999999998, 2.3328581435878354e-19], [0.4999999999999999, 0.19999999999999998, -2.477081000151622e-18], [0.6, 0.19999999999999998, 2.3328581435878354e-19], [0.7, 0.19999999999999998, -2.477081000151622e-18], [0.7999999999999999, 0.19999999999999998, 2.3328581435878354e-19], [0.8999999999999999, 0.19999999999999998, -2.477081000151622e-18], [1.0, 0.20000000000000004, 2.7755575615628915e-18], [-5.681496617230755e-18, 0.0, 0.049999999999999996], [0.10000000000000002, 2.7755575615628915e-18, 0.05000000000000001], [0.19999999999999996, 0.0, 0.049999999999999996], [0.3000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.3999999999999999, 0.0, 0.049999999999999996], [0.5000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.6, 0.0, 0.049999999999999996], [0.7000000000000002, 2.7755575615628915e-18, 0.05000000000000001], [0.7999999999999999, 0.0, 0.049999999999999996], [0.9000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.9999999999999998, -3.074034122974161e-18, 0.049999999999999996], [-3.847322063272468e-18, 0.049999999999999996, 0.049999999999999996], [0.09999999999999999, 0.04999999999999999, 0.04999999999999999], [0.19999999999999996, 0.049999999999999996, 0.049999999999999996], [0.3, 0.04999999999999999, 0.04999999999999999], [0.39999999999999997, 0.049999999999999996, 0.049999999999999996], [0.4999999999999999, 0.04999999999999999, 0.04999999999999999], [0.6, 0.049999999999999996, 0.049999999999999996], [0.7, 0.04999999999999999, 0.04999999999999999], [0.7999999999999999, 0.049999999999999996, 0.049999999999999996], [0.8999999999999999, 0.04999999999999999, 0.04999999999999999], [1.0, 0.05000000000000001, 0.05000000000000002], [-5.681496617230755e-18, 0.09999999999999999, 0.049999999999999996], [0.10000000000000002, 0.10000000000000002, 0.05000000000000001], [0.19999999999999996, 0.09999999999999999, 0.049999999999999996], [0.3000000000000001, 0.10000000000000002, 0.05000000000000001], [0.3999999999999999, 0.09999999999999999, 0.049999999999999996], [0.5000000000000001, 0.10000000000000002, 0.05000000000000001], [0.6, 0.09999999999999999, 0.049999999999999996], [0.7000000000000002, 0.10000000000000002, 0.05000000000000001], [0.7999999999999999, 0.09999999999999999, 0.049999999999999996], [0.9000000000000001, 0.10000000000000002, 0.05000000000000001], [0.9999999999999998, 0.09999999999999998, 0.049999999999999996], [-3.847322063272468e-18, 0.15, 0.049999999999999996], [0.09999999999999999, 0.15, 0.04999999999999999], [0.19999999999999996, 0.15, 0.049999999999999996], [0.3, 0.15, 0.04999999999999999], [0.39999999999999997, 0.15, 0.049999999999999996], [0.4999999999999999, 0.15, 0.04999999999999999], [0.6, 0.15, 0.049999999999999996], [0.7, 0.15, 0.04999999999999999], [0.7999999999999999, 0.15, 0.049999999999999996], [0.8999999999999999, 0.15, 0.04999999999999999], [1.0, 0.15000000000000005, 0.05000000000000002], [-5.681496617230755e-18, 0.19999999999999998, 0.04999999999999999], [0.10000000000000002, 0.20000000000000004, 0.05000000000000001], [0.19999999999999996, 0.19999999999999998, 0.04999999999999999], [0.3000000000000001, 0.20000000000000004, 0.05000000000000001], [0.3999999999999999, 0.19999999999999998, 0.04999999999999999], [0.5000000000000001, 0.20000000000000004, 0.05000000000000001], [0.6, 0.19999999999999998, 0.04999999999999999], [0.7000000000000002, 0.20000000000000004, 0.05000000000000001], [0.7999999999999999, 0.19999999999999998, 0.04999999999999999], [0.9000000000000001, 0.20000000000000004, 0.05000000000000001], [0.9999999999999998, 0.19999999999999998, 0.04999999999999999], [4.665716287175671e-19, -2.8407483086153776e-18, 0.09999999999999998], [0.09999999999999998, 5.534199685153879e-19, 0.09999999999999999], [0.19999999999999998, -2.8407483086153776e-18, 0.09999999999999998], [0.3, 5.534199685153879e-19, 0.09999999999999999], [0.39999999999999997, -2.8407483086153776e-18, 0.09999999999999998], [0.4999999999999999, 5.534199685153879e-19, 0.09999999999999999], [0.6, -2.8407483086153776e-18, 0.09999999999999998], [0.7, 5.534199685153879e-19, 0.09999999999999999], [0.7999999999999999, -2.8407483086153776e-18, 0.09999999999999998], [0.8999999999999999, 5.534199685153879e-19, 0.09999999999999999], [1.0, -7.867057828741714e-19, 0.10000000000000002], [2.7755575615628915e-18, 0.05000000000000001, 0.10000000000000002], [0.09999999999999998, 0.049999999999999996, 0.09999999999999999], [0.20000000000000004, 0.05000000000000001, 0.10000000000000002], [0.3, 0.049999999999999996, 0.09999999999999999], [0.4000000000000001, 0.05000000000000001, 0.10000000000000002], [0.4999999999999999, 0.049999999999999996, 0.09999999999999999], [0.6000000000000002, 0.05000000000000001, 0.10000000000000002], [0.7, 0.049999999999999996, 0.09999999999999999], [0.8000000000000002, 0.05000000000000001, 0.10000000000000002], [0.8999999999999998, 0.049999999999999996, 0.09999999999999999], [1.0, 0.05000000000000001, 0.10000000000000002], [4.665716287175671e-19, 0.09999999999999998, 0.09999999999999998], [0.09999999999999998, 0.09999999999999999, 0.09999999999999999], [0.19999999999999998, 0.09999999999999998, 0.09999999999999998], [0.3, 0.09999999999999999, 0.09999999999999999], [0.39999999999999997, 0.09999999999999998, 0.09999999999999998], [0.4999999999999999, 0.09999999999999999, 0.09999999999999999], [0.6, 0.09999999999999998, 0.09999999999999998], [0.7, 0.09999999999999999, 0.09999999999999999], [0.7999999999999999, 0.09999999999999998, 0.09999999999999998], [0.8999999999999999, 0.09999999999999999, 0.09999999999999999], [0.9999999999999999, 0.09999999999999998, 0.09999999999999998], [2.7755575615628915e-18, 0.15000000000000005, 0.10000000000000002], [0.09999999999999998, 0.15, 0.09999999999999999], [0.20000000000000004, 0.15000000000000005, 0.10000000000000002], [0.3, 0.15, 0.09999999999999999], [0.4000000000000001, 0.15000000000000005, 0.10000000000000002], [0.4999999999999999, 0.15, 0.09999999999999999], [0.6000000000000002, 0.15000000000000005, 0.10000000000000002], [0.7, 0.15, 0.09999999999999999], [0.8000000000000002, 0.15000000000000005, 0.10000000000000002], [0.8999999999999998, 0.15, 0.09999999999999999], [1.0, 0.15000000000000005, 0.10000000000000002], [-6.148068245948322e-18, 0.19999999999999998, 0.09999999999999999], [0.09999999999999998, 0.19999999999999998, 0.09999999999999998], [0.19999999999999996, 0.19999999999999998, 0.09999999999999999], [0.3, 0.19999999999999998, 0.09999999999999998], [0.3999999999999999, 0.19999999999999998, 0.09999999999999999], [0.4999999999999999, 0.19999999999999998, 0.09999999999999998], [0.6, 0.19999999999999998, 0.09999999999999999], [0.7, 0.19999999999999998, 0.09999999999999998], [0.7999999999999999, 0.19999999999999998, 0.09999999999999999], [0.8999999999999999, 0.19999999999999998, 0.09999999999999998], [1.0, 0.20000000000000004, 0.10000000000000002], [-5.681496617230755e-18, 0.0, 0.15], [0.10000000000000002, 2.7755575615628915e-18, 0.15000000000000005], [0.19999999999999996, 0.0, 0.15], [0.3000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.3999999999999999, 0.0, 0.15], [0.5000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.6, 0.0, 0.15], [0.7000000000000002, 2.7755575615628915e-18, 0.15000000000000005], [0.7999999999999999, 0.0, 0.15], [0.9000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.9999999999999998, -3.074034122974161e-18, 0.15], [-3.847322063272468e-18, 0.049999999999999996, 0.15], [0.09999999999999999, 0.04999999999999999, 0.15], [0.19999999999999996, 0.049999999999999996, 0.15], [0.3, 0.04999999999999999, 0.15], [0.39999999999999997, 0.049999999999999996, 0.15], [0.4999999999999999, 0.04999999999999999, 0.15], [0.6, 0.049999999999999996, 0.15], [0.7, 0.04999999999999999, 0.15], [0.7999999999999999, 0.049999999999999996, 0.15], [0.8999999999999999, 0.04999999999999999, 0.15], [1.0, 0.05000000000000001, 0.15000000000000005], [-5.681496617230755e-18, 0.09999999999999999, 0.15], [0.10000000000000002, 0.10000000000000002, 0.15000000000000005], [0.19999999999999996, 0.09999999999999999, 0.15], [0.3000000000000001, 0.10000000000000002, 0.15000000000000005], [0.3999999999999999, 0.09999999999999999, 0.15], [0.5000000000000001, 0.10000000000000002, 0.15000000000000005], [0.6, 0.09999999999999999, 0.15], [0.7000000000000002, 0.10000000000000002, 0.15000000000000005], [0.7999999999999999, 0.09999999999999999, 0.15], [0.9000000000000001, 0.10000000000000002, 0.15000000000000005], [0.9999999999999998, 0.09999999999999998, 0.15], [-3.847322063272468e-18, 0.15, 0.15], [0.09999999999999999, 0.15, 0.15], [0.19999999999999996, 0.15, 0.15], [0.3, 0.15, 0.15], [0.39999999999999997, 0.15, 0.15], [0.4999999999999999, 0.15, 0.15], [0.6, 0.15, 0.15], [0.7, 0.15, 0.15], [0.7999999999999999, 0.15, 0.15], [0.8999999999999999, 0.15, 0.15], [1.0, 0.15000000000000005, 0.15000000000000005], [-5.681496617230755e-18, 0.19999999999999998, 0.15], [0.10000000000000002, 0.20000000000000004, 0.15000000000000005], [0.19999999999999996, 0.19999999999999998, 0.15], [0.3000000000000001, 0.20000000000000004, 0.15000000000000005], [0.3999999999999999, 0.19999999999999998, 0.15], [0.5000000000000001, 0.20000000000000004, 0.15000000000000005], [0.6, 0.19999999999999998, 0.15], [0.7000000000000002, 0.20000000000000004, 0.15000000000000005], [0.7999999999999999, 0.19999999999999998, 0.15], [0.9000000000000001, 0.20000000000000004, 0.15000000000000005], [0.9999999999999998, 0.19999999999999998, 0.15], [-6.148068245948322e-18, -2.8407483086153776e-18, 0.19999999999999998], [0.09999999999999998, -2.477081000151622e-18, 0.19999999999999998], [0.19999999999999996, -2.8407483086153776e-18, 0.19999999999999998], [0.3, -2.477081000151622e-18, 0.19999999999999998], [0.3999999999999999, -2.8407483086153776e-18, 0.19999999999999998], [0.4999999999999999, -2.477081000151622e-18, 0.19999999999999998], [0.6, -2.8407483086153776e-18, 0.19999999999999998], [0.7, -2.477081000151622e-18, 0.19999999999999998], [0.7999999999999999, -2.8407483086153776e-18, 0.19999999999999998], [0.8999999999999999, -2.477081000151622e-18, 0.19999999999999998], [0.9999999999999999, -1.923661031636234e-18, 0.19999999999999998], [5.551115123125783e-18, 0.05000000000000001, 0.20000000000000004], [0.09999999999999998, 0.049999999999999996, 0.19999999999999998], [0.20000000000000004, 0.05000000000000001, 0.20000000000000004], [0.3, 0.049999999999999996, 0.19999999999999998], [0.4000000000000001, 0.05000000000000001, 0.20000000000000004], [0.4999999999999999, 0.049999999999999996, 0.19999999999999998], [0.6000000000000002, 0.05000000000000001, 0.20000000000000004], [0.7, 0.049999999999999996, 0.19999999999999998], [0.8000000000000002, 0.05000000000000001, 0.20000000000000004], [0.8999999999999998, 0.049999999999999996, 0.19999999999999998], [1.0, 0.05000000000000001, 0.20000000000000004], [-6.148068245948322e-18, 0.09999999999999998, 0.19999999999999998], [0.09999999999999998, 0.09999999999999998, 0.19999999999999998], [0.19999999999999996, 0.09999999999999998, 0.19999999999999998], [0.3, 0.09999999999999998, 0.19999999999999998], [0.3999999999999999, 0.09999999999999998, 0.19999999999999998], [0.4999999999999999, 0.09999999999999998, 0.19999999999999998], [0.6, 0.09999999999999998, 0.19999999999999998], [0.7, 0.09999999999999998, 0.19999999999999998], [0.7999999999999999, 0.09999999999999998, 0.19999999999999998], [0.8999999999999999, 0.09999999999999998, 0.19999999999999998], [0.9999999999999999, 0.09999999999999998, 0.19999999999999998], [5.551115123125783e-18, 0.15000000000000005, 0.20000000000000004], [0.09999999999999998, 0.15, 0.19999999999999998], [0.20000000000000004, 0.15000000000000005, 0.20000000000000004], [0.3, 0.15, 0.19999999999999998], [0.4000000000000001, 0.15000000000000005, 0.20000000000000004], [0.4999999999999999, 0.15, 0.19999999999999998], [0.6000000000000002, 0.15000000000000005, 0.20000000000000004], [0.7, 0.15, 0.19999999999999998], [0.8000000000000002, 0.15000000000000005, 0.20000000000000004], [0.8999999999999998, 0.15, 0.19999999999999998], [1.0, 0.15000000000000005, 0.20000000000000004], [4.665716287175671e-19, 0.19999999999999998, 0.19999999999999998], [0.09999999999999998, 0.19999999999999998, 0.19999999999999998], [0.19999999999999998, 0.19999999999999998, 0.19999999999999998], [0.3, 0.19999999999999998, 0.19999999999999998], [0.39999999999999997, 0.19999999999999998, 0.19999999999999998], [0.4999999999999999, 0.19999999999999998, 0.19999999999999998], [0.6, 0.19999999999999998, 0.19999999999999998], [0.7, 0.19999999999999998, 0.19999999999999998], [0.7999999999999999, 0.19999999999999998, 0.19999999999999998], [0.8999999999999999, 0.19999999999999998, 0.19999999999999998], [0.9999999999999999, 0.19999999999999998, 0.19999999999999998]], "u": [[0.0, 0.0, 0.0], [-0.003333355190293792, -0.0030333413360999306, -0.00035264670176592534], [-0.006256124468409524, -0.008989922147106633, -0.0007674124107091196], [-0.008619224488926576, -0.017420932351381285, -0.000373512790332482], [-0.0103014370389721, -0.027800072613961998, -0.000489646285419067], [-0.011608084128324208, -0.0395583583367571, -0.00021137294286299691], [-0.012405177802006947, -0.05225000602953433, -0.00023152270321195976], [-0.01295544940192997, -0.0655018223465131, -8.564695511294288e-05], [-0.013196808698001794, -0.0790172914315366, -7.003481662584855e-05], [-0.013315567054235521, -0.0926035382285986, -2.0875641503383735e-05], [-0.013327683722074398, -0.10612381154586076, -1.4071086456079659e-05], [0.0, 0.0, 0.0], [-0.001601360566706903, -0.0026373106156728815, -0.0002961033593732019], [-0.0030282985939155977, -0.008776443969629587, -0.0003799441806984466], [-0.0042249760180203474, -0.017157340793986953, -0.0002228859329145743], [-0.005060020903476208, -0.027684556750881953, -0.0002356977265219294], [-0.005722904122692374, -0.03942863985054062, -0.00012175055200509255], [-0.006119398572680266, -0.05220278396683959, -0.0001136411672015603], [-0.006400828770975933, -0.06545879034454265, -5.085878437598461e-05], [-0.006521292277695245, -0.07901008393748485, -3.861717974839331e-05], [-0.006583321810524849, -0.09260389532090699, -1.5232907237262989e-05], [-0.006587278807002557, -0.106128737951982, -1.1984406001975818e-05], [0.0, 0.0, 0.0], [3.225207125644221e-06, -0.002635248023487051, -8.461635372559728e-06], [1.7289873450525913e-05, -0.00857487502394333, -1.268289325233238e-05], [3.394783777594168e-05, -0.017119648491444574, -1.4620499031380218e-05], [4.930201500807018e-05, -0.027575605708427348, -1.4841335020445341e-05], [6.458556094658525e-05, -0.039414435361831465, -1.4985678559534184e-05], [7.961977762398949e-05, -0.052161408898689234, -1.4992622382399697e-05], [9.464224636487129e-05, -0.06546147162219408, -1.5000431653127322e-05], [0.00010964414799438152, -0.07900867695361002, -1.5000388867204378e-05], [0.00012464528908070346, -0.09261532777204358, -1.5000493071630467e-05], [0.0001396453444153931, -0.1061397644729163, -1.5000302601982295e-05], [0.0, 0.0, 0.0], [0.0016069487015662725, -0.0026764076466541382, 0.0002723498830678824], [0.003065835390234073, -0.00882428277158324, 0.00035228740008662394], [0.004293698282732487, -0.01720738610986684, 0.00019251710727602312], [0.005159129797781295, -0.02773462888715778, 0.0002056281627805189], [0.0058521773065296065, -0.03947870619105441, 9.167267914167805e-05], [0.006278681538139, -0.052252799442754204, 8.362208980703332e-05], [0.0065901188751675225, -0.06550879617825978, 2.0851310493007726e-05], [0.006740582478021699, -0.07906008404131235, 8.615165382143318e-06], [0.006832612380046924, -0.09265389517536718, -1.4768244277573358e-05], [0.0068665694524923954, -0.10617873732636449, -1.8015879446249497e-05], [0.0, 0.0, 0.0], [0.0033509672663007734, -0.003112964456591461, 0.0003346155896608184], [0.006297630010399798, -0.009085561520596008, 0.000740340979849369], [0.008689887846222268, -0.017520667950899585, 0.000343914531885405], [0.010401123231555853, -0.02790010098293827, 0.0004596108393118735], [0.011737533170015838, -0.03965842422625403, 0.0001813847419834482], [0.012564506620087987, -0.05235002133253075, 0.00020151838937034223], [0.01314475161063359, -0.06560182741027891, 5.565333641831778e-05], [0.013416100738943585, -0.07911729045577821, 4.00375622214997e-05], [0.013564858226306091, -0.0927035374477519, -9.12228209481938e-06], [0.01360697435106247, -0.10622381020863186, -1.5927063729622276e-05], [0.0, 0.0, 0.0], [-0.003472346868598936, -0.003460055657811781, -0.00018278055587188399], [-0.006385054010507426, -0.009110832402229648, -0.0003135161408373229], [-0.008646962654715375, -0.017713164383400325, -0.00019930364943611354], [-0.010424536316964784, -0.02789175197240142, -0.00021018678509271695], [-0.011631093839779514, -0.03971359333791709, -0.00011312841618284237], [-0.012491502915723306, -0.05229725021638441, -0.0001011481768945803], [-0.012969533580646815, -0.06555664247184818, -4.606839891413332e-05], [-0.013240271129123574, -0.07903440785043554, -3.2138339013160165e-05], [-0.013320534903107447, -0.09260795923080954, -1.1526221723081218e-05], [-0.013337906910521377, -0.10612970001847115, -8.414467528618848e-06], [0.0, 0.0, 0.0], [-0.001571887285593915, -0.002868278262696384, -0.00011770155352246565], [-0.0030562232608243307, -0.008852747138924021, -0.00019349802655167385], [-0.00419234245051766, -0.017356168045207638, -0.00011756609345718424], [-0.005094578869177643, -0.02775836239714129, -0.00012310513429812092], [-0.005701965617707773, -0.03953644672053719, -6.510200112931481e-05], [-0.006144081685191679, -0.0522405839841262, -5.919651982573973e-05], [-0.006388363375887894, -0.06549557438913041, -2.7572998144975035e-05], [-0.006533473613248211, -0.07902213553474453, -2.0193859491650975e-05], [-0.0065781954378474426, -0.0926038109204852, -8.688354205268396e-06], [-0.006587735820403019, -0.1061319765341324, -6.822306063238085e-06], [0.0, 0.0, 0.0], [5.998124347776766e-06, -0.002925220083361084, -4.340265767161548e-06], [1.8883789370904655e-05, -0.00869678417768236, -6.710801529240053e-06], [3.424146982224856e-05, -0.01739223724758705, -7.348593045847163e-06], [4.947761251370064e-05, -0.02767423862984658, -7.47982321981319e-06], [6.458311813242756e-05, -0.039564461035339185, -7.500647269586527e-06], [7.962959794449466e-05, -0.052212394053432254, -7.497204586382446e-06], [9.464005926144357e-05, -0.06551883187626191, -7.501105730497729e-06], [0.0001096445146025244, -0.07902803397462849, -7.499898557429075e-06], [0.00012464502714154083, -0.09262493758950849, -7.5003644189238865e-06], [0.00013964528574298443, -0.10614903622910558, -7.500058675073274e-06], [0.0, 0.0, 0.0], [0.0015811837860439633, -0.0029062936205844505, 0.00010776245292029613], [0.0030952419433150566, -0.00890061692906227, 0.00017911757510632453], [0.004261149774562588, -0.01740615723085495, 0.00010247386231515828], [0.0051936760820706805, -0.027808465053660573, 0.00010793346277680352], [0.005831184874383749, -0.03958653104767606, 5.003998396888325e-05], [0.0063033469859633, -0.05229061215815958, 4.4173651864866744e-05], [0.006577647014622235, -0.06554558580096347, 1.256328026061107e-05], [0.006752762145379726, -0.07907213878614519, 5.190893687851838e-06], [0.006827485474506806, -0.09265381216381846, -6.3133927401283805e-06], [0.006867026181677951, -0.1061819771814546, -8.178520311177878e-06], [0.0, 0.0, 0.0], [0.0034976182683508416, -0.0035408504991194297, 0.0001734231289837329], [0.006429766333769252, -0.00920699836897768, 0.0002995829176462772], [0.008717937626229267, -0.01781253930681973, 0.00018445497813868254], [0.010524243825471501, -0.02799182156118876, 0.0001951295326469515], [0.011760479301230512, -0.03981364541386668, 9.812513803266515e-05], [0.012650811357403459, -0.05239728059804412, 8.615317421376448e-05], [0.013158825458708218, -0.06565665221413404, 3.107071976323567e-05], [0.013459561712416052, -0.07913441083118189, 1.7141272684442156e-05], [0.013569825176769827, -0.09270796015498123, -3.472853442149543e-06], [0.013617197482868847, -0.10622970033605804, -6.584161474448029e-06], [0.0, 0.0, 0.0], [-0.0033465262726534413, -0.003221711018448486, 1.881043517545652e-16], [-0.006253755757934657, -0.009237935427675127, 6.29672424905326e-16], [-0.008617274553027434, -0.017640964336468144, 1.2427483210864995e-15], [-0.01032100224747169, -0.027980862637988865, 2.0685358336507677e-15], [-0.011612490764398969, -0.03968523524772881, 3.0348539597579862e-15], [-0.01242230424401203, -0.05233707173454617, 4.171711977367912e-15], [-0.012958760828746833, -0.065551240168054, 5.375889150775151e-15], [-0.01320604691793614, -0.07904234965516431, 6.578649252297836e-15], [-0.013317565894230287, -0.09261245767968741, 7.81821853765431e-15], [-0.013331523045542111, -0.10612787525552468, 8.995487408894676e-15], [0.0, 0.0, 0.0], [-0.0015668651537789834, -0.002800758060793214, 1.5218365278549362e-16], [-0.0030308048591752047, -0.009060078033088928, 5.577033758158181e-16], [-0.0042385133104623635, -0.017349463357991757, 1.1313876350567594e-15], [-0.005076514116592721, -0.027883877896910755, 1.9184635998473236e-15], [-0.00573779225858765, -0.03953819685805745, 2.834310670398328e-15], [-0.006132230191021901, -0.05229706318186837, 3.899003701579232e-15], [-0.006410187055980039, -0.06550043834437688, 5.040038299898675e-15], [-0.006527946089991094, -0.07903649038973366, 6.192876683277949e-15], [-0.0065867730189611146, -0.0926100693652925, 7.399799780460444e-15], [-0.00658998010957407, -0.10613220337808438, 8.554529275192187e-15], [0.0, 0.0, 0.0], [5.444191724484118e-06, -0.0027691451325397385, 1.153693238040554e-16], [1.878049553748694e-05, -0.008855690767125068, 4.810720662902379e-16], [3.431706300802764e-05, -0.017345711192531095, 1.0203225885407504e-15], [4.947118833837083e-05, -0.027778623125541854, 1.76884278925003e-15], [6.457930248795543e-05, -0.03954586411432441, 2.651411758608815e-15], [7.962591626714943e-05, -0.05225757782513643, 3.639771155606633e-15], [9.463960717544283e-05, -0.06551326352995031, 4.724024052321216e-15], [0.00010964419255838759, -0.07903615340356827, 5.813153663723926e-15], [0.00012464500502146816, -0.09262563098229087, 6.9863170265891674e-15], [0.00013964528735114647, -0.10614394193717386, 8.105053570224857e-15], [0.0, 0.0, 0.0], [0.0015779433885447158, -0.002838656402626198, 7.201158764884875e-17], [0.0030708770452659026, -0.009107832602207976, 3.972642438168763e-16], [0.004307844044323811, -0.01739949402929206, 8.935433622984816e-16], [0.005175798316836063, -0.027933972546687783, 1.6057033371607007e-15], [0.005867024951970158, -0.039588297354061275, 2.4395519207944267e-15], [0.006291504103613826, -0.05234709414898782, 3.3626313318420807e-15], [0.006599470841123911, -0.0655504523876188, 4.373425836456167e-15], [0.006747234820203594, -0.07908649441471607, 5.42230008807765e-15], [0.006836063022161075, -0.09266007101111329, 6.573735195243924e-15], [0.00686927052025121, -0.10618220432402033, 7.704696426410856e-15], [0.0, 0.0, 0.0], [0.003368425478091709, -0.0032989089828718006, 2.7751415064301685e-17], [0.006298214624351797, -0.009333920162838318, 3.0851140785930884e-16], [0.008688783470029647, -0.01774066354441186, 7.638315882881823e-16], [0.010421006597571161, -0.028081051514565223, 1.4312115690599168e-15], [0.01174195025984883, -0.03978536579596156, 2.2188007970930163e-15], [0.012581644888629428, -0.052437131507333784, 3.074745433475567e-15], [0.013148059195033257, -0.0656512623983057, 4.021703183610416e-15], [0.013425339602479533, -0.07914235760152605, 5.0270730909882606e-15], [0.013566856542794443, -0.0927124608350395, 6.168583024480886e-15], [0.013610813901962301, -0.106227877177804, 7.30126510737935e-15], [0.0, 0.0, 0.0], [-0.0034723468685991265, -0.003460055657811748, 0.00018278055587230257], [-0.0063850540105078206, -0.00911083240222953, 0.0003135161408385548], [-0.008646962654715956, -0.01771316438340011, 0.00019930364943864206], [-0.010424536316965565, -0.02789175197240111, 0.00021018678509682298], [-0.01163109383978036, -0.039713593337916804, 0.00011312841618887846], [-0.012491502915724217, -0.05229725021638381, 0.00010114817690290139], [-0.012969533580647839, -0.0655566424718474, 4.606839892492245e-05], [-0.013240271129124653, -0.0790344078504348, 3.2138339026314356e-05], [-0.013320534903108562, -0.0926079592308086, 1.1526221738743299e-05], [-0.01333790691052251, -0.10612970001847004, 8.414467546616995e-06], [0.0, 0.0, 0.0], [-0.0015718872855941205, -0.0028682782626963258, 0.00011770155352283024], [-0.0030562232608247514, -0.008852747138923877, 0.00019349802655277878], [-0.004192342450518268, -0.017356168045207388, 0.00011756609345950165], [-0.005094578869178422, -0.02775836239714098, 0.00012310513430194842], [-0.0057019656177086635, -0.03953644672053689, 6.51020011349915e-05], [-0.00614408168519265, -0.05224058398412559, 5.919651983352843e-05], [-0.0063883633758889434, -0.06549557438912963, 2.7572998155059586e-05], [-0.006533473613249318, -0.07902213553474373, 2.0193859504031002e-05], [-0.006578195437848633, -0.09260381092048427, 8.688354220074244e-06], [-0.00658773582040415, -0.10613197653413128, 6.822306080352809e-06], [0.0, 0.0, 0.0], [5.998124347571164e-06, -0.0029252200833610065, 4.3402657674432225e-06], [1.8883789370483802e-05, -0.008696784177682203, 6.7108015301790065e-06], [3.424146982164232e-05, -0.01739223724758678, 7.348593047924005e-06], [4.947761251293646e-05, -0.02767423862984624, 7.479823223328853e-06], [6.458311813153548e-05, -0.03956446103533878, 7.500647274890747e-06], [7.962959794350686e-05, -0.05221239405343168, 7.4972045936455535e-06], [9.464005926039469e-05, -0.06551883187626109, 7.501105739931778e-06], [0.00010964451460142271, -0.07902803397462764, 7.499898569040344e-06], [0.00012464502714040187, -0.09262493758950761, 7.500364432898039e-06], [0.00013964528574186404, -0.10614903622910467, 7.500058691325132e-06], [0.0, 0.0, 0.0], [0.0015811837860437588, -0.002906293620584356, -0.00010776245292009103], [0.0030952419433146337, -0.008900616929062098, -0.00017911757510554098], [0.004261149774561978, -0.01740615723085467, -0.00010247386231332284], [0.0051936760820699215, -0.02780846505366023, -0.00010793346277359836], [0.005831184874382866, -0.039586531047675615, -5.0039983963960386e-05], [0.006303346985962314, -0.05229061215815896, -4.417365185814484e-05], [0.0065776470146212025, -0.0655455858009626, -1.2563280251855734e-05], [0.0067527621453786525, -0.07907213878614422, -5.190893677015142e-06], [0.006827485474505696, -0.09265381216381763, 6.31339275327435e-06], [0.00686702618167685, -0.10618197718145377, 8.17852032658987e-06], [0.0, 0.0, 0.0], [0.0034976182683506113, -0.003540850499119306, -0.00017342312898363329], [0.006429766333768805, -0.009206998368977481, -0.0002995829176456892], [0.00871793762622864, -0.017812539306819433, -0.00018445497813711793], [0.010524243825470719, -0.02799182156118844, -0.00019512953264409305], [0.01176047930122958, -0.03981364541386624, -9.812513802815286e-05], [0.012650811357402408, -0.05239728059804352, -8.615317420759896e-05], [0.01315882545870713, -0.06565665221413321, -3.107071975518325e-05], [0.01345956171241496, -0.0791344108311809, -1.7141272674396026e-05], [0.013569825176768743, -0.09270796015498038, 3.4728534544416055e-06], [0.013617197482867762, -0.10622970033605719, 6.584161489008766e-06], [0.0, 0.0, 0.0], [-0.003333355190294187, -0.0030333413360998517, 0.000352646701766366], [-0.006256124468410381, -0.008989922147106396, 0.0007674124107104423], [-0.008619224488927794, -0.01742093235138085, 0.00037351279033503017], [-0.010301437038973677, -0.02780007261396145, 0.000489646285423238], [-0.011608084128325981, -0.03955835833675658, 0.00021137294286902256], [-0.012405177802008938, -0.05225000602953323, 0.00023152270322030147], [-0.012955449401932087, -0.06550182234651152, 8.564695512372708e-05], [-0.013196808698004046, -0.079017291431535, 7.003481663899171e-05], [-0.0133155670542378, -0.09260353822859677, 2.087564151905331e-05], [-0.01332768372207667, -0.10612381154585886, 1.4071086474037227e-05], [0.0, 0.0, 0.0], [-0.0016013605667073297, -0.002637310615672762, 0.00029610335937358783], [-0.003028298593916465, -0.008776443969629304, 0.00037994418069963126], [-0.0042249760180216, -0.01715734079398646, 0.0002228859329168966], [-0.005060020903477782, -0.02768455675088137, 0.0002356977265258089], [-0.005722904122694203, -0.039428639850540084, 0.00012175055201074575], [-0.006119398572682291, -0.05220278396683849, 0.00011364116720938352], [-0.006400828770978079, -0.06545879034454101, 5.0858784386099875e-05], [-0.006521292277697494, -0.07901008393748321, 3.861717976077413e-05], [-0.006583321810527175, -0.09260389532090511, 1.5232907252075418e-05], [-0.0065872788070048425, -0.1061287379519801, 1.1984406019100679e-05], [0.0, 0.0, 0.0], [3.225207125238514e-06, -0.002635248023486892, 8.461635372863755e-06], [1.728987344967981e-05, -0.008574875023943005, 1.2682893253367417e-05], [3.3947837774712436e-05, -0.017119648491444067, 1.4620499033474246e-05], [4.930201500652616e-05, -0.027575605708426727, 1.4841335024025289e-05], [6.45855609447818e-05, -0.039414435361830855, 1.4985678564829953e-05], [7.961977762199147e-05, -0.052161408898688116, 1.4992622389692332e-05], [9.464224636276068e-05, -0.0654614716221925, 1.5000431662554956e-05], [0.00010964414799217104, -0.07900867695360832, 1.5000388878813012e-05], [0.00012464528907840848, -0.09261532777204173, 1.5000493085616324e-05], [0.00013964534441311362, -0.10613976447291443, 1.5000302618283941e-05], [0.0, 0.0, 0.0], [0.001606948701565871, -0.0026764076466539435, -0.00027234988306765396], [0.0030658353902332444, -0.008824282771582868, -0.0003522874000857601], [0.004293698282731258, -0.017207386109866295, -0.00019251710727418117], [0.005159129797779772, -0.027734628887157126, -0.00020562816277725727], [0.005852177306527817, -0.039478706191053814, -9.167267913675535e-05], [0.006278681538137031, -0.05225279944275307, -8.362208980027745e-05], [0.006590118875165427, -0.06550879617825822, -2.085131048420539e-05], [0.0067405824780195295, -0.07906008404131067, -8.615165371288742e-06], [0.0068326123800446685, -0.09265389517536528, 1.4768244290723655e-05], [0.006866569452490161, -0.1061787373263627, 1.801587946166986e-05], [0.0, 0.0, 0.0], [0.0033509672663003436, -0.003112964456591227, -0.00033461558966069556], [0.006297630010398963, -0.009085561520595595, -0.0007403409798486888], [0.008689887846221022, -0.01752066795089902, -0.0003439145318838172], [0.01040112323155434, -0.027900100982937603, -0.000459610839308931], [0.011737533170014004, -0.03965842422625339, -0.0001813847419789181], [0.012564506620086003, -0.05235002133252962, -0.00020151838936412458], [0.013144751610631448, -0.06560182741027738, -5.5653336410223e-05], [0.013416100738941427, -0.07911729045577649, -4.003756221143305e-05], [0.013564858226303869, -0.09270353744775, 9.122282107113774e-06], [0.013606974351060256, -0.1062238102086301, 1.5927063744165723e-05]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/sofa_scene.py new file mode 100644 index 0000000..4c5697f --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction/sofa_scene.py @@ -0,0 +1,119 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +from common.geometry import Beam3D +from common.sofa.conventions import ELEMENTS, VEC_DIM +from common.sofa.controllers import RegionClamp +from common.sofa.prefabs import ElasticBeam + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.Engine.Select", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Beam3D(length=case['geometry']['length'], width=case['geometry']['width'], + height=case['geometry']['height']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers'], + 'gridMapping': case.get('gridMapping', {})} + beam = root.addChild(ElasticBeam(name='ElasticBeam', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + beam.Grid.grid.init() + rest_positions = beam.Grid.grid.position.array() + + boundary_kind_name, mapping = ELEMENTS[case['element']].boundary_mappings[0] + boundary_kind = ELEMENTS[boundary_kind_name] + vec_type = VEC_DIM[geometry.spatial_dimensions] + + width = geometry.width + eps = min(case['mesh']['resolution'][0], case['mesh']['resolution'][2]) * 1e-6 + top_box = [-eps, width - eps, -eps, geometry.length + eps, width + eps, geometry.height + eps] + + with beam.mechanical_node() as mechanical: + mechanical.addObject(RegionClamp(geometry=geometry, dofs=mechanical.dofs, node=mechanical, + prescribe_displacement_on={'left': [1, 1, 1]}, + vec_type=vec_type, name='clampCtrl')) + + with mechanical.addChild(boundary_kind_name) as boundary: + boundary.addObject(boundary_kind.container, name='topology') + boundary.addObject(boundary_kind.container.replace('Container', 'Modifier')) + boundary.addObject(mapping, input='@../topology', output='@topology') + + boundary.addObject('BoxROI', name='topFace', box=top_box, position='@../dofs.rest_position', + **{boundary_kind.data_name: f'@topology.{boundary_kind.data_name}'}) + + with boundary.addChild('LoadedFace') as loaded_face: + loaded_face.addObject(boundary_kind.container, name='face', position='@../../dofs.rest_position', + **{boundary_kind.data_name: + f'@../topFace.{boundary_kind.data_name}InROI'}) + loaded_face.addObject('NodalSourceDensity', name='loadDensity', template=vec_type, + property=[[0.0, -case['load']['magnitude'], 0.0]]) + loaded_face.addObject('VectorSourceTerm', name='traction', template=f'{vec_type},{boundary_kind.cpp}', + sourceDensity='@loadDensity') + loaded_face.addObject('FEMSourceTermIntegrator', name='load', template=f'{vec_type},{boundary_kind.cpp}', + topology='@face', quadratureDegree=1, constantSources='@traction') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :3].copy() + u = mechanical.dofs.position.array()[:, :3] - x0 + boundary_kind_name, _ = ELEMENTS[case['element']].boundary_mappings[0] + boundary = mechanical.getChild(boundary_kind_name).topology + faces = getattr(boundary, ELEMENTS[boundary_kind_name].data_name).array().copy() + return x0, u, faces + + +def main(case): + x, u, faces = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/case.json b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/case.json new file mode 100644 index 0000000..3fed817 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/case.json @@ -0,0 +1,38 @@ +{ + "hexa": { + "geometry": { "type": "Beam3D", "length": 1.0, "width": 0.2, "height": 0.2 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [11, 5, 5] }, + "load": { "type": "concentratedTransverseForce", "magnitude": 0.25 }, + "tolerance": { "rms": 1e-10 } + }, + "tet": { + "geometry": { "type": "Beam3D", "length": 1.0, "width": 0.2, "height": 0.2 }, + "element": "tet", + "swapping": true, + "gridMapping": { "swapping": true }, + "material": { "type": "LinearElastic", "youngModulus": 1000.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0 }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "resolution": [11, 5, 5] }, + "load": { "type": "concentratedTransverseForce", "magnitude": 0.25 }, + "tolerance": { "rms": 1e-10 } + } +} diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/fenics_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/fenics_scene.py new file mode 100644 index 0000000..cea77c2 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/fenics_scene.py @@ -0,0 +1,122 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np +import ufl +from dolfinx import default_scalar_type, fem, mesh as dmesh +from dolfinx.fem.petsc import apply_lifting, assemble_matrix, assemble_vector, set_bc + +from petsc4py import PETSc + +from common.fenics import BeamMesh +from common.geometry import Beam3D + + +def build(case): + geometry = Beam3D(length=case['geometry']['length'], width=case['geometry']['width'], + height=case['geometry']['height']) + grid = BeamMesh(geometry, case['mesh']['resolution'], element=case['element'], + swapping=case.get('swapping', True)) + domain = grid.build() + V = fem.functionspace(domain, ("Lagrange", 1, (3,))) + + young_modulus = case['material']['youngModulus'] + poisson_ratio = case['material']['poissonRatio'] + mu = young_modulus / (2 * (1 + poisson_ratio)) + lame_lambda = young_modulus * poisson_ratio / ((1 + poisson_ratio) * (1 - 2 * poisson_ratio)) + + def sigma(u): + eps = ufl.sym(ufl.grad(u)) + return lame_lambda * ufl.tr(eps) * ufl.Identity(3) + 2 * mu * eps + + u, v = ufl.TrialFunction(V), ufl.TestFunction(V) + a = ufl.inner(sigma(u), ufl.sym(ufl.grad(v))) * ufl.dx + L = ufl.inner(fem.Constant(domain, default_scalar_type((0.0, 0.0, 0.0))), v) * ufl.dx + + length = geometry.length + + # Line support at x=0, y=0 (all z): pin ux, uy. Line roller at x=length, y=0: pin uy only. + Vx, _ = V.sub(0).collapse() + pin_x, _ = fem.locate_dofs_geometrical( + (V.sub(0), Vx), lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], 0.0)) + bc_pin_x = fem.dirichletbc(default_scalar_type(0.0), pin_x, V.sub(0)) + + Vy, _ = V.sub(1).collapse() + pin_y, _ = fem.locate_dofs_geometrical( + (V.sub(1), Vy), lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], 0.0)) + bc_pin_y = fem.dirichletbc(default_scalar_type(0.0), pin_y, V.sub(1)) + + roller, _ = fem.locate_dofs_geometrical( + (V.sub(1), Vy), lambda x: np.isclose(x[0], length) & np.isclose(x[1], 0.0)) + bc_roller = fem.dirichletbc(default_scalar_type(0.0), roller, V.sub(1)) + + # Both support lines run the whole depth (z): nothing pins uz, leaving one rigid-body mode + # (translation along z) free. Pin it at a single node, off the load line. + Vz, _ = V.sub(2).collapse() + z_pin, _ = fem.locate_dofs_geometrical( + (V.sub(2), Vz), lambda x: np.isclose(x[0], 0.0) & np.isclose(x[1], 0.0) & np.isclose(x[2], 0.0)) + bc_z_pin = fem.dirichletbc(default_scalar_type(0.0), z_pin, V.sub(2)) + + # The point load runs along the midspan, top, the whole depth (z): one concentrated force per + # node there. This restricts the use of an odd number of nodes along x. + load_dofs, _ = fem.locate_dofs_geometrical( + (V.sub(1), Vy), lambda x: np.isclose(x[0], length / 2) & np.isclose(x[1], geometry.width)) + + return grid, V, a, L, [bc_pin_x, bc_pin_y, bc_roller, bc_z_pin], load_dofs + + +def solve(case): + grid, V, a, L, bcs, load_dofs = build(case) + bilinear_form, linear_form = fem.form(a), fem.form(L) + + A = assemble_matrix(bilinear_form, bcs=bcs) + A.assemble() + b = assemble_vector(linear_form) + b.array[load_dofs] -= case['load']['magnitude'] + + apply_lifting(b, [bilinear_form], bcs=[bcs]) + b.ghostUpdate(addv=PETSc.InsertMode.ADD_VALUES, mode=PETSc.ScatterMode.REVERSE) + set_bc(b, bcs) + + ksp = PETSc.KSP().create(V.mesh.comm) + ksp.setOperators(A) + ksp.setType('preonly') + ksp.getPC().setType('lu') + + solution = fem.Function(V) + ksp.solve(b, solution.x.petsc_vec) + + coords = V.tabulate_dof_coordinates()[:, :3] + values = solution.x.array.reshape(-1, 3) + return coords[grid.inverse], values[grid.inverse] + + +def main(case): + x, u = solve(case) + + reference_file = os.path.join(CASE_DIR, 'reference_solution.json') + if os.path.exists(reference_file): + with open(reference_file) as f: + reference = json.load(f) + else: + reference = {} + reference.setdefault(case['element'], {})['fenics'] = {'x': x.tolist(), 'u': u.tolist()} + with open(reference_file, 'w') as f: + json.dump(reference, f) + + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/reference_solution.json b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/reference_solution.json new file mode 100644 index 0000000..7408055 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/reference_solution.json @@ -0,0 +1 @@ +{"hexa": {"fenics": {"x": [[-1.510554047423433e-19, 9.013887592422957e-19, -1.1802794119298727e-18], [0.1, 9.013887592422957e-19, -1.1802794119298727e-18], [0.2, 9.013887592422957e-19, -1.1802794119298727e-18], [0.30000000000000004, 9.013887592422957e-19, -1.1802794119298727e-18], [0.4, 9.013887592422957e-19, -1.1802794119298727e-18], [0.5, 9.013887592422957e-19, -1.1802794119298727e-18], [0.6000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [0.7000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [0.8, 9.013887592422957e-19, -1.1802794119298727e-18], [0.9000000000000001, 9.013887592422957e-19, -1.1802794119298727e-18], [1.0, 1.180279411929873e-18, 2.568058192711319e-18], [-1.510554047423433e-19, 0.05000000000000001, -1.1802794119298727e-18], [0.1, 0.05000000000000001, -1.1802794119298727e-18], [0.2, 0.05000000000000001, -1.1802794119298727e-18], [0.30000000000000004, 0.05000000000000001, -1.1802794119298727e-18], [0.4, 0.05000000000000001, -1.1802794119298727e-18], [0.5, 0.05000000000000001, -1.1802794119298727e-18], [0.6000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [0.7000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [0.8, 0.05000000000000001, -1.1802794119298727e-18], [0.9000000000000001, 0.05000000000000001, -1.1802794119298727e-18], [1.0, 0.05, 2.568058192711319e-18], [-1.510554047423433e-19, 0.10000000000000002, -1.1802794119298727e-18], [0.1, 0.10000000000000002, -1.1802794119298727e-18], [0.2, 0.10000000000000002, -1.1802794119298727e-18], [0.30000000000000004, 0.10000000000000002, -1.1802794119298727e-18], [0.4, 0.10000000000000002, -1.1802794119298727e-18], [0.5, 0.10000000000000002, -1.1802794119298727e-18], [0.6000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [0.7000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [0.8, 0.10000000000000002, -1.1802794119298727e-18], [0.9000000000000001, 0.10000000000000002, -1.1802794119298727e-18], [1.0, 0.1, 2.568058192711319e-18], [-1.510554047423433e-19, 0.15000000000000002, -1.1802794119298727e-18], [0.1, 0.15000000000000002, -1.1802794119298727e-18], [0.2, 0.15000000000000002, -1.1802794119298727e-18], [0.30000000000000004, 0.15000000000000002, -1.1802794119298727e-18], [0.4, 0.15000000000000002, -1.1802794119298727e-18], [0.5, 0.15000000000000002, -1.1802794119298727e-18], [0.6000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [0.7000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [0.8, 0.15000000000000002, -1.1802794119298727e-18], [0.9000000000000001, 0.15000000000000002, -1.1802794119298727e-18], [1.0, 0.15000000000000002, 2.568058192711319e-18], [-8.17561727994633e-18, 0.2, -2.9830569304144645e-18], [0.09999999999999999, 0.2, -2.9830569304144645e-18], [0.2, 0.2, -2.9830569304144645e-18], [0.30000000000000004, 0.2, -2.9830569304144645e-18], [0.4, 0.2, -2.9830569304144645e-18], [0.5, 0.2, -2.9830569304144645e-18], [0.6000000000000001, 0.2, -2.9830569304144645e-18], [0.7000000000000001, 0.2, -2.9830569304144645e-18], [0.8, 0.2, -2.9830569304144645e-18], [0.9, 0.2, -2.9830569304144645e-18], [1.0000000000000002, 0.20000000000000004, 6.452503882368078e-18], [-1.510554047423433e-19, 9.013887592422957e-19, 0.05], [0.1, 9.013887592422957e-19, 0.05], [0.2, 9.013887592422957e-19, 0.05], [0.30000000000000004, 9.013887592422957e-19, 0.05], [0.4, 9.013887592422957e-19, 0.05], [0.5, 9.013887592422957e-19, 0.05], [0.6000000000000001, 9.013887592422957e-19, 0.05], [0.7000000000000001, 9.013887592422957e-19, 0.05], [0.8, 9.013887592422957e-19, 0.05], [0.9000000000000001, 9.013887592422957e-19, 0.05], [1.0, 1.180279411929873e-18, 0.05], [-1.510554047423433e-19, 0.05000000000000001, 0.05], [0.1, 0.05000000000000001, 0.05], [0.2, 0.05000000000000001, 0.05], [0.30000000000000004, 0.05000000000000001, 0.05], [0.4, 0.05000000000000001, 0.05], [0.5, 0.05000000000000001, 0.05], [0.6000000000000001, 0.05000000000000001, 0.05], [0.7000000000000001, 0.05000000000000001, 0.05], [0.8, 0.05000000000000001, 0.05], [0.9000000000000001, 0.05000000000000001, 0.05], [1.0, 0.05, 0.05], [-1.510554047423433e-19, 0.10000000000000002, 0.05], [0.1, 0.10000000000000002, 0.05], [0.2, 0.10000000000000002, 0.05], [0.30000000000000004, 0.10000000000000002, 0.05], [0.4, 0.10000000000000002, 0.05], [0.5, 0.10000000000000002, 0.05], [0.6000000000000001, 0.10000000000000002, 0.05], [0.7000000000000001, 0.10000000000000002, 0.05], [0.8, 0.10000000000000002, 0.05], [0.9000000000000001, 0.10000000000000002, 0.05], [1.0, 0.1, 0.05], [-1.510554047423433e-19, 0.15000000000000002, 0.05], [0.1, 0.15000000000000002, 0.05], [0.2, 0.15000000000000002, 0.05], [0.30000000000000004, 0.15000000000000002, 0.05], [0.4, 0.15000000000000002, 0.05], [0.5, 0.15000000000000002, 0.05], [0.6000000000000001, 0.15000000000000002, 0.05], [0.7000000000000001, 0.15000000000000002, 0.05], [0.8, 0.15000000000000002, 0.05], [0.9000000000000001, 0.15000000000000002, 0.05], [1.0, 0.15000000000000002, 0.05], [-8.17561727994633e-18, 0.2, 0.049999999999999996], [0.09999999999999999, 0.2, 0.049999999999999996], [0.2, 0.2, 0.049999999999999996], [0.30000000000000004, 0.2, 0.049999999999999996], [0.4, 0.2, 0.049999999999999996], [0.5, 0.2, 0.049999999999999996], [0.6000000000000001, 0.2, 0.049999999999999996], [0.7000000000000001, 0.2, 0.049999999999999996], [0.8, 0.2, 0.049999999999999996], [0.9, 0.2, 0.049999999999999996], [1.0000000000000002, 0.20000000000000004, 0.050000000000000024], [-1.510554047423433e-19, 9.013887592422957e-19, 0.1], [0.1, 9.013887592422957e-19, 0.1], [0.2, 9.013887592422957e-19, 0.1], [0.30000000000000004, 9.013887592422957e-19, 0.1], [0.4, 9.013887592422957e-19, 0.1], [0.5, 9.013887592422957e-19, 0.1], [0.6000000000000001, 9.013887592422957e-19, 0.1], [0.7000000000000001, 9.013887592422957e-19, 0.1], [0.8, 9.013887592422957e-19, 0.1], [0.9000000000000001, 9.013887592422957e-19, 0.1], [1.0, 1.180279411929873e-18, 0.1], [-1.510554047423433e-19, 0.05000000000000001, 0.1], [0.1, 0.05000000000000001, 0.1], [0.2, 0.05000000000000001, 0.1], [0.30000000000000004, 0.05000000000000001, 0.1], [0.4, 0.05000000000000001, 0.1], [0.5, 0.05000000000000001, 0.1], [0.6000000000000001, 0.05000000000000001, 0.1], [0.7000000000000001, 0.05000000000000001, 0.1], [0.8, 0.05000000000000001, 0.1], [0.9000000000000001, 0.05000000000000001, 0.1], [1.0, 0.05, 0.1], [-1.510554047423433e-19, 0.10000000000000002, 0.1], [0.1, 0.10000000000000002, 0.1], [0.2, 0.10000000000000002, 0.1], [0.30000000000000004, 0.10000000000000002, 0.1], [0.4, 0.10000000000000002, 0.1], [0.5, 0.10000000000000002, 0.1], [0.6000000000000001, 0.10000000000000002, 0.1], [0.7000000000000001, 0.10000000000000002, 0.1], [0.8, 0.10000000000000002, 0.1], [0.9000000000000001, 0.10000000000000002, 0.1], [1.0, 0.1, 0.1], [-1.510554047423433e-19, 0.15000000000000002, 0.1], [0.1, 0.15000000000000002, 0.1], [0.2, 0.15000000000000002, 0.1], [0.30000000000000004, 0.15000000000000002, 0.1], [0.4, 0.15000000000000002, 0.1], [0.5, 0.15000000000000002, 0.1], [0.6000000000000001, 0.15000000000000002, 0.1], [0.7000000000000001, 0.15000000000000002, 0.1], [0.8, 0.15000000000000002, 0.1], [0.9000000000000001, 0.15000000000000002, 0.1], [1.0, 0.15000000000000002, 0.1], [-8.17561727994633e-18, 0.2, 0.1], [0.09999999999999999, 0.2, 0.1], [0.2, 0.2, 0.1], [0.30000000000000004, 0.2, 0.1], [0.4, 0.2, 0.1], [0.5, 0.2, 0.1], [0.6000000000000001, 0.2, 0.1], [0.7000000000000001, 0.2, 0.1], [0.8, 0.2, 0.1], [0.9, 0.2, 0.1], [1.0000000000000002, 0.20000000000000004, 0.10000000000000003], [-1.510554047423433e-19, 9.013887592422957e-19, 0.15000000000000002], [0.1, 9.013887592422957e-19, 0.15000000000000002], [0.2, 9.013887592422957e-19, 0.15000000000000002], [0.30000000000000004, 9.013887592422957e-19, 0.15000000000000002], [0.4, 9.013887592422957e-19, 0.15000000000000002], [0.5, 9.013887592422957e-19, 0.15000000000000002], [0.6000000000000001, 9.013887592422957e-19, 0.15000000000000002], [0.7000000000000001, 9.013887592422957e-19, 0.15000000000000002], [0.8, 9.013887592422957e-19, 0.15000000000000002], [0.9000000000000001, 9.013887592422957e-19, 0.15000000000000002], [1.0, 1.180279411929873e-18, 0.15000000000000002], [-1.510554047423433e-19, 0.05000000000000001, 0.15000000000000002], [0.1, 0.05000000000000001, 0.15000000000000002], [0.2, 0.05000000000000001, 0.15000000000000002], [0.30000000000000004, 0.05000000000000001, 0.15000000000000002], [0.4, 0.05000000000000001, 0.15000000000000002], [0.5, 0.05000000000000001, 0.15000000000000002], [0.6000000000000001, 0.05000000000000001, 0.15000000000000002], [0.7000000000000001, 0.05000000000000001, 0.15000000000000002], [0.8, 0.05000000000000001, 0.15000000000000002], [0.9000000000000001, 0.05000000000000001, 0.15000000000000002], [1.0, 0.05, 0.15000000000000002], [-1.510554047423433e-19, 0.10000000000000002, 0.15000000000000002], [0.1, 0.10000000000000002, 0.15000000000000002], [0.2, 0.10000000000000002, 0.15000000000000002], [0.30000000000000004, 0.10000000000000002, 0.15000000000000002], [0.4, 0.10000000000000002, 0.15000000000000002], [0.5, 0.10000000000000002, 0.15000000000000002], [0.6000000000000001, 0.10000000000000002, 0.15000000000000002], [0.7000000000000001, 0.10000000000000002, 0.15000000000000002], [0.8, 0.10000000000000002, 0.15000000000000002], [0.9000000000000001, 0.10000000000000002, 0.15000000000000002], [1.0, 0.1, 0.15000000000000002], [-1.510554047423433e-19, 0.15000000000000002, 0.15000000000000002], [0.1, 0.15000000000000002, 0.15000000000000002], [0.2, 0.15000000000000002, 0.15000000000000002], [0.30000000000000004, 0.15000000000000002, 0.15000000000000002], [0.4, 0.15000000000000002, 0.15000000000000002], [0.5, 0.15000000000000002, 0.15000000000000002], [0.6000000000000001, 0.15000000000000002, 0.15000000000000002], [0.7000000000000001, 0.15000000000000002, 0.15000000000000002], [0.8, 0.15000000000000002, 0.15000000000000002], [0.9000000000000001, 0.15000000000000002, 0.15000000000000002], [1.0, 0.15000000000000002, 0.15000000000000002], [-8.17561727994633e-18, 0.2, 0.15000000000000002], [0.09999999999999999, 0.2, 0.15000000000000002], [0.2, 0.2, 0.15000000000000002], [0.30000000000000004, 0.2, 0.15000000000000002], [0.4, 0.2, 0.15000000000000002], [0.5, 0.2, 0.15000000000000002], [0.6000000000000001, 0.2, 0.15000000000000002], [0.7000000000000001, 0.2, 0.15000000000000002], [0.8, 0.2, 0.15000000000000002], [0.9, 0.2, 0.15000000000000002], [1.0000000000000002, 0.20000000000000004, 0.15000000000000005], [7.089949308649572e-18, 1.180279411929873e-18, 0.20000000000000004], [0.10000000000000003, 1.180279411929873e-18, 0.20000000000000004], [0.20000000000000007, 1.180279411929873e-18, 0.20000000000000004], [0.3000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.4000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.5000000000000001, 1.180279411929873e-18, 0.20000000000000004], [0.6000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.7000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.8000000000000002, 1.180279411929873e-18, 0.20000000000000004], [0.9000000000000002, 1.180279411929873e-18, 0.20000000000000004], [1.0000000000000002, 1.0615840224712416e-17, 0.20000000000000007], [7.089949308649572e-18, 0.05000000000000001, 0.20000000000000004], [0.10000000000000003, 0.05000000000000001, 0.20000000000000004], [0.20000000000000007, 0.05000000000000001, 0.20000000000000004], [0.3000000000000001, 0.05000000000000001, 0.20000000000000004], [0.4000000000000001, 0.05000000000000001, 0.20000000000000004], [0.5000000000000001, 0.05000000000000001, 0.20000000000000004], [0.6000000000000002, 0.05000000000000001, 0.20000000000000004], [0.7000000000000002, 0.05000000000000001, 0.20000000000000004], [0.8000000000000002, 0.05000000000000001, 0.20000000000000004], [0.9000000000000002, 0.05000000000000001, 0.20000000000000004], [1.0000000000000002, 0.05000000000000003, 0.20000000000000007], [7.089949308649572e-18, 0.10000000000000002, 0.20000000000000004], [0.10000000000000003, 0.10000000000000002, 0.20000000000000004], [0.20000000000000007, 0.10000000000000002, 0.20000000000000004], [0.3000000000000001, 0.10000000000000002, 0.20000000000000004], [0.4000000000000001, 0.10000000000000002, 0.20000000000000004], [0.5000000000000001, 0.10000000000000002, 0.20000000000000004], [0.6000000000000002, 0.10000000000000002, 0.20000000000000004], [0.7000000000000002, 0.10000000000000002, 0.20000000000000004], [0.8000000000000002, 0.10000000000000002, 0.20000000000000004], [0.9000000000000002, 0.10000000000000002, 0.20000000000000004], [1.0000000000000002, 0.10000000000000006, 0.20000000000000007], [7.089949308649572e-18, 0.15000000000000005, 0.20000000000000004], [0.10000000000000003, 0.15000000000000005, 0.20000000000000004], [0.20000000000000007, 0.15000000000000005, 0.20000000000000004], [0.3000000000000001, 0.15000000000000005, 0.20000000000000004], [0.4000000000000001, 0.15000000000000005, 0.20000000000000004], [0.5000000000000001, 0.15000000000000005, 0.20000000000000004], [0.6000000000000002, 0.15000000000000005, 0.20000000000000004], [0.7000000000000002, 0.15000000000000005, 0.20000000000000004], [0.8000000000000002, 0.15000000000000005, 0.20000000000000004], [0.9000000000000002, 0.15000000000000005, 0.20000000000000004], [1.0000000000000002, 0.15000000000000008, 0.20000000000000007], [3.3155635334012356e-17, 0.2000000000000001, 0.2000000000000001], [0.10000000000000009, 0.2000000000000001, 0.2000000000000001], [0.20000000000000015, 0.2000000000000001, 0.2000000000000001], [0.30000000000000027, 0.2000000000000001, 0.2000000000000001], [0.4000000000000003, 0.2000000000000001, 0.2000000000000001], [0.5000000000000003, 0.2000000000000001, 0.2000000000000001], [0.6000000000000004, 0.2000000000000001, 0.2000000000000001], [0.7000000000000005, 0.2000000000000001, 0.2000000000000001], [0.8000000000000005, 0.2000000000000001, 0.2000000000000001], [0.9000000000000006, 0.2000000000000001, 0.2000000000000001], [1.0000000000000004, 0.20000000000000007, 0.2000000000000001]], "u": [[0.0, 0.0, 0.0], [0.00473898700031814, -0.0631111965043645, 0.003317803139324076], [0.011375528231437606, -0.11398559645911358, 0.00435011951821722], [0.02199422525279537, -0.15717618666443323, 0.00558099848454297], [0.03711029538732299, -0.1875087938541974, 0.006884283372973516], [0.056019699431842415, -0.19912182133191678, 0.007437446923760792], [0.07492941424677171, -0.1875151048877647, 0.006883741111302516], [0.09004409855124562, -0.15718663174185246, 0.005579802538112468], [0.10067430337148096, -0.1140133423288192, 0.004349317756922206], [0.10733897362258035, -0.06314456303727056, 0.003412277184409406], [0.11120494583768764, 0.0, -0.0002382875325617945], [0.03026589742533771, -0.004302273119625266, -0.00013215842554521338], [0.03157759382110611, -0.06283108702088898, 0.002351171412329098], [0.03407755512505761, -0.11498566344335946, 0.0029642245757131934], [0.039398308610779795, -0.1585605103114349, 0.003606627795561683], [0.04676471611571683, -0.18946791936807858, 0.004145339681688743], [0.05602140219239951, -0.20157509149840222, 0.004239006370226768], [0.06527747022186944, -0.18947431612711815, 0.004145208479570029], [0.07264553047684391, -0.1585711543732409, 0.0036046735525414215], [0.07797858713440846, -0.11501801060033258, 0.0029708083240875204], [0.0804142248046918, -0.06282770841683105, 0.00238511466045773], [0.08175046549885635, -0.004306465474653616, -0.00020946002004123337], [0.05616512575278474, -0.006917676028699286, 0.0003486816791397861], [0.05621863031243689, -0.06259575000564234, 0.0015625891316967666], [0.055645176879819055, -0.1151318409911673, 0.0016832223676564245], [0.05539224664980148, -0.15894037031987363, 0.0016623247102092761], [0.055131962208550225, -0.19022646423092723, 0.0015533062320107957], [0.05602291456496968, -0.20350842735640773, 0.0011074522469321387], [0.05691366751810005, -0.1902325841529085, 0.0015530522287938062], [0.05665620034403983, -0.1589540054933978, 0.0016616019415232807], [0.05639975804085971, -0.11515256604218524, 0.0016880980296175544], [0.05582243381463183, -0.0626118094322149, 0.001570598749717145], [0.0558654726816808, -0.006936865771212022, 0.00033811162855161], [0.0813622896092602, -0.008055522508230184, 0.0008675454242765569], [0.08031885230541785, -0.06237619617063971, 0.0009754192836482334], [0.07700069713141361, -0.11467907874177025, 0.0004399437758938129], [0.07171095051560937, -0.15827837280166873, -0.0002351626544891626], [0.0634502208235802, -0.18961217471287065, -0.0010325330003026724], [0.05602449961924926, -0.20605860763126596, -0.00234049545758839], [0.048599059308081775, -0.1896187076440644, -0.001032766319412476], [0.040338584422016564, -0.15829168627945556, -0.00023526674533876028], [0.03504891053890169, -0.11469809363898523, 0.0004418262300787754], [0.03172954245530759, -0.0623958623303966, 0.0009784082082687773], [0.030687615079312124, -0.008081339405376215, 0.00086770131181344], [0.10746983279216535, -0.008239238867141235, 0.0010799170469088647], [0.105697230132321, -0.0620013787934707, 0.0005129589391672998], [0.09975784839287184, -0.11364165752468443, -0.0008354449749130851], [0.08915558770180056, -0.1570188649239188, -0.0020907195539934397], [0.07463171653915164, -0.18658520380166796, -0.003428034589674546], [0.05602620210909759, -0.21069331783403292, -0.008478452270266855], [0.03742070405497818, -0.18659180308440604, -0.003428246622431099], [0.022896770153735736, -0.15703217071921075, -0.002090999270466764], [0.012293905177521802, -0.11366011657895375, -0.0008347966030741175], [0.006355906544540286, -0.06202186415291586, 0.0005154903237923807], [0.004585273449426829, -0.008266926476616726, 0.0010838929220426243], [0.0, 0.0, 0.0009124562481992274], [0.004068787958976514, -0.06238713425916425, 0.002346817659165988], [0.011111795041393223, -0.11295984239510591, 0.00303047378580034], [0.02173484590621745, -0.15569322127332988, 0.003606533875223443], [0.036942934421758326, -0.18546817179088915, 0.004244952098360572], [0.056019861673792706, -0.19676969654381138, 0.004515526076627764], [0.07509668210855126, -0.18547431283267546, 0.004244575548330268], [0.09030410722760489, -0.15570613606130765, 0.003605950394325749], [0.1009265540748063, -0.11298032074831481, 0.0030261928814126087], [0.10795952537399467, -0.06241888010081629, 0.0024273532515423587], [0.11226462026101477, 0.0, 0.0008277975033227015], [0.029328122440124973, -0.00427250982447562, 0.0008839416410100095], [0.031104145939945784, -0.06223086050328249, 0.001947466555988212], [0.033858342457492314, -0.11398931507070113, 0.002329860284515], [0.03920235607618108, -0.15708623620934337, 0.002621824035557982], [0.046668509996810395, -0.18746159651194994, 0.0029018871544565505], [0.056021384300509174, -0.1992195797693847, 0.0029825660643572473], [0.0653743031117273, -0.1874677771022342, 0.0029019451903431396], [0.0728404159752427, -0.15709949264076584, 0.0026195801670104444], [0.07818192361174264, -0.11400806833550112, 0.002335376892175184], [0.0809537124304795, -0.062256486068708455, 0.001977424512615365], [0.08269220952095056, -0.0043119857953731145, 0.0008337978721670926], [0.05569974501245674, -0.006980001722570234, 0.0010197043769156996], [0.05597796610227528, -0.06214546935925639, 0.0015829180724834244], [0.05562901539094534, -0.11416476867268184, 0.001672465402873891], [0.05544106557193237, -0.15749773226257138, 0.0016534970870097962], [0.05530601573443448, -0.18821455013562272, 0.0015882081612223894], [0.056022962860568126, -0.20086915311907197, 0.0015204254289492999], [0.0567400410763062, -0.18822097978049335, 0.001587928788825142], [0.05660476105330283, -0.15751068001964924, 0.001653026431823158], [0.056417468004824334, -0.1141839651568696, 0.001675486709547474], [0.05606955577543988, -0.06216451048607683, 0.0015919479581451602], [0.05635109021272056, -0.007016716397463056, 0.00101172108984079], [0.08127428573668596, -0.008127532660342336, 0.0012303775480817529], [0.08036441351108949, -0.06200843859115502, 0.0013003331389021908], [0.07721907484468427, -0.11372760439655025, 0.001035587397834153], [0.07191414841488072, -0.1568841980331331, 0.0007367620573789094], [0.06417378602651883, -0.187664664149268, 0.00020671971547298444], [0.05602460141192056, -0.20206913922382744, -5.4434485017023615e-05], [0.04787537955575663, -0.18767117416088178, 0.0002065535003061722], [0.04013499293134683, -0.15689735547881395, 0.0007366272490249733], [0.03482990563116996, -0.11374534501367384, 0.0010369189477423576], [0.03168651108009096, -0.06202914258583814, 0.0013028846090418393], [0.03077687530614309, -0.008160477165185965, 0.0012311219542345438], [0.10749696710017317, -0.008317922880179802, 0.0013199485849522941], [0.10582976088428452, -0.06166617987050299, 0.0010636795745394261], [0.10002180365686131, -0.11273337991370852, 0.00041128117251853174], [0.08947502496081808, -0.15547885138063114, -0.0001834955758801528], [0.07526248054959911, -0.18551031141425628, -0.001091113141547758], [0.0560262313675083, -0.20250147388984435, -0.003024059472836272], [0.036789969779895564, -0.18551688783407802, -0.0010912729652435412], [0.022576894538398968, -0.15549188369221356, -0.00018365034392898825], [0.012029730677354885, -0.11275095803090252, 0.00041170109433095786], [0.00622393759959241, -0.0616872619698108, 0.0010655507147749686], [0.004559575780239949, -0.008349779765438799, 0.0013226832235561847], [0.0, 0.0, 0.0016313539480061264], [0.003992342009254236, -0.062177698767931146, 0.0016313539480162773], [0.01102632960279069, -0.11262871218912471, 0.0016313539480298266], [0.021740278147742986, -0.15519726052611366, 0.0016313539480439041], [0.036958206831156235, -0.18479910096152846, 0.0016313539480589524], [0.05601990699874856, -0.19600834345978754, 0.001631353948074555], [0.0750813162175833, -0.18480543740123104, 0.0016313539480914284], [0.09029941425245887, -0.15521056914123577, 0.0016313539481087177], [0.1009985397339416, -0.11264543909888822, 0.0016313539481261393], [0.10808898380926654, -0.06221734420428679, 0.0016313539481440655], [0.112427026174346, 0.0, 0.0016313539481619327], [0.029190334083228155, -0.004212537689826174, 0.0016313539480055132], [0.030979612732000103, -0.062061806645308276, 0.001631353948015997], [0.03377248862899819, -0.11365604938044371, 0.001631353948029242], [0.039173004939909994, -0.15659728522956173, 0.0016313539480437198], [0.046656971365139764, -0.18678331616576854, 0.0016313539480591027], [0.05602138905947934, -0.19842780064352974, 0.0016313539480756025], [0.06538623954552511, -0.18678979290123027, 0.0016313539480922617], [0.07286775438716886, -0.15661024363225756, 0.0016313539481097215], [0.07826572120000645, -0.11367138676630623, 0.001631353948127226], [0.08110406895884195, -0.06210489672394789, 0.0016313539481450047], [0.08290526162791208, -0.004239400828911988, 0.0016313539481625256], [0.055573317525003316, -0.006880187188183262, 0.001631353948004177], [0.05590559516987701, -0.062007666112745885, 0.0016313539480156472], [0.05560637141050232, -0.11383361689079523, 0.0016313539480288166], [0.0554732153417596, -0.157023616662248, 0.00163135394804348], [0.055382516180201964, -0.18750838964439492, 0.0016313539480592928], [0.05602305399619379, -0.19988962810642377, 0.0016313539480761659], [0.05666351817172002, -0.18751492068409925, 0.001631353948093142], [0.05657139800735442, -0.15703616189263933, 0.0016313539481106294], [0.056441631730530906, -0.11385171382561445, 0.001631353948128247], [0.05614910443524066, -0.0620354591328593, 0.0016313539481458861], [0.05647860780686527, -0.0069177871641207265, 0.0016313539481634263], [0.08124015940654006, -0.00807075304084577, 0.001631353948002887], [0.08035965828152764, -0.06188824092036705, 0.00163135394801501], [0.07724816134654663, -0.11340617356889475, 0.0016313539480282437], [0.07201983145708223, -0.1564306648201188, 0.0016313539480432412], [0.06430931145293636, -0.18696725427756336, 0.0016313539480594563], [0.056024645591042754, -0.20068680659343235, 0.001631353948076565], [0.047739762947972886, -0.18697375474046096, 0.0016313539480939207], [0.040029011719237416, -0.15644358176086637, 0.0016313539481115668], [0.03480133677526278, -0.11342380891567867, 0.0016313539481292354], [0.03169226599964844, -0.061910699147456554, 0.001631353948146839], [0.030813055931580107, -0.008106650213494266, 0.0016313539481643976], [0.10746904418682686, -0.00830261651325442, 0.0016313539480018891], [0.10579826697769691, -0.061556157490961994, 0.0016313539480141844], [0.10001475523607782, -0.11241337195242229, 0.0016313539480275565], [0.08959232793488084, -0.15506568434525758, 0.0016313539480428108], [0.07515193735013628, -0.18468813160710507, 0.0016313539480595526], [0.05602624663049286, -0.20150209226610377, 0.0016313539480770035], [0.03690045121186989, -0.1846946681693009, 0.001631353948094759], [0.022459426967525585, -0.15507861918904967, 0.0016313539481124884], [0.012036823566641059, -0.11243067611740705, 0.001631353948130308], [0.006256327930457523, -0.06157800349549569, 0.0016313539481478347], [0.004588376585203784, -0.00833664591665379, 0.0016313539481652992], [0.0, 0.0, 0.0023502516478131896], [0.004068787958966209, -0.06238713425916233, 0.0009158902368670297], [0.011111795041379434, -0.11295984239510458, 0.0002322341102594702], [0.02173484590620228, -0.15569322127332952, -0.0003438259791356343], [0.03694293442174204, -0.1854681717908895, -0.0009822442022427318], [0.05601986167377593, -0.19676969654381368, -0.0012528181804783967], [0.07509668210853418, -0.1854743128326768, -0.0009818676521475048], [0.09030410722758742, -0.15570613606130948, -0.0003432424981082491], [0.10092655407478886, -0.11298032074831663, 0.00023651501483965465], [0.10795952537397735, -0.06241888010081793, 0.0008353546447457326], [0.11226462026099782, 0.0, 0.0024349103930012984], [0.02932812244011565, -0.004272509824475345, 0.002378766255001175], [0.03110414593993496, -0.06223086050327988, 0.0013152413400441037], [0.033858342457478895, -0.11398931507069963, 0.0009328476115436199], [0.039202356076166095, -0.1570862362093427, 0.0006408838605295845], [0.04666850999679446, -0.18746159651195016, 0.0003608207416617874], [0.05602138430049249, -0.19921957976938648, 0.0002801418317937141], [0.06537430311171004, -0.18746777710223567, 0.0003607627058415233], [0.0728404159752254, -0.15709949264076772, 0.0006431277292089875], [0.078181923611725, -0.11400806833550299, 0.000927331004079278], [0.08095371243046175, -0.06225648606871004, 0.0012852833836745877], [0.08269220952093295, -0.004311985795373774, 0.002428910024158062], [0.05569974501244505, -0.006980001722569512, 0.0022430035190926256], [0.055977966102262966, -0.062145469359254156, 0.0016797898235480196], [0.055629015390931846, -0.11416476867267987, 0.0015902424931838154], [0.05544106557191734, -0.15749773226257066, 0.00160921080907727], [0.05530601573441852, -0.1882145501356232, 0.001674499734896243], [0.05602296286055154, -0.20086915311907275, 0.0017422824672030047], [0.05674004107628905, -0.1882209797804953, 0.0016747791073611824], [0.0566047610532854, -0.1575106800196508, 0.0016096814643981135], [0.05641746800480673, -0.11418396515687132, 0.001587221186709009], [0.056069555775422227, -0.06216451048607834, 0.0016707599381466107], [0.05635109021270282, -0.007016716397464177, 0.0022509868064861382], [0.08127428573667353, -0.008127532660341169, 0.0020323303479239637], [0.08036441351107675, -0.06200843859115292, 0.0019623747571279426], [0.07721907484467048, -0.11372760439654837, 0.0022271204982225066], [0.07191414841486582, -0.15688419803313217, 0.0025259458387076102], [0.06417378602650285, -0.1876646641492683, 0.00305598818064596], [0.05602460141190388, -0.20206913922382838, 0.0033171423811702893], [0.0478753795557394, -0.18767117416088347, 0.0030561543958817204], [0.0401349929313293, -0.15689735547881556, 0.0025260806471982], [0.034829905631152284, -0.11374534501367557, 0.0022257889485161717], [0.03168651108007326, -0.06202914258583965, 0.0019598232872518294], [0.030776875306125356, -0.008160477165187242, 0.0020315859420942705], [0.10749696710016035, -0.008317922880178434, 0.001942759311051469], [0.10582976088427136, -0.06166617987050094, 0.0021990283214889804], [0.10002180365684782, -0.11273337991370666, 0.0028514267235367264], [0.08947502496080346, -0.15547885138062995, 0.0034462034719659257], [0.0752624805495834, -0.1855103114142564, 0.004353821037666944], [0.056026231367491866, -0.202501473889845, 0.006286767368990313], [0.036789969779878445, -0.18551688783407966, 0.004353980861433135], [0.022576894538381454, -0.15549188369221517, 0.003446358240154084], [0.012029730677337178, -0.1127509580309044, 0.002851006801929736], [0.006223937599574627, -0.0616872619698123, 0.0021971571815207164], [0.004559575780222156, -0.008349779765440133, 0.0019400246727744484], [0.0, 0.0, 0.0032627078960125438], [0.004738987000295847, -0.0631111965043606, -5.509524328887865e-05], [0.011375528231410272, -0.1139855964591114, -0.0010874116221573007], [0.021994225252765218, -0.15717618666443267, -0.0023182905884548874], [0.03711029538729091, -0.18750879385419858, -0.00362157547685558], [0.056019699431809, -0.1991218213319197, -0.004174739027611268], [0.07492941424673746, -0.18751510488776826, -0.0036210332151197185], [0.09004409855121087, -0.1571866317418561, -0.002317094641894921], [0.10067430337144588, -0.11401334232882285, -0.0010866098606698842], [0.10733897362254524, -0.06314456303727403, -0.0001495692881214403], [0.11120494583765313, 0.0, 0.0035009954288861816], [0.030265897425317656, -0.004302273119623635, 0.0033948663215570556], [0.031577593821084, -0.06283108702088436, 0.0009115364837038473], [0.034077555125030565, -0.11498566344335681, 0.0002984833203459673], [0.039398308610749964, -0.15856051031143403, -0.000343919899473881], [0.04676471611568501, -0.1894679193680796, -0.0008826317855701043], [0.05602140219236623, -0.20157509149840472, -0.0009762984740759571], [0.06527747022183523, -0.18947431612712182, -0.0008825005833851854], [0.07264553047680908, -0.15857115437324426, -0.00034196565632199047], [0.07797858713437336, -0.11501801060033635, 0.0002918995721669831], [0.08041422480465633, -0.06282770841683415, 0.0008775932358321935], [0.08175046549882098, -0.004306465474655163, 0.003472167916366724], [0.05616512575276146, -0.006917676028696774, 0.00291402621686837], [0.05621863031241221, -0.0625957500056383, 0.0017001187643351891], [0.05564517687979187, -0.11513184099116446, 0.001579485528401638], [0.055392246649771444, -0.1589403703198723, 0.0016003831858781166], [0.055131962208518105, -0.19022646423092798, 0.001709401664108082], [0.05602291456493623, -0.20350842735641053, 0.002155255649220152], [0.05691366751806552, -0.19023258415291172, 0.0017096556673926297], [0.056656200344004856, -0.15895400549340133, 0.0016011059546980533], [0.05639975804082445, -0.11515256604218894, 0.001574609866638974], [0.055822433814596305, -0.06261180943221789, 0.0016921091465746446], [0.055865472681645455, -0.006936865771214419, 0.0029245962677754826], [0.08136228960923542, -0.008055522508227227, 0.0023951624717291307], [0.08031885230539233, -0.06237619617063579, 0.0022872886123821157], [0.07700069713138587, -0.11467907874176704, 0.002822764120163226], [0.07171095051557913, -0.1582783728016673, 0.0034978705505759257], [0.06345022082354788, -0.18961217471287128, 0.0042952408964218106], [0.05602449961921546, -0.20605860763126768, 0.005603203353741712], [0.04859905930804711, -0.18961870764406763, 0.00429547421560043], [0.0403385844219814, -0.15829168627945908, 0.0034979746415619993], [0.03504891053886631, -0.11469809363898896, 0.0028208816661798256], [0.03172954245527219, -0.0623958623303998, 0.0022842996880249084], [0.030687615079276795, -0.008081339405378897, 0.002395006584515416], [0.10746983279213991, -0.008239238867138121, 0.002182790849094835], [0.10569723013229516, -0.062001378793466795, 0.0027497489568613226], [0.09975784839284414, -0.11364165752468078, 0.0040981528709686035], [0.08915558770177064, -0.15701886492391723, 0.005353427450079581], [0.07463171653911943, -0.1865852038016682, 0.006690742485793972], [0.05602620210906388, -0.21069331783403467, 0.011741160166421075], [0.03742070405494359, -0.18659180308440906, 0.00669095451862076], [0.022896770153700535, -0.15703217071921435, 0.005353707166691975], [0.012293905177486318, -0.11366011657895732, 0.004097504499334868], [0.0063559065445047734, -0.06202186415291917, 0.002747217572503365], [0.004585273449391379, -0.008266926476619493, 0.0021788149742880325]]}}, "tet": {"fenics": {"x": [[4.665716287175671e-19, -2.8407483086153776e-18, -3.074034122974161e-18], [0.09999999999999998, 5.534199685153879e-19, 5.534199685153879e-19], [0.19999999999999998, -2.8407483086153776e-18, -3.074034122974161e-18], [0.3, 5.534199685153879e-19, 5.534199685153879e-19], [0.39999999999999997, -2.8407483086153776e-18, -3.074034122974161e-18], [0.4999999999999999, 5.534199685153879e-19, 5.534199685153879e-19], [0.6, -2.8407483086153776e-18, -3.074034122974161e-18], [0.7, 5.534199685153879e-19, 5.534199685153879e-19], [0.7999999999999999, -2.8407483086153776e-18, -3.074034122974161e-18], [0.8999999999999999, 5.534199685153879e-19, 5.534199685153879e-19], [0.9999999999999999, -1.923661031636234e-18, -2.477081000151622e-18], [2.7755575615628915e-18, 0.05000000000000001, 1.3877787807814458e-18], [0.09999999999999998, 0.049999999999999996, 2.3328581435878354e-19], [0.20000000000000004, 0.05000000000000001, 1.3877787807814458e-18], [0.3, 0.049999999999999996, 2.3328581435878354e-19], [0.4000000000000001, 0.05000000000000001, 1.3877787807814458e-18], [0.4999999999999999, 0.049999999999999996, 2.3328581435878354e-19], [0.6000000000000002, 0.05000000000000001, 1.3877787807814458e-18], [0.7, 0.049999999999999996, 2.3328581435878354e-19], [0.8000000000000002, 0.05000000000000001, 1.3877787807814458e-18], [0.8999999999999998, 0.049999999999999996, 2.3328581435878354e-19], [1.0, 0.05000000000000001, -7.867057828741714e-19], [4.665716287175671e-19, 0.09999999999999998, -3.074034122974161e-18], [0.09999999999999998, 0.09999999999999999, 5.534199685153879e-19], [0.19999999999999998, 0.09999999999999998, -3.074034122974161e-18], [0.3, 0.09999999999999999, 5.534199685153879e-19], [0.39999999999999997, 0.09999999999999998, -3.074034122974161e-18], [0.4999999999999999, 0.09999999999999999, 5.534199685153879e-19], [0.6, 0.09999999999999998, -3.074034122974161e-18], [0.7, 0.09999999999999999, 5.534199685153879e-19], [0.7999999999999999, 0.09999999999999998, -3.074034122974161e-18], [0.8999999999999999, 0.09999999999999999, 5.534199685153879e-19], [0.9999999999999999, 0.09999999999999998, -2.477081000151622e-18], [2.7755575615628915e-18, 0.15000000000000005, 1.3877787807814458e-18], [0.09999999999999998, 0.15, 2.3328581435878354e-19], [0.20000000000000004, 0.15000000000000005, 1.3877787807814458e-18], [0.3, 0.15, 2.3328581435878354e-19], [0.4000000000000001, 0.15000000000000005, 1.3877787807814458e-18], [0.4999999999999999, 0.15, 2.3328581435878354e-19], [0.6000000000000002, 0.15000000000000005, 1.3877787807814458e-18], [0.7, 0.15, 2.3328581435878354e-19], [0.8000000000000002, 0.15000000000000005, 1.3877787807814458e-18], [0.8999999999999998, 0.15, 2.3328581435878354e-19], [1.0, 0.15000000000000005, -7.867057828741714e-19], [-6.148068245948322e-18, 0.19999999999999998, 2.3328581435878354e-19], [0.09999999999999998, 0.19999999999999998, -2.477081000151622e-18], [0.19999999999999996, 0.19999999999999998, 2.3328581435878354e-19], [0.3, 0.19999999999999998, -2.477081000151622e-18], [0.3999999999999999, 0.19999999999999998, 2.3328581435878354e-19], [0.4999999999999999, 0.19999999999999998, -2.477081000151622e-18], [0.6, 0.19999999999999998, 2.3328581435878354e-19], [0.7, 0.19999999999999998, -2.477081000151622e-18], [0.7999999999999999, 0.19999999999999998, 2.3328581435878354e-19], [0.8999999999999999, 0.19999999999999998, -2.477081000151622e-18], [1.0, 0.20000000000000004, 2.7755575615628915e-18], [-5.681496617230755e-18, 0.0, 0.049999999999999996], [0.10000000000000002, 2.7755575615628915e-18, 0.05000000000000001], [0.19999999999999996, 0.0, 0.049999999999999996], [0.3000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.3999999999999999, 0.0, 0.049999999999999996], [0.5000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.6, 0.0, 0.049999999999999996], [0.7000000000000002, 2.7755575615628915e-18, 0.05000000000000001], [0.7999999999999999, 0.0, 0.049999999999999996], [0.9000000000000001, 2.7755575615628915e-18, 0.05000000000000001], [0.9999999999999998, -3.074034122974161e-18, 0.049999999999999996], [-3.847322063272468e-18, 0.049999999999999996, 0.049999999999999996], [0.09999999999999999, 0.04999999999999999, 0.04999999999999999], [0.19999999999999996, 0.049999999999999996, 0.049999999999999996], [0.3, 0.04999999999999999, 0.04999999999999999], [0.39999999999999997, 0.049999999999999996, 0.049999999999999996], [0.4999999999999999, 0.04999999999999999, 0.04999999999999999], [0.6, 0.049999999999999996, 0.049999999999999996], [0.7, 0.04999999999999999, 0.04999999999999999], [0.7999999999999999, 0.049999999999999996, 0.049999999999999996], [0.8999999999999999, 0.04999999999999999, 0.04999999999999999], [1.0, 0.05000000000000001, 0.05000000000000002], [-5.681496617230755e-18, 0.09999999999999999, 0.049999999999999996], [0.10000000000000002, 0.10000000000000002, 0.05000000000000001], [0.19999999999999996, 0.09999999999999999, 0.049999999999999996], [0.3000000000000001, 0.10000000000000002, 0.05000000000000001], [0.3999999999999999, 0.09999999999999999, 0.049999999999999996], [0.5000000000000001, 0.10000000000000002, 0.05000000000000001], [0.6, 0.09999999999999999, 0.049999999999999996], [0.7000000000000002, 0.10000000000000002, 0.05000000000000001], [0.7999999999999999, 0.09999999999999999, 0.049999999999999996], [0.9000000000000001, 0.10000000000000002, 0.05000000000000001], [0.9999999999999998, 0.09999999999999998, 0.049999999999999996], [-3.847322063272468e-18, 0.15, 0.049999999999999996], [0.09999999999999999, 0.15, 0.04999999999999999], [0.19999999999999996, 0.15, 0.049999999999999996], [0.3, 0.15, 0.04999999999999999], [0.39999999999999997, 0.15, 0.049999999999999996], [0.4999999999999999, 0.15, 0.04999999999999999], [0.6, 0.15, 0.049999999999999996], [0.7, 0.15, 0.04999999999999999], [0.7999999999999999, 0.15, 0.049999999999999996], [0.8999999999999999, 0.15, 0.04999999999999999], [1.0, 0.15000000000000005, 0.05000000000000002], [-5.681496617230755e-18, 0.19999999999999998, 0.04999999999999999], [0.10000000000000002, 0.20000000000000004, 0.05000000000000001], [0.19999999999999996, 0.19999999999999998, 0.04999999999999999], [0.3000000000000001, 0.20000000000000004, 0.05000000000000001], [0.3999999999999999, 0.19999999999999998, 0.04999999999999999], [0.5000000000000001, 0.20000000000000004, 0.05000000000000001], [0.6, 0.19999999999999998, 0.04999999999999999], [0.7000000000000002, 0.20000000000000004, 0.05000000000000001], [0.7999999999999999, 0.19999999999999998, 0.04999999999999999], [0.9000000000000001, 0.20000000000000004, 0.05000000000000001], [0.9999999999999998, 0.19999999999999998, 0.04999999999999999], [4.665716287175671e-19, -2.8407483086153776e-18, 0.09999999999999998], [0.09999999999999998, 5.534199685153879e-19, 0.09999999999999999], [0.19999999999999998, -2.8407483086153776e-18, 0.09999999999999998], [0.3, 5.534199685153879e-19, 0.09999999999999999], [0.39999999999999997, -2.8407483086153776e-18, 0.09999999999999998], [0.4999999999999999, 5.534199685153879e-19, 0.09999999999999999], [0.6, -2.8407483086153776e-18, 0.09999999999999998], [0.7, 5.534199685153879e-19, 0.09999999999999999], [0.7999999999999999, -2.8407483086153776e-18, 0.09999999999999998], [0.8999999999999999, 5.534199685153879e-19, 0.09999999999999999], [1.0, -7.867057828741714e-19, 0.10000000000000002], [2.7755575615628915e-18, 0.05000000000000001, 0.10000000000000002], [0.09999999999999998, 0.049999999999999996, 0.09999999999999999], [0.20000000000000004, 0.05000000000000001, 0.10000000000000002], [0.3, 0.049999999999999996, 0.09999999999999999], [0.4000000000000001, 0.05000000000000001, 0.10000000000000002], [0.4999999999999999, 0.049999999999999996, 0.09999999999999999], [0.6000000000000002, 0.05000000000000001, 0.10000000000000002], [0.7, 0.049999999999999996, 0.09999999999999999], [0.8000000000000002, 0.05000000000000001, 0.10000000000000002], [0.8999999999999998, 0.049999999999999996, 0.09999999999999999], [1.0, 0.05000000000000001, 0.10000000000000002], [4.665716287175671e-19, 0.09999999999999998, 0.09999999999999998], [0.09999999999999998, 0.09999999999999999, 0.09999999999999999], [0.19999999999999998, 0.09999999999999998, 0.09999999999999998], [0.3, 0.09999999999999999, 0.09999999999999999], [0.39999999999999997, 0.09999999999999998, 0.09999999999999998], [0.4999999999999999, 0.09999999999999999, 0.09999999999999999], [0.6, 0.09999999999999998, 0.09999999999999998], [0.7, 0.09999999999999999, 0.09999999999999999], [0.7999999999999999, 0.09999999999999998, 0.09999999999999998], [0.8999999999999999, 0.09999999999999999, 0.09999999999999999], [0.9999999999999999, 0.09999999999999998, 0.09999999999999998], [2.7755575615628915e-18, 0.15000000000000005, 0.10000000000000002], [0.09999999999999998, 0.15, 0.09999999999999999], [0.20000000000000004, 0.15000000000000005, 0.10000000000000002], [0.3, 0.15, 0.09999999999999999], [0.4000000000000001, 0.15000000000000005, 0.10000000000000002], [0.4999999999999999, 0.15, 0.09999999999999999], [0.6000000000000002, 0.15000000000000005, 0.10000000000000002], [0.7, 0.15, 0.09999999999999999], [0.8000000000000002, 0.15000000000000005, 0.10000000000000002], [0.8999999999999998, 0.15, 0.09999999999999999], [1.0, 0.15000000000000005, 0.10000000000000002], [-6.148068245948322e-18, 0.19999999999999998, 0.09999999999999999], [0.09999999999999998, 0.19999999999999998, 0.09999999999999998], [0.19999999999999996, 0.19999999999999998, 0.09999999999999999], [0.3, 0.19999999999999998, 0.09999999999999998], [0.3999999999999999, 0.19999999999999998, 0.09999999999999999], [0.4999999999999999, 0.19999999999999998, 0.09999999999999998], [0.6, 0.19999999999999998, 0.09999999999999999], [0.7, 0.19999999999999998, 0.09999999999999998], [0.7999999999999999, 0.19999999999999998, 0.09999999999999999], [0.8999999999999999, 0.19999999999999998, 0.09999999999999998], [1.0, 0.20000000000000004, 0.10000000000000002], [-5.681496617230755e-18, 0.0, 0.15], [0.10000000000000002, 2.7755575615628915e-18, 0.15000000000000005], [0.19999999999999996, 0.0, 0.15], [0.3000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.3999999999999999, 0.0, 0.15], [0.5000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.6, 0.0, 0.15], [0.7000000000000002, 2.7755575615628915e-18, 0.15000000000000005], [0.7999999999999999, 0.0, 0.15], [0.9000000000000001, 2.7755575615628915e-18, 0.15000000000000005], [0.9999999999999998, -3.074034122974161e-18, 0.15], [-3.847322063272468e-18, 0.049999999999999996, 0.15], [0.09999999999999999, 0.04999999999999999, 0.15], [0.19999999999999996, 0.049999999999999996, 0.15], [0.3, 0.04999999999999999, 0.15], [0.39999999999999997, 0.049999999999999996, 0.15], [0.4999999999999999, 0.04999999999999999, 0.15], [0.6, 0.049999999999999996, 0.15], [0.7, 0.04999999999999999, 0.15], [0.7999999999999999, 0.049999999999999996, 0.15], [0.8999999999999999, 0.04999999999999999, 0.15], [1.0, 0.05000000000000001, 0.15000000000000005], [-5.681496617230755e-18, 0.09999999999999999, 0.15], [0.10000000000000002, 0.10000000000000002, 0.15000000000000005], [0.19999999999999996, 0.09999999999999999, 0.15], [0.3000000000000001, 0.10000000000000002, 0.15000000000000005], [0.3999999999999999, 0.09999999999999999, 0.15], [0.5000000000000001, 0.10000000000000002, 0.15000000000000005], [0.6, 0.09999999999999999, 0.15], [0.7000000000000002, 0.10000000000000002, 0.15000000000000005], [0.7999999999999999, 0.09999999999999999, 0.15], [0.9000000000000001, 0.10000000000000002, 0.15000000000000005], [0.9999999999999998, 0.09999999999999998, 0.15], [-3.847322063272468e-18, 0.15, 0.15], [0.09999999999999999, 0.15, 0.15], [0.19999999999999996, 0.15, 0.15], [0.3, 0.15, 0.15], [0.39999999999999997, 0.15, 0.15], [0.4999999999999999, 0.15, 0.15], [0.6, 0.15, 0.15], [0.7, 0.15, 0.15], [0.7999999999999999, 0.15, 0.15], [0.8999999999999999, 0.15, 0.15], [1.0, 0.15000000000000005, 0.15000000000000005], [-5.681496617230755e-18, 0.19999999999999998, 0.15], [0.10000000000000002, 0.20000000000000004, 0.15000000000000005], [0.19999999999999996, 0.19999999999999998, 0.15], [0.3000000000000001, 0.20000000000000004, 0.15000000000000005], [0.3999999999999999, 0.19999999999999998, 0.15], [0.5000000000000001, 0.20000000000000004, 0.15000000000000005], [0.6, 0.19999999999999998, 0.15], [0.7000000000000002, 0.20000000000000004, 0.15000000000000005], [0.7999999999999999, 0.19999999999999998, 0.15], [0.9000000000000001, 0.20000000000000004, 0.15000000000000005], [0.9999999999999998, 0.19999999999999998, 0.15], [-6.148068245948322e-18, -2.8407483086153776e-18, 0.19999999999999998], [0.09999999999999998, -2.477081000151622e-18, 0.19999999999999998], [0.19999999999999996, -2.8407483086153776e-18, 0.19999999999999998], [0.3, -2.477081000151622e-18, 0.19999999999999998], [0.3999999999999999, -2.8407483086153776e-18, 0.19999999999999998], [0.4999999999999999, -2.477081000151622e-18, 0.19999999999999998], [0.6, -2.8407483086153776e-18, 0.19999999999999998], [0.7, -2.477081000151622e-18, 0.19999999999999998], [0.7999999999999999, -2.8407483086153776e-18, 0.19999999999999998], [0.8999999999999999, -2.477081000151622e-18, 0.19999999999999998], [0.9999999999999999, -1.923661031636234e-18, 0.19999999999999998], [5.551115123125783e-18, 0.05000000000000001, 0.20000000000000004], [0.09999999999999998, 0.049999999999999996, 0.19999999999999998], [0.20000000000000004, 0.05000000000000001, 0.20000000000000004], [0.3, 0.049999999999999996, 0.19999999999999998], [0.4000000000000001, 0.05000000000000001, 0.20000000000000004], [0.4999999999999999, 0.049999999999999996, 0.19999999999999998], [0.6000000000000002, 0.05000000000000001, 0.20000000000000004], [0.7, 0.049999999999999996, 0.19999999999999998], [0.8000000000000002, 0.05000000000000001, 0.20000000000000004], [0.8999999999999998, 0.049999999999999996, 0.19999999999999998], [1.0, 0.05000000000000001, 0.20000000000000004], [-6.148068245948322e-18, 0.09999999999999998, 0.19999999999999998], [0.09999999999999998, 0.09999999999999998, 0.19999999999999998], [0.19999999999999996, 0.09999999999999998, 0.19999999999999998], [0.3, 0.09999999999999998, 0.19999999999999998], [0.3999999999999999, 0.09999999999999998, 0.19999999999999998], [0.4999999999999999, 0.09999999999999998, 0.19999999999999998], [0.6, 0.09999999999999998, 0.19999999999999998], [0.7, 0.09999999999999998, 0.19999999999999998], [0.7999999999999999, 0.09999999999999998, 0.19999999999999998], [0.8999999999999999, 0.09999999999999998, 0.19999999999999998], [0.9999999999999999, 0.09999999999999998, 0.19999999999999998], [5.551115123125783e-18, 0.15000000000000005, 0.20000000000000004], [0.09999999999999998, 0.15, 0.19999999999999998], [0.20000000000000004, 0.15000000000000005, 0.20000000000000004], [0.3, 0.15, 0.19999999999999998], [0.4000000000000001, 0.15000000000000005, 0.20000000000000004], [0.4999999999999999, 0.15, 0.19999999999999998], [0.6000000000000002, 0.15000000000000005, 0.20000000000000004], [0.7, 0.15, 0.19999999999999998], [0.8000000000000002, 0.15000000000000005, 0.20000000000000004], [0.8999999999999998, 0.15, 0.19999999999999998], [1.0, 0.15000000000000005, 0.20000000000000004], [4.665716287175671e-19, 0.19999999999999998, 0.19999999999999998], [0.09999999999999998, 0.19999999999999998, 0.19999999999999998], [0.19999999999999998, 0.19999999999999998, 0.19999999999999998], [0.3, 0.19999999999999998, 0.19999999999999998], [0.39999999999999997, 0.19999999999999998, 0.19999999999999998], [0.4999999999999999, 0.19999999999999998, 0.19999999999999998], [0.6, 0.19999999999999998, 0.19999999999999998], [0.7, 0.19999999999999998, 0.19999999999999998], [0.7999999999999999, 0.19999999999999998, 0.19999999999999998], [0.8999999999999999, 0.19999999999999998, 0.19999999999999998], [0.9999999999999999, 0.19999999999999998, 0.19999999999999998]], "u": [[0.0, 0.0, 0.0], [0.0021571115281631354, -0.038122250321154294, 0.00030809072272203593], [0.006673945433598334, -0.07139127737248595, 0.0018033992249621765], [0.012870046197645408, -0.09913441812496787, 0.0016720155022397858], [0.022277447797080806, -0.11875915987043612, 0.003520225162770067], [0.03360496709416136, -0.12762065287489285, 0.0022737527271270708], [0.044932762820174825, -0.11876658201606413, 0.0035208467686448277], [0.054339519785626525, -0.09914992651046214, 0.001675097951432414], [0.06053023410780639, -0.07141506575690794, 0.0018102182089919897], [0.06501365440793772, -0.038158467366944636, 0.00035194428313068744], [0.06681234733023426, 0.0, -0.00015516362444258455], [0.01695282308955255, -0.0022383126989966827, -0.00040011219094739743], [0.018321506419141913, -0.038783124121283735, 0.0002840002536924712], [0.02033797358030698, -0.07185075400429795, 0.0008960894715693738], [0.02329178571223164, -0.10015577097618586, 0.0009980053554117375], [0.027965426389515356, -0.11964805489820245, 0.0016457214654956847], [0.03360687138220677, -0.12945645002422435, 0.001086072670822774], [0.03924879113899224, -0.11965550707446246, 0.001645901613600223], [0.043923684464012624, -0.10017090051109882, 0.0009993743294501795], [0.046879984543795265, -0.0718742093385574, 0.0009020061040869207], [0.04889907974568001, -0.038809548701328474, 0.00031901770893773946], [0.050188312058663184, -0.0022486733843701877, -0.0004687095952699341], [0.033022003011266995, -0.003981681691390822, -0.00031577610081393303], [0.033306374490358184, -0.03915552668421336, -8.185224267131454e-05], [0.03323998326702593, -0.07230087931364916, 6.60748388447708e-05], [0.0331005702040132, -0.10036372347256356, 0.00012649193087684358], [0.033092106672273164, -0.1205923875556811, 7.04148100536406e-05], [0.0336086756023598, -0.13040108598030095, -0.0001117132771781785], [0.034125463944154874, -0.12059989797023789, 7.013734033949744e-05], [0.03411808188614753, -0.10037895782116123, 0.00012631903228088774], [0.033978893687809285, -0.07232425994254948, 6.72339184512362e-05], [0.033909112128418725, -0.03917907982226069, -6.555058738032753e-05], [0.03418842064576097, -0.0039872551207543, -0.00034675358163317076], [0.048460823703417845, -0.004502563936937373, -0.0003300544346459798], [0.04814461589943249, -0.039176065406779204, -0.00018904008248897777], [0.04600431801783007, -0.0719305005238146, -0.0006515345863928069], [0.04294113145303822, -0.10022061174321034, -0.000676097650223259], [0.03841459879521048, -0.12021525559760017, -0.0015986792190912653], [0.03361034317227647, -0.13190581594850462, -0.002129991226116352], [0.02880623439693574, -0.12022278387545317, -0.0015989208756899773], [0.024280166232288906, -0.10023575778883258, -0.0006761679753690047], [0.02121679947384594, -0.07195295936410954, -0.0006498075098675501], [0.019073388873042347, -0.039202167152759496, -0.0001765210637713984], [0.01875488654084059, -0.004510149195532404, -0.000344694501520806], [0.06443138275349007, -0.004690549165082524, -0.0005223907014279643], [0.06351142560228086, -0.03895874105504497, -0.0005110883735255106], [0.059465656946153744, -0.07157161294424655, -0.0016004215920080267], [0.053457016401307345, -0.09930632353421583, -0.0014928995756352153], [0.044251549511595004, -0.11982073518037097, -0.003573505369578423], [0.033612133431559846, -0.13260719759218456, -0.0027865555239409623], [0.02297256085267923, -0.11982833803302027, -0.003574029086097782], [0.013767146161356688, -0.09932142396019612, -0.001493631665212761], [0.0077566330076452835, -0.07159378562786031, -0.0016005568061060239], [0.0037053913089804247, -0.03898322676273535, -0.0005026337801785832], [0.002783163885874302, -0.00470079165544753, -0.000535265851776452], [0.0, 0.0, 8.669943636850293e-05], [0.0018539296635582804, -0.03780195685044086, 0.0002825843283560423], [0.005929837400770879, -0.07108590718736618, 0.0008664187955101862], [0.012750164861239283, -0.09788518617446455, 0.0009727605057557675], [0.021735083135398254, -0.11810721314196214, 0.0015808771370661293], [0.033604955322225, -0.12552779389007984, 0.001290574433213882], [0.04547458816685566, -0.11811436767560747, 0.0015811766038000923], [0.05445911407538812, -0.09790000917481564, 0.0009744088643997096], [0.06127745160277389, -0.0711106986007748, 0.0008745393182096529], [0.06540260788493726, -0.037817232716972175, 0.0003009978842348864], [0.0675134643635937, 0.0, 4.8355559149894036e-05], [0.017024397777213974, -0.0020658740323891535, 3.1519002144027734e-05], [0.018383039660822716, -0.03853031109604695, 0.00020394889491032599], [0.020130393110164693, -0.07159378323943644, 0.0005656525651076552], [0.023438686263974, -0.09927489180318119, 0.0006027170689510709], [0.027800644327510095, -0.11903661996934684, 0.0009337459597446978], [0.0336068926023205, -0.12776795398994217, 0.0007058693569808625], [0.03941321754505999, -0.11904354509659995, 0.0009337262271508189], [0.043776080839480744, -0.09928870273260636, 0.0006034641586211962], [0.047085521478991116, -0.07161462608727334, 0.0005706075241424721], [0.04884041586003887, -0.038563623847558876, 0.00021702282688160446], [0.05025483953318225, -0.002061301631629277, 4.612689597582669e-07], [0.03295764765465731, -0.003462213446179327, -6.232441987232309e-05], [0.03317086293542088, -0.03872982770864056, 5.0534192788743514e-05], [0.033185837119218485, -0.07196450488297483, 0.00014077248281913062], [0.033140289374106485, -0.09923675644082279, 0.00014907851715057396], [0.033110819783358024, -0.11989139506990346, 0.00010592656569932021], [0.03360865396298514, -0.12849151562808686, 2.807563903231213e-05], [0.03410652675013111, -0.11989858653286488, 0.00010565791069541922], [0.03407748068476557, -0.09925103402625755, 0.00014914680663893044], [0.034032487014518824, -0.0719856932462992, 0.00014327845085701635], [0.0340547762717008, -0.038757613108263415, 5.816640442150205e-05], [0.03428710949515914, -0.0034677112202951893, -8.119421619605857e-05], [0.04849427053182359, -0.004165795985178129, -9.980917107721443e-05], [0.04795197848718034, -0.03893443745835779, -4.453628827264333e-05], [0.046181344119899256, -0.07163518317762681, -0.00023289051481407746], [0.042860077478835926, -0.0993144693225566, -0.00027840073470907997], [0.03864234668969415, -0.11946173574922932, -0.0007346038793073158], [0.033610361729130046, -0.12986531531571538, -0.0006885834936659504], [0.028578357815588967, -0.11946903047231504, -0.0007348605676801168], [0.024360428439368982, -0.09932904501246698, -0.0002784532574678765], [0.021038443053097978, -0.0716563412513256, -0.00023104352127152267], [0.01927118528911465, -0.03895999393121047, -3.80690462869671e-05], [0.01873742386529738, -0.00417564308713586, -0.00011053173919329403], [0.06484208987361594, -0.004267649042538425, -0.000215693367706451], [0.06359964133783719, -0.03857771264550561, -0.00019233935671633096], [0.06014141446116768, -0.07122208772508205, -0.000589269840443455], [0.05365303707598345, -0.09804440670427232, -0.0007105787323257476], [0.04496488499487353, -0.11889528301908736, -0.0015144004144179068], [0.03361215188193588, -0.1302241125830077, -0.0015572997732486414], [0.022259313680166485, -0.11890263730758444, -0.0015148074402919053], [0.01357046884825698, -0.09805887082752969, -0.0007109589180575119], [0.0070802174312653956, -0.07124307394257334, -0.0005883216991633094], [0.0036220689776176717, -0.038601711258375776, -0.00018787912170228696], [0.002383231055089185, -0.004278924382349143, -0.0002251341030744625], [0.0, 0.0, 0.0001678665881325549], [0.002091250583660111, -0.0377497271375609, 0.00016786658813473153], [0.00648248799052757, -0.07074687095616992, 0.00016786658813773447], [0.012869876734682468, -0.09815003875766722, 0.00016786658814105305], [0.022217258248194083, -0.11741936287042029, 0.00016786658814473275], [0.03360485568134222, -0.12610811551200374, 0.0001678665881484866], [0.04499220404020524, -0.11742633627836387, 0.00016786658815249705], [0.05433835513305149, -0.09816427548497134, 0.00016786658815661637], [0.060727564006107515, -0.07076772056165336, 0.0001678665881608645], [0.06512310843941478, -0.03778309488935174, 0.00016786658816514812], [0.06702009582482506, 0.0, 0.00016786658816954933], [0.016719470301779445, -0.002101350128591157, 0.00016786658813208532], [0.018153675729945692, -0.038499068087578, 0.00016786658813426177], [0.020200084500957362, -0.07113029401692801, 0.000167866588137203], [0.023227581320712648, -0.0992983248104835, 0.00016786658814050746], [0.027950464104490817, -0.1181765395326141, 0.00016786658814421364], [0.03360683564654669, -0.12797679242608984, 0.00016786658814808833], [0.03926308920221235, -0.11818353238307516, 0.00016786658815207416], [0.04398559680298606, -0.09931228739894891, 0.00016786658815620605], [0.047018859484266116, -0.07115134227976878, 0.00016786658816048136], [0.04908695892457351, -0.03852219997818107, 0.00016786658816480657], [0.050487959023576855, -0.0021172296090177607, 0.00016786658816922247], [0.0329080399344803, -0.0037244468800826194, 0.00016786658813154316], [0.03321552006316757, -0.0387945370251668, 0.00016786658813379305], [0.03319861175032471, -0.07156766574595269, 0.00016786658813666813], [0.0331477551645347, -0.09935872378695126, 0.00016786658813996834], [0.033166506851259686, -0.11909066750443635, 0.00016786658814370398], [0.03360865213655148, -0.12860437451603066, 0.00016786658814771458], [0.03405074538905868, -0.11909772014728048, 0.0001678665881516562], [0.034069285728336104, -0.09937267837573815, 0.00016786658815580221], [0.034021348808830135, -0.07158938733519667, 0.0001678665881600799], [0.03401460333873914, -0.03882223136390057, 0.000167866588164441], [0.0343223034508397, -0.003736821205803586, 0.00016786658816886235], [0.04841968427961527, -0.00427466300899579, 0.00016786658813088768], [0.048127776927446214, -0.038907600494556556, 0.0001678665881332086], [0.04608164201759872, -0.07119286531927788, 0.00016786658813606605], [0.04309978532729194, -0.09934353494938111, 0.0001678665881393857], [0.03860679952164306, -0.11859312900073286, 0.00016786658814318045], [0.03361041108179757, -0.12953863058561516, 0.00016786658814721932], [0.028613774776067146, -0.11860028376157546, 0.00016786658815119818], [0.024120156372204236, -0.09935771087015222, 0.0001678665881553396], [0.02113999104247535, -0.07121423101116028, 0.00016786658815962042], [0.019100160455378698, -0.0389343979467586, 0.00016786658816400526], [0.018806525198382485, -0.0042879144525385235, 0.0001678665881684235], [0.06443015996715995, -0.004442686372536236, 0.00016786658813030088], [0.06344476948171492, -0.038623106793697744, 0.00016786658813260812], [0.05958402463817654, -0.07086064005887678, 0.00016786658813544068], [0.05352318215688696, -0.09827616006649229, 0.00016786658813877848], [0.044416475160849934, -0.11819239324549385, 0.00016786658814261208], [0.033612165446402775, -0.12911272997261164, 0.0001678665881467188], [0.02280749741990205, -0.11819957968883264, 0.00016786658815071774], [0.013699884797385651, -0.09829018080815197, 0.00016786658815485744], [0.007638936355076466, -0.07088189406455904, 0.00016786658815913944], [0.0037806920886437364, -0.03864956232174954, 0.0001678665881635693], [0.0027917823471044836, -0.004458025280863008, 0.00016786658816800288], [0.0, 0.0, 0.0002490337398963105], [0.001853929663556544, -0.03780195685043995, 5.3148847913553694e-05], [0.005929837400768155, -0.07108590718736496, -0.0005306856192348196], [0.012750164861235954, -0.0978851861744631, -0.0006370273294735287], [0.021735083135394455, -0.11810721314196063, -0.0012451439607766618], [0.03360495532222117, -0.1255277938900794, -0.0009548412569167377], [0.04547458816685169, -0.11811436767560646, -0.001245443427495053], [0.054459114075383945, -0.09790000917481467, -0.0006386756880863908], [0.06127745160276949, -0.07111069860077379, -0.0005388061418879081], [0.0654026078849326, -0.037817232716971405, 3.473529209543811e-05], [0.06751346436358897, 0.0, 0.00028737761718912957], [0.017024397777212506, -0.0020658740323888244, 0.0003042141741200624], [0.01838303966082045, -0.03853031109604576, 0.00013178428135841868], [0.020130393110161803, -0.07159378323943512, -0.00022991938883327423], [0.02343868626397057, -0.09927489180317972, -0.0002669838926699431], [0.0278006443275064, -0.1190366199693454, -0.0005980127834562853], [0.03360689260231662, -0.12776795398994206, -0.00037013618068464966], [0.03941321754505597, -0.11904354509659905, -0.0005979930508466828], [0.04377608083947659, -0.09928870273260537, -0.00026773098230873586], [0.04708552147898674, -0.07161462608727241, -0.00023487434782150745], [0.04884041586003445, -0.03856362384755813, 0.00011871034944803974], [0.050254839533177734, -0.0020613016316290357, 0.00033527190737868315], [0.032957647654655156, -0.0034622134461787545, 0.0003980575961352835], [0.03317086293541835, -0.038729827708639336, 0.00028519898347892955], [0.033185837119215494, -0.0719645048829735, 0.00019496069345412427], [0.03314028937410308, -0.09923675644082133, 0.0001866546591294376], [0.03311081978335436, -0.119891395069902, 0.0002298066105880735], [0.03360865396298132, -0.1284915156280862, 0.00030765753726306734], [0.034106526750127, -0.11989858653286403, 0.0002300752656078618], [0.034077480684761366, -0.0992510340262566, 0.00018658636967268418], [0.034032487014514445, -0.07198569324629818, 0.00019245472546309354], [0.03405477627169643, -0.03875761310826266, 0.00027756677190734087], [0.034287109495154754, -0.0034677112202947716, 0.000416927392533716], [0.0484942705318211, -0.004165795985177404, 0.0004355423473390012], [0.04795197848717761, -0.03893443745835652, 0.00038026946453916844], [0.046181344119896196, -0.07163518317762538, 0.0005686236910861825], [0.04286007747883246, -0.09931446932255505, 0.0006141339109879492], [0.03864234668969049, -0.11946173574922807, 0.001070337055593668], [0.03361036172912628, -0.12986531531571444, 0.001024316669960448], [0.028578357815584945, -0.11946903047231418, 0.0010705937439825048], [0.02436042843936478, -0.09932904501246592, 0.0006141864337786036], [0.021038443053093613, -0.0716563412513244, 0.0005667766975907597], [0.019271185289110294, -0.03895999393120966, 0.0003738022226149831], [0.018737423865293014, -0.0041756430871353395, 0.0004462649155301416], [0.06484208987361323, -0.004267649042537634, 0.0005514265439669804], [0.06359964133783434, -0.038577712645504324, 0.0005280725329815954], [0.060141414461164555, -0.07122208772508058, 0.0009250030167142792], [0.05365303707598004, -0.09804440670427081, 0.0010463119086033396], [0.044964884994869884, -0.11889528301908617, 0.0018501335907031167], [0.033612151881932076, -0.13022411258300673, 0.00189303294954214], [0.022259313680162436, -0.11890263730758358, 0.0018505406165933342], [0.013570468848252757, -0.09805887082752864, 0.0010466920943672739], [0.00708021743126109, -0.07124307394257214, 0.0009240548754815831], [0.003622068977613413, -0.03860171125837494, 0.0005236122980294054], [0.002383231055084913, -0.004278924382348584, 0.0005608672794104364], [0.0, 0.0, 0.0003357331762653048], [0.0021571115281594708, -0.03812225032115231, 2.7642453547542748e-05], [0.006673945433592753, -0.07139127737248364, -0.0014676660486865065], [0.01287004619763865, -0.09913441812496532, -0.001336282325957516], [0.022277447797073326, -0.11875915987043369, -0.0031844919864804392], [0.03360496709415341, -0.12762065287489097, -0.001938019550829755], [0.04493276282016674, -0.11876658201606234, -0.0031851135923397075], [0.05433951978561818, -0.09914992651046038, -0.0013393647751190254], [0.06053023410779773, -0.07141506575690619, -0.0014744850326701589], [0.06501365440792872, -0.03815846736694321, -1.621110680035858e-05], [0.06681234733022509, 0.0, 0.0004908968007815958], [0.01695282308954921, -0.0022383126989959485, 0.000735845367211535], [0.018321506419137212, -0.038783124121281376, 5.1732922576295414e-05], [0.020337973580301125, -0.0718507540042955, -0.0005603562952948053], [0.02329178571222478, -0.10015577097618317, -0.0006622721791306066], [0.027965426389507907, -0.11964805489819999, -0.0013099882892071365], [0.0336068713821989, -0.12945645002422254, -0.0007503394945264382], [0.03924879113898415, -0.11965550707446067, -0.0013101684372959915], [0.04392368446400426, -0.10017090051109712, -0.0006636411531376152], [0.04687998454378664, -0.07187420933855557, -0.0005662729277659486], [0.04889907974567124, -0.03880954870132692, 1.671546739189029e-05], [0.050188312058654205, -0.0022486733843695168, 0.0008044427716082109], [0.0330220030112624, -0.003981681691389346, 0.000651509277076966], [0.03330637449035305, -0.03915552668421088, 0.00041758541893903276], [0.0332399832670199, -0.07230087931364654, 0.0002696583374286874], [0.033100570204006315, -0.10036372347256081, 0.00020924124540319786], [0.033092106672265725, -0.12059238755567873, 0.00026531836623386074], [0.033608675602352006, -0.1304010859802994, 0.0004474464534735294], [0.03412546394414678, -0.12059989797023618, 0.000265595835963822], [0.034118081886139115, -0.10037895782115955, 0.00020941414403074054], [0.03397889368780068, -0.07232425994254753, 0.0002684992578688568], [0.03390911212841002, -0.039179079822259086, 0.00040128376370913413], [0.034188420645752185, -0.003987255120753176, 0.0006824867579708055], [0.04846082370341281, -0.004502563936935601, 0.0006657876109077141], [0.04814461589942714, -0.03917606540677661, 0.0005247732587555193], [0.04600431801782391, -0.07193050052381189, 0.000987267762665073], [0.04294113145303126, -0.10022061174320751, 0.0010118308265021259], [0.038414598795203016, -0.1202152555975978, 0.0019344123953777092], [0.033610343172268665, -0.13190581594850279, 0.0024657244024107825], [0.02880623439692762, -0.1202227838754514, 0.0019346540519923963], [0.02428016623228049, -0.10023575778883072, 0.0010119011516797306], [0.021216799473837335, -0.07195295936410749, 0.0009855406861867565], [0.019073388873033646, -0.039202167152757816, 0.0005122542400993829], [0.01875488654083183, -0.0045101491955311145, 0.0006804276778576069], [0.06443138275348471, -0.004690549165080575, 0.000858123877688503], [0.06351142560227527, -0.03895874105504233, 0.0008468215497907931], [0.05946565694614748, -0.0715716129442438, 0.001936154768279018], [0.05345701640130042, -0.09930632353421297, 0.001828632751912884], [0.044251549511587565, -0.11982073518036859, 0.0039092385458637776], [0.033612133431552116, -0.13260719759218267, 0.0031222887002344915], [0.022972560852671162, -0.11982833803301841, 0.003909762262399313], [0.013767146161348283, -0.0993214239601942, 0.0018293648415225548], [0.007756633007636718, -0.07159378562785806, 0.0019362899824243171], [0.0037053913089718387, -0.038983226762733615, 0.0008383669565056618], [0.0027831638858656586, -0.0047007916554461515, 0.0008709990281124072]]}}} \ No newline at end of file diff --git a/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/sofa_scene.py b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/sofa_scene.py new file mode 100644 index 0000000..24e4037 --- /dev/null +++ b/validation/cases/LinearSmallStrainFEMForceField/3D/ThreePointBending/sofa_scene.py @@ -0,0 +1,118 @@ +import json +import os +import sys + +CASE_DIR = os.path.dirname(os.path.abspath(__file__)) +REPO_ROOT = os.path.abspath(os.path.join(CASE_DIR, *[os.pardir] * 5)) +for path in (CASE_DIR, REPO_ROOT): + if path not in sys.path: + sys.path.insert(0, path) + +import numpy as np + +from common.geometry import Beam3D +from common.sofa.conventions import ELEMENTS +from common.sofa.prefabs import ElasticBeam + +PLUGINS = [ + "Sofa.Component.Constraint.Projective", + "Sofa.Component.LinearSolver.Direct", + "Sofa.Component.MechanicalLoad", + "Sofa.Component.ODESolver.Backward", + "Sofa.Component.SolidMechanics.FEM.Elastic", + "Sofa.Component.StateContainer", + "Sofa.Component.Topology.Container.Dynamic", + "Sofa.Component.Topology.Container.Grid", + "Sofa.Component.Topology.Mapping", +] + + +def build(root, case): + root.addObject('RequiredPlugin', pluginName=PLUGINS) + root.addObject('DefaultAnimationLoop') + + geometry = Beam3D(length=case['geometry']['length'], width=case['geometry']['width'], + height=case['geometry']['height']) + configs = {'material': case['material'], 'forceField': case['forceField'], 'solvers': case['solvers'], + 'gridMapping': case.get('gridMapping', {})} + beam = root.addChild(ElasticBeam(name='ElasticBeam', geometry=geometry, element=case['element'], + grid_resolution=case['mesh']['resolution'], configs=configs)) + + beam.Grid.grid.init() + rest_positions = beam.Grid.grid.position.array() + + def nodes_at(x=None, y=None, z=None): + mask = np.ones(len(rest_positions), dtype=bool) + for axis, value in ((0, x), (1, y), (2, z)): + if value is not None: + mask &= np.isclose(rest_positions[:, axis], value) + return np.where(mask)[0].tolist() + + pin_line = nodes_at(x=0.0, y=0.0) + roller_line = nodes_at(x=geometry.length, y=0.0) + z_pin = nodes_at(x=0.0, y=0.0, z=0.0) + load_line = nodes_at(x=geometry.length / 2, y=geometry.width) + + with beam.mechanical_node() as mechanical: + mechanical.addObject('PartialFixedProjectiveConstraint', name='pin', indices=pin_line, + fixedDirections=[1, 1, 0]) + mechanical.addObject('PartialFixedProjectiveConstraint', name='roller', indices=roller_line, + fixedDirections=[0, 1, 0]) + # Both support lines run the whole depth (z): nothing pins uz, leaving one rigid-body mode + # (translation along z) free. Pin it at a single node, off the load line. + mechanical.addObject('PartialFixedProjectiveConstraint', name='pinZ', indices=z_pin, + fixedDirections=[0, 0, 1]) + mechanical.addObject('ConstantForceField', name='pointLoad', indices=load_line, + forces=[[0.0, -case['load']['magnitude'], 0.0]] * len(load_line)) + + boundary_kind_name, mapping = ELEMENTS[case['element']].boundary_mappings[0] + with mechanical.addChild(boundary_kind_name) as boundary: + boundary.addObject(ELEMENTS[boundary_kind_name].container, name='topology') + boundary.addObject(ELEMENTS[boundary_kind_name].container.replace('Container', 'Modifier')) + boundary.addObject(mapping, input='@../topology', output='@topology') + return mechanical + + +def createScene(root): + with open(os.path.join(CASE_DIR, 'case.json')) as f: + case = json.load(f) + + if 'geometry' not in case: + if len(sys.argv) != 2: + sys.exit("sofa_scene.py under runSofa expects: --argv ") + case = case[sys.argv[1]] + + build(root, case) + root.addObject('RequiredPlugin', pluginName=["Sofa.Component.Visual"]) + root.addObject('VisualStyle', displayFlags=['showBehaviorModels', 'showForceFields']) + return root + + +def solve(case): + import Sofa.Core + import Sofa.Simulation + + root = Sofa.Core.Node('root') + mechanical = build(root, case) + Sofa.Simulation.init(root) + Sofa.Simulation.animate(root, root.dt.value) + + x0 = mechanical.dofs.rest_position.array()[:, :3].copy() + u = mechanical.dofs.position.array()[:, :3] - x0 + boundary_kind_name, _ = ELEMENTS[case['element']].boundary_mappings[0] + boundary = mechanical.getChild(boundary_kind_name).topology + faces = getattr(boundary, ELEMENTS[boundary_kind_name].data_name).array().copy() + return x0, u, faces + + +def main(case): + x, u, faces = solve(case) + print(f"{case['element']}: solved {len(x)} nodes") + + +if __name__ == '__main__': + with open(os.path.join(CASE_DIR, 'case.json')) as f: + whole_case = json.load(f) + + for sub_case in ([whole_case] if 'geometry' in whole_case else whole_case.values()): + main(sub_case) diff --git a/validation/docs/IntroductionValidation.ipynb b/validation/docs/IntroductionValidation.ipynb new file mode 100644 index 0000000..28b87d6 --- /dev/null +++ b/validation/docs/IntroductionValidation.ipynb @@ -0,0 +1,281 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "01-md-title", + "metadata": {}, + "source": [ + "# Validation by Comparison with FEniCS\n", + "\n", + "This notebook presents how the validation suite compares SOFA with [FEniCS](https://fenicsproject.org), and walks through the code that does it on one case." + ] + }, + { + "cell_type": "markdown", + "id": "02-md-nutshell", + "metadata": {}, + "source": [ + "## Validation in a nutshell\n", + "\n", + "A case is a boundary-value problem solved twice: once by SOFA, with the component under test, and once by FEniCS, an independent finite element library. Both solve it on the same mesh, so both give a displacement at the same nodes, and the two are compared node by node. Where the problem has an exact solution, SOFA is compared with it as well.\n", + "\n", + "### Measuring the difference\n", + "\n", + "The difference is measured by its relative RMS over the $N$ nodes of the mesh, where $\\mathbf{u}_i$ is SOFA's displacement at node $i$ and $\\mathbf{u}_i^\\text{ref}$ the reference one, from FEniCS or the exact solution:\n", + "\n", + "$$e_\\text{rms} = \\sqrt{\\frac{\\sum_{i=1}^{N} \\|\\mathbf{u}_i - \\mathbf{u}_i^\\text{ref}\\|^2}{\\sum_{i=1}^{N} \\|\\mathbf{u}_i^\\text{ref}\\|^2}}$$\n", + "\n", + "A case passes when $e_\\text{rms}$ against FEniCS is below a set `tolerance`, and, if the case has an exact solution, $e_\\text{rms}$ against it is below its `toleranceAnalytic`." + ] + }, + { + "cell_type": "markdown", + "id": "03-md-example", + "metadata": {}, + "source": [ + "## Example: axial compression of a 2D beam\n", + "\n", + "The rest of this notebook walks through one case, `validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/`, building each piece of it in turn.\n", + "\n", + "### The problem\n", + "\n", + "The beam starts at the origin, with length $L$ along $x$ and width $W$ along $y$. Its right side carries a uniform compressive traction $p$. The left side is held only along $x$, so that the beam can contract freely across its width, and the stress is uniform, $\\sigma_{xx} = -p$. The exact solution is\n", + "\n", + "$$u_x = -\\frac{p}{E}\\,x, \\qquad u_y = \\frac{\\nu p}{E}\\,y$$\n", + "\n", + "- `left` ($x = 0$): $u_x = 0$\n", + "- corner $(0, 0)$: $u_y = 0$\n", + "- `right` ($x = L$): $\\mathbf{t} = (-p, 0)$\n", + "- `bottom` and `top`: $\\mathbf{t} = 0$\n", + "\n", + "### The case folder\n", + "\n", + "A case is a folder, named after the problem and placed under its component and dimension:\n", + "\n", + "```\n", + "AxialCompression/\n", + "├── case.json the input file, with one entry per element\n", + "├── sofa_scene.py builds the problem in SOFA and solves it\n", + "├── fenics_scene.py builds the same problem in FEniCS and solves it\n", + "├── reference_solution.json FEniCS's solution, written by fenics_scene.py\n", + "└── analytic_solution.py the exact solution, for the cases that have one\n", + "```\n", + "\n", + "Each of these is introduced below, where the walkthrough reaches it." + ] + }, + { + "cell_type": "markdown", + "id": "04-md-input-file", + "metadata": {}, + "source": [ + "### The input file\n", + "\n", + "The problem is defined once, in `case.json`, and both `sofa_scene.py` and `fenics_scene.py` read it. The geometry, mesh, material and load come from this one place, so the information SOFA and FEniCS share cannot drift apart. This departs a bit from how SOFA scenes are usually written, with their values set in the scene itself.\n", + "\n", + "`case.json` holds one entry per element the case is run on, here `quad` and `tri`. The walkthrough uses the `quad` entry, below. Its keys:\n", + "\n", + "- `geometry` names the geometry and gives its size, $L$ and $W$;\n", + "- `element` is the kind of element the geometry is meshed with;\n", + "- `material` names the constitutive law and gives its parameters, $E$ and $\\nu$;\n", + "- `forceField` is the SOFA component under test;\n", + "- `solvers` sets how SOFA solves the discrete system;\n", + "- `mesh` gives the mesh resolution;\n", + "- `load` gives the traction $p$;\n", + "- `tolerance` and `toleranceAnalytic` are the thresholds on $e_\\text{rms}$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05-code-input-file", + "metadata": {}, + "outputs": [], + "source": [ + "case = {\n", + " \"geometry\": {\"type\": \"Beam2D\", \"length\": 1.0, \"width\": 0.2},\n", + " \"element\": \"quad\",\n", + " \"material\": {\"type\": \"LinearElastic\", \"youngModulus\": 1000.0, \"poissonRatio\": 0.3},\n", + " \"forceField\": {\"type\": \"LinearSmallStrainFEMForceField\"},\n", + " \"solvers\": {\n", + " \"integration\": {\"type\": \"StaticSolver\"},\n", + " \"newton\": {\"type\": \"NewtonRaphsonSolver\", \"maxNbIterationsNewton\": 1,\n", + " \"relativeInitialStoppingThreshold\": 1e-6,\n", + " \"relativeSuccessiveStoppingThreshold\": 0,\n", + " \"absoluteResidualStoppingThreshold\": 0},\n", + " \"linearSolver\": {\"type\": \"SparseLDLSolver\", \"template\": \"CompressedRowSparseMatrixd\"},\n", + " },\n", + " \"mesh\": {\"resolution\": [21, 9, 1]},\n", + " \"load\": {\"type\": \"axialTraction\", \"magnitude\": 200.0},\n", + " \"tolerance\": {\"rms\": 1e-10},\n", + " \"toleranceAnalytic\": {\"rms\": 1e-10},\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "06-md-sofa", + "metadata": {}, + "source": [ + "### SOFA's solution\n", + "\n", + "`sofa_scene.py` builds the problem as a SOFA scene and solves it. Its `solve(case)` returns the nodes $\\mathbf{x}$ of the mesh at rest and SOFA's displacement $\\mathbf{u}$ at each of them, then the polygons the figures are drawn on: the elements in 1D and 2D, the boundary faces in 3D.\n", + "\n", + "The file is also a SOFA scene, to inspect a case in the SOFA GUI:\n", + "\n", + "```bash\n", + "runSofa -l SofaPython3 validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression/sofa_scene.py --argv quad\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07-code-sofa", + "metadata": {}, + "outputs": [], + "source": [ + "import pathlib\n", + "import sys\n", + "\n", + "# Make the plugin's packages, then the case's modules, importable from validation/docs\n", + "sys.path.insert(0, \"../..\")\n", + "CASE_DIR = pathlib.Path(\"../cases/LinearSmallStrainFEMForceField/2D/AxialCompression\")\n", + "sys.path.insert(0, str(CASE_DIR))\n", + "\n", + "import sofa_scene\n", + "\n", + "x, u, polygons = sofa_scene.solve(case)" + ] + }, + { + "cell_type": "markdown", + "id": "08-md-fenics", + "metadata": {}, + "source": [ + "### The FEniCS reference\n", + "\n", + "`fenics_scene.py` solves the same problem with FEniCS. Since it reads the same `case.json` entry, the geometry, mesh resolution, material and load are SOFA's. It also builds the same mesh as SOFA, with the same nodes and elements, so the two solutions compare node by node.\n", + "\n", + "`fenics_scene.py` writes FEniCS's nodes and displacements to `reference_solution.json`, one entry per element. The file is committed with the case, so FEniCS is needed only to regenerate it (`--fenics` below). The suite checks that the nodes match before it compares the displacements." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09-code-fenics", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "\n", + "import numpy as np\n", + "\n", + "reference = json.loads((CASE_DIR / \"reference_solution.json\").read_text())[\"quad\"][\"fenics\"]\n", + "x_fenics, u_fenics = np.array(reference[\"x\"]), np.array(reference[\"u\"])\n", + "\n", + "assert np.allclose(x, x_fenics, atol=1e-8)" + ] + }, + { + "cell_type": "markdown", + "id": "10-md-comparing", + "metadata": {}, + "source": [ + "### Comparing\n", + "\n", + "$e_\\text{rms}$ is computed by `RMSRelative` (`validation/study/metrics.py`). The exact solution is the `displacement(x, case)` function of the case's `analytic_solution.py`.\n", + "\n", + "The exact displacement is linear in $x$ and $y$, and linear elements reproduce it exactly, so both differences are at round-off level. This is why this case's tolerances are $10^{-10}$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11-code-comparing", + "metadata": {}, + "outputs": [], + "source": [ + "from analytic_solution import displacement\n", + "from validation.study.metrics import RMSRelative\n", + "\n", + "u_exact = displacement(x, case)\n", + "rms = RMSRelative()\n", + "print(f\"e_rms against FEniCS: {rms.measure(u, u_fenics):.2e} (tolerance {case['tolerance']['rms']:.0e})\")\n", + "print(f\"e_rms against the exact solution: {rms.measure(u, u_exact):.2e} (tolerance {case['toleranceAnalytic']['rms']:.0e})\")" + ] + }, + { + "cell_type": "markdown", + "id": "12-md-together", + "metadata": {}, + "source": [ + "## Putting it together\n", + "\n", + "Everything the walkthrough did by hand is done by `ISFComparisonStudy` (`validation/study/study.py`), for every element of `case.json`:\n", + "\n", + "- it loads FEniCS's solution from `reference_solution.json`, running `fenics_scene.py` first if the file has no entry for the element;\n", + "- it calls `solve(case)` of `sofa_scene.py`, and checks that SOFA's nodes are FEniCS's;\n", + "- it measures $e_\\text{rms}$ against FEniCS and, if `analytic_solution.py` exists, against the exact solution, and decides whether the element passes;\n", + "- it draws a figure per element: a row each for SOFA, FEniCS and the exact solution, a column per component of $\\mathbf{u}$.\n", + "\n", + "`run` (`validation/run.py`) runs the study and saves its figures under `validation/results/`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13-code-together", + "metadata": {}, + "outputs": [], + "source": [ + "from validation.run import run\n", + "\n", + "study = run(CASE_DIR)\n", + "for element in study.results:\n", + " print(f\"{element}: e_rms = {study.results[element]['rms']:.2e} against FEniCS, \"\n", + " f\"{study.analytic_results[element]['rms']:.2e} against the exact solution, \"\n", + " f\"{'pass' if study.passed[element] else 'fail'}\")\n", + "\n", + "study.plots[\"quad\"]" + ] + }, + { + "cell_type": "markdown", + "id": "14-md-running", + "metadata": {}, + "source": [ + "The same runs from the command line:\n", + "\n", + "```bash\n", + "python validation/run.py validation/cases/LinearSmallStrainFEMForceField/2D/AxialCompression\n", + "python validation/run.py --all # every case, then one summary line per case and element\n", + "python validation/run.py --all --fenics # regenerate every reference_solution.json first\n", + "```\n", + "\n", + "The cases of a component are presented in its own notebook, e.g. [LinearSmallStrainFEMForceField.ipynb](LinearSmallStrainFEMForceField.ipynb)." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "py312", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/validation/docs/LinearSmallStrainFEMForceField.ipynb b/validation/docs/LinearSmallStrainFEMForceField.ipynb new file mode 100644 index 0000000..9594114 --- /dev/null +++ b/validation/docs/LinearSmallStrainFEMForceField.ipynb @@ -0,0 +1,414 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "01-md-title", + "metadata": {}, + "source": [ + "# Validation of `LinearSmallStrainFEMForceField`\n", + "\n", + "This notebook validates SOFA's `LinearSmallStrainFEMForceField` against FEniCS, as presented in [IntroductionValidation.ipynb](IntroductionValidation.ipynb), on the cases in `validation/cases/LinearSmallStrainFEMForceField/`. Where a case has an analytical solution, SOFA's solution is compared with it as well." + ] + }, + { + "cell_type": "markdown", + "id": "02-md-setup", + "metadata": {}, + "source": [ + "## Running the Cases\n", + "\n", + "The cells below load the suite's runner and prepare the figures. Run them once before any case: every case cell below then runs on its own, in any order." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03-code-setup", + "metadata": {}, + "outputs": [], + "source": [ + "# Make the plugin's packages importable from validation/docs\n", + "import sys\n", + "sys.path.insert(0, \"../..\")\n", + "\n", + "# Hide the runner's printed report; figures still show\n", + "import os\n", + "sys.stdout = open(os.devnull, \"w\")\n", + "\n", + "# Load the suite's runner\n", + "from validation.run import run\n", + "\n", + "# For showing figures inline\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "id": "04-md-side-by-side", + "metadata": {}, + "source": [ + "`side_by_side` shows the figures of a case's elements in one row." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "05-code-side-by-side", + "metadata": {}, + "outputs": [], + "source": [ + "import base64\n", + "import io\n", + "from IPython.display import HTML, display\n", + "\n", + "def side_by_side(*figures):\n", + " images = []\n", + " for figure in figures:\n", + " buffer = io.BytesIO()\n", + " figure.savefig(buffer, format=\"png\")\n", + " encoded = base64.b64encode(buffer.getvalue()).decode()\n", + " images.append(f'')\n", + " display(HTML(f'
{\"\".join(images)}
'))" + ] + }, + { + "cell_type": "markdown", + "id": "06-md-1d", + "metadata": {}, + "source": [ + "## Edge Elements on a 1D Bar\n", + "\n", + "The bar starts at the origin and has length $L$ along $x$. The displacement $u$ is a scalar." + ] + }, + { + "cell_type": "markdown", + "id": "07-md-distributed-axial-load-1d", + "metadata": {}, + "source": [ + "### Distributed Axial Load\n", + "\n", + "The bar carries a uniform axial load $q$ per unit length. With Young's modulus $E$, the displacement satisfies $-E\\,u'' = q$, and its exact solution is\n", + "\n", + "$$u(x) = \\frac{q}{E}\\left(L x - \\frac{x^2}{2}\\right)$$\n", + "\n", + "- `left` ($x = 0$): $u = 0$\n", + "- `right` ($x = L$): $t = 0$, traction-free, with nothing applied" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "08-code-distributed-axial-load-1d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 1D bar under a distributed axial load\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/1D/DistributedAxialLoad\")\n", + "# SOFA, FEniCS and the exact solution along the bar\n", + "study.plots[\"edge\"]" + ] + }, + { + "cell_type": "markdown", + "id": "09-md-2d", + "metadata": {}, + "source": [ + "## Triangle and Quadrilateral Elements on a 2D Beam\n", + "\n", + "The beam starts at the origin, with length $L$ along $x$ and width $W$ along $y$. Each case is run on quadrilateral (`quad`) and triangle (`tri`) elements." + ] + }, + { + "cell_type": "markdown", + "id": "10-md-axial-compression-2d", + "metadata": {}, + "source": [ + "### Axial Compression\n", + "\n", + "The right side carries a uniform compressive traction $p$. The left side is held only along $x$, so that the beam can contract freely across its width, and the stress is uniform, $\\sigma_{xx} = -p$. The exact solution is\n", + "\n", + "$$u_x = -\\frac{p}{E}\\,x, \\qquad u_y = \\frac{\\nu p}{E}\\,y$$\n", + "\n", + "- `left` ($x = 0$): $u_x = 0$\n", + "- corner $(0, 0)$: $u_y = 0$\n", + "- `right` ($x = L$): $\\mathbf{t} = (-p, 0)$\n", + "- `bottom` ($y = 0$) and `top` ($y = W$): $\\mathbf{t} = 0$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11-code-axial-compression-2d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D beam under axial compression\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/2D/AxialCompression\")\n", + "# quad on the left, tri on the right: a row each for SOFA, FEniCS and the exact solution if any, a column per component of u\n", + "side_by_side(study.plots[\"quad\"], study.plots[\"tri\"])" + ] + }, + { + "cell_type": "markdown", + "id": "12-md-distributed-transverse-traction-2d", + "metadata": {}, + "source": [ + "### Distributed Transverse Traction\n", + "\n", + "The beam is clamped on its left side, and its top side carries a uniform downward traction $q$. This case has no exact solution, so SOFA is compared with FEniCS only.\n", + "\n", + "- `left` ($x = 0$): $\\mathbf{u} = 0$\n", + "- `top` ($y = W$): $\\mathbf{t} = (0, -q)$\n", + "- `right` ($x = L$) and `bottom` ($y = 0$): $\\mathbf{t} = 0$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "13-code-distributed-transverse-traction-2d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D cantilever under a distributed transverse traction\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/2D/DistributedTransverseTraction\")\n", + "# quad on the left, tri on the right: a row each for SOFA, FEniCS and the exact solution if any, a column per component of u\n", + "side_by_side(study.plots[\"quad\"], study.plots[\"tri\"])" + ] + }, + { + "cell_type": "markdown", + "id": "14-md-three-point-bending-2d", + "metadata": {}, + "source": [ + "### Three-Point Bending\n", + "\n", + "The beam rests on two rollers at $(0, 0)$ and $(L, 0)$, and a point force $P$ pushes down on the middle of its top side. The bottom of the midspan is held along $x$, which stops the beam from sliding without breaking its symmetry. This case has no exact solution, so SOFA is compared with FEniCS only.\n", + "\n", + "- rollers $(0, 0)$ and $(L, 0)$: $u_y = 0$\n", + "- node $(L/2, 0)$: $u_x = 0$\n", + "- node $(L/2, W)$: force $(0, -P)$\n", + "- all sides: $\\mathbf{t} = 0$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15-code-three-point-bending-2d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D beam in three-point bending\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/2D/ThreePointBending\")\n", + "# quad on the left, tri on the right: a row each for SOFA, FEniCS and the exact solution if any, a column per component of u\n", + "side_by_side(study.plots[\"quad\"], study.plots[\"tri\"])" + ] + }, + { + "cell_type": "markdown", + "id": "16-md-3d", + "metadata": {}, + "source": [ + "## Tetrahedron and Hexahedron Elements on a 3D Beam\n", + "\n", + "The beam starts at the origin, with length $L$ along $x$, width $W$ along $y$ and height $H$ along $z$. Each case is run on hexahedron (`hexa`) and tetrahedron (`tet`) elements." + ] + }, + { + "cell_type": "markdown", + "id": "17-md-axial-compression-3d", + "metadata": {}, + "source": [ + "### Axial Compression\n", + "\n", + "The right face carries a uniform compressive traction $p$. The left face is held only along $x$, so that the beam can contract freely across its section, and the stress is uniform, $\\sigma_{xx} = -p$. The exact solution is\n", + "\n", + "$$u_x = -\\frac{p}{E}\\,x, \\qquad u_y = \\frac{\\nu p}{E}\\,y, \\qquad u_z = \\frac{\\nu p}{E}\\,z$$\n", + "\n", + "- `left` ($x = 0$): $u_x = 0$\n", + "- corner $(0, 0, 0)$: $u_y = u_z = 0$\n", + "- corner $(0, W, 0)$: $u_z = 0$\n", + "- `right` ($x = L$): $\\mathbf{t} = (-p, 0, 0)$\n", + "- the other faces: $\\mathbf{t} = 0$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18-code-axial-compression-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D beam under axial compression\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/3D/AxialCompression\")\n", + "# hexa on the left, tet on the right: a row each for SOFA, FEniCS and the exact solution if any, a column per component of u\n", + "side_by_side(study.plots[\"hexa\"], study.plots[\"tet\"])" + ] + }, + { + "cell_type": "markdown", + "id": "19-md-distributed-transverse-traction-3d", + "metadata": {}, + "source": [ + "### Distributed Transverse Traction\n", + "\n", + "The beam is clamped on its left face, and its top face carries a uniform downward traction $q$. This case has no exact solution, so SOFA is compared with FEniCS only.\n", + "\n", + "- `left` ($x = 0$): $\\mathbf{u} = 0$\n", + "- `top` ($y = W$): $\\mathbf{t} = (0, -q, 0)$\n", + "- the other faces: $\\mathbf{t} = 0$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20-code-distributed-transverse-traction-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D cantilever under a distributed transverse traction\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/3D/DistributedTransverseTraction\")\n", + "# hexa on the left, tet on the right: a row each for SOFA, FEniCS and the exact solution if any, a column per component of u\n", + "side_by_side(study.plots[\"hexa\"], study.plots[\"tet\"])" + ] + }, + { + "cell_type": "markdown", + "id": "21-md-three-point-bending-3d", + "metadata": {}, + "source": [ + "### Three-Point Bending\n", + "\n", + "The beam rests on a pinned line at $x = 0$ and on a roller line at $x = L$, both on its bottom face and along $z$. A force $P$ pushes down on each node of the line across the middle of its top face. This case has no exact solution, so SOFA is compared with FEniCS only.\n", + "\n", + "- line $(0, 0, z)$: $u_x = u_y = 0$\n", + "- line $(L, 0, z)$: $u_y = 0$\n", + "- node $(0, 0, 0)$: $u_z = 0$\n", + "- line $(L/2, W, z)$: force $(0, -P, 0)$ on each node\n", + "- all faces: $\\mathbf{t} = 0$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22-code-three-point-bending-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D beam in three-point bending\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/3D/ThreePointBending\")\n", + "# hexa on the left, tet on the right: a row each for SOFA, FEniCS and the exact solution if any, a column per component of u\n", + "side_by_side(study.plots[\"hexa\"], study.plots[\"tet\"])" + ] + }, + { + "cell_type": "markdown", + "id": "23-md-3d-circular", + "metadata": {}, + "source": [ + "## Tetrahedron Elements on a 3D Circular Beam\n", + "\n", + "The beam is a cylinder of radius $R$ and length $L$ along $x$, its left face centred at the origin. `mesh.py` in each case folder meshes it with tetrahedra (`tet`) using [gmsh](https://gmsh.info), and SOFA and FEniCS both read that mesh file. The left face is clamped, and the lateral surface is traction-free. These cases have no exact solution, so SOFA is compared with FEniCS only." + ] + }, + { + "cell_type": "markdown", + "id": "24-md-circular-axial-compression-3d", + "metadata": {}, + "source": [ + "### Axial Compression\n", + "\n", + "The right face carries a uniform compressive traction $p$.\n", + "\n", + "- left face ($x = 0$): $\\mathbf{u} = 0$\n", + "- right face ($x = L$): $\\mathbf{t} = (-p, 0, 0)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25-code-circular-axial-compression-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D circular beam under axial compression\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/3D/CircularAxialCompression\")\n", + "# a row each for SOFA and FEniCS, a column per component of u\n", + "study.plots[\"tet\"]" + ] + }, + { + "cell_type": "markdown", + "id": "26-md-circular-transverse-traction-3d", + "metadata": {}, + "source": [ + "### Transverse Traction\n", + "\n", + "The right face carries a uniform downward traction $q$, which bends the beam as a cantilever.\n", + "\n", + "- left face ($x = 0$): $\\mathbf{u} = 0$\n", + "- right face ($x = L$): $\\mathbf{t} = (0, -q, 0)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27-code-circular-transverse-traction-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D circular cantilever under a transverse traction\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/3D/CircularTransverseTraction\")\n", + "# a row each for SOFA and FEniCS, a column per component of u\n", + "study.plots[\"tet\"]" + ] + }, + { + "cell_type": "markdown", + "id": "28-md-circular-torsion-3d", + "metadata": {}, + "source": [ + "### Torsion\n", + "\n", + "The right face carries a torque $T$ about the axis, as the traction of a circular shaft in torsion: tangential, with magnitude $T r / J$ at the distance $r$ from the axis, where $J = \\pi R^4 / 2$ is the polar moment of the section.\n", + "\n", + "- left face ($x = 0$): $\\mathbf{u} = 0$\n", + "- right face ($x = L$): $\\mathbf{t} = \\frac{T}{J}\\,(0, -z, y)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29-code-circular-torsion-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D circular beam in torsion\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/3D/CircularTorsion\")\n", + "# a row each for SOFA and FEniCS, a column per component of u\n", + "study.plots[\"tet\"]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "py312", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/validation/run.py b/validation/run.py new file mode 100644 index 0000000..a9ed9c9 --- /dev/null +++ b/validation/run.py @@ -0,0 +1,84 @@ +"""Runner for the validation suite: loads a case and runs its ISFComparisonStudy.""" + +import argparse +import os +import pathlib +import sys +import traceback + +# Make the plugin's packages importable when this file is run directly. +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from validation.study.study import ISFComparisonStudy, overview + + +def run_all(directory, args): + """Run every case under `directory`, each with its own output, then one line per case. + + Returns [(name, study)], the study being None where that case raised. + """ + results = [] + for path in sorted(directory.glob("*/*/*/sofa_scene.py")): + case_dir = path.parent + name = str(case_dir.relative_to(directory)) + print(f"\n--- {name} ---") + try: + results.append((name, run(case_dir, fenics=args.fenics))) + except Exception as error: + # One broken case should not stop the others. + print(f" failed: {type(error).__name__}: {error}") + if args.traceback: + traceback.print_exc(file=sys.stdout) + results.append((name, None)) + overview(results) + return results + + +def run(case_dir, fenics=False): + """Run one case's comparison study, write the results it produced, and return it.""" + study = ISFComparisonStudy(case_dir) + study.run(regenerate_fenics=fenics) + study.write_results() + return study + + +def parse_arguments(): + """Parse the command line into the whole run configuration. + + Returns + ------- + argparse.Namespace + case : str or None + Path to the single case to run. ``None`` when ``--all`` was given instead. + all : bool + Run every case under the cases folder. Mutually exclusive with ``case``, and + exactly one of the two is always set. + fenics : bool + Regenerate each case's reference_solution.json by running its fenics_scene.py before + comparing, instead of comparing against the already-committed reference. False by + default. + traceback : bool + Whether a case that raises under ``--all`` also prints its full stack trace. False by + default. + """ + parser = argparse.ArgumentParser(description=__doc__) + # Must choose either --all or pass the case path + which_cases = parser.add_mutually_exclusive_group(required=True) + which_cases.add_argument("case", nargs="?", help="path to a case") + which_cases.add_argument("--all", action="store_true", help="every case under the cases folder") + parser.add_argument("--fenics", action="store_true", + help="regenerate reference_solution.json by running fenics_scene.py before comparing") + parser.add_argument("--traceback", action="store_true", + help="full stack for a case that raises under --all ") + return parser.parse_args() + + +CASES_ROOT = pathlib.Path(__file__).parent / "cases" + + +if __name__ == '__main__': + args = parse_arguments() + if args.all: + run_all(CASES_ROOT, args) + else: + run(args.case, fenics=args.fenics) diff --git a/validation/study/__init__.py b/validation/study/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/validation/study/metrics.py b/validation/study/metrics.py new file mode 100644 index 0000000..5db359b --- /dev/null +++ b/validation/study/metrics.py @@ -0,0 +1,33 @@ +"""The quantities a comparison study measures: one class per metric, so a metric is defined in one place.""" + +from abc import ABC, abstractmethod + +import numpy as np + + +class Metric(ABC): + """A quantity measured between a SOFA solve and a reference solved by another software.""" + + name = "" + + @abstractmethod + def measure(self, u_sofa, u_fenics): + """The metric's value for one case.""" + + +class RMSRelative(Metric): + """Root-mean-square of the difference, relative to the RMS of the reference: + + rms = sqrt(mean((u_sofa - u_fenics)^2)) / sqrt(mean(u_fenics^2)) + """ + + name = "rms" + + def measure(self, u_sofa, u_fenics): + diff = u_sofa - u_fenics + scale = np.sqrt(np.mean(u_fenics ** 2)) or 1.0 + return np.sqrt(np.mean(diff ** 2)) / scale + + +# METRICS is the fixed list of metric instances every case is measured against. +METRICS = [RMSRelative()] diff --git a/validation/study/study.py b/validation/study/study.py new file mode 100644 index 0000000..d7975e9 --- /dev/null +++ b/validation/study/study.py @@ -0,0 +1,227 @@ +"""ISFComparisonStudy: wraps one validation case's sofa_scene/fenics_scene pair.""" + +import importlib.util +import json +import pathlib +import sys + +import matplotlib +matplotlib.use('Agg') +import matplotlib.pyplot as plt +import numpy as np +from matplotlib.collections import PolyCollection +from mpl_toolkits.mplot3d.art3d import Poly3DCollection + +from .metrics import METRICS + +CASES_ROOT = pathlib.Path(__file__).parent.parent / "cases" +RESULTS_ROOT = pathlib.Path(__file__).parent.parent / "results" + + +def _load_module(path, name): + """Import the .py file at `path`""" + spec = importlib.util.spec_from_file_location(name, path) # `name` unique per case: avoids a module collision across cases + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +class ISFComparisonStudy: + """Runs one validation case's SOFA scene against recorded references from other software. + + If an analytical solution is provided, it is used. + """ + + def __init__(self, case_dir): + self.case_dir = pathlib.Path(case_dir) + self.name = self.case_dir.name + self.results = {} + self.analytic_results = {} + self.analytic_passed = {} + self.max = {} + self.passed = {} + self.plots = {} + self.solutions = {} + + def run(self, regenerate_fenics=False): + with open(self.case_dir / 'case.json') as f: + case = json.load(f) + element_cases = [case] if 'geometry' in case else list(case.values()) + + reference_file = self.case_dir / 'reference_solution.json' + + for case in element_cases: + element = case['element'] + + reference = json.loads(reference_file.read_text()) if reference_file.exists() else {} + has_fenics = element in reference and 'fenics' in reference[element] + if regenerate_fenics or not has_fenics: + fenics_scene = _load_module(self.case_dir / 'fenics_scene.py', f'fenics_scene_{self.name}') + fenics_scene.main(case) + reference = json.loads(reference_file.read_text()) + + reference = reference[element]['fenics'] + x_fenics, u_fenics = np.array(reference['x']), np.array(reference['u']) + + sofa_scene = _load_module(self.case_dir / 'sofa_scene.py', f'sofa_scene_{self.name}') + x_sofa, u_sofa, polygons = sofa_scene.solve(case) + self.solutions[element] = (x_sofa, u_sofa) + + assert np.allclose(x_sofa, x_fenics, atol=1e-8), \ + "SOFA and FEniCS meshes disagree on node coordinates: comparison is not meaningful" + + self.results[element] = {metric.name: metric.measure(u_sofa, u_fenics) for metric in METRICS} + passed = all(self.results[element][name] < case['tolerance'][name] + for name in self.results[element]) + + u_exact = None + analytic_path = self.case_dir / 'analytic_solution.py' + if analytic_path.exists(): + analytic_solution = _load_module(analytic_path, f'analytic_solution_{self.name}') + u_exact = analytic_solution.displacement(x_sofa, case) + self.analytic_results[element] = {metric.name: metric.measure(u_sofa, u_exact) + for metric in METRICS} + self.analytic_passed[element] = all( + self.analytic_results[element][name] < case['toleranceAnalytic'][name] + for name in self.analytic_results[element]) + passed = passed and self.analytic_passed[element] + + self.passed[element] = passed + + # Max RMS value + max_scale = np.max(np.abs(u_fenics)) or 1.0 + self.max[element] = np.max(np.abs(u_sofa - u_fenics)) / max_scale + + self.plots[element] = self._plot(element, x_sofa, u_sofa, polygons, u_fenics, u_exact) + return self + + def write_results(self): + """Save the figures this study produced under //.""" + try: + relative = self.case_dir.resolve().relative_to(CASES_ROOT.resolve()) + except ValueError: + relative = pathlib.Path(self.case_dir.name) + directory = RESULTS_ROOT / relative + directory.mkdir(parents=True, exist_ok=True) + + for name, figure in self.plots.items(): + figure.savefig(directory / f"{name}.png") + plt.close(figure) + + def _plot(self, element, x, u_sofa, polygons, u_fenics, u_exact): + """`polygons` are the elements in 1D and 2D, and the boundary faces in 3D.""" + if x.ndim == 1: + figure, axes = plt.subplots(figsize=(7, 5)) + if u_exact is not None: + plot_1d(axes, x, u_exact, polygons, 'k--', lw=1, label='analytic') + plot_1d(axes, x, u_fenics, polygons, 's', mfc='none', mec='tab:blue', ms=8, mew=1.5, label='FEniCS') + plot_1d(axes, x, u_sofa, polygons, '+', color='tab:red', ms=8, mew=1.5, label='SOFA') + axes.set_xlabel('x') + axes.set_ylabel('u') + axes.set_title(f'{self.name}/{element}') + axes.legend() + axes.grid(alpha=.3) + axes.annotate(f"rms = {self.results[element]['rms']:.2e}", xy=(.04, .92), + xycoords='axes fraction', fontsize=9, color='dimgray') + return figure + + sources = [('SOFA', u_sofa), ('FEniCS', u_fenics)] + if u_exact is not None: + sources.append(('Analytic', u_exact)) + dim = x.shape[1] + components = ['u_x', 'u_y', 'u_z'][:dim] + + extent = np.ptp(x, axis=0) + panel_width = 4.5 + panel_height = panel_width * extent[1] / extent[0] + 0.5 if dim == 2 else 3.5 + figure, axes = plt.subplots(len(sources), len(components), squeeze=False, + figsize=(panel_width * len(components) + 0.5, + panel_height * len(sources) + 1.2), + layout='constrained', subplot_kw={'projection': '3d'} if dim == 3 else {}) + plot = plot_2d if dim == 2 else plot_3d + + for column, component in enumerate(components): + # Shared colour scale per component, so the solvers compare at a glance. + values = [u[:, column] for _, u in sources] + vmin, vmax = min(v.min() for v in values), max(v.max() for v in values) + # A component constant over the plot would stretch round-off over the colour map. + span = 1e-6 * max(np.abs(u).max() for _, u in sources) + if vmax - vmin < span: + vmin, vmax = (vmin + vmax - span) / 2, (vmin + vmax + span) / 2 + for row, (label, u) in enumerate(sources): + image = plot(axes[row, column], x, u, u[:, column], polygons, cmap='viridis', + norm=plt.Normalize(vmin, vmax)) + axes[row, column].set_title(f'{label}: ${component}$') + colorbar = figure.colorbar(image, ax=axes[:, column], location='bottom', shrink=0.8) + colorbar.ax.xaxis.set_major_locator(matplotlib.ticker.MaxNLocator(5)) + colorbar.ax.ticklabel_format(axis='x', style='sci', scilimits=(0, 0)) + + figure.suptitle(f"{self.name}/{element} rms = {self.results[element]['rms']:.2e}") + return figure + + +def plot_1d(ax, x, values, edges, *args, **kwargs): + """Nodal `values` along the `edges`, as one line broken between edges.""" + gap = np.full((len(edges), 1), np.nan) + return ax.plot(np.hstack([x[edges], gap]).ravel(), np.hstack([values[edges], gap]).ravel(), *args, **kwargs) + + +def plot_2d(ax, x, u, values, elements, **kwargs): + """Colour map of nodal `values` over the triangles or quads `elements`, deformed by `u`; each takes the mean + of its nodes.""" + deformed = x + u + collection = ax.add_collection(PolyCollection(deformed[elements], array=values[elements].mean(axis=1), **kwargs)) + ax.autoscale_view() + ax.set_aspect('equal') + return collection + + +def plot_3d(ax, x, u, values, faces, **kwargs): + """Colour map of nodal `values` over the boundary `faces`, deformed by `u`, y upwards; each takes the mean + of its nodes.""" + view = (x + u)[:, [0, 2, 1]] + collection = ax.add_collection3d(Poly3DCollection(view[faces], array=values[faces].mean(axis=1), **kwargs)) + ax.auto_scale_xyz(*view.T) + ax.set_box_aspect(np.ptp(view, axis=0)) + ax.set(xlabel='x', ylabel='z', zlabel='y') + return collection + + +def _paint(cell, accepted): + """Colour a cell green when accepted, red otherwise.""" + GREEN, RED, RESET = "\033[32m", "\033[31m", "\033[0m" + + if not cell.strip() or not sys.stdout.isatty(): + return cell + return f"{GREEN if accepted else RED}{cell}{RESET}" + + +def overview(results): + """Print one line per case per element: its RMS and max relative error against the reference + solution, and its RMS against the analytic solution when the case has one.""" + name_width = max(len('case'), *(len(name) for name, _ in results)) + element_width = max(len('element'), *(len(element) for _, study in results if study is not None + for element in study.results)) + + print() + print(f"{'case':<{name_width}} {'element':<{element_width}} " + f"{'rms':>12} {'max':>12} {'analytic rms':>14}") + + for name, study in results: + if study is None: + error = "error" + print(f"{name:<{name_width}} {'--':<{element_width}} " + f"{_paint(f'{error:>12}', False)} {_paint(f'{error:>12}', False)} " + f"{_paint(f'{error:>14}', False)}") + continue + + for element, metrics in study.results.items(): + rms_text, max_text = f"{metrics['rms']:.3e}", f"{study.max[element]:.3e}" + analytic = study.analytic_results.get(element) + if analytic is None: + analytic_text = f"{'--':>14}" + else: + analytic_text = _paint(f"{analytic['rms']:>14.3e}", study.analytic_passed[element]) + print(f"{name:<{name_width}} {element:<{element_width}} " + f"{_paint(f'{rms_text:>12}', study.passed[element])} " + f"{max_text:>12} {analytic_text}") diff --git a/verification/__init__.py b/verification/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/verification/case.py b/verification/case.py new file mode 100644 index 0000000..eb06ae9 --- /dev/null +++ b/verification/case.py @@ -0,0 +1,209 @@ +"""The case as one object: parsed, validated, and resolved into a config dictionary that a run needs.""" + +import json +import pathlib + +from common.geometry import Grid, Bar1D, Beam2D, Beam3D, Tire, Tire2D, Tire3D +from common.sofa.conventions import ELEMENTS + +from . import manufactured +from .manufactured import ManufacturedProblem +from .manufactured.materials import LinearElastic +from .study.metrics import METRICS + +CASES_ROOT = pathlib.Path(__file__).parent / "cases" + +# case "geometry.type" -> geometry class, keyed by the class's own name. +GEOMETRIES = {cls.__name__: cls for cls in (Grid, Bar1D, Beam2D, Beam3D, + Tire, Tire2D, Tire3D)} + +# case "material.type" -> material class, keyed by the class's own name. +MATERIALS = {cls.__name__: cls for cls in (LinearElastic,)} + + +class _ManufacturedSolutionRegistry: + """(topological dim of the geometry, case "solution.type") -> ManufacturedSolution class. + + Looked up by naming convention: a case's solution type "Quadratic" at dim 2 resolves to + manufactured.Quadratic2D. The dimension is the PDE's own, not the space it is solved in. + """ + + def __getitem__(self, key): + dim, type_name = key + class_name = f"{type_name}{dim}D" + try: + return getattr(manufactured, class_name) + except AttributeError: + raise KeyError(f"no manufactured solution {class_name!r} for dim={dim}, " + f"solution type={type_name!r}") + + +MANUFACTURED_SOLUTIONS = _ManufacturedSolutionRegistry() + +# Required keys for all cases. A missing key is an omission, an unknown key is a typo. +REQUIRED = {"geometry", "element", "solution", "material", "forceField", + "errorQuadratureDegree", "sourceQuadratureDegree", "solvers", "mesh", + "asymptoticTolerance", "expectedOrder", "expectedOrderTolerance", "relativeNoiseFloor"} + +OPTIONAL = { + "tractionOn" # {region: directions} handed to the manufactured traction; the rest stay Dirichlet. + , "gridMapping" # Data for the mapping meshing the grid, where the element kind needs one. +} + +MESH_KEYS = {"cells", "levels", "refinementRatio"} + + + +def _validate(name, config): + """Every required key present, nothing unknown, and one expectation per metric. + + `solvers` and `forceField` pass their own keys through to SOFA Data verbatim, so this module + cannot know what's legal inside them and only checks their presence/shape, not their contents. + Every problem is collected before raising, so a case is corrected in one pass, not one key per run. + """ + problems = [] + + # Top-level keys: exact match against REQUIRED. + missing = REQUIRED - set(config) + if missing: + problems.append(f"missing {sorted(missing)}") + unknown = set(config) - REQUIRED - OPTIONAL + if unknown: + problems.append(f"unknown {sorted(unknown)}") + + # A grid-native element kind is meshed by no mapping, so its Data would go nowhere. + element = config.get("element") + if "gridMapping" in config and element in ELEMENTS and ELEMENTS[element].grid_mapping is None: + problems.append(f"gridMapping is stated but {element!r} is meshed straight from the grid") + + # mesh: exact match against MESH_KEYS. + if "mesh" in config and set(config["mesh"]) != MESH_KEYS: + problems.append(f"mesh must state exactly {sorted(MESH_KEYS)}, got {sorted(config['mesh'])}") + + # solution: just needs a type and an amplitude; the rest is that solution's own business. + solution_config = config.get("solution", {}) + absent = {"type", "amplitude"} - set(solution_config) + if absent: + problems.append(f"solution must state {sorted(absent)}") + + # material: must name a registered type. + material = config.get("material", {}) + if "type" not in material: + problems.append(f"material must state a type, one of {sorted(MATERIALS)}") + elif material["type"] not in MATERIALS: + problems.append(f"unknown material {material['type']!r}, expected one of {sorted(MATERIALS)}") + + # forceField: must be an object stating a type. + force_field = config.get("forceField") + if not isinstance(force_field, dict): + problems.append(f"forceField must be an object stating a type, got {force_field!r}") + force_field = {} + elif "type" not in force_field: + problems.append("forceField must state a type") + # forceField must not restate what the prefab already owns: name/template/topology follow + # from element and the mesh, so a case stating either could contradict what it already stated. + owned = {"name", "template", "topology"} & set(force_field) + if owned: + problems.append(f"forceField must not state {sorted(owned)}: the prefab sets them") + # forceField must not restate a constitutive parameter that belongs in material, so the + # manufactured source and the forceField under test can't drift apart. + clash = (set(force_field) & set(material)) - {"type"} + if clash: + problems.append(f"forceField and material both state {sorted(clash)}: state them in material") + + # expectedOrder: one entry per registered metric, exactly. + names = {metric.name for metric in METRICS} + if "expectedOrder" in config and set(config["expectedOrder"]) != names: + problems.append(f"expectedOrder must state exactly {sorted(names)}, " + f"got {sorted(config['expectedOrder'])}") + + if problems: + raise ValueError(f"{name}: " + "; ".join(problems)) + + +def _validate_boundary_conditions(name, config, geometry): + """The case's traction regions exist, and state one direction per dimension of the space.""" + traction_on = config.get("tractionOn", {}) + problems = [] + + unknown = set(traction_on) - set(geometry.region_names) + if unknown: + problems.append(f"tractionOn names {sorted(unknown)}, not regions of " + f"{type(geometry).__name__}: {sorted(geometry.region_names)}") + + # One direction per dimension of the mesh; the clamp pads the ones it is embedded in. + for region, directions in traction_on.items(): + if (len(directions) != geometry.dim + or any(direction not in (0, 1) for direction in directions)): + problems.append(f"tractionOn[{region!r}] must state {geometry.dim} directions, " + f"each 0 or 1, got {directions}") + + if problems: + raise ValueError(f"{name}: " + "; ".join(problems)) + + +class Case: + """One case: the study it specifies, with the geometry and the manufactured problem built.""" + + def __init__(self, path, config): + path = pathlib.Path(path) + + # Extract root path and keep stem as the name of the case. + stem = path.resolve().with_suffix("") + try: + self.name = stem.relative_to(CASES_ROOT.resolve()).as_posix() + except ValueError: + self.name = f"{path.parent.name}/{path.stem}" + _validate(self.name, config) + + # Geometry Class + geometry_config = dict(config["geometry"]) + self.geometry = GEOMETRIES[geometry_config.pop("type")](**geometry_config) + + _validate_boundary_conditions(self.name, config, self.geometry) + + # Keyed on the geometry's topological dimension. + self.traction_on = config.get("tractionOn", {}) + solution = MANUFACTURED_SOLUTIONS[(self.geometry.dim, config["solution"]["type"])]( + config["solution"], self.geometry, self.traction_on) + + # Nothing fixed anywhere leaves the rigid modes in the system. + if not solution.prescribe_displacement_on: + raise ValueError(f"{self.name}: tractionOn frees every direction of every region, " + f"which leaves the problem singular") + + # ManufacturedProblem Class + material = MATERIALS[config["material"]["type"]] + self.manufactured_problem = ManufacturedProblem( + solution, material(*material.get_material_parameters( + config["material"], self.geometry.spatial_dimensions)), + self.geometry.spatial_dimensions) + + self.element = config["element"] + self.material = config["material"] + self.force_field = config["forceField"] + self.solvers = config["solvers"] + self.mesh = config["mesh"] + self.error_quadrature_degree = config["errorQuadratureDegree"] + self.source_quadrature_degree = config["sourceQuadratureDegree"] + self.asymptotic_tolerance = config["asymptoticTolerance"] + self.expected_order = config["expectedOrder"] + self.expected_order_tolerance = config["expectedOrderTolerance"] + self.relative_noise_floor = config["relativeNoiseFloor"] + self.grid_mapping = config.get("gridMapping", {}) + + @classmethod + def load(cls, path): + with open(path) as f: + return cls(path, json.load(f)) + + @property + def equation(self): + """The manufactured solution in math form, for figures and reports.""" + return self.manufactured_problem.equation + + def levels(self): + """Cells per axis at each refinement level, coarsest first.""" + ratio = self.mesh["refinementRatio"] + return [[count * ratio ** level for count in self.mesh["cells"]] + for level in range(self.mesh["levels"])] diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quadratic1D.json b/verification/cases/LinearSmallStrainFEMForceField/Quadratic1D.json new file mode 100644 index 0000000..2cfd0c2 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quadratic1D.json @@ -0,0 +1,24 @@ +{ + "geometry": { "type": "Bar1D", "length": 2.0 }, + "element": "edge", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "right": [1] }, + "solution": { "type": "Quadratic", "amplitude": 0.1 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3], "levels": 7, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quadratic2D_Quad.json b/verification/cases/LinearSmallStrainFEMForceField/Quadratic2D_Quad.json new file mode 100644 index 0000000..6b3824c --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quadratic2D_Quad.json @@ -0,0 +1,24 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1], "bottom": [1, 0], "right": [1, 1], "top": [1, 1] }, + "solution": { "type": "Quadratic", "amplitude": 0.1 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 6, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quadratic2D_Tri.json b/verification/cases/LinearSmallStrainFEMForceField/Quadratic2D_Tri.json new file mode 100644 index 0000000..a65c2c0 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quadratic2D_Tri.json @@ -0,0 +1,24 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0 }, + "element": "tri", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1], "bottom": [1, 0], "right": [1, 1], "top": [1, 1] }, + "solution": { "type": "Quadratic", "amplitude": 0.1 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 6, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quadratic3D_Hexa.json b/verification/cases/LinearSmallStrainFEMForceField/Quadratic3D_Hexa.json new file mode 100644 index 0000000..70df3b7 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quadratic3D_Hexa.json @@ -0,0 +1,31 @@ +{ + "geometry": { "type": "Beam3D", "length": 1.0, "width": 1.0, "height": 1.0 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1, 1], "bottom": [1, 0, 1], "front": [1, 1, 0], "right": [1, 1, 1], "top": [1, 1, 1], "back": [1, 1, 1] }, + "solution": { "type": "Quadratic", "amplitude": 0.1 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "mesh": { "cells": [3, 3, 3], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quadratic3D_Tetra.json b/verification/cases/LinearSmallStrainFEMForceField/Quadratic3D_Tetra.json new file mode 100644 index 0000000..fa3ae31 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quadratic3D_Tetra.json @@ -0,0 +1,32 @@ +{ + "geometry": { "type": "Beam3D", "length": 1.0, "width": 1.0, "height": 1.0 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1, 1], "bottom": [1, 0, 1], "front": [1, 1, 0], "right": [1, 1, 1], "top": [1, 1, 1], "back": [1, 1, 1] }, + "solution": { "type": "Quadratic", "amplitude": 0.1 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "gridMapping": { "swapping": true }, + "mesh": { "cells": [4, 4, 4], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quartic2D_Quad.json b/verification/cases/LinearSmallStrainFEMForceField/Quartic2D_Quad.json new file mode 100644 index 0000000..f9a49bb --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quartic2D_Quad.json @@ -0,0 +1,31 @@ +{ + "geometry": { "type": "Tire2D", "inner_radius": 0.25, "outer_radius": 0.5 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "outer": [1, 1] }, + "solution": { "type": "Quartic", "amplitude": 1.0 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "mesh": { "cells": [2, 16], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quartic2D_Tri.json b/verification/cases/LinearSmallStrainFEMForceField/Quartic2D_Tri.json new file mode 100644 index 0000000..c161f73 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quartic2D_Tri.json @@ -0,0 +1,31 @@ +{ + "geometry": { "type": "Tire2D", "inner_radius": 0.25, "outer_radius": 0.5 }, + "element": "tri", + "material": { "type": "LinearElastic", "youngModulus": 1.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "outer": [1, 1] }, + "solution": { "type": "Quartic", "amplitude": 1.0 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "mesh": { "cells": [2, 16], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quartic3D_Hexa.json b/verification/cases/LinearSmallStrainFEMForceField/Quartic3D_Hexa.json new file mode 100644 index 0000000..7bdde69 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quartic3D_Hexa.json @@ -0,0 +1,31 @@ +{ + "geometry": { "type": "Tire3D", "inner_radius": 0.25, "outer_radius": 0.5, "extrusion_length": 0.25 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "front": [1, 1, 1], "back": [1, 1, 1] }, + "solution": { "type": "Quartic", "amplitude": 1.0 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "mesh": { "cells": [2, 16, 2], "levels": 4, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Quartic3D_Tetra.json b/verification/cases/LinearSmallStrainFEMForceField/Quartic3D_Tetra.json new file mode 100644 index 0000000..d99fd10 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Quartic3D_Tetra.json @@ -0,0 +1,32 @@ +{ + "geometry": { "type": "Tire3D", "inner_radius": 0.25, "outer_radius": 0.5, "extrusion_length": 0.25 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1.0, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "front": [1, 1, 1], "back": [1, 1, 1] }, + "solution": { "type": "Quartic", "amplitude": 1.0 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "gridMapping": { "swapping": true }, + "mesh": { "cells": [2, 16, 2], "levels": 4, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric1D.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric1D.json new file mode 100644 index 0000000..827a2f2 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric1D.json @@ -0,0 +1,24 @@ +{ + "geometry": { "type": "Bar1D", "length": 2.0 }, + "element": "edge", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "right": [1] }, + "solution": { "type": "Trigonometric", "amplitude": 1 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3], "levels": 7, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad.json new file mode 100644 index 0000000..f608cf9 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad.json @@ -0,0 +1,24 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1], "bottom": [1, 0], "right": [1, 1], "top": [1, 1] }, + "solution": { "type": "Trigonometric", "amplitude": 0.1 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 6, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad_Dirichlet.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad_Dirichlet.json new file mode 100644 index 0000000..a57bd17 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad_Dirichlet.json @@ -0,0 +1,23 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0 }, + "element": "quad", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solution": { "type": "Trigonometric", "amplitude": 0.02 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri.json new file mode 100644 index 0000000..5024659 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri.json @@ -0,0 +1,24 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0 }, + "element": "tri", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1], "bottom": [1, 0], "right": [1, 1], "top": [1, 1] }, + "solution": { "type": "Trigonometric", "amplitude": 0.1 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 6, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_Dirichlet.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_Dirichlet.json new file mode 100644 index 0000000..1efc304 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_Dirichlet.json @@ -0,0 +1,23 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0 }, + "element": "tri", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solution": { "type": "Trigonometric", "amplitude": 0.02 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_PlaneStrain.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_PlaneStrain.json new file mode 100644 index 0000000..c32ddef --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_PlaneStrain.json @@ -0,0 +1,23 @@ +{ + "geometry": { "type": "Beam2D", "length": 1.0, "width": 1.0, "spatialDimensions": 3 }, + "element": "tri", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solution": { "type": "Trigonometric", "amplitude": 0.1 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { "type": "SparseLDLSolver", "template": "CompressedRowSparseMatrixd" } + }, + "mesh": { "cells": [3, 3], "levels": 6, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-12 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa.json new file mode 100644 index 0000000..2e0c27f --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa.json @@ -0,0 +1,31 @@ +{ + "geometry": { "type": "Beam3D", "length": 1.0, "width": 1.0, "height": 1.0 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1, 1], "bottom": [1, 0, 1], "front": [1, 1, 0], "right": [1, 1, 1], "top": [1, 1, 1], "back": [1, 1, 1] }, + "solution": { "type": "Trigonometric", "amplitude": 0.1 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "mesh": { "cells": [3, 3, 3], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa_Dirichlet.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa_Dirichlet.json new file mode 100644 index 0000000..f5c0ff8 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa_Dirichlet.json @@ -0,0 +1,30 @@ +{ + "geometry": { "type": "Beam3D", "length": 1.0, "width": 1.0, "height": 1.0 }, + "element": "hexa", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solution": { "type": "Trigonometric", "amplitude": 0.02 }, + "errorQuadratureDegree": 3, + "sourceQuadratureDegree": 3, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "mesh": { "cells": [3, 3, 3], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra.json new file mode 100644 index 0000000..26c5075 --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra.json @@ -0,0 +1,32 @@ +{ + "geometry": { "type": "Beam3D", "length": 1.0, "width": 1.0, "height": 1.0 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "tractionOn": { "left": [0, 1, 1], "bottom": [1, 0, 1], "front": [1, 1, 0], "right": [1, 1, 1], "top": [1, 1, 1], "back": [1, 1, 1] }, + "solution": { "type": "Trigonometric", "amplitude": 0.1 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "gridMapping": { "swapping": true }, + "mesh": { "cells": [4, 4, 4], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra_Dirichlet.json b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra_Dirichlet.json new file mode 100644 index 0000000..bb6b7ba --- /dev/null +++ b/verification/cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra_Dirichlet.json @@ -0,0 +1,31 @@ +{ + "geometry": { "type": "Beam3D", "length": 1.0, "width": 1.0, "height": 1.0 }, + "element": "tet", + "material": { "type": "LinearElastic", "youngModulus": 1e6, "poissonRatio": 0.3 }, + "forceField": { "type": "LinearSmallStrainFEMForceField" }, + "solution": { "type": "Trigonometric", "amplitude": 0.02 }, + "errorQuadratureDegree": 2, + "sourceQuadratureDegree": 2, + "solvers": { + "integration": { "type": "StaticSolver" }, + "newton": { "type": "NewtonRaphsonSolver", "maxNbIterationsNewton": 1, + "relativeInitialStoppingThreshold": 1e-6, + "relativeSuccessiveStoppingThreshold": 0, + "absoluteResidualStoppingThreshold": 0, + "printLog": false }, + "linearSolver": { + "type": "PCGLinearSolver", "iterations": 1000, "tolerance": 1e-24, "printLog": false, + "system": { "type": "PreconditionedMatrixFreeSystem" }, + "preconditioner": { + "type": "SSORPreconditioner", + "system": { "type": "MatrixLinearSystem", "template": "CompressedRowSparseMatrixd" } + } + } + }, + "gridMapping": { "swapping": true }, + "mesh": { "cells": [4, 4, 4], "levels": 5, "refinementRatio": 2 }, + "asymptoticTolerance": 0.10, + "expectedOrder": { "L2": 2.0, "H1": 1.0, "EnergyDifference": 1.0 }, + "expectedOrderTolerance": 0.15, + "relativeNoiseFloor": 1e-10 +} diff --git a/verification/docs/IntroductionMMS.ipynb b/verification/docs/IntroductionMMS.ipynb new file mode 100644 index 0000000..8d5c668 --- /dev/null +++ b/verification/docs/IntroductionMMS.ipynb @@ -0,0 +1,889 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "01-md-title", + "metadata": {}, + "source": [ + "# Code Verification by the Method of Manufactured Solutions\n", + "\n", + "This notebook presents the Method of Manufactured Solutions (MMS) used for code verification and provides a walkthrough of the code that implements it.\n", + "\n", + "Verification and Validation answer two distinct questions [[2]](#ref2)[[6]](#ref6): \n", + "\n", + "- **Verification** Does the code solve its equations correctly, at the order of accuracy the discretisation claims?\n", + "- **Validation** Are these the right equations for the physical problem?\n", + "\n", + "In short, verification is *solving the equations right*, and validation is *solving the right equations* [[7]](#ref7).\n", + "\n", + "Verifying a code means comparing its solution against an exact one. The problem with classical exact solutions is that they exist\n", + "only for very simple geometries, loads and material laws, and even then they leave terms of the\n", + "equations untested [[2]](#ref2)[[4]](#ref4). A code can pass them and still be wrong. \n", + "MMS removes this limitation: it builds the problem around a solution we construct, so an exact\n", + "solution is always available." + ] + }, + { + "cell_type": "markdown", + "id": "02-md-mms-in-a-nutshell", + "metadata": {}, + "source": [ + "## The MMS in a nutshell\n", + "\n", + "Suppose we wish to solve the mathematical model $\\mathcal{L}(u) = 0$, where $\\mathcal{L}$ is the\n", + "differential operator and $u$ the unknown. The main idea is to choose a manufactured solution\n", + "$\\hat{u}$ first, then apply the governing equations to it: what remains, $s = \\mathcal{L}(\\hat{u})$,\n", + "is the source term. By construction, $\\hat{u}$ is the exact solution of the modified model\n", + "[[1]](#ref1)[[2]](#ref2)[[5]](#ref5)\n", + "\n", + "$$\\mathcal{L}(u) = s$$\n", + "\n", + "The boundary conditions are derived from $\\hat{u}$ as well. Three properties make this practical\n", + "[[5]](#ref5):\n", + "\n", + "- $s$ depends on the coordinates only, not on $u$. It enters the code as a known load, that is, as\n", + " input.\n", + "- Since $s$ is a known function, no discrete version of $\\mathcal{L}$ is applied to it. It is\n", + " only integrated into nodal loads, by quadrature.\n", + "- The left-hand side $\\mathcal{L}(u)$ is unchanged, so the discretisation under test is not\n", + " modified; only its input is.\n", + "\n", + "In short, the expectation is that solving the modified problem gives back $\\hat{u}$.\n", + "\n", + "In practice, the code does not solve $\\mathcal{L}(u) = s$ itself but a discrete version of it: a\n", + "finite element code solves its weak form on a mesh. Its solution $u_h$ is then only an\n", + "approximation of $\\hat{u}$, and the difference $e = u_h - \\hat{u}$ is the error. Because $\\hat{u}$\n", + "is known exactly, this error can be computed rather than estimated.\n", + "\n", + "### Measuring the error\n", + "\n", + "Numerical error has three sources [[3]](#ref3): the discretisation, finite-precision arithmetic\n", + "and the tolerance the solvers stop at. A coding mistake adds a fourth contribution, the one the\n", + "study is looking for:\n", + "\n", + "$$e = \\varepsilon_h + \\varepsilon_\\text{ro} + \\varepsilon_\\text{it} + \\varepsilon_\\text{bug}$$\n", + "\n", + "- $\\varepsilon_h$, the *discretisation error*, which comes from the mesh and vanishes as it is\n", + " refined;\n", + "- $\\varepsilon_\\text{ro}$, the *round-off error*, from finite-precision arithmetic;\n", + "- $\\varepsilon_\\text{it}$, the *iterative error*, from stopping the linear or Newton solver at a\n", + " finite tolerance;\n", + "- $\\varepsilon_\\text{bug}$, the error caused by *coding mistakes*.\n", + "\n", + "Under a correct implementation $\\varepsilon_\\text{bug} = 0$, and only $\\varepsilon_h$ should remain,\n", + "provided $\\varepsilon_\\text{ro}$ and $\\varepsilon_\\text{it}$ are kept far below it.\n", + "\n", + "The error is a field over $\\Omega$, so its size is measured with norms integrated over the domain:\n", + "\n", + "$$\\|e\\|_{L^2} = \\left(\\int_\\Omega |e|^2\\,d\\Omega\\right)^{1/2}, \\qquad\n", + " |e|_{H^1} = \\left(\\int_\\Omega \\|\\nabla e\\|^2\\,d\\Omega\\right)^{1/2}$$\n", + "\n", + "The $L^2$ norm measures the error itself, the $H^1$ semi-norm its gradient.\n", + "This suite also compares the strain energy SOFA computes for $u_h$ with the exact one, $E(\\hat{u})$, through $\\sqrt{2\\,|E(\\hat{u}) - E(u_h)|}$.\n", + "\n", + "Order verification assumes that the discretisation error can be expanded in powers of the mesh size\n", + "$h$ [[5]](#ref5):\n", + "\n", + "$$\\|\\varepsilon_h\\| = C\\,h^p + O(h^{p+1})$$\n", + "\n", + "$p$ is the formal order of accuracy of the discretisation. $C$ does not depend on $h$, but on the\n", + "higher derivatives of the manufactured solution [[5]](#ref5). As $h$ decreases, the higher-order\n", + "terms vanish faster than the first one, so on fine enough meshes the leading term dominates and\n", + "$\\|\\varepsilon_h\\| \\approx C\\,h^p$. Such meshes are in the *asymptotic regime*. On coarser ones, in the pre-asymptotic regime, the higher-order terms still weigh, and the observed order can differ from $p$ even for a correct code. For elements whose shape functions are polynomials of degree\n", + "$q$, $p = q + 1$ in the $L^2$ norm and $p = q$ in the $H^1$ semi-norm [[8]](#ref8).\n", + "\n", + "$\\varepsilon_\\text{ro}$ and $\\varepsilon_\\text{it}$ do not follow $h$: the iterative error is set\n", + "by the solver tolerance, and round-off grows as the mesh is refined and the system becomes larger\n", + "and worse conditioned. They set a noise floor, and an error below it must not be used to measure\n", + "the order: the ratio of two such errors reflects round-off and solver tolerance, not the\n", + "discretisation. Both must stay well below $\\varepsilon_h$ on the finest mesh [[5]](#ref5). A coding\n", + "mistake shows up as an error that does not vanish, or that vanishes at the wrong rate\n", + "[[4]](#ref4).\n", + "\n", + "The code is judged by the rate at which the error decreases, not by its size. A single error value\n", + "on a single mesh does not tell whether the code is correct: how small is small enough depends on the\n", + "solution, the units and the mesh, all of which enter $C$, while $p$ depends on the discretisation\n", + "alone. The mesh is therefore refined by a factor $r = h_\\text{coarse}/h_\\text{fine} > 1$, and the\n", + "ratio of the two errors gives the observed order of accuracy [[5]](#ref5):\n", + "\n", + "$$\\hat{p} = \\frac{\\ln\\!\\left(\\|e_{rh}\\| / \\|e_{h}\\|\\right)}{\\ln r}$$\n", + "\n", + "The test passes when $\\hat{p}$ matches $p$. Checking the order is a much stronger criterion than\n", + "checking that the error is small, or even that it decreases [[4]](#ref4).\n", + "\n", + "Everything under test is implemented in SOFA, in C++: the force fields\n", + "(`LinearSmallStrainFEMForceField`), the\n", + "solvers, and the components that turn a body force into nodal loads (`VectorSourceTerm`,\n", + "`FEMSourceTermIntegrator`). The suite does not modify any of them; they are the discrete\n", + "$\\mathcal{L}$ whose left-hand side stays unchanged.\n", + "\n", + "The Python scripts do everything around them:\n", + "\n", + "- derive the source term $s$ and the boundary conditions from $\\hat{u}$ and the material law;\n", + "- apply them to a SOFA scene as loads and constraints;\n", + "- solve the scene on a sequence of refined meshes, measure the error on each and read its order.\n", + "\n", + "### Further reading\n", + "\n", + "- Steinberg and Roache [[1]](#ref1): the original presentation of the method.\n", + "- Roache [[2]](#ref2): a short review of MMS for code verification.\n", + "- Roy [[3]](#ref3): a review of code and solution verification, with guidance on choosing manufactured solutions.\n", + "- Salari and Knupp [[4]](#ref4): the most complete treatment, including examples of coding mistakes detected by MSS\n", + "- Oberkampf and Roy [[5]](#ref5), Chapters 5 and 6: the textbook reference on code verification and MMS.\n", + "- Aycock *et al.* [[9]](#ref9): MMS applied to elastostatic solid mechanics in a finite element solver.\n" + ] + }, + { + "cell_type": "markdown", + "id": "03-md-example-problem", + "metadata": {}, + "source": [ + "## Example: a trigonometric manufactured solution on a 2D square\n", + "\n", + "The rest of this notebook walks through one verification study, building each piece of it in turn.\n", + "\n", + "### The governing equations\n", + "\n", + "Under small-strain deformations, the displacement $u$ of a linear elastic body in static equilibrium\n", + "and without external loads satisfies\n", + "\n", + "$$\\mathcal{L}(u) = -\\nabla\\cdot\\sigma(u) = 0, \\qquad\n", + " \\sigma = \\lambda\\,\\mathrm{tr}(\\varepsilon)\\,I + 2\\mu\\,\\varepsilon, \\qquad\n", + " \\varepsilon = \\tfrac{1}{2}\\left(\\nabla u + \\nabla u^T\\right)$$\n", + "\n", + "This is the equation solved by the `LinearSmallStrainFEMForceField` component in SOFA. $\\mu$ and\n", + "$\\lambda$ are the Lamé parameters, obtained from Young's modulus $E$ and Poisson's ratio $\\nu$.\n", + "\n", + "The body $\\Omega$ is a rectangle of length $L$ and width $W$, here a square with $L = W = 1$. Its\n", + "boundary is made of four sides: `left` ($x = 0$), `right` ($x = L$), `bottom` ($y = 0$) and `top`\n", + "($y = W$).\n", + "\n", + "### The manufactured solution\n", + "\n", + "We choose one sine period along each axis:\n", + "\n", + "$$\\hat{u}(x, y) = A \\begin{bmatrix} \\sin(kx)\\cos(ky) \\\\ \\cos(kx)\\sin(ky) \\end{bmatrix},\n", + " \\qquad k = \\frac{2\\pi}{L} = \\frac{2\\pi}{W}$$\n", + "\n", + "$\\hat{u}$ is not a physical solution and does not need to be one. It only has to be smooth, to leave\n", + "no derivative appearing in the equations identically zero, and to have derivatives small enough that\n", + "the asymptotic regime is reached on affordable meshes [[4]](#ref4)[[5]](#ref5). The amplitude $A$\n", + "sets the last of these.\n", + "\n", + "Its gradient\n", + "\n", + "$$\\hat{\\varepsilon} = \\nabla\\hat{u} = A k \\begin{bmatrix} c & -s \\\\ -s & c \\end{bmatrix},\n", + " \\qquad c = \\cos(kx)\\cos(ky), \\quad s = \\sin(kx)\\sin(ky)$$\n", + "\n", + "and the stress\n", + "\n", + "$$\\hat{\\sigma} = 2 A k \\begin{bmatrix} (\\lambda+\\mu)\\,c & -\\mu\\,s \\\\ -\\mu\\,s & (\\lambda+\\mu)\\,c \\end{bmatrix}$$\n", + "\n", + "Applying $\\mathcal{L}$ to $\\hat{u}$ gives the source term:\n", + "\n", + "$$s = \\mathcal{L}(\\hat{u}) = -\\nabla\\cdot\\hat{\\sigma} = 2k^2(\\lambda + 2\\mu)\\,\\hat{u}$$\n", + "\n", + "\n", + "### The boundary conditions\n", + "\n", + "The boundary conditions are taken from $\\hat{u}$ as well. Multiplying $\\mathcal{L}(u) = s$ by a test\n", + "function $v$, integrating over $\\Omega$ and integrating by parts gives the weak form\n", + "\n", + "$$\\int_\\Omega \\sigma : \\nabla v \\, d\\Omega - \\int_{\\partial\\Omega} t \\cdot v \\, d\\Gamma\n", + " = \\int_\\Omega s \\cdot v \\, d\\Omega, \\qquad t = \\sigma\\,n$$\n", + "\n", + "where $n$ is the outward normal and $t$ the traction. On each side, and in each direction, a\n", + "boundary condition prescribes one of two quantities:\n", + "\n", + "- the displacement, $u = \\hat{u}$ (Dirichlet). The test function vanishes there, and so does the\n", + " boundary term;\n", + "- the traction, $t = \\hat{t} = \\hat{\\sigma}\\,n$ (Neumann), which enters the boundary term as a known\n", + " load.\n", + "\n", + "Since $\\hat{u}$ is known everywhere, both conditions are consistent with it, and which one goes where\n", + "is a choice. Here, the displacement is prescribed on the whole boundary. It is not a zero Dirichlet condition, for instance on `left` it is $\\hat{u}(0, y) = (0,\\ A\\sin(ky))$.\n", + "\n", + "The modified problem is then\n", + "\n", + "$$-\\nabla\\cdot\\sigma(u) = 2k^2(\\lambda + 2\\mu)\\,\\hat{u} \\quad \\text{in } \\Omega, \\qquad\n", + " u = \\hat{u} \\quad \\text{on } \\partial\\Omega$$\n", + "\n", + "and $\\hat{u}$ is its exact solution. In this example $A = 0.02$, $E = 10^6$ and $\\nu = 0.3$." + ] + }, + { + "cell_type": "markdown", + "id": "04-md-problem-to-code", + "metadata": {}, + "source": [ + "### From the problem to the code\n", + "\n", + "Setting up an MMS study is systematic, so the problem above splits into separate concepts, each\n", + "with its own place in the repository:\n", + "\n", + "```\n", + "Verification-Validation/\n", + "├── common/ code shared by the suites\n", + "│ ├── geometry/ the domains Ω and their named boundary regions\n", + "│ └── sofa/\n", + "│ ├── prefabs/ how SOFA builds an elastic body on each geometry\n", + "│ ├── controllers.py SOFA controllers the scenes need, e.g. the prescribed displacement clamp\n", + "│ └── scene.py the base of every SOFA scene\n", + "└── verification/\n", + " ├── manufactured/ modules that implement manufactured solutions and material laws; combining them forms the manufactured problem to be solved\n", + " ├── scene/ the SOFA scene that loads a body with a manufactured problem\n", + " ├── study/ the error measurement and the convergence study\n", + " ├── case.py reads a case: the study's configuration\n", + " └── run.py runs a case\n", + "```\n", + "\n", + "Each of these is introduced below, where the walkthrough reaches it." + ] + }, + { + "cell_type": "markdown", + "id": "05-md-input-file", + "metadata": {}, + "source": [ + "### The input file\n", + "\n", + "A study is set up by an input file, a JSON file the suite reads into a dictionary. The walkthrough\n", + "builds it up as it goes, one key at a time. The problem above needs three keys:\n", + "\n", + "- `geometry` names the geometry and gives its size;\n", + "- `solution` names the manufactured solution and gives its amplitude $A$.\n", + "- `material` names the constitutive law and gives its parameters.\n", + "\n", + "Each `type` in the input file names a class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06-code-input-file", + "metadata": {}, + "outputs": [], + "source": [ + "input_file = {\n", + " \"geometry\": {\"type\": \"Beam2D\", \"length\": 1.0, \"width\": 1.0},\n", + " \"solution\": {\"type\": \"Trigonometric\", \"amplitude\": 0.02},\n", + " \"material\": {\"type\": \"LinearElastic\", \"youngModulus\": 1e6, \"poissonRatio\": 0.3},\n", + "}" + ] + }, + { + "cell_type": "markdown", + "id": "07-md-geometry", + "metadata": {}, + "source": [ + "### The manufactured problem\n", + "\n", + "The geometry is built first, because the solution depends on it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "08-code-geometry", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "# Make the repository's packages importable from this folder.\n", + "sys.path.insert(0, \"../..\")\n", + "\n", + "from verification.case import GEOMETRIES\n", + "\n", + "geometry_parameters = dict(input_file[\"geometry\"])\n", + "geometry = GEOMETRIES[geometry_parameters.pop(\"type\")](**geometry_parameters)" + ] + }, + { + "cell_type": "markdown", + "id": "09-md-solution", + "metadata": {}, + "source": [ + "The solution's class is looked up by the geometry's dimension: `Trigonometric` in 2D is `Trigonometric2D` (`verification/manufactured/grid.py`). Solutions take the geometry as inputs because various parameters, such as $k$, might depend on the dimensions. Also, the displacement is prescribed on the geometry's regions." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "10-code-solution", + "metadata": {}, + "outputs": [], + "source": [ + "from verification.case import MANUFACTURED_SOLUTIONS\n", + "\n", + "solution = MANUFACTURED_SOLUTIONS[(geometry.dim, input_file[\"solution\"][\"type\"])](input_file[\"solution\"], geometry)" + ] + }, + { + "cell_type": "markdown", + "id": "11-md-material", + "metadata": {}, + "source": [ + "The material converts the parameters of the input file into the ones its law is written with, which may depend on the number of spatial dimensions. `LinearElastic` (`verification/manufactured/materials.py`) converts $E$ and $\\nu$ to the Lamé parameters $\\mu$ and $\\lambda$; hyperelastic materials return their own." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12-code-material", + "metadata": {}, + "outputs": [], + "source": [ + "from verification.case import MATERIALS\n", + "\n", + "Material = MATERIALS[input_file[\"material\"][\"type\"]]\n", + "parameters = Material.get_material_parameters(input_file[\"material\"], geometry.spatial_dimensions)\n", + "material = Material(*parameters)" + ] + }, + { + "cell_type": "markdown", + "id": "13-md-problem", + "metadata": {}, + "source": [ + "The solution and the material are paired into the manufactured problem, which differentiates $\\hat{u}$ symbolically, with `sympy`, into the stress $\\hat{\\sigma}$ and the source term $s$. The problem is `ManufacturedProblem` (`verification/manufactured/problem.py`). It also compiles each expression into a numpy function evaluated at any array of points: `problem.u`, `problem.grad_u`, `problem.stress` and `problem.source`. These work as inputs to apply source terms such as body forces, prescribe displacement on boundaries and traction BCs. Additionally, the error is measured against them during the convergence analysis. These are the expressions it derived, with the numbers of the input file substituted." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14-code-problem", + "metadata": {}, + "outputs": [], + "source": [ + "import sympy as sp\n", + "from IPython.display import Math, display\n", + "\n", + "from verification.manufactured import ManufacturedProblem\n", + "\n", + "problem = ManufacturedProblem(solution, material, geometry.spatial_dimensions)\n", + "\n", + "\n", + "def rounded(expression):\n", + " \"\"\"The expression with its floating-point numbers cut to 6 significant digits, for display.\"\"\"\n", + " return expression.xreplace({f: sp.Float(f, 6) for f in expression.atoms(sp.Float)})\n", + "\n", + "\n", + "# The symbolic expressions the problem derived.\n", + "display(Math(r\"\\hat{u} = \" + sp.latex(rounded(problem.displacement_expression))),\n", + " Math(r\"\\hat{\\sigma} = \" + sp.latex(rounded(problem.stress_expression))),\n", + " Math(r\"s = \" + sp.latex(rounded(problem.source_expression))))" + ] + }, + { + "cell_type": "markdown", + "id": "15-md-plot-manufactured-solution", + "metadata": {}, + "source": [ + "The plot below uses `problem.u` to draw the exact $\\hat{u}$ over the square. On the right, the grid of the undeformed square is displaced by $\\hat{u}$: the boundary keeps its shape, but its points slide along it. The prescribed displacement is not zero on the boundary." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16-code-plot-manufactured-solution", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# û is small next to the square; magnify it so the deformation is visible.\n", + "MAGNIFICATION = 5\n", + "\n", + "# Evaluate the compiled û on a fine grid of points covering the square.\n", + "x, y = np.meshgrid(np.linspace(0, geometry.length, 201), np.linspace(0, geometry.width, 201))\n", + "u = problem.u(np.stack([x, y], axis=-1))\n", + "\n", + "fig, (magnitude, deformed) = plt.subplots(1, 2, figsize=(11, 4.8), layout=\"constrained\")\n", + "\n", + "# Left: the magnitude of û as colour, its direction as arrows on a coarser grid.\n", + "field = magnitude.pcolormesh(x, y, np.linalg.norm(u, axis=-1), shading=\"gouraud\")\n", + "fig.colorbar(field, ax=magnitude, label=r\"$|\\hat{u}|$\")\n", + "step = slice(None, None, 20)\n", + "magnitude.quiver(x[step, step], y[step, step], u[step, step, 0], u[step, step, 1], color=\"white\")\n", + "magnitude.set_title(r\"$\\hat{u}$: magnitude and direction\")\n", + "\n", + "# Right: each line of the undeformed grid, and the same line moved by the magnified û.\n", + "# The boundary lines are drawn thicker.\n", + "t = np.linspace(0, 1, 201)\n", + "for c in np.linspace(0, 1, 11):\n", + " for line in (np.stack([c * geometry.length + 0 * t, t * geometry.width], axis=-1),\n", + " np.stack([t * geometry.length, c * geometry.width + 0 * t], axis=-1)):\n", + " moved = line + MAGNIFICATION * problem.u(line)\n", + " deformed.plot(*line.T, color=\"0.8\", linewidth=0.6)\n", + " deformed.plot(*moved.T, color=\"black\", linewidth=1.6 if c in (0, 1) else 0.8)\n", + "deformed.set_title(rf\"Undeformed grid (grey) displaced by $\\hat{{u}}$, magnified ×{MAGNIFICATION}\")\n", + "\n", + "for ax in (magnitude, deformed):\n", + " ax.set_aspect(\"equal\")\n", + " ax.set_xlabel(\"$x$\")\n", + " ax.set_ylabel(\"$y$\")" + ] + }, + { + "cell_type": "markdown", + "id": "17-md-solving-keys", + "metadata": {}, + "source": [ + "### Solving on one mesh\n", + "\n", + "SOFA now solves the modified problem on a mesh. This needs four more keys for the `input_file`:\n", + "\n", + "- `forceField` is the SOFA component under test. It is the discrete $\\mathcal{L}$, the operator whose order of accuracy the study verifies;\n", + "- `element` is the kind of element the geometry is meshed with, here `quad`. SOFA builds the topology container from it;\n", + "- `solvers` sets how SOFA solves the discrete system;\n", + "- `sourceQuadratureDegree` is the degree of the quadrature that integrates the source term $s$ into nodal loads." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18-code-solving-keys", + "metadata": {}, + "outputs": [], + "source": [ + "input_file[\"forceField\"] = {\"type\": \"LinearSmallStrainFEMForceField\"}\n", + "input_file[\"element\"] = \"quad\"\n", + "input_file[\"solvers\"] = {\n", + " \"integration\": {\"type\": \"StaticSolver\"},\n", + " \"newton\": {\"type\": \"NewtonRaphsonSolver\", \"maxNbIterationsNewton\": 1,\n", + " \"relativeInitialStoppingThreshold\": 1e-6,\n", + " \"relativeSuccessiveStoppingThreshold\": 0,\n", + " \"absoluteResidualStoppingThreshold\": 0,\n", + " \"printLog\": False},\n", + " \"linearSolver\": {\"type\": \"SparseLDLSolver\", \"template\": \"CompressedRowSparseMatrixd\"},\n", + "}\n", + "input_file[\"sourceQuadratureDegree\"] = 3" + ] + }, + { + "cell_type": "markdown", + "id": "19-md-scene", + "metadata": {}, + "source": [ + "The scene is built in three steps:\n", + "\n", + "1. **The body.** A geometry knows nothing of SOFA; its prefab holds the instructions to build it in SOFA. `ElasticBeam` (`common/sofa/prefabs/grid.py`), the prefab of `Beam2D`, meshes the square with a regular grid of `quad` elements and adds the force field and the solvers.\n", + "2. **The source term.** `ApplyManufacturedSourceTerm` (`verification/scene/controllers.py`) evaluates `problem.source`, the $s$ derived above, at the nodes, and integrates it against the shape functions into nodal loads.\n", + "3. **The boundary conditions.** `RegionClamp` (`common/sofa/controllers.py`) adds one constraint per region where the solution prescribes the displacement, `problem.prescribe_displacement_on`, here all four sides. It moves their nodes to `problem.u`, the exact $\\hat{u}$, and fixes them there." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20-code-scene", + "metadata": {}, + "outputs": [], + "source": [ + "import Sofa.Core\n", + "import Sofa.Simulation\n", + "\n", + "from common.sofa.conventions import VEC_DIM\n", + "from common.sofa.controllers import RegionClamp\n", + "from common.sofa.prefabs import PREFAB_BY_GEOMETRY\n", + "from verification.scene.controllers import ApplyManufacturedSourceTerm\n", + "from verification.scene.scene import MMSScene\n", + "\n", + "vec_type = VEC_DIM[geometry.spatial_dimensions]\n", + "\n", + "\n", + "def solve(cells):\n", + " \"\"\"Build the scene for a mesh of `cells` cells per side and solve it. Returns its root and body.\"\"\"\n", + " root = Sofa.Core.Node(\"root\")\n", + " root.addObject(\"RequiredPlugin\", pluginName=MMSScene.plugins)\n", + " root.addObject(\"DefaultAnimationLoop\")\n", + "\n", + " # 1.\n", + " Prefab = PREFAB_BY_GEOMETRY[type(geometry)]\n", + " prefab = root.addChild(Prefab(\n", + " name=Prefab.__name__, geometry=geometry, grid_resolution=[count + 1 for count in cells],\n", + " element=input_file[\"element\"],\n", + " configs={\"material\": input_file[\"material\"], \"forceField\": input_file[\"forceField\"],\n", + " \"solvers\": input_file[\"solvers\"]}))\n", + " body = prefab.mechanical_node()\n", + "\n", + " # 2.\n", + " body.addObject(ApplyManufacturedSourceTerm(\n", + " node=body, dofs=body.dofs, source=problem.source, vec_type=vec_type,\n", + " element=input_file[\"element\"], source_quadrature_degree=input_file[\"sourceQuadratureDegree\"],\n", + " name=\"bodyForceCtrl\"))\n", + "\n", + " # 3.\n", + " body.addObject(RegionClamp(\n", + " geometry=geometry, dofs=body.dofs, node=body,\n", + " prescribe_displacement_on=problem.prescribe_displacement_on,\n", + " vec_type=vec_type, displacement=problem.u, name=\"clampCtrl\"))\n", + "\n", + " # Initialise the scene, which runs the controllers, then solve it: one step of the static solver.\n", + " Sofa.Simulation.init(root)\n", + " Sofa.Simulation.animate(root, root.dt.value)\n", + " return root, body\n", + "\n", + "\n", + "# The mesh: 8 cells along each side of the square.\n", + "cells = [8, 8]\n", + "root, body = solve(cells)" + ] + }, + { + "cell_type": "markdown", + "id": "21-md-mms-scene", + "metadata": {}, + "source": [ + "Steps 1 to 3, building the scene for one mesh, are encapsulated in `MMSScene` (`verification/scene/scene.py`). It only builds the scene, initialization and solution are performed separately by the class that handles the mesh convergence study, introduced below. A side can also be given a traction instead of a displacement; the cases in `verification/cases/` show how." + ] + }, + { + "cell_type": "markdown", + "id": "22-md-plot-sofa-solution", + "metadata": {}, + "source": [ + "The plot draws SOFA's solution $u_h$, read off the nodes, over the exact $\\hat{u}$, both magnified as before." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "23-code-plot-sofa-solution", + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib.collections import PolyCollection\n", + "\n", + "# u_h at the nodes: where SOFA moved them, minus where they started.\n", + "nodes = body.dofs.rest_position.array()\n", + "u_h = body.dofs.position.array() - nodes\n", + "quads = body.topology.quads.array()\n", + "\n", + "fig, ax = plt.subplots(figsize=(5.5, 5.5), layout=\"constrained\")\n", + "\n", + "# The exact û, along the lines of the mesh.\n", + "for c in np.linspace(0, 1, cells[0] + 1):\n", + " for line in (np.stack([c * geometry.length + 0 * t, t * geometry.width], axis=-1),\n", + " np.stack([t * geometry.length, c * geometry.width + 0 * t], axis=-1)):\n", + " moved = line + MAGNIFICATION * problem.u(line)\n", + " ax.plot(*moved.T, color=\"0.6\", linewidth=0.8)\n", + "\n", + "# SOFA's solution u_h.\n", + "ax.add_collection(PolyCollection((nodes + MAGNIFICATION * u_h)[quads],\n", + " facecolor=\"none\", edgecolor=\"tab:red\", linewidth=1.2))\n", + "\n", + "ax.set_aspect(\"equal\")\n", + "ax.set_xlabel(\"$x$\")\n", + "ax.set_ylabel(\"$y$\")\n", + "ax.set_title(rf\"$u_h$ on the {cells[0]}×{cells[1]} mesh (red) and $\\hat{{u}}$ (grey), magnified ×{MAGNIFICATION}\")" + ] + }, + { + "cell_type": "markdown", + "id": "24-md-error", + "metadata": {}, + "source": [ + "### Measuring the error\n", + "\n", + "The norms $\\|e\\|_{L^2}$ and $|e|_{H^1}$ are integrated by quadrature over each element, with `MeshQuadrature` (`verification/study/quadrature.py`). At every quadrature point, $u_h$ and its gradient are interpolated from the nodes with the element's shape functions, whereas $\\hat{u}$ and $\\nabla\\hat{u}$ are evaluated exactly. One more key sets the quadrature: `errorQuadratureDegree`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25-code-error", + "metadata": {}, + "outputs": [], + "source": [ + "from common.sofa.conventions import ELEMENTS\n", + "from verification.study.quadrature import MeshQuadrature\n", + "\n", + "input_file[\"errorQuadratureDegree\"] = 2\n", + "\n", + "\n", + "def error_norms(body):\n", + " \"\"\"‖e‖_L² and |e|_H¹ of the solution SOFA found on `body`'s mesh.\"\"\"\n", + " nodes = body.dofs.rest_position.array()\n", + " u_h = body.dofs.position.array() - nodes\n", + "\n", + " # The quadrature points and weights of every element of the mesh.\n", + " quadrature = MeshQuadrature(nodes, body.topology.quads.array(),\n", + " ELEMENTS[input_file[\"element\"]].cpp,\n", + " input_file[\"errorQuadratureDegree\"])\n", + "\n", + " # The error and its gradient at every quadrature point: u_h interpolated, û evaluated exactly.\n", + " e = quadrature.values(u_h) - quadrature.sample(problem.u)\n", + " grad_e = quadrature.grads(u_h) - quadrature.sample(problem.grad_u)\n", + "\n", + " # ‖e‖_L² = √(∫ |e|² dΩ) and |e|_H¹ = √(∫ ‖∇e‖² dΩ).\n", + " return (np.sqrt(quadrature.integrate(np.sum(e ** 2, axis=-1))),\n", + " np.sqrt(quadrature.integrate(np.sum(grad_e ** 2, axis=(-2, -1)))))\n", + "\n", + "\n", + "L2, H1 = error_norms(body)\n", + "print(f\"‖e‖_L2 = {L2:.3e}, |e|_H1 = {H1:.3e}\")" + ] + }, + { + "cell_type": "markdown", + "id": "26-md-metrics", + "metadata": {}, + "source": [ + "These two numbers alone do not say whether the code is correct. That is decided by how they decrease as the mesh is refined. The computation of the errors is encapsulated in `Measurement`, and each norm in a metric class: `L2`, `H1` and `EnergyDifference`. `METRICS` lists the metrics every mesh is measured with. All are in `verification/study/metrics.py`." + ] + }, + { + "cell_type": "markdown", + "id": "27-md-refinement", + "metadata": {}, + "source": [ + "### Refining the mesh\n", + "\n", + "The scene is now solved on a sequence of meshes, each $r$ times finer than the one before, and the\n", + "observed order $\\hat{p}$ is computed between each mesh and the one before it. The shape functions of `quad` elements\n", + "have degree $q = 1$, so they should give $p = 2$ in $L^2$ and $p = 1$ in $H^1$, and $p = 1$ for `EnergyDifference`. Three keys set this:\n", + "\n", + "- `mesh` gives the coarsest mesh's cells per side, the number of meshes, and $r$;\n", + "- `expectedOrder` gives $p$ for each metric;\n", + "- `expectedOrderTolerance` is how far $\\hat{p}$ on the finest pair of meshes may sit from $p$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "28-code-refinement", + "metadata": {}, + "outputs": [], + "source": [ + "# 3×3 cells, then 6×6, 12×12, 24×24 and 48×48.\n", + "input_file[\"mesh\"] = {\"cells\": [3, 3], \"levels\": 5, \"refinementRatio\": 2}\n", + "input_file[\"expectedOrder\"] = {\"L2\": 2.0, \"H1\": 1.0, \"EnergyDifference\": 1.0}\n", + "input_file[\"expectedOrderTolerance\"] = 0.15\n", + "\n", + "mesh = input_file[\"mesh\"]\n", + "spacings, norms = [], []\n", + "for level in range(mesh[\"levels\"]):\n", + " level_cells = [count * mesh[\"refinementRatio\"] ** level for count in mesh[\"cells\"]]\n", + " level_root, level_body = solve(level_cells)\n", + " spacings.append(geometry.length / level_cells[0])\n", + " norms.append(error_norms(level_body))\n", + " # Free this mesh's scene before building the next one.\n", + " Sofa.Simulation.unload(level_root)\n", + "\n", + "# One row per mesh, one column per norm: ‖e‖_L² and |e|_H¹.\n", + "norms = np.array(norms)\n", + "# p̂ = ln(‖e_rh‖ / ‖e_h‖) / ln r, between each mesh and the one before it.\n", + "orders = np.log(norms[:-1] / norms[1:]) / np.log(mesh[\"refinementRatio\"])\n", + "\n", + "print(f\"{'h':>8} {'L2':>10} {'p̂':>6} {'H1':>10} {'p̂':>6}\")\n", + "for level, h in enumerate(spacings):\n", + " rates = orders[level - 1] if level else (np.nan, np.nan)\n", + " print(f\"{h:8.4f} {norms[level, 0]:10.3e} {rates[0]:6.2f} {norms[level, 1]:10.3e} {rates[1]:6.2f}\")\n", + "\n", + "# The test: p̂ on the finest pair of meshes matches p, within the tolerance.\n", + "for name, order in zip((\"L2\", \"H1\"), orders[-1]):\n", + " expected = input_file[\"expectedOrder\"][name]\n", + " passed = abs(order - expected) <= input_file[\"expectedOrderTolerance\"]\n", + " print(f\"{name}: p̂ = {order:.2f}, p = {expected}: {'pass' if passed else 'fail'}\")" + ] + }, + { + "cell_type": "markdown", + "id": "29-md-convergence-study", + "metadata": {}, + "source": [ + "This loop is encapsulated in `ErrorConvergenceStudy` (`verification/study/study.py`). It judges the orders more strictly than the single check above:\n", + "\n", + "- a rate is discarded when either error is below the noise floor, `relativeNoiseFloor` times the size of the exact field. Below it, the round-off and iterative errors $\\varepsilon_\\text{ro}$ and $\\varepsilon_\\text{it}$ from the start dominate, and a rate measured there is meaningless;\n", + "- a rate is also discarded when the errors oscillate or diverge;\n", + "- the order is the one on the finest meshes, and is kept only once at least two consecutive rates agree within `asymptoticTolerance`: the meshes are then in the asymptotic regime, and rates from coarser meshes are discarded;\n", + "- the study fails if a Newton solve did not converge." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "30-code-convergence-study", + "metadata": {}, + "outputs": [], + "source": [ + "input_file[\"relativeNoiseFloor\"] = 1e-12\n", + "input_file[\"asymptoticTolerance\"] = 0.10" + ] + }, + { + "cell_type": "markdown", + "id": "31-md-full-input-file", + "metadata": {}, + "source": [ + "## Putting it together\n", + "\n", + "The input file is now complete. This is all a study needs, as the JSON file read by `run.py`:\n", + "\n", + "```json\n", + "{\n", + " \"geometry\": { \"type\": \"Beam2D\", \"length\": 1.0, \"width\": 1.0 },\n", + " \"element\": \"quad\",\n", + " \"material\": { \"type\": \"LinearElastic\", \"youngModulus\": 1e6, \"poissonRatio\": 0.3 },\n", + " \"forceField\": { \"type\": \"LinearSmallStrainFEMForceField\" },\n", + " \"solution\": { \"type\": \"Trigonometric\", \"amplitude\": 0.02 },\n", + " \"errorQuadratureDegree\": 3,\n", + " \"sourceQuadratureDegree\": 3,\n", + " \"solvers\": {\n", + " \"integration\": { \"type\": \"StaticSolver\" },\n", + " \"newton\": { \"type\": \"NewtonRaphsonSolver\", \"maxNbIterationsNewton\": 1,\n", + " \"relativeInitialStoppingThreshold\": 1e-6,\n", + " \"relativeSuccessiveStoppingThreshold\": 0,\n", + " \"absoluteResidualStoppingThreshold\": 0,\n", + " \"printLog\": false },\n", + " \"linearSolver\": { \"type\": \"SparseLDLSolver\", \"template\": \"CompressedRowSparseMatrixd\" }\n", + " },\n", + " \"mesh\": { \"cells\": [3, 3], \"levels\": 5, \"refinementRatio\": 2 },\n", + " \"asymptoticTolerance\": 0.10,\n", + " \"expectedOrder\": { \"L2\": 2.0, \"H1\": 1.0, \"EnergyDifference\": 1.0 },\n", + " \"expectedOrderTolerance\": 0.15,\n", + " \"relativeNoiseFloor\": 1e-12\n", + "}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "32-md-study", + "metadata": {}, + "source": [ + "Everything the walkthrough built by hand is done by two classes:\n", + "\n", + "- `Case` (`verification/case.py`) checks the input file, then builds the geometry, the solution, the material and the manufactured problem from it;\n", + "- `ErrorConvergenceStudy` builds the scene of every mesh with `MMSScene` and solves it, then computes the errors of that mesh's solution $u_h$ with `Measurement` and their norms with the metrics listed in `METRICS`, and finally judges the order of each metric. It prints one row per mesh with the rate of each metric, or why it was discarded, then the order each metric settled on next to the expected one.\n", + "\n", + "It also draws two figures: the error of each metric against $h$, its segments green where the rate was kept and red where it was discarded; and $|u_h|$ on each mesh, which approaches $|\\hat{u}|$ as the mesh is refined." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "33-code-study", + "metadata": {}, + "outputs": [], + "source": [ + "from verification.case import Case\n", + "from verification.study.study import ErrorConvergenceStudy\n", + "\n", + "# The path only names the case; the input file is passed as the dictionary built above.\n", + "case = Case(\"LinearSmallStrainFEMForceField/Trigonometric2D_Quad_Dirichlet.json\", input_file)\n", + "study = ErrorConvergenceStudy(case)\n", + "study.run()\n", + "print(\"\\nverified:\", study.verified)\n", + "\n", + "# The convergence plot the study drew while running: the error of each metric against h.\n", + "display(study.plots[\"convergence\"])\n", + "\n", + "# |u_h| on each mesh, coarsest to finest, drawn on the displaced mesh.\n", + "study.plot_fields()\n", + "display(study.plots[\"fields\"])" + ] + }, + { + "cell_type": "markdown", + "id": "34-md-running-a-case", + "metadata": {}, + "source": [ + "Saved as a JSON file under `verification/cases//`, the input file is a *case*, and the\n", + "runner does all of the above from the command line, writing the results to `verification/results/`:\n", + "\n", + "```bash\n", + "python verification/run.py LinearSmallStrainFEMForceField/Trigonometric2D_Quad_Dirichlet.json\n", + "python verification/run.py --all # every case, then one summary line per case\n", + "```\n", + "\n", + "To inspect one mesh of a case in the SOFA GUI, the runner also acts as a SOFA scene file:\n", + "\n", + "```bash\n", + "runSofa -l SofaPython3 verification/run.py --argv LinearSmallStrainFEMForceField/Trigonometric2D_Quad_Dirichlet.json --argv 0\n", + "```\n", + "\n", + "The first argument is the path to the .json case file and the second is the mesh refinement level to be built." + ] + }, + { + "cell_type": "markdown", + "id": "35-md-references", + "metadata": {}, + "source": [ + "\n", + "## References\n", + "\n", + "\n", + "**[1]** S. Steinberg and P. J. Roache, \"Symbolic manipulation and computational fluid dynamics,\"\n", + "*Journal of Computational Physics*, 57(2):251–284, 1985. See also P. J. Roache and\n", + "S. Steinberg, *AIAA Journal*, 22(10):1390–1394, 1984.\n", + "\n", + "\n", + "**[2]** P. J. Roache, \"Code verification by the method of manufactured solutions,\"\n", + "*Journal of Fluids Engineering*, 124(1):4–10, 2002.\n", + "[doi:10.1115/1.1436090](https://doi.org/10.1115/1.1436090)\n", + "\n", + "\n", + "**[3]** C. J. Roy, \"Review of code and solution verification procedures for computational\n", + "simulation,\" *Journal of Computational Physics*, 205(1):131–156, 2005.\n", + "[doi:10.1016/j.jcp.2004.10.036](https://doi.org/10.1016/j.jcp.2004.10.036)\n", + "\n", + "\n", + "**[4]** K. Salari and P. Knupp, *Code Verification by the Method of Manufactured Solutions*,\n", + "SAND2000-1444, Sandia National Laboratories, Albuquerque, NM, June 2000.\n", + "\n", + "\n", + "**[5]** W. L. Oberkampf and C. J. Roy, *Verification and Validation in Scientific Computing*,\n", + "Cambridge University Press, 2010. ISBN 978-0-521-11360-1. — *Chapter 5 (code verification and\n", + "order verification) and Chapter 6, §6.3 (MMS).*\n", + "\n", + "\n", + "**[6]** W. L. Oberkampf and T. G. Trucano, \"Verification and validation in computational fluid\n", + "dynamics,\" *Progress in Aerospace Sciences*, 38(3):209–272, 2002.\n", + "[doi:10.1016/S0376-0421(02)00005-2](https://doi.org/10.1016/S0376-0421%2802%2900005-2)\n", + "\n", + "\n", + "**[7]** B. W. Boehm, *Software Engineering Economics*, Prentice-Hall, Englewood Cliffs, NJ, 1981.\n", + "\n", + "\n", + "**[8]** P. G. Ciarlet, *The Finite Element Method for Elliptic Problems*, North-Holland, Amsterdam,\n", + "1978. Reprinted by SIAM, Classics in Applied Mathematics 40, 2002.\n", + "\n", + "\n", + "**[9]** K. I. Aycock, N. Rebelo and B. A. Craven, \"Method of manufactured solutions code\n", + "verification of elastostatic solid mechanics problems in a commercial finite element solver,\"\n", + "*Computers and Structures*, 229:106175, 2020.\n", + "[doi:10.1016/j.compstruc.2019.106175](https://doi.org/10.1016/j.compstruc.2019.106175)\n", + "\n", + "\n", + "**[10]** S. Étienne, A. Garon and D. Pelletier, \"Some manufactured solutions for verification of\n", + "fluid-structure interaction codes,\" *Computers and Structures*, 106–107:56–67, 2012.\n", + "[doi:10.1016/j.compstruc.2012.04.006](https://doi.org/10.1016/j.compstruc.2012.04.006)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/verification/docs/LinearSmallStrainFEMForceField.ipynb b/verification/docs/LinearSmallStrainFEMForceField.ipynb new file mode 100644 index 0000000..38fe22c --- /dev/null +++ b/verification/docs/LinearSmallStrainFEMForceField.ipynb @@ -0,0 +1,497 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "01-md-title", + "metadata": {}, + "source": [ + "# Verification of `LinearSmallStrainFEMForceField`\n", + "\n", + "This notebook verifies SOFA's `LinearSmallStrainFEMForceField` with the Method of Manufactured Solutions, presented in [IntroductionMMS.ipynb](IntroductionMMS.ipynb). It presents the governing PDEs and some of the cases used for verification, in `verification/cases/LinearSmallStrainFEMForceField/`." + ] + }, + { + "cell_type": "markdown", + "id": "02-md-material", + "metadata": {}, + "source": [ + "## Governing PDE for Linear Elastic Materials\n", + "\n", + "Under small-strain deformations, the displacement $\\mathbf{u}$ of a linear elastic body satisfies\n", + "\n", + "$$\\mathcal{L}(\\mathbf{u}) = -\\nabla \\cdot \\boldsymbol{\\sigma}(\\mathbf{u}) = 0$$\n", + "\n", + "This is the equation solved by the `LinearSmallStrainFEMForceField` component in SOFA. The body occupies a domain $\\Omega$ in $d = 1$, $2$ or $3$ dimensions, and $\\Gamma$ is its boundary.\n", + "\n", + "The material is defined by its strain energy density $\\psi$, the elastic energy stored per unit volume, and the stress is its derivative with respect to the displacement gradient. For a linear elastic material, $\\psi$ depends on the strain $\\boldsymbol{\\varepsilon}$:\n", + "\n", + "$$\\boldsymbol{\\varepsilon}(\\mathbf{u}) = \\frac{1}{2}\\left(\\nabla \\mathbf{u} + \\nabla \\mathbf{u}^T\\right), \\qquad\n", + " \\psi(\\boldsymbol{\\varepsilon}) = \\frac{\\lambda}{2}\\,\\mathrm{tr}(\\boldsymbol{\\varepsilon})^2 + \\mu\\,\\boldsymbol{\\varepsilon} : \\boldsymbol{\\varepsilon}$$\n", + "\n", + "$$\\boldsymbol{\\sigma}(\\mathbf{u}) = \\frac{\\partial \\psi}{\\partial \\nabla \\mathbf{u}} = \\lambda\\,\\mathrm{tr}(\\boldsymbol{\\varepsilon})\\,\\mathbf{I} + 2\\mu\\,\\boldsymbol{\\varepsilon}$$\n", + "\n", + "The Lamé parameters $\\lambda$ and $\\mu$ are computed from Young's modulus $E$ and the Poisson ratio $\\nu$:\n", + "\n", + "$$\\mu = \\frac{E}{2(1 + \\nu)}, \\qquad \\lambda = \\frac{E\\nu}{(1 + \\nu)\\,(1 - (d - 1)\\,\\nu)}$$\n", + "\n", + "### Manufactured Solution and Boundary Conditions\n", + "\n", + "For a manufactured solution $\\hat{\\mathbf{u}}$, with stress $\\hat{\\boldsymbol{\\sigma}} = \\boldsymbol{\\sigma}(\\hat{\\mathbf{u}})$, the source term is\n", + "\n", + "$$\\mathbf{s} = \\mathcal{L}(\\hat{\\mathbf{u}}) = -\\nabla \\cdot \\hat{\\boldsymbol{\\sigma}}$$\n", + "\n", + "The boundary conditions are taken from $\\hat{\\mathbf{u}}$ as well. The weak form shows which quantities a boundary condition can prescribe [[1]](#ref1). Multiplying $\\mathcal{L}(\\mathbf{u}) = \\mathbf{s}$ by a test function $\\mathbf{v}$, integrating over $\\Omega$ and applying the divergence theorem gives\n", + "\n", + "$$\\int_\\Omega \\boldsymbol{\\sigma} : \\boldsymbol{\\varepsilon}(\\mathbf{v})\\,d\\Omega - \\int_\\Gamma \\mathbf{t} \\cdot \\mathbf{v}\\,d\\Gamma\n", + " = \\int_\\Omega \\mathbf{s} \\cdot \\mathbf{v}\\,d\\Omega$$\n", + "\n", + "where $\\mathbf{t} = \\boldsymbol{\\sigma} \\cdot \\mathbf{n}$ is the traction and $\\mathbf{n}$ the outward normal of $\\Gamma$.\n", + "\n", + "At each point of $\\Gamma$ and in each direction, a boundary condition prescribes one of two quantities:\n", + "\n", + "- the displacement, $\\mathbf{u} = \\hat{\\mathbf{u}}$ (Dirichlet). The test function vanishes there, and so does the boundary term;\n", + "- the traction, $\\mathbf{t} = \\hat{\\mathbf{t}} = \\hat{\\boldsymbol{\\sigma}} \\cdot \\mathbf{n}$ (Neumann), which enters the boundary term as a known load.\n", + "\n", + "Since $\\hat{\\mathbf{u}}$ is known everywhere, both $\\hat{\\mathbf{u}}$ and $\\hat{\\mathbf{t}}$ are known on the whole of $\\Gamma$. Which one goes where is a choice, and a region of $\\Gamma$ can have its displacement prescribed in one direction and its traction in another; enough of the displacement must be prescribed to keep the body from translating and rotating freely.\n", + "\n", + "The modified problem is then\n", + "\n", + "$$-\\nabla \\cdot \\boldsymbol{\\sigma}(\\mathbf{u}) = \\mathbf{s} \\quad \\text{in } \\Omega, \\qquad\n", + " \\mathbf{u} = \\hat{\\mathbf{u}} \\quad \\text{on } \\Gamma_D, \\qquad\n", + " \\boldsymbol{\\sigma}(\\mathbf{u}) \\cdot \\mathbf{n} = \\hat{\\mathbf{t}} \\quad \\text{on } \\Gamma_N$$\n", + "\n", + "with $\\Gamma_D$ and $\\Gamma_N$ the parts of the boundary where the displacement and the traction are prescribed, and $\\hat{\\mathbf{u}}$ is its exact solution. Each case below picks $\\hat{\\mathbf{u}}$, $\\Omega$, $\\Gamma_D$ and $\\Gamma_N$." + ] + }, + { + "cell_type": "markdown", + "id": "03-md-setup", + "metadata": {}, + "source": [ + "## Running the Cases\n", + "\n", + "The cell below loads the suite's runner and prepares the figures. Run it once before any case: every case cell below then runs on its own, in any order." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04-code-setup", + "metadata": {}, + "outputs": [], + "source": [ + "# Make the plugin's packages importable from verification/docs\n", + "import sys\n", + "sys.path.insert(0, \"../..\")\n", + "\n", + "# Hide the runner's printed report; figures still show\n", + "import os\n", + "sys.stdout = open(os.devnull, \"w\")\n", + "\n", + "# Load the suite's runner\n", + "from verification.run import run\n", + "\n", + "# For showing figures inline\n", + "%matplotlib inline\n", + "\n", + "# For drawing several convergence figures side by side\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "05-md-1d", + "metadata": {}, + "source": [ + "## Edge Elements on a 1D Bar\n", + "\n", + "The bar starts at the origin and has length $L$ along $x$. The displacement $u$ is a scalar." + ] + }, + { + "cell_type": "markdown", + "id": "06-md-quadratic-1d", + "metadata": {}, + "source": [ + "### Quadratic Function\n", + "\n", + "$$\\hat{u} = A\\,x^2, \\qquad \\hat{\\sigma} = 2EAx, \\qquad s = -2EA$$\n", + "\n", + "- `left` ($x = 0$): $\\hat{u} = 0$\n", + "- `right` ($x = L$): $\\hat{t} = 2EAL$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "07-code-quadratic-1d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 1D bar, quadratic manufactured solution\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/Quadratic1D.json\")\n", + "# u_h along the bar at each level, coarse to fine\n", + "study.plot_fields()\n", + "study.plots[\"convergence\"]" + ] + }, + { + "cell_type": "markdown", + "id": "08-md-trigonometric-1d", + "metadata": {}, + "source": [ + "### Trigonometric Function\n", + "\n", + "$$\\hat{u} = A\\sin(kx), \\qquad \\hat{\\sigma} = EAk\\cos(kx), \\qquad s = EAk^2\\sin(kx)$$\n", + "\n", + "with $k = \\frac{2\\pi}{L}$.\n", + "\n", + "- `left` ($x = 0$): $\\hat{u} = 0$\n", + "- `right` ($x = L$): $\\hat{t} = EAk$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09-code-trigonometric-1d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 1D bar, trigonometric manufactured solution\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/Trigonometric1D.json\")\n", + "# u_h along the bar at each level, coarse to fine\n", + "study.plot_fields()\n", + "study.plots[\"convergence\"]" + ] + }, + { + "cell_type": "markdown", + "id": "10-md-2d", + "metadata": {}, + "source": [ + "## Triangle and Quadrilateral Elements on a 2D Beam\n", + "\n", + "The beam starts at the origin, with length $L$ along $x$ and width $W$ along $y$." + ] + }, + { + "cell_type": "markdown", + "id": "11-md-quadratic-2d", + "metadata": {}, + "source": [ + "### Quadratic Function\n", + "\n", + "$$\n", + "\\hat{\\mathbf{u}} = A\\begin{pmatrix} x^2 + xy \\\\ y^2 + xy \\end{pmatrix}, \n", + "\\qquad \\mathbf{s} = -A \\begin{pmatrix} 3\\lambda + 5\\mu \\\\ 3\\lambda + 5\\mu \\end{pmatrix}, \n", + "\\qquad \\hat{\\boldsymbol{\\sigma}} = A\\begin{pmatrix} 3\\lambda(x + y) + 2\\mu(2x + y) & \\mu(x + y) \\\\ \\mu(x + y) & 3\\lambda(x + y) + 2\\mu(x + 2y) \\end{pmatrix}\n", + "$$\n", + "\n", + "- `left` ($x = 0$): $\\hat{u}_x = 0$, $\\hat{t}_y = -\\mu A y$\n", + "- `bottom` ($y = 0$): $\\hat{u}_y = 0$, $\\hat{t}_x = -\\mu A x$\n", + "- `right` ($x = L$): $\\hat{\\mathbf{t}} = A\\,\\big(3\\lambda(L + y) + 2\\mu(2L + y),\\ \\mu(L + y)\\big)$\n", + "- `top` ($y = W$): $\\hat{\\mathbf{t}} = A\\,\\big(\\mu(x + W),\\ 3\\lambda(x + W) + 2\\mu(x + 2W)\\big)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "12-code-quadratic-2d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D rectangle, quadratic manufactured solution, triangles (left) and quadrilaterals (right)\n", + "tri = run(\"../cases/LinearSmallStrainFEMForceField/Quadratic2D_Tri.json\")\n", + "quad = run(\"../cases/LinearSmallStrainFEMForceField/Quadratic2D_Quad.json\")\n", + "figure, (triangles, quadrilaterals) = plt.subplots(1, 2, figsize=(14.4, 4.8))\n", + "tri.plot(triangles)\n", + "quad.plot(quadrilaterals)\n", + "\n", + "# Deformed shape at each level, coarse to fine\n", + "tri.plot_fields()\n", + "quad.plot_fields()" + ] + }, + { + "cell_type": "markdown", + "id": "13-md-trigonometric-2d", + "metadata": {}, + "source": [ + "### Trigonometric Function\n", + "\n", + "$$\\hat{\\mathbf{u}} = A\\begin{pmatrix} \\sin(kx)\\cos(ky) \\\\ \\cos(kx)\\sin(ky) \\end{pmatrix}, \\qquad \\mathbf{s} = 2k^2(\\lambda + 2\\mu)\\,\\hat{\\mathbf{u}}, \\qquad \\hat{\\boldsymbol{\\sigma}} = 2Ak\\begin{pmatrix} (\\lambda + \\mu)\\cos(kx)\\cos(ky) & -\\mu\\sin(kx)\\sin(ky) \\\\ -\\mu\\sin(kx)\\sin(ky) & (\\lambda + \\mu)\\cos(kx)\\cos(ky) \\end{pmatrix}$$\n", + "\n", + "with $k = \\frac{2\\pi}{L}$, the same along $x$ and $y$ since the cases use a square, $L = W$.\n", + "\n", + "- `left` ($x = 0$): $\\hat{u}_x = 0$, $\\hat{t}_y = 0$\n", + "- `bottom` ($y = 0$): $\\hat{u}_y = 0$, $\\hat{t}_x = 0$\n", + "- `right` ($x = L$): $\\hat{\\mathbf{t}} = 2Ak(\\lambda + \\mu)\\,\\big(\\cos(ky),\\ 0\\big)$\n", + "- `top` ($y = L$): $\\hat{\\mathbf{t}} = 2Ak(\\lambda + \\mu)\\,\\big(0,\\ \\cos(kx)\\big)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "14-code-trigonometric-2d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D rectangle, trigonometric manufactured solution, triangles (left) and quadrilaterals (right)\n", + "tri = run(\"../cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri.json\")\n", + "quad = run(\"../cases/LinearSmallStrainFEMForceField/Trigonometric2D_Quad.json\")\n", + "figure, (triangles, quadrilaterals) = plt.subplots(1, 2, figsize=(14.4, 4.8))\n", + "tri.plot(triangles)\n", + "quad.plot(quadrilaterals)\n", + "\n", + "# Deformed shape at each level, coarse to fine\n", + "tri.plot_fields()\n", + "quad.plot_fields()" + ] + }, + { + "cell_type": "markdown", + "id": "15-md-trigonometric-2d-plane-strain", + "metadata": {}, + "source": [ + "#### Plane Strain\n", + "\n", + "The beam is solved in 3D space with $u_z = 0$. $\\lambda$ and $\\mu$ take their 3D values. The displacement is prescribed on all four sides:\n", + "\n", + "- `left` ($x = 0$) and `right` ($x = L$): $\\hat{\\mathbf{u}} = A\\,\\big(0,\\ \\sin(ky),\\ 0\\big)$\n", + "- `bottom` ($y = 0$) and `top` ($y = L$): $\\hat{\\mathbf{u}} = A\\,\\big(\\sin(kx),\\ 0,\\ 0\\big)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16-code-trigonometric-2d-plane-strain-tri", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D rectangle in plane strain, trigonometric manufactured solution, triangles\n", + "study = run(\"../cases/LinearSmallStrainFEMForceField/Trigonometric2D_Tri_PlaneStrain.json\")\n", + "# Deformed shape at each level, coarse to fine\n", + "study.plot_fields()\n", + "study.plots[\"convergence\"]" + ] + }, + { + "cell_type": "markdown", + "id": "17-md-2d-tire", + "metadata": {}, + "source": [ + "## Triangle and Quadrilateral Elements on a 2D Tire\n", + "\n", + "The tire is an annulus centred at the origin, with inner radius $R_i$ and outer radius $R_o$, adjusted to 2D from [[2]](#ref2)." + ] + }, + { + "cell_type": "markdown", + "id": "18-md-quartic-2d", + "metadata": {}, + "source": [ + "### Quartic Function\n", + "\n", + "$$\\hat{\\mathbf{u}} = A\\begin{pmatrix} x^4 + \\frac{2}{5}xy \\\\ \\frac{1}{10}y^4 - \\frac{2}{5}xy \\end{pmatrix}, \\qquad \\mathbf{s} = -\\frac{2A}{5}\\begin{pmatrix} 30(\\lambda + 2\\mu)x^2 - (\\lambda + \\mu) \\\\ 3(\\lambda + 2\\mu)y^2 + (\\lambda + \\mu) \\end{pmatrix}, \\qquad \\hat{\\boldsymbol{\\sigma}} = A\\begin{pmatrix} \\lambda\\theta + 2\\mu\\left(4x^3 + \\frac{2}{5}y\\right) & \\frac{2}{5}\\mu(x - y) \\\\ \\frac{2}{5}\\mu(x - y) & \\lambda\\theta + \\frac{4}{5}\\mu\\left(y^3 - x\\right) \\end{pmatrix}$$\n", + "\n", + "with $\\theta = 4x^3 + \\frac{2}{5}\\left(y^3 + y - x\\right)$.\n", + "\n", + "The boundary is the inner and outer rims of the annulus:\n", + "\n", + "- `inner` ($r = R_i$): Dirichlet, $\\mathbf{u} = \\hat{\\mathbf{u}}$\n", + "- `outer` ($r = R_o$): Neumann, $\\mathbf{t} = \\hat{\\boldsymbol{\\sigma}} \\cdot \\mathbf{n}$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "19-code-quartic-2d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 2D tire, quartic manufactured solution, triangles (left) and quadrilaterals (right)\n", + "tri = run(\"../cases/LinearSmallStrainFEMForceField/Quartic2D_Tri.json\")\n", + "quad = run(\"../cases/LinearSmallStrainFEMForceField/Quartic2D_Quad.json\")\n", + "figure, (triangles, quadrilaterals) = plt.subplots(1, 2, figsize=(14.4, 4.8))\n", + "tri.plot(triangles)\n", + "quad.plot(quadrilaterals)\n", + "\n", + "# Deformed shape at each level, coarse to fine\n", + "tri.plot_fields()\n", + "quad.plot_fields()" + ] + }, + { + "cell_type": "markdown", + "id": "20-md-3d", + "metadata": {}, + "source": [ + "## Tetrahedron and Hexahedron Elements on a 3D Beam\n", + "\n", + "The beam starts at the origin, with length $L$ along $x$, width $W$ along $y$ and height $H$ along $z$." + ] + }, + { + "cell_type": "markdown", + "id": "21-md-quadratic-3d", + "metadata": {}, + "source": [ + "### Quadratic Function\n", + "\n", + "$$\\hat{\\mathbf{u}} = A\\begin{pmatrix} x^2 + xy + xz \\\\ y^2 + yz + xy \\\\ z^2 + zx + yz \\end{pmatrix}, \\qquad \\mathbf{s} = -2A\\begin{pmatrix} 2\\lambda + 3\\mu \\\\ 2\\lambda + 3\\mu \\\\ 2\\lambda + 3\\mu \\end{pmatrix}, \\qquad \\hat{\\boldsymbol{\\sigma}} = A\\begin{pmatrix} 4\\lambda\\theta + 2\\mu(2x + y + z) & \\mu(x + y) & \\mu(x + z) \\\\ \\mu(x + y) & 4\\lambda\\theta + 2\\mu(x + 2y + z) & \\mu(y + z) \\\\ \\mu(x + z) & \\mu(y + z) & 4\\lambda\\theta + 2\\mu(x + y + 2z) \\end{pmatrix}$$\n", + "\n", + "with $\\theta = x + y + z$.\n", + "\n", + "- `left` ($x = 0$): $\\hat{u}_x = 0$, $\\hat{t}_y = -\\mu A y$, $\\hat{t}_z = -\\mu A z$\n", + "- `bottom` ($y = 0$): $\\hat{u}_y = 0$, $\\hat{t}_x = -\\mu A x$, $\\hat{t}_z = -\\mu A z$\n", + "- `front` ($z = 0$): $\\hat{u}_z = 0$, $\\hat{t}_x = -\\mu A x$, $\\hat{t}_y = -\\mu A y$\n", + "- `right` ($x = L$): $\\hat{\\mathbf{t}} = A\\,\\big(4\\lambda(L + y + z) + 2\\mu(2L + y + z),\\ \\mu(L + y),\\ \\mu(L + z)\\big)$\n", + "- `top` ($y = W$): $\\hat{\\mathbf{t}} = A\\,\\big(\\mu(x + W),\\ 4\\lambda(x + W + z) + 2\\mu(x + 2W + z),\\ \\mu(W + z)\\big)$\n", + "- `back` ($z = H$): $\\hat{\\mathbf{t}} = A\\,\\big(\\mu(x + H),\\ \\mu(y + H),\\ 4\\lambda(x + y + H) + 2\\mu(x + y + 2H)\\big)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "22-code-quadratic-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D box, quadratic manufactured solution, tetrahedra (left) and hexahedra (right)\n", + "tet = run(\"../cases/LinearSmallStrainFEMForceField/Quadratic3D_Tetra.json\")\n", + "hexa = run(\"../cases/LinearSmallStrainFEMForceField/Quadratic3D_Hexa.json\")\n", + "figure, (tetrahedra, hexahedra) = plt.subplots(1, 2, figsize=(14.4, 4.8))\n", + "tet.plot(tetrahedra)\n", + "hexa.plot(hexahedra)\n", + "\n", + "# Deformed shape at each level, coarse to fine\n", + "tet.plot_fields()\n", + "hexa.plot_fields()" + ] + }, + { + "cell_type": "markdown", + "id": "23-md-trigonometric-3d", + "metadata": {}, + "source": [ + "### Trigonometric Function\n", + "\n", + "$$\\hat{\\mathbf{u}} = A\\begin{pmatrix} \\sin(kx)\\cos(ky)\\cos(kz) \\\\ \\cos(kx)\\sin(ky)\\cos(kz) \\\\ \\cos(kx)\\cos(ky)\\sin(kz) \\end{pmatrix}, \\qquad \\mathbf{s} = 3k^2(\\lambda + 2\\mu)\\,\\hat{\\mathbf{u}}, \\qquad \\hat{\\boldsymbol{\\sigma}} = Ak\\begin{pmatrix} (3\\lambda + 2\\mu)\\,\\cos(kx)\\cos(ky)\\cos(kz) & -2\\mu\\,\\sin(kx)\\sin(ky)\\cos(kz) & -2\\mu\\,\\sin(kx)\\cos(ky)\\sin(kz) \\\\ -2\\mu\\,\\sin(kx)\\sin(ky)\\cos(kz) & (3\\lambda + 2\\mu)\\,\\cos(kx)\\cos(ky)\\cos(kz) & -2\\mu\\,\\cos(kx)\\sin(ky)\\sin(kz) \\\\ -2\\mu\\,\\sin(kx)\\cos(ky)\\sin(kz) & -2\\mu\\,\\cos(kx)\\sin(ky)\\sin(kz) & (3\\lambda + 2\\mu)\\,\\cos(kx)\\cos(ky)\\cos(kz) \\end{pmatrix}$$\n", + "\n", + "with $k = \\frac{2\\pi}{L}$, the same along $x$, $y$ and $z$ since the cases use a cube, $L = W = H$.\n", + "\n", + "- `left` ($x = 0$): $\\hat{u}_x = 0$, $\\hat{t}_y = \\hat{t}_z = 0$\n", + "- `bottom` ($y = 0$): $\\hat{u}_y = 0$, $\\hat{t}_x = \\hat{t}_z = 0$\n", + "- `front` ($z = 0$): $\\hat{u}_z = 0$, $\\hat{t}_x = \\hat{t}_y = 0$\n", + "- `right` ($x = L$): $\\hat{\\mathbf{t}} = Ak(3\\lambda + 2\\mu)\\,\\big(\\cos(ky)\\cos(kz),\\ 0,\\ 0\\big)$\n", + "- `top` ($y = L$): $\\hat{\\mathbf{t}} = Ak(3\\lambda + 2\\mu)\\,\\big(0,\\ \\cos(kx)\\cos(kz),\\ 0\\big)$\n", + "- `back` ($z = L$): $\\hat{\\mathbf{t}} = Ak(3\\lambda + 2\\mu)\\,\\big(0,\\ 0,\\ \\cos(kx)\\cos(ky)\\big)$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "24-code-trigonometric-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D box, trigonometric manufactured solution, tetrahedra (left) and hexahedra (right)\n", + "tet = run(\"../cases/LinearSmallStrainFEMForceField/Trigonometric3D_Tetra.json\")\n", + "hexa = run(\"../cases/LinearSmallStrainFEMForceField/Trigonometric3D_Hexa.json\")\n", + "figure, (tetrahedra, hexahedra) = plt.subplots(1, 2, figsize=(14.4, 4.8))\n", + "tet.plot(tetrahedra)\n", + "hexa.plot(hexahedra)\n", + "\n", + "# Deformed shape at each level, coarse to fine\n", + "tet.plot_fields()\n", + "hexa.plot_fields()" + ] + }, + { + "cell_type": "markdown", + "id": "25-md-3d-tire", + "metadata": {}, + "source": [ + "## Tetrahedron and Hexahedron Elements on a 3D Tire\n", + "\n", + "The tire is the annulus of the 2D tire, extruded along $z$ from $0$ to $H$." + ] + }, + { + "cell_type": "markdown", + "id": "26-md-quartic-3d", + "metadata": {}, + "source": [ + "### Quartic Function\n", + "\n", + "The manufactured solution is the one of [[2]](#ref2):\n", + "\n", + "$$\\hat{\\mathbf{u}} = A\\begin{pmatrix} x^4 - \\frac{2}{5}yz \\\\ -\\frac{1}{10}y^4 - \\frac{2}{5}xyz \\\\ z^4 - \\frac{2}{5}xy \\end{pmatrix}, \\qquad \\mathbf{s} = A\\begin{pmatrix} -12(\\lambda + 2\\mu)x^2 + \\frac{2}{5}(\\lambda + \\mu)z \\\\ \\frac{6}{5}(\\lambda + 2\\mu)y^2 \\\\ -12(\\lambda + 2\\mu)z^2 + \\frac{2}{5}(\\lambda + \\mu)x \\end{pmatrix}, \\qquad \\hat{\\boldsymbol{\\sigma}} = A\\begin{pmatrix} \\lambda\\theta + 8\\mu x^3 & -\\frac{2}{5}\\mu z(1 + y) & -\\frac{4}{5}\\mu y \\\\ -\\frac{2}{5}\\mu z(1 + y) & \\lambda\\theta - \\frac{4}{5}\\mu\\left(y^3 + xz\\right) & -\\frac{2}{5}\\mu x(1 + y) \\\\ -\\frac{4}{5}\\mu y & -\\frac{2}{5}\\mu x(1 + y) & \\lambda\\theta + 8\\mu z^3 \\end{pmatrix}$$\n", + "\n", + "with $\\theta = 4x^3 + 4z^3 - \\frac{2}{5}y^3 - \\frac{2}{5}xz$.\n", + "\n", + "The boundary is the inner and outer curved surfaces and the two flat faces:\n", + "\n", + "- `inner` ($r = R_i$): Dirichlet, $\\mathbf{u} = \\hat{\\mathbf{u}}$\n", + "- `outer` ($r = R_o$): Dirichlet, $\\mathbf{u} = \\hat{\\mathbf{u}}$\n", + "- `front` ($z = 0$): Neumann, $\\mathbf{t} = \\hat{\\boldsymbol{\\sigma}} \\cdot \\mathbf{n}$\n", + "- `back` ($z = H$): Neumann, $\\mathbf{t} = \\hat{\\boldsymbol{\\sigma}} \\cdot \\mathbf{n}$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27-code-quartic-3d", + "metadata": {}, + "outputs": [], + "source": [ + "# Case: 3D tire, quartic manufactured solution, tetrahedra (left) and hexahedra (right)\n", + "tet = run(\"../cases/LinearSmallStrainFEMForceField/Quartic3D_Tetra.json\")\n", + "hexa = run(\"../cases/LinearSmallStrainFEMForceField/Quartic3D_Hexa.json\")\n", + "figure, (tetrahedra, hexahedra) = plt.subplots(1, 2, figsize=(14.4, 4.8))\n", + "tet.plot(tetrahedra)\n", + "hexa.plot(hexahedra)\n", + "\n", + "# Deformed shape at each level, coarse to fine\n", + "tet.plot_fields()\n", + "hexa.plot_fields()" + ] + }, + { + "cell_type": "markdown", + "id": "28-md-references", + "metadata": {}, + "source": [ + "\n", + "## References\n", + "\n", + "\n", + "**[1]** T. J. R. Hughes, *The Finite Element Method: Linear Static and Dynamic Finite Element Analysis*, Dover, Mineola, NY, 2000. ISBN 978-0-486-41181-1. — *Chapter 2 (the weak formulation of linear elasticity).*\n", + "\n", + "\n", + "**[2]** É. Chamberland, A. Fortin and M. Fortin, \"Comparison of the performance of some finite element discretizations for large deformation elasticity problems,\" *Computers and Structures*, 88(11–12):664–673, 2010." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/verification/manufactured/__init__.py b/verification/manufactured/__init__.py new file mode 100644 index 0000000..44adc87 --- /dev/null +++ b/verification/manufactured/__init__.py @@ -0,0 +1,5 @@ +from .base import ManufacturedSolution, TrigonometricSolution +from .problem import ManufacturedProblem +from .grid import (Quadratic1D, Quadratic2D, Quadratic3D, + Trigonometric1D, Trigonometric2D, Trigonometric3D) +from .tire import Quartic2D, Quartic3D diff --git a/verification/manufactured/base.py b/verification/manufactured/base.py new file mode 100644 index 0000000..4ec0f83 --- /dev/null +++ b/verification/manufactured/base.py @@ -0,0 +1,62 @@ +"""Manufactured solutions: exact displacements declared symbolically, and the regions where +their BCs apply. +""" + +from abc import ABC, abstractmethod + +import sympy as sp + + +class ManufacturedSolution(ABC): + """An exact displacement, declared symbolically, and the regions where its BCs apply. + + Stated without reference to a material; `ManufacturedProblem` pairs the two. + """ + + geometry: type # the geometry family this solution is stated on + dim: int # the PDE's own dimension, not the space it is solved in + + def __init__(self, config, geometry, traction_on=None): + if not isinstance(geometry, self.geometry): + raise ValueError(f"{type(self).__name__} is stated on a {self.geometry.__name__}, " + f"got a {type(geometry).__name__}") + if geometry.dim != self.dim: + raise ValueError(f"{type(self).__name__} is {self.dim}D, " + f"got a {geometry.dim}D {type(geometry).__name__}") + + self.config = config # the case's "solution" block; a subclass may read more from it + self.amplitude = config["amplitude"] # too large relative to the geometry inverts elements + self.parameters = geometry.named_parameters + self.regions = list(geometry.region_names) + self.traction_on = traction_on or {} # {region: directions} the case hands to traction + + @property + def prescribe_displacement_on(self): + """{region: fixed_directions}: every direction of every region, less the ones the case + handed to the traction. A region left with nothing fixed is dropped. + """ + prescribed = {} + for region in self.regions: + free = self.traction_on.get(region, [0] * self.dim) + fixed_directions = [1 - direction for direction in free] + if any(fixed_directions): + prescribed[region] = fixed_directions + return prescribed + + @abstractmethod + def displacement(self, coordinates): + """Exact displacement as sympy expressions, one per component of this solution's own dimension.""" + + +class TrigonometricSolution(ManufacturedSolution): + """A solution built from sines and cosines fitted to the geometry's extent.""" + + def __init__(self, config, geometry, traction_on=None): + super().__init__(config, geometry, traction_on) + self.periods = config.get("periods", 1) # more periods need a finer mesh to resolve + + def wavenumber(self, parameter): + """The wavenumber fitting `self.periods` full periods across one of the geometry's + characteristic parameters, e.g. 2 pi / length for a single period. + """ + return 2 * sp.pi * sp.Rational(str(self.periods)) / sp.Rational(str(self.parameters[parameter])) diff --git a/verification/manufactured/grid.py b/verification/manufactured/grid.py new file mode 100644 index 0000000..b43d346 --- /dev/null +++ b/verification/manufactured/grid.py @@ -0,0 +1,97 @@ +"""Manufactured solutions stated on the grid geometry.""" + +import sympy as sp + +from common.geometry import Grid + +from .base import ManufacturedSolution, TrigonometricSolution + + +class Quadratic1D(ManufacturedSolution): + """u(x) = [A x^2]: body force constant, so the nodal source is the source; clamped at 'left'.""" + + geometry = Grid + dim = 1 + + def displacement(self, coordinates): + return [self.amplitude * coordinates[0] ** 2] + + +class Quadratic2D(ManufacturedSolution): + """u(x, y) = [A (x^2 + x y), A (y^2 + x y)] + + Body force constant and traction linear, so both are nodally exact. + """ + + geometry = Grid + dim = 2 + + def displacement(self, coordinates): + x, y = coordinates[0], coordinates[1] + return [self.amplitude * (x**2 + x * y), self.amplitude * (y**2 + x * y)] + + +class Quadratic3D(ManufacturedSolution): + """u(x, y, z) = [A (x^2 + x y + x z), A (y^2 + y z + x y), A (z^2 + z x + y z)] + + Body force constant and traction linear, so both are nodally exact. + """ + + geometry = Grid + dim = 3 + + def displacement(self, coordinates): + x, y, z = coordinates + return [self.amplitude * (x**2 + x * y + x * z), + self.amplitude * (y**2 + y * z + x * y), + self.amplitude * (z**2 + z * x + y * z)] + + +class Trigonometric1D(TrigonometricSolution): + """u(x) = [A sin(k x)], k = 2 pi / L: prescribed (clamped) at 'left', traction at 'right'.""" + + geometry = Grid + dim = 1 + + def displacement(self, coordinates): + return [self.amplitude * sp.sin(self.wavenumber("length") * coordinates[0])] + + +class Trigonometric2D(TrigonometricSolution): + """u(x, y) = [A sin(kx x) cos(ky y), + A cos(kx x) sin(ky y)] + kx = 2 pi / L, ky = 2 pi / W + + u_x fixed on the left face, u_y on the bottom face, traction elsewhere. + """ + + geometry = Grid + dim = 2 + + def displacement(self, coordinates): + kx, ky = self.wavenumber("length"), self.wavenumber("width") + x, y = coordinates[0], coordinates[1] + return [self.amplitude * sp.sin(kx * x) * sp.cos(ky * y), + self.amplitude * sp.cos(kx * x) * sp.sin(ky * y)] + + +class Trigonometric3D(TrigonometricSolution): + """u(x, y, z) = [A sin(kx x) cos(ky y) cos(kz z), + A cos(kx x) sin(ky y) cos(kz z), + A cos(kx x) cos(ky y) sin(kz z)] + kx = 2 pi / L, ky = 2 pi / W, kz = 2 pi / H + + Each component fixed on the low face of its own axis, traction elsewhere. + """ + + geometry = Grid + dim = 3 + + def displacement(self, coordinates): + kx, ky, kz = (self.wavenumber("length"), self.wavenumber("width"), + self.wavenumber("height")) + x, y, z = coordinates + return [self.amplitude * sp.sin(kx * x) * sp.cos(ky * y) * sp.cos(kz * z), + self.amplitude * sp.cos(kx * x) * sp.sin(ky * y) * sp.cos(kz * z), + self.amplitude * sp.cos(kx * x) * sp.cos(ky * y) * sp.sin(kz * z)] + diff --git a/verification/manufactured/materials.py b/verification/manufactured/materials.py new file mode 100644 index 0000000..d804836 --- /dev/null +++ b/verification/manufactured/materials.py @@ -0,0 +1,131 @@ +"""Constitutive laws: a material declares psi(gradient); its stress and tangent are differentiated from that.""" + +from abc import ABC, abstractmethod + +import numpy as np +import sympy as sp + + +def _toLameParameters1D(youngModulus, poissonRatio): + """(mu, lambda) at d = 1, where lambda + 2 mu = E collapses Hooke to sigma = E eps.""" + return 0.5 * youngModulus, 0.0 + + +def _toLameParameters2D(youngModulus, poissonRatio): + """(mu, lambda) at d = 2, in plane stress: the convention SOFA's force fields assume.""" + return (youngModulus / (2 * (1 + poissonRatio)), + youngModulus * poissonRatio / (1 - poissonRatio ** 2)) + + +def _toLameParameters3D(youngModulus, poissonRatio): + """(mu, lambda) at d = 3.""" + return (youngModulus / (2 * (1 + poissonRatio)), + youngModulus * poissonRatio / ((1 + poissonRatio) * (1 - 2 * poissonRatio))) + + +# dim -> Young/Poisson -> (mu, lambda) +_toLame = {1: _toLameParameters1D, + 2: _toLameParameters2D, + 3: _toLameParameters3D} + + +def _tensor(dimensions, label): + """A d x d matrix of independent symbols, named "