diff --git a/Cargo.toml b/Cargo.toml index 13004ef..6cbf773 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,6 +11,9 @@ categories = ["algorithms", "data-structures"] keywords = ["delaunay", "triangulation", "tessellation", "spatial", "geometry"] authors = ["Vladimir Agafonkin "] +[dependencies] +robust = "0.2.3" + [dev-dependencies] criterion = "0.3.4" rand = "0.8.3" @@ -26,3 +29,11 @@ bench = false [[bench]] name = "bench" harness = false + +[[example]] +name = "triangulate" +path = "examples/triangulate.rs" + +[[example]] +name = "svg" +path = "examples/svg.rs" \ No newline at end of file diff --git a/README.md b/README.md index 4c9b62d..3ca6c5b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ let points = vec![ Point { x: 0., y: 1. }, ]; -let result = triangulate(&points).expect("No triangulation exists."); +let result = triangulate(&points); println!("{:?}", result.triangles); // [0, 2, 1, 0, 3, 2] ``` diff --git a/examples/svg.rs b/examples/svg.rs new file mode 100644 index 0000000..477950f --- /dev/null +++ b/examples/svg.rs @@ -0,0 +1,81 @@ +use std::{env, fs::File, io::Write}; +use delaunator::{EMPTY, Point, Triangulation, next_halfedge}; +const CANVAS_SIZE: f64 = 800.; +const POINT_SIZE: usize = 4; +const LINE_WIDTH: usize = 1; +const HULL_COLOR: &str = "green"; +const LINE_COLOR: &str = "blue"; +const POINT_COLOR: &str = "black"; +const HULL_POINT_COLOR: &str = "red"; + +/// Takes the first argument and use as path to load points data. If no argument provided, loads one of the test fixtures data file +/// Example: cargo run --example svg -- tests/fixtures/issue24.json +fn main() -> std::io::Result<()> { + // load points from file + let default_path = "tests/fixtures/robust4.json".to_string(); + let args = env::args().collect::>(); + let path = args.get(1).unwrap_or(&default_path); + let points: Vec = serde_json::from_reader::<_, Vec<(f64, f64)>>(File::open(path)?)? + .iter().map(|p| Point { x: p.0, y: p.1 }).collect(); + + // triangulate and scale points for display + let triangulation = delaunator::triangulate(&points); + println!("{:#?}", triangulation); + let points = center_and_scale(&points, &triangulation); + + // generate SVG + let contents = format!( + r#" + + + {circles} + {lines} +"#, + width = CANVAS_SIZE, + height = CANVAS_SIZE, + circles = render_point(&points, &triangulation), + lines = (0..triangulation.triangles.len()).fold(String::new(), |acc, e| { + if e > triangulation.halfedges[e] || triangulation.halfedges[e] == EMPTY { + let start = &points[triangulation.triangles[e]]; + let end = &points[triangulation.triangles[next_halfedge(e)]]; + let color = if triangulation.halfedges[e] == EMPTY { HULL_COLOR } else { LINE_COLOR }; + acc + &format!(r#""#, x0 = start.x, y0 = start.y, x1=end.x, y1=end.y, width = LINE_WIDTH, color = color) + } else { + acc + } + }) + ); + File::create("triangulation.svg")? + .write_all(contents.as_bytes()) +} + + +/// Finds the center point and farthest point from it, then generates a new vector of +/// scaled and offset points such that they fit between [0..SIZE] +fn center_and_scale(points: &Vec, t: &Triangulation) -> Vec { + let center = &points[*t.triangles.get(0).unwrap_or(&0)]; + let farthest_distance = points.iter().map(|p| { + let (x, y) = (center.x - p.x, center.y - p.y); + x*x + y*y + }).reduce(f64::max).unwrap().sqrt(); + let scale = CANVAS_SIZE / (farthest_distance * 2.0); + let offset = ((CANVAS_SIZE / 2.0) - (scale * center.x), (CANVAS_SIZE / 2.0) - (scale * center.y)); + points.iter().map(|p| Point { x: scale * p.x + offset.0, y: scale * p.y + offset.1 }).collect() +} + + +fn render_point(points: &[Point], triangulation: &Triangulation) -> String { + let mut circles = points.iter().enumerate().fold(String::new(), |acc, (i, p)| { + let color = if triangulation.hull.contains(&i) { HULL_POINT_COLOR } else { POINT_COLOR }; + acc + &format!(r#""#, x = p.x, y = p.y, size = POINT_SIZE, color = color) + }); + + // show ids for points if input is relatively small + if points.len() < 100 { + circles = points.iter().enumerate().fold(circles, |acc, (i, p)| { + acc + &format!(r#"{i}"#, i = i, x = p.x + 10., y = p.y - 5.) + }) + } + + circles +} \ No newline at end of file diff --git a/examples/triangulate.rs b/examples/triangulate.rs index 5539ad6..0d8dc05 100644 --- a/examples/triangulate.rs +++ b/examples/triangulate.rs @@ -1,6 +1,3 @@ -extern crate delaunator; -extern crate rand; - use std::iter::repeat_with; const N: usize = 1_000_000; diff --git a/src/lib.rs b/src/lib.rs index d5ea53c..e1a05e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,6 +27,7 @@ extern crate std; #[macro_use] extern crate alloc; +use robust::orient2d; use core::{f64, fmt}; use alloc::vec::Vec; @@ -47,6 +48,15 @@ impl fmt::Debug for Point { } } +impl Into> for &Point { + fn into(self) -> robust::Coord { + robust::Coord:: { + x: self.x, + y: self.y, + } + } +} + impl Point { fn dist2(&self, p: &Self) -> f64 { let dx = self.x - p.x; @@ -54,8 +64,8 @@ impl Point { dx * dx + dy * dy } - fn orient(&self, q: &Self, r: &Self) -> bool { - (q.y - self.y) * (r.x - q.x) - (q.x - self.x) * (r.y - q.y) < 0.0 + fn orient(&self, q: &Self, r: &Self) -> f64 { + orient2d(self.into(), q.into(), r.into()) } fn circumdelta(&self, b: &Self, c: &Self) -> (f64, f64) { @@ -130,6 +140,7 @@ pub fn prev_halfedge(i: usize) -> usize { } /// Result of the Delaunay triangulation. +#[derive(Debug, Clone)] pub struct Triangulation { /// A vector of point indices where each triple represents a Delaunay triangle. /// All triangles are directed counter-clockwise. @@ -347,7 +358,7 @@ impl Hull { start = self.prev[start]; let mut e = start; - while !p.orient(&points[e], &points[self.next[e]]) { + while p.orient(&points[e], &points[self.next[e]]) <= 0. { e = self.next[e]; if e == start { return (EMPTY, false); @@ -419,7 +430,7 @@ fn find_seed_triangle(points: &[Point]) -> Option<(usize, usize, usize)> { None } else { // swap the order of the seed points for counter-clockwise orientation - Some(if p0.orient(p1, &points[i2]) { + Some(if p0.orient(p1, &points[i2]) > 0. { (i0, i2, i1) } else { (i0, i1, i2) @@ -516,7 +527,7 @@ pub fn triangulate(points: &[Point]) -> Triangulation { let mut n = hull.next[e]; loop { let q = hull.next[n]; - if !p.orient(&points[n], &points[q]) { + if p.orient(&points[n], &points[q]) < 0. { break; } let t = triangulation.add_triangle(n, i, q, hull.tri[i], EMPTY, hull.tri[n]); @@ -529,7 +540,7 @@ pub fn triangulate(points: &[Point]) -> Triangulation { if walk_back { loop { let q = hull.prev[e]; - if !p.orient(&points[q], &points[e]) { + if p.orient(&points[q], &points[e]) < 0. { break; } let t = triangulation.add_triangle(q, i, e, EMPTY, hull.tri[e], hull.tri[q]); @@ -610,7 +621,7 @@ fn f64_sqrt(f: f64) -> f64 { let sc = f64_sqrt(f / 4.0) * 2.0; let lc = sc + 1.0; - + if lc * lc > f { sc } else { diff --git a/tests/fixtures/grid.json b/tests/fixtures/grid.json new file mode 100644 index 0000000..5678d31 --- /dev/null +++ b/tests/fixtures/grid.json @@ -0,0 +1,34 @@ +[ + [0.5071359338391455, -0.3236832077937956], + [0.3830151816637668, 0.5627457940628474], + [1.5196837554166323, -0.2974359857979777], + [-0.6149866437812772, 1.0450423584955024], + [-0.21916717030359378, -2.702309985665537], + [-0.3128297966002196, 0.32627037936130365], + [-0.2585335697093173, -3.2042352606594826], + [-1.05847858399307686, 2.3754785777859544], + [1.0, 1.0], + [-1.0, 1.0], + [-1.0, -1.0], + [1.0, -1.0], + [4.666589448684871, -1.160460175259872], + [4.95915032227072, 0.7037936855165575], + [-2.2472073777517436, 3.363632890638188], + [-0.30704845634464, -4.6397107833345075], + [-0.5217818413507629, 1.0], + [1.0, 0.5817628040530143], + [1.0, -0.3109072062236856], + [1.0, 0.09583827903291398], + [-0.5217818413507627, 1.0], + [-0.59605176954064, 1.0], + [-0.2718132304410775, -1.0], + [0.3006256102638203, -1.0], + [-0.7824622340091141, -1.0], + [-1.0, -0.08479064614066445], + [1.0, 0.09583827903291409], + [1.0, 0.5817628040530143], + [-1.0, -0.08479064614066623], + [-0.7824622340091145, -1.0], + [-0.2718132304410775, -1.0], + [-0.5960517695406401, 1.0] +] \ No newline at end of file diff --git a/tests/fixtures/issue10.json b/tests/fixtures/issue10.json new file mode 100644 index 0000000..f530f46 --- /dev/null +++ b/tests/fixtures/issue10.json @@ -0,0 +1,22 @@ +[ + [-1.0849334460551594, -1.0849334460551594], + [-1.5265847189170323, -1.5265847189170323], + [-2.095815826893781, -1.274850699584578], + [-2.770865690566727, -0.9763199041819535], + [-3.6843898126113546, -0.5723274031100705], + [-4.403658177176129, -0.25424163117441645], + [-5.02567003534954, 0.020833892521026076], + [-5.701084620214019, 0.3195259804640507], + [-6.561463270870451, 0.7000156846325452], + [-7.31105511135829, 1.0315115642859167], + [-8.0, 1.336187228503853], + [-7.339371017948894, 1.1048861305058357], + [-6.616986689211032, 0.8519630935920505], + [-5.816767071935726, 0.5717881676590966], + [-5.121128245254447, 0.3282293338915143], + [-4.512948676142796, 0.11529195763725286], + [-3.850960067633096, -0.11648517623155441], + [-3.1594534122386113, -0.3585972436874558], + [-2.288934450277422, -0.663385554827794], + [-1.6751076145244035, -0.8783001664294665] +] \ No newline at end of file diff --git a/tests/fixtures/issue11.json b/tests/fixtures/issue11js.json similarity index 100% rename from tests/fixtures/issue11.json rename to tests/fixtures/issue11js.json diff --git a/tests/fixtures/issue13.json b/tests/fixtures/issue13js.json similarity index 100% rename from tests/fixtures/issue13.json rename to tests/fixtures/issue13js.json diff --git a/tests/fixtures/issue24.json b/tests/fixtures/issue24js.json similarity index 100% rename from tests/fixtures/issue24.json rename to tests/fixtures/issue24js.json diff --git a/tests/fixtures/issue43js.json b/tests/fixtures/issue43js.json new file mode 100644 index 0000000..b784f90 --- /dev/null +++ b/tests/fixtures/issue43js.json @@ -0,0 +1,7 @@ +[ + [-537.7739674441619, -122.26130468750004], + [-495.533967444162, -183.39195703125006], + [-453.29396744416204, -244.5226093750001], + [-411.0539674441621, -305.6532617187501], + [-164, -122] + ] \ No newline at end of file diff --git a/tests/fixtures/issue44js.json b/tests/fixtures/issue44js.json new file mode 100644 index 0000000..b924f93 --- /dev/null +++ b/tests/fixtures/issue44js.json @@ -0,0 +1 @@ +[[26.503079520654865, 11924.782889293449], [17802.177094347775, 14771.76824509597], [22.59868738579098, 11906.878649358347], [18.061359242885374, 11880.997607096127], [15.84102548705414, 11865.12912299385], [8.318993240012787, 11844.549216297688], [7.948692703153938, 11828.15020258582], [7.595944952918217, 11803.009173679951], [2943.4161310627824, 3539.458681775228], [5.9945961511693895, 11786.312877524004], [2957.708617403754, 3525.4695759791066], [4.148848783224821, 11771.340437807085], [2963.836679331842, 3506.9336151015887], [3.6859109612414613, 11747.37789844317], [2970.453894720995, 3488.536672874179], [5.745133122778498, 11726.410265772574], [2965.4646146799205, 3462.638472507766], [18092.32982344879, 6355.361424847331], [0.0, 11709.058043583791], [2936.658277412178, 3424.6891547068954], [18115.823998114793, 6356.613713153871], [10.574507554294541, 11686.081700905517], [2948.798337506596, 3404.7426561087486], [18137.122740413062, 6355.715412459016], [10.04454818170052, 11667.463923586853], [2957.7381027494557, 3386.8108949812304], [18154.303095893003, 6350.467460945685], [10.602848752518184, 11647.325094953849], [2980.146552971797, 3370.11563724195], [18175.36612394452, 6341.14551904457], [17.34624179522507, 11629.745372466772], [2998.5407668782864, 3361.40234932123], [18206.2247117979, 6286.875106895372], [21.858263653004542, 11608.737819518952], [3015.849298108951, 3352.825328087987], [18225.20378764195, 6288.954998230794], [24.892110784188844, 11588.804314446956], [3037.5905627461616, 3341.4767941333703], [18247.327663268778, 6294.513670248125], [36.899349618237466, 11571.340259892284], [3055.9870471284958, 3338.5551300728694], [18264.32867938734, 6300.145377993205], [41.957147880923, 11551.849292416795], [3074.6567944484996, 3326.040794957924], [18281.876934219035, 6309.52123824408], [48.96610893425532, 11531.657191075821], [3098.4731899974868, 3324.3398225220153], [18297.179243516526, 6327.034078430093], [56.436598169384524, 11510.816623915132], [3111.2479254712816, 3313.8202448075463], [18306.836239271914, 6340.923740361439], [67.16090339142829, 11498.454664017685], [3133.662587961764, 3309.749298120383], [18329.04802083841, 6358.964572349709], [74.8909688857384, 11476.604548790812], [3155.885450036265, 3303.121090518165], [18340.756382182823, 6373.758515466383], [88.5258841883624, 11462.038493085449], [3175.281007616315, 3296.822404745966], [18353.149721875554, 6383.603746841109], [95.79620850877836, 11443.17900886634], [3196.0106860367814, 3294.006477787567], [18368.452983953874, 6402.881992445356], [115.44474444712978, 11427.701974048134], [3217.346129113459, 3291.558632476459], [18379.222196104238, 6416.1007137349225], [124.18476210720837, 11409.773495271511], [3235.9028942930745, 3284.8769715983362], [18392.408132081968, 6428.059257164015], [134.7400648763869, 11394.868139136379], [3253.6217518292833, 3286.785161951295], [18400.13788568508, 6443.086024681252], [146.71153444959782, 11378.177531010879], [3274.7105991833378, 3284.5706516385544], [18416.89569255465, 6457.394440825417], [148.40541454276536, 11340.436268777848], [3299.279933110811, 3270.872244635888], [18424.500534441904, 6471.08767585727], [169.19134289526846, 11329.778802685643], [3318.203951612697, 3271.610609941301], [18445.818619777798, 6488.778866557812], [195.7591556131374, 11319.124977643514], [3335.720162203652, 3275.109753452998], [18450.110987567692, 6503.286311570264], [214.9045312460512, 11308.173638990818], [17327.638333592797, 14934.980431035365], [3355.2249953993596, 3276.9243880853464], [18458.468505581142, 6521.2112348153605], [239.19583877397235, 11298.572374673677], [17320.855305419187, 14957.116227312566], [3381.8066325384425, 3272.681846543448], [18465.52462765097, 6538.593183306628], [261.83424071839545, 11297.087550501834], [17315.226203030557, 14970.596801848238], [3399.409635504009, 3279.9669735169446], [18482.912718882668, 6552.9574461560405], [281.67324021516833, 11296.926534298196], [17347.15508082509, 15015.238244133157], [3420.8910784174222, 3283.818876388512], [18485.742215707665, 6577.801018595783], [304.76849392894655, 11298.004320076667], [17342.94614084775, 15039.510792034067], [3447.7672457972076, 3285.4711149864015], [18488.154513104586, 6593.776395774912], [331.1497044045245, 11300.517262174457], [17327.922890301794, 15053.84248995618], [3460.155656627845, 3295.8952754928323], [18496.75740932161, 6611.156165422319], [17309.513073763577, 15056.698385384778], [3481.2284483629046, 3301.4703705074207], [18495.52445872838, 6626.5304710594355], [17287.152634574566, 15059.360958908801], [3498.1266393567203, 3311.8810636966373], [17273.613513871212, 15068.427217658958], [3510.5829786540708, 3320.223501640634], [17256.317882158794, 15071.921724064829], [3533.0826371060684, 3330.4640058465593], [17234.69494379242, 15079.042962496256], [17217.54186198977, 15082.866317640233], [17202.146954465657, 15089.44070075659], [17190.17011700326, 15093.569802633603], [17170.378223235486, 15096.488862512197], [17153.295774000813, 15102.77391435983], [17140.0886900092, 15104.523464279482], [17121.599758537486, 15105.158196286066], [17099.360084634158, 15111.720407197543], [17085.343187951483, 15107.461583845055], [17069.490008431487, 15108.186945245718], [17050.05489088071, 15104.952714187413], [17033.572986171464, 15104.663318953477], [17015.131793377222, 15105.204526438349], [16999.86757647374, 15103.414324094076], [16978.448437520186, 15103.72029678218], [16965.28745309834, 15100.259355585673], [16949.641329935752, 15097.610037530772], [16928.92930290487, 15095.383776652714], [16913.778527058195, 15093.188819364383], [16896.063596928725, 15085.907094388414], [18887.274145528558, 6907.533204746054], [18911.572035870282, 6908.668553172669], [18930.32442574331, 6903.953572765458], [18961.427305816673, 6858.7656317004585], [326.11280821531545, 10770.853396075516], [18986.12531614967, 6852.705916467472], [313.3303366858745, 10760.526721072558], [19009.003177675186, 6864.977135481837], [300.45803244027775, 10755.174842112989], [19027.08995449799, 6870.858926194749], [249.9668342033401, 10770.01924447628], [19039.75146215083, 6883.227853073971], [239.65216049726587, 10753.742101968382], [4094.1482853807975, 3119.558418006287], [19053.658736714744, 6901.424156659545], [227.7865762904985, 10734.904453841096], [4102.218820101698, 3104.453117831523], [19071.734441609122, 6915.452288564818], [218.33820665627718, 10719.631139385747], [4107.438630847842, 3082.426202424278], [19077.78132374049, 6929.70239835867], [212.82050031726249, 10701.83296042442], [4073.6288732519606, 3033.4103606595017], [19092.26529899123, 6943.045751636731], [211.72748342656996, 10675.348757489235], [4088.3209844839294, 3014.285745406407], [19104.04777415481, 6963.922782655136], [211.991236019996, 10654.214657601784], [4102.644293414662, 2998.367450966325], [19115.307119602687, 6975.077376478497], [208.10064796265215, 10636.376046758523], [4123.23434025608, 2987.8428168950777], [19127.58855287521, 6991.58144110805], [207.49762901221402, 10615.045683403616], [4143.2530111951055, 2978.9573947117606], [19139.39603531186, 7001.941931975132], [206.96950907248538, 10599.839813065453], [4160.8190622627735, 2971.619515795581], [19149.580418825382, 7019.791611732449], [206.9393386313459, 10581.174512259371], [4182.227930429275, 2967.2956528433133], [19161.87007009494, 7036.28973909319], [204.61931022722274, 10553.617330622132], [4204.473974030581, 2960.63219588605], [19169.504091738374, 7053.252347877191], [211.3730638360139, 10539.44459483138], [4223.412111151149, 2953.686666991067], [19178.195119338576, 7069.636377517891], [213.36086606408935, 10518.819607801706], [4244.250907382113, 2952.430221425544], [19188.445018219063, 7084.103802297468], [216.32402836205438, 10499.19736102916], [4267.598106179154, 2945.410080863774], [19198.594679319416, 7104.035327470978], [214.8760566455312, 10475.028346126725], [4283.519503463525, 2942.2018025865254], [19205.461768945563, 7117.246311943047], [216.04414590389933, 10458.981595302903], [16490.816850027884, 15241.177030452265], [4310.167479776661, 2941.0654752913106], [19211.91634504788, 7133.988754741818], [222.41851263912395, 10440.53205121719], [16480.43211347051, 15254.16598567742], [4329.424139471841, 2938.467226380628], [220.16399529611226, 10419.637589356367], [16473.801764220465, 15273.017091355665], [4345.371470087208, 2934.4973641812976], [231.93291299266275, 10401.072735418187], [16497.851168052177, 15314.504509799182], [4366.616011790349, 2934.0312890010828], [234.21171647740994, 10383.034652418108], [16488.354250286822, 15328.987858763197], [4386.338985728798, 2931.01815532014], [239.80332966009155, 10353.908954623068], [16470.737265441334, 15342.207783917984], [4408.433774465928, 2932.111363151984], [248.7877415245166, 10339.338372549246], [16456.437735240324, 15354.452384854638], [4429.457115568919, 2928.528603376966], [250.5762894299114, 10322.107126002957], [16439.236786057358, 15353.333540864405], [4446.948579170392, 2930.613284971827], [262.326310075121, 10305.627071004448], [16420.204154222156, 15357.791730852012], [4467.293839899474, 2933.517351895134], [272.7286354168318, 10288.060621507175], [16402.980954646948, 15359.695574752055], [4490.785641388386, 2932.70699150936], [277.21389129722957, 10274.153251257085], [16385.107326833066, 15361.027770985675], [4509.02962092089, 2936.5283351128455], [288.79994158656336, 10254.543872923212], [16366.76106310531, 15369.441045112995], [4524.19770636328, 2937.948037661641], [302.5187829013448, 10232.63125793141], [16345.831821153173, 15373.034810399695], [4546.761194693041, 2945.90169599661], [311.64017485769, 10216.747896318033], [16330.72577030491, 15374.702010156907], [4564.591266733827, 2950.2844859063043], [325.5397288434906, 10201.380016417155], [16312.091491618077, 15375.206668255327], [332.23779864935204, 10184.982653344981], [16298.784743847093, 15382.45015474534], [348.13868004560936, 10170.002911782096], [16280.653458925663, 15380.006718449527], [362.99629749218, 10153.008959853323], [16261.714574858197, 15378.960430950916], [16244.591401841375, 15379.75725684248], [16227.005206021015, 15381.91583953789], [16206.014305114048, 15381.827028670697], [16191.817174284719, 15379.763759687834], [16176.258728443994, 15374.215027728118], [16156.560968072503, 15373.206228385505], [16142.497906101402, 15370.5997913506], [16123.050382961403, 15364.39199810836], [16108.79733222851, 15360.772932946304], [19584.887084567687, 7376.515790465666], [19600.91612557904, 7379.123174459935], [19622.566872414434, 7375.942335377913], [19643.36914649175, 7370.629325991758], [19672.123566870578, 7319.38036786599], [19692.972744333674, 7315.709582719195], [19717.533831420704, 7321.833513920807], [19738.228765258566, 7334.690152070398], [19749.896970391623, 7348.705750032823], [19768.074304874055, 7361.16416770604], [19777.734222882893, 7375.290756798902], [19794.80515932222, 7390.470528092061], [19804.97813968989, 7404.524365840218], [19821.61032435496, 7417.119002331194], [19834.56600993441, 7433.644242859125], [19843.98277399852, 7446.369581880659], [19853.562301864615, 7460.848652157874], [5062.622207547654, 2762.082838206814], [19867.854716347414, 7480.879969526199], [5077.4728730114875, 2746.9206665772945], [19881.739550518454, 7493.637054061401], [5086.800894351676, 2727.138917273929], [19888.282620002632, 7506.115053227404], [5092.970617093029, 2712.9489903038775], [19899.822116977302, 7525.909290007752], [5065.383204317186, 2670.1920227110386], [19911.888403657475, 7540.956928908214], [5071.775325514958, 2634.4809476797236], [19915.6852493959, 7557.113416330132], [5085.301473852829, 2624.56930310576], [19926.031052593607, 7571.965168837487], [5106.088672706508, 2609.6691919221485], [19935.1745086069, 7589.580695477722], [395.92198816977907, 9563.454690402752], [5125.615214874968, 2597.3160728248185], [19940.743901628186, 7605.902858547226], [386.05365060828626, 9553.426523309521], [5149.075387181947, 2595.704355121299], [19944.439864845946, 7621.985993075476], [375.25817634165287, 9531.445038239908], [5164.422632027417, 2589.6882438527828], [19959.825234643416, 7639.893473801523], [355.7026799605228, 9528.832650373166], [5183.743572556763, 2581.097674626537], [19961.808645904297, 7657.53298889898], [311.70942913077306, 9540.902381115418], [5207.381216495181, 2576.500431966473], [19965.560477574356, 7679.007730281242], [296.72594944783486, 9521.660241755162], [15670.72461297072, 15521.662520468439], [5229.4368082721485, 2573.3494521481625], [19966.803916562116, 7694.626303641649], [289.33668090903666, 9502.801842479035], [15664.82932242658, 15532.766917370202], [5249.684002772323, 2566.4640232009406], [19974.234483638545, 7712.954893476737], [285.08532848139293, 9483.273022039415], [15654.084969778429, 15548.760396255937], [5271.599726284156, 2564.60391092769], [19975.319471615367, 7728.477213334321], [279.5543874105206, 9464.56569768468], [15651.75953773968, 15564.302643295465], [5289.6161460285075, 2561.1315458082827], [19977.802671461133, 7749.630183968169], [277.4583827269962, 9439.86509685748], [15675.665532022598, 15607.14987976916], [5311.857894381392, 2556.947884313122], [19982.11578825151, 7768.915579386026], [279.1565057915868, 9419.05136249392], [15663.256676013232, 15624.295338163065], [5328.697370686568, 2552.1363759854867], [19976.752738444135, 7783.712559505424], [283.62110770260915, 9401.240772559308], [15650.681450145901, 15636.312533415854], [5352.361801391351, 2554.541211491858], [19981.90922085743, 7802.062699734612], [287.65166084910743, 9381.799282378779], [15633.441857278347, 15646.88827595042], [5367.709960149834, 2555.780323142011], [19981.802031872212, 7816.229648788605], [290.23114507761784, 9361.83051977455], [15616.046268893406, 15651.690392835706], [5394.571436443017, 2556.200436899002], [19978.290341482498, 7838.142724428151], [290.216713049449, 9337.903187697433], [15597.359465872054, 15653.797351577872], [5415.490001128754, 2558.0364595785795], [19976.325634778244, 7854.814229580166], [295.46914126200136, 9320.191873159114], [15583.27148245403, 15658.892565051647], [5431.25763680716, 2552.651825158973], [19973.299871733063, 7872.71180631785], [299.77989594603423, 9297.605168878072], [15565.67759273143, 15662.990840769111], [5452.172659530654, 2558.5450819186517], [19973.699761359836, 7893.584759329708], [301.4024323207559, 9279.618229737476], [15546.787376526627, 15666.932172270637], [5470.7424220981775, 2559.7378900894255], [19961.87807158346, 7906.4431981745], [309.0808579393197, 9264.724651664583], [15532.31790211855, 15670.847655029938], [5492.144219258102, 2562.0644520809874], [19955.856386655127, 7918.124831724825], [309.9480792983668, 9242.765029575123], [15513.274702676572, 15676.398429376393], [5511.356010640506, 2565.1495526725193], [19952.16047626396, 7940.725106028374], [313.07969337597024, 9225.34103976126], [15493.665287058218, 15680.23346295586], [5527.6551866582595, 2566.073575889255], [19948.528299703496, 7957.794064508256], [320.6672303545056, 9204.566307806497], [15482.582061511348, 15681.796056025254], [5551.856945493142, 2577.4362235133594], [19941.682053562487, 7972.365797263017], [322.19344677671324, 9187.964649096713], [15461.332026992575, 15684.92826656907], [5569.636898974772, 2577.722209051746], [19937.555767286685, 7989.982394421793], [332.3565462259576, 9165.016809088207], [15447.637888338184, 15689.078600820154], [19929.220942647662, 8001.141652920633], [344.1593098347075, 9145.139154816832], [15431.366063384456, 15690.131688216847], [19923.99998013198, 8020.034231829864], [351.9587087663822, 9128.083800255874], [15409.77837223967, 15690.457646806724], [19953.251972377417, 8066.822070956143], [360.02164985169657, 9111.204348790488], [15392.028363943682, 15689.966881943197], [19937.390910870512, 8081.8470703169005], [364.37483652262017, 9090.978067996883], [15373.960054414347, 15690.032874929952], [19916.507335904404, 8096.153467278462], [376.1218876586063, 9074.801897058118], [15354.415760435513, 15694.990370189538], [389.5922568857204, 9059.613602876576], [15340.374325133744, 15690.597648655967], [15318.598264763481, 15689.114501710807], [418.46790042042267, 9027.626519213925], [15302.454819389386, 15682.76850629272], [15284.559436638025, 15671.536009216856], [15270.80525074678, 15669.751969094272], [15251.734937984496, 15666.504408687091], [15233.96037161583, 15659.684271614475], [6112.822604414192, 2369.451302944013], [6116.388037532684, 2355.4504845730553], [6134.700468571042, 2337.1008163157967], [6133.569838188123, 2314.76925744483], [6101.870667632786, 2268.435268712754], [429.08703490823973, 8519.480243714264], [6115.779332835227, 2248.481231774291], [419.6170958853327, 8503.986595954892], [6128.121864154469, 2234.454468292097], [405.7265983046964, 8486.872167202295], [6145.682104922598, 2218.499681236717], [385.27509198046755, 8487.924821209977], [6168.565493119764, 2207.282717483409], [346.6641297219321, 8485.902578558685], [6191.863847021945, 2205.3942603266332], [20133.981615401455, 8548.166528126603], [330.264719044324, 8465.805933685479], [6209.95786432235, 2195.149870578927], [20154.182763771503, 8556.244256418373], [324.9780198292574, 8443.636317889119], [6231.295421878109, 2195.3208212403406], [20174.400614449987, 8559.953862861817], [326.32514525554143, 8419.889337622328], [6248.296507710358, 2176.302646475029], [20192.862869109726, 8553.638937369193], [329.2947136173025, 8401.403328610177], [14764.331810582895, 15838.508279954462], [6269.078924212838, 2176.5786026256974], [20240.13073322398, 8513.761874162592], [331.2779042456532, 8381.228800916113], [14760.129286908545, 15852.287342889438], [6289.989443889237, 2168.1524767747906], [20260.656308881124, 8519.027231737651], [331.7646434098715, 8362.734595374874], [14751.498939224286, 15868.990944111487], [6315.614851133316, 2161.1860885280475], [20278.89024606801, 8533.455858317873], [337.0347789856605, 8341.157206647418], [14766.101173265488, 15895.915900163905], [6331.122642722796, 2162.661553509446], [20295.71283888037, 8551.288371709496], [340.065517707495, 8314.905194631632], [14780.039501205785, 15935.285443527158], [6352.7364931638585, 2162.796377772349], [20300.20851806039, 8563.739865264826], [344.1773860612884, 8302.287784854183], [14765.44470912579, 15944.899785008485], [6372.272194618592, 2158.982935616368], [20308.26183068729, 8580.169644604233], [344.5932387385983, 8275.672644324164], [14747.558265145635, 15956.219248379814], [6396.675110868295, 2158.359053110151], [20319.929917473695, 8604.31477560554], [350.8048222013749, 8262.036407956562], [14728.916989304125, 15965.4906712448], [6414.155944316066, 2157.0388291350973], [20325.60199702531, 8621.947993479786], [356.69990066287573, 8242.037233350362], [14715.10934208834, 15967.476566434314], [6432.15606173384, 2160.2605173561024], [20332.694447389338, 8636.49941475151], [363.69527075777296, 8225.154199292214], [14698.85297379666, 15973.607947159035], [6451.443394468399, 2157.7332682356355], [20340.70694078575, 8654.738852724957], [372.40939459053334, 8204.698436021747], [14682.011714326683, 15977.954469718941], [6469.390047790948, 2158.267016484431], [20349.970312406076, 8676.23962152857], [375.8935481389053, 8187.959867035417], [14660.880694907508, 15982.544718058401], [6490.318920254824, 2169.1487414403236], [20358.789630551706, 8688.327554516174], [384.5528608325403, 8163.259501955443], [14643.614846184733, 15983.684232802712], [6511.6504868299235, 2167.0332875188615], [20363.44081570569, 8709.42798180884], [387.1038038266124, 8143.213240203884], [14626.869698703173, 15985.402737863158], [6533.690421209554, 2170.9666264545813], [20369.40914662648, 8725.696092535683], [398.157359279925, 8125.577222673601], [14608.610748258536, 15988.046795954491], [6550.190635391511, 2170.407997209317], [20377.349801070057, 8741.9291350563], [403.9159542027628, 8110.966674398456], [14590.088709386415, 15994.020885088801], [6572.025177458185, 2175.687643959536], [20379.507926625316, 8762.379593531834], [413.0262343401555, 8091.807586660929], [14570.200819856254, 15995.540175860253], [6596.584692314384, 2180.6310799902712], [20381.419132581213, 8776.84587824298], [427.4088897592155, 8072.375087894819], [14557.266220841208, 15998.647540666367], [6611.813963168301, 2183.386253413977], [20385.731328555732, 8797.308775784011], [437.34765794244595, 8056.422396373207], [14537.3973159343, 16001.102486189746], [20388.576327457326, 8813.155576117628], [14525.39584042062, 16005.92935927352], [20393.43804221088, 8828.197392370319], [14507.07191491092, 16008.090245981788], [20398.455125807668, 8848.542719530873], [14487.771431357018, 16008.526618918142], [20397.867686149897, 8865.347032175283], [14472.67395538697, 16006.451103532105], [20400.34558967664, 8886.264970336168], [14456.691625261446, 16006.256593213766], [20400.45823202771, 8900.540573635284], [14435.043110662838, 16009.784726751473], [20399.406587475794, 8918.725260476465], [14416.290509597282, 16010.911010673153], [20393.98961870768, 8939.462856467493], [14402.114119759877, 16003.73558485342], [20394.418667863356, 8954.697123359481], [14388.017205600161, 16004.106954764487], [20392.34622451372, 8972.832101023465], [14368.652993765078, 15996.029571503925], [20391.425853022258, 8990.366463334445], [14346.469514973462, 15993.752810051257], [20388.0654821099, 9008.846149589692], [14333.00051033264, 15990.893064139935], [20379.13008082076, 9025.688990785944], [14316.21987079794, 15985.362851952901], [20379.61827080988, 9042.249600369483], [20369.822811807855, 9058.17165708504], [20364.601557804388, 9075.900059914362], [469.9391406268114, 7566.715528543253], [463.0268007791601, 7552.920903486869], [452.00612028699834, 7534.040139674995], [445.2443311511306, 7519.924074326904], [7146.6109985867515, 1992.6445989003696], [421.84304700244684, 7510.065167702909], [7159.8677651953185, 1976.8961989489908], [382.5442533080932, 7513.9239341215], [7165.821714711958, 1956.3697172604443], [374.14016608090606, 7496.199033526558], [7175.010261309799, 1939.1741219240648], [353.5105130751617, 7478.394829836645], [7174.279084376642, 1914.144827629585], [362.89617421198636, 7457.273407700646], [7145.906581610325, 1871.0252916285535], [362.4439568147063, 7435.203097518912], [7162.8078592862, 1849.808449463715], [365.6394290748285, 7414.459378105181], [7175.026353977271, 1834.7479135067842], [367.8393315055873, 7398.202552780014], [7192.2252048677765, 1822.4655859615596], [368.13626537425444, 7370.930008178286], [7214.252980733174, 1813.6383301002788], [371.3473970472114, 7355.248060588783], [7233.201685894164, 1806.1812421310751], [379.90621204534546, 7332.119361177087], [7253.472668007715, 1796.5929512525036], [378.6474688031012, 7314.3948931616615], [7272.609014879796, 1791.5345817318012], [384.8088702787645, 7295.389054290514], [7293.0804910989245, 1784.82069640205], [381.4945300070103, 7276.111986767151], [13846.272667530691, 16127.10342989242], [7314.987685709377, 1782.8977889753878], [393.4062206684612, 7255.461487921653], [13839.377928968868, 16141.407178199239], [7332.684950907831, 1779.5615953703818], [398.46925636334345, 7238.417559674097], [13828.8735561691, 16156.79777556524], [7352.84089939727, 1771.5564559055201], [404.8423895833548, 7216.753330816049], [13818.94804816076, 16167.220882505877], [7372.726241605356, 1767.9601857170928], [403.6663975744741, 7193.422782017296], [13823.404476404772, 16192.262300098373], [7392.736699537607, 1766.2923627448326], [412.2460529038217, 7175.534634106065], [13844.77973022568, 16229.325481541018], [7414.053769231541, 1760.1480903972697], [419.34353053360246, 7162.413568821765], [13833.059927014052, 16244.596134570922], [7437.342752432451, 1757.5384460045025], [433.78560543991625, 7141.217005544109], [13820.790770038147, 16255.143043089542], [7456.851856336347, 1759.1377345913497], [439.35925587185193, 7119.201981162507], [13807.297408752842, 16267.169785671023], [7475.885255398112, 1755.4437391292304], [20620.567913073814, 9612.995547887782], [453.45227877248544, 7106.340325732861], [13780.884430506732, 16270.964296128659], [7494.843752873247, 1758.1796251609048], [20636.63373522903, 9620.15915280339], [461.5195226832293, 7090.938178319251], [13762.435970726772, 16278.018134107551], [7518.101123471744, 1760.8153545745881], [20655.613850185066, 9628.439106506848], [472.3855822517071, 7074.29668991128], [13745.113427577773, 16285.835906519642], [7536.432950752787, 1758.6144239403948], [20676.034985174192, 9632.240896837582], [13730.138656688854, 16285.519141011144], [7557.103627810837, 1763.7546207666164], [20695.60170216649, 9627.947206926707], [13710.05964396405, 16291.105534933391], [7575.744178945548, 1763.2103141020634], [20725.550052840495, 9608.702373013279], [13695.321982316906, 16291.76800438168], [7592.410927174264, 1764.4021249446669], [20767.97018442303, 9588.525941577216], [13678.744011946139, 16297.22379080893], [7616.379190018168, 1777.4211883172393], [20787.836774870055, 9601.748958872311], [13661.774755481398, 16300.831304941501], [7631.031812203815, 1777.4744848040573], [20801.682217928465, 9612.02832244619], [13642.775604518363, 16299.898620972235], [7652.940966430935, 1784.1098635672824], [20813.304868403473, 9632.421730984206], [13624.602043274906, 16302.574404655345], [7670.263235804276, 1790.3125758288952], [20823.044669795665, 9652.345981563645], [13607.105672940961, 16304.680590006785], [7690.929271485074, 1793.2159388706204], [20829.165891860845, 9671.388153754437], [13596.224667035975, 16303.84719430274], [20834.023623703397, 9693.074539250636], [13572.958552094991, 16306.696347747056], [20844.16708750534, 9707.891570184729], [13559.695070307003, 16306.976880410773], [20851.739389039576, 9729.759113173175], [13539.852615268552, 16305.425273591682], [20856.64968543127, 9743.437443374918], [13525.79930129787, 16310.002355472185], [20860.667280104943, 9764.483049233764], [13504.576771487948, 16304.284395777271], [20867.96515647939, 9776.875028245297], [13489.578556662193, 16303.750547518866], [20873.548957738793, 9795.61148421382], [13467.640507346834, 16302.69272731457], [20881.46169457864, 9810.670260049636], [13454.31408580963, 16300.284462677286], [20882.687757940497, 9831.625592892116], [13437.208574133576, 16292.713717218605], [20892.44809001556, 9847.480983006186], [13421.775393897551, 16290.424430664832], [20894.631224171724, 9866.420389394305], [20896.35592814698, 9885.338531015906], [20899.585331438808, 9902.341973720293], [20897.208146930905, 9920.448052948108], [20890.552702421206, 9942.778143904492], [20888.51688609703, 9956.302174217213], [20890.467598975636, 9974.428429419379], [20886.753489482682, 9990.979051634902], [20887.090485194232, 10009.045776243758], [20885.96316350554, 10030.217525330605], [20884.035680228262, 10043.349829086423], [20879.127804716467, 10059.21129036622], [20878.990548176924, 10080.958591385832], [20871.980962752365, 10097.280888931738], [20869.78362025146, 10111.502971123584], [509.92778600519523, 6489.101431403193], [20861.869298025034, 10127.35014998258], [500.11856112547684, 6473.782176042703], [485.34235415852163, 6454.560833504802], [473.62078942230437, 6445.102639173769], [460.00953890034, 6432.155960412492], [444.7262769113295, 6425.473806329857], [401.5472585604293, 6434.008810983156], [389.8233110314468, 6419.199519064685], [377.0962996011367, 6403.385296780034], [372.25471018324606, 6384.232662658294], [365.0032507472206, 6358.782460348593], [365.8979213545099, 6338.162832773582], [363.2396835774416, 6321.597040020191], [364.87622530933004, 6302.60545081817], [362.91295940440614, 6278.688676884893], [8331.41325909074, 1549.9188633909798], [364.2760896211257, 6263.214466444246], [8340.940691291471, 1530.3670349059394], [363.05800285818987, 6237.457335911022], [8346.190361729125, 1511.6238655616762], [363.8308119579451, 6221.067388787313], [8353.579027033411, 1493.777423012536], [369.813152934541, 6199.212552052573], [8357.597509966465, 1472.8981754478882], [367.8915681823855, 6182.624510657624], [8364.318363133003, 1454.2226560668496], [368.4614760730183, 6160.861504886736], [8344.78204566345, 1429.8094818275422], [370.36110134480987, 6140.542359013867], [12904.332184789004, 16463.252114421368], [8321.467311004992, 1388.9257307375374], [377.66475563833956, 6122.847713905037], [12896.964603666915, 16479.452158129745], [8334.741321556852, 1371.6498448319035], [381.061370638432, 6101.832153629221], [12884.325816552038, 16493.460047925444], [8350.292581760441, 1352.2705854112864], [392.0687168269651, 6084.996547327581], [12880.189634876559, 16512.515289328003], [8370.397995196516, 1337.516139197076], [396.55316376884, 6062.222487218707], [12871.972410151619, 16526.37392456431], [8383.245446516783, 1331.7429034683446], [400.7970799448667, 6048.141257249052], [12877.21973842883, 16548.085127784143], [8404.88922419073, 1316.4660258293734], [413.5404454107629, 6029.780615427793], [12901.717474468518, 16577.175667217845], [8423.763951282948, 1312.9232506864646], [418.6212322078645, 6006.26395221203], [12901.983717980445, 16604.771221778326], [8445.424039945588, 1300.103440407227], [426.367041084799, 5996.274579018616], [12886.862800842966, 16620.27608584441], [8464.85192843317, 1288.7469369248429], [434.39658105163835, 5969.406952975347], [12874.630057544098, 16632.85670907353], [8485.302556451992, 1281.5102734411194], [444.5920659004478, 5959.890616350778], [12853.279250559746, 16638.899698082474], [8503.659373152186, 1272.036313988734], [455.94727488444187, 5938.486414554005], [12840.683524695924, 16647.238671587897], [8520.002784840995, 1268.6070749704086], [465.8976012165658, 5920.545067037776], [12824.43789198785, 16653.688739489764], [8536.335056144046, 1262.1313760679623], [477.11382724158466, 5905.662379716319], [12804.734562842874, 16656.81517693255], [8564.43224325555, 1250.7011302526516], [493.35817592032254, 5886.30775410487], [12789.130167735624, 16667.61288386458], [8580.591127285152, 1246.9862851652724], [503.56386615824886, 5876.1332445551525], [12775.773980877595, 16669.85803088281], [8597.957110963995, 1240.8597369388444], [517.6212739960756, 5855.382068386913], [12756.203851587139, 16673.27790912011], [8619.480175986071, 1240.703625445487], [532.5723791249329, 5840.940289468213], [12742.966820107657, 16682.208934224735], [8641.339794470463, 1238.5994924802217], [12725.005904436228, 16693.267823071918], [8664.804689179757, 1232.9449778400303], [12708.513038337813, 16695.352533270576], [8679.87372344674, 1230.2205219709722], [12693.026701134979, 16701.758251687133], [8700.672806178103, 1227.0645506473666], [12673.036609278759, 16705.099950397416], [8719.35955044732, 1228.9837047656765], [21145.066492902, 10705.229591633863], [12657.553124928148, 16706.45376701324], [8742.498487147386, 1227.6432613843645], [21159.668309415574, 10716.916370412422], [12643.222356251208, 16711.0747560687], [8761.740922726225, 1225.0843266164884], [21180.498956593685, 10725.875436573959], [12622.770518336329, 16712.334470120695], [8777.874223751132, 1225.263315168675], [21199.25390235707, 10729.27050519659], [12603.513768836623, 16714.997036309243], [8803.008745451807, 1231.6623981153534], [21215.237300633686, 10739.446605879784], [12589.510290227248, 16717.46310151738], [8819.216146521503, 1231.0201244303316], [21235.75282195839, 10740.025781404547], [12571.646865920746, 16714.530040697486], [8843.462529578013, 1229.8246902799], [21257.65305162419, 10735.972744801402], [12553.481035634526, 16710.171327225282], [8862.67914400238, 1232.6061152525363], [21298.197534294333, 10693.49315927294], [12537.417619231972, 16714.265122640034], [8884.697030327516, 1237.1371925535204], [21320.743863848038, 10699.798411222728], [12516.382701909752, 16711.838989215874], [8904.695419787196, 1242.5937338932417], [21334.448792692972, 10709.418280383543], [12498.136320038466, 16709.635491405003], [8923.030654271133, 1248.8052769819042], [21351.4843056635, 10725.983038898179], [12481.825532230781, 16708.964029645867], [8932.063824443496, 1259.1270033601031], [21366.184707829612, 10746.957358705113], [12466.521956510842, 16706.309418671386], [8956.089879928855, 1271.7027792062727], [21374.85639700177, 10758.868593214167], [12447.712075485033, 16702.585315978882], [8968.97740806907, 1276.3948684747738], [21385.583983230987, 10777.758065713831], [12431.084494078881, 16695.91431101717], [8991.525380180101, 1283.9433375450317], [21395.910308978986, 10788.215247746353], [12410.263820779626, 16692.603964636655], [9007.10431850073, 1292.5733685882296], [21401.337596644298, 10809.813129850518], [12396.973909318214, 16690.424501474918], [9025.885131154093, 1305.2698145727045], [21413.50263434567, 10828.076129157154], [12379.28053730412, 16682.611697207263], [21422.286756921094, 10844.715295798], [12359.074778444832, 16675.198324009776], [21431.412818247103, 10864.732041019888], [12344.42507159221, 16667.20421206209], [21438.696660512127, 10879.101829366322], [12329.26810851274, 16659.969120233814], [21444.755839128746, 10894.714285248425], [21450.606253655627, 10909.942244587583], [21457.55363130616, 10927.046513193607], [21462.7491025856, 10945.957374460238], [21471.65815407515, 10964.50399353428], [21472.46572232968, 10976.95433250023], [21477.96225325775, 11000.4963676997], [21475.421099890722, 11021.21862091808], [21481.244005208602, 11036.721990877384], [21484.37036017014, 11051.922553598095], [21482.956900438294, 11071.74334664314], [21482.901186537463, 11089.117339862423], [21488.779133681324, 11106.28687202945], [21488.43263435166, 11123.165505394456], [21488.916977637447, 11144.857437263097], [21482.3594731302, 11159.674782057817], [21482.397378541646, 11177.475889657042], [21481.180819110246, 11197.191108640836], [21480.977707659826, 11212.970615543745], [21476.104752582964, 11231.724027701392], [21472.532353739953, 11245.633252503176], [21460.12639625126, 11259.046893938677], [21458.099651871948, 11280.773381003266], [21453.722034174833, 11300.381372116448], [21447.48138025799, 11310.585927416716], [547.7865778367268, 5055.7722518876835], [21438.220901990426, 11328.780272340955], [531.3783156677382, 5044.820065953594], [21430.820979353855, 11341.31332374469], [518.3966093349736, 5033.998541344248], [504.532219724264, 5025.018233913637], [494.99506405496504, 4990.0863061178825], [474.1649107027333, 4989.382798036677], [454.17864103557076, 4987.772410196456], [422.4642724066507, 5025.047051037254], [377.6572569954442, 5046.873859441519], [362.90759601502214, 5029.408297640941], [352.59945202537347, 5010.282466634235], [345.55550072947517, 4983.41774538756], [340.30697662744205, 4960.959386765928], [332.547811852186, 4942.89301695599], [330.73184624512214, 4918.559345855319], [325.9810731612379, 4900.398450069566], [325.05439759325236, 4879.0488389857055], [319.0460426856298, 4858.616082359134], [319.6738918692572, 4838.673351794394], [318.66598807182163, 4814.718360777013], [313.9527841855306, 4799.577063786215], [317.6507287870627, 4780.422602397681], [314.9459326209035, 4758.568369232322], [315.38002668041736, 4736.8098370130465], [319.5634444979951, 4719.802171851246], [9851.708041193779, 994.2219103492971], [315.51139059930574, 4698.461330634193], [9850.492048611399, 964.2726228955144], [314.3145252825925, 4681.077489039977], [11657.244307404733, 16895.675216942967], [9850.918079159339, 941.1198991137207], [317.4106402825564, 4659.995841094962], [11620.537697964231, 16912.856756052875], [9842.875175537658, 917.3009447210352], [320.4126882693963, 4635.465116694424], [11627.14454235672, 16933.55194613259], [9831.712741157738, 893.6362991671776], [329.49175562208984, 4616.781964772992], [11632.413674075971, 16955.59576130443], [9793.832383845118, 883.8374058552436], [328.43188429565635, 4598.187363658944], [11645.58538634365, 16974.74577947089], [9733.40745512757, 863.6803463284741], [340.6201286318246, 4578.6657257757615], [11697.015116051422, 16998.879680651415], [9711.922374060261, 831.1066053362738], [346.4100252018543, 4562.537978081033], [11729.692993180128, 17032.905611621885], [9721.440336921485, 803.6918135951855], [361.52971255697776, 4540.012035117485], [11713.592018682277, 17051.546212629648], [9741.047997823101, 786.5692628913384], [368.86004970257636, 4518.419261300907], [11701.128986214753, 17067.314071611472], [9761.006638175575, 766.4867623989994], [382.8275508644292, 4503.705821816227], [11681.14183391782, 17085.19026053656], [9774.234787233057, 744.3088610564009], [395.3154711879324, 4490.392406239436], [11665.258009068202, 17089.284167757578], [9800.79206800519, 728.0620292310778], [401.1381052345969, 4469.543361962249], [11646.268919699127, 17102.704938100505], [9818.305364400265, 720.1503509465838], [413.7098054175731, 4448.803855650331], [11627.183965439792, 17107.06378621768], [9838.969473425299, 704.7066798784654], [428.54925268760417, 4437.668444306328], [11607.267477054847, 17116.22375155732], [9863.169519281597, 691.7135538769653], [438.4599397893762, 4422.4674490772595], [11587.623107614694, 17118.29790185523], [9885.023627559072, 679.6591551924648], [450.34489716775715, 4404.757376870955], [11571.047924277722, 17123.07940140355], [9906.16673633724, 677.1782129650528], [461.81220517330803, 4391.360285881761], [11553.451989432797, 17128.959580048482], [9930.234320222633, 663.4085104592668], [481.67585438652895, 4373.240501506778], [11532.333483142196, 17133.995802214107], [9953.729002309963, 668.9856483882759], [492.5700225030305, 4363.982283520832], [11516.884887872031, 17138.074248480116], [9978.704540466657, 659.683538832498], [512.8418722683564, 4351.428827947588], [11504.970771123073, 17141.77687212985], [9998.867473311722, 654.8405301400344], [528.3759186960524, 4335.5908216721145], [11484.13241587684, 17144.996594365162], [10025.617228326038, 656.112981276965], [547.1495693427278, 4329.143745756679], [11464.74180097098, 17149.27956125728], [10044.918017445947, 655.6238009802182], [559.632865005522, 4316.333315292839], [11452.916626512306, 17155.887542488577], [10065.204432721483, 653.1395241314603], [579.0220395267243, 4306.0333669529355], [11434.51000122982, 17161.096541964187], [10084.559356864891, 653.6703718338977], [584.2864968117792, 4266.4181250571855], [11413.610730260494, 17159.55274193664], [10109.169556585839, 651.6929269467655], [609.1336336113745, 4253.149045174534], [11402.86369124637, 17169.04694153738], [10127.965906220721, 651.7419689193484], [11384.33575039939, 17180.582618168177], [10150.47387186205, 645.9112664545828], [21767.06583129859, 11988.504858412314], [11363.41948530241, 17177.586188645568], [10173.638430475723, 645.3000749750063], [21795.267643361003, 11979.576792340027], [11347.439515257138, 17178.811837353976], [10189.770333192078, 651.702814399061], [21811.940719675156, 11968.794835460605], [11327.128053790191, 17173.019273769372], [10212.371054747142, 659.0900930235803], [21847.35630008194, 11921.200179317413], [11307.183522782987, 17171.612261079747], [10230.638420640258, 663.0486366557889], [21886.34755597962, 11913.461835912545], [11292.566071580513, 17169.07808146323], [10252.59045368142, 672.8660292733111], [21902.79804144916, 11930.693839768966], [11276.060106119607, 17162.163726511353], [10265.582196970121, 682.4741536621004], [21918.313873822684, 11948.231858812069], [11252.838325799676, 17156.45162570657], [10288.350427113357, 689.9954518327722], [21929.01350860379, 11965.170477651875], [11239.461561669712, 17152.738307149324], [10306.258730303263, 693.7232247055799], [21938.220483363373, 11983.131809071434], [11220.133866344579, 17146.094819855207], [10324.037086890778, 705.5991834144224], [21947.599808661267, 12001.310612966714], [11207.358609392773, 17137.04574027029], [10344.11385863088, 718.9925936222135], [21956.99410272215, 12024.426970891887], [11186.734011174645, 17133.68805164544], [10356.658885335899, 722.9325566444313], [21963.295272486866, 12040.539543798455], [11167.325077620568, 17129.722537138732], [10375.238891155226, 729.8440864033473], [21969.694351451704, 12057.128728362906], [11152.658737820806, 17123.767078722623], [10393.054148337687, 743.027983233711], [21981.128817084595, 12077.463022336044], [11138.57531358127, 17112.576250910817], [10404.900465521263, 754.1650847578712], [21989.187548992108, 12095.038229154452], [11122.200991350575, 17092.652417398145], [10420.48783210828, 767.6108544206072], [21993.10045629274, 12114.050101224013], [11106.192893378553, 17087.080190284178], [10440.497250367654, 774.3327724779665], [21996.861399938352, 12123.672164051299], [11094.072018394363, 17077.064245856396], [22008.822779037408, 12143.188460069621], [11078.078020946821, 17070.723956279166], [22014.1729333048, 12162.080754308961], [11060.936837412533, 17054.10154403787], [22021.083960184827, 12179.656200525817], [22025.110195261776, 12200.958916881471], [22030.06135652878, 12218.463898579736], [22032.633541343617, 12233.859875505179], [22035.48009766999, 12253.508400755585], [22038.22744070436, 12272.518157685001], [22043.098036992713, 12286.955642390792], [22040.700183768175, 12306.782709364517], [22043.624032905092, 12327.107993457903], [22044.91515139281, 12340.465783803666], [22043.29508458462, 12360.03208379075], [22043.404838193906, 12376.358462456992], [22042.135477269418, 12395.525111809286], [22039.311586599448, 12411.992212378944], [22035.050358686713, 12431.950934358174], [22032.690071400953, 12449.207665377267], [22027.470474313595, 12462.303160919662], [22021.085855277837, 12481.104817611078], [22008.689516650164, 12492.679388801946], [22006.05977284303, 12509.476878676971], [22002.966587929754, 12525.184066505695], [21991.174286199268, 12548.025157553086], [21983.960918457597, 12559.313566467696], [21980.002230835147, 12573.405590060021], [628.7018591808155, 3598.7409279719577], [21967.90699757065, 12586.407890194649], [612.8007618848933, 3588.404396344762], [21959.633964595152, 12606.743478868244], [597.1576328803785, 3575.8990605654835], [21952.56867937895, 12616.123189065023], [574.7686649176758, 3580.834796836338], [21942.67475410353, 12634.661596117076], [534.2496942160651, 3592.571859802876], [21932.266812616494, 12650.841534700507], [520.0435256857891, 3574.3400665037043], [21917.927275150665, 12662.956405363278], [510.60869119351264, 3557.323223537067], [21940.296830539824, 12710.469379858463], [504.3685057122493, 3540.580863713112], [21921.775733803515, 12729.932408133056], [501.96396122395527, 3518.6578496512666], [21895.81539925933, 12731.694407838862], [493.26529734488577, 3495.9931974812644], [21872.777952184202, 12743.539004458842], [487.6740825769957, 3473.5914110508456], [21850.196553284535, 12748.812056297262], [488.6494543363806, 3455.1495259436197], [21822.63044408115, 12755.14601825425], [487.20340524916537, 3434.5024426332675], [21800.279927811003, 12752.605753674288], [490.4998296024278, 3410.803181040974], [21773.396311166347, 12757.537057293172], [487.7906505916035, 3392.4091116971686], [21748.363635414513, 12751.299939154589], [491.5562721990282, 3374.0200580167875], [21727.265488034813, 12750.138832290628], [487.90971347584855, 3355.972016484855], [21699.553736023838, 12740.241253568733], [492.6159354788251, 3330.3849272561492], [21680.34718628123, 12726.931434876431], [493.4629374174401, 3314.4234371881175], [10484.106309600873, 17255.351360830362], [11144.482613549917, 503.1309931008436], [21662.265803390066, 12716.333984305005], [495.704971022089, 3296.1877163992613], [10492.449517750763, 17272.37682902525], [11143.228957921383, 482.77471095888177], [21642.751604256337, 12698.48717417178], [500.0346037650015, 3276.8760660272965], [10510.98398341122, 17308.992923996935], [11118.866411190596, 456.96202797969454], [21631.59159412945, 12684.2421568922], [504.8898111822782, 3257.6341331394506], [10508.046966718044, 17328.44192316904], [11100.611806674278, 419.11081676092], [21616.392848979565, 12665.799618253397], [507.733193034539, 3237.974741004], [10493.309091683244, 17341.89877114995], [11119.704224858317, 402.01505437033484], [21599.953913049423, 12655.802469028946], [510.7553689406486, 3217.710234007798], [10477.432352682692, 17353.675307204074], [11131.1062102617, 381.16011045125197], [21583.352058913326, 12642.998366813], [518.0119150914252, 3198.370134607452], [10459.957335292595, 17357.493621440546], [11148.609614027431, 371.05742897556047], [21570.251059143455, 12634.484305462945], [523.266283123754, 3179.6606638024386], [10441.140735309105, 17364.270528640394], [11166.146804297809, 358.1309639183746], [21552.48825509404, 12627.761206969677], [531.1165126292035, 3159.6119648529566], [10429.171177361743, 17368.316190752696], [11191.902667785878, 349.6008933786652], [21540.1624063818, 12619.3876236488], [542.1726870579878, 3143.4458229427983], [10407.220819174312, 17377.33225558314], [11209.080653627054, 336.6812091562315], [21524.681860081968, 12617.024339697527], [547.6375872710487, 3123.053072421957], [10389.096034000511, 17386.215767589805], [11229.577627270948, 329.0278858061938], [21507.86161979288, 12615.995830454456], [560.6508027911186, 3108.1365348185063], [10374.313775176997, 17388.355237294658], [11248.352865109802, 324.86497649984085], [21489.412831661408, 12615.717550672387], [565.1061773289694, 3085.020437959145], [10359.675349224592, 17393.682503481366], [11268.648667571368, 317.07209302074625], [21473.851673362078, 12612.256381893036], [576.9700249460293, 3070.6418335351045], [10342.861443153233, 17396.397099077672], [11289.658259865944, 307.2389683573856], [21451.888782632537, 12611.578310843935], [588.1923041193513, 3050.8538256162137], [10324.964788021054, 17399.030447516445], [11307.920753338258, 300.53550029717735], [21438.344031574554, 12606.26370311898], [597.0620291859377, 3033.5848811683245], [10312.709185061045, 17409.601227186737], [11324.522251198883, 296.4797491725476], [21423.76490495901, 12603.135758451768], [608.2445333907381, 3019.6699768510007], [10294.09457684611, 17409.251454123674], [11348.649441226036, 291.0643548083317], [21405.311253797263, 12599.137209426815], [617.4487504034769, 3002.5825212723867], [10274.001283584046, 17411.57817272222], [11365.44532601966, 283.57789298301213], [21391.52636379632, 12596.778145646822], [635.9195260287961, 2989.485608795396], [10257.606837041792, 17413.597390473413], [11385.243198993034, 283.0320869740681], [21375.382229369832, 12593.431404331233], [647.1743291330058, 2974.551013638644], [10238.233506310615, 17420.338388766482], [11409.053959210403, 276.5011321262864], [21355.967987232958, 12592.343029339885], [660.9191819340922, 2958.515551106626], [10223.388417453389, 17419.283180138475], [11425.766060743481, 274.52687579684425], [674.8469291318906, 2942.1495473066752], [10201.247457952122, 17421.811722366925], [11449.952153009595, 268.9958635926014], [690.6954417214729, 2930.189642100944], [10189.813520955737, 17417.533497949917], [11471.00625543797, 268.3689489723183], [708.1068158466369, 2919.9094434020517], [10170.623215125757, 17420.407279459847], [11491.061567518162, 269.6128586171544], [722.3650602044072, 2901.5596077211667], [10157.269406401436, 17418.9810385381], [11510.17656944471, 266.2097949855961], [740.2973373709247, 2893.8503543724364], [10134.316357802949, 17414.589420466888], [11527.117524439469, 270.86035489247297], [755.8182788692648, 2881.9163888580515], [10115.836944905459, 17413.268424896087], [11552.441352629452, 271.84649323893245], [774.9276053799549, 2871.8238578687597], [10098.247084847419, 17412.00142709131], [11568.848528601695, 269.5104202812072], [791.4229775896529, 2864.247018386668], [10082.200866309693, 17407.78164202528], [11587.400930932607, 273.3416273914918], [802.8357444963185, 2821.5374636860215], [10066.524706478114, 17407.319347646175], [11608.809672537027, 277.04659389925655], [824.0927032761974, 2814.0504909643205], [10052.674489378813, 17400.05529601415], [11628.389372419682, 284.9236481990665], [851.1887984438799, 2812.2745542065823], [10029.891436982783, 17394.148367972637], [11649.855573264416, 288.85226788470754], [874.4624034544686, 2808.524906086066], [10013.431584318168, 17388.596990343125], [11671.09714624728, 296.13149286428234], [21131.490108934, 12687.088308067236], [896.7138303711545, 2808.226770047011], [9997.446218086872, 17381.34757123585], [11688.813088449184, 299.4121421572927], [21120.96453650715, 12715.682684988657], [923.584792980575, 2811.8101993674063], [9982.598223403678, 17372.73640610304], [11705.586388382246, 307.56182937917765], [21118.430012704805, 12734.255941387702], [945.6270239646547, 2815.241565664648], [9965.71256289992, 17363.131165689323], [11721.68887603446, 316.6801876278478], [21116.652200978133, 12761.764419934712], [971.373682702193, 2819.2685219709238], [9948.666961814393, 17356.57401255844], [11739.055811336613, 320.4294552655774], [21122.38243110082, 12783.288280399836], [996.8078722259961, 2827.3015181946685], [9935.502561448608, 17351.234754138335], [11757.860983334831, 328.9981146263308], [21135.52277055441, 12805.816175378597], [1015.274309503613, 2837.170558941725], [9919.62323109794, 17339.37857445606], [11775.436977125122, 340.2297941670695], [21159.347061630222, 12830.800230363879], [1037.758288503741, 2846.2188854166016], [9900.127238351968, 17328.84584552393], [11789.490425320459, 351.21312413198757], [21178.95708681282, 12853.074959519086], [1061.5546396706486, 2859.7998527397285], [9887.447579478263, 17317.183142212016], [11806.732859166572, 357.46013504453003], [21190.60981040867, 12876.113008043292], [1076.352623648243, 2875.961821255012], [9870.599957564496, 17307.340005225677], [11824.052897308837, 368.3996333380928], [21188.482260663295, 12897.357178972656], [1093.161803572555, 2888.0218802645395], [9857.455429361551, 17297.734249058238], [11840.820478141191, 383.84327144460985], [21187.095504393103, 12911.396268282871], [1111.5418831693241, 2903.7559803991753], [9844.401312298956, 17284.109375811764], [11853.45733326266, 394.6203385872359], [21180.08524201438, 12928.530449884682], [1121.4319870051695, 2921.890438753908], [9828.402500433265, 17269.644995720853], [11869.18800011021, 406.1921283774718], [21169.766505875275, 12939.482685793628], [1132.2640830877936, 2940.0760341086716], [9815.538866742165, 17260.59619372248], [11883.525716082542, 419.86385545210214], [21160.434599982924, 12956.680463315657], [1140.0574667574838, 2960.2991022395145], [9808.541082735057, 17243.53179309421], [11896.156735529075, 435.23667791549815], [21151.06848591764, 12968.540840916161], [1142.6384396025678, 2981.712212448416], [9760.620337986038, 17251.44482725626], [11945.23491926759, 429.3728091887606], [21135.09888923762, 12983.952322517871], [1148.341146381339, 2996.951083847205], [9748.462133754045, 17228.257965253724], [11955.590584679274, 447.1329352312605], [21127.132849266287, 12993.322112590016], [1159.3238331521861, 3017.539736443461], [9741.519584933645, 17204.687648857158], [11963.192862190888, 474.0822617621743], [21113.144405017374, 13003.668382430711], [1167.64478720224, 3029.6142840556276], [9732.796481566387, 17178.69743957327], [11970.006150961737, 498.05248554135324], [21099.563040443114, 13018.381091470743], [1175.4748232401907, 3043.482384949195], [9732.697987334686, 17156.46092287675], [11978.945264789625, 515.8848328017339], [21083.442410456017, 13026.623922629893], [1189.351922988193, 3057.7534324857406], [9725.323400187888, 17128.350414617482], [11975.43971352547, 541.6530576357909], [21070.958320325706, 13035.049822167377], [1200.6836891570129, 3064.235861141671], [9724.26116973802, 17109.84369649677], [11983.494423732627, 566.8755270671973], [21054.11603368481, 13046.566397354909], [1212.9182130995905, 3079.8900172337308], [9728.341933025164, 17081.761137262132], [11974.812145662261, 591.4828843566356], [21041.85368729278, 13058.412985078525], [1227.7215807890752, 3091.633968305745], [9732.540681983926, 17056.372509191628], [11974.795759548084, 610.958867646521], [21028.021288807155, 13060.452220494044], [1241.3836050523678, 3100.2019102732593], [9734.238484459347, 17032.557712308393], [11963.966367703164, 632.7785922784242], [21013.91249127849, 13072.69845458641], [1254.6027426630026, 3111.8903238310304], [9744.897203465109, 17008.127184642886], [11955.917980084429, 652.5280791117984], [20998.582934768754, 13077.119204265036], [1262.3453389444621, 3126.355912974308], [9757.19491192419, 16983.548509376007], [11938.79946302285, 670.936976899131], [20984.93263958511, 13090.653250821924], [1280.1099892564816, 3138.3592532949115], [9766.30585872312, 16967.785451349162], [11924.756503688288, 686.8380915701564], [20965.58058961993, 13096.163057612168], [1294.1711989548057, 3148.0052045878547], [9782.536741484771, 16947.22923342252], [11911.946854102425, 699.4151347196312], [20954.767762781586, 13101.355683339003], [1307.1782475283835, 3159.2342226493056], [9798.062081178301, 16933.016070691054], [11900.262685787398, 714.244103739853], [20935.666890042135, 13107.468556435342], [1321.2976040241774, 3173.867319942772], [9808.633491778746, 16913.042125903507], [11894.754201086587, 725.52169774301], [20915.193180809263, 13111.983133817645], [1332.673813203699, 3182.0613780768763], [9827.389965110924, 16897.188765105384], [11886.631669210386, 745.7102302246203], [20899.723386087222, 13119.565339866356], [1343.063999149599, 3196.16668489945], [9835.265198705136, 16881.56968745528], [11885.842638311791, 763.6891055512242], [20886.143078190624, 13121.817584164819], [1358.4502483919496, 3203.0981293298246], [9848.267408479354, 16862.792901216453], [11885.215361117269, 780.2060805778019], [20865.303933862248, 13127.864808644837], [1373.9301577181323, 3218.2372385541094], [9856.035906144301, 16847.975547329377], [11881.507097223424, 795.0551797503722], [20850.457320896443, 13126.674529936223], [1388.5022351250518, 3229.465286526509], [9863.612782516167, 16830.913750455366], [11879.694483677042, 810.2642342896725], [20833.156723949476, 13131.984746538626], [1401.8949680234073, 3239.789983177383], [9871.238217052422, 16810.54032580438], [11881.249338763067, 830.7137692821852], [20815.31441061932, 13131.141495169373], [1411.1222627718234, 3250.48968377235], [9875.466859004344, 16798.157069614652], [11883.405525606708, 842.1214251939673], [20796.936470727553, 13132.865908666718], [1427.4042588486336, 3263.115220915759], [9882.246163178701, 16775.728092808975], [11877.498876878642, 857.4193399731594], [20775.97077881836, 13133.6950836537], [1436.4927063027862, 3275.704995049222], [11869.428213190055, 880.4387024716707], [20763.550257923198, 13135.497621607326], [1453.9798571588472, 3287.490909963235], [11877.365102455136, 893.324615636142], [20744.946335974266, 13135.37390251737], [20726.15872885636, 13134.84811110582], [20712.97309454449, 13131.822239698755], [20692.546247080783, 13126.84783615041], [20676.577493283432, 13125.956514626538], [20654.215375655214, 13124.733912385942], [20640.38327968237, 13118.210512297694], [20608.577709357953, 13146.963974191516], [20591.086942552705, 13127.156880458031], [20585.252941684215, 13109.324181539792], [20566.91483378678, 13090.92060174793], [20556.76417214761, 13069.908114154357], [20545.28552086104, 13059.65083173252], [20524.702828356414, 13046.806327226834], [20511.799020023085, 13034.69995038127], [20497.248152951594, 13031.349369241827], [1776.6068994114175, 3293.7780063890677], [20478.431523523643, 13021.987327676557], [1794.9107106036972, 3272.555273180711], [20469.6649129407, 13021.824588585878], [1813.209073805716, 3259.151425516058], [20449.211745249457, 13013.60451214161], [1824.592537441873, 3241.553514806961], [20432.995590106235, 13009.89168433944], [1840.1302982121706, 3217.535358963156], [20419.838795845862, 13003.647885359242], [1847.615673956112, 3193.4043552401126], [12198.414538627607, 1120.4671228705847], [20404.08526073245, 12996.869122341857], [1849.3998811842175, 3172.7652551204374], [12222.327236525016, 1109.5578817782807], [20383.167251886334, 12990.052845887752], [1843.5697329724208, 3146.889459064405], [9540.2466785562, 16510.252588831063], [12236.386787582305, 1078.6800360075722], [20369.015640118858, 12986.732323961973], [1843.326505789184, 3126.36229647437], [9523.020172957215, 16524.924110436958], [12253.908458594, 1045.4577999956964], [20361.27363629453, 12981.72292736944], [1845.7401073118672, 3102.5201611912344], [9521.331120203598, 16553.170790443808], [12276.066440502997, 1020.0144151787099], [20337.793519059196, 12973.884011707472], [1850.9655513968319, 3082.094327109866], [9510.256791220047, 16590.8537185475], [12297.101971446304, 1007.9509089142375], [20322.90541630122, 12971.955280389404], [1864.4171761575853, 3067.486207638489], [9497.016899068141, 16602.223556669516], [12315.774914501933, 1009.2637270374398], [20305.557195464033, 12967.332266704034], [1878.0356055141892, 3052.1456478817563], [9478.328880311921, 16609.894798299472], [12337.299550818396, 1014.4937351309927], [20288.35436102166, 12965.64184302173], [1889.5281025187578, 3036.601439914084], [9461.055989189888, 16606.345979064412], [12355.47287909058, 1020.7161183074932], [20276.98216155416, 12959.9419502737], [1906.8031167223817, 3025.8430936750665], [9447.64711089735, 16599.008678420418], [12369.451554254163, 1032.0604850450472], [1925.9276570104994, 3010.084546025406], [9425.670584915904, 16596.852341381018], [12387.195136799477, 1036.8942423502158], [1944.0137487452012, 3002.0048916839587], [9406.282301002066, 16586.431388295547], [12408.153633337002, 1043.8287704677787], [1956.6018958857749, 2990.5261374727415], [9393.098608039203, 16587.36802427139], [12424.2015343596, 1052.2607582452474], [1975.6117933338974, 2980.2661216720007], [9373.414803188061, 16576.667963800457], [12444.492769566015, 1062.5233341477287], [1994.5286477790214, 2976.99542257993], [9360.248644426349, 16573.260239785945], [12459.975772541715, 1074.457630576915], [2009.3696702411398, 2968.914449683827], [9340.511203359929, 16570.232181597967], [12477.991169188637, 1080.5349386846356], [2032.4942056691507, 2959.0931165914226], [9328.468102622544, 16554.9917848169], [12491.606012574863, 1089.8969214556273], [2051.3831703074975, 2952.372081768204], [9304.010906483629, 16547.165386207605], [12511.224044195144, 1102.8628717342508], [2069.1508313636295, 2948.015641532693], [9296.482496750308, 16538.848125114484], [12526.26421515597, 1116.799186755612], [2089.34415448003, 2943.5531192066846], [9279.089942807332, 16530.187390515028], [12540.146444869577, 1125.3547046902531], [2112.3312003328465, 2939.35531556778], [9260.951981694787, 16517.326834904117], [12556.601306761033, 1137.5758095510537], [2127.2619289476424, 2933.471276520344], [9245.967990859528, 16510.301980779623], [12566.636561186868, 1158.0848586208012], [2146.68865266128, 2930.0070574417477], [9230.1858692721, 16495.88536508681], [12581.927573002526, 1167.451504049328], [2169.116677502985, 2930.9395034470945], [9218.066256903345, 16487.889156383666], [12595.68094122049, 1181.182896678889], [20030.529396842117, 13036.027996198536], [2189.520304433885, 2934.1371097505616], [9205.882704733405, 16479.454929693136], [12604.835530754295, 1195.1011373169313], [20022.008605940966, 13051.10281355158], [2208.517788150697, 2932.4444672952814], [9190.883539109142, 16462.93457309468], [12617.928842270165, 1209.792518753704], [20021.03992385394, 13076.398823594092], [2227.6388668586733, 2927.673828638828], [9176.581746797077, 16449.503372974752], [12627.535891140345, 1223.2145527745306], [20029.102530354867, 13128.341052677803], [2245.657759160269, 2931.603772032802], [9165.11036201322, 16437.637348986813], [12635.429868590087, 1242.4556676022767], [20011.482506998233, 13134.059172788897], [2271.120491273934, 2933.1669573156687], [9147.67479545623, 16422.074067925772], [12644.862920403131, 1256.3179046607402], [19993.71197625599, 13141.990882240876], [2286.5622894996777, 2931.81527125751], [9139.394345522043, 16407.18607917294], [12656.853835041053, 1274.8365397782181], [19970.77069468284, 13138.781341125112], [2308.6125778105343, 2938.473942033015], [9122.308366663754, 16394.80773104352], [12664.001423856476, 1289.2186964755238], [19951.395592417917, 13132.45211736986], [2327.925211907481, 2939.9833658924326], [9113.544614961138, 16380.437121529743], [12674.832873714855, 1306.4325875042705], [19937.513891114388, 13125.353040169924], [2346.045867272769, 2942.831627211068], [9105.200595390168, 16362.116032703896], [12681.676736219204, 1320.9216031197866], [19915.277148747933, 13127.125831352605], [2364.7029917970067, 2943.9751413424674], [9091.986004928243, 16345.136551645177], [12684.97240036761, 1342.080755384377], [19897.072531820973, 13123.077712021099], [2383.961325343349, 2955.9090737356164], [9081.37584586651, 16331.694509971014], [12695.767546822317, 1356.7119666457875], [19877.491211098037, 13127.458401232521], [2400.0535787179833, 2955.5339136109396], [9076.094020130578, 16312.814177010878], [12700.983031101292, 1377.3486932898522], [19860.30412118882, 13118.516005060636], [2420.361173135927, 2962.3780846097507], [9067.07316771138, 16300.72746876502], [12704.622353696846, 1391.5633833747124], [19842.069777234923, 13116.087226830306], [2437.162273199414, 2970.5888159317547], [9060.149630227359, 16279.821272994595], [12702.891507041873, 1405.0562155224325], [2457.5227776737884, 2980.272370867897], [9051.413194466382, 16263.945521731977], [12706.338581023272, 1426.2691999037052], [2473.4692130389158, 2981.104398842581], [9049.825230479008, 16240.332696538506], [12710.168474651058, 1447.9549359386729], [2491.059395475546, 2996.2510153572075], [9043.921648551244, 16223.929608439154], [12713.788186501595, 1467.3798401075765], [2504.6977117254864, 3006.064688005252], [9040.6172112918, 16204.590447393479], [12719.113884036895, 1477.0166781024018], [2524.3323419819353, 3007.7896004947543], [9035.465846458334, 16185.9661623367], [2554.0878747788956, 3016.764088355121], [9019.229447579943, 16171.072375324526], [2565.390995573718, 3034.8673490527435], [9014.30622699915, 16150.045627942542], [2569.7409238459077, 3054.1236884533428], [9013.648004313698, 16131.105131259188], [2578.2608521636575, 3074.923352535494], [9011.810220683808, 16111.776012074755], [2585.8877203948796, 3091.1298003347765], [9011.87960918399, 16090.71414646774], [2593.1120730193797, 3108.045877838158], [9018.369801314315, 16072.316582307889], [2606.0991686792113, 3120.237304954033], [8988.962950057, 16046.152230094303], [2611.5743899759836, 3131.9172586750065], [8999.115970760584, 16024.142631613737], [2621.696931637125, 3147.007575379277], [2639.6785380656365, 3158.966732004861], [2648.7133642059052, 3170.382072208624], [2662.757981775794, 3182.6442710364645], [2674.1674324611668, 3192.43865599102], [19553.619988714694, 13213.04725859972], [2690.0045250667026, 3206.4296376998827], [19557.095432148897, 13232.426700799348], [2704.0361480538268, 3214.5932913498254], [19574.055745935882, 13284.237398935016], [2716.9480584617704, 3230.67786265639], [19562.920364307356, 13292.18451615257], [2733.2726479654666, 3237.780142184085], [19541.552835087292, 13302.282051585702], [2745.5146721673664, 3247.838148404291], [19523.34256319201, 13309.45145113903], [2753.7911342489533, 3259.1251302310557], [19505.54206366837, 13309.251669839898], [2769.1311992064584, 3275.084649375698], [19482.69191955251, 13310.546672921017], [2789.8847974727396, 3285.596224285109], [19466.030732879997, 13308.17196839489], [2798.275593880797, 3296.341217285546], [19446.31533613929, 13306.530395836162], [2811.9934912235476, 3304.630456949497], [19427.909323058673, 13306.41346271013], [2826.306168989977, 3314.462900016282], [19413.626388523262, 13303.755587947788], [19396.030890869093, 13299.161174071894], [19375.775253202883, 13304.95640283823], [19355.988784278394, 13300.820575896156], [19341.57975147164, 13296.35178803833], [19324.192235619295, 13297.684697440156], [19304.928369410103, 13299.12740731248], [13187.342823045794, 1794.569893221429], [13208.88335535326, 1795.1798108389194], [13233.418621173245, 1757.6407992096501], [13260.641617402784, 1739.8407114228758], [13281.690805115155, 1742.4299053956638], [13304.439335145522, 1752.8786769853032], [13317.773872967577, 1765.1428146435355], [8634.544361811248, 15695.856237579254], [13331.214851176133, 1783.7351020674105], [8612.855170441908, 15693.184499341587], [13348.688485355466, 1794.443562102213], [3168.1597128229914, 3322.5643852361827], [8590.152682144544, 15736.374670667486], [13361.480575621477, 1809.2822172201413], [3181.2633256257977, 3306.8341592866636], [8570.836067114025, 15736.19838793695], [13373.833045645966, 1817.4660163080553], [3185.9961877660826, 3255.105111695302], [8556.011975182686, 15728.833998162008], [13392.398189386004, 1836.2906510710309], [3208.8037604705896, 3248.0701536664856], [8534.970219502226, 15716.175502595666], [13403.428384037572, 1849.5262383208901], [3228.009578932426, 3247.0749877172348], [8526.91197937238, 15705.51365687087], [13415.936782343662, 1861.8927821172692], [3252.648430197034, 3244.0686584834184], [8508.504520847928, 15690.344496367004], [13427.913654841715, 1874.850266642694], [3273.5575329251587, 3248.252770172665], [8499.449984561303, 15671.873819536908], [13437.66387619113, 1891.831753280654], [3290.654685741989, 3254.578256090783], [8483.589668336557, 15664.401471151039], [13449.492444239557, 1907.4060126318946], [19025.567114989157, 13399.965150758071], [3313.333511384786, 3257.0379033682984], [8469.818646466243, 15643.599884642434], [13458.47480290546, 1924.0061951830285], [19014.853949699318, 13414.223210627795], [3333.1900377525017, 3263.7037424913433], [8459.50761597592, 15630.594301432488], [13473.191922493163, 1935.8813160064456], [19014.81243686704, 13432.119407849212], [3344.1797143295407, 3273.3678034960176], [8449.516246718355, 15620.054000535543], [13483.160181240877, 1952.0786831619043], [19030.19936422957, 13484.548258919764], [3370.811860098387, 3280.1564155238157], [8432.839860741748, 15603.89554338291], [13493.303143405821, 1967.677701575798], [19012.23255119822, 13492.629733632028], [3382.805440325639, 3282.7173813370755], [8423.136117473477, 15584.466494035441], [13501.496737451875, 1987.2807126445987], [18998.44662098214, 13502.773843158124], [3407.255566605483, 3290.2575386402896], [8413.988612868125, 15575.178483140247], [13509.270311441622, 2002.7856295523816], [18972.912804849446, 13509.313029611221], [3422.83206474944, 3299.6613125458243], [8402.949951916235, 15554.014834773203], [13517.944567282218, 2018.933787185233], [18953.151452515507, 13504.932909075957], [3438.5729866849724, 3310.4279563594027], [13522.442006575875, 2035.2620786126645], [18938.95249601954, 13506.796631244826], [3456.5109348403057, 3318.725303409534], [18919.191397980787, 13498.306322590302], [3471.4487653770484, 3325.694519008335], [18898.13462033961, 13498.898975314747], [3487.7436338501284, 3335.7387131720025], [18881.04148454615, 13500.850671112741], [18861.674428197206, 13497.387248100189], [18847.846596760675, 13495.987214366934], [18826.189444147516, 13495.595948024857], [18806.53367405187, 13492.662049973238], [18788.907416118658, 13488.501799053367], [18770.025229168823, 13487.982692662888], [18750.267176972702, 13481.737832164683], [8224.886249040952, 15393.854589433497], [8206.285937885288, 15387.722018201952], [8180.9612403300125, 15394.424388928659], [8161.131581477006, 15426.389492898452], [8137.70737297053, 15428.249338608613], [8119.199356155354, 15420.086437100108], [8100.984771044343, 15406.791693123989], [8091.981850710581, 15396.321663157694], [8081.939003537642, 15373.379906857997], [8068.1985021039145, 15360.90461546075], [8053.639196329517, 15339.477446425502], [8048.477027927176, 15324.924445278419], [8037.9986560092075, 15310.050152892916], [8026.255917784409, 15295.865052502224], [13899.607415193925, 2271.50535470256], [8016.89851986221, 15275.388694214198], [13923.197693508817, 2269.9984783818363], [8008.309486037586, 15264.317165684537], [13938.846118153888, 2261.5667961713625], [7999.233158942545, 15241.113544187392], [13962.180984794046, 2223.421527462284], [7991.112487766426, 15229.522234561358], [13995.368437921046, 2206.720375247649], [7983.998546229326, 15207.458792764082], [14011.708378512645, 2210.1734630308056], [18441.714689851506, 13582.305001661647], [7982.035309833591, 15186.532941143902], [14034.465566029889, 2221.583019652404], [18428.027360585285, 13601.044049829245], [14048.149133101339, 2236.3997434409685], [18422.047002779902, 13617.422446617013], [14061.470794069697, 2249.65083774706], [18438.517366319546, 13655.007260670332], [14075.323522290448, 2264.175246440427], [18434.460218833643, 13690.360519511305], [14091.77861548413, 2277.884918451251], [18420.343096766504, 13698.997743098793], [14108.789771250915, 2297.126901175099], [18401.38286688621, 13704.558765225811], [14114.466565340874, 2304.898761613673], [18381.29448344803, 13710.490096705238], [14127.385554115754, 2319.560657900467], [18361.20891298761, 13706.346492246463], [14143.18555436167, 2337.3802031888335], [18340.419414564152, 13710.061697576428], [14153.704300550628, 2346.363754685648], [18324.06659105851, 13707.407116621442], [4120.665793983499, 3108.1678579332656], [14168.47880365362, 2363.134412301966], [18306.551957369782, 13712.49596837259], [4132.224635127117, 3090.175094681006], [14178.2719852078, 2376.53938206943], [18289.23295527941, 13712.578591797821], [4138.773169807275, 3070.690056085121], [14190.465701057808, 2391.0918094015215], [18269.695591561147, 13711.467465135123], [4116.5449294040445, 3034.611938598682], [14200.839600173524, 2407.4721550363756], [18252.42527193355, 13710.202446008916], [4121.573523642262, 3010.357708591182], [14210.072375437012, 2424.8558654594235], [18236.989625718445, 13711.675851094566], [4138.279625947471, 2993.8402305058844], [14223.308656675043, 2441.1792544603813], [18216.07029918686, 13703.463520059711], [4150.830819574418, 2978.637314537249], [14228.362679401878, 2460.06420037552], [18194.819437325117, 13708.117118355382], [4171.789502853644, 2966.813498095813], [14239.168593924493, 2470.826755173999], [18180.18204577267, 13707.520312454697], [4194.210242901114, 2959.7886913845723], [14240.934019974316, 2488.5526213329285], [18165.68308526266, 13701.902118453174], [4213.116753484239, 2950.990771138255], [14247.75849502976, 2511.7692293326545], [18141.618326637545, 13699.304930591374], [4227.46297990391, 2947.3538888751063], [14257.292004127172, 2529.15446635682], [18121.548934053513, 13693.652386002097], [4244.761128233862, 2935.1756668947055], [4270.652594712563, 2927.1602291388845], [4285.7334523735335, 2924.775726495951], [4304.388768580626, 2915.269759884395], [4327.574690959416, 2916.123003499786], [4347.639039104688, 2909.3698455668346], [4362.714795585605, 2911.774137992674], [7622.3269541175105, 14923.166626404738], [4385.494997726637, 2898.792561307724], [7609.55193065654, 14921.035285353952], [4403.644767101854, 2899.5928298556246], [7587.439402042539, 14923.346825068205], [4424.455274735228, 2888.5281481307757], [7574.529434698983, 14934.573753473233], [4445.217975042062, 2890.1957837494847], [7544.660670999903, 14976.833807585615], [4460.755590281216, 2889.9356529392535], [7530.226532416418, 14972.796171921393], [4483.845945962938, 2886.2146009485296], [7509.401666730177, 14967.366829683015], [4503.614811162581, 2888.471097341302], [7494.1503685883945, 14959.862353159406], [4520.656714119599, 2892.080548548518], [7480.553079754114, 14944.291063539014], [4542.563436420402, 2895.9988037348667], [7469.85960465495, 14929.890355177515], [4563.233580691856, 2901.2154635446786], [7451.339235616848, 14912.025363625464], [4577.405481569818, 2901.6590751864132], [7437.435781226144, 14901.180948948779], [4602.186106509529, 2906.390730879415], [7424.5980641936185, 14887.304573198373], [4616.527701768675, 2909.604632249044], [7412.798801422934, 14874.389553269692], [4638.019141112338, 2912.3277261804615], [7399.382921395358, 14858.940072960686], [7384.544897990883, 14847.432035767153], [7376.561646839953, 14829.799351654772], [7366.040495074005, 14818.014073850645], [7350.075898494804, 14798.960792830854], [7342.346395431436, 14785.843719884899], [7330.405978500494, 14772.440471115755], [17741.218447438674, 13840.773075256293], [7320.160817454918, 14757.21958054378], [14643.058186451439, 2792.3348441508424], [17730.379253659397, 13851.584174451506], [7314.246195264044, 14738.916905707214], [14664.048815660877, 2790.323917875736], [17722.256929225754, 13867.485284907161], [7301.266797689954, 14722.9913532426], [14682.653431964456, 2794.229555466736], [17712.202004166553, 13879.652237267845], [7293.764387678006, 14705.290575017862], [14702.224443057436, 2790.5043196597544], [17729.841318368446, 13919.081454075931], [7287.60376463295, 14686.26585576174], [14726.386522785877, 2752.3216035661753], [17741.184697526856, 13954.469762747147], [7280.705716908677, 14667.02351507981], [14751.651012766059, 2737.5347028387187], [17723.249984368915, 13967.413755428046], [7274.806027403451, 14650.167137394601], [14777.688989563845, 2742.964642760111], [17705.086534596514, 13975.86498496888], [7265.274890716537, 14632.863628896797], [14793.609440230182, 2749.508586698328], [17684.635065280367, 13983.191737116227], [7265.585481444257, 14611.598297456396], [14810.058545131236, 2765.4035840323486], [17665.24063895212, 13980.883349255251], [7260.118449962698, 14590.313467195956], [14826.253148719552, 2778.1202750467346], [17645.930518040317, 13984.795347483101], [14842.169227573788, 2793.6454583068553], [17627.904520534095, 13985.602282151696], [14853.015825723647, 2805.565112685261], [17612.284901195788, 13990.5847083439], [14863.21728062979, 2820.9125277914864], [17592.746021678206, 13991.518334606604], [14878.72453500831, 2831.026700789196], [17576.510573400185, 13995.11323327481], [14897.846757298918, 2851.0721046483086], [17558.512197305565, 13995.78715192905], [14903.795351840206, 2863.321614815708], [17542.5387689044, 13998.455832431733], [14917.072540896945, 2877.0927662181202], [17524.496398393996, 14003.234025026904], [14931.554564927588, 2893.5363371829735], [17506.33192258922, 14001.980133849866], [14948.011668119696, 2911.5499931572704], [17489.297480610316, 14001.586423172557], [14950.966084794025, 2922.0995401023247], [17468.915468202205, 14000.657655132818], [14963.619169703452, 2939.401081875927], [17448.049366653897, 13993.07701749375], [14976.406036900822, 2952.1117578884587], [17432.70374288922, 13994.075866344763], [14986.067861858406, 2971.33200647225], [17415.359698967077, 13988.071332236927], [14988.731215300155, 2986.5577260545397], [17396.22421373229, 13988.379179893149], [15002.269540344365, 3002.7528895231953], [17380.880404569674, 13983.283593995817], [5169.873402156867, 2716.246238966938], [15009.84930801345, 3018.9324390785478], [17359.444900697563, 13982.11754657692], [5183.094706212054, 2698.3773182461446], [15011.777662629029, 3034.6531504229642], [17345.161030867952, 13976.33871882694], [5194.15990426694, 2681.029253428802], [17329.155608790577, 13973.2023828573], [5207.135195270646, 2667.38974325484], [17311.08938226092, 13969.027425508655], [5184.226063472452, 2636.7539719151973], [5180.194513052353, 2600.419455934927], [5195.612250172533, 2586.4755660622905], [5213.51710179192, 2568.5587244168855], [5233.263834725018, 2564.0420607861306], [5252.098850008682, 2557.5746390739514], [5271.564110631356, 2550.732019638701], [5288.028762023547, 2543.0979415665497], [5311.763346057967, 2532.079289961868], [5329.80254446459, 2524.2614451408444], [5349.261713402579, 2518.343955483142], [5364.472965347464, 2515.321049908729], [5385.227784932824, 2512.3359484663233], [5409.715420470806, 2506.180102932907], [5428.104684465448, 2499.3019238820416], [6841.682109072455, 14235.564227179508], [5445.910208641086, 2495.5903892154747], [6825.627243286464, 14231.732883290824], [5464.953353718622, 2493.095637040795], [6807.429304302204, 14233.341900624277], [5483.143517171731, 2493.043897703348], [6788.289457079838, 14236.726216498995], [5505.507273175521, 2491.1006154116476], [6771.970183623256, 14246.799155991845], [5523.421998805716, 2487.360405814339], [6758.954950517393, 14281.190989110415], [5548.760091775795, 2489.714726930164], [6740.741257973015, 14295.027084401896], [5563.732008546474, 2488.9281597996596], [6715.184049163945, 14290.033862677868], [5584.31647720281, 2490.313516902912], [6697.477466443321, 14282.358933700802], [5605.273455689894, 2495.0603582527256], [6681.919665941852, 14269.937834219105], [5627.310012800968, 2498.8946830981877], [6667.518379476154, 14256.226717767102], [5641.206497855019, 2498.9804794377706], [6651.9060527152615, 14246.09867633789], [5661.368080790504, 2505.8314526262984], [6635.40257214359, 14231.272933111992], [5681.843073285068, 2512.6767684898805], [6624.491904816241, 14217.535184578563], [15422.965214668424, 3328.3427843010577], [5698.538150181994, 2516.1718503279553], [6607.906824323698, 14206.112586073985], [15443.8377738751, 3326.441608921392], [5717.7761425030185, 2520.507852100476], [6597.366937268176, 14195.008596171421], [15467.61770634621, 3325.7833742629446], [6582.155859228107, 14182.0705815611], [15484.415120639722, 3323.635272762738], [6568.843286339776, 14165.85976622987], [15501.063425236265, 3312.808135432366], [6557.051687708241, 14151.81243429752], [15525.151537337573, 3272.2206054524286], [6545.819073873805, 14136.712685625913], [15551.250444404897, 3252.4431758429564], [16828.959805024206, 14143.141653614904], [6533.152412735042, 14123.488047786406], [15578.285355831613, 3257.6967813457013], [16821.648560369387, 14157.307264681847], [6520.112102862331, 14110.074987734522], [15594.074085388449, 3262.1320204283693], [16812.82382569334, 14173.711116918188], [6510.536810489255, 14091.529682736378], [15613.292619210551, 3273.613466884184], [16801.4977950952, 14185.768521621532], [6498.260158532765, 14078.985376125667], [15630.451278478955, 3283.420082046825], [16792.28924597497, 14203.096767630894], [6487.708394243382, 14060.04349374515], [15643.981290959055, 3299.410787507106], [16810.95748838724, 14227.984616573376], [6479.605011505075, 14045.899902743171], [15658.992410834413, 3314.5699160896183], [16833.249538896373, 14277.624664683797], [6468.804162688786, 14026.72272431376], [15675.03024190187, 3328.4870547149912], [16817.938580075628, 14290.472221637872], [6461.842971134582, 14011.472614047962], [15689.418809928233, 3344.392033762764], [16801.47155720042, 14302.453907899704], [6458.256771031069, 13989.237481712422], [15700.598533781827, 3353.3910214378266], [16783.247069662786, 14306.174352575676], [6445.938078407664, 13974.552479011007], [15717.135054005892, 3362.9309537394147], [16762.885447539506, 14312.948249673209], [6441.428806964541, 13956.659170245286], [15730.31727445731, 3381.696754819539], [16747.56790524884, 14315.492310176283], [6439.229506511241, 13938.85758122796], [15744.079398818896, 3398.3298996229423], [16727.649580605444, 14319.075525801367], [15756.773949446506, 3409.944189150934], [16707.738846249296, 14325.860630120122], [15765.098884073901, 3424.9352286499925], [16691.71805505152, 14330.560359849333], [15778.450746443705, 3437.5749270380766], [16675.04363694531, 14333.020044754405], [15792.257460670313, 3454.2515004071174], [16658.07832925662, 14333.983078334888], [15799.137945350958, 3470.384520373802], [16640.254923323635, 14336.179671046819], [15809.695754732587, 3484.9779085932532], [16623.939149736776, 14342.022689080215], [15824.93544794945, 3499.3092706538446], [16607.45143411483, 14344.550856896793], [15829.974603035254, 3516.9162055148336], [16587.8440706064, 14343.594531968149], [15836.268174007186, 3535.1228999607556], [16566.64125279314, 14345.240730071033], [15833.809247172321, 3556.564565850713], [16552.260825883597, 14339.41521405615], [15844.059810347157, 3567.276249391696], [16533.812023916747, 14342.908393758698], [15851.370850807405, 3587.8499635466433], [16512.587297188467, 14345.970276768057], [15862.253107079887, 3601.3372056790104], [16497.613771937205, 14345.991751210822], [15867.312805721187, 3618.7495062613452], [16480.600777121377, 14346.330652480887], [16464.979963377118, 14339.031906100106], [16443.487127684173, 14339.342775496742], [16429.680166366627, 14335.893675575004], [16410.824755982263, 14332.743059245113], [16395.576613774756, 14329.169693690812], [16377.10825057642, 14328.490985811455], [16356.860179388197, 14324.37902828402], [16342.897658130387, 14315.500093122275], [16325.789775241516, 14311.055819584639], [6361.940896988963, 2281.5157123782265], [6373.59248923813, 2261.998589041701], [6378.750650889007, 2243.486438398715], [6384.512138657039, 2223.922851041745], [6395.883285540389, 2204.5960078739736], [6392.2237553433515, 2182.1953241836454], [6364.498491880717, 2152.51988657919], [6366.605093340855, 2124.1874425181013], [6375.655898106634, 2108.898774362635], [6392.830986961839, 2093.6024736369727], [6409.826996586635, 2078.6020359076792], [6425.2639747957, 2066.849756575597], [6447.454996607616, 2051.3507458468666], [5990.719982539769, 13564.471960292401], [6464.430905479472, 2043.8085543242632], [5973.057087255758, 13566.01233632458], [6482.832817927003, 2033.3525840915681], [5956.692544549936, 13572.147146473319], [6499.904069068609, 2021.8138216293883], [5936.572526231408, 13573.585639111814], [6515.5802421163535, 2015.6361018207972], [5918.254873700673, 13578.203632090532], [6534.713743303204, 2007.226315368287], [5908.401310375193, 13590.82378910546], [6557.9049642435275, 1999.4032157418842], [5889.48715074244, 13615.987744993792], [6576.136886290275, 1993.78743371999], [5873.533905845019, 13649.830836894282], [6593.392646708293, 1986.032928267261], [5853.249768349808, 13646.053596380429], [6613.820555619546, 1982.4841117550968], [5837.4142097804, 13640.73739091112], [6633.878352066036, 1973.598722218041], [5819.222014937783, 13628.72911282751], [6652.274694741238, 1967.7968055708916], [5799.728389227297, 13614.092676582222], [6673.386327159707, 1966.7475958818686], [5785.240741014015, 13603.074661074614], [6692.670162392431, 1962.6871199935267], [5770.241673918208, 13595.982907660393], [6709.426687068772, 1955.4312800230982], [5753.473813556251, 13585.93683353081], [6731.422172527411, 1960.6968513676838], [5737.996959489537, 13569.634477559186], [6753.178353392985, 1956.9481835822517], [5726.74943189288, 13562.290709126915], [6773.039902572986, 1953.1445281774504], [5715.7588682192145, 13542.763471111655], [16389.873222092632, 3977.6574158320436], [6790.419635592611, 1949.0552775870892], [5701.107025505044, 13534.732174244593], [16408.744184829062, 3971.1566601936647], [6808.921391834738, 1952.0242070149397], [5685.073551061912, 13523.506176526018], [16430.612885556184, 3972.0805253896688], [6831.91565972066, 1955.9927504595253], [5669.9372854910325, 13509.136839644401], [16449.393376373337, 3965.8289997647807], [6848.928821354522, 1956.4201263730065], [5656.637309139711, 13494.298882812], [16467.495109415497, 3959.9907797304913], [6870.61633492168, 1958.347468241438], [5645.378492213786, 13485.762453322764], [16488.473962938413, 3954.383523115568], [6887.517271028948, 1962.5359311396023], [5624.882161876769, 13476.798753841897], [16503.076944111614, 3939.3498737565533], [6908.226600850932, 1970.8718407901179], [5614.2728845526, 13458.048803463898], [16521.21612172015, 3890.106151365442], [6926.919267411344, 1971.1429904479592], [5599.703187361243, 13446.16561510408], [16540.239235376124, 3882.2568373773247], [6944.875070021371, 1971.472043969552], [5595.641223981162, 13430.105985223898], [16562.5345692212, 3886.4600224926253], [6967.035065835342, 1982.4053601043124], [5578.254860200104, 13415.647983461065], [16586.052138599218, 3889.8613012862625], [6980.604631427908, 1982.4184101445717], [5569.572340119281, 13397.500454664638], [16600.972065523732, 3900.385302217037], [15751.938023941591, 14502.075435803126], [6998.272894023452, 1995.2148034826387], [5559.755339855677, 13380.882031497953], [16627.72866679402, 3910.628450500284], [15740.507971621468, 14520.738012328075], [7018.517315812525, 2002.2222436855955], [5553.520403339993, 13369.5253933465], [16639.00215713284, 3924.1403916897834], [15737.61399129848, 14534.582987599977], [7034.165890256874, 2013.385340989742], [5543.0471603164915, 13346.385751463706], [16656.138669384643, 3930.1201228344], [15730.694388237316, 14551.131561676826], [7052.037903339136, 2020.7420885067258], [5534.743333752966, 13330.53880082228], [16674.00928830693, 3939.614529414539], [15724.983359359787, 14566.426642475155], [5525.227849260205, 13310.505546649365], [16691.408831811044, 3948.87225192014], [15722.881753285648, 14584.52730317795], [5518.789667932666, 13294.967398101144], [16713.93554227869, 3952.5958375722985], [15725.32959831378, 14602.511166461045], [5515.981679864228, 13276.823101946822], [16729.963855312555, 3971.3169070507283], [15763.61314904457, 14645.050226671912], [5507.4004596563755, 13255.318364441744], [16743.53970456042, 3981.620007671154], [15754.53360128461, 14663.388543174777], [5505.194318158785, 13236.021519860486], [16756.212727702805, 3992.495280993782], [15745.735595949693, 14676.898730022076], [5504.99958369846, 13216.531472828792], [16764.896215349087, 4008.5717274810886], [15727.954641036456, 14688.300350975478], [5503.455351025332, 13198.59634694035], [16783.092425223556, 4025.3061419060978], [15709.52932366915, 14695.425698457606], [5495.647927565966, 13178.584385525057], [16792.644160608994, 4034.995734856813], [15687.936816274538, 14702.442583423894], [5490.264527522144, 13159.519514545595], [16808.959751030314, 4048.0143588789506], [15673.991005555145, 14710.485008007061], [16822.73803742847, 4060.349802796438], [15658.139888465172, 14715.72988732261], [16834.52924902411, 4074.421402229287], [15640.312337704469, 14725.44897552731], [16848.04159290064, 4092.720503686316], [15622.83567323268, 14730.330863907351], [16857.795811570133, 4105.334450920112], [15608.886109667132, 14738.441540224652], [16864.726174171083, 4119.772248280002], [15591.136496782186, 14740.92950829168], [16877.47386871872, 4136.3982967201155], [15575.751760616084, 14747.08074419666], [16887.50020470901, 4150.228926623036], [15556.822857439634, 14753.32950019493], [16895.98612855829, 4166.353217341617], [15538.726281967596, 14756.549366831227], [16900.904314961983, 4185.108619328355], [15521.972340368433, 14764.776285850821], [16911.635631185258, 4201.533329614234], [15506.790221355623, 14768.425597467227], [16920.30909537815, 4216.507983288291], [15487.704557925463, 14769.472749776498], [16927.13203106064, 4234.041299225122], [15471.41382733779, 14770.493868189049], [16933.735060343985, 4248.9193420964], [15453.543487451621, 14776.564604431129], [16937.338921561604, 4264.584551017673], [15436.825416918262, 14775.509096878755], [16942.088600542746, 4285.648180084507], [15422.401480498258, 14778.61597137741], [16946.820047406713, 4303.533265551901], [15405.3386899631, 14778.325577562908], [16948.507903731195, 4317.084818055766], [15388.484481373453, 14778.861822460894], [16954.898107490735, 4337.671316814172], [15363.636119717266, 14777.393546517822], [16959.329321765923, 4357.719781870197], [15351.273459280492, 14779.247347045079], [15331.979207144468, 14778.769813699037], [15308.508136305143, 14774.402818438859], [15297.27196420217, 14772.643043836724], [15277.42480735341, 14767.668581104925], [15261.768079208792, 14765.345095858298], [15243.08986043837, 14759.054538040305], [15222.914843961247, 14757.390825935145], [15206.158988723648, 14750.198764544271], [15187.092091919738, 14740.453940538428], [15176.909743749886, 14730.788391657348], [15156.34585184406, 14724.940265850804], [15138.676633482333, 14716.666985917924], [15130.203964764485, 14705.918505735783], [15110.464763296884, 14693.748487672798], [7879.752660179045, 1704.4072488693928], [7882.283449827461, 1683.136914388364], [7880.280735278386, 1658.3315210409055], [7873.610487187514, 1635.6582454609743], [7865.3889129834715, 1613.985227458994], [7853.556620941265, 1590.6570930773742], [7810.041987672099, 1585.1084694213932], [7759.577322832309, 1563.8383182216785], [4875.52407931909, 12658.289392878447], [7750.863148199278, 1541.6794839579088], [4857.800336536369, 12676.568203681469], [7762.064179001027, 1514.3583794646256], [4851.641524864244, 12692.636524746136], [7776.7335111426655, 1493.5909412144392], [4839.688600357156, 12715.121259637264], [7788.308120150468, 1473.950706052623], [4833.974744177191, 12738.382536427642], [7802.336316103814, 1452.025960004452], [4842.000628940179, 12786.468505509925], [7820.235773514258, 1434.591492289299], [4832.531307844678, 12823.10965651882], [7837.960442995653, 1414.8295007584093], [4810.349328289158, 12825.068220583402], [7855.308611574699, 1401.0279042796756], [4786.770566481515, 12819.50214798734], [7876.832809720305, 1387.1513666778628], [4761.249966991134, 12817.159107970045], [7896.248577448656, 1377.6680112231406], [4743.515673469403, 12803.719527310983], [7921.5562548596645, 1364.9630067413382], [4720.754796343041, 12799.283762285748], [7946.1789138932945, 1357.426424193196], [4700.378834369942, 12787.357050978957], [7968.052122677793, 1348.5255795195699], [4685.025134111987, 12774.72823680687], [7988.6986005407525, 1340.1099334549508], [4670.243428550311, 12762.92307749833], [8004.3743483563885, 1337.6833740571747], [4651.087730391999, 12751.128346259124], [8032.422693077242, 1337.3710344929132], [4639.218908024603, 12735.573985672789], [8054.154088391922, 1333.163660467253], [4620.200464601163, 12723.631007408985], [17596.73115397233, 4785.4652488634165], [8080.217040938209, 1328.8822508236044], [4608.73058977141, 12710.345443108235], [17619.62274443463, 4789.047195541294], [8098.228392165736, 1331.7831331035122], [4591.29212240316, 12702.477545714035], [17641.611276810523, 4769.616228033759], [8118.704662729171, 1331.419178893906], [4577.921613667742, 12686.542809147999], [17654.880482810433, 4743.960640247358], [8140.801107058069, 1335.540306964278], [4561.384361660923, 12671.473207194213], [17660.683735711966, 4713.783612805331], [8159.227401926881, 1337.9596983948722], [4554.675268742605, 12654.713471770869], [17656.57709013368, 4651.158643758652], [8182.805804509786, 1341.5212606503046], [4542.68359787378, 12639.554026944039], [17675.956296871533, 4617.600680432544], [8202.938977595186, 1351.2798718749837], [4530.347128489753, 12628.691200224392], [17699.83760276006, 4621.0684195283975], [8217.635529896826, 1353.7745917479624], [4518.206130268634, 12610.060777796694], [17725.95822112239, 4624.093416566815], [8236.647056449787, 1355.920810425363], [4507.175920435926, 12597.556103989598], [17750.55342322064, 4632.6225488522905], [8257.371679965523, 1360.6487758775475], [4493.986099951784, 12582.63392726105], [17774.396040403517, 4635.532477432513], [8278.408582909382, 1360.1691497510765], [4480.292702585342, 12570.34167501764], [17795.978135201265, 4651.90651786892], [8295.134079697076, 1367.6740755296778], [4471.004895435995, 12550.426305385336], [17812.697887931485, 4662.4402927827905], [8315.783961367211, 1374.3187746933836], [4461.241747124703, 12533.940490793291], [17835.930834669154, 4676.049469883845], [14480.81006993819, 14899.215549953165], [8332.597828298341, 1381.551154566696], [4454.630800681654, 12517.26950388262], [17849.972349931137, 4691.301563054003], [8351.673480379744, 1389.4232047295664], [4444.158036638866, 12501.59214976267], [17869.65329252847, 4700.037184025714], [14433.49180366809, 14938.571317175578], [8370.763598815189, 1394.7621055081836], [4436.801876704092, 12477.617629719665], [17886.383820723742, 4716.3972717879515], [14440.446614022949, 14963.72012467176], [8383.50666722143, 1407.316980907577], [4434.754741248209, 12460.741265781719], [17897.620003404794, 4726.487070291274], [14483.97892907355, 14978.415191599488], [8403.049180950853, 1413.823174195597], [4428.331579991267, 12445.02788830825], [17915.781360109104, 4741.000390683039], [14548.60083303973, 15009.215784908825], [8422.119068819913, 1424.845039053238], [4422.267875052639, 12427.057258493267], [17928.052843024838, 4755.086483926891], [14563.764559947303, 15045.937728619203], [8433.569131484954, 1436.6983210841136], [4418.06314313109, 12403.834163517342], [17941.425581936608, 4772.557696962787], [14548.816558255116, 15060.748921679013], [8450.218404173502, 1448.187190273049], [4408.854512540624, 12385.209435685567], [17957.845362060354, 4784.412873498921], [14533.525645609596, 15077.544684154738], [8464.821002746932, 1461.1570876385085], [4412.777115013101, 12365.844656391011], [17968.805723572732, 4798.334057707427], [14516.765122899902, 15090.819344838412], [8482.333280702005, 1464.6877940843406], [4405.03609567706, 12343.531507543667], [17979.580584246898, 4814.020387361932], [14494.587107989122, 15097.834235563205], [8493.978680876899, 1487.8410838706768], [4405.462010495132, 12330.758524287055], [17994.25155244849, 4827.185829505877], [14472.703238146147, 15110.709459472739], [8536.691377261537, 1488.8237564849842], [4394.388957282528, 12309.909952791495], [18004.6261962438, 4842.168879001081], [14452.483744602534, 15120.4016096321], [4392.661504881922, 12288.516543670354], [18018.98206066084, 4854.939943474834], [14431.99794994446, 15122.854316187819], [4397.42762419465, 12268.860279601882], [18030.809715883108, 4870.472639478568], [14418.903456518077, 15134.478905123426], [4399.430691677029, 12248.766530569468], [18038.91449507163, 4888.6355527046835], [14395.629617041908, 15134.66319748084], [4403.071461390704, 12226.523234616092], [18046.030807153787, 4906.8143666804535], [14375.139137977967, 15137.342594510352], [18055.714819947025, 4925.08597678761], [14354.65149527986, 15141.65499689529], [18064.472203698475, 4939.375429226464], [14337.109943335177, 15142.344172803132], [18072.13699062378, 4957.0752190650965], [14321.906554284738, 15149.71171885819], [18076.01784514042, 4974.067066979798], [14300.055997092044, 15154.29612541676], [18077.098092352855, 4992.908368944918], [14286.595562297036, 15153.392300349864], [18081.67254351743, 5009.773799941322], [14266.864262917428, 15162.091801097937], [18091.009663029457, 5027.0580250691855], [14247.60790823563, 15156.79155985947], [18097.23728247767, 5042.909351007809], [14229.941198718618, 15158.292007195792], [18097.22936479852, 5062.160162868182], [14215.827359462972, 15161.681408131204], [18101.745049207704, 5080.273022545327], [14194.181883942802, 15166.073546888598], [18102.106574976235, 5097.498342370382], [14177.316772140679, 15166.188996843935], [18104.0948868884, 5114.346081116004], [14158.503227781039, 15166.689652598492], [18107.41932636092, 5135.089254215185], [14146.444709625095, 15164.930586206552], [14123.83810413978, 15158.630101631512], [14109.75307279278, 15158.230907608347], [14087.227804374881, 15158.492017337441], [14070.160314030596, 15155.09632812778], [14057.403878371697, 15148.684001687565], [14036.37916835118, 15147.545479358552], [14019.219125711592, 15143.599866202247], [14007.22836773016, 15136.297114997287], [13984.402148107649, 15124.460990703461], [13969.60532609839, 15114.11628993196], [13953.277672429103, 15106.94485106907], [13936.21150573087, 15103.036043751374], [13921.743647035444, 15095.90566100186], [13902.166207186878, 15085.329986254452], [9214.667985922773, 1231.3059785796504], [9229.143722508685, 1216.6819022946584], [3875.179414003622, 11805.47797054131], [9254.222322093206, 1194.1935972515785], [3857.3933457221137, 11800.493263682758], [9249.598952731933, 1170.0123675761279], [3840.174979521893, 11802.373194092157], [9207.67154765129, 1151.1287941382325], [3828.259616851574, 11820.243917074113], [9159.441759978072, 1112.202903146157], [3820.7454016547417, 11863.227254569501], [9168.385839703958, 1089.9161065240332], [3798.6888567326823, 11869.942903895775], [9185.30461914395, 1068.1028768709511], [3780.497156623751, 11865.893928574631], [9198.332443253836, 1055.1528983232274], [3764.17600476346, 11863.998809811048], [9224.009237635764, 1040.6877291286073], [3743.164159851731, 11855.690051275538], [9240.956630624249, 1025.1763500457455], [3727.1740442242008, 11845.028819125495], [9257.611332733999, 1018.4612467387924], [3707.307084152708, 11835.518557583564], [9278.95502074156, 1004.569794584153], [3693.6458691868465, 11821.742640800803], [18689.528766960255, 5501.919620920409], [9303.075077077025, 996.1082444312633], [3678.8643037033034, 11816.803309924784], [18708.7057496357, 5496.297311266215], [9323.404467382119, 988.6194723817753], [3663.1157539245905, 11802.270015116781], [18729.580194631475, 5489.183720042056], [9340.955378889805, 976.2424607104622], [3643.7237519999035, 11793.85773005194], [18743.63818009873, 5476.6984307534585], [9363.124043464079, 971.3003464863577], [3633.286217782763, 11782.352786559291], [18763.62315067288, 5429.364160506782], [9381.45134491194, 967.2245067094336], [3606.243151932489, 11779.174498355715], [18780.28278780321, 5424.399300809397], [9400.32535978139, 964.4343524830765], [3590.109819972655, 11766.966702024423], [18801.05579505535, 5420.232231231115], [9422.204580293386, 960.9606666370237], [3578.604920821148, 11755.689754803345], [18822.366839892697, 5422.608592754579], [9436.052232182701, 960.2586521883786], [3568.1311740148813, 11742.488107110228], [18839.56354418921, 5429.240954647539], [9456.280490789562, 955.4894207023026], [3551.024765751674, 11723.14235260841], [18857.102912491187, 5436.9459608750185], [9476.198179035331, 954.056949129852], [3545.4051387696527, 11709.45948502986], [18878.07762824709, 5448.1447507267585], [13345.504812854575, 15267.054431831784], [9495.90005305945, 951.6721473091166], [3532.381682930398, 11694.571479406935], [18894.04488762119, 5458.100993310101], [13332.722550383303, 15284.537150271208], [9511.612613917794, 950.8045048588247], [3518.9991706408327, 11686.612567835953], [18908.698931261548, 5463.468778517301], [13324.742129067075, 15299.83054988319], [9533.095791640808, 945.4183632413333], [3506.798670784454, 11664.348191070196], [18927.79306173604, 5472.0162951631355], [13329.135625041672, 15321.595595082152], [9548.181917429087, 942.8495939901331], [3496.0286933596944, 11650.467535488628], [18942.31524004403, 5485.173628545424], [13340.456551009673, 15351.144867542782], [9569.082239370793, 946.4070769355458], [3486.827213632758, 11631.402314381237], [18957.52979434491, 5493.275792396278], [13360.605780968559, 15394.060730956087], [9585.645651075174, 940.6138041646918], [3479.083958576899, 11618.364464193612], [18974.344475035556, 5504.603803847829], [13345.696045110817, 15409.574444291327], [9603.402566383476, 942.0587141902361], [3470.357579466072, 11604.26418523377], [18988.395914876135, 5514.701621704822], [13327.585415396257, 15424.004935139557], [9622.859716128558, 947.4930452795525], [3459.3357707504183, 11583.699172370776], [19002.829509190866, 5533.935518417478], [13303.3399395491, 15427.60055683364], [9641.67805423669, 948.522939950577], [3450.2213439873885, 11567.991246373771], [19019.476686611073, 5541.042312844598], [13282.900467193453, 15437.883035019593], [9662.15971959359, 951.4410182540014], [3441.6876810857793, 11552.5065089282], [19034.940499143675, 5554.50592806231], [13264.202276398195, 15442.519302151893], [9677.164827641915, 955.171282539377], [3438.367878697929, 11533.676480634953], [19047.337905201945, 5568.655526458286], [13248.893009718857, 15448.870942738664], [9695.107055258006, 962.407511637808], [3428.077813331969, 11515.995308134821], [19063.39941720583, 5581.37924235026], [13230.601087497082, 15453.806099179172], [9710.697992329951, 963.2549734606873], [3423.778917798656, 11496.086344027863], [19074.186963653658, 5592.384018460871], [13208.797512180172, 15457.71532135189], [9730.19527522137, 970.8716994461429], [3417.537278700387, 11480.182651838753], [19082.23588895437, 5612.846654653258], [13187.607041745796, 15461.25897071464], [9747.840280967881, 978.6316859293147], [3408.627541090711, 11465.010833872133], [19095.787799909594, 5621.949056057696], [13170.376581898308, 15465.971667264675], [9770.737497503287, 983.0744162256888], [19107.916094691842, 5637.6019806095865], [13150.087909640162, 15468.025453139591], [9785.268992806785, 995.289183980698], [19121.358311086544, 5654.735952509713], [13131.991858031484, 15473.155677229835], [9798.925313275773, 996.850091054017], [19129.75433102541, 5671.025981952291], [13115.719797655824, 15477.586659631517], [9815.329273727606, 1006.0891980282613], [19139.707414228353, 5688.971891421941], [13097.001928050537, 15482.036460218573], [19151.27906463144, 5703.594288472377], [13069.1933312685, 15472.743936674204], [19157.18838899699, 5719.370654152008], [13052.922164791147, 15475.530569013616], [19164.81129863183, 5736.2858610707335], [13033.754353343975, 15475.789997989341], [19176.454890952795, 5750.83401121042], [13016.469891621382, 15476.991450593137], [19180.410661555245, 5770.637049663492], [12996.47219407151, 15476.897566194733], [19189.006315563456, 5788.48149821852], [12982.553767843405, 15471.878114289371], [19196.176603231463, 5808.040218862239], [12959.580270010512, 15471.23552166074], [19198.17846770177, 5824.3453865932825], [12942.887381882872, 15469.893983304559], [19201.995581385097, 5840.4595500224095], [12925.152965657995, 15467.171102826745], [19206.500535276602, 5863.073616733804], [12905.078837721376, 15459.293285348918], [19208.39503265638, 5881.179844292899], [12889.440312658437, 15459.016514915682], [19211.622576192487, 5900.656019599148], [2866.011420815601, 11131.528375872818], [2851.31104045338, 11136.353812943562], [2834.1182809934253, 11140.501037568174], [2811.9237345916918, 11144.501598600327], [2795.5584022736875, 11151.017924320768], [2787.924117629067, 11184.364619296888], [2765.328670257004, 11214.710473793093], [10453.462657461758, 778.5505407725868], [2744.102708717808, 11218.09001599389], [10459.050384619972, 758.7322782962292], [2725.296023860923, 11211.185108408448], [10468.827136856737, 744.3986523536732], [2705.344874707167, 11208.352969763277], [12368.40749881824, 15671.279994004115], [10477.786232104525, 727.623998968309], [2687.0151357484283, 11199.896573415754], [12360.174675600487, 15682.041108758538], [10484.55964043003, 706.1312088470731], [2669.4875480367336, 11189.45963208485], [12352.4261640599, 15704.167718947865], [10465.291985091986, 682.809078782564], [2648.6558450629236, 11181.022420404915], [12345.899588707602, 15717.572642247775], [10451.404907613527, 648.8622786451888], [2636.701252167346, 11177.893174090685], [12340.698463376844, 15737.015702607896], [10462.540689873626, 631.8858783064352], [2613.82763549441, 11163.939704948483], [12350.456882568658, 15767.138410828775], [10475.881329900934, 616.6196970718156], [2599.855005551246, 11158.395032017608], [12378.792110712617, 15803.573015727277], [10494.781616077875, 606.1537276512245], [2588.3919923900394, 11144.542516161688], [12367.201304586371, 15825.380325139413], [10510.543621555786, 596.5866283571813], [2567.3793606149266, 11132.990458665037], [12355.307228517835, 15839.436664214736], [10528.070572558558, 587.6089633201191], [2558.3089381776517, 11126.328167713247], [12337.363810793497, 15852.59003836097], [10549.380385457305, 580.7734896131733], [2534.928557916661, 11114.818446835387], [19757.873925799155, 6296.115814522433], [12315.787411910947, 15863.357908231992], [10564.810885081184, 570.6423919510271], [2521.302714772988, 11099.210843361128], [19787.059863912757, 6292.273414990894], [12300.052083537565, 15868.53753983241], [10580.571736585815, 562.537337323156], [2506.6011986273807, 11089.292017165048], [19808.444533222937, 6282.552466086723], [12278.414407429635, 15875.665115548618], [10593.822075976059, 553.2400065085676], [2494.326367859496, 11077.057262227783], [19816.507070009713, 6272.954205550486], [12257.682464341517, 15879.720493796689], [10616.122190484079, 549.1520011754474], [2477.0396790005034, 11066.197716469935], [19826.314215816557, 6259.208600423153], [12239.845409075846, 15884.84941283596], [10630.756620171014, 539.3990317320568], [2464.162071828614, 11049.448376660846], [19827.902690628194, 6229.663575502462], [12219.536227320903, 15890.754239651782], [10651.760614358354, 532.0041338265873], [2453.569398693624, 11039.019809403399], [19847.99341255892, 6206.858503678959], [12198.7725033561, 15892.700521258783], [10669.866602648166, 525.7347676432692], [2440.7514824143145, 11022.072845062154], [19856.627313925535, 6222.651589740708], [12187.829097334761, 15896.49448460809], [10683.022462874302, 524.0344519276696], [2426.7793498190586, 11007.954788704432], [19867.527573399013, 6236.252957142249], [12168.905025138869, 15904.695252616366], [10706.671948415344, 514.4611087424273], [2420.4541329336353, 10992.191215205967], [19870.246458522743, 6256.273097059049], [12147.372585239238, 15909.517391702422], [10722.143094965373, 513.7592626477126], [2409.362530718441, 10978.356791062164], [19875.67042410781, 6277.953508820443], [12126.770006812993, 15909.205391413561], [10740.048675351893, 508.7259857360914], [2392.9100660597906, 10967.494663529127], [19878.558948738268, 6290.748942721664], [12111.637227818952, 15914.649385044002], [10760.592887458159, 505.0379099918937], [2388.4235352327814, 10946.148291246296], [19889.851821833756, 6297.889593877946], [12088.550062318332, 15920.033526591287], [10778.2981297503, 505.29392565443413], [2379.5290067759342, 10929.082574273576], [19890.62581103109, 6304.381773312663], [12071.468704107101, 15921.990607019281], [10794.95980953984, 503.9126964263269], [2366.352238944033, 10913.14494103365], [19897.205447403365, 6307.9544880515605], [12054.878431210527, 15925.251955733227], [10813.189886802458, 494.6916338118608], [2358.8582298491383, 10897.730818690557], [19900.460238623666, 6318.986237195437], [12034.790722961072, 15929.375682865386], [10829.54876192275, 495.7038427721127], [2353.6703768577427, 10879.748706305429], [19910.194096248713, 6324.211476964498], [12016.34127232933, 15927.759758415777], [10850.2037421274, 495.09512743755477], [2344.955801807111, 10859.88497033334], [19913.84105453093, 6328.752307967457], [11998.392841990688, 15925.99667029659], [10868.626738374936, 495.6038432630012], [2339.4866164044943, 10846.035225387895], [19920.57414405304, 6338.264175481425], [11978.264211772475, 15924.15291827725], [10886.099744489067, 500.57566143240547], [2333.9445275694598, 10826.3858178542], [19924.188303630333, 6344.204303413513], [11957.371680403594, 15923.103068116703], [10910.044228391838, 501.3863466871262], [2329.7387530392734, 10809.235046286689], [19929.42314177344, 6356.097835295048], [11940.398553951061, 15918.182625599671], [10925.380221871077, 505.1400581591879], [2320.387188792811, 10790.849591739214], [19933.896689740242, 6360.135265039629], [11920.944384315284, 15915.321019839525], [10944.773532686522, 502.1900397091522], [19935.967615598696, 6369.149081599142], [11899.383749863016, 15910.815924777242], [10963.87122422608, 508.70934512486565], [19939.782559148618, 6371.921790864231], [11886.738999831723, 15912.865310940164], [10978.594284859602, 514.4806434546772], [19950.033307709266, 6375.249836735602], [11867.092567458167, 15908.899623215344], [10995.47745558992, 519.1582549823215], [19957.38609035127, 6382.717269590183], [11848.194474451593, 15898.113252909185], [11017.51964579674, 526.5600034501404], [19969.76049487153, 6394.267432717083], [11828.917911800323, 15895.761870136048], [11032.700492892182, 530.2138591937546], [19978.205541481264, 6405.501186222915], [11052.151950796368, 536.7756315059087], [19993.099298488232, 6426.552429093834], [11064.286133311922, 549.310979056434], [20002.52194251551, 6438.931190139847], [20012.146217046888, 6451.021268670564], [20019.401986647747, 6472.377331722499], [20030.304717644583, 6484.969907647232], [20038.64730241138, 6499.482110040321], [20052.442733331467, 6517.792137563287], [20056.027441526763, 6531.436277830362], [20069.54095871141, 6549.752545884432], [20071.113437143154, 6567.948129089724], [2229.8561756634153, 10511.233152992907], [20080.86251031165, 6586.919476096518], [2215.6942554007983, 10495.982406995288], [20081.182864304283, 6605.229647814471], [2199.2572853764286, 10486.184872584563], [20088.774087203084, 6625.200210623036], [2184.8096607490443, 10475.662786047295], [20087.900254764827, 6639.184536845336], [2165.8655831518117, 10466.361599252908], [20091.043877308257, 6657.995923727314], [2153.1639899833826, 10458.187365531281], [20098.008168620756, 6682.46012436063], [2121.476478239754, 10470.123999949865], [20100.280137076043, 6698.009053845715], [2080.005029938766, 10477.133512059401], [20099.9808045564, 6716.086540305987], [2067.7232147598406, 10464.133890820842], [20098.06419004011, 6737.189793291531], [2055.4320732457563, 10442.332661533117], [20100.176617792225, 6754.819262219768], [2052.215221848688, 10419.930282886548], [20104.425988751696, 6778.588673455233], [2048.137925579562, 10403.584418937593], [20099.30176960968, 6789.297157040768], [2042.9609142062254, 10384.556422347], [20094.743821003824, 6808.838208169123], [2039.246217283886, 10365.343297384417], [20095.695847315597, 6831.133637402148], [2036.1119373014662, 10347.000370392023], [20120.593770013307, 6866.954527096328], [2033.1365241615567, 10333.870971140976], [20108.362595280632, 6886.8876850435045], [2029.8665951474104, 10308.852969833999], [2018.1641644794727, 10291.667377448757], [2016.943724871031, 10272.340653746534], [2021.7882278397446, 10251.545203910646], [2019.5219802014763, 10231.592320002906], [2025.3773812848376, 10213.036545614741], [2022.9765340648592, 10196.068196550797], [2027.2513418074232, 10180.262752955285], [2030.0233452845132, 10159.627216981724], [2034.4499157120008, 10138.855473760457], [2034.9081770064076, 10121.745563762554], [2039.0664474065416, 10104.724983710097], [2039.728574391338, 10082.612236899993], [2049.53939378995, 10065.624619516137], [2055.7131373346783, 10046.713650884718], [11219.88468621124, 16152.409868183895], [2059.3740091733634, 10028.62602857378], [11214.234619034338, 16166.917238126072], [2070.3973583184415, 10011.780365668616], [11212.495260334807, 16184.937141102884], [2077.1103962172056, 9998.969654064713], [11210.256922800909, 16210.25091997796], [2085.3481579171494, 9979.916789088747], [11209.14714636351, 16225.598895236792], [2091.4852151519153, 9964.112916078157], [11244.348963900353, 16255.473915905983], [11722.184292571852, 303.2455450819689], [2101.143947065342, 9942.819980681612], [11253.151886320324, 16287.1579226272], [11728.371296200436, 286.3986779464176], [2111.829779831227, 9930.325533129886], [11243.401053138543, 16306.157804588962], [11737.369027635548, 269.79335651622387], [2122.0685980935814, 9913.241802941688], [11228.954543805332, 16322.862637375918], [11741.847117002006, 255.19446032686392], [2135.585438514012, 9899.16435299223], [11213.04056616081, 16333.013769903715], [11734.721772060031, 233.3549123556586], [2141.3015929149697, 9885.21017144507], [11190.997087722528, 16343.094056230533], [11702.623268279713, 197.26220839776215], [2155.6331684662728, 9870.694861563941], [11172.9686783863, 16351.657962447847], [11711.899589514709, 179.4434405620268], [2168.55982827174, 9859.305394424882], [11159.02138645784, 16360.248083627783], [11723.273675756296, 160.83704416203545], [2179.345886241761, 9840.874715855753], [11136.242027882137, 16369.63681292694], [11737.566841043183, 149.08563221115037], [11120.877006008173, 16380.10289439885], [11753.017314935452, 134.79399196745362], [11100.733895383775, 16385.652765573206], [11770.691196108237, 127.39786216517678], [11079.901926209917, 16394.197236662993], [11785.930145760532, 118.42945810736273], [11070.607593975728, 16402.41148007172], [11794.937615812756, 108.70263277570484], [20292.02641273546, 7299.384084877267], [11050.764123433502, 16409.187288897665], [11816.637257806957, 91.99970969304559], [20308.304118715343, 7300.723094427143], [11030.905157950358, 16416.305031760625], [11830.414362790296, 85.09257588433684], [20324.867191741825, 7309.8911791385035], [11011.795038976823, 16423.52730068288], [11846.726388321607, 76.64094334299443], [20341.630209979834, 7315.498129545129], [10998.847304760828, 16432.711421032145], [11862.719865117804, 66.34645773141528], [20362.600799309672, 7310.5644113114395], [10974.046230057022, 16432.55795549715], [11880.114411243354, 60.61559041714645], [20388.9230698467, 7272.117469899793], [10955.163340568426, 16440.689109422005], [11897.81337972579, 51.73403911307105], [20417.752321512904, 7273.110153646703], [10934.734217999969, 16440.691893476178], [11918.187166865915, 45.90286884960369], [20431.960243508103, 7276.685436367436], [10920.143196932855, 16446.230942740483], [11932.068917564931, 39.37020493397722], [20453.836772663286, 7291.549102357851], [10903.659630861599, 16448.286578538246], [11952.511492333142, 32.293640761170536], [20469.353899858426, 7308.158348321565], [10881.324463464902, 16447.498391294066], [11968.186238744995, 26.18868646462215], [20479.764215207426, 7321.790439764474], [10866.560364834033, 16451.838815479772], [11985.857188822469, 19.003505161148496], [20490.265670573222, 7338.406141581421], [10843.96164510178, 16451.162677285523], [12002.770280562341, 17.82828447999782], [20501.745918192784, 7355.602948152227], [10824.009616778465, 16452.302864762285], [12021.207876953296, 11.306851261586417], [20515.43808470876, 7371.484657892142], [10806.584706639056, 16448.01809194032], [12044.0165516485, 8.362669713504147], [20522.043045870145, 7386.823900824296], [10790.519011399942, 16447.969571360678], [12058.672723770607, 6.705023951944895], [20533.605400810833, 7401.703691784263], [10764.122909215512, 16444.143710515928], [12077.688565553748, 6.838814258779166], [20541.513004557113, 7420.633351290337], [10748.026229692507, 16443.595473026828], [12089.91094064829, 2.494353587302612], [20551.301771365223, 7439.562958555558], [10729.553262137808, 16440.908746801113], [12115.102608249756, 0.0], [20559.89468974038, 7454.015099335229], [10712.662889837404, 16437.64411047194], [12136.464015763835, 4.823007334576687], [20573.613350286847, 7471.26596375287], [10696.940795050585, 16427.000442876044], [12152.295981501578, 0.0042127519263885915], [20578.63675161777, 7487.852274573845], [10676.364026891417, 16425.779988265043], [12171.090353334555, 4.1700835094670765], [20584.392978862277, 7505.5164535931835], [10656.502187690465, 16416.50887676346], [12188.557305188267, 6.135647917195456], [20593.579113090527, 7522.9585508782475], [10642.849468338653, 16413.490647938248], [12204.29610845074, 5.019377319869818], [20598.44881131663, 7540.955299795751], [10621.550971781951, 16402.91434441085], [12224.149431959959, 10.76616641273722], [20603.34273583081, 7558.731664090097], [10605.81291448127, 16399.830153070885], [12241.982008443214, 14.706184075650526], [20609.42777588975, 7579.352154381748], [10592.185895486386, 16385.330446186883], [12262.893859361531, 17.7546082942863], [20616.340651123086, 7598.601296040171], [10571.653760315618, 16376.119555288897], [12281.19551772601, 24.295210501702968], [20614.73577493464, 7613.305109966866], [10553.453247331898, 16370.066648772277], [12296.868808966014, 30.477003584441263], [20619.29653326748, 7632.5780123920995], [10541.601270861225, 16357.119941917219], [12315.619719781447, 34.51288994928473], [20617.083133746986, 7653.866978229518], [10524.500413345988, 16350.980735421239], [12332.990308406064, 36.79279209571541], [20616.8428660247, 7669.350297211669], [10508.676485024393, 16338.687258637277], [12349.751412033336, 50.06774645426776], [20619.276152142673, 7693.831036085001], [10487.74285737786, 16330.380067563208], [12367.52878728148, 55.13422795580118], [20617.554459883482, 7706.302810752153], [10476.893002517172, 16313.746225352399], [12383.255183392903, 61.93358669782174], [20617.582360392436, 7728.238571383496], [10429.014295990579, 16327.751376293425], [12400.08556138631, 71.66686078518978], [20629.098932807567, 7747.161461466865], [10415.662035557325, 16313.603402338194]] \ No newline at end of file diff --git a/tests/fixtures/robust4.json b/tests/fixtures/robust4.json new file mode 100644 index 0000000..7d6e259 --- /dev/null +++ b/tests/fixtures/robust4.json @@ -0,0 +1 @@ +[[-3.0381276552207055, 10.481881920449052], [-2.1931270567413446, 11.016647278872279], [-1.3481264582619854, 11.551412637295508], [-0.5031258597826245, 12.086177995718735], [0.3418747386967347, 12.620943354141964], [1.1868753371760938, 13.155708712565193], [-2.5033622967974765, 9.63688132196969], [-1.6583616983181173, 10.171646680392918], [-0.8133610998387582, 10.706412038816147], [0.03163949864060278, 11.241177397239376], [0.8766400971199619, 11.775942755662605], [1.721640695599322, 12.310708114085832], [-1.9685969383742474, 8.791880723490332], [-1.1235963398948883, 9.326646081913559], [-0.2785957414155291, 9.861411440336788], [0.5664048570638318, 10.396176798760017], [1.411405455543191, 10.930942157183246], [2.25640605402255, 11.465707515606473], [-1.4338315799510184, 7.9468801250109715], [-0.5888309814716592, 8.4816454834342], [0.2561696170076999, 9.016410841857429], [1.10117021548706, 9.551176200280658], [1.94617081396642, 10.085941558703885], [2.791171412445779, 10.620706917127112], [-0.8990662215277911, 7.1018795265316115], [-0.05406562304843021, 7.6366448849548405], [0.7909349754309281, 8.17141024337807], [1.635935573910288, 8.706175601801297], [2.4809361723896473, 9.240940960224526], [3.3259367708690073, 9.775706318647753], [-0.3643008631045621, 6.256878928052252], [0.48069973537479704, 6.7916442864754805], [1.3257003338541562, 7.326409644898709], [2.1707009323335162, 7.861175003321938], [3.0157015308128763, 8.395940361745165], [3.8607021292922354, 8.930705720168394]] \ No newline at end of file diff --git a/tests/fixtures/robust5.json b/tests/fixtures/robust5.json new file mode 100644 index 0000000..66c3a43 --- /dev/null +++ b/tests/fixtures/robust5.json @@ -0,0 +1 @@ +[[1.2000108248775223,0.08939813876119695],[3.197878575122478,0.08939813876119695],[3.9347512248775223,0.08939813876119695],[5.932618975122478,0.08939813876119695],[6.669491624877522,0.08939813876119695],[1.2000108248775223,1.9106018612388114],[3.197878575122478,1.9106018612388114],[3.9347512248775223,1.9106018612388114],[5.932618975122478,1.9106018612388114],[6.669491624877522,1.9106018612388114],[2.0267626140791766,-0.21046296655057145],[2.371126785920824,-0.21046296655057145],[4.761503014079176,-0.21046296655057145],[5.105867185920824,-0.21046296655057145],[7.496243414079176,-0.21046296655057145],[2.0267626140791766,2.2104629665505797],[2.371126785920824,2.2104629665505797],[4.761503014079176,2.2104629665505797],[5.105867185920824,2.2104629665505797],[7.496243414079176,2.2104629665505797],[1.5802128246274927,0.22503184151033584],[2.8176765753725075,0.22503184151033584],[4.314953224627493,0.22503184151033584],[5.552416975372507,0.22503184151033584],[7.049693624627492,0.22503184151033584],[1.5802128246274927,1.7749681584896724],[2.8176765753725075,1.7749681584896724],[4.314953224627493,1.7749681584896724],[5.552416975372507,1.7749681584896724],[7.049693624627492,1.7749681584896724],[0.8315745000000003,1.000000000000004],[3.5663149,1.000000000000004],[3.5663149,1.000000000000004],[6.3010553,1.000000000000004],[6.3010553,1.000000000000004],[0.8315745000000003,1.0000000000000044],[3.5663149,1.0000000000000044],[3.5663149,1.0000000000000044],[6.3010553,1.0000000000000044],[6.3010553,1.0000000000000044],[0.8315745000000003,-0.488685099999997],[3.5663149,-0.488685099999997],[3.5663149,-0.488685099999997],[6.3010553,-0.488685099999997],[6.3010553,-0.488685099999997],[0.8315745000000003,2.4886851000000054],[3.5663149,2.4886851000000054],[3.5663149,2.4886851000000054],[6.3010553,2.4886851000000054],[6.3010553,2.4886851000000054],[2.1989447,-0.61],[2.1989447,-0.61],[4.9336851,-0.61],[4.9336851,-0.61],[7.6684255,-0.61],[2.1989447,2.6100000000000083],[2.1989447,2.6100000000000083],[4.9336851,2.6100000000000083],[4.9336851,2.6100000000000083],[7.6684255,2.6100000000000083],[2.1989447,0.878685100000001],[2.1989447,0.878685100000001],[4.9336851,0.878685100000001],[4.9336851,0.878685100000001],[7.6684255,0.878685100000001],[2.1989447,1.1213149000000073],[2.1989447,1.1213149000000073],[4.9336851,1.1213149000000073],[4.9336851,1.1213149000000073],[7.6684255,1.1213149000000073]] \ No newline at end of file diff --git a/tests/fixtures/robust6.json b/tests/fixtures/robust6.json new file mode 100644 index 0000000..15a628d --- /dev/null +++ b/tests/fixtures/robust6.json @@ -0,0 +1,7 @@ +[ + [0, 0], + [0.0000000000000002220446049250313, 0.0000000000000002220446049250313], + [0.0000000000000004440892098500626, 0.0000000000000002220446049250313], + [-0.0000000000000004440892098500626, 0.0000000000000002220446049250313], + [-0.0000000000000005551115123125783, 0.0000000000000004440892098500626] +] \ No newline at end of file diff --git a/tests/fixtures/ukraine.json b/tests/fixtures/ukraine.json new file mode 100644 index 0000000..18e9538 --- /dev/null +++ b/tests/fixtures/ukraine.json @@ -0,0 +1 @@ +[[168, 180], [168, 178], [168, 179], [168, 181], [168, 183], [167, 183], [167, 184], [165, 184], [162, 186], [164, 188], [161, 188], [160, 191], [158, 193], [156, 193], [152, 195], [152, 198], [150, 198], [147, 198], [148, 205], [150, 210], [148, 210], [148, 208], [145, 206], [142, 206], [140, 206], [138, 206], [135, 206], [135, 209], [131, 209], [131, 211], [127, 211], [124, 210], [120, 207], [120, 204], [120, 202], [124, 201], [123, 201], [125, 198], [125, 194], [127, 194], [127, 191], [130, 191], [132, 189], [134, 189], [134, 186], [136, 184], [134, 182], [134, 179], [134, 176], [136, 174], [139, 174], [141, 177], [142, 176], [144, 176], [147, 178], [148, 176], [151, 178], [154, 178], [153, 175], [152, 174], [152, 170], [152, 168], [150, 166], [148, 166], [147, 165], [145, 162], [146, 160], [146, 157], [146, 155], [144, 155], [142, 152], [140, 150], [138, 150], [138, 148], [140, 145], [140, 142], [140, 138], [139, 138], [137, 138], [135, 138], [133, 135], [132, 132], [129, 132], [128, 132], [124, 132], [124, 130], [123, 130], [118, 126], [116, 124], [112, 122], [109, 122], [105, 122], [102, 124], [100, 124], [97, 124], [95, 126], [92, 127], [89, 127], [88, 130], [85, 132], [80, 134], [72, 134], [69, 134], [65, 138], [64, 138], [58, 137], [56, 133], [52, 133], [51, 133], [48, 133], [44, 133], [41, 131], [38, 130], [35, 130], [32, 127], [30, 127], [27, 127], [24, 127], [24, 126], [23, 124], [20, 122], [17, 122], [16, 118], [15, 116], [15, 110], [18, 108], [20, 102], [24, 97], [28, 102], [28, 98], [26, 97], [28, 94], [27, 85], [29, 79], [32, 76], [39, 70], [44, 66], [48, 65], [53, 61], [53, 58], [51, 54], [54, 54], [52, 48], [51, 43], [48, 42], [49, 38], [48, 34], [51, 30], [53, 33], [58, 30], [61, 30], [60, 27], [64, 26], [68, 24], [74, 24], [80, 24], [85, 26], [92, 26], [96, 29], [103, 32], [109, 33], [112, 37], [116, 37], [120, 37], [124, 35], [126, 35], [128, 38], [132, 38], [134, 41], [138, 38], [140, 36], [142, 40], [144, 43], [145, 41], [149, 41], [155, 41], [159, 41], [161, 46], [165, 46], [164, 42], [164, 39], [164, 34], [167, 30], [173, 24], [178, 24], [184, 24], [189, 26], [195, 21], [195, 20], [199, 20], [203, 20], [207, 17], [211, 17], [216, 17], [218, 16], [222, 22], [225, 27], [228, 31], [226, 34], [224, 34], [226, 39], [228, 43], [230, 46], [236, 46], [242, 46], [243, 50], [245, 50], [247, 54], [247, 56], [248, 60], [248, 65], [253, 66], [255, 64], [260, 64], [264, 67], [268, 71], [272, 66], [275, 66], [281, 61], [285, 66], [286, 70], [292, 74], [294, 74], [296, 74], [296, 71], [301, 74], [307, 74], [311, 78], [315, 74], [315, 77], [319, 77], [322, 82], [328, 82], [331, 81], [331, 84], [333, 86], [333, 90], [330, 95], [326, 98], [328, 99], [332, 98], [333, 101], [331, 104], [329, 104], [327, 106], [329, 111], [332, 116], [333, 119], [333, 122], [332, 126], [332, 130], [327, 130], [321, 130], [317, 130], [315, 134], [312, 134], [308, 138], [306, 138], [306, 144], [306, 149], [306, 152], [301, 152], [297, 154], [295, 154], [292, 154], [292, 158], [288, 158], [283, 162], [281, 164], [279, 163], [276, 163], [273, 166], [272, 169], [268, 168], [265, 170], [260, 172], [256, 176], [252, 176], [248, 181], [246, 182], [246, 189], [246, 194], [248, 197], [250, 198], [252, 200], [252, 203], [254, 205], [260, 205], [264, 202], [267, 202], [269, 202], [272, 199], [280, 199], [278, 202], [278, 207], [278, 211], [276, 211], [272, 213], [268, 213], [265, 213], [264, 211], [262, 210], [260, 210], [257, 212], [257, 214], [255, 217], [253, 217], [253, 221], [249, 220], [247, 220], [243, 222], [240, 223], [239, 226], [234, 231], [229, 231], [224, 231], [219, 227], [220, 227], [222, 224], [222, 222], [222, 219], [224, 217], [222, 214], [220, 212], [217, 210], [215, 210], [211, 209], [208, 206], [202, 209], [202, 205], [206, 202], [211, 198], [216, 195], [220, 192], [224, 192], [221, 186], [218, 186], [214, 185], [208, 185], [204, 186], [200, 186], [193, 183], [190, 182], [188, 182], [190, 178], [186, 178], [184, 174], [182, 171], [178, 171], [173, 174], [169, 174], [169, 175], [169, 179], [167, 182], [164, 186], [160, 192], [155, 195], [152, 198], [150, 198], [148, 198], [148, 202], [151, 208], [148, 210], [146, 208], [144, 205], [140, 205], [137, 208], [132, 208], [132, 210], [127, 210], [124, 210], [120, 206], [120, 202], [123, 202], [124, 201], [124, 198], [128, 195], [131, 191], [133, 187], [135, 183], [130, 203], [129, 208], [123, 203], [129, 203], [129, 198], [133, 198], [136, 200], [142, 200], [143, 199], [143, 197], [137, 196], [136, 194], [133, 194], [136, 186], [136, 182], [141, 186], [144, 186], [150, 186], [150, 190], [155, 190], [159, 188], [156, 182], [151, 182], [144, 182], [164, 176], [161, 177], [157, 177], [166, 176], [168, 165], [175, 167], [180, 167], [188, 159], [195, 164], [195, 162], [187, 162], [178, 163], [173, 166], [168, 170], [156, 170], [157, 165], [164, 165], [164, 161], [170, 159], [167, 158], [159, 154], [149, 151], [145, 145], [145, 138], [152, 138], [152, 146], [159, 146], [165, 153], [176, 153], [180, 153], [187, 153], [194, 153], [202, 153], [202, 158], [197, 158], [193, 158], [193, 142], [180, 142], [171, 142], [163, 135], [176, 135], [186, 139], [201, 139], [206, 139], [205, 147], [205, 160], [198, 160], [206, 174], [205, 178], [196, 178], [196, 182], [202, 182], [206, 181], [209, 181], [215, 181], [222, 181], [230, 177], [238, 175], [241, 175], [237, 175], [237, 168], [237, 161], [232, 156], [231, 162], [225, 166], [217, 169], [210, 173], [224, 173], [227, 173], [235, 175], [237, 178], [228, 192], [222, 199], [216, 199], [211, 204], [205, 206], [219, 207], [222, 211], [229, 214], [236, 214], [244, 211], [247, 211], [268, 206], [277, 201], [279, 201], [281, 202], [278, 202], [242, 178], [236, 170], [236, 162], [255, 162], [251, 156], [240, 156], [253, 152], [261, 152], [277, 157], [268, 151], [255, 143], [260, 142], [267, 145], [271, 149], [273, 154], [258, 146], [257, 131], [256, 134], [248, 137], [260, 137], [260, 134], [271, 137], [276, 138], [276, 144], [289, 144], [285, 150], [294, 150], [298, 149], [301, 145], [292, 145], [282, 134], [276, 134], [283, 127], [282, 116], [277, 113], [283, 113], [288, 106], [296, 106], [297, 113], [297, 118], [298, 118], [310, 122], [310, 128], [300, 130], [300, 140], [292, 129], [292, 114], [283, 122], [289, 122], [299, 122], [299, 134], [294, 134], [288, 124], [314, 121], [311, 113], [308, 110], [304, 96], [299, 90], [299, 82], [305, 87], [309, 94], [311, 101], [312, 102], [314, 107], [320, 112], [320, 115], [326, 116], [323, 109], [321, 102], [321, 94], [321, 90], [328, 90], [328, 88], [316, 88], [316, 84], [307, 84], [290, 77], [289, 88], [289, 97], [278, 97], [268, 106], [268, 110], [261, 105], [255, 103], [244, 103], [252, 100], [252, 91], [252, 82], [242, 78], [252, 78], [259, 78], [264, 87], [267, 92], [272, 91], [272, 83], [264, 83], [260, 79], [276, 79], [283, 84], [283, 94], [289, 94], [284, 86], [272, 77], [253, 110], [248, 110], [239, 110], [234, 114], [222, 125], [219, 127], [219, 131], [219, 138], [219, 141], [224, 139], [224, 135], [225, 130], [232, 136], [240, 138], [237, 131], [237, 118], [248, 120], [256, 122], [262, 127], [255, 118], [245, 110], [207, 129], [199, 134], [195, 134], [188, 130], [180, 130], [165, 129], [156, 129], [165, 128], [173, 125], [185, 126], [193, 126], [201, 124], [204, 123], [208, 116], [214, 114], [207, 114], [196, 114], [183, 121], [183, 111], [189, 117], [196, 112], [172, 126], [164, 126], [159, 114], [174, 106], [186, 106], [192, 105], [184, 105], [184, 96], [173, 96], [163, 111], [159, 110], [152, 110], [168, 110], [171, 106], [183, 98], [193, 101], [219, 96], [225, 97], [225, 104], [232, 92], [240, 92], [237, 86], [229, 86], [216, 88], [214, 79], [203, 79], [203, 75], [212, 75], [221, 75], [229, 80], [230, 89], [217, 88], [217, 77], [228, 77], [228, 69], [235, 71], [240, 71], [244, 66], [236, 54], [236, 62], [232, 68], [229, 61], [216, 61], [212, 58], [212, 47], [212, 39], [214, 28], [215, 48], [225, 55], [236, 55], [202, 65], [202, 54], [202, 44], [202, 24], [198, 32], [199, 38], [192, 38], [185, 38], [174, 42], [174, 48], [178, 51], [184, 51], [194, 55], [191, 68], [182, 68], [174, 69], [167, 67], [153, 59], [153, 49], [147, 49], [152, 58], [152, 74], [154, 83], [161, 83], [165, 88], [153, 97], [153, 89], [152, 82], [168, 88], [168, 101], [156, 102], [156, 119], [173, 110], [184, 110], [177, 106], [160, 106], [145, 125], [137, 122], [131, 120], [124, 120], [122, 118], [113, 118], [114, 111], [129, 111], [140, 110], [143, 106], [137, 102], [127, 102], [119, 98], [126, 93], [139, 93], [139, 99], [141, 95], [128, 89], [118, 74], [128, 76], [135, 76], [141, 83], [141, 71], [137, 61], [137, 50], [129, 50], [118, 50], [109, 52], [112, 61], [123, 60], [134, 60], [129, 76], [121, 67], [124, 76], [123, 76], [111, 74], [128, 73], [109, 83], [109, 94], [105, 103], [102, 118], [92, 113], [98, 105], [99, 93], [94, 93], [94, 81], [99, 81], [100, 73], [100, 89], [100, 60], [100, 55], [105, 37], [101, 34], [93, 37], [90, 37], [90, 49], [99, 49], [88, 68], [80, 68], [78, 64], [88, 62], [86, 77], [76, 89], [71, 91], [71, 106], [78, 106], [82, 118], [84, 110], [71, 104], [76, 103], [76, 91], [78, 83], [85, 89], [83, 103], [83, 119], [76, 130], [62, 130], [68, 127], [74, 126], [83, 123], [62, 123], [56, 123], [59, 129], [59, 120], [49, 110], [46, 106], [56, 100], [62, 94], [62, 109], [72, 112], [67, 112], [57, 112], [61, 122], [60, 102], [52, 125], [44, 121], [36, 114], [32, 110], [20, 110], [22, 118], [35, 118], [44, 124], [32, 119], [22, 111], [44, 96], [36, 106], [36, 94], [32, 94], [35, 83], [44, 91], [52, 91], [52, 80], [59, 80], [62, 76], [62, 70], [47, 78], [55, 75], [64, 71], [64, 60], [58, 53], [58, 43], [65, 43], [65, 60], [76, 52], [73, 38], [76, 36], [93, 48], [89, 39], [99, 40], [98, 50], [94, 63], [117, 63], [131, 67], [131, 74], [142, 78], [140, 61], [124, 58], [124, 48], [136, 55], [236, 200], [228, 200], [226, 192], [232, 198], [238, 210], [248, 210], [236, 220], [230, 223], [230, 213], [175, 32], [172, 32], [171, 38], [184, 30]] \ No newline at end of file diff --git a/tests/tests.rs b/tests/tests.rs index 708c12c..6213b92 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -2,17 +2,37 @@ use delaunator::{triangulate, Point, Triangulation, EMPTY, EPSILON}; use std::f64; use std::fs::File; +macro_rules! test_fixture { + ($fixture_name:ident) => { + #[test] + fn $fixture_name() { + let path = format!("tests/fixtures/{}.json", stringify!($fixture_name)); + let points = load_fixture(&path); + validate(&points); + } + }; +} + #[test] fn basic() { validate(&load_fixture("tests/fixtures/basic.json")); } -#[test] -fn js_issues() { - validate(&load_fixture("tests/fixtures/issue11.json")); - validate(&load_fixture("tests/fixtures/issue13.json")); - validate(&load_fixture("tests/fixtures/issue24.json")); -} +test_fixture!(robust2); +test_fixture!(robust3); +test_fixture!(robust4); +test_fixture!(robust5); +test_fixture!(robust6); +test_fixture!(issue10); +test_fixture!(ukraine); +test_fixture!(grid); + +// issues from JS repo +test_fixture!(issue11js); +test_fixture!(issue13js); +test_fixture!(issue24js); +test_fixture!(issue43js); +test_fixture!(issue44js); #[test] fn robustness() { @@ -23,9 +43,6 @@ fn robustness() { validate(&(scale_points(&points, 1e-2))); validate(&(scale_points(&points, 100.0))); validate(&(scale_points(&points, 1e9))); - - validate(&load_fixture("tests/fixtures/robust2.json")); - validate(&load_fixture("tests/fixtures/robust3.json")); } #[test] @@ -116,6 +133,14 @@ fn load_fixture(path: &str) -> Vec { u.iter().map(|p| Point { x: p.0, y: p.1 }).collect() } +fn orient(p: &Point, q: &Point, r: &Point) -> f64 { + robust::orient2d(p.into(), q.into(), r.into()) +} + +fn convex(r: &Point, q: &Point, p: &Point) -> bool { + orient(p, r, q) <= 0. || orient(r, q, p) <= 0. || orient(q, p, r) < 0. +} + fn validate(points: &[Point]) { let Triangulation { triangles, @@ -138,6 +163,11 @@ fn validate(points: &[Point]) { while i < hull.len() { let p0 = &points[hull[j]]; let p = &points[hull[i]]; + + if !convex(p0, &points[hull[(j + 1) % hull.len()]], &points[hull[(j + 3) % hull.len()]]) { + panic!("Hull is not convex at {}", j); + } + hull_areas.push((p.x - p0.x) * (p.y + p0.y)); j = i; i += 1;