Skip to content

Instantly share code, notes, and snippets.

@darosh
Last active October 30, 2015 11:36
Show Gist options
  • Save darosh/14e2e4e14898f13e13c7 to your computer and use it in GitHub Desktop.
Save darosh/14e2e4e14898f13e13c7 to your computer and use it in GitHub Desktop.
Planetary Grid Browser I
function Config() {
'use strict';
return {
shift: 31.2,
lineWidth: 1,
symbolLine: 4,
dash: [2, 3],
fontSize: 16,
lineMid: 11,
titleSize: 18,
lineHeight: 19,
durationScale: 1.2,
durationSpeed: 1.5,
durationMin: 750,
durationMax: 2000,
frameLineWidth: 3,
mraf: !window.chrome,
filter: {
map: {},
graticule: {off: true},
'cool-line': {},
'hot-line': {},
'balanced-line': {},
'cool-point': {off: true},
'hot-point': {off: true},
'balanced-point': {off: true},
megalith: {},
mound: {},
pyramid: {},
temple: {},
volcano: {},
place: {}
},
colors: {
water: '#def4ff',
graticule: '#999',
land: '#ffffff',
border: 'rgba(0,0,0,0.5)',
cool: '#1f78b4',
hot: '#e31a1c',
balanced: '#333',
frame: '#333',
focus: 'rgba(0,0,0,0.87)',
selection: 'rgba(255,255,255,0.58)',
shape: '#333',
bg: '#fff'
},
shapes: {
megalith: '#299ae6',
mound: '#90de43',
pyramid: '#ffff4d',
temple: '#ff7f00',
volcano: '#e31a1c',
place: '#ccc'
},
sizes: {
megalith: 80,
mound: 66,
pyramid: 66,
temple: 80,
volcano: 48,
place: 48,
'hot-line': 80,
'cool-line': 80,
'balanced-line': 80,
'cool-point': 80,
'hot-point': 80,
'balanced-point': 80,
'map': 100
},
symbols: {
megalith: 'square',
mound: 'triangle-up',
pyramid: 'triangle-up',
temple: 'cross',
volcano: 'circle',
place: 'circle'
}
};
}
function SvgGlobe(root, width, height, cfg) {
'use strict';
var maxScale = 3;
var self;
var round = d3.geo.transform({
point: function (x, y) {
this.stream.point(~~x, ~~y);
}
});
var projectionGlobe = d3.geo
.orthographic()
.clipAngle(90)
.precision(0)
.translate([height / 2, height / 2])
.scale(height / 2);
var projectionRaw = d3.geo
.orthographic()
.precision(2)
.clipAngle(90)
.translate([height / 2, height / 2])
.scale(height / 2);
var projectionRawZero = d3.geo
.orthographic()
.precision(0)
.clipAngle(90)
.translate([height / 2, height / 2])
.scale(height / 2);
var projectionRawZeroRound = {
stream: function (s) {
return projectionRawZero.stream(round.stream(s));
}
};
var projectionGlobeCalc = d3.geo
.orthographic()
.clipAngle(90)
.translate([height / 2, height / 2])
.scale(height / 2);
var projectionLinesGlobe = d3.geo
.orthographic()
.rotate([cfg.shift, 0, 0])
.precision(10)
.clipAngle(90)
.translate([height / 2, height / 2])
.scale(height / 2);
var pathRaw = d3.geo.path()
.projection(projectionRaw);
var pathRawZero = d3.geo.path()
.projection(projectionRawZero);
var pathRawZeroRound = d3.geo.path()
.projection(projectionRawZeroRound);
var pathLinesGlobe = d3.geo.path()
.projection(projectionLinesGlobe);
var zoom = d3.behavior.zoom().scaleExtent([1, maxScale])
.on('zoomstart', zoomed)
.on('zoom', zoomed)
.on('zoomend', zoomed);
root.append('circle')
.attr('class', 'overlay-white')
.attr('cx', width / 2)
.attr('cy', height / 2)
.attr('r', height / 2);
root.append('circle')
.attr('class', 'map water')
.attr('cx', width / 2)
.attr('cy', height / 2)
.attr('r', height / 2);
var graticuleGlobe = root.append('path').datum(d3.geo.graticule()())
.attr('class', 'graticule')
.style('display', 'none')
.attr('d', pathRaw);
var landGlobe = root.append('path').attr('class', 'map land country');
var lineGlobeG = root.append('g').attr('stroke-width', 1);
root.call(zoom);
root.append('circle')
.attr('class', 'border')
.style('stroke-width', cfg.frameLineWidth)
.attr('cx', width / 2)
.attr('cy', height / 2)
.attr('r', height / 2);
var g = root.append('g');
var h = d3.geo.hexakisIcosahedron;
Utils.svgLines(lineGlobeG, pathLinesGlobe, h.icosahedronEdges(), 'cool-line', 'Cool line');
Utils.svgLines(lineGlobeG, pathLinesGlobe, h.hexakisCenterEdges(), 'hot-line', 'Hot line');
Utils.svgLines(lineGlobeG, pathLinesGlobe, h.hexakisSideEdges(), 'balanced-line', 'Balanced line');
var linesSelection = root.selectAll('.line');
var highlight = root.append('circle')
.style('display', 'none')
.attr('class', 'border land')
.attr('cx', width / 2)
.attr('cy', height / 2)
.attr('r', 5);
var a, pG, pGL;
function zoomed() {
var m = d3.mouse(this);
if (d3.event && d3.event.sourceEvent) {
d3.event.sourceEvent.stopPropagation();
d3.event.sourceEvent.preventDefault();
}
({
zoomstart: function () {
pG = projectionGlobe.rotate();
pGL = projectionLinesGlobe.rotate();
projectionGlobeCalc.rotate(pG);
a = projectionGlobeCalc.invert(m);
},
zoom: function () {
var b = projectionGlobeCalc.invert(m);
var pgR = [pG[0] + b[0] - a[0], pG[1] + b[1] - a[1]];
var plgR = [pGL[0] + b[0] - a[0], pGL[1] + b[1] - a[1]];
if (self.canZoom && !self.canZoom(pgR)) {
return;
}
if (!isNaN(b[0]) && !isNaN(b[1])) {
projectionRaw.rotate(pgR);
projectionRawZero.rotate(pgR);
projectionGlobe.rotate(pgR);
projectionLinesGlobe.rotate(plgR);
update();
if (self.onZoomed) {
var s = zoom.scale();
self.onZoomed(null, s, pgR);
}
}
},
zoomend: function () {
}
})[d3.event.type]();
}
function updateSelection() {
if (self.selection) {
var coo = self.selection.geometry ? self.selection : {
'type': 'Feature',
'geometry': {'type': 'Point', 'coordinates': [self.selection[0] + cfg.shift, self.selection[1], 0]}
};
var p = pathRaw.centroid(coo);
if (!isNaN(p[0]) && !isNaN(p[1])) {
p[0] -= width / 2;
p[1] -= height / 2;
highlight.style('display', null);
highlight.attr('transform', 'translate(' + p + ')');
} else {
highlight.style('display', 'none');
}
} else {
highlight.style('display', 'none');
}
}
function update(running) {
projectionLinesGlobe.precision(running ? 2 : 1);
if (!cfg.filter.map.off) {
landGlobe.attr('d', pathRawZeroRound);
}
if (!cfg.filter.graticule.off) {
graticuleGlobe.attr('d', pathRaw);
}
linesSelection.attr('d', pathLinesGlobe);
updateSelection();
}
function setZoom(t, s, i, running) {
zoom.scale(s);
projectionLinesGlobe.rotate([i[0] + cfg.shift, i[1]]);
projectionGlobe.rotate(i);
projectionRaw.rotate(i);
projectionRawZero.rotate(i);
update(running)
}
self = {
root: root,
land: landGlobe,
pathRaw: pathRaw,
setZoom: setZoom,
updateSelection: updateSelection,
update: update
};
return self;
}
<!DOCTYPE html>
<meta charset="utf-8">
<title>Planetary Grid I</title>
<link rel="stylesheet" href="style.css">
<body>
<script src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.19/topojson.min.js"></script>
<script src="/darosh/raw/2fe464efd794bde5ed68/hexakis-icosahedron.js"></script>
<script src="/darosh/raw/2d12a584a14910032ab8/togeojson.js"></script>
<script src="config.js"></script>
<script src="utils.js"></script>
<script src="globe.js"></script>
<script src="map.js"></script>
<script src="legend.js"></script>
<script src="list.js"></script>
<script src="info.js"></script>
<script>
(function () {
'use strict';
var widthList = 220;
var margin = 12;
var widthScrollBar = self.frameElement ? 0 : 20;
var widthScreen = Math.max(document.body.clientWidth || 0, 960) - widthScrollBar;
widthScreen = Math.min(1480, widthScreen);
var heightScreen = Math.max(500, widthScreen / (960 / 480));
margin = widthScreen > 960 ? margin * 2 : margin;
var widthGlobe = 200;
var heightGlobe = 200;
if (heightScreen > 660) {
widthGlobe = 280;
heightGlobe = 280;
}
var widthLegend = 140;
var widthMap = widthScreen - Math.max(widthLegend, widthGlobe / 2) - 2 * margin;
var heightMap = heightScreen - heightGlobe / 2 - 2 * margin;
var selected;
var cfg = new Config();
cfg.url = 'http://bl.ocks.org/darosh/14e2e4e14898f13e13c7';
var svg = d3.select('body').append('svg')
.attr('width', widthMap + Math.max(widthLegend, widthGlobe / 2) + 2 * margin)
.attr('height', heightMap + heightGlobe / 2 + 2 * margin);
var map = new SvgMap(svg, widthMap, heightMap, margin, cfg);
var legend = new SvgLegend(svg.append('g')
.attr('transform', 'translate(' + [widthMap + margin + cfg.lineMid, margin] + ')'),
cfg, clickedLegend
);
cfg.filter = legend.lookFilter;
var globe = new SvgGlobe(svg.append('g')
.attr('transform', 'translate(' + [widthMap - widthGlobe / 2 + margin, heightMap - heightGlobe / 2 + margin] + ')'),
widthGlobe, heightGlobe, cfg
);
var info = new HtmlInfo(d3.select('body').append('div')
.style('position', 'absolute')
.style('left', (2 * margin) + 'px')
.style('top', (2 * margin) + 'px')
.style('border', cfg.frameLineWidth + 'px solid ' + cfg.colors.frame)
.style('padding', (cfg.titleSize * 0.75) + 'px')
.style('min-width', (cfg.titleSize * 8) + 'px')
.style('background-color', cfg.colors.bg),
cfg
);
var controls = svg.append('g')
.attr('transform', 'translate(' + [margin * 1.5, heightMap + margin * .5 - 22] + ')');
Utils.svgControls(controls, setIndex, map.reset);
var list = new SvgList(svg.append('g')
.attr('transform', 'translate(' + [margin, (heightMap + margin + cfg.lineMid)] + ')'),
cfg, widthMap - widthGlobe / 2, widthList,
function (h) {
h = heightMap + h + 3 * margin;
svg.attr('height', h);
d3.select(self.frameElement).style('height', h + 'px');
},
selectedPlace
);
map.clickedPoint = function (p) {
selectedPlace(p);
};
map.onZoomed = globe.setZoom;
globe.onZoomed = map.setZoom;
globe.canZoom = function (i) {
var p = map.projection(i);
return !isNaN(p[0]) && !isNaN(p[1]);
};
if (self.frameElement) {
self.frameElement.focus();
}
d3.select('body').on('keydown', function () {
var i = null;
if (d3.event.keyCode === 37) {
i = -1;
} else if (d3.event.keyCode === 39) {
i = +1;
} else if (d3.event.keyCode === 27 && selected) {
selectedPlace(selected);
}
if (i !== null) {
setIndex(i);
}
});
d3.json('mercator-countries.json', function (topo) {
topojson.presimplify(topo);
map.countries.datum(topojson.mesh(topo, topo.objects.countries)).attr('d', map.path);
});
d3.json('mercator-land.json', function (topo) {
topojson.presimplify(topo);
map.land.datum(topojson.feature(topo, topo.objects.land)).attr('d', map.path);
});
d3.json('land.json', function (topo) {
globe.land.datum(topojson.feature(topo, topo.objects.land)).attr('d', globe.pathRaw);
});
d3.xml('/darosh/raw/2d12a584a14910032ab8/places.kml', function (xml) {
var geo = toGeoJSON.kml(xml);
Utils.parsePlaces(geo);
if (list) {
list.update(geo);
}
cfg.filtered = geo.features;
map.placesSelection = Utils.svgPlaces(map.g, geo, map.pathRaw, 1.25, cfg, selectedPlace);
});
function clickedLegend(d) {
map.root.selectAll('.' + d.key).style('display', d.off ? 'none' : null);
globe.root.selectAll('.' + d.key).style('display', d.off ? 'none' : null);
list.filter(legend.lookShapes);
if (!d.off) {
globe.update();
map.update();
}
}
function selectedPlace(d) {
list.selection(selected, d);
if (d === selected) {
d = null;
}
globe.selection = d;
if (d === null) {
globe.updateSelection();
}
info.update(d);
selected = d;
map.zoomTo(d, info.size);
}
function setIndex(i) {
var f = cfg.filtered;
var c = f.indexOf(selected);
c = c === -1 ? 0 : (c + i);
c = (c + f.length) % f.length;
if (list) {
list.selection(selected, f[c]);
}
info.update(f[c]);
globe.selection = f[c];
setTimeout(function () {
map.zoomTo(f[c], info.size);
}, 50);
selected = f[c];
}
})();
</script>
</body>
function HtmlInfo(root, cfg) {
'use strict';
var self;
var previous;
var a = root.append('a')
.style('font-size', (cfg.titleSize * 1.25) + 'px')
.style('line-height', 1)
.style('font-weight', 'bold')
.style('color', '#333')
.attr('href', 'http://bl.ocks.org/darosh/7b816a50e66bb62208a7')
.attr('target', '_blank')
.text('Planetary Grid');
root = root.append('div')
.style('display', 'none');
var b = root.append('b')
.style('display', 'block')
.style('font-size', cfg.titleSize + 'px');
var s = b.append('svg')
.attr('width', cfg.titleSize * 1.6)
.attr('height', cfg.titleSize * 1.6)
.style('float', 'left')
.style('margin-top', (-cfg.titleSize * 0.25) + 'px')
.style('margin-left', (-cfg.titleSize * 0.25) + 'px')
.style('margin-right', (cfg.titleSize * 0.25) + 'px')
.append('path')
.style('stroke-width', 2)
.attr('transform', 'translate(' + [cfg.titleSize * 1.6 / 2, cfg.titleSize * 1.6 / 2] + ')');
var t = b.append('span');
var c = root.append('small')
.style('display', 'block')
.style('text-align', 'right')
.style('margin-top', (cfg.titleSize / 4) + 'px')
.style('margin-bottom', (cfg.titleSize / 2) + 'px');
var d = root.append('a')
.style('display', 'block')
.attr('target', '_blank')
.text('Wikipedia');
var e = root.append('a')
.style('display', 'block')
.attr('target', '_blank')
.text('Google');
var f = root.append('a')
.style('display', 'block')
.attr('target', '_blank')
.text('Google Maps');
var g = root.append('a')
.style('display', 'block')
.attr('target', '_blank')
.text('Google Earth');
function update(feature) {
if (previous === feature) {
return;
}
previous = feature;
if (feature) {
t.text(feature.properties.name);
s
.attr('class', feature.coordinates ? 'legend-symbol ' + feature.type : 'symbol ' + feature.properties.description)
.attr('d', function () {
var s = cfg.sizes[feature.properties.description || 'place'] * cfg.titleSize / 6;
return d3.svg.symbol().size(s).type(cfg.symbols[feature.properties ? feature.properties.description : 'circle'])();
});
if (feature.type !== 'Feature') {
d.style('display', 'none');
e.style('display', 'none');
} else {
d.style('display', 'block');
e.style('display', 'block');
}
var coo = [feature.geometry.coordinates[1], feature.geometry.coordinates[0]];
coo[0] = d3.round(coo[0], 3);
coo[1] = d3.round(coo[1], 3);
c.text(d3.round(coo[0], 2) + ', ' + d3.round(coo[1], 2));
d.attr('href', 'https://wikipedia.org/wiki/Special:Search/' + feature.properties.name);
e.attr('href', 'https://www.google.com/search?q=' + feature.properties.name);
f.attr('href', 'https://www.google.com/maps/@' + coo[0] + ',' + coo[1] + ',12z');
g.attr('href', 'https://www.google.com/maps/@' + coo[0] + ',' + coo[1] + ',512m/data=!3m1!1e3');
a.style('display', 'none');
root.style('display', null);
self.size = root.node().getBoundingClientRect();
} else {
a.style('display', null);
root.style('display', 'none');
}
}
return self = {
update: update
};
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
function SvgLegend(root, cfg, clicked) {
'use strict';
var shapes = cfg.symbols;
var data = d3.map(shapes).entries().filter(function (d) {
return d.key !== 'undefined'
});
data.forEach(function (v) {
v.classed = 'symbol ' + v.key;
v.symbol = true;
});
data = data.concat([
{key: 'cool-line', value: 'circle', path: 'M-10,0 L10,0'},
{key: 'hot-line', value: 'circle', path: 'M-10,0 L10,0'},
{key: 'balanced-line', value: 'circle', path: 'M-10,0 L10,0'},
{key: 'cool-point', value: 'circle', classed: 'cool-point', off: true},
{key: 'hot-point', value: 'circle', classed: 'hot-point', off: true},
{key: 'balanced-point', value: 'circle', classed: 'balanced-point', off: true},
{key: 'graticule', value: 'circle', path: 'M-8.25,0 L8.25,0', off: true},
{key: 'map', value: 'square', classed: 'map'}
]);
var l = root.selectAll('legend').data(data);
var g = l.enter().append('g')
.attr('class', 'legend')
.attr('transform', function (d, i) {
return 'translate(' + [0, i * cfg.lineHeight] + ')';
})
.style('opacity', function (d) {
return d.off ? 0.25 : null;
})
.on('click', function (d) {
d.off = !d.off;
d3.select(this).style('opacity', d.off ? 0.25 : null);
clicked(d);
});
g.append('path')
.attr('class', function (d) {
return d.classed || d.key;
})
.style('stroke-width', function (d) {
return (d.key === 'map') ? 1.5 : ((d.path || d.classed) && !d.symbol) ? 2 : 1;
})
.attr('transform', 'translate(' + [cfg.fontSize / 2, cfg.lineMid] + ')')
.attr('d', function (d) {
return d.path || d3.svg.symbol().size(cfg.sizes[d.key]).type(d.value)();
});
g.append('text')
.attr('dy', cfg.fontSize)
.attr('dx', cfg.fontSize + cfg.lineMid)
.text(function (d) {
return d.key.replace('-', ' ');
});
var lookShapes = {};
var lookFilter = {};
data.forEach(function (d) {
lookFilter[d.key] = d;
if (shapes[d.key]) {
lookShapes[d.key] = d;
}
});
return {
data: data,
lookShapes: lookShapes,
lookFilter: lookFilter
};
}
function SvgList(root, cfg, width, minItemWidth, updated, clicked) {
'use strict';
var self;
var shapes = cfg.symbols;
var cols = Math.floor(width / minItemWidth);
var itemWidth = Math.floor((width + cfg.fontSize) / cols);
var data;
var previousData = [];
function selection(o, n) {
root.selectAll('g').data(o ? [o, n] : [n], function (d) {
return d && d.properties ? d.properties.id : null;
})
.style('font-weight', function (d) {
return ((d === n) && (n !== o)) ? 'bold' : null;
})
.selectAll('text')
.each(wrap);
}
function update(topo) {
data = topo.features;
self.filtered = data;
var lastRow = Math.ceil(data.length / cols);
var height = lastRow * cfg.lineHeight;
updated(height);
enter(data, previousData);
previousData = data;
}
function filter(l) {
var filtered = data.filter(function (d) {
var t = d.properties.description;
return !l[t].off;
});
enter(filtered, previousData);
previousData = filtered;
cfg.filtered = filtered;
}
function enter(filtered, previousData) {
var lastRow = Math.ceil(filtered.length / cols);
var g = root.selectAll('g').data(filtered, function (d) {
return d.properties.id;
});
g.exit().remove();
g.transition().attr('transform', function (d, i) {
var row = i % lastRow;
var col = (i - row) / lastRow;
return 'translate(' + [col * itemWidth, row * cfg.lineHeight] + ')';
});
var a = g.enter().append('g')
.attr('class', 'item')
.style('opacity', previousData.length ? 0 : 1)
.attr('transform', function (d, i) {
var row = i % lastRow;
var col = (i - row) / lastRow;
return 'translate(' + [col * itemWidth, row * cfg.lineHeight] + ')';
})
.on('click', clicked);
a.transition().delay(previousData.length ? 250 : 0)
.style('opacity', 1);
a.append('path')
.attr('class', function (d) {
return 'symbol ' + d.properties.description;
})
.attr('transform', 'translate(' + [cfg.fontSize / 2, cfg.lineMid] + ')')
.attr('d', function (d) {
var s = cfg.sizes[d.properties.description];
return d3.svg.symbol().size(s).type(shapes[d.properties.description])();
});
a.append('text')
.attr('dy', cfg.fontSize)
.attr('dx', cfg.fontSize + cfg.lineMid)
.text(function (d) {
return d.properties.name;
})
.each(wrap);
}
function wrap() {
var self = d3.select(this);
var text = self.data()[0].properties.name;
self.text(text);
var textLength = self.node().getComputedTextLength();
while (textLength > (itemWidth - 50) && text.length > 0) {
text = text.slice(0, -1);
self.text(text + '…');
textLength = self.node().getComputedTextLength();
}
self.text(self.text().replace(' …', '…'));
}
self = {
update: update,
filter: filter,
selection: selection
};
return self;
}
function SvgMap(svg, width, height, margin, cfg) {
'use strict';
var maxScale = 3;
var self;
var focused;
var arrowStart;
var prevScale;
var referenceSize = Math.sqrt(height * height + width * width) * cfg.durationScale;
var clip = d3.geo.clipExtent().extent([[-width / 2, -height / 2], [width / 2, height / 2]]);
var projection = d3.geo.mercator()
.translate([0, 0])
.precision(0)
.scale(width / 2 / Math.PI);
var simplify = d3.geo.transform({
point: function (x, y, z) {
if (z >= projectionSimplified.area) {
this.stream.point(~~(x * width), ~~(y * width));
}
}
});
var round = d3.geo.transform({
point: function (x, y) {
this.stream.point(~~(x * 10) / 10, ~~(y * 10) / 10);
}
});
var projectionRounded = {
stream: function (s) {
return projection.stream(round.stream(s));
},
baseArea: 4e-3 / width
};
var projectionLinesRounded = {
stream: function (s) {
return projectionLines.stream(round.stream(s));
},
baseArea: 4e-3 / width
};
var projectionSimplified = {
stream: function (s) {
return simplify.stream(clip.stream(s));
},
baseArea: 4e-3 / width
};
projectionSimplified.area = projectionSimplified.baseArea;
var projectionLines = d3.geo.mercator()
.rotate([cfg.shift, 0, 0])
.translate([0, 0])
.precision(1)
.scale(width / 2 / Math.PI);
var path = d3.geo.path()
.projection(projectionSimplified);
var pathRaw = d3.geo.path()
.projection(projection);
var pathRawRounded = d3.geo.path()
.projection(projectionRounded);
var pathLines = d3.geo.path()
.projection(projectionLines);
var pathLinesRounded = d3.geo.path()
.projection(projectionLinesRounded);
var zoom = d3.behavior.zoom()
.scaleExtent([1, maxScale])
.on('zoom', zoomed);
var defs = svg.append('defs');
defs.append('clipPath')
.attr('id', 'clip-map')
.append('rect')
.attr("x", -width / 2)
.attr("y", -height / 2)
.attr("width", width)
.attr("height", height);
defs.append('clipPath')
.attr('id', 'clip-arrow')
.append('rect')
.attr("x", margin)
.attr("y", margin)
.attr("width", width)
.attr("height", height);
var clipGroup = svg.append("g")
.attr("transform", "translate(" + [width / 2 + margin, height / 2 + margin] + ")")
.style('clip-path', 'url(#clip-map)')
.call(zoom);
clipGroup.append("rect")
.attr("class", "map water")
.attr("x", -width / 2)
.attr("y", -height / 2)
.attr("width", width)
.attr("height", height);
clipGroup.append("rect")
.attr("class", "overlay")
.attr("x", -width / 2)
.attr("y", -height / 2)
.attr("width", width)
.attr("height", height);
var g = clipGroup.append('g');
var graticulePath = g.append('path')
.datum(d3.geo.graticule()())
.attr('class', 'graticule')
.style('display', 'none')
.attr('d', pathRaw);
var land = g.append('path').attr('class', 'map land');
var countries = g.append('path').attr('class', 'map country');
var h = d3.geo.hexakisIcosahedron;
var coolLines = Utils.svgLines(g, pathLines, h.icosahedronEdges(), 'cool-line');
var hotLines = Utils.svgLines(g, pathLines, h.hexakisCenterEdges(), 'hot-line');
var balancedLines = Utils.svgLines(g, pathLines, h.hexakisSideEdges(), 'balanced-line');
var coolPointsData = Utils.pointsToFeatures(h.icosahedronPoints(), 'cool-point', 'Cool point', cfg.shift);
var hotPointsData = Utils.pointsToFeatures(h.hexakisCenterPoints(), 'hot-point', 'Hot point', cfg.shift);
var balancedPointsData = Utils.pointsToFeatures(h.hexakisCrossPoints(), 'balanced-point', 'Balanced point', cfg.shift);
Utils.svgPoints(g, coolPointsData, 'cool-point', projectionLines, clickedPoint, 'none');
Utils.svgPoints(g, hotPointsData, 'hot-point', projectionLines, clickedPoint, 'none');
Utils.svgPoints(g, balancedPointsData, 'balanced-point', projectionLines, clickedPoint, 'none');
function clickedPoint(d) {
self.clickedPoint(d);
}
var placesGroup = g.append('g');
var selectedCircleGroup = svg.append('g')
.style('display', 'none')
.style('clip-path', 'url(#clip-arrow)');
var selectedCircle = selectedCircleGroup.append('circle')
.attr('cx', margin)
.attr('cy', margin)
.attr('r', 20)
.attr('class', 'border');
var selectedArrow = selectedCircleGroup.append('line')
.attr('x1', margin * 4)
.attr('y1', margin * 4)
.attr('class', 'border');
svg.append("rect")
.attr("class", "border")
.style('stroke-width', cfg.frameLineWidth)
.attr("transform", "translate(" + [width / 2 + margin, height / 2 + margin] + ")")
.attr("x", -width / 2 + cfg.frameLineWidth / 2)
.attr("y", -height / 2 + cfg.frameLineWidth / 2)
.attr("width", width - cfg.frameLineWidth)
.attr("height", height - cfg.frameLineWidth);
function getFixedZoom(t, s) {
var S = (width - height) / 2;
t[0] = Math.min(width / 2 * (s - 1), Math.max(width / 2 * (1 - s), t[0]));
t[1] = Math.min(height / 2 * (s - 1) + S * s, Math.max(height / 2 * (1 - s) - S * s, t[1]));
}
function fixZoom() {
var t = zoom.translate();
var s = zoom.scale();
getFixedZoom(t, s);
zoom.translate(t);
}
function roundTranslate(t) {
t[0] = Math.round(t[0]);
t[1] = Math.round(t[1]);
}
function zoomed() {
fixZoom();
var t = zoom.translate();
var s = zoom.scale();
var i = projection.invert([t[0] / s, t[1] / s]);
update();
if (self.onZoomed) {
self.onZoomed(t, s, i);
}
}
function update(running) {
var t = zoom.translate();
var s = Math.min(maxScale, d3.round(zoom.scale(), 6));
roundTranslate(t);
g.attr('transform', 'translate(' + t + ')scale(' + s + ')');
var ps = (running === true) ? 1 : zoom.scale();
var c = translateToCenter(t, s);
var ce = [[
-width / 2 + c[0] - width / 2 / s,
-height / 2 + c[1] - height / 2 / s], [
-width / 2 + c[0] + width / 2 / s,
-height / 2 + c[1] + height / 2 / s]];
clip.extent(ce);
projectionLines.precision(running ? 1 : Math.sqrt(1 / 2) / s / s);
projectionSimplified.area = projectionSimplified.baseArea / ps / ps;
projection.clipExtent(ce);
projectionLines.clipExtent(ce);
var localPathRaw, localPathLines;
if (running) {
localPathRaw = pathRawRounded;
localPathLines = pathLinesRounded;
} else {
localPathRaw = pathRaw;
localPathLines = pathLines;
}
if (!cfg.filter['graticule'].off) {
graticulePath.attr('d', localPathRaw);
}
if (!cfg.filter['cool-line'].off) {
coolLines.attr('d', localPathLines);
}
if (!cfg.filter['hot-line'].off) {
hotLines.attr('d', localPathLines);
}
if (!cfg.filter['balanced-line'].off) {
balancedLines.attr('d', localPathLines);
}
if (!cfg.filter.map.off) {
land.attr('d', path);
countries.attr('d', path);
}
if (prevScale !== s) {
g.style('stroke-width', 1 / s);
if (!cfg.filter['graticule'].off) {
graticulePath.style('stroke-dasharray', (2 / s ) + ',' + (3 / s));
}
//self.placesSelection.attr('transform', function (d) {
// return d.translate + 'scale(' + 1 / s + ')';
//});
self.placesSelection.defs.attr('transform', function () {
return 'scale(' + 1 / s + ')';
});
prevScale = s;
}
if (focused) {
var f = [width / 2 + focused[0] * s + t[0], height / 2 + focused[1] * s + t[1]];
var l = [[arrowStart.width / 2 + 2 * margin, arrowStart.height / 2 + 2 * margin], [f[0] + margin, f[1] + margin]];
var d = Math.sqrt(Math.pow(l[1][0] - l[0][0], 2) + Math.pow(l[1][1] - l[0][1], 2));
var r = (d - 20) / d;
l[1][0] = l[0][0] + r * (l[1][0] - l[0][0]);
l[1][1] = l[0][1] + r * (l[1][1] - l[0][1]);
selectedCircle
.attr('transform', 'translate(' + [d3.round(f[0]), d3.round(f[1])] + ')');
selectedArrow
.attr('x1', l[0][0])
.attr('y1', l[0][1])
.attr('x2', l[1][0])
.attr('y2', l[1][1]);
selectedCircleGroup.style('display', null);
} else {
selectedCircleGroup.style('display', 'none');
}
}
function setZoom(t, s, i) {
var p = projection(i);
zoom.scale(s);
zoom.translate([p[0] * s, p[1] * s]);
fixZoom();
update();
}
function translateToCenter(t, s) {
return [-t[0] / s + width / 2, -t[1] / s + height / 2];
}
function centerToTranslate(c, s) {
return [s * (-c[0] + width / 2), s * (-c[1] + height / 2)];
}
function zoomTransition(p, toScale) {
var fromScale = zoom.scale();
var fromTranslate = zoom.translate();
var toTranslate = [-p[0] * toScale, -p[1] * toScale];
getFixedZoom(toTranslate, toScale);
var from = translateToCenter(fromTranslate, fromScale);
from[2] = referenceSize / fromScale;
var to = translateToCenter(toTranslate, toScale);
to[2] = referenceSize / toScale;
var zi = d3.interpolateZoom(from, to);
var dur = Math.min(cfg.durationMax, Math.max(cfg.durationMin, zi.duration * cfg.durationSpeed));
d3.transition().duration(dur).tween('tween', tween);
function tween() {
return function (t) {
var z = zi(t);
var s = referenceSize / z[2];
var tr = centerToTranslate(z, s);
getFixedZoom(tr, s);
zoom.translate(tr);
zoom.scale(s);
update(t < 1);
if (self.onZoomed) {
var i = projection.invert([tr[0] / s, tr[1] / s]);
self.onZoomed(z, s, i, t < 1);
}
};
}
}
function zoomTo(d, ast) {
if (!d) {
focused = null;
selectedCircleGroup.style('display', 'none');
return;
}
var c = d.geometry ? [d.geometry.coordinates[0], d.geometry.coordinates[1]] : [d[0] + cfg.shift, d[1]];
var p = projection(c);
arrowStart = ast;
focused = p;
zoomTransition(p, maxScale)
}
function reset() {
zoomTransition(projection([0, 0]), 1);
}
self = {
root: svg,
land: land,
countries: countries,
path: path,
pathRaw: pathRaw,
g: placesGroup,
projection: projection,
setZoom: setZoom,
zoomTo: zoomTo,
reset: reset,
update: update
};
return self;
}
Display the source blob
Display the rendered blob
Raw
{"type":"Topology","objects":{"countries":{"type":"GeometryCollection","geometries":[{"type":"Polygon","arcs":[[0,1,2,3,4,5]]},{"type":"MultiPolygon","arcs":[[[6,7,8,9]],[[10,11,12]]]},{"type":"Polygon","arcs":[[13,14,15,16,17]]},{"type":"Polygon","arcs":[[18,19,20,21,22]]},{"type":"MultiPolygon","arcs":[[[23,24]],[[25,26,27,28,29,30]]]},{"type":"Polygon","arcs":[[31,32,33,34,35]]},{"type":"MultiPolygon","arcs":[[[36]],[[37]],[[38]],[[39]],[[40]],[[41]],[[42]],[[43]],[[44]]]},{"type":"Polygon","arcs":[[45]]},{"type":"MultiPolygon","arcs":[[[46]],[[47]]]},{"type":"Polygon","arcs":[[48,49,50,51,52,53,54]]},{"type":"MultiPolygon","arcs":[[[55,-33]],[[56,57,-36,58,59]]]},{"type":"Polygon","arcs":[[60,61,62,63]]},{"type":"Polygon","arcs":[[64,65,66,67,68]]},{"type":"Polygon","arcs":[[69,70,71,72,73]]},{"type":"Polygon","arcs":[[74,-73,75,76,77,78]]},{"type":"Polygon","arcs":[[79,80,81]]},{"type":"Polygon","arcs":[[82,83,84,85,86,87]]},{"type":"MultiPolygon","arcs":[[[88]],[[89]],[[90]]]},{"type":"Polygon","arcs":[[91,92,93]]},{"type":"Polygon","arcs":[[94,95,96,97,98]]},{"type":"Polygon","arcs":[[99,100,101]]},{"type":"Polygon","arcs":[[102,-31,103,104,105]]},{"type":"Polygon","arcs":[[106,107,108,109,-27,110,-106,111,112,113,114]]},{"type":"Polygon","arcs":[[115,116]]},{"type":"Polygon","arcs":[[117,118]]},{"type":"Polygon","arcs":[[119,120,121,122]]},{"type":"Polygon","arcs":[[123,124,125,126,127,128]]},{"type":"MultiPolygon","arcs":[[[129]],[[130]],[[131]],[[132]],[[133]],[[134]],[[135]],[[136]],[[137]],[[138]],[[139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154]],[[155]],[[156]],[[157]],[[158]],[[159]],[[160]],[[161]],[[162]],[[163]],[[164]],[[165]],[[166]],[[167]],[[168]],[[169]],[[170]],[[171]],[[172]],[[173]]]},{"type":"Polygon","arcs":[[-53,174,175,176]]},{"type":"MultiPolygon","arcs":[[[-24,177]],[[-30,178,179,-104]]]},{"type":"MultiPolygon","arcs":[[[180]],[[181,182,183,184,185,186,187,188,-119,189,190,191,192,-1,193,194,195,196,197,198,199,200,201,202,203]]]},{"type":"Polygon","arcs":[[-78,204,205,206,207,208]]},{"type":"Polygon","arcs":[[-127,209,210,211,212,213,214,215]]},{"type":"Polygon","arcs":[[216,217,218,-62,219,220,-10,221,-13,222,-125]]},{"type":"Polygon","arcs":[[-223,-12,223,224,-210,-126]]},{"type":"Polygon","arcs":[[225,-113,226,227,228,229,230]]},{"type":"Polygon","arcs":[[231,232,233,234]]},{"type":"Polygon","arcs":[[235]]},{"type":"Polygon","arcs":[[236,237]]},{"type":"Polygon","arcs":[[238,-237]]},{"type":"Polygon","arcs":[[239,240,-55,241]]},{"type":"Polygon","arcs":[[242,-242,-54,-177,243,244,-65,245,246,247,248]]},{"type":"Polygon","arcs":[[249,250,251,252]]},{"type":"MultiPolygon","arcs":[[[253]],[[-248,254]]]},{"type":"Polygon","arcs":[[255,256]]},{"type":"Polygon","arcs":[[257,258,259,260,261,262,263,264]]},{"type":"Polygon","arcs":[[265,266,-228]]},{"type":"Polygon","arcs":[[267,268,269,270,271]]},{"type":"Polygon","arcs":[[-252,272,273,274,275,276]]},{"type":"Polygon","arcs":[[277,278,279,280]]},{"type":"Polygon","arcs":[[281,282,283,284,285]]},{"type":"Polygon","arcs":[[-251,286,287,288,289,290,-273]]},{"type":"Polygon","arcs":[[291,292,293,294]]},{"type":"MultiPolygon","arcs":[[[295]],[[296]]]},{"type":"Polygon","arcs":[[297]]},{"type":"MultiPolygon","arcs":[[[298,299,300,-108]],[[301]],[[302,-244,-176,303,304,-278,305,-67]]]},{"type":"Polygon","arcs":[[-225,306,307,-211]]},{"type":"MultiPolygon","arcs":[[[308,309]],[[310]]]},{"type":"Polygon","arcs":[[-59,-35,311,312,313]]},{"type":"Polygon","arcs":[[314,315,-205,-77]]},{"type":"Polygon","arcs":[[316,-208,317,318,319,320,321]]},{"type":"Polygon","arcs":[[322,323]]},{"type":"Polygon","arcs":[[-321,324,325]]},{"type":"Polygon","arcs":[[-308,326,-212]]},{"type":"MultiPolygon","arcs":[[[327]],[[328,-16,329,-85,330]]]},{"type":"Polygon","arcs":[[331]]},{"type":"Polygon","arcs":[[-100,332,333,334,335,336]]},{"type":"Polygon","arcs":[[337,-115,338,339]]},{"type":"Polygon","arcs":[[340,341,342,-334,343]]},{"type":"Polygon","arcs":[[344,-94,345,346,347,348]]},{"type":"Polygon","arcs":[[-256,349]]},{"type":"Polygon","arcs":[[350,351,352,-349,353,-50,354]]},{"type":"MultiPolygon","arcs":[[[355]],[[356,357]],[[358]],[[359]],[[360]],[[361]],[[362]],[[363]],[[364,365]],[[366]],[[367]],[[368,369]],[[370]]]},{"type":"Polygon","arcs":[[371,-190,-118,-189,372,-82,373,374,-192]]},{"type":"Polygon","arcs":[[375,-309]]},{"type":"Polygon","arcs":[[-32,-58,376,377,-3,378,379,380,381,-56]]},{"type":"Polygon","arcs":[[-381,382,383,384,385,386,387]]},{"type":"Polygon","arcs":[[388]]},{"type":"Polygon","arcs":[[389,390,391,392,-268,393,394]]},{"type":"MultiPolygon","arcs":[[[395]],[[396]],[[397,398,-304,-175,-52]]]},{"type":"Polygon","arcs":[[399]]},{"type":"Polygon","arcs":[[400,401,-393,402,-391,403,-386]]},{"type":"MultiPolygon","arcs":[[[404]],[[405]],[[406]]]},{"type":"Polygon","arcs":[[-196,407,408,409,410,411]]},{"type":"Polygon","arcs":[[412,413,414,415,416,417,-289]]},{"type":"Polygon","arcs":[[-195,418,419,-408]]},{"type":"Polygon","arcs":[[420,421,422,423]]},{"type":"Polygon","arcs":[[424,425]]},{"type":"Polygon","arcs":[[426,-14,427,428]]},{"type":"Polygon","arcs":[[429,430,-384]]},{"type":"Polygon","arcs":[[-424,431,432,-187,433]]},{"type":"Polygon","arcs":[[-395,434,435]]},{"type":"Polygon","arcs":[[-207,436,437,-318]]},{"type":"Polygon","arcs":[[-271,438,439,440,-259,441,442]]},{"type":"Polygon","arcs":[[443]]},{"type":"Polygon","arcs":[[444]]},{"type":"Polygon","arcs":[[-97,445,446,447,448]]},{"type":"Polygon","arcs":[[-303,-66,-245]]},{"type":"Polygon","arcs":[[449,-98,-449,450,-285]]},{"type":"Polygon","arcs":[[-264,451,452]]},{"type":"Polygon","arcs":[[453,454]]},{"type":"Polygon","arcs":[[455]]},{"type":"Polygon","arcs":[[456,-101,-337,457,458]]},{"type":"Polygon","arcs":[[-330,-15,-427,459,-86]]},{"type":"Polygon","arcs":[[460,-79,-209,-317,461,462,-261]]},{"type":"Polygon","arcs":[[-433,463,464,-80,-373,-188]]},{"type":"Polygon","arcs":[[-428,-18,465,-346,-93,466]]},{"type":"Polygon","arcs":[[-198,467]]},{"type":"Polygon","arcs":[[468,469,470,471,472,473,474,475,476,477,478,479]]},{"type":"Polygon","arcs":[[-463,480,481,482,-262]]},{"type":"Polygon","arcs":[[-474,483,484,485]]},{"type":"MultiPolygon","arcs":[[[486,487]],[[-369,488,-117,489]]]},{"type":"Polygon","arcs":[[490,-122,491,492,-8]]},{"type":"Polygon","arcs":[[493]]},{"type":"Polygon","arcs":[[494,-215,495,-74,-75,-461,-260,-441]]},{"type":"Polygon","arcs":[[-214,496,-70,-496]]},{"type":"Polygon","arcs":[[497,-235,498,-341]]},{"type":"Polygon","arcs":[[-69,499,-246]]},{"type":"MultiPolygon","arcs":[[[500,501,-295,502,503]],[[504]],[[505]],[[506]]]},{"type":"Polygon","arcs":[[-372,-191]]},{"type":"MultiPolygon","arcs":[[[507]],[[508]]]},{"type":"MultiPolygon","arcs":[[[509,510,-20,511]],[[-23,512]]]},{"type":"Polygon","arcs":[[-375,513,-379,-2,-193]]},{"type":"Polygon","arcs":[[-230,514,-233,515]]},{"type":"Polygon","arcs":[[-112,-105,-180,516,-266,-227]]},{"type":"MultiPolygon","arcs":[[[517]],[[518]],[[519]],[[520]],[[521]],[[522]],[[523]]]},{"type":"MultiPolygon","arcs":[[[524]],[[525]],[[-365,526]],[[527]]]},{"type":"Polygon","arcs":[[528,-446,-96,529,530,-240,-243,531]]},{"type":"Polygon","arcs":[[532]]},{"type":"Polygon","arcs":[[533,534,-425,535,-184]]},{"type":"Polygon","arcs":[[536,-280]]},{"type":"Polygon","arcs":[[-111,-26,-103]]},{"type":"Polygon","arcs":[[-403,-392]]},{"type":"Polygon","arcs":[[537,538]]},{"type":"Polygon","arcs":[[-454,539,540,-88,541,-352,542]]},{"type":"MultiPolygon","arcs":[[[543]],[[-529,544,-447]],[[545]],[[546]],[[547]],[[548]],[[549]],[[550]],[[551]],[[-534,-183,552,-204,553,-202,554,555,-199,-468,-197,-412,556,-60,-314,557,558,-99,-450,-284,559,-282,560,-292,-502,561,562]],[[563]],[[564]],[[565]]]},{"type":"Polygon","arcs":[[566,-63,-219,567]]},{"type":"Polygon","arcs":[[-263,-483,568,-452]]},{"type":"Polygon","arcs":[[-431,569,-538,570,-21,-511,571,572,-401,-385]]},{"type":"Polygon","arcs":[[-274,-291,573,-129,574,-439,-270,575,-276,576]]},{"type":"Polygon","arcs":[[-290,-418,577,-217,-124,-574]]},{"type":"Polygon","arcs":[[-462,-322,-326,578,-324,579,-481]]},{"type":"MultiPolygon","arcs":[[[580]],[[581]],[[582]],[[583]],[[584]]]},{"type":"Polygon","arcs":[[-438,585,-319]]},{"type":"Polygon","arcs":[[586,-335,-343]]},{"type":"Polygon","arcs":[[587,-287,-250,588]]},{"type":"Polygon","arcs":[[-413,-288,-588,589]]},{"type":"Polygon","arcs":[[-87,-460,-429,-467,-92,-345,-353,-542]]},{"type":"Polygon","arcs":[[-300,590,-107,-338,591]]},{"type":"Polygon","arcs":[[592,-355,-49,-241,-531]]},{"type":"Polygon","arcs":[[-348,593,-398,-51,-354]]},{"type":"Polygon","arcs":[[594,-503,-294]]},{"type":"Polygon","arcs":[[-470,595]]},{"type":"Polygon","arcs":[[-404,-390,-436,596,597,-387]]},{"type":"Polygon","arcs":[[-575,-128,-216,-495,-440]]},{"type":"Polygon","arcs":[[-72,598,-315,-76]]},{"type":"Polygon","arcs":[[-423,599,-488,600,-464,-432]]},{"type":"Polygon","arcs":[[-419,-194,-6,601]]},{"type":"Polygon","arcs":[[-4,-378,602,-410,603]]},{"type":"Polygon","arcs":[[-357,604]]},{"type":"Polygon","arcs":[[605]]},{"type":"Polygon","arcs":[[-442,-258,606]]},{"type":"MultiPolygon","arcs":[[[-312,-34,-382,-388,-598,607]],[[-331,-84,608]]]},{"type":"Polygon","arcs":[[609]]},{"type":"Polygon","arcs":[[610,-415,611,612,-478,613,-476,614,-485,615,616,-64,-567,617]]},{"type":"Polygon","arcs":[[-417,618,-618,-568,-218,-578]]},{"type":"Polygon","arcs":[[619,-540,-455,-543,-351,-593,-530,-95,-559]]},{"type":"Polygon","arcs":[[620,-28,-110]]},{"type":"MultiPolygon","arcs":[[[621]],[[622,146,-147,-146,623,-144,624,-142,625,-140,626,-459,627,-149]],[[628]],[[629]],[[630]],[[-154,631,-152,632,633]]]},{"type":"Polygon","arcs":[[-420,-602,-5,-604,-409]]},{"type":"Polygon","arcs":[[-339,-114,-226,634]]},{"type":"Polygon","arcs":[[635,-421,-434,-186]]},{"type":"MultiPolygon","arcs":[[[636]],[[637]]]},{"type":"Polygon","arcs":[[638,-572,-510]]},{"type":"Polygon","arcs":[[-471,-596,-469,639,-492,-121,640],[-445]]},{"type":"Polygon","arcs":[[-616,-484,-473,641,-123,-491,-7,-221,642]]},{"type":"Polygon","arcs":[[-641,-120,-642,-472]]}]}},"arcs":[[[7082,3623],[5,11]],[[7087,3634],[-31,10],[-31,4],[-30,8],[-16,16],[10,32],[-14,15],[1,14],[-8,12],[-26,-1],[11,23],[-18,9],[-13,21],[3,20],[-11,9],[-10,-2],[-22,4],[-3,10],[-20,0],[-16,19],[-1,27],[-36,15],[-19,-3],[-6,6],[-17,-3],[-27,5],[-48,-17]],[[6689,3887],[26,-30],[-2,-22],[-21,-6],[-3,-21],[-8,-29],[12,-18],[-12,-5],[19,-69]],[[6700,3687],[28,13],[21,-4],[6,-17],[21,-5],[16,-11],[6,-29],[23,-7],[5,-13],[21,11]],[[6847,3625],[16,0],[20,8]],[[6883,3633],[9,5],[20,-13],[9,8],[9,-17],[17,0],[7,-20],[12,-12],[15,8],[-3,12],[9,1],[-3,31],[11,12],[22,-11],[17,-17],[48,3]],[[5664,5110],[-1,23],[5,14],[-1,22],[-58,-1],[-2,95],[37,44]],[[5644,5307],[-51,12],[-67,-4],[-19,-16],[-113,3],[-21,-12],[-18,-1],[-30,10]],[[5325,5299],[-2,-18],[4,-26],[11,-41],[15,-39],[25,-32],[2,-39],[-9,-10],[-14,-36],[10,-17],[-14,-48],[-14,-19],[3,-5]],[[5342,4969],[29,-7],[82,0],[15,39],[17,25],[27,-6],[16,4],[11,-25],[33,-6],[-3,11],[34,-1],[6,30],[-4,18],[2,18],[8,11],[0,35],[36,-7],[13,2]],[[5338,4960],[-8,-22]],[[5330,4938],[20,-18],[10,10]],[[5360,4930],[-14,14],[-8,16]],[[5556,3428],[14,14],[1,14]],[[5571,3456],[1,30],[11,9]],[[5583,3495],[-11,28],[-13,19]],[[5559,3542],[-20,-24],[-3,-18],[2,-44]],[[5538,3456],[-2,-13],[12,-19],[8,4]],[[6562,4022],[4,25]],[[6566,4047],[-14,0],[-10,44],[-9,26]],[[6533,4117],[-6,7],[-83,-16],[-12,-39]],[[6432,4069],[6,7],[22,-5],[40,2],[57,-62]],[[6557,4011],[5,11]],[[3140,6700],[-47,-3],[0,-108]],[[3093,6589],[24,59],[37,29],[38,13],[-12,25],[-26,3],[-14,-18]],[[3258,5451],[51,53],[23,4],[34,24],[29,12],[4,14],[-28,49],[28,9],[32,5],[22,-5],[25,-25],[4,-28]],[[3482,5563],[14,-6],[14,18],[-1,26],[-42,31],[-31,32],[-37,46]],[[3399,5710],[-14,61],[0,35],[-6,7],[-2,22]],[[3377,5835],[-2,18],[35,31],[-4,25],[17,15],[-2,18],[-25,47],[-42,20],[-55,7],[-32,-3],[6,22],[-6,28],[6,19],[-16,14],[-29,5],[-26,-14],[-12,10],[4,38],[19,12],[16,-12],[8,20],[-26,12],[-23,25],[-3,40],[-7,22],[-26,0],[-22,21],[-9,32],[29,31],[26,8],[-9,39],[-33,24],[-19,52],[-24,18],[-12,21],[9,48],[19,28],[-12,-4]],[[3095,6572],[-26,-6],[-67,-7],[-11,-27],[0,-34],[-18,3],[-10,-17],[-4,-47],[23,-20],[9,-28],[-4,-21],[15,-37],[10,-55],[-3,-24],[12,-8],[-3,-16],[-13,-7],[10,-17],[-13,-16],[-6,-45],[11,-8],[-5,-47],[14,-72],[17,-14],[-9,-36],[0,-33],[20,-23],[0,-30],[16,-34],[0,-32],[-7,-7],[-13,-59],[18,-34],[-3,-33],[10,-30],[18,-30],[20,-21],[-9,-12],[6,-12],[-1,-52],[30,-16],[10,-33],[-3,-7]],[[3136,5468],[23,-29],[35,8],[17,23],[11,-26],[32,2],[4,5]],[[6291,3573],[-10,2]],[[6281,3575],[-11,-28],[-12,0],[-15,-9]],[[6243,3538],[-10,-11],[-21,-9],[3,-19],[-5,-13]],[[6210,3486],[39,-6]],[[6249,3480],[16,17],[-6,9],[15,13],[-8,12],[25,17],[0,25]],[[3344,8837],[-15,168],[-60,-25],[-61,11],[-34,-60],[0,-7],[-16,-51],[63,7],[60,17],[20,-70],[15,-58],[28,68]],[[577,8748],[-54,22],[-35,-56],[-18,-63],[-18,-40],[16,-54],[53,23],[28,45],[20,53],[8,70]],[[3745,8532],[35,62],[12,90],[2,67],[2,83],[-43,53],[-45,45],[-52,42],[-59,36],[-65,-11],[-38,-60],[6,-72],[59,-46],[24,-54],[18,-68],[12,-56],[35,-111],[14,0],[41,-29],[42,29]],[[1632,7993],[36,16],[34,-18],[-16,36],[-26,27],[-39,-9],[-28,-36],[7,-34],[32,18]],[[1512,7991],[42,40],[-52,-14],[-39,-29],[20,-21],[29,24]],[[2250,7840],[30,13],[31,-11],[16,54],[-21,-8],[-34,4],[-34,-4],[-38,6],[-28,-19],[-15,-39],[18,-16],[34,13],[41,7]],[[3098,7751],[4,40],[-5,36],[-8,35],[-33,13],[-31,19],[-36,-2],[14,-38],[-64,27],[-21,-28],[-2,-39],[30,-36],[19,-9],[33,3],[8,-45],[1,-101],[16,-37],[25,-13],[15,30],[6,31],[22,74],[7,40]],[[1021,9998],[4,-2],[6,-151],[-110,-12],[-90,-70],[-23,-110],[-75,-58],[6,-114],[9,-98],[11,-85],[-5,-88],[-47,-56],[-22,-70],[-43,-60],[69,11],[64,-29],[39,63],[51,-56],[45,-67],[22,-59],[-10,-69],[-35,-45],[-41,-47],[-58,-9],[-49,-21],[-54,-15],[-19,-56],[-36,-46],[-20,-50],[-9,-151],[13,13],[26,40],[45,-13],[44,-17],[23,56],[44,-13],[37,-28],[34,-36],[33,-42],[40,-12],[0,-45],[-10,-44],[8,-41],[37,-20],[16,38],[42,-23],[31,-29],[40,-2],[39,-11],[101,-73],[41,15],[40,-15],[38,19],[37,-2],[38,-15],[78,22],[38,-5],[82,5],[39,-5],[28,-31],[34,-18],[34,24],[34,-19],[29,-36],[19,31],[8,39],[19,36],[29,-32],[33,41],[38,13],[31,30],[40,-6],[35,-20],[42,4],[37,16],[39,20],[15,-49],[-18,-36],[-14,-38],[-36,-9],[-15,-38],[-16,-112],[21,13],[36,6],[36,-6],[33,16],[28,29],[12,36],[37,6],[36,-14],[39,-21],[34,-11],[28,24],[37,-8],[24,-76],[23,44],[32,18],[34,-10],[23,40],[37,4],[33,11],[33,22],[22,-37],[11,-36],[28,40],[38,-10],[28,21],[19,35],[37,-10],[29,-22],[29,-26],[33,-14],[39,-12],[36,-14],[26,-22],[17,-29],[7,-41],[-3,-38],[-28,-105],[-7,-30],[1,-66],[23,-63],[6,-31],[-10,-62],[15,-34],[33,-48],[19,-23],[22,-20],[11,-31],[33,-35],[26,-5],[18,-20],[19,-13],[23,-8],[20,-17],[16,-20],[22,-8],[16,17],[-10,20],[-29,21],[-11,14],[-22,-10],[-22,6],[-39,33],[-14,20],[-4,27],[2,26],[12,24],[-18,17],[-26,5],[-33,48],[-16,33],[-4,28],[9,32],[15,24],[23,20],[21,25],[12,31],[13,66],[14,28],[8,34],[4,84],[8,34],[2,39],[9,39],[-4,54],[-15,42],[-17,36],[-37,15],[-12,39],[-17,37],[-42,43],[-37,18],[-72,52],[-23,51],[-44,5],[-49,-5],[-44,10],[-47,0],[9,50],[42,23],[31,36],[18,48],[-31,44],[-48,-14],[-40,36],[-3,120],[33,52],[6,60],[35,63],[59,27],[50,48],[40,57],[50,59],[70,30],[68,55],[47,60],[52,71],[27,106],[13,89],[33,-84],[95,-136],[57,-54],[50,-56],[69,-4],[68,28],[57,48],[17,-88],[39,-57],[70,-4],[107,-81],[58,-25],[62,-31],[43,-45],[-20,-60],[-12,-57],[0,-59],[-54,6],[-57,25],[-54,0],[-8,-58],[4,-110],[12,-31],[40,-33],[47,-32],[67,-77],[25,-50],[38,-22],[57,-27],[43,-5],[41,-16],[68,-51],[69,-63],[24,-37],[26,-33],[9,-42],[-30,-24],[10,-43],[18,-31],[29,-19],[31,-24],[28,-30],[22,-37],[13,-43],[21,-26],[33,6],[13,30],[34,4],[1,-34],[14,-35],[30,9],[7,33],[33,5],[36,-15],[35,-12],[31,6],[12,38],[30,-31],[29,-16],[62,-24],[29,-22],[30,-12],[25,-19],[17,-30],[20,21],[29,-11],[36,71],[31,-17],[13,-34],[28,-23],[37,5],[11,31],[22,-31],[30,-10],[33,-3],[29,1],[31,10],[30,5],[13,28],[18,26],[31,-15],[32,-3],[63,-2],[57,-22],[25,-24],[26,-14],[28,-8],[21,-23],[14,-45],[16,-26],[30,12],[11,28],[24,20],[29,-7],[19,29],[21,21],[28,-19],[10,-35],[25,-15],[28,-26],[61,-26],[66,-52],[26,9],[43,-47],[25,1],[24,-17],[6,-26],[23,-20],[22,-14],[29,-11],[25,-6],[51,12],[22,19],[3,32],[41,44],[33,9],[42,42],[26,5],[23,-16],[24,-31],[26,17],[53,18],[27,5],[28,0],[23,83],[-5,57],[-26,21],[-22,31],[4,35],[31,-1],[-4,33],[-27,73],[21,29],[32,9],[32,-17],[15,-36],[10,-34],[32,-55],[7,-30],[15,-41],[17,-9],[32,-3],[55,-23],[15,-32],[8,-29],[19,-30],[50,-35],[16,-25],[15,-14],[21,-11],[27,7],[53,-16],[30,4],[20,-20],[14,-48],[11,19],[13,35],[23,14],[27,6],[26,-9],[54,8],[18,-8],[24,4],[21,17],[24,-10],[31,0],[24,-11],[30,11],[19,-25],[14,-25],[19,-19],[35,-54],[18,9],[21,21],[18,25],[36,43],[52,3],[60,-19],[42,-42],[31,-2],[21,-15],[22,14],[33,45],[31,-3],[19,19],[33,18],[35,8],[29,-6],[40,-46],[25,-6],[25,10],[29,7],[26,-11],[25,0],[50,13],[25,-12],[30,-11],[60,-4],[50,-11],[8,-35],[1,-30],[18,20],[4,32],[21,54],[23,13],[32,-5],[36,-1],[25,-4],[63,-2],[36,3],[32,6],[19,23],[-5,28],[18,23],[61,38],[35,14],[38,12],[28,13],[32,1],[18,-26],[24,21],[21,26],[25,19],[66,18],[13,33],[32,20],[21,30],[31,14],[32,-3],[30,6],[33,-2],[34,7],[31,12],[28,21],[29,18],[20,27],[-3,36],[-15,34],[-22,79],[-14,42],[-36,16],[-16,37],[-36,23],[-13,42],[-19,42],[-20,36],[-11,48],[-7,44],[-3,56],[0,48],[16,51],[6,50],[13,49],[52,20],[11,63],[-50,23],[-43,33],[-52,6],[-24,90],[-5,78],[-26,131],[37,63],[14,80],[24,76],[33,72],[81,143],[64,76],[14,127],[80,59],[26,107],[77,-74],[63,91],[48,74],[0,109],[-8978,0]],[[0,9998],[0,-109],[2,3],[24,-174],[50,92],[33,-103],[6,5],[41,122],[34,-122],[8,-16],[81,-48],[81,197],[79,80],[45,73],[-484,0]],[[6952,6454],[-43,2],[-1,-23],[6,-27],[18,14],[26,5],[-6,29]],[[9038,6087],[27,13],[37,-13],[16,3],[2,46],[-9,13],[-3,32],[-10,-11],[-19,27],[-23,-3],[-17,-34],[-4,-26],[-16,-33],[1,-18],[18,4]],[[8987,5194],[10,23],[18,-11],[22,24],[-3,14],[11,41],[7,3],[7,26],[-3,16],[9,21],[31,15],[38,29],[-4,7],[16,20],[11,33],[11,-7],[11,14],[7,-5],[5,33],[32,32],[22,26],[8,26],[-1,38],[13,28],[-2,29],[-12,45],[1,19],[-6,25],[-12,31],[-21,17],[-19,44],[-8,30],[-11,18],[-11,51],[2,11],[-16,14],[-31,1],[-26,15],[-30,30],[-23,-16],[-17,-8],[5,-18],[-15,7],[-25,27],[-39,-16],[-43,-13],[-18,-23],[-12,-46],[-13,-14],[-27,-4],[9,-18],[-7,-26],[-13,25],[-25,6],[14,-19],[5,-21],[10,-17],[-2,-25],[-22,29],[-18,12],[-10,28],[-22,-14],[1,-19],[-18,-25],[-14,-13],[5,-8],[-36,-21],[-19,-2],[-27,-15],[-50,3],[-67,24],[-27,-3],[-29,18],[-24,8],[-16,32],[-41,4],[-24,-6],[-39,5],[-17,19],[-8,-2],[-27,20],[-39,0],[-30,-23],[-15,-6],[1,-20],[14,-5],[7,-44],[-3,-20],[-15,-34],[-3,-40],[-12,-31],[-12,-12],[-4,-25],[-16,-26],[-4,-14],[13,14],[-10,-31],[14,9],[8,14],[0,-17],[-23,-44],[3,-20],[10,-22],[-3,-19],[11,-22],[2,23],[12,-21],[22,-10],[14,-14],[21,-11],[20,2],[22,-13],[17,-2],[12,-10],[15,1],[29,-9],[15,-14],[7,-16],[17,-17],[2,-27],[19,-27],[12,27],[12,-6],[-10,-14],[9,-15],[12,7],[3,-23],[22,-27],[14,-5],[0,-8],[39,-12],[20,13],[16,18],[35,3],[-6,-16],[13,-24],[13,-8],[-5,-8],[12,-16],[17,-11],[14,4],[24,-6],[-1,-15],[-20,-10],[15,-4],[18,7],[15,12],[23,8],[8,-3],[17,9],[34,-12],[12,15],[-18,28],[-9,1],[3,12],[-18,29],[2,9],[22,16],[36,20],[20,18],[22,8],[4,9],[27,11],[18,-11],[23,-70],[-5,-40],[5,-38],[13,-41],[10,-11],[8,15],[2,18],[18,31],[1,28]],[[5471,3179],[0,21]],[[5471,3200],[-2,17],[-16,0],[6,10],[-9,27]],[[5450,3254],[-6,7],[-24,0],[-14,11],[-23,-3]],[[5383,3269],[-40,-11],[-6,-15],[-27,7],[-4,8],[-16,-6]],[[5290,3252],[-15,-1],[-12,-8],[3,-18]],[[5266,3225],[8,-2],[14,12],[4,-12],[25,2],[20,-7],[24,3],[-4,-29],[10,-5],[10,-20]],[[5377,3167],[21,14],[15,-18],[10,-3],[22,13],[13,-2],[13,8]],[[6281,3575],[-19,-5],[-14,-18],[-5,-14]],[[6349,3458],[15,21],[13,27],[14,1],[8,11],[-23,2],[-9,43],[-11,9],[1,18]],[[6357,3590],[-7,2],[-17,-19],[10,-19],[-9,-11],[-10,3],[-33,27]],[[6249,3480],[6,-6],[21,11],[19,-3],[-14,-20],[7,-6]],[[6288,3456],[8,1],[18,24],[14,3],[4,-10],[17,-16]],[[5823,4921],[-10,-29]],[[5813,4892],[-7,-18]],[[5806,4874],[17,2],[8,-16],[15,2]],[[5846,4862],[8,27],[-31,32]],[[5171,3080],[-4,31]],[[5167,3111],[-7,2],[-3,25]],[[5157,3138],[-24,-21],[-14,4],[-21,-21],[-12,-20],[-13,0],[-4,-16]],[[5069,3064],[23,-9]],[[5092,3055],[20,4],[26,-10],[17,20],[16,11]],[[5100,4452],[5,28],[-3,19],[-22,27],[-5,19],[-1,66]],[[5074,4611],[-23,3]],[[5051,4614],[-7,-20],[2,-67],[-7,-21],[-18,-19],[2,-15]],[[5023,4472],[17,-16],[19,-12]],[[5059,4444],[20,-9],[21,17]],[[5010,4355],[1,28],[16,20],[0,14],[33,7],[-1,20]],[[5023,4472],[-23,-1]],[[5000,4471],[-82,2],[3,39]],[[4921,4512],[-19,-8],[-23,9],[-30,-23]],[[4849,4490],[-1,-17],[6,-22],[23,-25],[4,-20],[7,-7],[14,4],[15,-14],[22,-13],[5,-10],[41,-17],[7,6],[18,0]],[[7573,4138],[0,22],[-10,-4],[2,25]],[[7565,4181],[-9,-32],[-17,-34],[-26,-1],[3,13],[-9,17],[-35,-6]],[[7472,4138],[-4,-26],[-10,-24],[5,-19],[-17,-8],[5,-12],[19,-13],[-20,-16],[9,-22],[22,14],[14,2],[2,22],[52,4],[16,5],[-13,27],[-12,2],[-10,18],[17,16],[4,-20],[8,0],[14,50]],[[5793,3383],[-16,17],[-9,28],[9,22]],[[5777,3450],[-24,-6],[-28,14]],[[5725,3458],[0,19],[-27,3],[-18,-13],[-22,11],[-21,-2]],[[5637,3476],[-2,-25],[-14,-13]],[[5621,3438],[6,-23],[11,-12],[-15,-17],[-1,-15],[7,-9]],[[5629,3362],[8,17],[11,-3],[21,6],[41,2],[13,-10],[33,-9],[20,14],[17,4]],[[2846,4084],[-7,1],[-7,-18],[-10,-9],[6,-20],[8,1],[10,26],[0,19]],[[2838,3994],[-31,4],[-1,-11],[31,-2],[1,9]],[[2861,3994],[-5,22],[-5,-21],[-12,-16],[22,15]],[[5527,3337],[10,0],[-7,18],[14,15],[-4,19],[-7,2]],[[5533,3391],[-14,13],[-4,20]],[[5515,3424],[-25,-14],[-10,-16],[-23,-24],[-20,-33],[6,-15],[10,9],[6,-9],[37,6],[19,0],[12,9]],[[5882,3020],[-23,2],[-9,11],[-2,24],[-11,-6],[-25,3],[-7,-12],[-11,9],[-10,-6],[-22,-1],[-31,-11],[-29,-4],[-21,1],[-15,12],[-13,3]],[[5653,3045],[-1,-21],[-8,-22],[17,-10],[0,-19],[-8,-18],[-1,-22]],[[5652,2933],[27,0],[30,-18],[5,-28],[24,-17],[-3,-22]],[[5735,2848],[46,-29]],[[5781,2819],[30,13],[4,13],[15,-6],[26,11],[4,25],[-6,13],[17,33],[12,9],[-2,9],[19,7],[8,14],[-11,11],[-23,-2],[-5,5],[7,16],[6,30]],[[2529,4326],[-8,0],[3,-58]],[[2524,4268],[8,-2],[15,-19]],[[2547,4247],[5,5],[-7,55],[-16,19]],[[3384,5388],[-1,-9],[-25,-16],[-26,-1],[-49,9],[-14,27],[0,17],[-11,36]],[[3136,5468],[-21,4],[-10,-43],[-15,-36],[9,-29],[-15,-13],[-4,-22],[-13,-21]],[[3067,5308],[17,-32],[-12,-26],[7,-9],[-5,-11],[10,-16],[2,-46],[6,-10],[-24,-47]],[[3068,5111],[35,2],[6,-9],[25,-12],[14,-11],[37,-5],[-3,22],[1,31],[30,26],[31,5],[11,11],[18,6],[12,9],[18,0],[16,8],[7,38],[-8,2],[11,35],[53,1],[-1,29],[15,9],[6,18],[-4,25],[-8,13],[3,18],[-9,6]],[[3429,4737],[15,2],[1,-20],[24,0],[16,6]],[[3485,4725],[11,6],[10,-8],[10,10],[13,-3],[11,-11],[8,-21],[17,-26]],[[3565,4672],[8,-2],[24,67],[14,5],[1,20],[-21,23],[9,9],[48,5],[2,29],[21,-19],[35,10],[46,18],[14,17],[-5,16],[33,-9],[54,15],[41,-1],[41,24],[36,33],[21,8],[24,1],[10,9],[14,55],[-12,48],[-13,19],[-39,41],[-19,34],[-20,25],[-7,1],[-7,22],[2,55],[-11,67],[-9,12],[-5,41],[-28,41],[-5,31],[-22,14],[-7,19],[-31,0],[-43,12],[-19,13],[-31,9],[-33,27],[-24,31],[-4,24],[4,18],[-4,33],[-6,16],[-20,19],[-31,58],[-24,27],[-19,15],[-13,34],[-18,20]],[[3517,5831],[-8,-20],[13,-16],[-16,-23],[-51,-41],[-10,1],[-28,-26],[-18,4]],[[3482,5563],[10,-37],[0,-18],[-10,-6],[-21,4],[-6,-41],[-5,-9],[-19,-9],[-12,6],[-29,-6],[2,-42],[-8,-17]],[[3068,5111],[-15,5],[-13,-4],[2,-44],[-23,17],[-24,-1],[-11,-15],[-19,-2],[7,-13],[-16,-17],[-11,-27],[7,-17],[17,-9],[-4,-16],[10,-23],[32,-20],[26,-10],[25,1]],[[3058,4916],[13,-79],[-4,-29],[-12,-11],[0,-21],[21,-1],[1,-12],[-16,-3],[-1,-18],[53,1],[11,-10],[13,26],[5,-3]],[[3142,4756],[15,15],[22,-2],[5,-9],[32,-11],[4,-13],[19,-8],[-1,-6],[-24,-2],[-2,-38],[-8,-10],[43,11],[8,-7],[51,-15],[10,-12],[-3,-8]],[[3313,4641],[14,-1],[7,7],[-4,12],[16,18],[-8,11],[-4,24],[8,28],[18,14],[38,-11],[9,-7],[22,1]],[[8172,4661],[34,-27]],[[8206,4634],[-3,33],[-13,-1],[-6,10],[-12,-15]],[[7546,3955],[12,11],[-2,19],[-46,-1],[-18,5],[-25,-12],[-1,-6]],[[7466,3971],[19,-25],[15,-8],[20,8],[14,0],[12,9]],[[5701,5313],[25,48],[32,34],[11,3],[8,31],[22,4],[18,14]],[[5817,5447],[-40,23],[-24,24],[-18,33],[-15,3],[-8,25],[-18,7],[-22,-1],[-25,-13],[-14,7],[-6,16],[-27,23],[-20,4],[-6,-11],[2,-20],[-16,-30],[-8,-5]],[[5552,5532],[0,-92],[27,-1],[1,-110],[21,-1],[43,-11],[10,13],[18,-13],[24,-6]],[[5696,5311],[5,2]],[[5663,4542],[34,23],[0,9],[31,28],[7,18],[20,11],[5,9]],[[5760,4640],[-9,3],[-39,-3],[-24,10],[-10,-6],[-31,14],[-17,0],[-8,17],[-41,-8],[-41,-21],[-15,10],[-10,14],[-3,20]],[[5512,4690],[-37,-6],[-16,15],[-15,27]],[[5444,4726],[-4,-21],[-13,-10],[-12,-25],[-13,-15],[0,-44],[8,-5],[14,-29]],[[5424,4577],[23,-3],[5,-7],[12,7],[34,-11],[27,-22],[5,-13],[26,2],[27,-13],[20,-32],[14,-12],[18,-5]],[[5635,4468],[3,12],[16,19],[-5,24],[14,19]],[[3231,3267],[20,5],[26,-2],[-14,18],[-10,2],[-35,-17],[-7,-14],[10,-13],[10,21]],[[3283,3156],[-14,0],[-36,-12],[-26,-22],[10,-4],[37,12],[28,19],[1,7]],[[1569,3183],[-15,6],[-45,-20],[-8,-16],[-26,-15],[-4,-13],[-28,-8],[-12,-25],[3,-10],[47,16],[25,5],[24,37],[27,19],[12,24]],[[3440,3086],[-19,39],[19,-16],[19,11],[-10,15],[25,12],[12,-11],[28,14],[-8,33],[19,-8],[12,50],[-11,36],[-13,3],[-19,-8],[6,-35],[-8,-5],[-31,36],[-17,-1],[20,-20],[-27,-10],[-30,2],[-54,-1],[-5,-13],[18,-15],[-12,-12],[24,-26],[28,-72],[17,-26],[25,-16],[13,2],[-21,42]],[[1300,2920],[13,6],[27,-3],[-9,55],[25,38],[-12,0],[-17,-21],[-10,-23],[-13,-15],[-4,-37]],[[2798,2480],[-11,32],[-12,-5],[-8,-18],[12,-23],[12,1],[7,13]],[[2725,2445],[-33,35],[-19,-2],[-6,-16],[20,-29],[38,0],[0,12]],[[2634,2249],[5,31],[15,-11],[16,19],[30,23],[32,21],[2,32],[21,-6],[20,22],[-25,21],[-43,-16],[-16,-29],[-28,34],[-39,34],[-9,-38],[-38,6],[24,-32],[4,-53],[9,-63],[20,5]],[[2892,2142],[-31,2],[-7,-36],[12,-42],[26,-11],[21,21],[1,32],[-4,12],[-18,22]],[[2343,1988],[-17,30],[-38,-26],[-22,9],[-38,-36],[24,-26],[19,-36],[47,39],[25,46]],[[3135,3325],[-18,-23],[0,-57],[-13,-13],[-18,8],[-10,-11],[-21,32],[-9,32],[-10,19],[-20,9],[-3,10],[-93,0],[-41,35]],[[2879,3366],[-6,-3],[-17,14],[-12,-7],[-43,11],[-17,19],[21,1]],[[2805,3401],[2,12]],[[2807,3413],[-24,5],[-21,11],[-24,-2],[-32,23],[-15,-2]],[[2691,3448],[19,-36]],[[2710,3412],[18,-13],[1,-30],[13,-22],[-4,-26],[15,25],[22,6],[9,-15],[-27,-43],[-47,-13],[-21,0],[-32,-8]],[[2657,3273],[-7,-3]],[[2650,3270],[0,0]],[[2650,3270],[5,-13],[-11,-5],[4,-16],[-10,-13],[4,-12],[-31,-6],[-9,-25],[-7,-6],[-19,-1],[-26,-9],[-12,17],[-16,6],[-11,18]],[[2511,3205],[-34,-12],[-23,6],[-28,-14],[-46,-9],[-9,-8],[-5,-24],[-9,0],[-2,17],[-767,0]],[[1588,3161],[-4,0],[-54,-44],[-20,-19],[-51,-19],[-14,-41],[2,-29],[-34,-20],[-6,-39],[-33,-36],[0,-26]],[[1374,2888],[14,-24]],[[1388,2864],[0,-32],[-48,-33],[-44,-100],[-27,-25],[-19,-23],[-14,-31],[-27,20],[-28,31],[-43,-62],[-27,-16]],[[1111,2593],[-29,-2],[0,-366]],[[1082,2225],[2,-286]],[[1084,1939],[51,21],[44,39],[29,7],[24,-33],[33,-27],[42,10],[41,-36],[46,-22],[20,36],[20,-20],[5,-40],[20,9],[47,76],[38,-57],[2,63],[35,-13],[11,-24],[33,5],[43,33],[65,31],[38,13],[27,-4],[38,40],[-39,39],[49,16],[75,-9],[25,-13],[29,45],[31,-38],[-30,-33],[19,-27],[34,-4],[22,-9],[23,19],[28,44],[31,-6],[48,34],[44,-12],[39,2],[-2,-48],[25,-14],[43,27],[0,72],[17,-61],[23,2],[12,-80],[-31,-50],[-32,-35],[3,-96],[33,-66],[37,15],[28,40],[38,98],[-25,43],[52,16],[-1,83],[38,-63],[33,51],[-9,58],[27,52],[29,-55],[21,-68],[1,-90],[39,7],[42,11],[37,41],[2,40],[-21,43],[19,41],[-4,36],[-53,52],[-39,11],[-29,-23],[-8,37],[-27,59],[-8,30],[-32,46],[-40,4],[-22,28],[-3,42],[-31,8],[-34,50],[-30,68],[-11,47],[-1,66],[40,9],[12,52],[14,41],[39,-11],[51,23],[28,20],[20,25],[35,13],[29,23],[46,2],[30,4],[-4,45],[8,49],[20,53],[42,45],[21,-15],[14,-49],[-13,-76],[-20,-26],[45,-24],[31,-36],[16,-36],[-3,-35],[-19,-46],[-33,-42],[32,-59],[-12,-53],[-9,-95],[19,-14],[48,17],[29,6],[23,-17],[25,21],[35,36],[8,23],[50,5],[-1,49],[9,73],[25,8],[21,33],[40,-32],[25,-61],[20,-27],[21,50],[36,72],[31,65],[-11,33],[37,29],[24,29],[45,14],[18,15],[10,42],[23,7],[11,18],[2,54],[-40,33],[-46,17],[-35,38],[-47,7],[-59,-9],[-42,-1],[-29,3],[-23,33],[-35,19],[-40,58],[-32,39],[23,-7],[45,-56],[58,-37],[41,-4],[25,22],[-27,29],[10,46],[9,32],[36,21],[46,-6],[28,-48],[2,31],[17,15],[-34,26],[-61,26],[-28,16],[-31,29],[-21,-4],[-1,-33],[48,-34],[-44,0],[-31,6]],[[1829,1629],[-15,46],[62,-29],[39,49],[31,-51],[26,33],[23,92],[13,-37],[-20,-99],[24,-16],[29,17],[31,40],[17,91],[9,64],[47,43],[50,40],[-3,38],[-46,6],[18,32],[-9,30],[-51,-13],[-49,-22],[-32,5],[-51,27],[-71,13],[-49,7],[-15,-38],[-39,-23],[-23,10],[-36,-65],[63,-25],[39,4],[36,-14],[-55,-21],[-59,8],[-38,-2],[-15,-33],[64,-36],[-43,2],[-48,-24],[23,-69],[20,-39],[74,-60],[29,19]],[[2097,1599],[-24,66],[-44,-70],[10,-14],[37,-4],[21,22]],[[2879,1630],[3,29],[-60,-6],[-30,13],[-8,-5],[-31,-53],[1,-37],[14,-7],[63,12],[48,54]],[[2595,1626],[22,61],[26,-80],[70,-41],[48,103],[-4,63],[54,-28],[27,-38],[62,49],[38,44],[3,40],[52,-21],[29,58],[67,35],[24,34],[26,78],[-51,38],[66,51],[44,17],[40,68],[44,5],[-9,52],[-49,81],[-34,-29],[-44,-69],[-37,9],[-2,41],[29,41],[38,31],[11,18],[18,65],[-9,46],[-35,-17],[-70,-52],[39,55],[29,38],[5,22],[-76,-25],[-59,-36],[-34,-31],[10,-19],[-82,-66],[0,19],[-80,11],[-24,-23],[19,-50],[52,-1],[57,-9],[-9,-25],[10,-36],[36,-71],[-8,-34],[-11,-26],[-42,-39],[-57,-27],[18,-20],[-29,-52],[-25,-4],[-22,-29],[-14,24],[-52,12],[-100,-20],[-60,-24],[-44,-14],[-23,-30],[29,-40],[-39,0],[-10,-94],[22,-86],[29,-43],[72,-27],[-21,67]],[[2212,1555],[32,22],[51,-13],[7,30],[-26,48],[42,42],[-5,85],[-45,35],[-28,-8],[-18,-34],[-69,-74],[0,-31],[56,13],[-30,-66],[33,-49]],[[2410,1664],[-29,71],[-32,-3],[-18,-85],[2,-49],[14,-44],[28,-29],[58,3],[52,26],[-41,90],[-34,20]],[[1654,1794],[-73,44],[-16,-40],[-63,-48],[31,-111],[23,-67],[-26,-63],[94,-17],[39,22],[71,5],[27,31],[29,44],[-35,25],[-67,69],[-34,66],[0,40]],[[2398,1434],[-14,42],[-41,-8],[-33,-30],[15,-49],[40,-32],[24,41],[9,36]],[[2264,1227],[20,58],[2,60],[-14,85],[-45,13],[-30,-18],[0,-67],[-44,9],[-2,-92],[30,3],[41,-41],[40,7],[2,-17]],[[1994,1291],[10,43],[26,-21],[29,5],[5,58],[-17,54],[-95,17],[-69,48],[-43,2],[-3,-36],[56,-49],[-124,13],[-39,-19],[37,-115],[27,-34],[78,41],[49,71],[49,9],[-41,-114],[27,-46],[28,15],[10,58]],[[2370,1179],[30,41],[55,0],[24,40],[-6,47],[32,27],[17,28],[38,5],[40,9],[44,-25],[57,-11],[45,9],[30,44],[6,46],[-17,29],[-42,24],[-35,-13],[-80,17],[-57,1],[-46,-12],[-73,-37],[-10,-61],[-4,-57],[-26,-54],[-58,-14],[-32,-39],[10,-52],[58,8]],[[1771,1106],[-4,100],[-20,45],[-26,6],[-53,52],[-43,18],[-38,-25],[46,-93],[58,-85],[43,2],[37,-20]],[[2393,1124],[-13,2],[-53,-7],[-6,-38],[56,2],[19,25],[-3,16]],[[1939,1099],[-52,39],[-41,-43],[23,-45],[40,-13],[39,22],[-9,40]],[[1954,972],[-34,27],[-47,0],[0,-20],[30,-45],[14,7],[37,31]],[[2338,1050],[-41,29],[-23,-33],[-12,-54],[-2,-60],[36,6],[16,9],[33,52],[-7,51]],[[2220,1012],[11,59],[-46,-17],[-45,-44],[-62,-6],[27,-43],[-34,-36],[-2,-60],[55,23],[75,55],[21,69]],[[2582,809],[34,52],[-38,46],[-51,110],[-50,11],[-57,-18],[-30,-60],[0,-56],[22,-41],[-50,1],[-31,-52],[-18,-75],[20,-77],[18,-55],[29,-12],[-12,-44],[65,-9],[35,98],[47,38],[46,34],[21,109]],[[3097,135],[74,18],[60,31],[51,62],[-2,60],[-67,92],[-68,40],[-26,45],[62,-2],[-66,116],[-45,51],[-48,138],[-57,27],[-18,32],[-84,17],[39,21],[-20,27],[23,73],[-26,49],[-43,40],[-13,52],[-39,40],[4,29],[48,-5],[0,32],[-74,74],[-73,-34],[-81,20],[-42,-16],[-53,-6],[-4,-61],[53,-28],[-14,-97],[17,-10],[74,59],[-38,-89],[-45,-27],[22,-56],[50,-37],[8,-52],[-39,-64],[-13,-85],[77,8],[22,18],[43,-62],[-63,-22],[-97,13],[-49,-62],[-24,-74],[-31,-58],[-6,-69],[41,-38],[32,-7],[55,-36],[41,-82],[34,13],[30,62],[21,-122],[37,-38],[50,-27],[85,-9],[14,25],[81,-41],[120,32]],[[5290,3252],[-3,18],[-12,7],[-20,-7],[-7,18],[-13,2],[-5,-7],[-15,14],[-13,2],[-12,-9]],[[5190,3290],[-10,-18],[-13,6],[0,-19],[21,-23],[-1,-11],[12,4],[8,-8]],[[5207,3221],[24,1],[5,-10],[30,13]],[[3140,6700],[-10,20],[-23,16],[-30,-6],[-21,-15],[-29,-7],[-35,-28],[-29,-27],[-37,-54],[23,9],[39,33],[36,18],[14,-23],[10,-33],[25,-19],[20,5]],[[3095,6572],[-25,0],[-38,30],[-5,45],[-11,1],[-32,-16],[-32,-33],[-34,-28],[-9,-30],[8,-27],[-14,-30],[-4,-77],[12,-41],[30,-32],[-43,-13],[27,-37],[9,-68],[31,15],[15,-83],[-19,-10],[-9,49],[-17,-6],[9,-56],[9,-71],[12,-25],[-7,-37],[-2,-41],[11,-1],[17,-58],[20,-57],[11,-51],[-6,-51],[8,-27],[-3,-41],[16,-41],[4,-62],[19,-136],[-2,-51],[-7,-43]],[[3044,5332],[15,-8],[8,-16]],[[8063,4242],[-23,14],[-23,-9],[0,-26],[13,-14],[31,-9],[16,1],[6,12],[-12,13],[-8,18]],[[8663,3318],[-24,14],[7,34]],[[8646,3366],[-4,48],[-14,1],[0,20]],[[8628,3435],[-18,-23],[-11,21],[-43,18],[4,20],[-24,-1],[-13,-12],[-19,27],[-30,21],[-23,23]],[[8451,3529],[-39,12],[-20,17],[-30,11],[15,-18],[-6,-14],[22,-26],[-15,-20],[-24,14],[-32,26],[-17,25],[-27,1],[-14,18],[15,25],[22,5],[1,17],[22,11],[31,-26],[25,14],[18,1],[4,19],[-39,10],[-13,19],[-27,18],[-14,24],[30,20],[11,35],[17,30],[19,27],[-1,26],[-17,9],[6,18],[17,10],[-12,53],[-15,3],[-43,78],[-26,38],[-38,29],[-39,27],[-31,3],[-17,14],[-10,-10],[-15,16],[-39,15],[-29,5],[-10,33],[-16,2],[-8,-23],[8,-12],[-37,-10],[-13,5]],[[8001,4153],[-29,-8],[-13,-13],[5,-18],[-26,-5],[-13,-12],[-24,17],[-49,3],[-15,8]],[[7837,4125],[-15,4],[4,36],[-16,-8]],[[7810,4157],[-1,-13],[-20,9],[-34,-17],[8,-26],[-17,-7],[-7,-29],[-29,6],[4,-38],[25,-27],[0,-51],[-11,-8],[-9,-19],[-16,2]],[[7703,3939],[-31,-5],[10,-14],[-14,-20],[-19,13],[-23,-7],[-33,21],[-24,24],[-23,4]],[[7466,3971],[-2,-26],[-17,6]],[[7447,3951],[-64,-11],[-23,-13],[-21,-7],[-9,-16],[-16,-5],[-29,-21],[-21,-11],[-12,8]],[[7252,3875],[-38,-23],[-28,-22],[-7,-37],[20,4],[1,-18],[-12,-17],[3,-28],[-30,-42]],[[7161,3692],[-45,-14],[-8,-28],[-21,-16]],[[7082,3623],[-3,-36],[-17,-7],[-9,3],[-7,-34]],[[7046,3549],[8,-9],[-4,-9],[26,-17],[20,-8],[29,5],[10,-24],[36,-5],[10,-15],[44,-21],[4,-9]],[[7229,3437],[-3,-22],[20,-11],[-25,-70],[55,-16],[13,-9],[21,-75],[54,14],[16,-20],[2,-43],[23,-4],[21,-29]],[[7426,3152],[11,-5]],[[7437,3147],[6,32],[24,23],[40,16],[19,34],[-10,49],[10,18],[70,13],[33,25],[18,5],[12,37],[17,23],[30,-1],[57,9],[37,-6],[28,7],[41,22],[34,0],[12,13],[32,-20],[45,-14],[42,-2],[32,-13],[20,-22],[20,-13],[-14,-29],[15,-26],[44,12],[28,-22],[42,-16],[20,-27],[20,-13],[40,-5],[22,5],[3,-15],[-25,-30],[-22,-14],[-22,16],[-27,-7],[-16,6],[-7,-18],[33,-77]],[[8240,3122],[34,17],[39,-30]],[[8313,3109],[-1,-20],[26,-48]],[[8338,3041],[15,-15],[0,-26]],[[8353,3000],[-16,-11],[23,-25],[35,-9]],[[8395,2955],[37,0],[41,15]],[[8473,2970],[25,17],[17,48],[20,48],[10,44],[49,15],[32,31],[12,41],[42,0],[24,-17],[46,-13],[-15,39],[-11,16],[-9,46],[-19,40],[-33,-7]],[[4921,4512],[7,41],[-11,25],[-8,33],[12,25],[-1,11]],[[4920,4647],[-32,-5],[-51,5],[-46,19],[-6,0]],[[4785,4666],[4,-39],[-28,-23],[6,-12],[-2,-23]],[[4765,4569],[5,0],[2,-23],[10,-3],[-13,-36],[7,-12]],[[4776,4495],[33,2],[18,-11],[4,12],[18,-8]],[[5444,4726],[-2,16],[-44,-15],[-35,-1]],[[5363,4726],[-50,1]],[[5313,4727],[-45,-1]],[[5268,4726],[4,-23],[-12,-19],[-12,-5],[-12,-25]],[[5236,4654],[20,-49],[8,0],[17,-17],[10,-1],[16,12],[19,-10],[13,-38],[15,-12],[22,-61],[24,-23],[4,-15],[-11,-12]],[[5393,4428],[9,-11]],[[5402,4417],[11,19],[1,39],[15,27],[-36,-1],[-7,13],[16,18],[14,4],[12,33],[-4,8]],[[5760,4640],[17,24],[12,4],[36,-9],[6,12],[25,19]],[[5856,4690],[-2,34],[10,4],[-18,18],[-17,29],[-1,23],[-7,11],[0,22]],[[5821,4831],[-8,8],[-7,35]],[[5813,4892],[-5,46],[7,17],[-5,12],[10,21],[17,16],[10,28]],[[5847,5032],[-42,4],[-16,22],[7,13],[-8,65],[26,16],[8,-5],[2,32],[-21,0],[-22,-29],[-21,-4],[-6,-16],[-17,9],[-23,-4],[-9,-13],[-30,-2],[-11,-10]],[[5342,4969],[-4,-9]],[[5360,4930],[8,3],[9,-11],[15,1],[13,13],[39,-42],[-1,-24],[12,-28],[30,-29],[10,-29],[-2,-17],[9,-44],[8,-15],[2,-18]],[[5330,4938],[-22,-31]],[[5308,4907],[21,-16],[-11,-19],[29,-11],[2,-13],[15,14],[24,1],[9,-13],[3,-19],[-3,-23],[-13,-17],[12,-34],[-7,-5],[-21,2],[-7,-15],[2,-13]],[[3018,4449],[-18,5],[-7,15],[-18,19],[-12,38],[15,2],[12,32],[-3,17],[14,12],[35,-3],[17,4],[19,25],[31,-1],[16,-4],[10,5],[-12,26],[-2,21],[15,34],[-15,14],[19,17],[8,29]],[[3058,4916],[-14,-15],[-8,-1],[18,-29],[-21,-14],[-17,3],[-10,-5],[-15,7],[-22,-3],[-15,-31],[-13,-7],[-9,-14],[-19,-13],[-7,2]],[[2906,4796],[-26,-16],[-7,5],[-24,-5],[-40,-28]],[[2809,4752],[6,-11],[6,-25],[14,-2],[22,-34],[-10,-6],[5,-17],[-6,-27],[6,-7],[-4,-25],[-12,-16]],[[2836,4582],[4,-14],[14,-6],[-3,-22]],[[2851,4540],[14,1],[21,-20],[12,-3],[5,-35],[16,-14],[20,-6],[20,2],[34,-21],[14,-15],[17,10],[-6,10]],[[2676,4474],[7,16],[24,24]],[[2707,4514],[-11,3],[6,16],[-7,20]],[[2695,4553],[-21,-12],[3,-12],[-29,-17],[-9,-13],[-3,15],[-20,-17],[3,-28]],[[2619,4469],[22,4],[7,-4],[21,11],[7,-6]],[[2786,4115],[11,12],[26,-4],[51,41],[26,6],[-2,9],[20,1],[21,12],[-3,8],[-37,5],[-19,-2],[-40,3],[18,-17],[-11,-9],[-18,-2],[-16,-26],[-16,1],[-26,-8],[-8,-7],[-36,-5],[-10,-6],[11,-8],[-28,-1],[-35,24],[-26,1],[15,-10],[5,-11],[28,-14],[28,-6],[45,3],[26,10]],[[5943,3708],[-34,-3]],[[5909,3705],[6,-9],[20,1],[25,-11],[-19,15],[2,7]],[[5943,3708],[-27,17],[-14,-5],[-7,-14],[14,-1]],[[5417,3066],[13,14],[21,5],[-2,13],[15,9],[4,-12],[19,5],[3,15],[20,2],[13,22]],[[5523,3139],[-19,10],[-2,10],[-15,11],[-12,-1],[-4,10]],[[5377,3167],[-30,-31],[-8,-31],[21,-10],[10,-11],[47,-18]],[[5392,2941],[6,23],[-8,14],[11,17],[5,26],[-1,16],[12,29]],[[5207,3221],[3,-30],[14,-30],[-40,-9],[-13,-11]],[[5171,3141],[2,-20],[-6,-10]],[[5171,3080],[-6,-49],[18,0],[7,-18],[6,-43],[-5,-16]],[[5191,2954],[6,-10],[23,-3],[5,11],[19,-24],[-6,-20],[-2,-27]],[[5236,2881],[20,6],[19,-8]],[[5275,2879],[1,20],[28,12],[-1,17],[28,-9],[16,-14],[32,20],[13,16]],[[6198,4458],[-10,16]],[[6188,4474],[-7,-5],[-22,1],[-3,-17],[20,-27]],[[6176,4426],[12,3],[8,-7]],[[6196,4422],[6,21],[-16,7],[12,8]],[[5352,2848],[-17,40],[-29,-29],[-4,-20],[41,-18],[9,27]],[[5236,2881],[-11,-28],[-1,-53],[12,-31],[24,-3],[11,-15],[22,-15],[-1,27],[-8,18],[4,15],[15,7],[-7,21],[-8,-6],[-20,37],[7,24]],[[3008,4261],[-7,-17],[7,-5],[0,-29]],[[3008,4210],[3,-5],[22,0],[24,7],[5,11],[15,-1],[-1,9],[26,13],[-10,12],[-14,-6],[-21,-1],[-17,8],[-13,-3],[-11,21],[-8,-14]],[[5233,3640],[-5,19],[4,33],[-6,29],[-18,21],[3,26],[23,20],[0,9],[17,13],[12,61]],[[5263,3871],[9,30],[-4,42],[1,53],[-11,14],[17,23],[1,14],[10,17],[13,-5],[22,14],[12,20]],[[5333,4093],[-95,60],[-81,61],[-39,13]],[[5118,4227],[-32,3],[0,-19],[-29,-14],[-7,-15],[-94,-68],[-93,-69]],[[4863,4045],[-105,-78]],[[4758,3967],[1,-8]],[[4759,3959],[0,-39],[44,-24],[28,-6],[23,-9],[11,-17],[32,-13],[1,-25],[16,-3],[13,-12],[36,-6],[5,-13],[-7,-8],[-10,-36],[-1,-21],[-11,-23]],[[4939,3704],[27,-19],[30,-7],[18,-15],[26,-10],[46,-8],[47,-2],[14,6],[26,-15],[30,0],[11,8],[19,-2]],[[2906,4796],[4,22],[-9,19],[-30,30],[-33,12],[-17,25],[-6,20],[-15,12],[-12,-15],[-23,-1],[7,-17],[-3,-13]],[[2769,4890],[15,-21],[-6,-13],[-11,14],[-16,-13],[5,-8],[-4,-26],[9,-5],[5,-18],[11,-18],[-2,-12],[34,-18]],[[5951,3840],[18,58]],[[5969,3898],[-13,38],[-14,23],[-23,-25],[-19,-48],[-3,3],[12,35],[17,33],[21,50],[19,37],[25,35],[-6,5],[1,21],[37,34]],[[6023,4139],[-329,0]],[[5694,4139],[0,-232],[-8,-27],[7,-21],[-5,-14],[10,-16]],[[5698,3829],[37,-1],[68,24],[32,-20],[25,-3],[20,4],[7,17],[7,-11],[22,7],[22,3],[13,-9]],[[6176,4426],[-21,-27],[-20,-20],[-24,-12],[-19,0],[-7,-6],[-16,7],[-17,-14],[-8,22],[-34,-6]],[[6010,4370],[-2,-12]],[[6008,4358],[12,-44],[3,-20]],[[6023,4294],[9,-9],[20,-5],[14,-18]],[[6066,4262],[15,36],[8,27],[16,15],[38,28],[39,45],[14,9]],[[4947,3395],[11,15],[51,18],[10,-8],[31,17],[32,-5]],[[5082,3432],[2,23],[-26,26],[-36,8],[-3,13],[-17,21],[-10,30],[11,22],[-16,16],[-6,24],[-21,7],[-20,28],[-62,0],[-28,26],[-13,-4],[-11,-11],[-8,-21],[-26,-6]],[[4792,3634],[-2,-11],[14,-24],[-9,-12],[7,-23],[-11,-23],[12,-3],[6,-23],[0,-30],[13,-10],[-8,-20],[-37,4],[-7,-19],[-21,15]],[[4749,3455],[1,-27],[-11,-18],[39,-28],[34,7],[37,0],[30,6],[23,-2],[45,2]],[[5777,2639],[4,10]],[[5781,2649],[-20,33],[8,51]],[[5769,2733],[-12,17]],[[5757,2750],[-22,0],[-37,-27],[-23,10]],[[5675,2733],[3,-33],[-10,7],[-18,-20],[-2,-31],[35,-16],[35,-9],[30,9],[29,-1]],[[6188,4474],[-6,10],[20,31],[11,10],[89,35],[25,0]],[[6327,4560],[-79,87],[-36,1],[-25,21],[-17,0],[-8,9]],[[6162,4678],[-19,0],[-11,-9],[-26,12],[-8,12],[-25,-6],[-15,1],[-35,-25],[-19,0],[-10,-9],[0,-17],[-14,-5]],[[5980,4632],[-17,-31],[-12,-7],[-20,-26],[-16,-2],[8,-17],[16,0],[4,-32]],[[5943,4517],[8,-34],[13,-9],[15,-34],[17,-15],[10,-29],[4,-26]],[[5794,1992],[-5,57],[43,50],[-26,58],[33,82],[-19,60],[24,50],[-10,43],[41,44],[-11,32],[-25,35],[-60,77]],[[5779,2580],[-50,4],[-49,22],[-45,12],[-16,-32],[-27,-19],[6,-59],[-14,-56],[14,-37],[25,-41],[63,-72],[19,-15],[-3,-29],[-39,-33]],[[5663,2225],[-9,-28],[-1,-115],[-43,-54],[-37,-38]],[[5573,1990],[17,-22],[29,42],[38,-4],[30,20],[26,-35],[14,-61],[42,-28],[36,32],[-11,58]],[[9954,5301],[9,9],[-4,16],[-17,4],[-16,-4],[-2,-13],[10,-10],[20,-2]],[[9999,5278],[-35,12],[-4,-10],[39,-17],[0,15]],[[3373,6517],[22,21],[-8,16],[-37,14],[-13,-16],[-23,20],[-14,-20],[33,-29],[24,13],[16,-19]],[[3485,4725],[13,-38],[-9,-17]],[[3489,4670],[-3,-20],[14,-25]],[[3500,4625],[31,10],[29,25],[5,12]],[[5265,3444],[-9,31],[-13,-8],[-7,-26],[6,-15],[18,-15],[5,33]],[[5157,3138],[14,3]],[[5190,3290],[-2,12],[9,15],[-10,13],[7,31],[15,5],[-3,18]],[[5206,3384],[-25,22],[-55,-11],[-40,14],[-4,23]],[[4947,3395],[14,-24],[5,-82],[-28,-44],[-21,-22],[-42,-16],[-3,-32],[36,-10],[47,11],[-9,-49],[26,19],[65,-35],[8,-37],[24,-10]],[[5308,4907],[-29,-29],[-19,-24],[-16,-30],[19,-61]],[[5263,4763],[50,-2],[0,-34]],[[4827,2935],[-21,-10],[-17,1],[6,-27],[-6,-27]],[[4789,2872],[23,-2],[30,31],[-15,34]],[[4916,2687],[-30,58],[29,-7],[30,1],[-7,43],[-25,47],[29,3],[27,65],[19,9],[17,56],[8,19],[33,9],[-3,30],[-14,14],[11,24],[-25,24],[-37,0],[-48,12],[-13,-9],[-18,21],[-26,-5],[-19,17],[-15,-9],[41,-47],[25,-11],[-44,-7],[-8,-19],[29,-14],[-15,-27],[5,-31],[42,5],[4,-29],[-19,-32],[-34,-9],[-7,-12],[10,-23],[-9,-14],[-15,24],[-1,-51],[-14,-25],[10,-56],[21,-44],[23,4],[33,-4]],[[6210,3486],[-27,-19],[-29,2]],[[6154,3469],[4,-17],[-7,-26],[-16,-15],[-16,-5],[-10,-12]],[[6109,3394],[4,-4],[64,13],[38,19],[4,7],[18,-6],[25,8],[9,16],[17,9]],[[5000,4471],[-2,9],[12,16],[1,44],[8,11],[-6,26],[2,14],[14,29]],[[5029,4620],[-44,17],[-15,10],[-25,9],[-25,-9]],[[4680,4429],[1,11],[12,-4],[24,11],[23,-15],[6,1],[21,27],[1,27],[8,8]],[[4765,4569],[-13,11],[-14,-6],[2,-12],[-11,-18],[-14,4]],[[4715,4548],[-7,2],[-4,-27],[-13,-23],[-22,0],[-15,6],[-22,27]],[[4632,4533],[-23,-28],[-14,-10],[-8,-20],[-8,-4]],[[4579,4471],[13,-15],[26,-8],[1,-23]],[[4619,4425],[33,7],[28,-3]],[[4532,4408],[3,-13]],[[4535,4395],[31,-1],[15,-7],[11,7],[17,-5],[6,9],[-24,6],[-12,-7],[-22,12],[-25,-1]],[[4579,4471],[-15,-13],[-11,-2],[-17,-25]],[[4536,4431],[32,-7],[51,1]],[[5263,4763],[-5,-5],[10,-32]],[[5658,3685],[15,12],[41,0],[0,7],[16,-5],[-4,11],[-40,2],[1,-5],[-34,-7],[5,-15]],[[5723,3496],[-31,-5],[-34,9],[19,23],[-29,6],[-15,-20],[-6,9],[7,22],[14,18],[-10,8],[29,28],[0,21],[-25,-10],[8,18],[-19,4],[12,32],[-20,1],[-22,-16],[-10,-29],[-5,-25],[-26,-38],[-1,-10]],[[5583,3495],[19,-4],[10,-7],[15,0],[10,-8]],[[5725,3458],[13,10],[-8,23],[-7,5]],[[4247,32],[174,192],[-52,85],[-106,11],[-150,20],[14,38],[99,-23],[83,70],[54,-63],[23,74],[-30,114],[71,-72],[135,-77],[83,39],[15,83],[-113,130],[-16,42],[-88,29],[64,7],[-32,120],[-23,99],[1,158],[33,85],[-43,6],[-46,39],[52,66],[6,99],[-30,11],[36,94],[-61,7],[32,44],[-9,36],[-39,16],[-39,0],[35,67],[0,42],[-55,-40],[-14,26],[37,23],[37,58],[10,71],[-49,17],[-56,-85],[10,60],[-33,46],[73,3],[39,6],[-75,72],[-75,63],[-81,27],[-31,1],[-29,29],[-38,78],[-60,52],[-19,3],[-77,33],[-25,43],[0,47],[-14,43],[-45,51],[11,49],[-27,107],[-38,4],[-41,-48],[-56,0],[-27,-33],[-18,-60],[-49,-79],[-14,-43],[-3,-61],[-39,-65],[10,-53],[-19,-26],[28,-90],[41,-30],[12,-33],[6,-65],[-47,42],[-25,11],[-34,-26],[-2,-58],[11,-45],[25,-2],[56,24],[-47,-56],[-24,-31],[-28,11],[-23,-22],[31,-87],[-17,-36],[-22,-70],[-34,-113],[-35,-43],[0,-49],[-74,-68],[-59,-8],[-74,3],[-68,10],[-32,-39],[-49,-78],[73,-41],[56,-8],[-119,-34],[-63,-56],[4,-56],[106,-71],[101,-73],[11,-58],[-76,-61],[25,-67],[97,-129],[40,-19],[-12,-89],[66,-53],[86,-34],[85,-2],[30,65],[74,-116],[66,80],[39,16],[58,67],[-66,-112],[4,-94],[93,-140],[97,11],[36,-92],[98,-25],[222,32]],[[2529,4326],[20,5]],[[2549,4331],[-26,20],[-5,19]],[[2518,4370],[-21,21]],[[2497,4391],[-32,-6],[-27,-18]],[[2438,4367],[0,-22],[13,-24],[36,0],[1,-10],[-29,-26],[13,0],[0,-17],[52,0]],[[3412,4619],[-4,26],[-17,8],[-4,21],[13,21],[9,0],[3,17],[17,25]],[[3313,4641],[-19,-22],[7,-21],[24,-10],[-10,-11],[3,-11],[22,-17]],[[3340,4549],[18,11],[17,19],[1,15],[10,0],[26,25]],[[2690,4353],[-31,7],[-15,-2],[-28,30],[-8,-6],[-18,8],[0,15],[-16,8]],[[2574,4413],[-13,-12]],[[2561,4401],[2,-12],[-23,-6],[-22,-13]],[[2549,4331],[9,-4],[28,3],[25,-7],[28,0],[16,5],[35,25]],[[5523,3294],[15,27],[-11,16]],[[5515,3424],[-3,8]],[[5512,3432],[-27,-15],[-16,-14],[-25,-12],[-23,-29],[6,-3],[-13,-17],[-1,-14],[-17,-6],[-10,17],[-7,-14],[1,-15]],[[5380,3310],[20,2],[5,-7],[20,8],[0,-12],[10,-4],[2,-17],[23,-11]],[[5460,3269],[29,23],[23,7],[11,-5]],[[3008,4261],[-19,-5],[-30,0],[-13,6],[-15,-10],[3,-10],[46,7],[10,-7],[-12,-13],[0,-12],[-19,-5],[8,-8],[41,6]],[[5613,3187],[14,11],[3,12]],[[5630,3210],[-17,9],[-13,29],[-17,29],[-23,8]],[[5560,3285],[-16,-2],[-21,11]],[[5460,3269],[-10,-15]],[[5471,3200],[24,14],[24,-4],[2,-9],[41,-10],[15,-13],[30,13],[6,-4]],[[8352,5090],[-11,0],[-37,-20],[26,-6],[24,18],[-2,8]],[[8471,5050],[3,15]],[[8474,5065],[-18,22],[-24,6],[-1,-13],[12,-18],[28,-12]],[[8274,5027],[10,8],[17,-3],[7,13],[-51,10],[-15,-1],[10,-17],[15,0],[7,-10]],[[8413,5027],[-4,16],[-42,8],[-37,-3],[0,-11],[22,-6],[18,9],[18,-2],[25,-11]],[[8017,4988],[53,3],[6,-12],[50,14],[11,19],[42,6],[34,17],[-31,11],[-31,-12],[-54,-1],[-26,-5],[-32,-11],[-32,0],[-51,-12],[-5,-12],[-25,-2],[19,-28],[34,2],[34,13],[4,10]],[[8741,4972],[-14,20],[-3,-22],[11,-20],[7,8],[-1,14]],[[8534,4892],[-11,10],[-19,-6],[-5,-12],[28,-1],[7,9]],[[8623,4881],[10,23],[-23,-12],[-23,-3],[-35,1],[6,-16],[35,-1],[30,8]],[[8916,4867],[1,190]],[[8917,5057],[-25,-24],[-28,-6],[-7,8],[-35,1],[12,-24],[17,-8],[-7,-31],[-14,-25],[-53,-24],[-23,-3],[-42,-27],[-8,14],[-11,3],[-6,-23],[-21,-14],[29,-11],[20,1],[-2,-8],[-41,0],[-11,-17],[-25,-6],[-11,-14],[37,-7],[14,-9],[45,12],[4,10],[8,47],[29,17],[23,-30],[32,-18],[25,0],[44,21],[30,5]],[[8478,4751],[-22,29],[-21,5],[-27,-6],[-46,2],[-24,4],[-4,22],[24,26],[15,-13],[52,-10],[-2,13],[-12,-4],[-12,17],[-25,11],[27,37],[-5,10],[25,34],[-1,19],[-14,8],[-11,-10],[13,-24],[-27,11],[-4,-19],[-20,-17],[3,-28],[-19,9],[3,75],[-17,4],[-12,-8],[8,-27],[-4,-28],[-12,0],[-9,-20],[12,-19],[4,-23],[19,-55],[24,-22],[22,9],[35,4],[32,-2],[27,-21],[5,7]],[[8574,4759],[-2,25],[-14,-2],[-4,17],[11,16],[-8,3],[-11,-18],[-8,-37],[6,-23],[9,-11],[2,16],[16,2],[3,12]],[[8045,4734],[5,19],[19,17],[18,-6],[18,2],[16,-15],[13,-2],[26,8],[23,-6],[14,-41],[11,-10],[10,-33],[32,0],[24,5]],[[8274,4672],[-16,26],[20,28],[-4,13],[31,27],[-33,3],[-10,20],[2,26],[-27,20],[-1,29],[-10,44],[-5,-10],[-31,13],[-11,-18],[-20,-2],[-14,-9],[-33,11],[-10,-14],[-41,-2],[-4,-39],[-14,-8],[-13,-25],[-4,-25],[3,-27],[16,-19]],[[7939,4962],[-31,0],[-24,-24],[-35,-24],[-33,-41],[-35,-62],[-24,-24],[-19,-48],[-25,-18],[-14,-25],[-21,-16],[-29,-32],[-3,-15],[61,7],[25,28],[37,32],[26,31],[27,1],[24,19],[16,25],[22,13],[-12,24],[25,10],[6,21],[10,16],[20,2],[14,19],[-7,36],[-1,45]],[[7252,3875],[-17,15],[-11,32],[27,12],[26,16],[36,18],[38,5],[16,16],[55,11],[23,-2],[4,-12],[-2,-35]],[[7703,3939],[2,12],[-10,6],[2,21],[-19,-6],[-36,22],[0,19],[-15,26],[-1,16],[-13,26],[-21,-7],[-1,33],[-7,10],[3,14],[-14,7]],[[7472,4138],[-4,11],[-19,0],[-34,6],[2,23],[-15,19],[-40,20],[-31,36],[-21,19],[-29,20],[0,14],[-37,18],[-14,2],[-8,23],[6,39],[1,24],[-11,29],[0,50],[-15,1],[-12,22],[8,10],[-25,8],[-10,20],[-11,9],[-26,-28],[-24,-70],[-24,-43],[-12,-56],[-25,-41],[-20,-97],[0,-38],[-5,-29],[-41,19],[-19,-4],[-36,-38],[13,-11],[-8,-12],[-33,-28]],[[6893,4085],[19,-20],[61,0],[-6,-27],[-15,-16],[-4,-25],[-18,-15],[31,-34],[32,2],[29,-34],[18,-34],[27,-33],[-1,-25],[24,-19],[-23,-17],[-19,-54],[14,-15],[42,8],[31,-6],[26,-29]],[[4827,2935],[5,35],[-21,43],[-49,27],[-40,-7],[23,-49],[-15,-50],[38,-38],[21,-24]],[[6357,3590],[9,26],[26,9],[20,18],[39,6],[44,-9],[2,-9]],[[6497,3631],[25,-7],[19,-21],[19,1],[12,-8],[20,5],[30,18],[23,4],[31,31],[21,3],[3,30]],[[6689,3887],[26,38],[27,14],[1,29],[13,5],[2,15],[-40,17],[-10,37]],[[6708,4042],[-83,-17],[-31,-4],[-12,-41],[-13,-4],[-22,4],[-28,17],[-34,-11],[-29,-26],[-26,-9],[-18,-30],[-21,-44],[-14,5],[-18,-11],[-11,13]],[[6348,3884],[-15,-18],[0,-18],[-9,0],[5,-24],[-15,-27],[-34,-18],[-19,-33],[6,-27],[14,-12],[-2,-21],[-18,-11],[-18,-43]],[[6243,3632],[-16,-29],[6,-11],[-8,-43],[18,-11]],[[6348,3884],[-16,-2]],[[6332,3882],[-19,-2],[-20,31]],[[6293,3911],[-52,-2],[-78,-68],[-41,-24],[-34,-9]],[[6088,3808],[-11,-41]],[[6077,3767],[61,-37],[10,-42],[-2,-27],[16,-8],[14,-23]],[[6176,3630],[12,-6],[31,5],[11,9],[13,-6]],[[4597,2193],[-7,46],[31,47],[-36,52],[-80,45],[-24,12],[-114,-30],[28,-29],[-61,-34],[49,-13],[-1,-20],[-58,-16],[19,-46],[42,-11],[43,48],[42,-39],[35,21],[45,-39],[47,6]],[[5994,3770],[-2,20]],[[5992,3790],[-5,11]],[[5987,3801],[-10,-5],[-7,39],[13,-4]],[[5983,3831],[0,14],[-14,53]],[[5951,3840],[14,-29],[10,-34]],[[5975,3777],[19,-7]],[[5431,3593],[-10,29],[4,11],[-6,19],[-21,-14],[-14,-4],[-39,-18],[4,-20],[32,5],[50,-8]],[[5255,3481],[17,27],[-4,50],[-13,-2],[-11,11],[-10,-9],[-2,-45],[-6,-22],[14,2],[15,-12]],[[5383,3269],[-3,20],[6,18]],[[5386,3307],[-21,-6],[-23,14],[-2,32],[9,21],[26,20],[14,33],[31,32],[22,-1],[7,9],[-8,8],[44,25],[25,20],[-2,21],[-16,-18],[-24,-6],[-12,24],[20,14],[-3,20],[-12,2],[-14,31],[-12,3],[6,-31],[6,-8],[-19,-40],[-12,-6],[-8,-15],[-18,-7],[-12,-16],[-21,-2],[-47,-43],[-19,-23],[-8,-39],[-37,-18],[-12,5],[-16,19],[-12,3]],[[2864,4266],[-9,6],[-31,-16],[15,-10],[25,4],[18,16],[-18,0]],[[6088,3808],[-5,6],[-56,17],[28,33],[-14,17],[-21,5],[-19,22],[-31,-6]],[[5970,3902],[-1,-4]],[[5983,3831],[4,-30]],[[5992,3790],[31,13],[54,-36]],[[8739,3739],[4,13],[-16,21],[-11,-11],[-15,8],[-7,20],[-18,-11],[0,-15],[15,-21],[16,4],[12,-15],[20,7]],[[8915,3633],[-10,29],[5,18],[-15,25],[-35,16],[-49,3],[-40,40],[-19,-14],[-1,-26],[-48,8],[-33,16],[-32,1],[28,26],[-19,58],[-18,13],[-13,-12],[7,-31],[-18,-10],[-11,-25],[26,-9],[15,-22],[28,-18],[20,-24],[55,-12],[30,8],[29,-64],[19,18],[56,-51],[18,-45],[-5,-43],[11,-24],[30,-7],[15,53],[-1,30],[-25,38],[0,37]],[[8997,3365],[19,8],[20,-17],[6,45],[-41,11],[-25,39],[-43,-27],[-15,43],[-31,0],[-4,-38],[14,-31],[29,-3],[8,-55],[9,-32],[32,43],[22,14]],[[7229,3437],[-17,-6],[-14,-14],[-43,-4],[-45,-1],[-10,3],[-40,-15],[-15,8],[-4,23],[-46,-13],[-18,5],[-7,17]],[[6970,3440],[-15,8],[-37,27],[-12,27],[-11,0],[-7,-18],[-37,-2],[-4,-31],[-14,0],[2,-39],[-33,-29],[-48,3],[-32,5],[-27,-36],[-71,-48],[-71,24],[1,147]],[[6554,3478],[-15,1],[-19,-30],[-18,-11],[-32,8],[-12,13]],[[6458,3459],[5,-26],[-5,-13],[-32,-14],[-13,-36],[-16,-10],[0,-13],[27,4],[1,-30],[23,-7],[24,5],[6,-39],[-6,-26],[-27,2],[-24,-10],[-32,18],[-26,9]],[[6363,3273],[-14,-7],[3,-21],[-18,-29],[-20,1],[-24,-29],[16,-33],[-8,-9],[22,-50],[29,26],[3,-33],[58,-50],[42,-1],[95,51],[30,-20],[44,-1],[35,24],[8,-13],[39,1],[7,-21],[-45,-32],[27,-23],[-5,-13],[26,-13],[-20,-33],[13,-17],[104,-17],[13,-12],[70,-20],[25,-20],[50,11],[9,52],[29,-12],[35,16],[-2,28],[27,-3],[69,-47],[-10,16],[35,38],[62,119],[15,-24],[39,27],[39,-12],[16,8],[13,27],[20,8],[11,20],[36,-6],[15,27]],[[6162,4678],[-24,33],[0,106],[17,24]],[[6155,4841],[-20,11],[-7,12],[-10,2],[-4,21],[-9,11],[-5,20],[-12,9]],[[6088,4927],[-40,-29],[-1,-16],[-101,-59]],[[5946,4823],[2,-22],[-7,-11]],[[5941,4790],[22,-32],[10,-21],[-16,-48],[-13,-20]],[[5944,4669],[36,-37]],[[7046,3549],[-53,6],[-34,-13],[-30,3],[3,-21],[30,5],[10,-11]],[[6972,3518],[21,4],[36,-27],[-33,-21],[-20,10],[-21,-15],[24,-25],[-9,-4]],[[7982,4377],[6,20],[-4,35],[-46,23],[13,18],[-30,2],[-24,12]],[[7897,4487],[-23,-4],[-11,-16],[-14,-30]],[[7849,4437],[-7,-36],[18,-25],[36,-6],[26,5]],[[7922,4375],[23,11],[12,-20],[25,11]],[[8504,3611],[14,-2],[11,-17],[31,-5],[4,-9]],[[8564,3578],[24,45],[7,22],[0,42],[-10,20],[-25,7],[-22,14],[-25,2],[-3,-18],[5,-26],[-13,-38],[21,-6],[-19,-31]],[[5599,3441],[-23,8],[-5,7]],[[5556,3428],[6,-9]],[[5562,3419],[16,-18],[26,23],[-5,17]],[[6332,3882],[3,23],[9,25]],[[6344,3930],[-19,0],[-7,-15],[-25,-4]],[[7922,4375],[9,-14],[1,-25],[-23,-26],[-1,-30],[-21,-25],[-21,-2],[-6,11],[-24,-5],[-30,18],[0,-27],[7,-32],[-19,-2],[-2,-18],[-12,-10]],[[7780,4188],[6,-11],[24,-20]],[[7837,4125],[17,24],[12,29],[34,0],[11,27],[-18,8],[-8,11],[34,18],[40,63],[21,21],[7,21],[-5,30]],[[5975,3777],[10,-29],[13,-27]],[[5998,3721],[14,3],[4,14],[-15,12],[-7,20]],[[4785,4666],[-36,-14],[-25,-22],[-24,-16],[-18,-19]],[[4682,4595],[8,-18],[25,-29]],[[5694,4139],[0,62],[-32,0],[0,13]],[[5662,4214],[-111,-59],[-111,-61],[-28,18]],[[5412,4112],[-20,12],[-15,-17],[-44,-14]],[[5263,3871],[13,-8],[0,-28],[19,-13],[22,-21],[2,-26]],[[5319,3775],[32,12],[12,-3],[23,6],[37,15],[13,30],[64,20],[30,18],[26,-25],[-6,-26],[9,-16],[20,-16],[19,-5],[37,7],[10,14],[47,11],[6,12]],[[7255,4612],[-25,7],[-12,-23],[-5,-42],[13,-48],[19,17],[13,20],[13,31],[-4,30],[-12,8]],[[5780,5721],[-11,3],[-20,-26],[15,-21],[28,-19],[22,20],[-13,27],[-16,5],[-5,11]],[[5652,2933],[-7,-16],[-14,-5]],[[5631,2912],[0,-26],[-12,-8],[-29,-10]],[[5590,2868],[-6,-42]],[[5584,2826],[31,-16],[48,4],[27,-6],[4,11],[15,4],[26,25]],[[5757,2750],[14,12],[2,26],[8,31]],[[5584,2826],[1,-39],[14,-34],[26,-18],[22,39],[22,0],[6,-41]],[[4759,3959],[-4,17],[-17,1],[-9,8],[-23,-5],[-23,4],[-9,25],[-9,3],[-13,40],[-38,33],[-9,45],[-15,25],[-63,2]],[[4527,4157],[1,-14],[20,-25],[-2,-11],[10,-22],[15,-20],[9,-5],[8,-19],[0,-17],[10,-20],[19,-11],[18,-34],[14,-13],[26,-3],[22,-23],[14,-9],[23,-27],[-7,-42],[14,-47],[18,-24],[28,-15],[21,-15],[27,-58],[20,0],[17,15],[26,-2],[41,8]],[[5784,3310],[-5,-18],[2,-36],[-25,-44],[-17,-18]],[[5739,3194],[25,-9],[20,13],[12,2],[12,11],[-2,15],[11,6],[4,19],[12,21],[-32,0],[2,7],[-12,28],[-7,3]],[[6389,5188],[4,35],[8,15],[-8,23],[-9,-18],[-5,9],[5,23],[-11,19],[0,26],[-25,78],[-28,102],[-12,37],[-23,8],[-24,13],[-38,-19],[-8,-17],[-2,-28],[-10,-25],[-2,-23],[5,-22],[13,-5],[0,-11],[12,-24],[4,-19],[-12,-33],[-2,-28],[9,-17],[4,-20],[14,-1],[26,-11],[12,-1],[39,-35],[8,-15],[-4,-13],[12,4],[15,-21],[1,-18],[9,-13],[17,25],[6,20]],[[2301,4017],[-15,51],[-6,57],[15,33],[5,24],[19,23],[16,32],[30,8],[12,13],[24,-8],[60,-14],[16,-13],[8,-18],[2,-26],[5,-9],[48,-15],[42,-2],[4,22],[-14,18],[-6,19],[5,5],[-11,38],[-13,-8]],[[2438,4367],[-32,-32],[-14,-10],[-23,-8],[-15,2],[-36,14],[-42,-13],[-25,-14],[-21,-4],[-31,-14],[-30,-23],[-44,-11],[-12,-14],[-30,-18],[-20,-34],[13,-31],[-10,-14],[-11,-28],[-25,-31],[-28,-25],[-14,-20],[-24,-13],[-4,-8],[4,-20],[-14,-7],[-17,-16],[-8,-24],[-13,-1],[-31,-34],[0,-10],[-16,-25],[-9,-26],[1,-13],[-20,-13],[-11,1],[-14,-9],[-6,14],[8,41],[47,58],[7,21],[13,20],[18,16],[10,30],[16,29],[0,17],[14,1],[21,28],[-17,18],[-8,-20],[-18,-18],[-33,-23],[1,-23],[-5,-18],[-32,-24],[-28,-12],[-16,-19],[13,-1],[11,-12],[1,-15],[-23,-24],[-16,-9],[-20,-43],[-24,-57]],[[1746,3796],[67,-8],[-3,8],[106,41],[76,-2],[0,-13],[49,0],[10,12],[31,26],[16,36],[38,20],[17,-27],[23,0],[19,13],[24,42],[16,19],[13,38],[43,17],[10,-1]],[[5599,3441],[22,-3]],[[5118,4227],[0,70],[-16,20],[-1,19],[-25,5],[-38,2],[-11,11],[-17,1]],[[4680,4429],[-1,-21],[-11,-8],[-7,-36]],[[4661,4364],[10,-5],[4,-18],[29,8],[30,-11],[112,0],[6,-21],[-5,-4],[-27,-267],[43,-1]],[[7780,4188],[-33,21],[-18,1],[-13,33],[-12,6],[14,27],[29,42],[-11,26],[-9,5],[6,15],[18,24],[4,30],[11,27],[-16,28],[-13,30]],[[7737,4503],[-3,-22],[9,-22],[-10,-18],[3,-32],[-12,-15],[-9,-36],[-5,-38],[-12,-25],[-50,37],[-32,-10],[9,-38],[-6,-28],[-22,-35],[4,-11],[-16,-4],[-20,-25]],[[5538,3456],[-26,-24]],[[5533,3391],[31,24],[-2,4]],[[7437,3147],[29,-7],[52,-38],[43,-22],[24,14],[29,1],[19,21],[28,2],[40,11],[27,-31],[-11,-27],[28,-49],[31,20],[26,5],[32,12],[6,35],[39,19],[26,-9],[36,-6],[27,6],[28,22],[16,23],[26,-2],[35,9],[26,-11],[35,-9],[42,-30],[17,3],[14,17],[33,-4]],[[5911,5594],[-21,0]],[[5890,5594],[-6,-28]],[[5884,5566],[-3,-11],[5,-37],[-20,-67]],[[5866,5451],[29,-34],[15,-43],[-5,-9],[1,-23],[6,-21],[0,-40],[-28,-10],[-20,-14],[-22,0],[-2,-11]],[[5840,5246],[-2,-21],[84,-25]],[[5922,5200],[16,14],[19,5],[-5,26],[2,21],[19,19],[8,-21],[12,-6],[-2,-39],[-12,-21],[-12,-10]],[[5967,5188],[-4,-34],[7,-28]],[[5970,5126],[10,-1],[34,8],[7,-3]],[[6021,5130],[19,-1],[10,-9]],[[6050,5120],[17,1]],[[6067,5121],[30,-12],[22,-17]],[[6119,5092],[5,13],[-1,30],[3,26],[1,46],[5,15],[-19,42],[-18,19],[-56,25],[-33,34],[-9,5],[-31,28],[-3,23],[14,23],[10,26],[-1,31],[-4,15],[7,5],[-16,25],[-57,28],[-12,12],[10,15],[-3,16]],[[4661,4364],[-35,-42],[-31,-17],[-16,0],[-13,7],[-14,-3],[-10,10]],[[4542,4319],[-2,-16],[8,-15],[3,-29],[-6,-45],[2,-16],[-21,-28]],[[4526,4170],[6,-10],[108,0],[-5,-45],[7,-16],[26,-3],[-1,-81],[91,1],[0,-49]],[[5922,5200],[-15,-8],[9,-27],[9,-10],[-6,-25],[11,-32],[-7,-25],[-14,-13]],[[5909,5060],[28,6],[5,8]],[[5942,5074],[9,22],[2,35],[-8,17],[8,35],[10,26],[5,-8],[10,12],[-11,-25]],[[7836,4612],[7,2],[28,37],[-1,33],[4,27],[10,8],[11,26],[-2,10],[-18,1],[-59,-44],[-4,-15],[-16,-19],[-4,-24],[-10,-16],[4,-21],[-7,-12]],[[7779,4605],[5,-6],[23,13],[2,15],[17,-3],[10,-12]],[[8045,4734],[21,10],[21,-6],[6,-24],[12,-6],[33,-6],[34,-41]],[[8206,4634],[22,-20],[14,-23],[11,0],[14,15],[1,12],[42,17],[-2,12],[-19,1],[5,14],[-20,10]],[[5644,5307],[23,-8],[18,3],[11,9]],[[5552,5532],[0,119],[-25,17],[-15,2],[-31,-9],[-4,-13],[-10,-9],[-14,16]],[[5453,5655],[-20,-25],[-11,-23],[-13,-55],[-9,-49],[-4,-55],[-26,-38],[-20,-57],[-23,-29],[-2,-25]],[[9641,5450],[-10,7],[-16,-8],[-37,-31],[-23,-32],[12,0],[16,11],[44,38],[14,15]],[[5412,4112],[7,49],[22,28],[-6,14],[-11,62],[-1,39],[-35,28],[-12,40],[10,11],[0,19],[19,1],[-3,14]],[[5393,4428],[-5,1],[-19,-33],[-6,-1],[-22,16],[-36,-10],[-25,3],[-16,13],[-14,1],[-34,-16],[-13,8],[-14,-1],[-10,-11],[-28,-11],[-30,3],[-7,7],[-12,29],[-2,26]],[[5236,4654],[-50,15],[-23,0],[-15,-19],[-9,-21],[-19,-19],[-46,1]],[[2690,4353],[-1,21],[-6,10],[-4,25],[2,21],[-11,31],[6,13]],[[2619,4469],[-29,-31],[-25,-23],[9,-2]],[[5092,3055],[14,-13],[24,-69],[38,-20],[23,1]],[[5863,1952],[-47,32]],[[5816,1984],[-22,8]],[[5573,1990],[-17,2],[-4,53],[-53,-13],[-7,44],[-27,0],[-46,135],[-43,99],[10,23],[-10,26],[-27,-1],[-18,61],[2,83],[17,31],[-9,69],[-23,40],[-12,32]],[[5306,2674],[-19,-34],[-55,64],[-37,12],[-38,-27],[-10,-60],[-9,-137],[26,-41],[72,-53],[56,-68],[51,-96],[66,-142],[47,-60],[76,-102],[61,-36],[46,4],[42,-72],[51,4],[49,-18],[88,64],[-36,23],[30,53]],[[5686,1077],[-63,56],[-48,-31],[19,-36],[-16,-44],[57,-30],[11,54],[40,31]],[[5506,803],[92,116],[-70,59],[-15,103],[-25,27],[-13,107],[-34,5],[-59,-78],[24,-48],[-41,-40],[-54,-122],[-21,-121],[75,-60],[16,58],[39,-2],[11,-56],[40,-6],[35,58]],[[5706,684],[55,61],[-41,86],[-81,20],[-83,-26],[-4,-45],[-40,-3],[-31,-77],[87,-49],[40,42],[27,-52],[71,43]],[[9805,6091],[6,16],[20,-15],[8,16],[0,16],[-28,46],[-14,17],[10,19],[-22,0],[-23,16],[-24,68],[-35,31],[-26,-1],[-18,-14],[-30,-3],[-5,-15],[15,-31],[35,-40],[18,-7],[44,-36],[17,-22],[12,-28],[10,-10],[5,-21],[19,-18],[6,16]],[[9849,5915],[20,38],[1,-25],[13,10],[4,28],[22,12],[19,3],[16,-14],[14,4],[-15,54],[-22,-1],[-7,12],[3,16],[-29,54],[-21,15],[-17,-16],[16,-31],[-9,-21],[-30,-15],[1,-14],[20,-13],[5,-28],[-1,-24],[-11,-30],[-35,-47],[-12,-25],[11,-2],[15,19],[22,9],[7,32]],[[6475,4303],[-31,-71]],[[6444,4232],[83,-31],[19,-62],[-13,-22]],[[6566,4047],[12,22],[16,11],[37,10],[30,40],[-15,27],[-12,10],[-10,21],[-14,-2],[-9,23],[4,21],[-16,4],[-17,11],[-9,21],[-17,0],[-11,8],[0,12],[-14,8],[-15,-3],[-19,11],[-12,1]],[[6557,4011],[11,-8],[-6,19]],[[6893,4085],[-20,-7],[-9,-23],[-21,-24],[-51,5],[-45,2],[-39,4]],[[2836,4582],[-15,-24],[7,-8],[-26,-19],[-12,1],[-6,11],[-20,14],[13,16],[-24,10],[-5,-18],[-14,3],[-4,-11],[-19,-6],[-16,2]],[[2707,4514],[9,17],[14,-1],[8,7],[13,-2],[29,-14],[9,-8],[16,1],[27,9],[19,17]],[[3044,5332],[-27,-17],[-2,-13],[-56,-30],[-49,-33],[-22,-19],[-11,-24],[4,-9],[-23,-39],[-28,-54],[-26,-59],[-11,-13],[-9,-21],[-21,-19],[-21,-12],[10,-13],[-14,-28],[9,-20],[22,-19]],[[8510,4548],[4,35],[-9,27],[-11,-30],[-13,15],[9,22],[-8,13],[-32,-17],[-8,-21],[8,-14],[-17,-13],[-9,12],[-13,-1],[-21,16],[-4,-9],[11,-24],[32,-20],[10,14],[21,-8],[5,-13],[19,-1],[-1,-23],[22,14],[5,26]],[[8443,4493],[-27,37],[-17,-20],[12,-16],[3,-19],[16,-1],[-5,19],[21,-28],[-3,28]],[[8291,4521],[-37,28],[14,-20],[36,-39],[15,-29],[5,24],[-18,16],[-15,20]],[[8385,4445],[16,10],[18,0],[0,12],[-31,21],[1,-29],[-4,-14]],[[8485,4437],[8,33],[-21,-7],[7,28],[-13,6],[-1,-20],[-9,-2],[-4,-18],[16,2],[0,-11],[-17,-22],[27,0],[7,11]],[[8375,4411],[-7,25],[-27,-37],[24,1],[10,11]],[[8369,4247],[17,9],[9,-8],[-2,20],[9,22],[-7,25],[-16,10],[-5,24],[7,24],[27,0],[34,16],[-2,17],[9,7],[-3,13],[-22,-14],[-10,-16],[-7,11],[-18,-18],[-25,5],[-14,-7],[10,-20],[-8,-7],[-4,11],[-14,-17],[-5,-42],[11,10],[3,-47],[9,-28],[17,0]],[[9329,4990],[-8,3],[-24,-30],[-6,-22],[15,12],[14,19],[13,10],[-4,8]],[[9221,4951],[-15,2],[-4,8],[-30,14],[-14,0],[-39,-17],[2,-9],[25,5],[15,-3],[9,-14],[2,15],[16,-2],[24,-20],[-4,-17],[23,4],[-1,16],[-9,18]],[[8916,4867],[48,20],[51,17],[35,29],[4,17],[46,18],[7,16],[-25,3],[6,19],[25,19],[18,31],[16,-1],[-2,13],[22,5],[-8,6],[29,12],[-3,9],[-18,2],[-7,-8],[-52,-7],[-38,-35],[-14,-26],[-36,-13],[-41,18],[4,22],[-22,10],[-16,-5],[-28,-1]],[[9253,4922],[-9,8],[-11,-28],[-29,-22],[-20,-9],[8,-7],[36,22],[22,21],[3,15]],[[5546,2908],[34,5],[51,-1]],[[5653,3045],[14,40],[-3,13],[-14,5],[-25,37],[6,20],[-5,-2]],[[5626,3158],[-26,-18],[-20,7],[-13,-5],[-17,10],[-14,-16],[-13,3]],[[5392,2941],[18,-15],[79,-40],[28,9],[2,12],[27,1]],[[3178,4256],[-7,7],[-38,1],[3,-17],[37,2],[5,7]],[[8628,3435],[4,7]],[[8632,3442],[-11,-2],[-20,26],[1,28],[-14,8],[-16,18],[-18,6],[-12,11],[-4,20],[26,21]],[[8504,3611],[-13,-7],[-13,3],[-15,-9],[19,-49],[-31,-20]],[[4792,3634],[-11,10],[-14,-5],[-15,4],[5,-28],[-3,-23],[-12,-3],[-7,-14],[2,-26],[11,-12],[8,-38],[-7,-44]],[[6427,4056],[-16,-4]],[[6411,4052],[-2,-23],[7,-17],[16,6],[1,20],[-6,18]],[[5784,3310],[12,9],[13,-7],[13,7]],[[5822,3319],[0,11],[-13,7],[-9,-2],[-7,48]],[[5629,3362],[1,-14],[-15,4],[-17,-11],[-2,-17],[-17,-10],[-3,-13],[-16,-16]],[[5630,3210],[12,-9],[35,5],[13,10],[30,-10],[7,-12],[12,0]],[[8989,3083],[28,79],[-41,-15],[-17,64],[27,44],[-1,29],[-21,-25],[-18,31],[-5,-34],[3,-42],[-3,-46],[6,-34],[2,-61],[-17,-45],[3,-65],[25,-23],[-11,-23],[13,-6],[17,79],[-1,46],[11,47]],[[5546,2908],[6,-22],[38,-18]],[[0,2001],[68,61],[73,75],[-4,46],[19,18],[-5,-53],[75,11],[55,68],[-28,31],[-47,7],[0,67],[-10,13],[-26,-1],[-22,-24],[-37,-20],[-6,-30],[-28,-11],[-31,9],[-16,-24],[6,-27],[-34,17],[14,33],[-16,29],[0,-295]],[[9999,1844],[-30,4],[-5,-28],[35,-38],[0,62]],[[0,1782],[26,-4],[40,27],[-2,12],[-28,21],[-36,6],[0,-62]],[[8988,1620],[-42,1],[-57,-11],[-5,-6],[27,-41],[34,-9],[40,40],[3,26]],[[9186,1421],[-32,44],[-44,-9],[-52,-44],[7,-37],[51,17],[70,29]],[[9029,1367],[-22,84],[-102,-4],[-46,27],[-55,-73],[15,-79],[37,-24],[73,6],[100,63]],[[6598,1854],[-17,7],[-91,-12],[-7,-40],[-50,-23],[-4,-50],[27,-21],[0,-51],[55,-87],[-25,-11],[66,-94],[-7,-51],[61,-59],[93,-77],[92,-23],[48,-47],[54,-16],[19,50],[-19,38],[-98,60],[-85,54],[-86,105],[-42,102],[-43,94],[4,78],[55,74]],[[8646,3366],[-7,-34],[24,-14]],[[8473,2970],[-41,-15],[-37,0]],[[8353,3000],[0,27],[-15,14]],[[8338,3041],[-26,48],[1,20]],[[6363,3273],[-12,25],[-27,7],[-28,42],[25,38],[-3,27],[31,46]],[[6109,3394],[-36,-34],[-31,-15],[-24,-24],[20,-7],[23,-34],[-15,-17],[41,-17],[-2,-9],[-24,6]],[[6061,3243],[1,-20],[14,-11],[27,-3],[5,-15],[-7,-23],[12,-24],[-1,-12],[-41,-15],[-16,1],[-17,-23],[-21,9],[-35,-16],[-10,-29],[-22,-3],[-2,-14],[7,-9],[-18,-27],[-29,4],[-8,-2],[-7,11],[-11,-2]],[[5769,2733],[-8,-51],[20,-33]],[[5777,2639],[31,-31],[-29,-28]],[[5816,1984],[47,-32]],[[5863,1952],[29,-29],[46,51],[76,18],[105,90],[21,37],[2,49],[-31,38],[-45,19],[-124,-55],[-21,10],[45,52],[4,103],[36,20],[22,17],[3,-32],[-17,-29],[18,-26],[67,43],[24,-17],[-19,-50],[64,-70],[26,4],[25,25],[16,-49],[-22,-45],[14,-45],[-21,-49],[78,26],[16,43],[-35,9],[0,42],[22,25],[43,-16],[7,-48],[58,-36],[97,-67],[20,3],[-27,49],[35,8],[19,-28],[52,-1],[42,-33],[31,47],[32,-52],[-29,-47],[14,-28],[82,24],[39,27],[100,91],[19,-42],[-28,-42],[-1,-17],[-34,-8],[10,-40],[-15,-67],[-2,-28],[51,-82],[19,-87],[21,-20],[74,25],[5,54],[-26,75],[17,30],[9,60],[-6,115],[31,49],[-12,52],[-55,105],[32,11],[11,-26],[31,-19],[7,-36],[24,-37],[-16,-43],[12,-53],[-30,-7],[-6,-46],[22,-85],[-36,-72],[50,-63],[-8,-69],[15,-1],[15,53],[-11,90],[29,15],[-12,-65],[46,-38],[58,-5],[51,54],[-25,-78],[-2,-106],[48,-22],[67,5],[60,-13],[-23,-55],[33,-73],[30,-3],[55,-57],[74,-15],[9,-34],[73,-11],[22,28],[63,-66],[51,3],[8,-54],[26,-56],[65,-54],[49,43],[-38,33],[63,20],[7,62],[25,-30],[82,2],[62,60],[23,45],[-7,60],[-31,34],[-73,60],[-21,33],[35,14],[41,27],[24,-21],[15,67],[12,-27],[44,-17],[90,17],[6,49],[116,14],[2,-77],[59,18],[44,0],[45,53],[13,62],[-17,40],[35,72],[44,36],[27,-95],[44,41],[48,-25],[53,29],[21,-26],[45,13],[-20,-88],[37,-41],[251,63],[24,54],[72,70],[112,-17],[56,14],[23,36],[-4,63],[35,24],[37,-17],[49,-3],[52,17],[53,-9],[49,72],[34,-26],[-23,-52],[13,-38],[88,23],[58,-5],[80,40],[39,36],[0,296],[-36,30],[-36,-5],[25,35],[17,54],[13,17],[3,26],[-7,17],[-52,-14],[-78,47],[-25,7],[-42,42],[-40,37],[-11,26],[-39,-40],[-73,44],[-12,-20],[-27,25],[-37,-8],[-9,37],[-33,53],[1,23],[31,12],[-4,78],[-25,1],[-12,43],[11,22],[-48,26],[-10,56],[-41,11],[-9,49],[-40,43],[-10,-32],[-12,-69],[-15,-111],[13,-71],[23,-32],[2,-25],[43,-13],[50,-70],[48,-59],[49,-47],[23,-86],[-34,5],[-17,51],[-70,65],[-23,-73],[-72,20],[-69,99],[23,35],[-62,15],[-43,5],[2,-40],[-43,-9],[-35,28],[-85,-10],[-91,17],[-90,107],[-106,121],[43,7],[14,31],[27,11],[18,-25],[30,3],[40,54],[1,40],[-21,47],[-3,55],[-12,70],[-42,63],[-9,29],[-76,95],[-17,23],[-38,24],[-17,0],[-17,-19],[-38,29],[-4,13]],[[7918,1014],[-157,54],[51,-192],[22,-18],[22,12],[70,86],[-8,58]],[[6420,660],[-62,35],[-4,29],[-33,27],[-30,-40],[15,-54],[-61,-5],[53,-33],[44,-2],[5,49],[16,-43],[26,-30],[42,40],[-11,27]],[[7775,930],[-60,19],[-78,-44],[-46,-58],[-21,-118],[-38,-34],[72,-121],[60,-42],[54,92],[64,165],[-7,141]],[[5844,4825],[11,16],[-1,17],[-8,4]],[[5821,4831],[7,3],[16,-9]],[[4526,4170],[1,-13]],[[6344,3930],[11,28],[14,7],[4,12],[19,12],[-1,25],[20,38]],[[6427,4056],[5,13]],[[6444,4232],[-80,12],[-26,13],[-20,32],[-13,5],[-7,-10],[-11,2],[-32,-6],[-32,0],[-19,-5],[-7,15],[3,13],[-12,9]],[[6188,4312],[-14,-34],[-15,-10],[-15,-26],[-7,-25],[-20,-21],[-12,-5],[-18,-30],[-4,-21],[2,-19],[-16,-36],[-28,-18],[-10,-18],[2,-7],[-16,-24],[-11,-24],[-31,-48],[-14,0],[9,-44]],[[5943,4517],[-8,-25],[-13,-12],[-4,-21],[4,-22],[-32,6],[9,26],[-29,38],[-14,3],[-23,-17],[-29,26],[-28,0],[-3,-6],[-38,1],[-19,-25],[-20,4],[-8,14],[-7,26],[-18,9]],[[5635,4468],[-10,-16],[-6,-29],[-10,2],[10,-23],[-4,-13],[10,-9],[-6,-7],[20,-40],[24,2],[-1,-121]],[[6023,4139],[9,31],[-6,5],[4,32],[11,37],[25,18]],[[6023,4294],[-3,20],[-12,44]],[[5944,4669],[-17,13],[-20,0],[-22,7],[-18,-7],[-11,8]],[[4536,4431],[-4,-23]],[[4535,4395],[-11,-23],[-14,-11],[12,-6],[20,-36]],[[9502,5097],[8,10],[-19,0],[-11,-18],[22,8]],[[9467,5079],[-28,-2],[-4,-17],[19,5],[13,14]],[[9490,5071],[-4,5],[-21,-25],[-5,-18],[9,0],[10,24],[11,14]],[[9440,5034],[1,6],[-37,-23],[-6,-13],[36,21],[6,9]],[[9375,5005],[-18,-5],[-10,-17],[28,22]],[[4682,4595],[-28,-14],[-14,-15],[-8,-33]],[[2561,4401],[-3,7],[-16,0],[-45,-17]],[[6359,4460],[0,57],[-32,43]],[[6198,4458],[27,30],[70,-11],[48,-16],[16,-1]],[[6359,4460],[36,-8],[24,-10],[-2,40],[-6,11],[-7,32],[-31,70],[-24,42],[-23,33],[-33,39],[-28,24],[-42,28],[-25,22],[-31,36],[-12,22]],[[3489,4670],[9,17],[-13,38]],[[3412,4619],[34,6],[2,-6],[23,-2],[29,8]],[[5626,3158],[-13,29]],[[5380,3310],[6,-3]],[[5663,2225],[-48,20],[-26,48],[4,42],[-45,53],[-53,55],[-20,87],[20,42],[26,32],[-25,65],[-29,13],[-11,91],[-15,48],[-35,-4],[-16,41],[-31,3],[-9,-49],[-23,-60],[-21,-78]],[[5890,5594],[-5,15],[-17,4],[-16,-19],[0,-10],[10,-21],[22,3]],[[5998,3721],[-1,-26],[7,-14]],[[6004,3681],[14,-16],[2,-20],[9,7],[31,-10],[13,7],[24,0],[32,-15],[15,2],[32,-6]],[[5051,4614],[-22,6]],[[7849,4437],[-25,-14],[-24,1],[4,-24],[-24,1],[-2,32],[-24,69],[1,21],[19,1],[11,27],[5,25],[15,17],[17,3],[14,16]],[[7779,4605],[-11,-12],[-5,-14],[-28,-30],[-4,17],[-5,-16],[11,-47]],[[6883,3633],[16,-37],[-6,-27],[-20,-9],[7,-17],[22,2],[14,-21],[9,-24],[37,-9],[-6,18],[4,10],[12,-1]],[[6497,3631],[-5,-26],[4,-38],[-22,-13],[8,-26],[-19,-2],[5,-32],[27,10],[25,-13],[-20,-23],[-8,-22],[-24,10],[-2,28],[-8,-25]],[[6554,3478],[31,-1],[-4,-19],[24,-14],[23,-23],[37,21],[3,31],[11,8],[30,-2],[9,7],[14,39],[32,26],[18,18],[29,18],[36,16],[0,22]],[[8471,5050],[3,-7],[52,-11],[10,4],[-10,8],[-52,21]],[[3307,4498],[-23,3],[2,-22],[22,-3],[-1,22]],[[5233,3640],[31,-15],[19,5],[-1,18],[24,-14],[2,8],[-14,18],[0,16],[9,9],[-3,31],[-19,17],[6,19],[14,1],[7,17],[11,5]],[[6004,3681],[-11,-16],[11,-14],[-17,3],[-23,-9],[-19,21],[-43,5],[-22,-20],[-30,-1],[-6,15],[-20,4],[-26,-19],[-31,1],[-16,-36],[-21,-21],[14,-29],[-18,-17],[31,-37],[43,-1],[12,-29],[52,5],[34,-25],[32,-11],[46,-1],[49,28],[40,14],[32,-6],[24,4],[33,-20]],[[5777,3450],[3,15],[25,13],[-5,9],[-33,2],[-35,33],[-9,-26]],[[8365,4115],[-12,25],[-14,-26],[-4,-24],[17,-31],[22,-24],[13,10],[-22,70]],[[5885,4822],[-6,37],[7,11],[48,-11],[-11,-10],[23,-26]],[[6088,4927],[-12,36],[1,17],[18,10],[-7,25],[0,23],[21,48],[10,6]],[[6119,5092],[-22,17],[-30,12]],[[6050,5120],[-10,9],[-19,1]],[[5970,5126],[-9,-12],[-3,-30],[-14,-16],[-2,6]],[[5909,5060],[-15,-9],[-30,-10]],[[5864,5041],[-14,-30],[-3,-18],[-22,-20],[6,-11],[-9,-28],[1,-13]],[[5844,4825],[10,-4],[31,1]],[[5941,4790],[-16,-7],[-29,11],[-13,16],[2,12]],[[6061,3243],[-22,4],[-18,14],[-27,2],[-23,15],[1,26],[14,10],[28,-2],[-5,14],[-31,8],[-37,23],[-16,-9],[6,-18],[-30,-12],[5,-8],[25,-14],[-8,-10],[-42,-10],[-2,-16],[-25,5],[-11,23],[-21,31]],[[3517,5831],[-12,22],[-31,18],[-21,-6],[-15,4],[-26,-16],[-18,2],[-17,-20]],[[679,4229],[-11,1],[-4,-20],[5,-17],[19,8],[12,15],[-21,13]],[[2511,3205],[-28,14],[-39,35],[0,6],[28,-9],[17,15],[68,-39],[-9,23],[16,5],[18,15],[26,-9],[27,-3],[15,12]],[[2657,3273],[14,16],[-25,4],[-22,-4],[-42,12],[-26,41],[3,5],[21,-28],[4,0],[-14,33],[-12,50],[3,40],[7,20],[12,3],[14,-10],[11,-19],[1,-26],[-10,-25],[2,-17],[14,-33],[11,-10],[3,14],[5,-21],[10,-19],[22,8],[22,16],[-1,37],[-15,16],[7,10],[17,-17],[11,4],[6,39]],[[2691,3448],[-10,14],[31,11],[20,-6],[52,-27],[23,-27]],[[2805,3401],[12,-6],[46,6],[21,-13],[-5,-22]],[[3135,3325],[5,14],[-31,20],[-57,25],[-19,33],[-1,21],[10,20],[14,7],[-32,5],[-20,7],[-29,4],[-23,10],[41,-6],[8,6],[-40,13],[-16,0],[-6,34],[-20,29],[-2,-9],[-15,-12],[13,41],[-25,43],[6,-26],[-14,-14],[-3,-32],[-5,17],[6,30],[1,35],[7,2],[8,48],[-17,27],[-29,10],[-18,21],[-15,2],[-17,24],[-31,23],[-16,16],[-13,20],[-4,24],[14,52],[13,22],[0,15],[13,38],[-2,34],[-7,20],[-22,0],[-5,-14],[-10,-7],[-28,-53],[-4,-13],[6,-21],[-8,-19],[-22,-27],[-11,-6],[-27,15],[-19,-17],[-17,-8],[-32,4],[-24,-3],[-33,7],[4,8],[0,25],[-40,1],[-20,-18],[-25,4],[-20,-7],[-41,10],[-26,23],[-26,16],[-16,15],[-6,15],[1,38],[5,11]],[[1746,3796],[-4,-18],[-19,-20],[-13,-4],[-3,-10],[-15,-2],[-10,-9],[-34,-9],[-2,-20],[-27,-35],[-23,-51],[1,-8],[-13,-12],[-21,-31],[-5,-31],[-14,-20],[6,-32],[-1,-33],[-8,-30],[9,-38],[7,-73],[-4,-56],[-9,-37],[-8,-20],[4,-9],[40,15],[15,40],[6,-11],[-4,-35],[-9,-36]],[[750,2769],[-29,20],[-14,-13],[-4,-25],[41,-28],[18,4],[12,17],[-24,25]],[[401,2614],[-17,9],[-20,-10],[-16,-16],[28,-10],[21,5],[4,22]],[[230,2377],[17,12],[16,-7],[24,17],[27,9],[-2,7],[-21,14],[-32,-26],[-24,4],[-8,-6],[3,-24]],[[1082,2225],[0,366],[29,2]],[[1388,2864],[-14,24]],[[1374,2888],[-15,-18],[-26,-16],[-8,-45],[-36,-43],[-14,-51],[-27,-4],[-43,-1],[-34,-16],[-56,-58],[-76,-32],[-38,5],[-55,-27],[-33,-25],[-30,13],[4,40],[-46,16],[-26,19],[-29,12],[-4,-33],[12,-57],[29,-19],[-8,-15],[-35,34],[-18,39],[-41,40],[20,28],[-26,39],[-30,23],[-27,17],[-8,23],[-42,27],[-10,25],[-31,22],[-20,-4],[-55,32],[-22,16],[-47,14],[-6,-8],[31,-23],[28,-16],[28,-28],[35,-6],[14,-21],[39,-32],[26,-29],[6,-42],[14,-32],[-32,16],[-9,-9],[-16,20],[-18,-29],[-8,21],[-10,-28],[-27,23],[-18,-1],[-2,-33],[4,-22],[-16,-19],[-38,10],[-23,-26],[-18,-14],[0,-34],[-22,-26],[10,-35],[24,-35],[10,-32],[22,-5],[19,10],[22,-31],[20,6],[22,-20],[-5,-31],[-17,-12],[22,-26],[-17,1],[-31,15],[-8,15],[-22,-15],[-39,8],[-40,-17],[-13,-27],[-34,-40],[38,-30],[63,-35],[23,0],[-4,36],[58,-3],[-22,-46],[-34,-27],[-21,-37],[-26,-33],[-37,-25],[15,-41],[48,-3],[35,-37],[8,-40],[28,-41],[28,-11],[51,-38],[27,6],[42,-48],[42,20],[21,40],[12,-17],[47,5],[-2,19],[42,16],[29,-9],[59,27],[52,8],[21,11],[38,-13],[41,25],[32,11]],[[3018,4449],[-1,7],[-16,3],[9,14],[0,15],[-12,17],[10,23],[12,-2],[6,-21],[-8,-10],[-2,-22],[35,-12],[-5,-14],[11,-10],[10,21],[19,1],[18,16],[1,10],[55,-3],[16,13],[20,4],[17,-9],[0,-8],[68,-2],[-24,9],[10,14],[22,2],[21,14],[4,24],[15,-1],[11,7]],[[8001,4153],[-37,27],[-24,29],[-6,21],[46,72],[27,19],[17,24],[12,55],[-3,52],[-24,20],[-31,18],[-23,25],[-35,27],[-11,-19],[9,-19],[-21,-17]],[[9661,5275],[-9,4],[-8,-21],[17,17]],[[9641,5229],[4,24],[-13,-3],[-4,-30],[13,9]],[[6475,4303],[-20,8],[-7,24],[-27,13],[-45,14],[-24,21],[-21,0],[-17,12],[-17,6],[-30,3],[-18,18],[-42,1],[-7,-17],[1,-16],[-13,-45],[0,-33]],[[5911,5594],[-7,25],[-3,27],[-7,15],[-24,21],[-36,59],[-51,54],[-21,17],[-29,13],[-14,1],[-3,11],[-18,-5],[-13,6],[-30,-6],[-28,2],[-29,14],[-24,5],[-18,14],[-12,1],[-11,-13],[-10,-2],[-17,-19],[0,-20],[-9,-23],[9,-6],[0,-27],[-19,-31],[-34,-72]],[[5817,5447],[25,6],[24,-2]],[[5840,5246],[-21,4],[-30,25],[-24,24],[-14,21],[-50,-7]],[[5847,5032],[-1,7],[14,8],[4,-6]]],"transform":{"scale":[0.00010001000100010001,0.00009602331466449245],"translate":[-0.5,-0.46013712333025986]}}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
body {
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
line-height: 19px;
text-rendering: optimizeLegibility;
color: rgba(0,0,0,0.87);
}
svg, canvas {
display: block;
}
a {
text-decoration: none;
color: #1f78b4;
}
a:hover {
text-decoration: underline;
color: #e31a1c;
}
a:visited {
color: #333;
}
small {
color: rgba(0,0,0,0.64);
}
.no-select {
user-select: none;
}
.point {
pointer-events: all;
cursor: pointer;
}
.water {
fill: #def4ff;
}
.border {
fill: none;
stroke-width: 2.5;
stroke: #444;
stroke-opacity: 1;
}
.overlay {
fill: none;
pointer-events: all;
}
.overlay-white {
fill: #fff;
pointer-events: all;
}
.country {
stroke: #000;
stroke-opacity: .33;
fill: none;
}
.land {
fill: rgba(255, 255, 255, 0.87);
stroke: 0;
}
.graticule {
fill: none;
stroke: #bbb;
stroke-opacity: 0.66;
}
.cool-point {
fill: none;
stroke: #1f78b4;
stroke-opacity: 0.85;
}
.hot-point {
fill: none;
stroke: #e31a1c;
stroke-opacity: 0.86;
}
.balanced-point {
fill: none;
stroke: #333;
stroke-opacity: 0.85;
}
.cool-line {
fill: none;
stroke: #1f78b4;
stroke-opacity: .85;
}
.hot-line {
fill: none;
stroke: #e31a1c;
stroke-opacity: .85;
}
.balanced-line {
fill: none;
stroke: #333;
stroke-opacity: .85;
}
.symbol {
stroke-width: 1;
stroke: #000;
cursor: pointer;
}
.place {
fill: #888;
fill-opacity: 0.33;
}
.pyramid {
fill: #ffff4d;
}
.megalith {
fill: #299ae6;
}
.temple {
fill: #ff7f00;
}
.mound {
fill: #90de43;
}
.volcano {
fill: #e31a1c;
}
.graticule {
stroke-dasharray: 2, 3;
}
.legend {
cursor: pointer;
pointer-events: all;
}
.item {
cursor: pointer;
}
.control {
cursor: pointer;
}
.legend-symbol {
stroke-width: 2;
}
.legend .map {
fill: #def4ff;
stroke: #333;
}
var Utils = (function () {
'use strict';
function parsePlaces(geo) {
geo.features.sort(function (a, b) {
return a.properties.name.localeCompare(b.properties.name);
});
geo.features.forEach(function (v, k) {
v.properties.id = k;
v.properties.description = v.properties.description || 'place';
});
}
function pointsToFeatures(points, type, name, shift) {
return points.coordinates.map(function (p) {
var sh = p[0] + shift;
sh = (sh > 180) ? (sh - 360) : sh;
return {
coordinates: p,
geometry: {
coordinates: [sh, p[1]],
type: 'Point'
},
type: type,
properties: {
name: name
}
}
});
}
function trans(path) {
return function (d) {
var p = path.centroid(d);
if (isNaN(p[0]) || isNaN(p[1])) {
p[0] = -1e10;
p[1] = -1e10;
}
return d.translate = 'translate(' + p + ')';
};
}
function addSymbols(root, cfg, scale) {
var g = root.append('defs');
d3.keys(cfg.symbols).forEach(function (d) {
g.append('path')
.attr('id', d)
.attr('class', 'symbol ' + d)
.attr('d', d3.svg.symbol()
.size(scale * scale * cfg.sizes[d])
.type(cfg.symbols[d])());
});
return g.selectAll('path');
}
function svgPlaces(root, geo, t, scale, cfg, clicked) {
t = trans(t);
var defs = addSymbols(root, cfg, scale);
var places = root.selectAll()
.data(geo.features)
.enter()
.append('use')
.attr('transform', t)
.attr('xlink:href', function (d) {
return '#' + d.properties.description;
})
.on('click', clicked);
return {
defs: defs,
places: places
}
}
function _svgPlaces(root, geo, t, scale, cfg, clicked) {
t = trans(t);
return root.selectAll()
.data(geo.features)
.enter()
.append('path')
.attr('transform', t)
.attr('class', function (d) {
return 'symbol ' + d.properties.description;
})
.attr('d', function (d) {
return d3.svg.symbol()
.size(scale * cfg.sizes[d.properties.description])
.type(cfg.symbols[d.properties.description])();
})
.on('click', clicked);
}
function svgLines(root, path, data, type) {
return root.append('path')
.datum(data)
.attr('class', 'line ' + type)
.attr('d', path);
}
function svgPoints(root, points, type, projection, clicked, display) {
points = points.filter(function (d) {
var p = projection(d.coordinates);
if (Math.abs(p[0]) !== Infinity && Math.abs(p[1]) !== Infinity) {
d.projected = p;
return true;
}
});
var p = root.selectAll('.point.' + type).data(points);
p.enter().append('circle')
.attr('class', 'point ' + type)
.style('display', display)
.attr('r', 5)
.attr('transform', function (d) {
return 'translate(' + d.projected + ')';
})
.on('click', clicked);
}
function svgControls(root, setIndex, reset) {
root.append('path')
.attr('class', 'control')
.attr('d', d3.svg.symbol().size(120).type('triangle-up'))
.attr('transform', 'translate(60,10)rotate(90)')
.on('click', function () {
setIndex(+1);
});
root.append('path')
.attr('class', 'control')
.attr('d', d3.svg.symbol().size(120).type('circle'))
.attr('transform', 'translate(35,10)')
.on('click', reset);
root.append('path')
.attr('class', 'control')
.attr('d', d3.svg.symbol().size(120).type('triangle-up'))
.attr('transform', 'translate(10,10)rotate(-90)')
.on('click', function () {
setIndex(-1);
});
}
return {
svgLines: svgLines,
svgPoints: svgPoints,
svgPlaces: svgPlaces,
svgControls: svgControls,
parsePlaces: parsePlaces,
pointsToFeatures: pointsToFeatures
};
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment